diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,28 @@
 
+90000.0.1
+=========
+
+Enhancements:
+* Increased the number of scrollback messages fetched when selecting
+  "Load more messages" to 200.
+* Autocompletion now supports comma-separated user lists, such as with
+  the `/groupmsg` command.
+* The `/attach` command now expands `~` in file paths.
+* The syntax highlighting XML specification files were upgraded to those
+  included with `skylighting-core` 0.14.2.
+* One's own DM channel can now be focused with `/focus`. (#831)
+
+Bug fixes:
+* Autocompletion no longer causes a crash under some conditions when
+  using `/leave`. (#832)
+* Matterhorn now builds with `vty-windows-0.2.0.2` to resolve an
+  input-related bug fix on Windows. (#824)
+* Matterhorn now downloads attachments asynchronously, which improves UI
+  responsiveness when attachments take a long time to download.
+
+Other changes:
+* On websocket connect, log the team base URL data for all active teams
+
 90000.0.0
 =========
 
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -57,8 +57,7 @@
 * [Command list](docs/commands.md)
 * [Keybinding list](docs/keybindings.md)
 * Chat with the developers on [the Mattermost Community server](https://community.mattermost.com/core/channels/matterhorn)
-* Get notified about new Matterhorn releases by following
-  [our Twitter account](https://twitter.com/matterhorn_chat)
+* File tickets on this repository
 
 # Features
 
diff --git a/matterhorn.cabal b/matterhorn.cabal
--- a/matterhorn.cabal
+++ b/matterhorn.cabal
@@ -1,5 +1,5 @@
 name:                matterhorn
-version:             90000.0.0
+version:             90000.0.1
 synopsis:            Terminal client for the Mattermost chat system
 description:         This is a terminal client for the Mattermost chat
                      system. Please see the README for a list of
@@ -184,10 +184,10 @@
                      , config-ini           >= 0.2.2.0 && < 0.3
                      , process              >= 1.4     && < 1.7
                      , microlens-platform   >= 0.3     && < 0.5
-                     , brick                >= 2.0     && < 2.1
+                     , brick                >= 2.4     && < 2.5
                      , brick-skylighting    >= 1.0     && < 1.1
-                     , vty                  >= 6.0     && < 6.1
-                     , vty-crossplatform    >= 0.2.0.0 && < 0.3.0.0
+                     , vty                  >= 6.0     && < 6.3
+                     , vty-crossplatform    >= 0.2.0.0 && < 0.5.0.0
                      , word-wrap            >= 0.4.0   && < 0.5
                      , transformers         >= 0.4     && < 0.7
                      , text-zipper          >= 0.13    && < 0.14
diff --git a/src/Matterhorn/App.hs b/src/Matterhorn/App.hs
--- a/src/Matterhorn/App.hs
+++ b/src/Matterhorn/App.hs
@@ -22,7 +22,7 @@
 import           Matterhorn.IOUtil
 import           Matterhorn.InputHistory
 import           Matterhorn.LastRunState
-import           Matterhorn.Options hiding ( ShowHelp )
+import           Matterhorn.Options
 import           Matterhorn.State.Setup
 import           Matterhorn.State.Setup.Threads.Logging ( shutdownLogManager )
 import           Matterhorn.Types
diff --git a/src/Matterhorn/Command.hs b/src/Matterhorn/Command.hs
--- a/src/Matterhorn/Command.hs
+++ b/src/Matterhorn/Command.hs
@@ -277,16 +277,16 @@
   , Cmd "sh" "List the available shell scripts" NoArg $ \ () ->
         listScripts
 
-  , Cmd "group-create" "Create a group chat"
-    (LineArg (addUserSigil "user" <> " [" <> addUserSigil "user" <> " ...]")) $ \ t -> do
-        withCurrentTeam $ \tId ->
-            createGroupChannel tId t
-
   , Cmd "sh" "Run a prewritten shell script"
     (TokenArg "script" (LineArg "message")) $ \ (script, text) -> do
         withCurrentTeam $ \tId ->
             withCurrentChannel tId $ \cId _ -> do
                 findAndRunScript (channelEditor(cId)) script text
+
+  , Cmd "group-create" "Create a group chat"
+    (LineArg (addUserSigil "user" <> " [" <> addUserSigil "user" <> " ...]")) $ \ t -> do
+        withCurrentTeam $ \tId ->
+            createGroupChannel tId t
 
   , Cmd "flags" "Open a window of your flagged posts" NoArg $ \ () -> do
         withCurrentTeam enterFlaggedPostListMode
diff --git a/src/Matterhorn/Command.hs-boot b/src/Matterhorn/Command.hs-boot
--- a/src/Matterhorn/Command.hs-boot
+++ b/src/Matterhorn/Command.hs-boot
@@ -1,4 +1,9 @@
-module Matterhorn.Command where
+module Matterhorn.Command
+  ( commandList
+  , printArgSpec
+  , dispatchCommand
+  )
+where
 
 import Prelude ()
 import Matterhorn.Prelude
diff --git a/src/Matterhorn/Connection.hs b/src/Matterhorn/Connection.hs
--- a/src/Matterhorn/Connection.hs
+++ b/src/Matterhorn/Connection.hs
@@ -1,4 +1,7 @@
-module Matterhorn.Connection where
+module Matterhorn.Connection
+  ( connectWebsockets
+  )
+where
 
 import           Prelude ()
 import           Matterhorn.Prelude
diff --git a/src/Matterhorn/Constants.hs b/src/Matterhorn/Constants.hs
--- a/src/Matterhorn/Constants.hs
+++ b/src/Matterhorn/Constants.hs
@@ -1,5 +1,6 @@
 module Matterhorn.Constants
   ( pageAmount
+  , messageFetchPageSize
   , userTypingExpiryInterval
   , numScrollbackPosts
   , previewMaxHeight
@@ -30,6 +31,10 @@
 -- | The number of rows to consider a "page" when scrolling
 pageAmount :: Int
 pageAmount = 15
+
+-- | The "page size" to use with the message-fetching API
+messageFetchPageSize :: Int
+messageFetchPageSize = 200
 
 -- | The expiry interval in seconds for user typing notifications.
 userTypingExpiryInterval :: NominalDiffTime
diff --git a/src/Matterhorn/Draw/Autocomplete.hs b/src/Matterhorn/Draw/Autocomplete.hs
--- a/src/Matterhorn/Draw/Autocomplete.hs
+++ b/src/Matterhorn/Draw/Autocomplete.hs
@@ -133,7 +133,7 @@
 renderAutocompleteFooterFor :: ChatState -> ClientChannel -> AutocompleteAlternative -> Maybe (Widget Name)
 renderAutocompleteFooterFor _ _ (SpecialMention MentionChannel) = Nothing
 renderAutocompleteFooterFor _ _ (SpecialMention MentionAll) = Nothing
-renderAutocompleteFooterFor st ch (UserCompletion _ False) =
+renderAutocompleteFooterFor st ch (UserCompletion _ False _) =
     Just $ hBox [ txt $ "("
                 , withDefAttr clientEmphAttr (txt userNotInChannelMarker)
                 , txt ": not a member of "
@@ -166,7 +166,7 @@
     padRight Max $ renderEmojiCompletion sel e
 renderAutocompleteAlternative _ sel (SpecialMention m) =
     padRight Max $ renderSpecialMention m sel
-renderAutocompleteAlternative curUser sel (UserCompletion u inChan) =
+renderAutocompleteAlternative curUser sel (UserCompletion u inChan _) =
     padRight Max $ renderUserCompletion curUser u inChan sel
 renderAutocompleteAlternative _ sel (ChannelCompletion inChan c) =
     padRight Max $ renderChannelCompletion c inChan sel
diff --git a/src/Matterhorn/Draw/PostListWindow.hs b/src/Matterhorn/Draw/PostListWindow.hs
--- a/src/Matterhorn/Draw/PostListWindow.hs
+++ b/src/Matterhorn/Draw/PostListWindow.hs
@@ -1,7 +1,10 @@
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE TupleSections #-}
 
-module Matterhorn.Draw.PostListWindow where
+module Matterhorn.Draw.PostListWindow
+  ( drawPostListWindow
+  )
+where
 
 import           Prelude ()
 import           Matterhorn.Prelude
diff --git a/src/Matterhorn/Events.hs b/src/Matterhorn/Events.hs
--- a/src/Matterhorn/Events.hs
+++ b/src/Matterhorn/Events.hs
@@ -87,6 +87,9 @@
     refreshChannelsAndUsers
     refreshClientConfig
     withCurrentTeam fetchVisibleIfNeeded
+    forEachTeam $ \tId -> do
+        baseUrl <- getServerBaseUrl tId
+        mhLog LogGeneral $ T.pack $ "Team base URL for team ID " <> show tId <> ": " <> show baseUrl
 onAppEvent (RateLimitExceeded winSz) =
     mhError $ GenericError $ T.pack $
         let s = if winSz == 1 then "" else "s"
@@ -111,7 +114,10 @@
     handleWebsocketEvent we
 onAppEvent (WSActionResponse r) =
     handleWebsocketActionResponse r
-onAppEvent (RespEvent f) = f
+onAppEvent (RespEvent (Work label f)) = do
+    mhLog LogAsyncWork $ T.pack $ "onAppEvent: running work from async: " <> show label
+    f
+    mhLog LogAsyncWork $ T.pack $ "onAppEvent: done with work from async: " <> show label
 onAppEvent (WebsocketParseError e) = do
     let msg = "A websocket message could not be parsed:\n  " <>
               T.pack e <>
@@ -255,6 +261,6 @@
     session <- getSession
     doAsyncWith Preempt $ do
         cfg <- MM.mmGetClientConfiguration (Just "old") session
-        return $ Just $ do
+        return $ Just $ Work "refreshClientConfig" $ do
             csClientConfig .= Just cfg
             updateSidebar Nothing
diff --git a/src/Matterhorn/Events/ChannelSelect.hs b/src/Matterhorn/Events/ChannelSelect.hs
--- a/src/Matterhorn/Events/ChannelSelect.hs
+++ b/src/Matterhorn/Events/ChannelSelect.hs
@@ -1,4 +1,8 @@
-module Matterhorn.Events.ChannelSelect where
+module Matterhorn.Events.ChannelSelect
+  ( onEventChannelSelect
+  , channelSelectKeyHandlers
+  )
+where
 
 import           Prelude ()
 import           Matterhorn.Prelude
diff --git a/src/Matterhorn/Events/DeleteChannelConfirm.hs b/src/Matterhorn/Events/DeleteChannelConfirm.hs
--- a/src/Matterhorn/Events/DeleteChannelConfirm.hs
+++ b/src/Matterhorn/Events/DeleteChannelConfirm.hs
@@ -1,4 +1,7 @@
-module Matterhorn.Events.DeleteChannelConfirm where
+module Matterhorn.Events.DeleteChannelConfirm
+  ( onEventDeleteChannelConfirm
+  )
+where
 
 import           Prelude ()
 import           Matterhorn.Prelude
diff --git a/src/Matterhorn/Events/LeaveChannelConfirm.hs b/src/Matterhorn/Events/LeaveChannelConfirm.hs
--- a/src/Matterhorn/Events/LeaveChannelConfirm.hs
+++ b/src/Matterhorn/Events/LeaveChannelConfirm.hs
@@ -1,4 +1,7 @@
-module Matterhorn.Events.LeaveChannelConfirm where
+module Matterhorn.Events.LeaveChannelConfirm
+  ( onEventLeaveChannelConfirm
+  )
+where
 
 import           Prelude ()
 import           Matterhorn.Prelude
diff --git a/src/Matterhorn/Events/Main.hs b/src/Matterhorn/Events/Main.hs
--- a/src/Matterhorn/Events/Main.hs
+++ b/src/Matterhorn/Events/Main.hs
@@ -1,6 +1,11 @@
 {-# LANGUAGE MultiWayIf #-}
 {-# LANGUAGE RankNTypes #-}
-module Matterhorn.Events.Main where
+module Matterhorn.Events.Main
+  ( onEventMain
+  , mainKeyHandlers
+  , mainKeybindings
+  )
+where
 
 import           Prelude ()
 import           Matterhorn.Prelude
diff --git a/src/Matterhorn/Events/PostListWindow.hs b/src/Matterhorn/Events/PostListWindow.hs
--- a/src/Matterhorn/Events/PostListWindow.hs
+++ b/src/Matterhorn/Events/PostListWindow.hs
@@ -1,4 +1,8 @@
-module Matterhorn.Events.PostListWindow where
+module Matterhorn.Events.PostListWindow
+  ( onEventPostListWindow
+  , postListWindowKeyHandlers
+  )
+where
 
 import           Prelude ()
 import           Matterhorn.Prelude
diff --git a/src/Matterhorn/Events/SaveAttachmentWindow.hs b/src/Matterhorn/Events/SaveAttachmentWindow.hs
--- a/src/Matterhorn/Events/SaveAttachmentWindow.hs
+++ b/src/Matterhorn/Events/SaveAttachmentWindow.hs
@@ -49,7 +49,7 @@
             when (not $ null path) $ do
                 doAsyncWith Normal $ do
                     result <- E.try $ fetchFileAtPath fId session path
-                    return $ Just $ do
+                    return $ Just $ Work "onEventSaveAttachmentWindow" $ do
                         case result of
                             Left (e::E.SomeException) ->
                                 postErrorMessage' $ T.pack $ "Error saving to " <> path <> ": " <> show e
diff --git a/src/Matterhorn/Events/ShowHelp.hs b/src/Matterhorn/Events/ShowHelp.hs
--- a/src/Matterhorn/Events/ShowHelp.hs
+++ b/src/Matterhorn/Events/ShowHelp.hs
@@ -1,4 +1,8 @@
-module Matterhorn.Events.ShowHelp where
+module Matterhorn.Events.ShowHelp
+  ( onEventShowHelp
+  , helpKeyHandlers
+  )
+where
 
 import           Prelude ()
 import           Matterhorn.Prelude
diff --git a/src/Matterhorn/Events/ThemeListWindow.hs b/src/Matterhorn/Events/ThemeListWindow.hs
--- a/src/Matterhorn/Events/ThemeListWindow.hs
+++ b/src/Matterhorn/Events/ThemeListWindow.hs
@@ -1,4 +1,8 @@
-module Matterhorn.Events.ThemeListWindow where
+module Matterhorn.Events.ThemeListWindow
+  ( onEventThemeListWindow
+  , themeListWindowKeyHandlers
+  )
+where
 
 import           Prelude ()
 import           Matterhorn.Prelude
diff --git a/src/Matterhorn/Events/UrlSelect.hs b/src/Matterhorn/Events/UrlSelect.hs
--- a/src/Matterhorn/Events/UrlSelect.hs
+++ b/src/Matterhorn/Events/UrlSelect.hs
@@ -1,5 +1,10 @@
 {-# LANGUAGE RankNTypes #-}
-module Matterhorn.Events.UrlSelect where
+module Matterhorn.Events.UrlSelect
+  ( onEventUrlSelect
+  , urlSelectKeyHandlers
+  , urlSelectKeybindings
+  )
+where
 
 import           Prelude ()
 import           Matterhorn.Prelude
diff --git a/src/Matterhorn/Events/UserListWindow.hs b/src/Matterhorn/Events/UserListWindow.hs
--- a/src/Matterhorn/Events/UserListWindow.hs
+++ b/src/Matterhorn/Events/UserListWindow.hs
@@ -1,4 +1,8 @@
-module Matterhorn.Events.UserListWindow where
+module Matterhorn.Events.UserListWindow
+  ( onEventUserListWindow
+  , userListWindowKeyHandlers
+  )
+where
 
 import           Prelude ()
 import           Matterhorn.Prelude
diff --git a/src/Matterhorn/Options.hs b/src/Matterhorn/Options.hs
--- a/src/Matterhorn/Options.hs
+++ b/src/Matterhorn/Options.hs
@@ -1,6 +1,12 @@
 {-# LANGUAGE TemplateHaskell #-}
 
-module Matterhorn.Options where
+module Matterhorn.Options
+  ( Options(..)
+  , PrintFormat(..)
+  , grabOptions
+  , mhVersion
+  )
+where
 
 import Prelude ()
 import Matterhorn.Prelude
diff --git a/src/Matterhorn/Scripts.hs b/src/Matterhorn/Scripts.hs
--- a/src/Matterhorn/Scripts.hs
+++ b/src/Matterhorn/Scripts.hs
@@ -44,7 +44,7 @@
           -> STM.TChan ProgramOutput
           -> FilePath
           -> Text
-          -> IO (Maybe (MH ()))
+          -> IO (Maybe Work)
 runScript which outputChan fp text = do
   outputVar <- newEmptyMVar
   runLoggedCommand outputChan fp [] (Just $ BSL.fromStrict $ T.encodeUtf8 text) (Just outputVar)
@@ -52,7 +52,7 @@
   return $ case programExitCode po of
     ExitSuccess -> do
         case null $ programStderr po of
-            True -> Just $ do
+            True -> Just $ Work "runScript" $ do
                 mode <- use (which.esEditMode)
                 cId <- use (which.esChannelId)
                 sendMessage cId mode (T.pack $ programStdout po) []
diff --git a/src/Matterhorn/State/Async.hs b/src/Matterhorn/State/Async.hs
--- a/src/Matterhorn/State/Async.hs
+++ b/src/Matterhorn/State/Async.hs
@@ -25,15 +25,16 @@
 
 -- | Try to run a computation, posting an informative error
 --   message if it fails with a 'MattermostServerError'.
-tryMM :: IO a
+tryMM :: String
+      -> IO a
       -- ^ The action to try (usually a MM API call)
-      -> (a -> IO (Maybe (MH ())))
+      -> (a -> IO (Maybe Work))
       -- ^ What to do on success
-      -> IO (Maybe (MH ()))
-tryMM act onSuccess = do
+      -> IO (Maybe Work)
+tryMM label act onSuccess = do
     result <- liftIO $ try act
     case result of
-        Left e -> return $ Just $ mhError $ ServerError e
+        Left e -> return $ Just $ Work label $ mhError $ ServerError e
         Right value -> liftIO $ onSuccess value
 
 -- * Background Computation
@@ -97,7 +98,7 @@
 
 -- | Run a computation in the background, returning a computation to be
 -- called on the 'ChatState' value.
-doAsyncWith :: AsyncPriority -> IO (Maybe (MH ())) -> MH ()
+doAsyncWith :: AsyncPriority -> IO (Maybe Work) -> MH ()
 doAsyncWith prio act = do
     let putChan = case prio of
           Preempt -> STM.unGetTChan
@@ -109,14 +110,14 @@
 doAsyncIO prio st act =
   doAsyncWithIO prio st (act >> return Nothing)
 
-scheduleMH :: ChatResources -> MH () -> IO ()
-scheduleMH r act = do
+scheduleMH :: ChatResources -> String -> MH () -> IO ()
+scheduleMH r label act = do
     let queue = r^.crRequestQueue
-    STM.atomically $ STM.writeTChan queue $ return $ Just act
+    STM.atomically $ STM.writeTChan queue $ return $ Just $ Work label act
 
 -- | Run a computation in the background, returning a computation to be
 -- called on the 'ChatState' value.
-doAsyncWithIO :: AsyncPriority -> ChatState -> IO (Maybe (MH ())) -> IO ()
+doAsyncWithIO :: AsyncPriority -> ChatState -> IO (Maybe Work) -> IO ()
 doAsyncWithIO prio st act = do
     let putChan = case prio of
           Preempt -> STM.unGetTChan
@@ -131,7 +132,7 @@
           -- ^ the priority for this async operation
           -> (Session -> IO a)
           -- ^ the async MM channel-based IO operation
-          -> (a -> Maybe (MH ()))
+          -> (a -> Maybe Work)
           -- ^ function to process the results in brick event handling
           -- context
           -> MH ()
@@ -150,7 +151,7 @@
     -- ^ The channel
     -> (Session -> ChannelId -> IO a)
     -- ^ the asynchronous Mattermost channel-based IO operation
-    -> (ChannelId -> a -> Maybe (MH ()))
+    -> (ChannelId -> a -> Maybe Work)
     -- ^ function to process the results in brick event handling context
     -> MH ()
 
@@ -163,5 +164,5 @@
 
 -- | Use this convenience function if no operation needs to be
 -- performed in the MH state after an async operation completes.
-endAsyncNOP :: ChannelId -> a -> Maybe (MH ())
+endAsyncNOP :: ChannelId -> a -> Maybe Work
 endAsyncNOP _ _ = Nothing
diff --git a/src/Matterhorn/State/Attachments.hs b/src/Matterhorn/State/Attachments.hs
--- a/src/Matterhorn/State/Attachments.hs
+++ b/src/Matterhorn/State/Attachments.hs
@@ -18,11 +18,12 @@
 import           Data.Bool ( bool )
 import qualified Data.ByteString as BS
 import           Data.Either ( isRight )
-import           Data.Text ( unpack )
+import           Data.Text ( unpack, replace, pack )
 import qualified Data.Vector as Vector
 import           GHC.Exception ( toException )
 import           Lens.Micro.Platform ( (.=), (%=), Lens' )
 import           System.Directory ( doesDirectoryExist, doesFileExist, getDirectoryContents )
+import           System.Environment ( lookupEnv )
 
 import           Matterhorn.Types
 
@@ -55,9 +56,23 @@
     which.miEditor.esFileBrowser .= browser
     which.miMode .= BrowseFiles
 
+getHomeDir :: IO (Maybe String)
+getHomeDir = lookupEnv "HOME"
+
+replaceHome :: Text -> IO Text
+replaceHome t = do
+    home <- getHomeDir
+
+    let maybeReplace = do
+            h <- home
+            return $ replace "~" (pack h) t
+
+    return $ fromMaybe t maybeReplace
+
 attachFileByPath :: Lens' ChatState (MessageInterface Name i) -> Text -> MH ()
 attachFileByPath which txtPath = do
-    let strPath = unpack txtPath
+    strPath <- unpack <$> (liftIO $ replaceHome txtPath)
+
     fileInfo <- liftIO $ FB.getFileInfo strPath strPath
     case FB.fileInfoFileStatus fileInfo of
         Left e -> do
diff --git a/src/Matterhorn/State/Autocomplete.hs b/src/Matterhorn/State/Autocomplete.hs
--- a/src/Matterhorn/State/Autocomplete.hs
+++ b/src/Matterhorn/State/Autocomplete.hs
@@ -54,18 +54,28 @@
                         -- (False).
                         }
 
+data Completer =
+    Completer { completerType :: AutocompletionType
+              , completerFunc :: AutocompletionType -> AutocompleteContext -> Text -> MH ()
+              }
+
 -- | Check for whether the currently-edited word in the message editor
 -- should cause an autocompletion UI to appear. If so, initiate a server
 -- query or local cache lookup to present the completion alternatives
 -- for the word at the cursor.
-checkForAutocompletion :: Traversal' ChatState (EditState Name)
+checkForAutocompletion :: EditorTarget
                        -> AutocompleteContext
                        -> MH ()
-checkForAutocompletion which ctx = do
+checkForAutocompletion target ctx = do
+    let which :: Traversal' ChatState (EditState Name)
+        which = case target of
+            EditorForChannel cId -> maybeChannelMessageInterface(cId).miEditor
+            EditorForThread tId -> maybeThreadInterface(tId)._Just.miEditor
+
     result <- getCompleterForInput which ctx
     case result of
         Nothing -> resetAutocomplete which
-        Just (ty, runUpdater, searchString) -> do
+        Just (completer, searchString) -> do
             prevResult <- join <$> preuse (which.esAutocomplete)
 
             -- We should update the completion state if EITHER:
@@ -75,17 +85,18 @@
             -- or
             --
             -- 2) The search string changed but the type did NOT change
-            let shouldUpdate = ((maybe True ((/= searchString) . _acPreviousSearchString)
+            let ty = completerType completer
+                shouldUpdate = ((maybe True ((/= searchString) . _acPreviousSearchString)
                                  prevResult) &&
                                 (maybe True ((== ty) . _acType) prevResult)) ||
                                (maybe False ((/= ty) . _acType) prevResult)
             when shouldUpdate $ do
                 which.esAutocompletePending .= Just searchString
-                runUpdater ty ctx searchString
+                completerFunc completer ty ctx searchString
 
 getCompleterForInput :: Traversal' ChatState (EditState Name)
                      -> AutocompleteContext
-                     -> MH (Maybe (AutocompletionType, AutocompletionType -> AutocompleteContext -> Text -> MH (), Text))
+                     -> MH (Maybe (Completer, Text))
 getCompleterForInput which ctx = do
     maybeZipper <- preuse (which.esEditor.editContentsL)
     mmTid <- preuse (which.esTeamId)
@@ -101,15 +112,15 @@
             return $ case wordAtColumn col curLine of
                 Just (startCol, w)
                     | userSigil `T.isPrefixOf` w ->
-                        Just (ACUsers, doUserAutoCompletion which tId, T.tail w)
+                        Just (Completer ACUsers (doUserAutoCompletion which tId), T.tail w)
                     | normalChannelSigil `T.isPrefixOf` w ->
-                        Just (ACChannels, doChannelAutoCompletion tId which, T.tail w)
+                        Just (Completer ACChannels (doChannelAutoCompletion tId which), T.tail w)
                     | ":" `T.isPrefixOf` w && autocompleteManual ctx ->
-                        Just (ACEmoji, doEmojiAutoCompletion which, T.tail w)
+                        Just (Completer ACEmoji (doEmojiAutoCompletion which), T.tail w)
                     | "```" `T.isPrefixOf` w ->
-                        Just (ACCodeBlockLanguage, doSyntaxAutoCompletion which, T.drop 3 w)
+                        Just (Completer ACCodeBlockLanguage (doSyntaxAutoCompletion which), T.drop 3 w)
                     | "/" `T.isPrefixOf` w && startCol == 0 ->
-                        Just (ACCommands, doCommandAutoCompletion which tId, T.tail w)
+                        Just (Completer ACCommands (doCommandAutoCompletion which tId), T.tail w)
                 _ -> Nothing
         _ -> return Nothing
 
@@ -127,7 +138,7 @@
         doAsyncWith Preempt $ do
             results <- getMatchingEmoji session em searchString
             let alts = EmojiCompletion <$> results
-            return $ Just $ setCompletionAlternatives which ctx searchString alts ty
+            return $ Just $ Work "doEmojiAutoCompletion" $ setCompletionAlternatives which ctx searchString alts ty
 
 doSyntaxAutoCompletion :: Traversal' ChatState (EditState Name)
                        -> AutocompletionType
@@ -253,7 +264,7 @@
                     alts = fmap mkCompletion $
                            clientAlts <> serverAlts
 
-                return $ Just $ do
+                return $ Just $ Work "doCommandAutoCompletion" $ do
                     -- Store the complete list of alterantives in the cache
                     setCompletionAlternatives which ctx serverResponseKey alts ty
 
@@ -292,14 +303,30 @@
     session <- getSession
     myUid <- gets myUserId
     cId <- fromJust <$> preuse (which.esChannelId)
+
+    -- Some commands (e.g. /msg) will take a single user, which is the entirety
+    -- of the current word (searchString).  Some commands take multiple users,
+    -- space separated (e.g. /group-create), which will invoke this
+    -- auto-completion on each work individually and thus work like the single
+    -- user match.  There is a third class of commands that takes a
+    -- comma-separated list of users (e.g. /groupmsg) where searchString is the
+    -- entire list (minus the initial sigil).  Here, we search for the
+    -- comma+sigil and attempt to perform matching/completion only on the last
+    -- such element (although the result will be the full list with the last
+    -- element autocompleted).
+    let (initPart, completePart) =
+          let c = snd $ T.breakOnEnd ("," <> userSigil) searchString
+          in (T.dropEnd (T.length c) searchString, c)
+
     withCachedAutocompleteResults which ctx ty searchString $
         doAsyncWith Preempt $ do
-            ac <- MM.mmAutocompleteUsers (Just tId) (Just cId) searchString session
+            ac <- MM.mmAutocompleteUsers (Just tId) (Just cId) completePart session
 
             let active = Seq.filter (\u -> userId u /= myUid && (not $ userDeleted u))
                 alts = F.toList $
-                       ((\u -> UserCompletion u True) <$> (active $ MM.userAutocompleteUsers ac)) <>
-                       (maybe mempty (fmap (\u -> UserCompletion u False) . active) $
+                       ((\u -> UserCompletion u True initPart) <$> (active $ MM.userAutocompleteUsers ac)) <>
+                       (maybe mempty
+                              (fmap (\u -> UserCompletion u False initPart) . active) $
                               MM.userAutocompleteOutOfChannel ac)
 
                 specials = [ MentionAll
@@ -309,7 +336,7 @@
                          , (T.toLower searchString) `T.isPrefixOf` specialMentionName m
                          ]
 
-            return $ Just $ setCompletionAlternatives which ctx searchString (alts <> extras) ty
+            return $ Just $ Work "doUserAutoCompletion" $ setCompletionAlternatives which ctx searchString (alts <> extras) ty
 
 doChannelAutoCompletion :: TeamId
                         -> Traversal' ChatState (EditState Name)
@@ -328,7 +355,7 @@
                                   (ChannelCompletion False <$> notInChannels)
                 (inChannels, notInChannels) = Seq.partition isMember results
                 isMember c = isJust $ findChannelById (channelId c) cs
-            return $ Just $ setCompletionAlternatives which ctx searchString alts ty
+            return $ Just $ Work "doChannelAutoCompletion" $ setCompletionAlternatives which ctx searchString alts ty
 
 -- Utility functions
 
diff --git a/src/Matterhorn/State/Channels.hs b/src/Matterhorn/State/Channels.hs
--- a/src/Matterhorn/State/Channels.hs
+++ b/src/Matterhorn/State/Channels.hs
@@ -129,7 +129,7 @@
                    else return Nothing
             doAsyncChannelMM Preempt cId
               (\s c -> MM.mmViewChannel UserMe c pId s)
-              (\c () -> Just $ setLastViewedFor pId c)
+              (\c () -> Just $ Work "updateViewedChan" $ setLastViewedFor pId c)
     Disconnected ->
         -- Cannot update server; make no local updates to avoid getting
         -- out of sync with the server. Assumes that this is a temporary
@@ -217,7 +217,7 @@
           doAsyncChannelMM Preempt cId (\ s _ ->
                                            (,) <$> MM.mmGetChannel cId s
                                                <*> MM.mmGetChannelMember cId UserMe s)
-          (\pcid (cwd, member) -> Just $ csChannel(pcid).ccInfo %= channelInfoFromChannelWithData cwd member)
+          (\pcid (cwd, member) -> Just $ Work "setLastViewedFor" $ csChannel(pcid).ccInfo %= channelInfoFromChannelWithData cwd member)
 
     -- Update the old channel's previous viewed time (allows tracking of
     -- new messages)
@@ -256,7 +256,7 @@
           mkPair chan = (chan, fromJust $ HM.lookup (channelId chan) dataMap)
           chansWithData = mkPair <$> chans
 
-      return $ Just $
+      return $ Just $ Work "refreshChannelsAndUsers" $
           -- Fetch user data associated with DM channels
           handleNewUsers (Seq.fromList uIdsToFetch) $ do
               -- Then refresh all loaded channels
@@ -374,7 +374,7 @@
                                         mhLog LogAPI $ T.pack $ "handleNewChannel_: about to call handleNewUsers for " <> show otherUserId
                                         handleNewUsers (Seq.singleton otherUserId) (return ())
                                         doAsyncWith Normal $
-                                            return $ Just $ handleNewChannel_ False switch sbUpdate nc member
+                                            return $ Just $ Work "handleNewChannel_" $ handleNewChannel_ False switch sbUpdate nc member
                                         return False
                             Just _ -> return True
                 _ -> return True
@@ -622,7 +622,7 @@
     doAsyncWith Preempt $ do
         cwd <- MM.mmGetChannel cId session
         member <- MM.mmGetChannelMember cId UserMe session
-        return $ Just $ do
+        return $ Just $ Work "refreshChannelById" $ do
             refreshChannel SidebarUpdateImmediate cwd member
 
 removeChannelFromState :: ChannelId -> MH ()
@@ -758,7 +758,7 @@
                            , MM.userQueryInChannel = Just cId
                            }
                       in toList <$> MM.mmGetUsers query s)
-                    (\_ members -> Just $ do
+                    (\_ members -> Just $ Work "leaveChannelIfPossible" $ do
                         -- If the channel is private:
                         --  * leave it if we aren't the last member.
                         --  * delete it if we are.
@@ -826,7 +826,7 @@
         case length results == length usernames of
             True -> do
                 chan <- MM.mmCreateGroupMessageChannel (userId <$> results) session
-                return $ Just $ do
+                return $ Just $ Work "createGroupChannel" $ do
                     case findChannelById (channelId chan) cs of
                       Just _ ->
                           -- If we already know about the channel ID,
@@ -839,13 +839,13 @@
                           let pref = showGroupChannelPref (channelId chan) (me^.userIdL)
                           doAsyncWith Normal $ do
                             MM.mmSaveUsersPreferences UserMe (Seq.singleton pref) session
-                            return $ Just $ applyPreferenceChange pref
+                            return $ Just $ Work "createGroupChannel[2]" $ applyPreferenceChange pref
             False -> do
                 let foundUsernames = userUsername <$> results
                     missingUsernames = S.toList $
                                        S.difference (S.fromList $ F.toList usernames)
                                                     (S.fromList $ F.toList foundUsernames)
-                return $ Just $ do
+                return $ Just $ Work "createGroupChannel[3]" $ do
                     forM_ missingUsernames (mhError . NoSuchUser)
 
 inputHistoryForward :: Lens' ChatState (MessageInterface n i) -> MH ()
@@ -907,12 +907,13 @@
               , minChannelType        = if public then Ordinary else Private
               , minChannelTeamId      = myTId
               }
-        tryMM (do c <- MM.mmCreateChannel minChannel session
+        tryMM "createOrdinaryChannel"
+              (do c <- MM.mmCreateChannel minChannel session
                   chan <- MM.mmGetChannel (getId c) session
                   member <- MM.mmGetChannelMember (getId c) UserMe session
                   return (chan, member)
               )
-              (return . Just . uncurry (handleNewChannel True SidebarUpdateImmediate))
+              (return . Just . Work "createOrdinaryChannel[2]" . uncurry (handleNewChannel True SidebarUpdateImmediate))
 
 -- | When we are added to a channel not locally known about, we need
 -- to fetch the channel info for that channel.
@@ -921,8 +922,9 @@
     session <- getSession
     doAsyncWith Normal $ do
         member <- MM.mmGetChannelMember cId UserMe session
-        tryMM (MM.mmGetChannel cId session)
-              (\cwd -> return $ Just $ do
+        tryMM "handleChannelInvite"
+              (MM.mmGetChannel cId session)
+              (\cwd -> return $ Just $ Work "handleChannelInvite" $ do
                   mtId <- case channelTeamId cwd of
                       Nothing -> use csCurrentTeamId
                       Just i -> return $ Just i
@@ -941,7 +943,8 @@
         session <- getSession
         let channelMember = MinChannelMember (u^.uiId) cId
         doAsyncWith Normal $ do
-            tryMM (void $ MM.mmAddUser cId channelMember session)
+            tryMM "addUserToCurrentChannel"
+                  (void $ MM.mmAddUser cId channelMember session)
                   (const $ return Nothing)
 
 removeUserFromCurrentChannel :: TeamId -> Text -> MH ()
@@ -950,7 +953,8 @@
         withFetchedUser (UserFetchByUsername uname) $ \u -> do
             session <- getSession
             doAsyncWith Normal $ do
-                tryMM (void $ MM.mmRemoveUserFromChannel cId (UserById $ u^.uiId) session)
+                tryMM "removeUserFromCurrentChannel"
+                      (void $ MM.mmRemoveUserFromChannel cId (UserById $ u^.uiId) session)
                       (const $ return Nothing)
 
 startLeaveCurrentChannel :: TeamId -> MH ()
@@ -980,7 +984,7 @@
     session <- getSession
     doAsyncWith Preempt $ do
         result <- try $ MM.mmGetChannelByName tId (trimChannelSigil rawName) session
-        return $ Just $ case result of
+        return $ Just $ Work "joinChannelByName" $ case result of
             Left (_::SomeException) -> mhError $ NoSuchChannel rawName
             Right chan -> joinChannel tId $ getId chan
 
@@ -1000,7 +1004,7 @@
             myId <- gets myUserId
             let member = MinChannelMember myId chanId
             csTeam(tId).tsPendingChannelChange .= (Just $ ChangeByChannelId tId chanId act)
-            doAsyncChannelMM Preempt chanId (\ s c -> MM.mmAddUser c member s) (const $ return act)
+            doAsyncChannelMM Preempt chanId (\ s c -> MM.mmAddUser c member s) (const $ return $ (Work "joinChannel'" <$> act))
 
 createOrFocusDMChannel :: TeamId -> UserInfo -> Maybe (ChannelId -> MH ()) -> MH ()
 createOrFocusDMChannel tId user successAct = do
@@ -1019,44 +1023,42 @@
             doAsyncWith Normal $ do
                 -- create a new channel
                 chan <- MM.mmCreateDirectMessageChannel (user^.uiId, myId) session
-                return $ successAct <*> pure (channelId chan)
+                case successAct of
+                    Nothing -> return Nothing
+                    Just f -> return $ Just $ Work "createOrFocusDMChannel" (f $ channelId chan)
 
 -- | This switches to the named channel or creates it if it is a missing
 -- but valid user channel.
 changeChannelByName :: TeamId -> Text -> MH ()
 changeChannelByName tId name = do
-    myId <- gets myUserId
     mCId <- gets (channelIdByChannelName tId name)
     mDMCId <- gets (channelIdByUsername name)
 
     withFetchedUserMaybe (UserFetchByUsername name) $ \foundUser -> do
-        if (_uiId <$> foundUser) == Just myId
-        then return ()
-        else do
-            let err = mhError $ AmbiguousName name
-            case (mCId, mDMCId) of
-              (Nothing, Nothing) ->
-                  case foundUser of
-                      -- We know about the user but there isn't already a DM
-                      -- channel, so create one.
-                      Just user -> createOrFocusDMChannel tId user Nothing
-                      -- There were no matches of any kind.
-                      Nothing -> mhError $ NoSuchChannel name
-              (Just cId, Nothing)
-                  -- We matched a channel and there was an explicit sigil, so we
-                  -- don't care about the username match.
-                  | normalChannelSigil `T.isPrefixOf` name -> setFocus tId cId
-                  -- We matched both a channel and a user, even though there is
-                  -- no DM channel.
-                  | Just _ <- foundUser -> err
-                  -- We matched a channel only.
-                  | otherwise -> setFocus tId cId
-              (Nothing, Just cId) ->
-                  -- We matched a DM channel only.
-                  setFocus tId cId
-              (Just _, Just _) ->
-                  -- We matched both a channel and a DM channel.
-                  err
+        let err = mhError $ AmbiguousName name
+        case (mCId, mDMCId) of
+          (Nothing, Nothing) ->
+              case foundUser of
+                  -- We know about the user but there isn't already a DM
+                  -- channel, so create one.
+                  Just user -> createOrFocusDMChannel tId user Nothing
+                  -- There were no matches of any kind.
+                  Nothing -> mhError $ NoSuchChannel name
+          (Just cId, Nothing)
+              -- We matched a channel and there was an explicit sigil, so we
+              -- don't care about the username match.
+              | normalChannelSigil `T.isPrefixOf` name -> setFocus tId cId
+              -- We matched both a channel and a user, even though there is
+              -- no DM channel.
+              | Just _ <- foundUser -> err
+              -- We matched a channel only.
+              | otherwise -> setFocus tId cId
+          (Nothing, Just cId) ->
+              -- We matched a DM channel only.
+              setFocus tId cId
+          (Just _, Just _) ->
+              -- We matched both a channel and a DM channel.
+              err
 
 setChannelTopic :: TeamId -> Text -> MH ()
 setChannelTopic tId msg = do
diff --git a/src/Matterhorn/State/Common.hs b/src/Matterhorn/State/Common.hs
--- a/src/Matterhorn/State/Common.hs
+++ b/src/Matterhorn/State/Common.hs
@@ -185,79 +185,80 @@
 openFilePath :: FilePath -> MH ()
 openFilePath path = openWithOpener (return $ Right path)
 
-openWithOpener :: MH (Either MHError String) -> MH ()
+openWithOpener :: IO (Either MHError String) -> MH ()
 openWithOpener getTarget = do
     cfg <- use (csResources.crConfiguration)
     case configURLOpenCommand cfg of
         Nothing ->
             mhError $ ConfigOptionMissing "urlOpenCommand"
         Just urlOpenCommand -> do
-            targetResult <- getTarget
-            let cmdWords = T.words urlOpenCommand
-                (cmds, args) = splitAt 1 (T.unpack <$> cmdWords)
-                cmd = if null cmds then "$BROWSER" else head cmds
-            case targetResult of
-                Left e -> do
-                    mhError e
-                Right target -> do
-                    -- Is the URL-opening command interactive? If
-                    -- so, pause Matterhorn and run the opener
-                    -- interactively. Otherwise run the opener
-                    -- asynchronously and continue running Matterhorn
-                    -- interactively.
-                    case configURLOpenCommandInteractive cfg of
-                        False -> do
-                            outputChan <- use (csResources.crSubprocessLog)
-                            doAsyncWith Preempt $ do
-                                runLoggedCommand outputChan cmd
-                                                 (args <> [target])
-                                                 Nothing Nothing
-                                return Nothing
-                        True -> do
-                            -- If there isn't a new message cutoff
-                            -- showing in the current channel, set one.
-                            -- This way, while the user is gone using
-                            -- their interactive URL opener, when they
-                            -- return, any messages that arrive in the
-                            -- current channel will be displayed as new.
-                            withCurrentTeam $ \tId -> do
-                                withCurrentChannel tId $ \cId curChan -> do
-                                    let msgs = curChan^.ccMessageInterface.miMessages
-                                    case findLatestUserMessage isEditable msgs of
-                                        Nothing -> return ()
-                                        Just m ->
-                                            case m^.mOriginalPost of
-                                                Nothing -> return ()
-                                                Just p ->
-                                                    case curChan^.ccInfo.cdNewMessageIndicator of
-                                                        Hide -> csChannel(cId).ccInfo.cdNewMessageIndicator .= (NewPostsAfterServerTime (p^.postCreateAtL))
-                                                        _ -> return ()
+            doAsyncWith Preempt $ do
+                targetResult <- getTarget
+                let cmdWords = T.words urlOpenCommand
+                    (cmds, args) = splitAt 1 (T.unpack <$> cmdWords)
+                    cmd = if null cmds then "$BROWSER" else head cmds
+                case targetResult of
+                    Left e -> return $ Just $ Work "openWithOpener[1]" $ do
+                        mhError e
+                    Right target -> return $ Just $ Work "openWithOpener[2]" $ do
+                        -- Is the URL-opening command interactive? If
+                        -- so, pause Matterhorn and run the opener
+                        -- interactively. Otherwise run the opener
+                        -- asynchronously and continue running Matterhorn
+                        -- interactively.
+                        case configURLOpenCommandInteractive cfg of
+                            False -> do
+                                outputChan <- use (csResources.crSubprocessLog)
+                                doAsyncWith Preempt $ do
+                                    runLoggedCommand outputChan cmd
+                                                     (args <> [target])
+                                                     Nothing Nothing
+                                    return Nothing
+                            True -> do
+                                -- If there isn't a new message cutoff
+                                -- showing in the current channel, set one.
+                                -- This way, while the user is gone using
+                                -- their interactive URL opener, when they
+                                -- return, any messages that arrive in the
+                                -- current channel will be displayed as new.
+                                withCurrentTeam $ \tId -> do
+                                    withCurrentChannel tId $ \cId curChan -> do
+                                        let msgs = curChan^.ccMessageInterface.miMessages
+                                        case findLatestUserMessage isEditable msgs of
+                                            Nothing -> return ()
+                                            Just m ->
+                                                case m^.mOriginalPost of
+                                                    Nothing -> return ()
+                                                    Just p ->
+                                                        case curChan^.ccInfo.cdNewMessageIndicator of
+                                                            Hide -> csChannel(cId).ccInfo.cdNewMessageIndicator .= (NewPostsAfterServerTime (p^.postCreateAtL))
+                                                            _ -> return ()
 
-                            -- No need to add a gap here: the websocket
-                            -- disconnect/reconnect events will automatically
-                            -- handle management of messages delivered while
-                            -- suspended.
-                            mhSuspendAndResume $ \st -> do
-                                result <- runInteractiveCommand cmd (args <> [target])
+                                -- No need to add a gap here: the websocket
+                                -- disconnect/reconnect events will automatically
+                                -- handle management of messages delivered while
+                                -- suspended.
+                                mhSuspendAndResume $ \st -> do
+                                    result <- runInteractiveCommand cmd (args <> [target])
 
-                                let waitForKeypress = do
-                                        putStrLn "Press any key to return to Matterhorn."
-                                        void getChar
+                                    let waitForKeypress = do
+                                            putStrLn "Press any key to return to Matterhorn."
+                                            void getChar
 
-                                case result of
-                                    Right ExitSuccess -> return ()
-                                    Left err -> do
-                                        putStrLn $ "URL opener subprocess " <> (show urlOpenCommand) <>
-                                                   " could not be run: " <> err
-                                        waitForKeypress
-                                    Right (ExitFailure code) -> do
-                                        putStrLn $ "URL opener subprocess " <> (show urlOpenCommand) <>
-                                                   " exited with non-zero status " <> show code
-                                        waitForKeypress
+                                    case result of
+                                        Right ExitSuccess -> return ()
+                                        Left err -> do
+                                            putStrLn $ "URL opener subprocess " <> (show urlOpenCommand) <>
+                                                       " could not be run: " <> err
+                                            waitForKeypress
+                                        Right (ExitFailure code) -> do
+                                            putStrLn $ "URL opener subprocess " <> (show urlOpenCommand) <>
+                                                       " exited with non-zero status " <> show code
+                                            waitForKeypress
 
-                                return $ case st^.csCurrentTeamId of
-                                    Nothing -> st
-                                    Just tId -> pushMode' tId Main st
+                                    return $ case st^.csCurrentTeamId of
+                                        Nothing -> st
+                                        Just tId -> pushMode' tId Main st
 
 runInteractiveCommand :: String
                       -> [String]
@@ -423,7 +424,7 @@
                     return $ do
                         forM_ results (\u -> addNewUser $ userInfoFromUser u True)
 
-            return $ Just $ act1 >> act2
+            return $ Just $ Work "fetchUsers" $ act1 >> act2
 
 invalidateChannelRenderingCache :: ChannelId -> MH ()
 invalidateChannelRenderingCache cId = do
diff --git a/src/Matterhorn/State/Editing.hs b/src/Matterhorn/State/Editing.hs
--- a/src/Matterhorn/State/Editing.hs
+++ b/src/Matterhorn/State/Editing.hs
@@ -355,7 +355,8 @@
     let ctx = AutocompleteContext { autocompleteManual = False
                                   , autocompleteFirstMatch = False
                                   }
-    checkForAutocompletion which ctx
+    target <- use (which.esTarget)
+    checkForAutocompletion target ctx
 
     -- Reset the spell check timer for this editor
     mReset <- use (which.esSpellCheckTimerReset)
@@ -433,7 +434,7 @@
                             MIChannel cId ->
                                 maybeChannelMessageInterface(cId).miEditor.esMisspellings .= allMistakes
 
-                tryMM query (return . Just . postMistakes)
+                tryMM "requestSpellCheck" query (return . Just . Work "requestSpellCheck" . postMistakes)
 
 editorEmpty :: Editor Text a -> Bool
 editorEmpty e = cursorIsAtEnd e &&
@@ -578,7 +579,10 @@
             let ctx = AutocompleteContext { autocompleteManual = True
                                           , autocompleteFirstMatch = True
                                           }
-            checkForAutocompletion which ctx
+            mTarget <- preuse (which.esTarget)
+            case mTarget of
+                Nothing -> return ()
+                Just target -> checkForAutocompletion target ctx
         Just ac -> do
             case ac^.acCompletionList.to L.listSelectedElement of
                 Nothing -> return ()
diff --git a/src/Matterhorn/State/Flagging.hs b/src/Matterhorn/State/Flagging.hs
--- a/src/Matterhorn/State/Flagging.hs
+++ b/src/Matterhorn/State/Flagging.hs
@@ -20,7 +20,7 @@
 
 loadFlaggedMessages :: Seq FlaggedPost -> ChatState -> IO ()
 loadFlaggedMessages prefs st = doAsyncWithIO Normal st $ do
-  return $ Just $ do
+  return $ Just $ Work "loadFlaggedMessages" $ do
       sequence_ [ updateMessageFlag (flaggedPostId fp) True
                 | fp <- toList prefs
                 , flaggedPostStatus fp
diff --git a/src/Matterhorn/State/Links.hs b/src/Matterhorn/State/Links.hs
--- a/src/Matterhorn/State/Links.hs
+++ b/src/Matterhorn/State/Links.hs
@@ -26,8 +26,8 @@
         LinkFileId fId -> openWithOpener (fetchAttachment fId session)
         LinkPermalink _ pId -> jumpToPost pId
 
-fetchAttachment :: FileId -> Session -> MH (Either MHError String)
-fetchAttachment fId session =
-    liftIO $ (Right <$> fetchFile fId session)
+fetchAttachment :: FileId -> Session -> IO (Either MHError String)
+fetchAttachment fId session = do
+    (Right <$> fetchFile fId session)
         `catch` (\(e::MattermostError) -> return $ Left $ ServerError e)
         `catch` (\(e::SomeException) -> return $ Left $ GenericError $ T.pack $ show e)
diff --git a/src/Matterhorn/State/ListWindow.hs b/src/Matterhorn/State/ListWindow.hs
--- a/src/Matterhorn/State/ListWindow.hs
+++ b/src/Matterhorn/State/ListWindow.hs
@@ -114,7 +114,7 @@
         fetcher <- use (which.listWindowFetchResults)
         doAsyncWith Preempt $ do
             results <- fetcher scope session searchString
-            return $ Just $ do
+            return $ Just $ Work "resetListWindowSearch" $ do
                 which.listWindowSearchResults .= newList results
                 which.listWindowSearching .= False
 
diff --git a/src/Matterhorn/State/Messages.hs b/src/Matterhorn/State/Messages.hs
--- a/src/Matterhorn/State/Messages.hs
+++ b/src/Matterhorn/State/Messages.hs
@@ -547,7 +547,7 @@
                 -- post this message or add the channel to the state.
                 case channelDeleted nc of
                     True -> return Nothing
-                    False -> return $ Just $ do
+                    False -> return $ Just $ Work "addMessageToState[1]" $ do
                         -- If the incoming message is for a group
                         -- channel we don't know about, that's because
                         -- it was previously hidden by the user. We need
@@ -674,7 +674,7 @@
                                 Nothing -> do
                                     doAsyncChannelMM Preempt cId
                                         (\s _ -> MM.mmGetThread parentId s)
-                                        (\_ p -> Just $ updatePostMap mTId p)
+                                        (\_ p -> Just $ Work "addMessageToState[2]" $ updatePostMap mTId p)
                                 _ -> return ()
                         _ -> return ()
 
@@ -936,20 +936,20 @@
     withCurrentTeam $ \tId ->
         withCurrentChannel tId $ \cId chan -> do
             let offset = max 0 $ length (chan^.ccMessageInterface.miMessages) - 2
-                page = offset `div` pageAmount
+                page = offset `div` messageFetchPageSize
                 usefulMsgs = getTwoContiguousPosts Nothing (chan^.ccMessageInterface.miMessages.to reverseMessages)
                 sndOldestId = (messagePostId . snd) =<< usefulMsgs
                 query = MM.defaultPostQuery
                           { MM.postQueryPage = maybe (Just page) (const Nothing) sndOldestId
-                          , MM.postQueryPerPage = Just pageAmount
+                          , MM.postQueryPerPage = Just messageFetchPageSize
                           , MM.postQueryBefore = sndOldestId
                           }
                 addTrailingGap = MM.postQueryBefore query == Nothing &&
                                  MM.postQueryPage query == Just 0
             doAsyncChannelMM Preempt cId
                 (\s c -> MM.mmGetPostsForChannel c query s)
-                (\c p -> Just $ do
-                    pp <- addObtainedMessages c (-pageAmount) addTrailingGap p
+                (\c p -> Just $ Work "asyncFetchMoreMessages" $ do
+                    pp <- addObtainedMessages c (-messageFetchPageSize) addTrailingGap p
                     postProcessMessageAdd pp)
 
 -- | Given a starting point and a direction to move from that point,
@@ -975,7 +975,7 @@
   when (isGap gapMessage) $
   withChannel cId $ \chan ->
     let offset = max 0 $ length (chan^.ccMessageInterface.miMessages) - 2
-        page = offset `div` pageAmount
+        page = offset `div` messageFetchPageSize
         chanMsgs = chan^.ccMessageInterface.miMessages
         fromMsg = Just gapMessage
         fetchNewer = case gapMessage^.mType of
@@ -990,7 +990,7 @@
                     _ -> error "fetch gap messages: unknown gap message type"
         query = MM.defaultPostQuery
                 { MM.postQueryPage = maybe (Just page) (const Nothing) baseId
-                , MM.postQueryPerPage = Just pageAmount
+                , MM.postQueryPerPage = Just messageFetchPageSize
                 , MM.postQueryBefore = if fetchNewer then Nothing else baseId
                 , MM.postQueryAfter = if fetchNewer then baseId else Nothing
                 }
@@ -998,8 +998,8 @@
                          MM.postQueryPage query == Just 0
     in doAsyncChannelMM Preempt cId
        (\s c -> MM.mmGetPostsForChannel c query s)
-       (\c p -> Just $ do
-           void $ addObtainedMessages c (-pageAmount) addTrailingGap p)
+       (\c p -> Just $ Work "asyncFetchMessagesForGap" $ do
+           void $ addObtainedMessages c (-messageFetchPageSize) addTrailingGap p)
 
 -- | Given a particular message ID, this fetches n messages before and
 -- after immediately before and after the specified message in order
@@ -1027,7 +1027,7 @@
     doAsyncChannelMM Preempt cId
       -- first get some messages before the target, no overlap
       (\s c -> MM.mmGetPostsForChannel c query s)
-      (\c p -> Just $ do
+      (\c p -> Just $ Work "asyncFetchMessagesSurrounding[1]" $ do
           let last2ndId = secondToLastPostId p
           void $ addObtainedMessages c (-reqAmt) False p
           -- now start 2nd from end of this fetch to fetch some
@@ -1040,7 +1040,7 @@
                        }
           doAsyncChannelMM Preempt cId
             (\s' c' -> MM.mmGetPostsForChannel c' query' s')
-            (\c' p' -> Just $ do
+            (\c' p' -> Just $ Work "asyncFetchMessagesSurrounding[2]" $ do
                 void $ addObtainedMessages c' (reqAmt + 2) False p'
             )
       )
@@ -1081,7 +1081,7 @@
             when ((not $ chan^.ccInfo.cdFetchPending) && gapInDisplayable) $ do
                    csChannel(cId).ccInfo.cdFetchPending .= True
                    doAsyncChannelMM Preempt cId op
-                       (\c p -> Just $ do
+                       (\c p -> Just $ Work "fetchVisibleIfNeeded" $ do
                            csChannel(c).ccInfo.cdFetchPending .= False
                            addObtainedMessages c (-numToRequest) addTrailingGap p >>= postProcessMessageAdd)
 
@@ -1114,7 +1114,7 @@
           session <- getSession
           doAsyncWith Preempt $ do
               result <- try $ MM.mmGetPost pId session
-              return $ Just $ do
+              return $ Just $ Work "jumpToPost" $ do
                   case result of
                       Right p -> do
                           -- Are we a member of the channel?
diff --git a/src/Matterhorn/State/PostListWindow.hs b/src/Matterhorn/State/PostListWindow.hs
--- a/src/Matterhorn/State/PostListWindow.hs
+++ b/src/Matterhorn/State/PostListWindow.hs
@@ -55,7 +55,7 @@
   session <- getSession
   doAsyncWith Preempt $ do
     posts <- fetchOp session
-    return $ Just $ do
+    return $ Just $ Work "createPostList" $ do
       messages <- installMessagesFromPosts (Just tId) posts
       -- n.b. do not use addNewPostedMessage because these messages
       -- are not new, and so no notifications or channel highlighting
diff --git a/src/Matterhorn/State/Reactions.hs b/src/Matterhorn/State/Reactions.hs
--- a/src/Matterhorn/State/Reactions.hs
+++ b/src/Matterhorn/State/Reactions.hs
@@ -30,7 +30,7 @@
   | not (p^.postHasReactionsL) = return ()
   | otherwise = doAsyncChannelMM Normal cId
         (\s _ -> fmap toList (mmGetReactionsForPost (p^.postIdL) s))
-        (\_ rs -> Just $ addReactions cId rs)
+        (\_ rs -> Just $ Work "asyncFetchReactionsForPost" $ addReactions cId rs)
 
 -- | Add the specified reactions returned by the server to the relevant
 -- posts in the specified channel. This should only be called in
diff --git a/src/Matterhorn/State/SaveAttachmentWindow.hs b/src/Matterhorn/State/SaveAttachmentWindow.hs
--- a/src/Matterhorn/State/SaveAttachmentWindow.hs
+++ b/src/Matterhorn/State/SaveAttachmentWindow.hs
@@ -36,7 +36,7 @@
                     session <- getSession
                     doAsyncWith Normal $ do
                         info <- mmGetMetadataForFile fId session
-                        return $ Just $ do
+                        return $ Just $ Work "openSaveAttachmentWindow" $ do
                             -- Use the message interface's URL list name
                             -- as a unique basis for the names of the UI
                             -- elements in the attachment dialog
diff --git a/src/Matterhorn/State/Setup/Threads.hs b/src/Matterhorn/State/Setup/Threads.hs
--- a/src/Matterhorn/State/Setup/Threads.hs
+++ b/src/Matterhorn/State/Setup/Threads.hs
@@ -48,12 +48,12 @@
 import           Matterhorn.Types
 
 
-updateUserStatuses :: [UserId] -> Session -> IO (Maybe (MH ()))
+updateUserStatuses :: [UserId] -> Session -> IO (Maybe Work)
 updateUserStatuses uIds session =
     case null uIds of
         False -> do
             statuses <- mmGetUserStatusByIds (Seq.fromList uIds) session
-            return $ Just $ do
+            return $ Just $ Work "updateUserStatuses" $ do
                 forM_ statuses $ \s ->
                     setUserStatus (statusUserId s) (statusStatus s)
         True -> return Nothing
@@ -88,7 +88,7 @@
     seconds = (* (1000 * 1000))
     refreshIntervalMicros = ceiling $ seconds $ userTypingExpiryInterval / 2
     refresh = do
-      STM.atomically $ STM.writeTChan requestChan $ return $ Just $ do
+      STM.atomically $ STM.writeTChan requestChan $ return $ Just $ Work "startTypingUsersRefreshThread(refresh)" $ do
         now <- liftIO getCurrentTime
         let expiry = addUTCTime (- userTypingExpiryInterval) now
             expireUsers mi = mi & miEditor.esEphemeral.eesTypingUsers %~ expireTypingUsers expiry
@@ -131,8 +131,8 @@
                   hFlush logHandle
 
                   STM.atomically $ STM.writeTChan requestChan $ do
-                      return $ Just $ mhError $ ProgramExecutionFailed (T.pack progName)
-                                                                       (T.pack logPath)
+                      return $ Just $ Work "startSubprocessLoggerThread" $
+                          mhError $ ProgramExecutionFailed (T.pack progName) (T.pack logPath)
 
                   logMonitor (Just (logPath, logHandle))
 
@@ -151,13 +151,13 @@
         nextTz <- case newTzResult of
             Left e -> do
                 STM.atomically $ STM.writeTChan requestChan $ do
-                    return $ Just $ do
+                    return $ Just $ Work "startTimezoneMonitorThread[1]" $ do
                         mhLog LogGeneral $ T.pack $ "Could not load time zone information: " <> show e
                 return prevTz
             Right newTz -> do
                 when (newTz /= prevTz) $
                     STM.atomically $ STM.writeTChan requestChan $ do
-                        return $ Just $ do
+                        return $ Just $ Work "startTimezoneMonitorThread[2]" $ do
                             timeZone .= newTz
                             mh invalidateCache
 
@@ -230,7 +230,7 @@
   -- requests a spell check.
   void $ forkIO $ forever $ do
     STM.atomically $ waitDelay =<< STM.readTChan delayWorkerChan
-    writeBChan eventChan (RespEvent $ requestSpellCheck checker target)
+    writeBChan eventChan (RespEvent $ Work "startSpellCheckerThread" $ requestSpellCheck checker target)
 
   -- The delay manager waits for requests to start a delay timer and
   -- signals the worker to begin waiting.
@@ -276,20 +276,20 @@
     let maps = catMaybes mMaps
         finalMap = foldl M.union mempty maps
 
-    writeBChan eventChan $ RespEvent $ do
+    writeBChan eventChan $ RespEvent $ Work "startSyntaxMapLoaderThread" $ do
         csResources.crSyntaxMap .= finalMap
         mh invalidateCache
 
 -------------------------------------------------------------------
 -- Async worker thread
 
-startAsyncWorkerThread :: Config -> STM.TChan (IO (Maybe (MH ()))) -> BChan MHEvent -> IO ()
+startAsyncWorkerThread :: Config -> STM.TChan (IO (Maybe Work)) -> BChan MHEvent -> IO ()
 startAsyncWorkerThread c r e = void $ forkIO $ asyncWorker c r e
 
-asyncWorker :: Config -> STM.TChan (IO (Maybe (MH ()))) -> BChan MHEvent -> IO ()
+asyncWorker :: Config -> STM.TChan (IO (Maybe Work)) -> BChan MHEvent -> IO ()
 asyncWorker c r e = forever $ doAsyncWork c r e
 
-doAsyncWork :: Config -> STM.TChan (IO (Maybe (MH ()))) -> BChan MHEvent -> IO ()
+doAsyncWork :: Config -> STM.TChan (IO (Maybe Work)) -> BChan MHEvent -> IO ()
 doAsyncWork config requestChan eventChan = do
     let rateLimitNotify sec = do
             writeBChan eventChan $ RateLimitExceeded sec
@@ -344,7 +344,7 @@
 
               -- The IO action was run successfully and returned a state
               -- transformation.
-              Just (Just action) -> writeBChan eventChan (RespEvent action)
+              Just (Just wk) -> writeBChan eventChan (RespEvent wk)
 
 -- | Run an IO action. If the action raises a RateLimitException, invoke
 -- the provided rate limit exception handler with the rate limit window
diff --git a/src/Matterhorn/State/Teams.hs b/src/Matterhorn/State/Teams.hs
--- a/src/Matterhorn/State/Teams.hs
+++ b/src/Matterhorn/State/Teams.hs
@@ -117,7 +117,7 @@
         doAsyncWith Normal $ do
             t <- MM.mmGetTeam tId session
             (ts, chans) <- buildTeamState cr me t
-            return $ Just $ do
+            return $ Just $ Work "handleJoinTeam" $ do
                     addTeamState ts chans
                     updateSidebar $ Just tId
                     updateWindowTitle
@@ -129,7 +129,7 @@
 -- current user was removed from the team.
 handleLeaveTeam :: TeamId -> MH ()
 handleLeaveTeam tId =
-    doAsyncWith Normal $ return $ Just $ do
+    doAsyncWith Normal $ return $ Just $ Work "handleLeaveTeam" $ do
         mhLog LogGeneral $ T.pack $ "Leaving team " <> show tId
         removeTeam tId
         updateWindowTitle
@@ -148,7 +148,7 @@
     mhLog LogGeneral $ T.pack $ "Updating team " <> show tId
     doAsyncWith Normal $ do
         t <- MM.mmGetTeam tId session
-        return $ Just $ do
+        return $ Just $ Work "handleUpdateTeam" $ do
             updateTeam t
             -- Invalidate the cache since we happen to know that the
             -- team name is in the cached sidebar.
@@ -237,7 +237,7 @@
         let maybeOpenThread = do
                 lrs <- mLrs
                 (cId, pId) <- lrs^.lrsOpenThread
-                return $ scheduleMH cr (openThreadWindow tId cId pId)
+                return $ scheduleMH cr "buildTeamState" (openThreadWindow tId cId pId)
         fromMaybe (return ()) maybeOpenThread
 
     let ts = newTeamState config team chanZip
@@ -277,7 +277,8 @@
         Just as -> Just <$> (newSpellCheckTimer as eventQueue $ MIChannel cId)
     let editorName = MessageInput cId
         attachmentListName = AttachmentList cId
-    return $ newEditState editorName attachmentListName tId cId NewPost True reset
+        target = EditorForChannel cId
+    return $ newEditState editorName attachmentListName target tId cId NewPost True reset
 
 emptyEditStateForThread :: Maybe Aspell -> BCH.BChan MHEvent -> TeamId -> ChannelId -> EditMode -> IO (EditState Name)
 emptyEditStateForThread checker eventQueue tId cId initialEditMode = do
@@ -286,7 +287,8 @@
         Just as -> Just <$> (newSpellCheckTimer as eventQueue $ MITeamThread tId)
     let editorName = ThreadMessageInput cId
         attachmentListName = ThreadEditorAttachmentList cId
-    return $ newEditState editorName attachmentListName (Just tId) cId initialEditMode False reset
+        target = EditorForThread tId
+    return $ newEditState editorName attachmentListName target (Just tId) cId initialEditMode False reset
 
 newThreadInterface :: Maybe Aspell
                    -> BCH.BChan MHEvent
diff --git a/src/Matterhorn/State/Teams.hs-boot b/src/Matterhorn/State/Teams.hs-boot
--- a/src/Matterhorn/State/Teams.hs-boot
+++ b/src/Matterhorn/State/Teams.hs-boot
@@ -1,4 +1,7 @@
-module Matterhorn.State.Teams where
+module Matterhorn.State.Teams
+  ( makeClientChannel
+  )
+where
 
 import           Prelude ()
 import           Matterhorn.Prelude
@@ -11,4 +14,11 @@
 import           Matterhorn.Types ( MHEvent )
 import           Matterhorn.Types.Channels ( ClientChannel )
 
-makeClientChannel :: (MonadIO m) => BCH.BChan MHEvent -> Maybe Aspell -> UserId -> Maybe TeamId -> Channel -> ChannelMember -> m ClientChannel
+makeClientChannel :: (MonadIO m)
+                  => BCH.BChan MHEvent
+                  -> Maybe Aspell
+                  -> UserId
+                  -> Maybe TeamId
+                  -> Channel
+                  -> ChannelMember
+                  -> m ClientChannel
diff --git a/src/Matterhorn/State/ThreadWindow.hs b/src/Matterhorn/State/ThreadWindow.hs
--- a/src/Matterhorn/State/ThreadWindow.hs
+++ b/src/Matterhorn/State/ThreadWindow.hs
@@ -29,7 +29,7 @@
         -- Fetch the entire thread associated with the post.
         doAsyncMM Preempt getThread processThread
         where getThread session = MM.mmGetThread pId session
-              processThread posts = Just $ do
+              processThread posts = Just $ Work "openThreadWindow" $ do
                   let numPosts = HM.size (MM.postsPosts posts)
 
                   when (numPosts > 0) $ do
diff --git a/src/Matterhorn/State/UserListWindow.hs b/src/Matterhorn/State/UserListWindow.hs
--- a/src/Matterhorn/State/UserListWindow.hs
+++ b/src/Matterhorn/State/UserListWindow.hs
@@ -40,7 +40,7 @@
 
         doAsyncWith Preempt $ do
             stats <- MM.mmGetChannelStatistics cId session
-            return $ Just $ do
+            return $ Just $ Work "enterChannelMembersUserList" $ do
                 enterUserListMode myTId (ChannelMembers cId myTId) (Just $ channelStatsMemberCount stats)
                   (\u -> case u^.uiId /= myId of
                     True -> createOrFocusDMChannel myTId u Nothing >> return True
diff --git a/src/Matterhorn/State/Users.hs b/src/Matterhorn/State/Users.hs
--- a/src/Matterhorn/State/Users.hs
+++ b/src/Matterhorn/State/Users.hs
@@ -35,8 +35,8 @@
                      usrList = toList nUsers
                  return $ usrInfo <$> usrList
 
-          addNewUsers :: [UserInfo] -> Maybe (MH ())
-          addNewUsers is = Just $ mapM_ addNewUser is >> after
+          addNewUsers :: [UserInfo] -> Maybe Work
+          addNewUsers is = Just $ Work "handleNewUsers" $ mapM_ addNewUser is >> after
 
 -- | Handle the typing events from the websocket to show the currently
 -- typing users on UI
@@ -109,7 +109,7 @@
                                              }
                         MM.mmSearchUsers req session
 
-                return $ Just $ do
+                return $ Just $ Work "withFetchedUserMaybe" $ do
                     infos <- forM (F.toList results) $ \u -> do
                         let info = userInfoFromUser u True
                         addNewUser info
diff --git a/src/Matterhorn/Types.hs b/src/Matterhorn/Types.hs
--- a/src/Matterhorn/Types.hs
+++ b/src/Matterhorn/Types.hs
@@ -15,6 +15,7 @@
   , MHError(..)
   , CPUUsagePolicy(..)
   , SemEq(..)
+  , Work(..)
   , handleEventWith
   , getServerBaseUrl
   , serverBaseUrl
@@ -178,6 +179,7 @@
   , withCurrentChannel
   , withCurrentChannel'
   , withCurrentTeam
+  , forEachTeam
 
   , csTeamZipper
   , csTeams
@@ -1013,6 +1015,7 @@
     | LogWebsocket
     | LogError
     | LogUserMark
+    | LogAsyncWork
     deriving (Eq, Show)
 
 -- | A log message.
@@ -1110,7 +1113,7 @@
 
 -- | A 'RequestChan' is a queue of operations we have to perform in the
 -- background to avoid blocking on the main loop
-type RequestChan = STM.TChan (IO (Maybe (MH ())))
+type RequestChan = STM.TChan (IO (Maybe Work))
 
 -- | Help topics
 data HelpTopic =
@@ -1391,8 +1394,8 @@
 -- | The state of the post list window.
 data PostListWindowState =
     PostListWindowState { _postListPosts    :: Messages
-                         , _postListSelected :: Maybe PostId
-                         }
+                        , _postListSelected :: Maybe PostId
+                        }
 
 data InternalTheme =
     InternalTheme { internalThemeName :: Text
@@ -1581,14 +1584,16 @@
 instance St.MonadIO MH where
     liftIO = MH . St.liftIO
 
+data Work = Work String (MH ())
+
 -- | This represents events that we handle in the main application loop.
 data MHEvent =
     WSEvent WebsocketEvent
     -- ^ For events that arise from the websocket
     | WSActionResponse WebsocketActionResponse
     -- ^ For responses to websocket actions
-    | RespEvent (MH ())
-    -- ^ For the result values of async IO operations
+    | RespEvent Work
+    -- ^ For the result values of async operations
     | RefreshWebsocketEvent
     -- ^ Tell our main loop to refresh the websocket connection
     | WebsocketParseError String
@@ -1808,6 +1813,11 @@
     case mtId of
         Nothing -> return ()
         Just tId -> f tId
+
+forEachTeam :: (TeamId -> MH ()) -> MH ()
+forEachTeam f = do
+    ts <- use csTeams
+    mapM_ f (HM.keys ts)
 
 withCurrentChannel :: TeamId -> (ChannelId -> ClientChannel -> MH ()) -> MH ()
 withCurrentChannel tId f = do
diff --git a/src/Matterhorn/Types/DirectionalSeq.hs b/src/Matterhorn/Types/DirectionalSeq.hs
--- a/src/Matterhorn/Types/DirectionalSeq.hs
+++ b/src/Matterhorn/Types/DirectionalSeq.hs
@@ -10,7 +10,22 @@
    be constructed by the functions in this module.
 -}
 
-module Matterhorn.Types.DirectionalSeq where
+module Matterhorn.Types.DirectionalSeq
+  ( DirectionalSeq(..)
+
+  , SeqDirection(..)
+  , Chronological
+  , Retrograde
+
+  , withDirSeqHead
+  , dirSeqPartition
+  , dirSeqBreakl
+  , onDirSeqSubset
+  , emptyDirSeq
+  , onDirectedSeq
+  , appendDirSeq
+  )
+where
 
 import           Prelude ()
 import           Matterhorn.Prelude
diff --git a/src/Matterhorn/Types/EditState.hs b/src/Matterhorn/Types/EditState.hs
--- a/src/Matterhorn/Types/EditState.hs
+++ b/src/Matterhorn/Types/EditState.hs
@@ -26,7 +26,10 @@
   , esSpellCheckTimerReset
   , esTeamId
   , esChannelId
+  , esTarget
 
+  , EditorTarget(..)
+
   , EphemeralEditState(..)
   , defaultEphemeralEditState
   , eesMultiline
@@ -76,9 +79,10 @@
     -- ^ @channel: notify everyone in the channel.
 
 data AutocompleteAlternative =
-    UserCompletion User Bool
-    -- ^ User, plus whether the user is in the channel that triggered
-    -- the autocomplete
+    UserCompletion User Bool Text
+    -- ^ User, plus whether the user is in the channel that triggered the
+    -- autocomplete and any prefix (e.g. the preceeding portion of a user list)
+    -- that should be retained when subtituting this autocompletion.
     | SpecialMention SpecialMention
     -- ^ A special mention.
     | ChannelCompletion Bool Channel
@@ -90,8 +94,13 @@
     | EmojiCompletion Text
     -- ^ The text of an emoji completion
 
+-- | This returns the potential auto-completion final portion that might be used
+-- to match and therefore complete the current entry.  Note that this is just the
+-- final completion portion; it differs from autocompleteAlternativeReplacement
+-- in that it does not include any sigils or prefixes; this value is often used
+-- to filter text for the results that will match the auto-completion.
 autocompleteAlternativeText :: AutocompleteAlternative -> Text
-autocompleteAlternativeText (UserCompletion u _) =
+autocompleteAlternativeText (UserCompletion u _ _) =
     userUsername u
 autocompleteAlternativeText (SpecialMention MentionChannel) =
     "channel"
@@ -123,13 +132,14 @@
                    ]
         mkPair v = (specialMentionName v, v)
 
+-- | Returns the actual text that should replace the current autocompletion word.
 autocompleteAlternativeReplacement :: AutocompleteAlternative -> Text
 autocompleteAlternativeReplacement (EmojiCompletion e) =
     ":" <> e <> ":"
 autocompleteAlternativeReplacement (SpecialMention m) =
     addUserSigil $ specialMentionName m
-autocompleteAlternativeReplacement (UserCompletion u _) =
-    addUserSigil $ userUsername u
+autocompleteAlternativeReplacement (UserCompletion u _ p) =
+    addUserSigil $ p <> userUsername u
 autocompleteAlternativeReplacement (ChannelCompletion _ c) =
     normalChannelSigil <> (sanitizeUserText $ channelName c)
 autocompleteAlternativeReplacement (SyntaxCompletion t) =
@@ -190,6 +200,11 @@
                       -- on, so this cache does not live very long.
                       }
 
+data EditorTarget =
+    EditorForThread TeamId
+    | EditorForChannel ChannelId
+    deriving (Eq, Show)
+
 -- | The 'EditState' value contains the editor widget itself as well as
 -- history and metadata we need for editing-related operations.
 data EditState n =
@@ -232,10 +247,12 @@
               , _esTeamId :: Maybe TeamId
               -- ^ Team ID associated with this edit state (optional
               -- since not all channels are associated with teams)
+              , _esTarget :: EditorTarget
+              -- ^ Target for this editor
               }
 
-newEditState :: n -> n -> Maybe TeamId -> ChannelId -> EditMode -> Bool -> Maybe (IO ()) -> EditState n
-newEditState editorName attachmentListName tId cId initialEditMode showReplyPrompt reset =
+newEditState :: n -> n -> EditorTarget -> Maybe TeamId -> ChannelId -> EditMode -> Bool -> Maybe (IO ()) -> EditState n
+newEditState editorName attachmentListName target tId cId initialEditMode showReplyPrompt reset =
     EditState { _esEditor               = editor editorName Nothing ""
               , _esEphemeral            = defaultEphemeralEditState
               , _esEditMode             = initialEditMode
@@ -250,6 +267,7 @@
               , _esSpellCheckTimerReset = reset
               , _esChannelId            = cId
               , _esTeamId               = tId
+              , _esTarget               = target
               }
 
 data EphemeralEditState =
diff --git a/syntax/abc.xml b/syntax/abc.xml
--- a/syntax/abc.xml
+++ b/syntax/abc.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!-- Andrea Primiani - primiani at dag dot it
  	version1.10 - 12 december 2005 -->
 <language name="ABC" version="8" kateversion="5.0" section="Other" extensions="*.abc;*.ABC" mimetype="text/vnd.abc" casesensitive="1" author="Andrea Primiani (primiani@dag.it)" license="LGPL">
diff --git a/syntax/actionscript.xml b/syntax/actionscript.xml
--- a/syntax/actionscript.xml
+++ b/syntax/actionscript.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
-<language name="ActionScript 2.0" version="9" kateversion="5.62" section="Sources" extensions="*.as" mimetype="text/x-actionscript" license="LGPL" author="Aaron Miller (armantic101@gmail.com)">
+<!DOCTYPE language>
+<language name="ActionScript 2.0" version="10" kateversion="5.79" section="Sources" extensions="*.as" mimetype="text/x-actionscript" license="LGPL" author="Aaron Miller (armantic101@gmail.com)">
   <highlighting>
     
     <list name="properties">
diff --git a/syntax/ada.xml b/syntax/ada.xml
--- a/syntax/ada.xml
+++ b/syntax/ada.xml
@@ -1,13 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language
+[
+  <!ENTITY b2 "[0-1]++(_?[0-1])*+">
+  <!ENTITY b3 "[0-2]++(_?[0-2])*+">
+  <!ENTITY b4 "[0-3]++(_?[0-3])*+">
+  <!ENTITY b5 "[0-4]++(_?[0-4])*+">
+  <!ENTITY b6 "[0-5]++(_?[0-5])*+">
+  <!ENTITY b7 "[0-6]++(_?[0-6])*+">
+  <!ENTITY b8 "[0-7]++(_?[0-7])*+">
+  <!ENTITY b9 "[0-8]++(_?[0-8])*+">
+  <!ENTITY b10 "[0-9]++(_?[0-9])*+">
+  <!ENTITY b11 "[0-9a-a]++(_?[0-9]a-a)*+">
+  <!ENTITY b12 "[0-9a-b]++(_?[0-9]a-b)*+">
+  <!ENTITY b13 "[0-9a-c]++(_?[0-9]a-c)*+">
+  <!ENTITY b14 "[0-9a-d]++(_?[0-9]a-d)*+">
+  <!ENTITY b15 "[0-9a-e]++(_?[0-9]a-e)*+">
+  <!ENTITY b16 "[0-9a-f]++(_?[0-9]a-f)*+">
+]>
 <language name="Ada"
-          version="6"
-          kateversion="5.0"
+          version="7"
+          kateversion="5.79"
           section="Sources"
           extensions="*.adb;*.ads;*.ada;*.a"
           indenter="ada"
           mimetype="text/x-adasrc">
   <highlighting>
+    <!-- http://ada-auth.org/standards/rm12_w_tc1/html/RM-P.html -->
+
+    <!-- http://ada-auth.org/standards/rm12_w_tc1/html/RM-2-9.html -->
     <list name="keywords">
       <item>abort</item>
       <item>abs</item>
@@ -21,6 +41,7 @@
       <item>at</item>
       <item>begin</item>
       <item>body</item>
+      <item>case</item>
       <item>constant</item>
       <item>declare</item>
       <item>delay</item>
@@ -37,10 +58,12 @@
       <item>function</item>
       <item>generic</item>
       <item>goto</item>
+      <item>if</item>
       <item>in</item>
       <item>interface</item>
       <item>is</item>
       <item>limited</item>
+      <item>loop</item>
       <item>mod</item>
       <item>new</item>
       <item>not</item>
@@ -57,14 +80,17 @@
       <item>protected</item>
       <item>raise</item>
       <item>range</item>
-      <item>rem</item>
       <item>record</item>
+      <item>rem</item>
       <item>renames</item>
       <item>requeue</item>
       <item>return</item>
       <item>reverse</item>
+      <item>select</item>
       <item>separate</item>
+      <item>some</item>
       <item>subtype</item>
+      <item>synchronized</item>
       <item>tagged</item>
       <item>task</item>
       <item>terminate</item>
@@ -77,6 +103,7 @@
       <item>with</item>
       <item>xor</item>
     </list>
+
     <list name="pragmas">
       <item>all_calls_remote</item>
       <item>assert</item>
@@ -128,6 +155,7 @@
       <item>volatile</item>
       <item>volatile_components</item>
     </list>
+
     <list name="types">
       <item>boolean</item>
       <item>character</item>
@@ -145,38 +173,151 @@
       <item>wide_wide_character</item>
       <item>wide_wide_string</item>
     </list>
+
     <contexts>
       <context attribute="Normal Text" lineEndContext="#stay" name="Default">
-        <RegExpr attribute="Keyword" context="#stay" String="\brecord\b"       insensitive="true" beginRegion="RecordRegion"/>
-        <RegExpr attribute="Keyword" context="#stay" String="\bend\s+record\b" insensitive="true"   endRegion="RecordRegion"/>
-        <RegExpr attribute="Keyword" context="#stay" String="\bcase\b"         insensitive="true" beginRegion="CaseRegion"/>
-        <RegExpr attribute="Keyword" context="#stay" String="\bend\s+case\b"   insensitive="true"   endRegion="CaseRegion"/>
-        <RegExpr attribute="Keyword" context="#stay" String="\bif\b"           insensitive="true" beginRegion="IfRegion"/>
-        <RegExpr attribute="Keyword" context="#stay" String="\bend\s+if\b"     insensitive="true"   endRegion="IfRegion"/>
-        <RegExpr attribute="Keyword" context="#stay" String="\bloop\b"         insensitive="true" beginRegion="LoopRegion"/>
-        <RegExpr attribute="Keyword" context="#stay" String="\bend\s+loop\b"   insensitive="true"   endRegion="LoopRegion"/>
-        <RegExpr attribute="Keyword" context="#stay" String="\bselect\b"       insensitive="true" beginRegion="SelectRegion"/>
-        <RegExpr attribute="Keyword" context="#stay" String="\bend\s+select\b" insensitive="true"   endRegion="SelectRegion"/>
-        <RegExpr attribute="Keyword" context="#stay" String="\bbegin\b"        insensitive="true" beginRegion="BeginRegion"/>
-        <RegExpr attribute="Keyword" context="#stay" String="\bend\b"          insensitive="true"   endRegion="BeginRegion"/>
+        <DetectSpaces />
+
         <StringDetect attribute="Region Marker" context="Region Marker" String="--  BEGIN" beginRegion="RegionMarker" firstNonSpace="true" />
         <StringDetect attribute="Region Marker" context="Region Marker" String="--  END" endRegion="RegionMarker" firstNonSpace="true" />
+        <Detect2Chars attribute="Comment" context="Comment" char="-" char1="-"/>
+        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;|"/>
+        <AnyChar context="Numeric" String="0123456789" lookAhead="1"/>
+        <DetectChar context="String" char="&quot;" lookAhead="1"/>
+
+        <WordDetect attribute="Keyword" context="#stay" String="record" insensitive="true" beginRegion="RecordRegion"/>
+        <WordDetect attribute="Keyword" context="#stay" String="case"   insensitive="true" beginRegion="CaseRegion"/>
+        <WordDetect attribute="Keyword" context="#stay" String="if"     insensitive="true" beginRegion="IfRegion"/>
+        <WordDetect attribute="Keyword" context="#stay" String="loop"   insensitive="true" beginRegion="LoopRegion"/>
+        <WordDetect attribute="Keyword" context="#stay" String="select" insensitive="true" beginRegion="SelectRegion"/>
+        <WordDetect attribute="Keyword" context="#stay" String="begin"  insensitive="true" beginRegion="BeginRegion"/>
+
+        <WordDetect attribute="Keyword" context="End"   String="end"    insensitive="true" lookAhead="1"/>
+        <WordDetect attribute="Keyword" context="Null"  String="null"   insensitive="true"/>
+
         <keyword attribute="Keyword" context="#stay" String="keywords"/>
         <keyword attribute="Pragmas" context="#stay" String="pragmas" />
         <keyword attribute="Data Type" context="#stay" String="types" />
-        <Float attribute="Float" context="#stay"/>
-        <Int attribute="Decimal" context="#stay"/>
+
+        <DetectIdentifier />
+
         <RegExpr attribute="Char" context="#stay" String="'.'"/>
-        <DetectChar attribute="String" context="String" char="&quot;"/>
-        <Detect2Chars attribute="Comment" context="Comment" char="-" char1="-"/>
-        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;|"/>
       </context>
-      <context attribute="Region Marker" lineEndContext="#pop" name="Region Marker"/>
-      <context attribute="String" lineEndContext="#pop" name="String">
-        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+
+      <context attribute="Keyword" lineEndContext="#pop" name="End">
+        <RegExpr    attribute="Keyword" context="#pop" String="end\s+record\b" insensitive="true"   endRegion="RecordRegion"/>
+        <RegExpr    attribute="Keyword" context="#pop" String="end\s+case\b"   insensitive="true"   endRegion="CaseRegion"/>
+        <RegExpr    attribute="Keyword" context="#pop" String="end\s+if\b"     insensitive="true"   endRegion="IfRegion"/>
+        <RegExpr    attribute="Keyword" context="#pop" String="end\s+loop\b"   insensitive="true"   endRegion="LoopRegion"/>
+        <RegExpr    attribute="Keyword" context="#pop" String="end\s+select\b" insensitive="true"   endRegion="SelectRegion"/>
+        <DetectIdentifier attribute="Keyword" context="#pop" endRegion="BeginRegion"/>
       </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="Null" fallthroughContext="#pop">
+        <DetectSpaces attribute="Normal Text"/>
+        <WordDetect attribute="Keyword" context="#pop" String="record" insensitive="true"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="Numeric">
+        <RegExpr attribute="Float" context="NumericExp" String="\b&b10;\.&b10;"/>
+        <RegExpr attribute="Decimal" context="NumericExp" String="\b&b10;(?!#)"/>
+        <WordDetect attribute="Base" context="Base2" String="2#" additionalDeliminator="#"/>
+        <WordDetect attribute="Base" context="Base3" String="3#" additionalDeliminator="#"/>
+        <WordDetect attribute="Base" context="Base4" String="4#" additionalDeliminator="#"/>
+        <WordDetect attribute="Base" context="Base5" String="5#" additionalDeliminator="#"/>
+        <WordDetect attribute="Base" context="Base6" String="6#" additionalDeliminator="#"/>
+        <WordDetect attribute="Base" context="Base7" String="7#" additionalDeliminator="#"/>
+        <WordDetect attribute="Base" context="Base8" String="8#" additionalDeliminator="#"/>
+        <WordDetect attribute="Base" context="Base9" String="9#" additionalDeliminator="#"/>
+        <WordDetect attribute="Base" context="Base10" String="10#" additionalDeliminator="#"/>
+        <WordDetect attribute="Base" context="Base11" String="11#" additionalDeliminator="#"/>
+        <WordDetect attribute="Base" context="Base12" String="12#" additionalDeliminator="#"/>
+        <WordDetect attribute="Base" context="Base13" String="13#" additionalDeliminator="#"/>
+        <WordDetect attribute="Base" context="Base14" String="14#" additionalDeliminator="#"/>
+        <WordDetect attribute="Base" context="Base15" String="15#" additionalDeliminator="#"/>
+        <WordDetect attribute="Base" context="Base16" String="16#" additionalDeliminator="#"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="NumericExp" fallthroughContext="#pop#pop">
+        <RegExpr attribute="Exponent" context="#pop#pop" String="(?:[eE][-+]?&b10;)"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="Base2" fallthroughContext="#pop#pop">
+        <RegExpr attribute="Float" context="BaseExp" String="&b2;\.&b2;"/>
+        <RegExpr attribute="Decimal" context="BaseExp" String="&b2;"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Base3" fallthroughContext="#pop#pop">
+        <RegExpr attribute="Float" context="BaseExp" String="&b3;\.&b3;"/>
+        <RegExpr attribute="Decimal" context="BaseExp" String="&b3;"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Base4" fallthroughContext="#pop#pop">
+        <RegExpr attribute="Float" context="BaseExp" String="&b4;\.&b4;"/>
+        <RegExpr attribute="Decimal" context="BaseExp" String="&b4;"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Base5" fallthroughContext="#pop#pop">
+        <RegExpr attribute="Float" context="BaseExp" String="&b5;\.&b5;"/>
+        <RegExpr attribute="Decimal" context="BaseExp" String="&b5;"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Base6" fallthroughContext="#pop#pop">
+        <RegExpr attribute="Float" context="BaseExp" String="&b6;\.&b6;"/>
+        <RegExpr attribute="Decimal" context="BaseExp" String="&b6;"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Base7" fallthroughContext="#pop#pop">
+        <RegExpr attribute="Float" context="BaseExp" String="&b7;\.&b7;"/>
+        <RegExpr attribute="Decimal" context="BaseExp" String="&b7;"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Base8" fallthroughContext="#pop#pop">
+        <RegExpr attribute="Float" context="BaseExp" String="&b8;\.&b8;"/>
+        <RegExpr attribute="Decimal" context="BaseExp" String="&b8;"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Base9" fallthroughContext="#pop#pop">
+        <RegExpr attribute="Float" context="BaseExp" String="&b9;\.&b9;"/>
+        <RegExpr attribute="Decimal" context="BaseExp" String="&b9;"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Base10" fallthroughContext="#pop#pop">
+        <RegExpr attribute="Float" context="BaseExp" String="&b10;\.&b10;"/>
+        <RegExpr attribute="Decimal" context="BaseExp" String="&b10;"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Base11" fallthroughContext="#pop#pop">
+        <RegExpr attribute="Float" context="BaseExp" String="&b11;\.&b11;" insensitive="1"/>
+        <RegExpr attribute="Decimal" context="BaseExp" String="&b11;" insensitive="1"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Base12" fallthroughContext="#pop#pop">
+        <RegExpr attribute="Float" context="BaseExp" String="&b12;\.&b12;" insensitive="1"/>
+        <RegExpr attribute="Decimal" context="BaseExp" String="&b12;" insensitive="1"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Base13" fallthroughContext="#pop#pop">
+        <RegExpr attribute="Float" context="BaseExp" String="&b13;\.&b13;" insensitive="1"/>
+        <RegExpr attribute="Decimal" context="BaseExp" String="&b13;" insensitive="1"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Base14" fallthroughContext="#pop#pop">
+        <RegExpr attribute="Float" context="BaseExp" String="&b14;\.&b14;" insensitive="1"/>
+        <RegExpr attribute="Decimal" context="BaseExp" String="&b14;" insensitive="1"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Base15" fallthroughContext="#pop#pop">
+        <RegExpr attribute="Float" context="BaseExp" String="&b15;\.&b15;" insensitive="1"/>
+        <RegExpr attribute="Decimal" context="BaseExp" String="&b15;" insensitive="1"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Base16" fallthroughContext="#pop#pop">
+        <RegExpr attribute="Float" context="BaseExp" String="&b16;\.&b16;" insensitive="1"/>
+        <RegExpr attribute="Decimal" context="BaseExp" String="&b16;" insensitive="1"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="BaseExp" fallthroughContext="#pop#pop#pop">
+        <DetectChar attribute="Base" context="#pop#pop!NumericExp" char="#"/>
+      </context>
+
+      <context attribute="Region Marker" lineEndContext="#pop" name="Region Marker">
+      </context>
+
+      <context attribute="String" lineEndContext="#pop" name="String" fallthroughContext="PartialString">
+        <RangeDetect attribute="String" context="#pop" char="&quot;" char1="&quot;"/>
+      </context>
+      <context attribute="String" lineEndContext="#pop#pop" name="PartialString">
+      </context>
+
       <context attribute="Comment" lineEndContext="#pop" name="Comment">
+        <DetectSpaces attribute="Comment"/>
         <IncludeRules context="##Comments" />
+        <DetectIdentifier attribute="Comment"/>
       </context>
     </contexts>
     <itemDatas>
@@ -186,6 +327,8 @@
       <itemData name="Data Type"   defStyleNum="dsDataType"/>
       <itemData name="Decimal"     defStyleNum="dsDecVal" />
       <itemData name="Float"       defStyleNum="dsFloat" />
+      <itemData name="Base"        defStyleNum="dsBaseN" />
+      <itemData name="Exponent"    defStyleNum="dsDecVal" />
       <itemData name="Char"        defStyleNum="dsChar" />
       <itemData name="String"      defStyleNum="dsString" />
       <itemData name="Comment"     defStyleNum="dsComment" />
diff --git a/syntax/agda.xml b/syntax/agda.xml
--- a/syntax/agda.xml
+++ b/syntax/agda.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"[
+<!DOCTYPE language[
   <!ENTITY charsdelim "_;.&#34;(){}@">
   <!ENTITY wordsep "(?=[&charsdelim;]|\s|$)">
 ]>
diff --git a/syntax/alert.xml b/syntax/alert.xml
--- a/syntax/alert.xml
+++ b/syntax/alert.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
-<language version="6" kateversion="3.1" name="Alerts" section="Other" extensions="" mimetype="" author="Dominik Haumann (dhaumann@kde.org)" license="MIT" hidden="true">
+<!DOCTYPE language>
+<language version="8" kateversion="3.1" name="Alerts" section="Other" extensions="" mimetype="" author="Dominik Haumann (dhaumann@kde.org)" license="MIT" hidden="true">
   <highlighting>
     <list name="alerts_hi">
       <item>ALERT</item>
@@ -36,6 +36,8 @@
         <WordDetect attribute="Region Marker" context="#stay" String="END" endRegion="AlertRegion2" />
         <keyword attribute="Alert Level 1" context="#stay" String="alerts_hi" />
         <keyword attribute="Alert Level 2" context="#stay" String="alerts_mid" />
+        <!-- Some (Python?) linters use `noqa:` (small case w/ colon) -->
+        <WordDetect attribute="Alert Level 2" context="#stay" String="noqa:" />
         <keyword attribute="Alert Level 3" context="#stay" String="alerts_lo" />
       </context>
     </contexts>
@@ -48,7 +50,8 @@
     </itemDatas>
   </highlighting>
   <general>
-    <keywords casesensitive="1"/>
+    <!-- NO-BREAK SPACE (nbsp) as deliminator -->
+    <keywords casesensitive="1" additionalDeliminator="&#160;"/>
   </general>
 </language>
 <!-- kate: indent-width 2; -->
diff --git a/syntax/apache.xml b/syntax/apache.xml
--- a/syntax/apache.xml
+++ b/syntax/apache.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 
 <!-- Changelog:
 
diff --git a/syntax/asn1.xml b/syntax/asn1.xml
--- a/syntax/asn1.xml
+++ b/syntax/asn1.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!--
         You'll find the "Writing a Kate Highlighting XML File HOWTO" at http://kate.kde.org/doc/hlhowto.php
         This is a template for the XML format used for syntax highlight descriptions
@@ -13,12 +13,10 @@
 
         You'll find the "Writing a Kate Highlighting XML File HOWTO" at http://kate.kde.org/doc/hlhowto.php
 -->
-<language name="ASN.1" section="Markup" version="5" kateversion="5.0" extensions="*.asn;*.asn1" mimetype="" author="Philippe Rigault" license="GPL">
+<language name="ASN.1" section="Markup" version="6" kateversion="5.0" extensions="*.asn;*.asn1" mimetype="" author="Philippe Rigault" license="GPL">
   <highlighting>
     <list name="keywords">
       <item>DEFINITIONS</item>
-      <item>BEGIN</item>
-      <item>END</item>
       <item>EXPORTS</item>
       <item>IMPORTS</item>
       <item>FROM</item>
@@ -29,6 +27,11 @@
       <item>OPTIONAL</item>
       <item>FALSE</item>
       <item>TRUE</item>
+      <item>AUTOMATIC</item>
+      <item>CLASS</item>
+      <item>WITH</item>
+      <item>SIZE</item>
+      <item>TAGS</item>
     </list>
     <list name="types">
       <item>BOOLEAN</item>
@@ -42,32 +45,67 @@
       <item>SET</item>
       <item>CHOICE</item>
       <item>OF</item>
-      <item>VisibleString</item>
+      <item>UNION</item>
       <item>StringStore</item>
+      <item>GeneralString</item>
+      <item>IA5String</item>
+      <item>ISO64String</item>
+      <item>NumericString</item>
+      <item>PrintableString</item>
+      <item>T61String</item>
+      <item>TeletexString</item>
+      <item>UniversalString</item>
+      <item>UTF8String</item>
+      <item>VideotexString</item>
+      <item>VisibleString</item>
+      <item>DATE</item>
+      <item>DATE-TIME</item>
+      <item>DURATION</item>
+      <item>GeneralizedTime</item>
+      <item>UTCTime</item>
     </list>
     
     <contexts>
       <context name="Normal Text" attribute="Normal Text" lineEndContext="#stay">
         <keyword attribute="Keyword" context="#stay" String="keywords" />
+        <StringDetect attribute="Keyword" context="#stay" String="BEGIN" beginRegion="Block"/>
+        <StringDetect attribute="Keyword" context="#stay" String="END" endRegion="Block"/>
         <keyword attribute="Data Type" context="#stay" String="types" />
-        <Detect2Chars attribute="Comment" context="Comment" char="-" char1="-"/>      
+        <Detect2Chars attribute="Comment" context="Comment" char="-" char1="-"/>
+        <Detect2Chars attribute="Comment" context="Multiline Comment" char="/" char1="*" beginRegion="Comment"/>
+        <DetectChar attribute="Normal Text" context="#stay" char="{" beginRegion="BraceBlock"/>
+        <DetectChar attribute="Normal Text" context="#stay" char="}" endRegion="BraceBlock"/>
+
+        <Int attribute="Decimal" context="#stay"/>
+        <DetectChar attribute="String" context="ctxString" char="&quot;"/>
       </context>
       
       <context attribute="Comment" lineEndContext="#pop" name="Comment">
         <IncludeRules context="##Comments" />
       </context>
+      <context attribute="Comment" lineEndContext="#stay" name="Multiline Comment">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+        <IncludeRules context="##Comments"/>
+      </context>
+
+      <context attribute="String" lineEndContext="#stay" name="ctxString">
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
     </contexts>
     
     <itemDatas>
-      <itemData name="Normal Text" defStyleNum="dsNormal"/>
-      <itemData name="Keyword"     defStyleNum="dsKeyword"/>
+      <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Keyword"     defStyleNum="dsKeyword" spellChecking="false"/>
       <itemData name="Comment"     defStyleNum="dsComment"/>
-      <itemData name="Data Type"   defStyleNum="dsDataType"/>
+      <itemData name="Data Type"   defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Decimal"     defStyleNum="dsDecVal"/>
+      <itemData name="String"      defStyleNum="dsString"/>
     </itemDatas>
   </highlighting>
   <general>
     <comments>
       <comment name="singleLine" start="--"/>
+      <comment name="multiLine" start="/*" end="*/" region="Comment"/>
     </comments>
   </general>
 </language>
diff --git a/syntax/asp.xml b/syntax/asp.xml
--- a/syntax/asp.xml
+++ b/syntax/asp.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE  language SYSTEM "language.dtd">
+<!DOCTYPE  language>
 <language name="ASP" version="9" kateversion="5.44" section="Markup" extensions="*.asp;" mimetype="text/x-asp-src;text/x-asp-src" author="Antonio Salazar (savedfastcool@gmail.com)" license="LGPL">
     <highlighting>
         <list name="control structures">
diff --git a/syntax/ats.xml b/syntax/ats.xml
--- a/syntax/ats.xml
+++ b/syntax/ats.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
 <!-- Regular expression constants: -->
 <!ENTITY LETTER "A-Za-z\xc0-\xd6\xd8-\xf6\xf8-\xff">                <!-- Latin-1 letters. -->
diff --git a/syntax/awk.xml b/syntax/awk.xml
--- a/syntax/awk.xml
+++ b/syntax/awk.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="AWK" version="6" kateversion="5.0" section="Scripts"
   extensions="*.awk" mimetype="text/x-awk" indenter="cstyle"
   license="LGPL">
diff --git a/syntax/bash.xml b/syntax/bash.xml
--- a/syntax/bash.xml
+++ b/syntax/bash.xml
@@ -1,45 +1,80 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
-        <!ENTITY tab      "&#009;">
-        <!ENTITY funcname "([^&_fragpathseps;}=#$]|[+!@](?!\())([^&_fragpathseps;}=$]*+([+!@](?!\())?+)*+">
-        <!ENTITY varname  "[A-Za-z_][A-Za-z0-9_]*">
-        <!ENTITY eos      "(?=$|[ &tab;])">                 <!-- eol or space following -->
-        <!ENTITY eoexpr   "(?=$|[ &tab;&lt;>|&amp;;)])">
+    <!ENTITY tab      "&#009;">
+    <!ENTITY funcname "([^&_fragpathseps;}=#$]|[+!@](?!\())([^&_fragpathseps;}=$]*+([+!@](?!\())?+)*+">
+    <!ENTITY varname  "[A-Za-z_][A-Za-z0-9_]*">
+    <!ENTITY eos      "(?=$|[ &tab;])">                 <!-- eol or space following -->
+    <!ENTITY eoexpr   "(?=$|[ &tab;&lt;>|&amp;;)])">
 
-        <!ENTITY substseps  "${'&quot;`\\">
-        <!ENTITY symbolseps "&lt;>|&amp;;()"> <!-- see man bash -->
-        <!ENTITY wordseps   " &tab;&symbolseps;"> <!-- see man bash -->
+    <!ENTITY substseps  "${'&quot;`\\">
+    <!ENTITY symbolseps "&lt;>|&amp;;()"> <!-- see man bash -->
+    <!ENTITY wordseps   " &tab;&symbolseps;"> <!-- see man bash -->
 
-        <!ENTITY _fragpathseps  "*?+!@&wordseps;&substseps;">
-        <!ENTITY _fragpathnosep "(?:[+!@](?!\()|\\.|&_brace_noexpansion;)?+">
-        <!ENTITY path       "(?:[^&_fragpathseps;]*+&_fragpathnosep;)*+">
-        <!ENTITY fragpath   "(?:[^&_fragpathseps;/]*+&_fragpathnosep;)*+">
-        <!ENTITY opt        "(?:[^&_fragpathseps;=/]*+&_fragpathnosep;)*+">
-        <!ENTITY pathpart   "(?:~|\.\.?|&fragpath;)(?:/&path;|(?=[*?]|[+!@]\(|&fragpath;(?:[/*?]|[+!@]\()))|(?:~|\.\.?)(?=[&wordseps;]|$)">
+    <!ENTITY bq_string  "`[^`]*+`">
+    <!ENTITY sq_string  "'[^']*+'">
+    <!ENTITY dq_string  "&quot;(?:[^&quot;\\`]*+|&bq_string;|\\.)*+&quot;">
+    <!ENTITY strings    "(?:&sq_string;|&dq_string;|&bq_string;)">
 
-        <!ENTITY _fragpathseps_alt  "*?+!@&substseps;}">
-        <!ENTITY _fragpathnosep_alt "(?:[+!@](?!\()|\\.)?+">
-        <!ENTITY path_alt       "(?:[^&_fragpathseps_alt;]*+&_fragpathnosep_alt;)*+">
-        <!ENTITY fragpath_alt   "(?:[^&_fragpathseps_alt;/]*+&_fragpathnosep_alt;)*+">
-        <!ENTITY opt_alt        "(?:[^&_fragpathseps_alt;=/]*+&_fragpathnosep_alt;)*+">
-        <!ENTITY pathpart_alt   "(?:~|\.\.?|&fragpath_alt;)(?:/&path_alt;|(?=[*?]|[+!@]\(|&fragpath_alt;(?:[/*?]|[+!@]\()))|(?:~|\.\.?)(?=\}|$)">
+    <!ENTITY globany    "\[(?:[^&wordseps;&quot;'`\\\[\]]+|\\.|&strings;|\[:\w+:\]|\[)*\]">
 
-        <!ENTITY _braceexpansion_spe     " &tab;&lt;>|&amp;;{}\\`'&quot;$">
-        <!ENTITY _brace_noexpansion       "\{[^&_braceexpansion_spe;,]*+\}">
-        <!ENTITY _braceexpansion_var     "\$(?:\{[^\[\]&_braceexpansion_spe;]*+(?:\[[*@a-zA-Z0-9]\])\})?">
-        <!ENTITY _braceexpansion_string  "'[^']*'|&quot;([^&quot;\`]*+|`[^`]*`)*+&quot;">
-        <!ENTITY _braceexpansion_elems   "\\.|`[^`]*`|&_braceexpansion_string;|&_braceexpansion_var;|&_brace_noexpansion;">
-        <!ENTITY _braceexpansion_consume "&_braceexpansion_elems;|{(?:[^&_braceexpansion_spe;,]++|&_braceexpansion_elems;)*?}|(?R)?+">
-        <!ENTITY _braceexpansion "(?:[^&_braceexpansion_spe;,]++|&_braceexpansion_consume;)*?,(?:[^&_braceexpansion_spe;]++|&_braceexpansion_consume;)*?}">
-        <!ENTITY braceexpansion "{&_braceexpansion;">
+    <!ENTITY next_is_globany    "(?:\^?\]\]|(?:\^?\]?)?(?:\\.|[^'&quot; &tab;&lt;>|&amp;;()\\[\]]+|&strings;|\[:\w+:\])+\])">
+    <!ENTITY bracket_noglobany  "\[(?!&next_is_globany;)">
 
-        <!ENTITY heredocq "(?|&quot;([^&quot;]+)&quot;|'([^']+)'|\\(.[^&wordseps;&substseps;]*))">
+    <!ENTITY _fragpathseps  "*?+!@&wordseps;&substseps;">
+    <!ENTITY _fragpathnosep "(?:[+!@](?!\()|\\.|&_brace_noexpansion;)?+">
+    <!ENTITY path       "(?:[^&_fragpathseps;\[]*+&_fragpathnosep;)*+">
+    <!ENTITY fragpath   "(?:[^&_fragpathseps;\[/]*+&_fragpathnosep;)*+">
+    <!ENTITY opt        "(?:[^&_fragpathseps;\[=/]*+&_fragpathnosep;)*+">
+    <!ENTITY pathpart   "(?:~|\.\.?|&fragpath;)(?:/&path;|(?=[*?]|[+!@]\(|&fragpath;(?:[/*?]|\[&next_is_globany;|[+!@]\()))|(?:~|\.\.?)(?=[&wordseps;]|$)">
 
-        <!ENTITY arithmetic_as_subshell "\(((?:[^`'&quot;()$]++|\$\{[^`'&quot;(){}$]+\}|\$(?=[^{`'&quot;()])|`[^`]*+`|\((?1)(?:[)]|(?=['&quot;])))++)(?:[)](?=$|[^)])|[&quot;'])">
+    <!ENTITY _fragpathseps_alt  "*?+!@&substseps;}">
+    <!ENTITY _fragpathnosep_alt "(?:[+!@](?!\()|\\.)?+">
+    <!ENTITY path_alt       "(?:[^&_fragpathseps_alt;]*+&_fragpathnosep_alt;)*+">
+    <!ENTITY fragpath_alt   "(?:[^&_fragpathseps_alt;/]*+&_fragpathnosep_alt;)*+">
+    <!ENTITY opt_alt        "(?:[^&_fragpathseps_alt;=/]*+&_fragpathnosep_alt;)*+">
+    <!ENTITY pathpart_alt   "(?:~|\.\.?|&fragpath_alt;)(?:/&path_alt;|(?=[*?]|[+!@]\(|&fragpath_alt;(?:[/*?]|[+!@]\()))|(?:~|\.\.?)(?=\}|$)">
+
+    <!-- Path only with / -->
+    <!ENTITY path_with_sep_text  "[^?*+!@&wordseps;'&quot;`\\/]">
+    <!ENTITY path_with_sep_text2 "[^?*+!@()'&quot;`\\/]">
+    <!ENTITY path_with_sep_expr  "\\.|&strings;|&globany;|[?*+](?!\()">
+    <!ENTITY path_with_sep_spe   "(~|\.\.?)($|[/ &tab;&lt;>|&amp;;)])">
+    <!ENTITY path_with_sep_sub   "[?*+!@]\((&path_with_sep_text2;++|&path_with_sep_expr;)*+(\)|(?=/))">
+    <!ENTITY path_with_sep "/|&path_with_sep_spe;|(&path_with_sep_text;++|&path_with_sep_expr;|&path_with_sep_sub;)*+/">
+
+    <!ENTITY _braceexpansion_spe     " &tab;&lt;>|&amp;;{}\\`'&quot;$">
+    <!ENTITY _brace_noexpansion       "\{[^&_braceexpansion_spe;,]*+\}">
+    <!ENTITY _braceexpansion_var     "\$(?:\{[^\[\]&_braceexpansion_spe;]*+(?:\[[*@a-zA-Z0-9]\])\})?">
+    <!ENTITY _braceexpansion_string  "'[^']*'|&quot;([^&quot;\`]*+|`[^`]*`)*+&quot;">
+    <!ENTITY _braceexpansion_elems   "\\.|`[^`]*`|&_braceexpansion_string;|&_braceexpansion_var;|&_brace_noexpansion;">
+    <!ENTITY _braceexpansion_consume "&_braceexpansion_elems;|{(?:[^&_braceexpansion_spe;,]++|&_braceexpansion_elems;)*?}|(?R)?+">
+    <!ENTITY _braceexpansion "(?:[^&_braceexpansion_spe;,]++|&_braceexpansion_consume;)*?,(?:[^&_braceexpansion_spe;]++|&_braceexpansion_consume;)*?}">
+    <!ENTITY braceexpansion "{&_braceexpansion;">
+
+    <!ENTITY heredocq "(?|&quot;([^&quot;]+)&quot;|'([^']+)'|\\(.[^&wordseps;&substseps;]*))">
+
+    <!ENTITY arithmetic_as_subshell "\(((?:[^`'&quot;()$]++|\$\{[^`'&quot;(){}$]+\}|\$(?=[^{`'&quot;()])|`[^`]*+`|\((?1)(?:[)]|(?=['&quot;])))++)(?:[)](?=$|[^)])|[&quot;'])">
+
+    <!ENTITY unary_operators  "-[abcdefghkprstuwxGLNOSovRnz]&eos;">
+    <!ENTITY binary_operators "(?:-(?:e[fq]|[nolg]t|[nlg]e)|==?|!=)&eos;">
+
+    <!ENTITY dblbracket_close "\]\](?=($|[ &tab;;|&amp;)]))">
+
+    <!ENTITY weakDeliminatorSymbols "^&#37;#[]$.{}:-/">
 ]>
 
-<language name="Bash" version="30" kateversion="5.79" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;*.nix;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD;APKBUILD" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
+<language
+    name="Bash"
+    version="51"
+    kateversion="5.79"
+    section="Scripts"
+    extensions="*.sh;*.bash;*.ebuild;*.eclass;*.exlib;*.exheres-0;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD;APKBUILD"
+    mimetype="application/x-shellscript"
+    casesensitive="1"
+    author="Wilbert Berendsen (wilbert@kde.nl)"
+    license="LGPL"
+  >
 
 <!-- (c) 2004 by Wilbert Berendsen (wilbert@kde.nl)
     Changes by Matthew Woehlke (mw_triad@users.sourceforge.net)
@@ -133,6 +168,9 @@
       <!-- /bin -->
       <item>arch</item>
       <item>awk</item>
+      <item>b2sum</item>
+      <item>base32</item>
+      <item>base64</item>
       <item>bash</item>
       <item>bunzip2</item>
       <item>bzcat</item>
@@ -147,11 +185,15 @@
       <item>bzmore</item>
       <item>cat</item>
       <item>chattr</item>
+      <item>chcon</item>
       <item>chgrp</item>
       <item>chmod</item>
       <item>chown</item>
       <item>chvt</item>
+      <item>cksum</item>
       <item>cp</item>
+      <item>crontab</item>
+      <item>csplit</item>
       <item>date</item>
       <item>dd</item>
       <item>deallocvt</item>
@@ -165,9 +207,11 @@
       <item>dumpkeys</item>
       <item>ed</item>
       <item>egrep</item>
+      <item>expand</item>
       <item>false</item>
       <item>fgconsole</item>
       <item>fgrep</item>
+      <item>fold</item>
       <item>fuser</item>
       <item>gawk</item>
       <item>getkeycodes</item>
@@ -178,7 +222,9 @@
       <item>gunzip</item>
       <item>gzexe</item>
       <item>gzip</item>
+      <item>hostid</item>
       <item>hostname</item>
+      <item>iconv</item>
       <item>igawk</item>
       <item>install</item>
       <item>kbd_mode</item>
@@ -206,6 +252,7 @@
       <item>lzmainfo</item>
       <item>lzmore</item>
       <item>mapscrn</item>
+      <item>md5sum</item>
       <item>mesg</item>
       <item>mkdir</item>
       <item>mkfifo</item>
@@ -217,20 +264,29 @@
       <item>nano</item>
       <item>netstat</item>
       <item>nisdomainname</item>
+      <item>nproc</item>
       <item>nroff</item>
+      <item>numfmt</item>
       <item>openvt</item>
+      <item>paste</item>
+      <item>pathchk</item>
       <item>pgawk</item>
       <item>pidof</item>
       <item>ping</item>
+      <item>pinky</item>
+      <item>printenv</item>
       <item>ps</item>
       <item>pstree</item>
+      <item>ptx</item>
       <item>rbash</item>
       <item>readlink</item>
+      <item>realpath</item>
       <item>red</item>
       <item>resizecons</item>
       <item>rm</item>
       <item>rmdir</item>
       <item>run-parts</item>
+      <item>runcon</item>
       <item>sash</item>
       <item>sed</item>
       <item>setfont</item>
@@ -239,22 +295,33 @@
       <item>setmetamode</item>
       <item>setserial</item>
       <item>sh</item>
+      <item>sha1sum</item>
+      <item>sha224sum</item>
+      <item>sha256sum</item>
+      <item>sha384sum</item>
+      <item>sha512sum</item>
       <item>showkey</item>
       <item>shred</item>
+      <item>shuf</item>
       <item>sleep</item>
       <item>ssed</item>
       <item>stat</item>
+      <item>stdbuf</item>
       <item>stty</item>
       <item>su</item>
       <item>sync</item>
       <item>tar</item>
       <item>tempfile</item>
+      <item>timeout</item>
       <item>touch</item>
+      <item>tput</item>
       <item>troff</item>
       <item>true</item>
       <item>truncate</item>
+      <item>tty</item>
       <item>umount</item>
       <item>uname</item>
+      <item>unexpand</item>
       <item>unicode_start</item>
       <item>unicode_stop</item>
       <item>unlink</item>
@@ -263,6 +330,7 @@
       <item>utmpdump</item>
       <item>uuidgen</item>
       <item>vdir</item>
+      <item>vi</item>
       <item>wall</item>
       <item>wc</item>
       <item>xz</item>
@@ -336,6 +404,7 @@
       <item>gc</item>
       <item>gcc</item>
       <item>clang</item>
+      <item>clang++</item>
       <item>valgrind</item>
       <item>xdg-open</item>
       <item>cmake</item>
@@ -464,6 +533,19 @@
 
     <contexts>
       <context attribute="Normal Text" lineEndContext="#stay" name="Start" fallthroughContext="Command">
+        <IncludeRules context="BashOneLine"/>
+      </context>
+
+      <!-- used by other syntaxes -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="FindOneLineBackq" fallthroughContext="#pop">
+        <DetectChar attribute="Backquote" context="OneLineBackq" char="`"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="OneLineBackq" fallthroughContext="Command">
+        <DetectChar attribute="Backquote" context="#pop" char="`"/>
+        <IncludeRules context="Start"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="BashOneLine" fallthroughContext="Command">
         <DetectSpaces attribute="Normal Text" context="#stay"/>
         <DetectChar attribute="Comment" context="Comment" char="#"/>
         <!-- start expression in double parentheses -->
@@ -497,6 +579,9 @@
         <keyword attribute="Builtin" context="VarName" String="builtins_var" lookAhead="1"/>
         <!-- mark function definitions without function keyword -->
         <RegExpr attribute="Function" context="#stay" String="&funcname;[ &tab;]*\(\)"/>
+        <!-- Special case for `: << '#BLOCK-COMMENT' form of "multiline" comments-->
+        <RegExpr attribute="Normal Text" context="PreHereDocMLComment" String="^:[ &tab;]+&lt;&lt;[ &tab;]*'#([^']+)'$" lookAhead="1" column="0"/>
+        <WordDetect attribute="Builtin" context="Coproc" String="coproc"/>
         <keyword attribute="Builtin" context="CommandArgs" String="builtins"/>
         <keyword attribute="Command" context="CommandArgs" String="unixcommands"/>
 
@@ -506,6 +591,8 @@
         <AnyChar attribute="Error" context="#stay" String=")}"/>
 
         <LineContinue attribute="Escape" context="#stay"/>
+
+        <Detect2Chars attribute="Expression" context="#stay" char="!" char1=" "/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="MaybeBracketExpression" fallthroughContext="#pop!Command">
         <!-- start expression in double brackets -->
@@ -543,6 +630,18 @@
         <DetectChar context="#pop!Command" char="}" lookAhead="1"/>
       </context>
 
+      <context attribute="Normal Text" lineEndContext="#pop" name="Coproc" fallthroughContext="#pop">
+        <DetectSpaces attribute="Normal Text"/>
+        <LineContinue attribute="Escape" context="#stay"/>
+        <RegExpr context="CoprocName" String="(\$?&varname;|\$\{&varname;\}|'&varname;'|&quot;(\$?&varname;|\$\{&varname;\}|[a-zA-Z0-9_])+&quot;)+(?=\s+\{($|\s))" lookAhead="1"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="CoprocName">
+        <DetectChar attribute="Keyword" context="#pop#pop!Group" char="{" beginRegion="group"/>
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectIdentifier attribute="Normal Text"/>
+        <IncludeRules context="FindWord"/>
+      </context>
+
       <context attribute="Command" lineEndContext="#pop" name="Command" fallthroughContext="#pop">
         <DetectSpaces attribute="Normal Text" context="#pop!CommandArgs"/>
         <DetectChar context="CommandVariables" char="$" lookAhead="1"/>
@@ -571,8 +670,12 @@
         <Detect2Chars attribute="String Transl." context="#pop!StringDQ" char="$" char1="&quot;"/>
       </context>
       <context attribute="Command" lineEndContext="#pop#pop" name="DispatchVarnameVariables">
-        <RegExpr attribute="Variable" context="#pop" String="\$(?:&varname;|[*@#?$!0-9-])"/>
+        <RegExpr attribute="Dollar Prefix" context="#pop!VarNamePrefixedWithDollar" String="\$(?=&varname;|[*@#?$!0-9-])"/>
       </context>
+      <context attribute="Variable" lineEndContext="#pop" name="VarNamePrefixedWithDollar">
+        <DetectIdentifier attribute="Variable" context="#pop"/>
+        <AnyChar attribute="Variable" context="#pop" String="*@#?$!0123456789-"/>
+      </context>
       <context attribute="OtherCommand" lineEndContext="#pop#pop" name="CommandName">
         <DetectSpaces attribute="Normal Text" context="#pop#pop!CommandArgs"/>
         <DetectIdentifier attribute="OtherCommand" context="#stay"/>
@@ -644,17 +747,24 @@
         <IncludeRules context="FindWord"/>
         <IncludeRules context="FindGlobAndPop"/>
         <DetectChar context="OptionMaybeBraceExpansion" char="{" lookAhead="1"/>
+        <DetectChar context="LongOptionMaybeGlobAny" char="[" lookAhead="1"/>
         <RegExpr attribute="Option" context="#stay" String="&opt;"/>
       </context>
+      <context attribute="Option" lineEndContext="#pop#pop" name="LongOptionMaybeGlobAny" fallthroughContext="#pop">
+        <IncludeRules context="FindGlobAny"/>
+        <DetectChar attribute="Option" context="#pop" char="["/>
+      </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="NormalOption" fallthroughContext="#pop">
         <AnyChar context="#pop" String="&wordseps;`" lookAhead="1"/>
         <IncludeRules context="FindWord"/>
         <DetectChar context="NormalMaybeBraceExpansion" char="{" lookAhead="1"/>
-        <IncludeRules context="FindPathThenPop"/>
-        <IncludeRules context="FindNormalTextOption"/>
+        <IncludeRules context="FindNormalText"/>
       </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="FindNormalTextOption">
-        <RegExpr attribute="Normal Text" context="#stay" String="[^&wordseps;&substseps;]+"/>
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindNormalText">
+        <IncludeRules context="FindGlobAndPop"/>
+        <RegExpr attribute="Path" context="PathThenPop" String="&pathpart;"/>
+        <DetectChar context="FindPathThenPopMaybeGlobAny" char="[" lookAhead="1"/>
+        <RegExpr attribute="Normal Text" context="#stay" String="[^&wordseps;&substseps;\[]+"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="OptionMaybeBraceExpansion">
         <IncludeRules context="DispatchBraceExpansion"/>
@@ -686,18 +796,15 @@
         <RegExpr attribute="Escape" context="#pop!SequenceExpression" String="{(?=([-+]?[0-9]+\.\.[-+]?[0-9]+|[a-zA-Z]\.\.[a-zA-Z])(\.\.[-+]?[0-9]+)?\})"/>
       </context>
 
-      <!-- FindPathThenPop consumes path -->
-      <context attribute="Normal Text" lineEndContext="#pop" name="FindPathThenPop">
-        <IncludeRules context="FindGlobAndPop"/>
-        <RegExpr attribute="Path" context="PathThenPop" String="&pathpart;"/>
+      <!-- FindPathThenPopMaybeGlobAny consumes path -->
+      <context attribute="Normal Text" lineEndContext="#pop#pop" name="FindPathThenPopMaybeGlobAny" fallthroughContext="#pop!PathThenPop">
+        <IncludeRules context="FindGlobAny"/>
+        <DetectChar attribute="Normal Text" context="#pop" char="["/>
       </context>
       <context attribute="Path" lineEndContext="#pop" name="FindGlobAndPop">
-        <IncludeRules context="FindExtGlobAndPop"/>
-        <AnyChar attribute="Glob" context="PathThenPop" String="?*"/>
-      </context>
-      <context attribute="Path" lineEndContext="#pop" name="FindExtGlobAndPop">
         <Detect2Chars attribute="Glob" context="ExtGlobAndPop" char="?" char1="("/>
         <Detect2Chars attribute="Glob" context="ExtGlobAndPop" char="*" char1="("/>
+        <AnyChar attribute="Glob" context="PathThenPop" String="?*"/>
         <Detect2Chars attribute="Glob" context="ExtGlobAndPop" char="+" char1="("/>
         <Detect2Chars attribute="Glob" context="ExtGlobAndPop" char="@" char1="("/>
         <Detect2Chars attribute="Glob" context="ExtGlobAndPop" char="!" char1="("/>
@@ -719,8 +826,10 @@
         <DetectChar attribute="Glob" context="#pop" char=")"/>
         <IncludeRules context="FindWord"/>
         <IncludeRules context="IncExtGlob"/>
+        <IncludeRules context="PathThenPopMaybeGlobAny"/>
       </context>
       <context attribute="Path" lineEndContext="#stay" name="IncExtGlob">
+        <DetectIdentifier attribute="Path"/>
         <IncludeRules context="FindExtGlob"/>
         <DetectChar context="PathMaybeBraceExpansion" char="{" lookAhead="1"/>
       </context>
@@ -729,27 +838,67 @@
         <IncludeRules context="FindWord"/>
         <IncludeRules context="FindExtGlob"/>
         <DetectChar context="PathMaybeBraceExpansion" char="{" lookAhead="1"/>
+        <DetectChar context="PathThenPopMaybeGlobAny" char="[" lookAhead="1"/>
         <RegExpr attribute="Path" context="#stay" String="&path;"/>
       </context>
+      <context attribute="Path" lineEndContext="#pop#pop" name="PathThenPopMaybeGlobAny" fallthroughContext="#pop">
+        <IncludeRules context="FindGlobAny"/>
+        <DetectChar attribute="Path" context="#pop" char="["/>
+      </context>
       <context attribute="Path" lineEndContext="#pop" name="PathMaybeBraceExpansion" fallthroughContext="#pop">
         <IncludeRules context="DispatchBraceExpansion"/>
         <DetectChar attribute="Path" context="#pop" char="{"/>
       </context>
 
+      <context attribute="Glob" lineEndContext="#stay" name="FindGlobAny">
+        <RegExpr attribute="Glob" context="GlobAnyFlag" String="\[(?=&next_is_globany;)"/>
+      </context>
+      <context attribute="Pattern" lineEndContext="#pop" name="GlobAnyFlag" fallthroughContext="#pop!GlobAny">
+        <DetectChar attribute="Glob" context="#pop!GlobAny" char="^"/>
+      </context>
+      <context attribute="Pattern" lineEndContext="#pop" name="GlobAny">
+        <DetectIdentifier attribute="Pattern"/>
+        <DetectChar context="AssumeEscape" char="\" lookAhead="1"/>
+        <DetectChar attribute="Glob" context="#stay" char="-"/>
+        <IncludeRules context="FindStrings"/>
+        <DetectChar attribute="Glob" context="#pop" char="]"/>
+        <Detect2Chars attribute="Glob" context="GlobClass" char="[" char1=":"/>
+      </context>
+      <context attribute="Glob" lineEndContext="#pop#pop" name="GlobClass">
+        <DetectIdentifier attribute="Pattern"/>
+        <Detect2Chars attribute="Glob" context="#pop" char=":" char1="]"/>
+        <DetectChar attribute="Error" context="#pop" char="]"/>
+      </context>
+
       <!-- FindPathThenPopInAlternateValue consumes path in ${xx:here}-->
       <context attribute="Normal Text" lineEndContext="#pop" name="FindPathThenPopInAlternateValue">
-        <IncludeRules context="FindExtGlobAndPopInAlternateValue"/>
-        <AnyChar attribute="Glob" context="PathThenPopInAlternateValue" String="?*"/>
-        <RegExpr attribute="Path" context="PathThenPopInAlternateValue" String="&pathpart_alt;"/>
+        <Detect2Chars context="#pop!PathThenPopInAlternateValue" char="?" char1="(" lookAhead="1"/>
+        <Detect2Chars context="#pop!PathThenPopInAlternateValue" char="*" char1="(" lookAhead="1"/>
+        <Detect2Chars context="#pop!PathThenPopInAlternateValue" char="+" char1="(" lookAhead="1"/>
+        <Detect2Chars context="#pop!PathThenPopInAlternateValue" char="@" char1="(" lookAhead="1"/>
+        <Detect2Chars context="#pop!PathThenPopInAlternateValue" char="!" char1="(" lookAhead="1"/>
+        <AnyChar attribute="Glob" context="#pop!PathThenPopInAlternateValue" String="?*"/>
+        <RegExpr attribute="Path" context="#pop!PathThenPopInAlternateValue" String="&pathpart_alt;"/>
       </context>
-      <context attribute="Path" lineEndContext="#stay" name="FindExtGlobAndPopInAlternateValue">
+      <context attribute="Path" lineEndContext="#pop#pop" name="PathThenPopInAlternateValue">
+        <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
+        <IncludeRules context="FindWord"/>
         <Detect2Chars attribute="Glob" context="ExtGlobAndPopInAlternateValue" char="?" char1="("/>
         <Detect2Chars attribute="Glob" context="ExtGlobAndPopInAlternateValue" char="*" char1="("/>
         <Detect2Chars attribute="Glob" context="ExtGlobAndPopInAlternateValue" char="+" char1="("/>
         <Detect2Chars attribute="Glob" context="ExtGlobAndPopInAlternateValue" char="@" char1="("/>
         <Detect2Chars attribute="Glob" context="ExtGlobAndPopInAlternateValue" char="!" char1="("/>
+        <AnyChar attribute="Glob" context="#stay" String="?*"/>
+        <RegExpr attribute="Path" context="#stay" String="&path_alt;"/>
       </context>
+      <context attribute="Path" lineEndContext="#stay" name="ExtGlobAndPopInAlternateValue">
+        <DetectChar attribute="Glob" context="#pop" char=")"/>
+        <DetectChar attribute="Error" context="#pop#pop" char="}"/>
+        <IncludeRules context="FindWord"/>
+        <IncludeRules context="FindExtGlobInAlternateValue"/>
+      </context>
       <context attribute="Path" lineEndContext="#stay" name="FindExtGlobInAlternateValue">
+        <DetectIdentifier attribute="Path"/>
         <Detect2Chars attribute="Glob" context="RecursiveExtGlobInAlternateValue" char="?" char1="("/>
         <Detect2Chars attribute="Glob" context="RecursiveExtGlobInAlternateValue" char="*" char1="("/>
         <Detect2Chars attribute="Glob" context="RecursiveExtGlobInAlternateValue" char="+" char1="("/>
@@ -763,19 +912,6 @@
         <IncludeRules context="FindWord"/>
         <IncludeRules context="FindExtGlobInAlternateValue"/>
       </context>
-      <context attribute="Path" lineEndContext="#stay" name="ExtGlobAndPopInAlternateValue">
-        <DetectChar attribute="Glob" context="#pop!PathThenPopInAlternateValue" char=")"/>
-        <DetectChar attribute="Error" context="#pop#pop" char="}"/>
-        <IncludeRules context="FindWord"/>
-        <IncludeRules context="FindExtGlobInAlternateValue"/>
-      </context>
-      <context attribute="Path" lineEndContext="#pop#pop" name="PathThenPopInAlternateValue">
-        <DetectChar attribute="Parameter Expansion" context="#pop#pop" char="}"/>
-        <IncludeRules context="FindWord"/>
-        <IncludeRules context="FindExtGlobAndPopInAlternateValue"/>
-        <AnyChar attribute="Glob" context="#stay" String="?*"/>
-        <RegExpr attribute="Path" context="#stay" String="&path_alt;"/>
-      </context>
 
       <context attribute="Pattern" lineEndContext="#stay" name="FindPattern">
         <Detect2Chars attribute="Glob" context="ExtPattern" char="?" char1="("/>
@@ -786,6 +922,7 @@
         <AnyChar attribute="Glob" context="#stay" String="?*"/>
       </context>
       <context attribute="Pattern" lineEndContext="#stay" name="ExtPattern">
+        <DetectIdentifier attribute="Pattern"/>
         <DetectChar attribute="Glob" context="#stay" char="|"/>
         <IncludeRules context="FindWord"/>
         <DetectChar attribute="Glob" context="#pop" char=")"/>
@@ -868,13 +1005,15 @@
         <DetectChar attribute="Redirection" context="#pop!WordRedirection" char="&lt;"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="FdRedirection" fallthroughContext="#pop!FdRedirection2">
-        <DetectSpaces attribute="Normal Text" context="#pop!FdRedirection2"/>
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar attribute="Comment" context="#pop!Comment" char="#"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="FdRedirection2" fallthroughContext="#pop!WordRedirection2">
         <RegExpr attribute="File Descriptor" context="#pop!CloseFile" String="[0-9]+(?=-?&eoexpr;)"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="WordRedirection" fallthroughContext="#pop!WordRedirection2">
-        <DetectSpaces attribute="Normal Text" context="#pop!WordRedirection2"/>
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar attribute="Comment" context="#pop!Comment" char="#"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="WordRedirection2" fallthroughContext="#pop">
         <AnyChar context="#pop" String="&wordseps;`" lookAhead="1"/>
@@ -882,11 +1021,13 @@
         <RegExpr attribute="Path" context="PathThenPop" String="&path;"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="StringRedirection" fallthroughContext="#pop!StringRedirection2">
-        <DetectSpaces attribute="Normal Text" context="#pop!StringRedirection2"/>
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar attribute="Comment" context="#pop!Comment" char="#"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="StringRedirection2">
         <AnyChar context="#pop" String="&wordseps;`" lookAhead="1"/>
         <IncludeRules context="FindWord"/>
+        <DetectIdentifier attribute="Normal Text"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="CloseFile" fallthroughContext="#pop">
         <DetectChar attribute="Keyword" context="#pop" char="-"/>
@@ -894,6 +1035,7 @@
 
       <!-- HereDoc consumes Here-documents. It is called at the beginning of the "<<" construct. -->
       <context attribute="Normal Text" lineEndContext="#stay" name="HereDoc">
+        <RegExpr attribute="Redirection" context="HereDocMLComment" String="^[ &tab;]*&lt;&lt;[ &tab;]*'#([^']+)'$" column="0"/>
         <RegExpr attribute="Redirection" context="HereDocIQ"  String="&lt;&lt;-[ &tab;]*&heredocq;(?=[ &tab;]*$)"/>
         <RegExpr attribute="Redirection" context="HereDocINQ" String="&lt;&lt;-[ &tab;]*([^&wordseps;]+)(?=[ &tab;]*$)"/>
         <RegExpr attribute="Redirection" context="HereDocQ"   String="&lt;&lt;[ &tab;]*&heredocq;(?=[ &tab;]*$)"/>
@@ -907,16 +1049,35 @@
         <Detect2Chars attribute="Redirection" context="#pop"  char="&lt;" char1="&lt;"/><!-- always met -->
       </context>
 
-      <context attribute="Normal Text" lineEndContext="#pop" name="HereDocRemainder" fallthroughContext="Command">
-        <IncludeRules context="Start"/>
+      <context attribute="Normal Text" lineEndContext="#pop" name="HereDocRemainder" fallthroughContext="CommandArg">
+        <AnyChar context="BashOneLine" String="&amp;|;`" lookAhead="1"/>
+        <IncludeRules context="CommandArgs"/>
       </context>
 
+      <!-- Highlight the builtin `:` (true) and the followed redirection, then fall into `HereDocMLComment` -->
+      <context attribute="Comment" lineEndContext="#stay" name="PreHereDocMLComment">
+        <DetectChar attribute="Builtin" context="#stay" char=":" column="0"/>
+        <RegExpr attribute="Redirection" context="HereDocMLComment" String="&lt;&lt;[ &tab;]*'#([^']+)'$"/>
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="HereDocMLComment" dynamic="true" fallthroughContext="Comment">
+        <RegExpr attribute="Redirection" context="#pop#pop" String="^#%1$" column="0" dynamic="true"/>
+        <RegExpr attribute="Region Marker" context="RST Documentation" String="^#?\[(=*)\[\.rst:" column="0" beginRegion="RSTDocumentation" />
+        <IncludeRules context="Comment"/>
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="RST Documentation" dynamic="true">
+        <RegExpr attribute="Redirection" context="#pop#pop#pop" String="^#BLOCK-COMMENT$" column="0"/>
+        <RegExpr attribute="Region Marker" context="#pop" String="^#?\]%1\]" dynamic="true" column="0" endRegion="RSTDocumentation" />
+        <IncludeRules context="##reStructuredText" />
+      </context>
+
       <context attribute="Here Doc" lineEndContext="#stay" name="HereDocQ" dynamic="true" fallthroughContext="HereDocText">
         <RegExpr attribute="Redirection" context="#pop#pop" String="^%1$" dynamic="true" column="0"/>
       </context>
 
       <context attribute="Here Doc" lineEndContext="#stay" name="HereDocNQ" dynamic="true" fallthroughContext="HereDocSubstitutions">
-        <RegExpr attribute="Redirection" context="#pop#pop" String="^%1$" dynamic="true" column="0"/>
+        <IncludeRules context="HereDocQ" />
       </context>
 
       <context attribute="Here Doc" lineEndContext="#stay" name="HereDocIQ" dynamic="true" fallthroughContext="HereDocText">
@@ -924,33 +1085,40 @@
       </context>
 
       <context attribute="Here Doc" lineEndContext="#stay" name="HereDocINQ" dynamic="true" fallthroughContext="HereDocSubstitutions">
-        <RegExpr attribute="Redirection" context="#pop#pop" String="^\t*%1$" dynamic="true" column="0"/>
+        <IncludeRules context="HereDocIQ" />
       </context>
 
-      <context attribute="Here Doc" lineEndContext="#stay" name="HereDocQCmd" dynamic="true" fallthroughContext="HereDocText">
+      <context attribute="Here Doc" lineEndContext="#stay" name="HereDocCmd">
+        <!-- Only if the redirect is before the command, but as this is too complicated,
+             check if the redirect is at the beginning of the line. -->
+        <StringDetect attribute="Redirection" context="BashOneLine" String="%1" dynamic="true" firstNonSpace="1"/>
         <StringDetect attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true"/>
+      </context>
+
+      <context attribute="Here Doc" lineEndContext="#stay" name="HereDocQCmd" dynamic="true" fallthroughContext="HereDocText">
+        <IncludeRules context="HereDocCmd"/>
         <RegExpr attribute="Redirection" context="#pop#pop" String="^%2$" dynamic="true" column="0"/>
       </context>
 
       <context attribute="Here Doc" lineEndContext="#stay" name="HereDocNQCmd" dynamic="true" fallthroughContext="HereDocSubstitutions">
-        <StringDetect attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true"/>
-        <RegExpr attribute="Redirection" context="#pop#pop" String="^%2$" dynamic="true" column="0"/>
+        <IncludeRules context="HereDocQCmd"/>
       </context>
 
       <context attribute="Here Doc" lineEndContext="#stay" name="HereDocIQCmd" dynamic="true" fallthroughContext="HereDocText">
-        <StringDetect attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true"/>
+        <IncludeRules context="HereDocCmd"/>
         <RegExpr attribute="Redirection" context="#pop#pop" String="^\t*%2$" dynamic="true" column="0"/>
       </context>
 
       <context attribute="Here Doc" lineEndContext="#stay" name="HereDocINQCmd" dynamic="true" fallthroughContext="HereDocSubstitutions">
-        <StringDetect attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true"/>
-        <RegExpr attribute="Redirection" context="#pop#pop" String="^\t*%2$" dynamic="true" column="0"/>
+        <IncludeRules context="HereDocIQCmd"/>
       </context>
 
       <context attribute="Here Doc" lineEndContext="#pop" name="HereDocText">
       </context>
 
       <context attribute="Here Doc" lineEndContext="#pop" name="HereDocSubstitutions">
+        <DetectSpaces attribute="Here Doc"/>
+        <DetectIdentifier attribute="Here Doc"/>
         <DetectChar context="HereDocVariables" char="$" lookAhead="1"/>
         <DetectChar attribute="Backquote" context="CommandBackq" char="`"/>
         <DetectChar context="AssumeEscape" char="\" lookAhead="1"/>
@@ -1036,11 +1204,15 @@
 
       <!-- StringSQ consumes anything till ' -->
       <context attribute="String SingleQ" lineEndContext="#stay" name="StringSQ">
+        <DetectSpaces attribute="String SingleQ"/>
+        <DetectIdentifier attribute="String SingleQ"/>
         <DetectChar attribute="String SingleQ" context="#pop" char="'"/>
       </context>
 
       <!-- StringDQ consumes anything till ", substitutes vars and expressions -->
       <context attribute="String DoubleQ" lineEndContext="#stay" name="StringDQ">
+        <DetectSpaces attribute="String DoubleQ"/>
+        <DetectIdentifier attribute="String DoubleQ"/>
         <DetectChar attribute="String DoubleQ" context="#pop" char="&quot;"/>
         <DetectChar context="StringDQEscape" char="\" lookAhead="1"/>
         <DetectChar context="StringDQDispatchVariables" char="$" lookAhead="1"/>
@@ -1069,6 +1241,8 @@
 
       <!-- StringEsc eats till ', but escaping many characters -->
       <context attribute="String SingleQ" lineEndContext="#stay" name="StringEsc">
+        <DetectSpaces attribute="String SingleQ"/>
+        <DetectIdentifier attribute="String SingleQ"/>
         <DetectChar attribute="String SingleQ" context="#pop" char="'"/>
         <RegExpr attribute="String Escape" context="#stay" String="\\(?:[abefnrtv\\']|[0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)"/>
       </context>
@@ -1097,6 +1271,7 @@
 
       <!-- VarBraceStart is called as soon as ${ is encoutered -->
       <context attribute="Variable" lineEndContext="#pop!VarBrace" name="VarBraceStart" fallthroughContext="#pop!VarBrace">
+        <StringDetect context="#pop!VarBrace" String="!}" lookAhead="1"/>
         <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarBracePrefix" char="!"/>
         <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarBrace" char="#"/>
       </context>
@@ -1104,6 +1279,9 @@
       <!-- VarBracePrefix called as soon as ${! is encoutered -->
       <context attribute="Variable" lineEndContext="#pop" name="VarBracePrefix">
         <DetectIdentifier attribute="Variable" context="#pop!VarBracePrefixSuffix"/>
+        <Int attribute="Variable" context="#pop!VarBracePrefixSuffix"/>
+        <AnyChar attribute="Parameter Expansion Operator" context="#pop!VarBracePrefixSharp" String="@*#"/>
+        <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
       </context>
       <context attribute="Variable" lineEndContext="#pop" name="VarBracePrefixSuffix" fallthroughContext="#pop!VarError">
         <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
@@ -1111,16 +1289,20 @@
         <StringDetect attribute="Parameter Expansion Operator" context="#stay" String="[@]"/>
         <StringDetect attribute="Parameter Expansion Operator" context="#stay" String="[*]"/>
       </context>
+      <context attribute="Variable" lineEndContext="#pop" name="VarBracePrefixSharp" fallthroughContext="#pop!VarError">
+        <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
+        <DetectChar attribute="Parameter Expansion Operator" char="#"/>
+      </context>
 
       <!-- VarBrace is called as soon as ${ or ${# are encoutered -->
       <context attribute="Variable" lineEndContext="#stay" name="VarBrace" fallthroughContext="#pop!VarError">
-        <DetectChar attribute="Variable" context="#pop" char="}"/>
+        <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
         <DetectIdentifier attribute="Variable" context="#pop!CheckVarAlt"/>
         <AnyChar attribute="Variable" context="#pop!CheckVarAlt" String="*@?$!-"/>
         <Int attribute="Variable" context="#pop!CheckVarAlt" additionalDeliminator=":#%^,/@{}"/>
       </context>
       <context attribute="Error" lineEndContext="#stay" name="VarError">
-        <DetectChar attribute="Variable" context="#pop" char="}"/>
+        <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="CheckVarAlt" fallthroughContext="#pop!VarError">
         <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
@@ -1144,7 +1326,7 @@
 
       <!-- called as soon as ${xxx: is encoutered -->
       <context attribute="Normal Text" lineEndContext="#stay" name="VarSub">
-        <DetectChar attribute="Variable" context="#pop" char="}"/>
+        <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
         <!-- <Int> doesn't match :3 because : is a weakDeliminator -->
         <AnyChar attribute="Decimal" String="0123456789"/>
         <DetectChar attribute="Parameter Expansion Operator" context="#stay" char=":"/>
@@ -1163,6 +1345,7 @@
         <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
         <IncludeRules context="FindWord"/>
         <IncludeRules context="FindPathThenPopInAlternateValue"/>
+        <DetectIdentifier attribute="Normal Text"/>
       </context>
 
       <!-- called as soon as ${xxx^ are ${xxx, are encoutered -->
@@ -1170,6 +1353,7 @@
         <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
         <IncludeRules context="FindWord"/>
         <IncludeRules context="FindPattern"/>
+        <DetectIdentifier attribute="Pattern"/>
       </context>
 
       <!-- called as soon as ${xxx/ is encoutered -->
@@ -1184,7 +1368,7 @@
       <!-- called as soon as ${xxx@ is encoutered -->
       <context attribute="Normal Text" lineEndContext="#stay" name="VarTransformation" fallthroughContext="#pop!VarError">
         <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
-        <AnyChar attribute="Parameter Expansion" context="#stay" String="QEPAa"/>
+        <AnyChar attribute="Parameter Expansion" context="#stay" String="UuLQEPAKa"/>
       </context>
 
       <context attribute="Escape" lineEndContext="#pop" name="BraceExpansion">
@@ -1199,6 +1383,7 @@
         <DetectChar context="BraceExpansionVariables" char="$" lookAhead="1"/>
         <IncludeRules context="FindStrings"/>
         <IncludeRules context="FindPattern"/>
+        <DetectIdentifier attribute="Escape"/>
       </context>
       <context attribute="Escape" lineEndContext="#pop" name="EscapeMaybeBraceExpansion">
         <IncludeRules context="DispatchBraceExpansion"/>
@@ -1254,27 +1439,17 @@
       </context>
 
       <context attribute="Decimal" lineEndContext="#pop" name="Number">
-        <Detect2Chars attribute="Hex" context="#pop!Hex" char="0" char1="x"/>
-        <Detect2Chars attribute="Hex" context="#pop!Hex" char="0" char1="X"/>
-        <DetectChar context="#pop!Octal" char="0" lookAhead="1"/>
+        <HlCHex attribute="Hex" context="#pop" additionalDeliminator="&weakDeliminatorSymbols;"/>
+        <HlCOct attribute="Octal" context="#pop!NumberError" additionalDeliminator="&weakDeliminatorSymbols;"/>
         <RegExpr attribute="Base" context="#pop!BaseN" String="[1-9][0-9]*#"/>
-        <AnyChar attribute="Decimal" context="#pop!Decimal" String="123456789"/>
-      </context>
-      <context attribute="Octal" lineEndContext="#pop" name="Octal" fallthroughContext="#pop!Decimal">
-        <RegExpr attribute="Octal" context="#pop!NumberError" String="0[0-7]+"/>
-        <DetectChar attribute="Decimal" context="#pop" char="0"/>
-      </context>
-      <context attribute="Decimal" lineEndContext="#pop" name="Decimal" fallthroughContext="#pop">
-        <AnyChar attribute="Decimal" context="#stay" String="0123456789"/>
-      </context>
-      <context attribute="Hex" lineEndContext="#pop" name="Hex" fallthroughContext="#pop">
-        <RegExpr attribute="Hex" context="#pop" String="[0-9a-fA-F]+"/>
+        <DetectChar attribute="Decimal" context="#pop!NumberError" char="0"/>
+        <Int attribute="Decimal" context="#pop" additionalDeliminator="&weakDeliminatorSymbols;"/>
       </context>
       <context attribute="BaseN" lineEndContext="#pop" name="BaseN" fallthroughContext="#pop">
         <RegExpr attribute="BaseN" context="#pop" String="[0-9a-zA-Z@_]+"/>
       </context>
       <context attribute="Error" lineEndContext="#pop" name="NumberError" fallthroughContext="#pop">
-        <AnyChar attribute="Error" context="#stay" String="8901234567"/>
+        <Int attribute="Error" context="#pop" additionalDeliminator="0123456789"/>
       </context>
 
       <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParenSubstOrSubstCommand">
@@ -1284,7 +1459,7 @@
       <!-- ExprDblParenSubst like ExprDblParen but matches )) as Variable -->
       <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParenSubst">
         <DetectSpaces attribute="Normal Text" context="#stay"/>
-        <Detect2Chars attribute="Variable" context="#pop" char=")" char1=")" endRegion="expression"/>
+        <Detect2Chars attribute="Parameter Expansion" context="#pop" char=")" char1=")" endRegion="expression"/>
         <IncludeRules context="FindExprDblParen"/>
         <!-- $((cmd
               ) # jump to SubstCommand context -->
@@ -1317,8 +1492,7 @@
         <AnyChar context="#pop" String=" &tab;" lookAhead="1"/>
         <IncludeRules context="FindWord"/>
         <DetectChar context="NormalMaybeBraceExpansion" char="{" lookAhead="1"/>
-        <IncludeRules context="FindPathThenPop"/>
-        <IncludeRules context="FindNormalTextOption"/>
+        <IncludeRules context="FindNormalText"/>
       </context>
 
       <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracketParam2" fallthroughContext="ExprBracketValue">
@@ -1335,6 +1509,7 @@
       <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracketFinal" fallthroughContext="ExprBracketValue">
         <DetectSpaces attribute="Normal Text" context="#stay"/>
         <IncludeRules context="FindExprBracketEnd"/>
+        <RegExpr attribute="Expression" context="#pop!ExprBracket" String="-[ao]&eos;"/>
         <RegExpr attribute="Error" context="#pop" String="(?:[^] &tab;]++|\][^ &tab;])++" endRegion="expression"/>
       </context>
 
@@ -1344,16 +1519,17 @@
       </context>
 
       <context attribute="Normal Text" lineEndContext="#pop" name="TestMaybeUnary" fallthroughContext="#pop!ExprBracketValue">
-        <RegExpr attribute="Expression" context="#pop" String="-[abcdefghkprstuwxGLNOSovRnz](?=[ &tab;])"/>
+        <RegExpr attribute="Expression" context="#pop#pop!ExprBracketParam2" String="&unary_operators;"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="TestMaybeBinary" fallthroughContext="#pop!ExprBracketValue">
-        <RegExpr attribute="Expression" context="#pop" String="(?:-(?:e[fq]|[nolg]t|[nlg]e)|==?|!=)(?=[ &tab;])"/>
+        <RegExpr attribute="Expression" context="#pop" String="&binary_operators;"/>
       </context>
 
 
       <!-- ExprDblBracket consumes an expression till ]] -->
       <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracket" fallthroughContext="#pop!ExprDblBracketNot">
         <DetectSpaces attribute="Normal Text" context="#stay"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
         <IncludeRules context="FindExprDblBracketEnd"/>
       </context>
 
@@ -1365,25 +1541,88 @@
         <RegExpr attribute="Expression" context="#pop" String="!(?=$|[ &tab;(])"/>
       </context>
 
-      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam1" fallthroughContext="ExprDblBracketValue">
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam1" fallthroughContext="ExprDblBracketValueText">
         <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketParam2"/>
-        <DetectChar context="TestMaybeUnary" char="-" lookAhead="1"/>
+        <DetectChar context="TestMaybeUnary2" char="-" lookAhead="1"/>
         <AnyChar attribute="Expression" context="#pop!ExprDblBracketParam3Spe" String="&lt;>"/>
         <IncludeRules context="FindExprDblBracketEnd"/>
       </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="TestMaybeUnary2" fallthroughContext="#pop!ExprDblBracketValueText">
+        <RegExpr attribute="Expression" context="#pop!ExprDblBracketUnary" String="&unary_operators;(?!\s+(?:=~|&binary_operators;))"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketUnary">
+        <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketValueText"/>
+      </context>
 
-      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValue">
+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValueText" fallthroughContext="#pop!ExprDblBracketValueText2">
+        <Detect2Chars context="#pop!ExprDblBracketValueTextMaybeEnd" char="]" char1="]" lookAhead="1"/>
+        <DetectChar attribute="Error" context="#pop!Comment" char="#"/>
+        <IncludeRules context="FindExprDblBracketValueTextPath"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="FindExprDblBracketValueTextPath">
+        <RegExpr context="#pop!ExprDblBracketValueTextPath" String="&path_with_sep;|" lookAhead="1"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValueTextMaybeEnd">
+        <RegExpr attribute="Keyword" context="#pop#pop" String="&dblbracket_close;" endRegion="expression"/>
+        <IncludeRules context="FindExprDblBracketValueTextPath"/>
+        <Detect2Chars context="#pop!ExprDblBracketValueText2" char="]" char1="]" lookAhead="1"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValueText2">
+        <DetectIdentifier/>
+        <AnyChar String="*?+!@~^:%+-/,"/>
+        <IncludeRules context="ExprDblBracketValueCommon"/>
+      </context>
+      <context attribute="Path" lineEndContext="#pop" name="ExprDblBracketValueTextPath">
+        <IncludeRules context="ExprDblBracketValueText2"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValuePattern" fallthroughContext="#pop!ExprDblBracketValuePattern2">
+        <RegExpr context="PathThenPop" String="&path_with_sep;|" lookAhead="1"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValuePattern2">
+        <DetectIdentifier attribute="Normal Text"/>
+        <IncludeRules context="ExprDblBracketValueCommon"/>
+        <IncludeRules context="FindExprDblBracketValueExtGlob"/>
+        <AnyChar attribute="Glob" String="?*"/>
+      </context>
+      <context attribute="Glob" lineEndContext="#stay" name="FindExprDblBracketValueExtGlob">
+        <Detect2Chars attribute="Glob" context="ExprDblBracketValueExtGlob" char="?" char1="("/>
+        <Detect2Chars attribute="Glob" context="ExprDblBracketValueExtGlob" char="*" char1="("/>
+        <Detect2Chars attribute="Glob" context="ExprDblBracketValueExtGlob" char="+" char1="("/>
+        <Detect2Chars attribute="Glob" context="ExprDblBracketValueExtGlob" char="@" char1="("/>
+        <Detect2Chars attribute="Glob" context="ExprDblBracketValueExtGlob" char="!" char1="("/>
+        <DetectChar context="ExprDblBracketValueMaybeGlobAny" char="[" lookAhead="1"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketValueMaybeGlobAny" fallthroughContext="#pop">
+        <IncludeRules context="FindGlobAny"/>
+        <DetectChar attribute="Normal Text" context="#pop" char="["/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop#pop" name="ExprDblBracketValueExtGlob">
+        <DetectIdentifier attribute="Normal Text"/>
+        <DetectChar attribute="Glob" context="#pop" char=")"/>
+        <DetectChar attribute="Normal Text" context="ExprDblBracketValueExtGlobNormal" char="("/>
+        <IncludeRules context="FindExprDblBracketValueExtGlob"/>
+        <AnyChar attribute="Glob" String="|?*"/>
+        <IncludeRules context="FindWord"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop#pop" name="ExprDblBracketValueExtGlobNormal">
+        <DetectIdentifier attribute="Normal Text"/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+        <DetectChar attribute="Normal Text" context="ExprDblBracketValueExtGlobNormal" char="("/>
+        <IncludeRules context="FindExprDblBracketValueExtGlob"/>
+        <AnyChar attribute="Glob" String="?*"/>
+        <IncludeRules context="FindWord"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValueCommon">
         <Detect2Chars context="ExprDblBracketDblParentOrSubValue" char="(" char1="(" lookAhead="1"/>
         <DetectChar context="ExprDblBracketSubValue" char="(" lookAhead="1"/>
         <DetectChar attribute="Operator" context="#pop#pop" char=")"/>
         <Detect2Chars attribute="Control" context="#pop#pop!ExprDblBracket" char="&amp;" char1="&amp;"/>
         <Detect2Chars attribute="Control" context="#pop#pop!ExprDblBracket" char="|" char1="|"/>
-        <AnyChar attribute="Error" context="#stay" String="|&amp;;)"/>
+        <AnyChar attribute="Error" context="#stay" String="|&amp;;"/>
         <AnyChar context="#pop" String=" &tab;&lt;>" lookAhead="1"/>
         <IncludeRules context="FindWord"/>
-        <DetectChar context="NormalMaybeBraceExpansion" char="{" lookAhead="1"/>
-        <IncludeRules context="FindPathThenPop"/>
-        <IncludeRules context="FindNormalTextOption"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketSubValue" fallthroughContext="#pop">
         <DetectChar attribute="Operator" context="ExprDblBracketNot" char="("/>
@@ -1398,34 +1637,38 @@
         <Detect2Chars attribute="Keyword" context="#pop" char=")" char1=")" endRegion="expression"/>
         <IncludeRules context="FindExprDblParen"/>
         <!-- ((cmd
-              ) # jump to ExprDblBracketValue context -->
-        <DetectChar attribute="Operator" context="ExprDblBracketValue" char=")" endRegion="expression" beginRegion="subshell"/>
+              ) # jump to ExprDblBracketValuePattern context -->
+        <DetectChar attribute="Operator" context="ExprDblBracketValuePattern" char=")" endRegion="expression" beginRegion="subshell"/>
       </context>
 
-      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam2" fallthroughContext="ExprDblBracketValue">
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam2" fallthroughContext="ExprDblBracketValuePattern">
         <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketParam3"/>
         <AnyChar context="TestMaybeBinary2" String="-=!" lookAhead="1"/>
         <AnyChar attribute="Expression" context="#pop!ExprDblBracketParam3Spe" String="&lt;>"/>
         <IncludeRules context="FindExprDblBracketEnd"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
       </context>
-      <context attribute="Normal Text" lineEndContext="#pop" name="TestMaybeBinary2" fallthroughContext="#pop!ExprDblBracketValue">
+      <context attribute="Normal Text" lineEndContext="#pop" name="TestMaybeBinary2" fallthroughContext="#pop!ExprDblBracketValuePattern">
         <IncludeRules context="TestMaybeBinary"/>
-        <RegExpr attribute="Expression" context="#pop#pop!ExprDblBracketRegex" String="=~(?=[ &tab;(])"/>
+        <RegExpr attribute="Expression" context="#pop!ExprDblBracketRegex" String="=~(?=[ &tab;(])"/>
       </context>
 
       <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam3Spe" fallthroughContext="#pop!ExprDblBracketParam3">
         <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketParam3"/>
       </context>
 
-      <context attribute="Normal Text" lineEndContext="ExprDblBracketFinal" name="ExprDblBracketParam3" fallthroughContext="ExprDblBracketValue">
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam3" fallthroughContext="ExprDblBracketValuePattern">
         <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketFinal"/>
         <IncludeRules context="FindExprDblBracketEnd"/>
         <AnyChar attribute="Error" context="#stay" String="&lt;>"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
       </context>
 
-      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketFinal" fallthroughContext="ExprDblBracketValue">
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketFinal" fallthroughContext="ExprDblBracketValuePattern">
         <DetectSpaces attribute="Normal Text" context="#stay"/>
         <IncludeRules context="FindExprDblBracketEnd"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
+        <DetectChar attribute="Operator" context="#pop" char=")"/>
         <RegExpr attribute="Error" context="#pop" String="(?:[^] &tab;]++|\](?:[^]]|\][^ &tab;]))++" endRegion="expression"/>
       </context>
 
@@ -1433,20 +1676,25 @@
         <LineContinue attribute="Escape" context="#stay"/>
         <Detect2Chars attribute="Control" context="#pop!ExprDblBracket" char="&amp;" char1="&amp;"/>
         <Detect2Chars attribute="Control" context="#pop!ExprDblBracket" char="|" char1="|"/>
-        <RegExpr attribute="Keyword" context="#pop" String="\]\](?=($|[ &tab;;|&amp;)]))" endRegion="expression"/>
+        <RegExpr attribute="Keyword" context="#pop" String="&dblbracket_close;" endRegion="expression"/>
       </context>
 
-      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketRegex">
-        <DetectSpaces attribute="Normal Text" context="#pop!Regex"/>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketRegex" fallthroughContext="#pop!ExprDblBracketRegexCheck">
+        <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketRegexCheck"/>
       </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketRegexCheck" fallthroughContext="#pop#pop!Regex">
+        <DetectChar attribute="Error" context="Comment" char="#"/>
+      </context>
       <context attribute="Pattern" lineEndContext="#stay" name="Regex">
+        <DetectIdentifier attribute="Pattern"/>
         <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketFinal"/>
-        <DetectChar attribute="Error" context="#stay" char=")"/>
+        <DetectChar attribute="Operator" context="#pop" char=")"/>
         <Detect2Chars attribute="Operator" context="RegexChar" char="[" char1="^"/>
         <DetectChar attribute="Operator" context="RegexChar" char="["/>
         <IncludeRules context="FindRegex"/>
       </context>
       <context attribute="Pattern" lineEndContext="#stay" name="ExprDblBracketSubRegex">
+        <DetectIdentifier attribute="Pattern"/>
         <DetectSpaces attribute="Pattern" context="#stay"/>
         <DetectChar attribute="Operator" context="#pop" char=")"/>
         <Detect2Chars attribute="Operator" context="RegexSubChar" char="[" char1="^"/>
@@ -1473,7 +1721,7 @@
       </context>
 
       <context attribute="Normal Text" lineEndContext="#pop" name="RegexDup">
-        <AnyChar attribute="Decimal" context="#stay" String="0123456789"/>
+        <Int attribute="Decimal" additionalDeliminator="{"/>
         <DetectChar attribute="Parameter Expansion Operator" context="#stay" char=","/>
         <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
       </context>
@@ -1496,6 +1744,7 @@
         <DetectChar context="RegexCharClassSelect" char="[" lookAhead="1"/>
         <DetectChar attribute="Operator" context="#pop" char="]"/>
         <AnyChar context="#pop" String="() &tab;" lookAhead="1"/>
+        <IncludeRules context="FindStrings"/>
       </context>
       <context attribute="Operator" lineEndContext="#stay" name="RegexInCharEnd">
         <DetectChar attribute="Pattern" context="#stay" char="-"/>
@@ -1509,14 +1758,17 @@
       </context>
 
       <context attribute="Parameter Expansion" lineEndContext="#pop#pop#pop" name="RegexCharClass">
+        <DetectIdentifier attribute="Parameter Expansion"/>
         <Detect2Chars attribute="Parameter Expansion Operator" context="#pop" char=":" char1="]"/>
         <DetectChar attribute="Error" context="#pop" char="]"/>
       </context>
       <context attribute="Parameter Expansion" lineEndContext="#pop#pop#pop" name="RegexCollatingSymbols">
+        <DetectIdentifier attribute="Parameter Expansion"/>
         <Detect2Chars attribute="Parameter Expansion Operator" context="#pop" char="." char1="]"/>
         <DetectChar attribute="Error" context="#pop" char="]"/>
       </context>
       <context attribute="Parameter Expansion" lineEndContext="#pop#pop#pop" name="RegexEquivalenceClass">
+        <DetectIdentifier attribute="Parameter Expansion"/>
         <Detect2Chars attribute="Parameter Expansion Operator" context="#pop" char="=" char1="]"/>
         <DetectChar attribute="Error" context="#pop" char="]"/>
       </context>
@@ -1561,6 +1813,7 @@
         <AnyChar attribute="Decimal" context="#stay" String="0123456789"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="Subscript2">
+        <DetectIdentifier attribute="Normal Text"/>
         <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="]"/>
         <IncludeRules context="FindWord"/>
         <IncludeRules context="FindPattern"/>
@@ -1611,43 +1864,45 @@
     <itemDatas>
       <itemData name="Normal Text"    defStyleNum="dsNormal"/>
       <itemData name="Comment"        defStyleNum="dsComment"/>
-      <itemData name="Keyword"        defStyleNum="dsKeyword"/>
-      <itemData name="Control"        defStyleNum="dsKeyword"/>
-      <itemData name="Control Flow"   defStyleNum="dsControlFlow"/>
-      <itemData name="Builtin"        defStyleNum="dsBuiltIn"/>
-      <itemData name="Command"        defStyleNum="dsFunction"/>
-      <itemData name="OtherCommand"   defStyleNum="dsExtension"/>
-      <itemData name="Redirection"    defStyleNum="dsOperator"/>
-      <itemData name="Escape"         defStyleNum="dsDataType"/>
+      <itemData name="Keyword"        defStyleNum="dsKeyword"       spellChecking="false"/>
+      <itemData name="Control"        defStyleNum="dsKeyword"       spellChecking="false"/>
+      <itemData name="Control Flow"   defStyleNum="dsControlFlow"   spellChecking="false"/>
+      <itemData name="Builtin"        defStyleNum="dsBuiltIn"       spellChecking="false"/>
+      <itemData name="Command"        defStyleNum="dsFunction"      spellChecking="false"/>
+      <itemData name="OtherCommand"   defStyleNum="dsExtension"     spellChecking="false"/>
+      <itemData name="Redirection"    defStyleNum="dsOperator"      spellChecking="false"/>
+      <itemData name="Escape"         defStyleNum="dsDataType"      spellChecking="false"/>
       <itemData name="String SingleQ" defStyleNum="dsString"/>
       <itemData name="String DoubleQ" defStyleNum="dsString"/>
       <itemData name="Here Doc"       defStyleNum="dsString"/>
-      <itemData name="Backquote"      defStyleNum="dsKeyword"/>
+      <itemData name="Backquote"      defStyleNum="dsKeyword"       spellChecking="false"/>
       <itemData name="String Transl." defStyleNum="dsString"/>
       <itemData name="String Escape"  defStyleNum="dsDataType"/>
-      <itemData name="Variable"       defStyleNum="dsVariable"/>
-      <itemData name="Expression"     defStyleNum="dsOthers"/>
-      <itemData name="Function"       defStyleNum="dsFunction"/>
-      <itemData name="Pattern"        defStyleNum="dsSpecialString"/>
-      <itemData name="Path"           defStyleNum="dsNormal"/>
-      <itemData name="Glob"           defStyleNum="dsPreprocessor"/>
-      <itemData name="Option"         defStyleNum="dsAttribute"/>
-      <itemData name="Hex"            defStyleNum="dsBaseN"/>
-      <itemData name="Octal"          defStyleNum="dsBaseN"/>
-      <itemData name="Decimal"        defStyleNum="dsDecVal"/>
-      <itemData name="Base"           defStyleNum="dsDataType"/>
-      <itemData name="BaseN"          defStyleNum="dsBaseN"/>
-      <itemData name="File Descriptor" defStyleNum="dsDecVal"/>
-      <itemData name="Parameter Expansion" defStyleNum="dsVariable"/>
-      <itemData name="Parameter Expansion Operator" defStyleNum="dsOperator"/>
-      <itemData name="Operator"       defStyleNum="dsOperator"/>
-      <itemData name="Error"          defStyleNum="dsError"/>
+      <itemData name="Variable"       defStyleNum="dsVariable"      spellChecking="false"/>
+      <itemData name="Dollar Prefix"  defStyleNum="dsVariable"      spellChecking="false"/>
+      <itemData name="Expression"     defStyleNum="dsOthers"        spellChecking="false"/>
+      <itemData name="Function"       defStyleNum="dsFunction"      spellChecking="false"/>
+      <itemData name="Pattern"        defStyleNum="dsSpecialString" spellChecking="false"/>
+      <itemData name="Path"           defStyleNum="dsNormal"        spellChecking="false"/>
+      <itemData name="Glob"           defStyleNum="dsPreprocessor"  spellChecking="false"/>
+      <itemData name="Option"         defStyleNum="dsAttribute"     spellChecking="false"/>
+      <itemData name="Hex"            defStyleNum="dsBaseN"         spellChecking="false"/>
+      <itemData name="Octal"          defStyleNum="dsBaseN"         spellChecking="false"/>
+      <itemData name="Decimal"        defStyleNum="dsDecVal"        spellChecking="false"/>
+      <itemData name="Base"           defStyleNum="dsDataType"      spellChecking="false"/>
+      <itemData name="BaseN"          defStyleNum="dsBaseN"         spellChecking="false"/>
+      <itemData name="File Descriptor" defStyleNum="dsDecVal"       spellChecking="false"/>
+      <itemData name="Parameter Expansion" defStyleNum="dsVariable" spellChecking="false"/>
+      <itemData name="Parameter Expansion Operator" defStyleNum="dsOperator" spellChecking="false"/>
+      <itemData name="Operator"       defStyleNum="dsOperator"      spellChecking="false"/>
+      <itemData name="Error"          defStyleNum="dsError"         spellChecking="false"/>
+      <itemData name="Region Marker"  defStyleNum="dsRegionMarker"  spellChecking="false" />
     </itemDatas>
   </highlighting>
   <general>
     <comments>
       <comment name="singleLine" start="#"/>
     </comments>
-    <keywords casesensitive="1" weakDeliminator="^%#[]$._{}:-/" additionalDeliminator="`"/>
+    <keywords casesensitive="1" weakDeliminator="_&weakDeliminatorSymbols;" additionalDeliminator="`"/>
   </general>
 </language>
diff --git a/syntax/bibtex.xml b/syntax/bibtex.xml
--- a/syntax/bibtex.xml
+++ b/syntax/bibtex.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 	  [
 	  <!ENTITY stringVariable   "[a-zA-Z0-9\-]+">
 	  <!ENTITY fieldFormat    	"[a-zA-Z0-9\-_\.]+">
diff --git a/syntax/c.xml b/syntax/c.xml
--- a/syntax/c.xml
+++ b/syntax/c.xml
@@ -1,16 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
-    <!ENTITY int "(?:[0-9]++)">
-    <!ENTITY hex_int "(?:[0-9A-Fa-f]++)">
+    <!ENTITY int "(?:[0-9](?:'?[0-9]++)*+)">
+    <!ENTITY hex_int "(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f]++)*+)">
     <!ENTITY exp_float "(?:[eE][+-]?&int;)">
     <!ENTITY exp_hexfloat "(?:[pP][-+]?&int;)">
 
+    <!ENTITY symbols ":!&#37;&amp;()+,-/.*&lt;=&gt;?[]|~^;">
+
+    <!-- printf-like format strings conversion specifiers -->
+    <!ENTITY printf_like "&#37;[-+ #0]*+(?:[0-9]++|\*)?(?:\.(?:[0-9]++|\*))?(?:(?:hh|ll|[hljzt]|wf?(?:8|16|32|64))?[dioxXubn]|(?:DD|[lLHD])?[fFeEaAgG]|l?[cs]|[p&#37;])">
+
     <!ENTITY ispphash "(?:#|&#37;\:|\?\?=)">
     <!ENTITY pphash "&ispphash;\s*">
 ]>
 <language name="C" section="Sources"
-          version="14" kateversion="5.0"
+          version="18" kateversion="5.79"
           indenter="cstyle"
           extensions="*.c;*.C;*.h"
           mimetype="text/x-csrc;text/x-c++src;text/x-chdr"
@@ -38,13 +43,24 @@
       <item>switch</item>
       <item>while</item>
     </list>
+
     <list name="keywords">
+      <item>alignas</item> <!-- C23 -->
+      <item>alignof</item> <!-- C23 -->
+      <item>auto</item>
+      <item>constexpr</item> <!-- C23 -->
       <item>enum</item>
       <item>extern</item>
+      <item>false</item> <!-- C23 -->
       <item>inline</item>
+      <item>nullptr</item> <!-- C23 -->
       <item>sizeof</item>
+      <item>static_assert</item> <!-- C23 -->
       <item>struct</item>
+      <item>true</item> <!-- C23 -->
       <item>typedef</item>
+      <item>typeof</item> <!-- C23 -->
+      <item>typeof_unqual</item> <!-- C23 -->
       <item>union</item>
       <item>_Alignas</item>
       <item>_Alignof</item>
@@ -53,22 +69,31 @@
       <item>_Static_assert</item>
       <item>_Thread_local</item>
     </list>
+
+    <!-- https://en.cppreference.com/w/c/language/attributes -->
+    <list name="attributes">
+      <item>noreturn</item>
+      <item>deprecated</item>
+      <item>fallthrough</item>
+      <item>nodiscard</item>
+      <item>maybe_unused</item>
+      <item>unsequenced</item>
+      <item>reproducible</item>
+    </list>
+
     <list name="types">
-      <item>auto</item>
+      <item>bool</item> <!-- C23 -->
       <item>char</item>
-      <item>const</item>
+      <item>char16_t</item>
+      <item>char32_t</item>
       <item>double</item>
       <item>float</item>
       <item>int</item>
       <item>long</item>
-      <item>register</item>
-      <item>restrict</item>
       <item>short</item>
       <item>signed</item>
-      <item>static</item>
       <item>unsigned</item>
       <item>void</item>
-      <item>volatile</item>
       <item>int8_t</item>
       <item>int16_t</item>
       <item>int32_t</item>
@@ -103,8 +128,12 @@
       <item>ptrdiff_t</item>
       <item>sig_atomic_t</item>
       <item>wint_t</item>
+      <item>_BitInt</item> <!-- C23 -->
       <item>_Bool</item>
       <item>bool</item>
+      <item>_Decimal32</item> <!-- C23 -->
+      <item>_Decimal64</item> <!-- C23 -->
+      <item>_Decimal128</item> <!-- C23 -->
       <item>_Complex</item>
       <item>complex</item>
       <item>_Imaginary</item>
@@ -115,42 +144,187 @@
       <item>fpos_t</item>
       <item>time_t</item>
       <item>max_align_t</item>
+
+      <!-- modifiers -->
+      <item>const</item>
+      <item>register</item>
+      <item>restrict</item>
+      <item>static</item>
+      <item>thread_local</item> <!-- C23 -->
+      <item>volatile</item>
     </list>
+
+    <list name="preprocessor">
+      <item>if</item>
+      <item>ifdef</item>
+      <item>ifndef</item>
+      <item>elif</item>
+      <item>elifdef</item> <!-- C23 -->
+      <item>elifndef</item> <!-- C23 -->
+      <item>else</item>
+      <item>endif</item>
+      <item>define</item>
+      <item>include</item>
+      <item>error</item>
+      <item>line</item>
+      <item>pragma</item>
+      <item>undef</item>
+      <item>warning</item>
+      <item>embed</item>
+    </list>
+
     <contexts>
       <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
         <DetectSpaces />
-        <RegExpr attribute="Preprocessor" context="Outscoped" String="&pphash;if\s+0\s*$" beginRegion="PP" firstNonSpace="true" />
-        <RegExpr context="AfterHash" String="&ispphash;" firstNonSpace="true" lookAhead="true" />
-        <keyword attribute="Control Flow" context="#stay" String="controlflow"/>
-        <keyword attribute="Keyword" context="#stay" String="keywords"/>
-        <keyword attribute="Data Type" context="#stay" String="types"/>
+        <!-- Match symbols (partial for fast path) -->
+        <AnyChar attribute="Symbol" context="#stay" String=":()]+-*=&gt;!|&amp;~^,;" />
+
+        <IncludeRules context="match keywords" />
+        <AnyChar context="SelectString" String="UuL&quot;'" lookAhead="1"/>
         <DetectIdentifier />
+
         <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
         <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
         <Detect2Chars attribute="Symbol" context="#stay" char="&lt;" char1="%" beginRegion="Brace1" /> <!-- Digraph: { -->
         <Detect2Chars attribute="Symbol" context="#stay" char="%" char1="&gt;" endRegion="Brace1" /> <!-- Digraph: } -->
 
+        <!-- Detect attributes -->
+        <Detect2Chars attribute="Symbol" context="Attribute" char="[" char1="[" />
+        <StringDetect attribute="Symbol" context="Attribute" String="&lt;:&lt;:" /> <!-- Digraph: [[ -->
+
         <!-- Match numbers -->
-        <RegExpr attribute="Decimal" context="Number" String="\.?[0-9]" lookAhead="true" />
+        <RegExpr context="Number" String="\.?[0-9]" lookAhead="1" />
 
-        <HlCChar attribute="Char" context="#stay"/>
-        <DetectChar attribute="String" context="String" char="&quot;"/>
         <IncludeRules context="FindComments" />
-        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>
+        <RegExpr context="AfterHash" String="&ispphash;|" firstNonSpace="1" lookAhead="1" />
+        <AnyChar attribute="Symbol" context="#stay" String="&symbols;"/>
       </context>
 
-      <context attribute="String" lineEndContext="#pop" name="String">
-        <LineContinue attribute="String" context="#stay"/>
-        <HlCStringChar attribute="String Char" context="#stay"/>
-        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      <context name="match keywords" attribute="Normal Text" lineEndContext="#pop">
+        <keyword attribute="Control Flow" context="#stay" String="controlflow"/>
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Data Type" context="#stay" String="types"/>
       </context>
 
+
+      <context name="SelectStringPP" attribute="Preprocessor" lineEndContext="#pop">
+        <IncludeRules context="SelectString"/>
+      </context>
+      <context name="SelectString" attribute="Normal Text" lineEndContext="#pop">
+        <DetectChar attribute="String" context="#pop!String8" char="&quot;"/>
+        <DetectChar attribute="Char" context="#pop!Char8" char="'"/>
+        <Detect2Chars context="#pop!SelectStringPrefix" char="U" char1="&quot;" lookAhead="1"/>
+        <Detect2Chars context="#pop!SelectStringPrefix" char="u" char1="&quot;" lookAhead="1"/>
+        <Detect2Chars context="#pop!SelectStringPrefix" char="L" char1="&quot;" lookAhead="1"/>
+        <StringDetect context="#pop!SelectStringPrefix" String="u8&quot;" lookAhead="1"/>
+        <Detect2Chars context="#pop!SelectCharPrefix" char="U" char1="'" lookAhead="1"/>
+        <Detect2Chars context="#pop!SelectCharPrefix" char="u" char1="'" lookAhead="1"/>
+        <Detect2Chars context="#pop!SelectCharPrefix" char="L" char1="'" lookAhead="1"/>
+        <StringDetect context="#pop!SelectCharPrefix" String="u8'" lookAhead="1"/>
+
+        <!-- match identifier -->
+        <keyword attribute="Data Type" context="#pop" String="types"/>
+        <DetectIdentifier context="#pop"/>
+      </context>
+
+
+      <context name="SelectStringPrefix" attribute="String" lineEndContext="#pop">
+        <Detect2Chars attribute="String Literal Prefix" context="#pop!StringPrefix8" char="u" char1="8"/>
+        <AnyChar attribute="String Literal Prefix" context="#pop!StringPrefix16" String="uL"/>
+        <DetectChar attribute="String Literal Prefix" context="#pop!StringPrefix32" char="U"/>
+      </context>
+      <context name="StringPrefix8" attribute="String" lineEndContext="#pop">
+        <DetectChar attribute="String" context="#pop!String8" char="&quot;"/>
+      </context>
+      <context name="StringPrefix16" attribute="String" lineEndContext="#pop">
+        <DetectChar attribute="String" context="#pop!String16" char="&quot;"/>
+      </context>
+      <context name="StringPrefix32" attribute="String" lineEndContext="#pop">
+        <DetectChar attribute="String" context="#pop!String32" char="&quot;"/>
+      </context>
+
+      <context name="SelectCharPrefix" attribute="String" lineEndContext="#pop">
+        <Detect2Chars attribute="Char Literal Prefix" context="#pop!CharPrefix8" char="u" char1="8"/>
+        <AnyChar attribute="Char Literal Prefix" context="#pop!CharPrefix16" String="uL"/>
+        <DetectChar attribute="Char Literal Prefix" context="#pop!CharPrefix32" char="U"/>
+      </context>
+      <context name="CharPrefix8" attribute="Char" lineEndContext="#pop">
+        <DetectChar attribute="Char" context="#pop!Char8" char="'"/>
+      </context>
+      <context name="CharPrefix16" attribute="Char" lineEndContext="#pop">
+        <DetectChar attribute="Char" context="#pop!Char16" char="'"/>
+      </context>
+      <context name="CharPrefix32" attribute="Char" lineEndContext="#pop">
+        <DetectChar attribute="Char" context="#pop!Char32" char="'"/>
+      </context>
+
+
+      <context name="String8" attribute="String" lineEndContext="#pop">
+        <IncludeRules context="string normal char" />
+        <Detect2Chars context="String8EscapeX" char="\" char1="x" lookAhead="1"/>
+        <IncludeRules context="string special char" />
+      </context>
+      <context name="String8EscapeX" attribute="String" lineEndContext="#pop">
+        <HlCStringChar attribute="String Char" context="#pop!StringNoHex"/>
+        <Detect2Chars context="#pop" attribute="Error" char="\" char1="x"/>
+      </context>
+
+      <context name="String16" attribute="String" lineEndContext="#pop">
+        <IncludeRules context="string normal char" />
+        <Detect2Chars context="String16EscapeX" char="\" char1="x" lookAhead="1"/>
+        <IncludeRules context="string special char" />
+      </context>
+      <context name="String16EscapeX" attribute="String" lineEndContext="#pop">
+        <RegExpr attribute="String Char" context="#pop!StringNoHex" String="\\x[0-9A-Fa-f]{1,4}" />
+        <Detect2Chars context="#pop" attribute="Error" char="\" char1="x"/>
+      </context>
+
+      <context name="String32" attribute="String" lineEndContext="#pop">
+        <IncludeRules context="string normal char" />
+        <Detect2Chars context="String32EscapeX" char="\" char1="x" lookAhead="1"/>
+        <IncludeRules context="string special char" />
+      </context>
+      <context name="String32EscapeX" attribute="String" lineEndContext="#pop">
+        <RegExpr attribute="String Char" context="#pop!StringNoHex" String="\\x[0-9A-Fa-f]{1,8}" />
+        <Detect2Chars context="#pop" attribute="Error" char="\" char1="x"/>
+      </context>
+
+      <context name="StringNoHex" attribute="Error" lineEndContext="#pop" fallthroughContext="#pop">
+        <RegExpr attribute="Error" context="#pop" String="[0-9A-Fa-f]{1,}" />
+      </context>
+
+
+      <context name="Char8" attribute="Char" lineEndContext="#pop" fallthroughContext="CharClose">
+        <HlCStringChar attribute="String Char" context="CharClose"/>
+        <IncludeRules context="FindSingleChar"/>
+      </context>
+
+      <context name="Char16" attribute="Char" lineEndContext="#pop" fallthroughContext="CharClose">
+        <RegExpr attribute="String Char" context="CharClose" String="\\(?:[tnvbrfa'&quot;\\?]|[0-7]{1,3}|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4})|" />
+        <IncludeRules context="FindSingleChar"/>
+      </context>
+
+      <context name="Char32" attribute="Char" lineEndContext="#pop" fallthroughContext="CharClose">
+        <RegExpr attribute="String Char" context="CharClose" String="\\(?:[tnvbrfa'&quot;\\?]|[0-7]{1,3}|x[0-9A-Fa-f]{1,8}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})|" />
+        <IncludeRules context="FindSingleChar"/>
+      </context>
+
+
+      <context name="FindSingleChar" attribute="Char" lineEndContext="#pop">
+        <DetectChar attribute="Error" context="#pop" char="'" />
+        <RegExpr attribute="Char" context="CharClose" String="." />
+      </context>
+      <context name="CharClose" attribute="Error" lineEndContext="#pop#pop">
+        <DetectChar attribute="Char" context="#pop#pop" char="'" />
+      </context>
+
+
       <context name="FindComments" attribute="Normal Text" lineEndContext="#pop">
         <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="/" lookAhead="true" />
         <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true" />
       </context>
 
-      <context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+      <context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
         <StringDetect attribute="Region Marker" context="#pop!Region Marker" String="//BEGIN" beginRegion="Region1" firstNonSpace="true" />
         <StringDetect attribute="Region Marker" context="#pop!Region Marker" String="//END" endRegion="Region1" firstNonSpace="true" />
         <IncludeRules context="##Doxygen" />
@@ -171,93 +345,194 @@
         <IncludeRules context="##Comments" />
       </context>
 
-      <context attribute="Error" lineEndContext="#pop" name="AfterHash">
-        <RegExpr attribute="Preprocessor" context="Include" String="&pphash;(?:include|include_next)" insensitive="true" firstNonSpace="true" />
 
-        <!-- define, elif, else, endif, error, if, ifdef, ifndef, line, pragma, undef, warning -->
-        <RegExpr attribute="Preprocessor" context="Preprocessor" String="&pphash;if(?:def|ndef)?(?=\s+\S)" insensitive="true" beginRegion="PP" firstNonSpace="true" />
-        <RegExpr attribute="Preprocessor" context="Preprocessor" String="&pphash;endif" insensitive="true" endRegion="PP" firstNonSpace="true" />
-        <RegExpr attribute="Preprocessor" context="Define" String="&pphash;define.*((?=\\))" insensitive="true" firstNonSpace="true" />
+      <context name="string special char" attribute="String" lineEndContext="#pop">
+        <HlCStringChar attribute="String Char"/>
+        <RegExpr attribute="String Char" String="\\(?:u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})|&printf_like;"/>
+        <DetectChar attribute="String" char="%"/>
+        <RegExpr attribute="Error" String="\\(?:u[^&quot;]{0,3}|U[^&quot;]{0,7}|.)"/>
+        <LineContinue attribute="Symbol"/>
+      </context>
 
+      <context name="string normal char" attribute="String" lineEndContext="#pop">
+        <!-- fast way, can be replaced by a `UntilChars` rule if it exists -->
+        <!-- % -> printf format -->
+        <RegExpr attribute="String" context="#stay" String="[^%\\&quot;]+" />
+        <DetectChar attribute="String" context="#pop" char="&quot;" />
+      </context>
+
+
+      <context attribute="Error" lineEndContext="#pop" name="AfterHash" fallthroughContext="#pop!LineError">
+        <RegExpr attribute="Preprocessor" context="#pop!PreprocessorCmd" String="&pphash;(?=.)|" firstNonSpace="true" />
+      </context>
+
+      <context name="LineError" attribute="Error" lineEndContext="#pop">
+        <LineContinue attribute="Error" context="#stay" />
+        <RegExpr attribute="Error" context="#stay" String="[^\\]+" />
+      </context>
+
+      <context attribute="Error" lineEndContext="#pop" name="PreprocessorCmd" fallthroughContext="#pop!LineError">
+        <WordDetect attribute="Preprocessor" context="#pop!Include" String="include" insensitive="true" />
+
+        <WordDetect attribute="Preprocessor" context="#pop!Preprocessor" String="ifdef" beginRegion="PP" lookAhead="true" insensitive="true" />
+        <WordDetect attribute="Preprocessor" context="#pop!Preprocessor" String="ifndef" beginRegion="PP" lookAhead="true" insensitive="true" />
+        <RegExpr attribute="Preprocessor" context="#pop!Outscoped" String="if\s+0\s*$|" beginRegion="PP" />
+        <WordDetect attribute="Preprocessor" context="#pop!Preprocessor" String="if" beginRegion="PP" lookAhead="true" insensitive="true" />
+        <WordDetect attribute="Preprocessor" context="#pop!Preprocessor" String="elif" endRegion="PP" beginRegion="PP" lookAhead="true" insensitive="true" />
+        <WordDetect attribute="Preprocessor" context="#pop!Preprocessor" String="else" endRegion="PP" beginRegion="PP" insensitive="true" />
+        <WordDetect attribute="Preprocessor" context="#pop!Preprocessor" String="endif" endRegion="PP" insensitive="true" />
+        <WordDetect attribute="Preprocessor" context="#pop!Preprocessor" String="elifdef" endRegion="PP" beginRegion="PP" lookAhead="true" insensitive="true" />
+        <WordDetect attribute="Preprocessor" context="#pop!Preprocessor" String="elifndef" endRegion="PP" beginRegion="PP" lookAhead="true" insensitive="true" />
+
+        <WordDetect attribute="Preprocessor" context="#pop!Define" String="define"/>
+
         <!-- folding for apple style #pragma mark - label -->
-        <RegExpr attribute="Preprocessor" context="Preprocessor" String="&pphash;pragma\s+mark\s+-\s*$" insensitive="true" firstNonSpace="true" endRegion="pragma_mark" />
-        <RegExpr attribute="Preprocessor" context="Preprocessor" String="&pphash;pragma\s+mark" insensitive="true" firstNonSpace="true" endRegion="pragma_mark" beginRegion="pragma_mark" />
+        <RegExpr attribute="Preprocessor" context="#pop" String="&pphash;pragma\s+mark\s+-\s*|" insensitive="true" endRegion="pragma_mark" />
+        <RegExpr attribute="Preprocessor" context="Preprocessor" String="&pphash;pragma\s+mark|" insensitive="true" endRegion="pragma_mark" beginRegion="pragma_mark" />
 
-        <RegExpr attribute="Preprocessor" context="Preprocessor" String="&pphash;(?:el(?:se|if)|define|undef|line|error|warning|pragma)|&ispphash;\s+[0-9]+" insensitive="true" firstNonSpace="true" />
+        <keyword attribute="Preprocessor" context="#pop!Preprocessor" String="preprocessor" />
+        <!-- GCC extension -->
+        <WordDetect attribute="Preprocessor" context="#pop!Include" String="include_next" />
+        <Int attribute="Preprocessor" context="#pop!Preprocessor"/>
       </context>
 
       <context attribute="Preprocessor" lineEndContext="#pop" name="Include">
-        <LineContinue attribute="Preprocessor" context="#stay"/>
+        <DetectSpaces />
         <RangeDetect attribute="Prep. Lib" context="#stay" char="&quot;" char1="&quot;"/>
         <RangeDetect attribute="Prep. Lib" context="#stay" char="&lt;" char1="&gt;"/>
         <IncludeRules context="Preprocessor" />
+        <DetectIdentifier/>
       </context>
 
       <context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor">
-        <LineContinue attribute="Preprocessor" context="#stay"/>
+        <LineContinue attribute="Symbol" context="#stay"/>
         <IncludeRules context="FindComments" />
       </context>
 
-      <context attribute="Preprocessor" lineEndContext="#pop" name="Define">
-        <LineContinue attribute="Preprocessor" context="#stay"/>
+      <context name="Define" attribute="Preprocessor" lineEndContext="#pop">
+        <DetectSpaces/>
+        <IncludeRules context="InPreprocessor" />
+        <Detect2Chars attribute="Error" context="#pop!LineError" char="/" char1="/" />
+        <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true" />
+        <IncludeRules context="GNUMacros##GCCExtensions" />
+        <DetectIdentifier attribute="Preprocessor" context="#pop!In Define"/>
       </context>
 
+      <context name="In Define" attribute="Preprocessor" lineEndContext="#pop">
+        <DetectSpaces/>
+        <LineContinue attribute="Symbol" context="#stay" />
+        <!-- Match symbols (partial for fast path) -->
+        <AnyChar attribute="Symbol" context="#stay" String="#:(){}]+-*%=&gt;!|&amp;~^,;" />
+
+        <IncludeRules context="match keywords" />
+        <AnyChar context="SelectStringPP" String="UuLR&quot;'" lookAhead="1"/>
+        <DetectIdentifier />
+
+        <!-- Detect attributes -->
+        <Detect2Chars attribute="Symbol" context="Attribute In PP" char="[" char1="[" />
+        <StringDetect attribute="Symbol" context="Attribute In PP" String="&lt;:&lt;:" /> <!-- Digraph: [[ -->
+
+        <!-- Match numbers -->
+        <RegExpr context="Number" String="\.?\d" lookAhead="1" />
+
+        <IncludeRules context="FindComments" />
+        <AnyChar attribute="Symbol" context="#stay" String="#&symbols;"/>
+      </context>
+
+      <context name="Attribute In PP" attribute="Attribute" lineEndContext="#pop">
+        <IncludeRules context="InPreprocessor" />
+        <IncludeRules context="Attribute" />
+      </context>
+
+      <context name="InPreprocessor" attribute="Normal Text" lineEndContext="#pop">
+        <LineContinue attribute="Symbol" context="#stay" />
+        <DetectChar attribute="Error" context="#stay" char="\" />
+      </context>
+
       <context attribute="Comment" lineEndContext="#stay" name="Outscoped" >
         <DetectSpaces />
         <IncludeRules context="##Comments" />
         <DetectIdentifier />
-        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <DetectChar attribute="String" context="String8" char="&quot;"/>
         <IncludeRules context="FindComments" />
-        <RegExpr attribute="Comment" context="Outscoped intern" String="&pphash;if" beginRegion="PP" firstNonSpace="true" />
-        <RegExpr attribute="Preprocessor" context="#pop" String="&pphash;el(?:se|if)" firstNonSpace="true" />
-        <RegExpr attribute="Preprocessor" context="#pop" String="&pphash;endif" endRegion="PP" firstNonSpace="true" />
+        <RegExpr attribute="Comment" context="Outscoped intern" String="&pphash;if|" beginRegion="PP" firstNonSpace="true" />
+        <RegExpr attribute="Preprocessor" context="#pop" String="&pphash;el(?:se|if(n?def)?)|" firstNonSpace="true" />
+        <RegExpr attribute="Preprocessor" context="#pop" String="&pphash;endif|" endRegion="PP" firstNonSpace="true" />
       </context>
 
       <context attribute="Comment" lineEndContext="#stay" name="Outscoped intern">
         <DetectSpaces />
         <IncludeRules context="##Comments" />
         <DetectIdentifier />
-        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <DetectChar attribute="String" context="String8" char="&quot;"/>
         <IncludeRules context="FindComments" />
-        <RegExpr attribute="Comment" context="Outscoped intern" String="&pphash;if" beginRegion="PP" firstNonSpace="true" />
-        <RegExpr attribute="Comment" context="#pop" String="&pphash;endif" endRegion="PP" firstNonSpace="true" />
+        <RegExpr attribute="Comment" context="Outscoped intern" String="&pphash;if|" beginRegion="PP" firstNonSpace="true" />
+        <RegExpr attribute="Comment" context="#pop" String="&pphash;endif|" endRegion="PP" firstNonSpace="true" />
       </context>
 
-      <context name="Number" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+
+      <context name="Number" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+        <WordDetect attribute="Decimal" context="IntSuffix" String="0" weakDeliminator="."/>
         <RegExpr attribute="Float" context="FloatSuffix" String="\.&int;&exp_float;?|0[xX](?:\.&hex_int;&exp_hexfloat;?|&hex_int;(?:&exp_hexfloat;|\.&hex_int;?&exp_hexfloat;?))|&int;(?:&exp_float;|\.&int;?&exp_float;?)" />
         <IncludeRules context="Integer" />
       </context>
 
-      <context name="Integer" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
-        <RegExpr attribute="Hex" context="IntSuffix" String="0[xX]&hex_int;" />
-        <RegExpr attribute="Binary" context="IntSuffix" String="0[Bb][01]++" />
-        <RegExpr attribute="Octal" context="IntSuffix" String="0[0-7]++" />
-        <RegExpr attribute="Decimal" context="IntSuffix" String="0(?![xXbB0-9])|[1-9][0-9]*+" />
+      <context name="Integer" attribute="Normal Text" lineEndContext="#pop">
+        <DetectChar context="#pop!IntStartsWith0" char="0" lookAhead="1"/>
+        <RegExpr attribute="Decimal" context="IntSuffix" String="&int;" />
         <RegExpr attribute="Error" context="#pop" String="[._0-9A-Za-z']++" />
       </context>
+      <context name="IntStartsWith0" attribute="Normal Text" lineEndContext="#pop">
+        <RegExpr attribute="Hex" context="IntSuffix" String="0[xX]&hex_int;" />
+        <RegExpr attribute="Binary" context="IntSuffix" String="0[Bb][01](?:'?[01]++)*+" />
+        <RegExpr attribute="Octal" context="IntSuffix" String="0(?:'?[0-7]++)++" />
+        <DetectChar attribute="Decimal" context="IntSuffix" char="0"/>
+      </context>
 
-      <context name="IntSuffix" attribute="Error" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="NumericSuffixError">
+      <context name="IntSuffix" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="NumericSuffixError">
         <DetectChar attribute="Error" context="#stay" char="'" />
-        <AnyChar attribute="Error" context="#pop!IntSuffixPattern" String="uUlLimunshyd_" lookAhead="true" />
+        <!-- https://en.cppreference.com/w/c/language/integer_constant#The_type_of_the_integer_constant -->
+        <RegExpr attribute="Standard Suffix" context="NumericSuffixError" String="([Uu](LL?|ll?|wb|WB)?|(LL?|ll?|wb|WB)[Uu]?)\b"/>
       </context>
 
-      <context name="IntSuffixPattern" attribute="Error" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="NumericSuffixError">
-        <RegExpr attribute="Standard Suffix" context="NumericSuffixError" String="[Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?" />
+      <context name="FloatSuffix" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="NumericSuffixError">
+        <DetectChar attribute="Error" context="#stay" char="'" />
+        <!-- https://en.cppreference.com/w/c/language/floating_constant#Suffixes -->
+        <AnyChar attribute="Standard Suffix" context="NumericSuffixError" String="fFlL"/>
+        <Detect2Chars attribute="Standard Suffix" context="NumericSuffixError" char="d" char1="f"/>
+        <Detect2Chars attribute="Standard Suffix" context="NumericSuffixError" char="D" char1="F"/>
+        <Detect2Chars attribute="Standard Suffix" context="NumericSuffixError" char="d" char1="d"/>
+        <Detect2Chars attribute="Standard Suffix" context="NumericSuffixError" char="D" char1="D"/>
+        <Detect2Chars attribute="Standard Suffix" context="NumericSuffixError" char="d" char1="l"/>
+        <Detect2Chars attribute="Standard Suffix" context="NumericSuffixError" char="D" char1="L"/>
       </context>
 
-      <context name="FloatSuffix" attribute="Error" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="NumericSuffixError">
-        <AnyChar attribute="Standard Suffix" context="NumericSuffixError" String="fFlL" />
+      <context name="NumericSuffixError" attribute="Error" lineEndContext="#pop#pop#pop" fallthroughContext="#pop#pop#pop">
+        <AnyChar attribute="Error" String=".'0123456789"/>
+        <DetectIdentifier attribute="Error"/>
       </context>
 
-      <context name="NumericSuffixError" attribute="Error" lineEndContext="#pop#pop#pop" fallthrough="true" fallthroughContext="#pop#pop#pop">
-        <RegExpr attribute="Error" context="#pop#pop#pop" String="\.[_0-9A-Za-z]*|[_0-9A-Za-z]+" />
+      <context name="Attribute" attribute="Attribute" lineEndContext="#stay">
+        <DetectSpaces/>
+        <keyword attribute="Standard Attribute" context="#stay" String="attributes" />
+        <Detect2Chars attribute="Symbol" context="#pop" char="]" char1="]" />
+        <StringDetect attribute="Symbol" context="#pop" String=":&gt;:&gt;" /> <!-- Digraph: ]] -->
+        <AnyChar attribute="Symbol" context="#stay" String="&symbols;" />
+        <!-- Attributes may contain some text: [[deprecated("Reason text")]] -->
+        <DetectChar attribute="String" context="String8" char="&quot;" />
+        <AnyChar attribute="Decimal" context="Integer" String="0123456789" lookAhead="true" />
+        <IncludeRules context="DetectGccAttributes##GCCExtensions" />
+        <DetectIdentifier />
       </context>
+
     </contexts>
     <itemDatas>
       <itemData name="Normal Text"  defStyleNum="dsNormal" spellChecking="false"/>
       <itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="false"/>
       <itemData name="Keyword"      defStyleNum="dsKeyword" spellChecking="false"/>
       <itemData name="Data Type"    defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Attribute"    defStyleNum="dsAttribute" spellChecking="false"/>
+      <itemData name="Standard Attribute" defStyleNum="dsAttribute" spellChecking="false"/>
       <itemData name="Decimal"      defStyleNum="dsDecVal" spellChecking="false"/>
       <itemData name="Octal"        defStyleNum="dsBaseN" spellChecking="false"/>
       <itemData name="Hex"          defStyleNum="dsBaseN" spellChecking="false"/>
@@ -265,8 +540,10 @@
       <itemData name="Float"        defStyleNum="dsFloat" spellChecking="false"/>
       <itemData name="Standard Suffix" defStyleNum="dsBuiltIn" spellChecking="false" />
       <itemData name="Char"         defStyleNum="dsChar" spellChecking="false"/>
+      <itemData name="Char Literal Prefix" defStyleNum="dsChar" spellChecking="false" />
       <itemData name="String"       defStyleNum="dsString"/>
-      <itemData name="String Char"  defStyleNum="dsSpecialChar"/>
+      <itemData name="String Char"  defStyleNum="dsSpecialChar" spellChecking="false"/>
+      <itemData name="String Literal Prefix" defStyleNum="dsString" spellChecking="true" />
       <itemData name="Comment"      defStyleNum="dsComment"/>
       <itemData name="Symbol"       defStyleNum="dsOperator" spellChecking="false"/>
       <itemData name="Preprocessor" defStyleNum="dsPreprocessor" spellChecking="false"/>
@@ -277,10 +554,10 @@
   </highlighting>
   <general>
     <comments>
-      <comment name="singleLine" start="//" />
+      <comment name="singleLine" start="//" position="afterwhitespace" />
       <comment name="multiLine" start="/*" end="*/" region="Comment" />
     </comments>
-    <keywords casesensitive="1" additionalDeliminator="'&quot;" />
+    <keywords casesensitive="1" additionalDeliminator="#'&quot;" />
   </general>
 </language>
 <!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
diff --git a/syntax/changelog.xml b/syntax/changelog.xml
--- a/syntax/changelog.xml
+++ b/syntax/changelog.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="ChangeLog" version="4" kateversion="2.4" section="Other" extensions="ChangeLog" mimetype="" author="Dominik Haumann (dhaumann@kde.org)" license="MIT">
   <highlighting>
     <contexts>
diff --git a/syntax/clojure.xml b/syntax/clojure.xml
--- a/syntax/clojure.xml
+++ b/syntax/clojure.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!--
   This file is part of KDE's kate project.
 
@@ -22,7 +22,7 @@
  * Boston, MA  02110-1301, USA.                                       *
  **********************************************************************
  -->
-<language version="15" kateversion="5.0" name="Clojure" section="Sources" extensions="*.clj;*.cljs;*.cljc" mimetype="" author="Dominik Haumann [lisp] modified for clojure by Caspar Hasenclever" license="LGPLv2+">
+<language version="17" kateversion="5.0" name="Clojure" alternativeNames="CLJ" section="Sources" extensions="*.clj;*.cljs;*.cljc" mimetype="" author="Dominik Haumann [lisp] modified for clojure by Caspar Hasenclever" license="LGPLv2+">
   <highlighting>
     <list name="definitions">
       <item>def</item>
@@ -703,14 +703,6 @@
       <item>true</item>
     </list>
     <contexts>
-      <context name="Level0" attribute="Normal" lineEndContext="#stay">
-        <DetectChar attribute="Brackets1" context="Level1" char="("/>
-        <Detect2Chars attribute="Brackets1" context="Level1" char="'" char1="("/>
-        <Detect2Chars attribute="Brackets1" context="Level1" char="`" char1="("/>
-        <Detect2Chars attribute="Brackets1" context="Level1" char="#" char1="("/>
-        <Detect2Chars attribute="Brackets1" context="Level1" char="@" char1="("/>
-        <IncludeRules context="Default" />
-      </context>
       <context name="Default" attribute="Normal" lineEndContext="#stay">
         <DetectChar attribute="Comment" context="Comment" char=";"/>
         <Detect2Chars attribute="Comment" context="#stay" char="#" char1="_"/>
@@ -720,6 +712,7 @@
         <Detect2Chars attribute="BracketsSet" context="BracketsSet" char="#" char1="{"/>
         <Detect2Chars attribute="BracketsMeta" context="BracketsMeta" char="^" char1="{"/>
         <DetectChar attribute="BracketsMap" context="BracketsMap" char="{"/>
+        <AnyChar attribute="Brackets" context="#stay" String="()"/>
         <AnyChar attribute="BracketsSquare" context="#stay" String="[]"/>
         <keyword attribute="Keyword" context="#stay" String="keywords"/>
         <RegExpr attribute="Variable" context="#stay" String="#'[^\s\(\)\{\}\[\]]+|%[0-9]*"/>
@@ -734,7 +727,6 @@
         <RegExpr attribute="Error" context="#stay" String="(3[7-9]|[0-9]*[4-9][0-9]+)[rR][0-9a-zA-Z]+"/>
         <Float attribute="Float" context="Float Suffixes"/>
         <Int attribute="Decimal" context="Int Suffixes"/>
-        <DetectChar attribute="Brackets1" context="Level1" char="("/>
       </context>
       <context name="Float Suffixes" attribute="Float" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
         <DetectChar attribute="Float" context="#pop" char="M"/>
@@ -783,60 +775,6 @@
         <DetectChar attribute="BracketsMap" context="#pop" char="}" />
         <IncludeRules context="Default" />
       </context>
-      <context name="Level1" attribute="Normal" lineEndContext="#stay">
-        <DetectChar attribute="Brackets2" context="Level2" char="("/>
-        <Detect2Chars attribute="Brackets2" context="Level2" char="'" char1="("/>
-        <Detect2Chars attribute="Brackets2" context="Level2" char="`" char1="("/>
-        <Detect2Chars attribute="Brackets2" context="Level2" char="#" char1="("/>
-        <Detect2Chars attribute="Brackets2" context="Level2" char="@" char1="("/>
-        <DetectChar attribute="Brackets1" context="#pop" char=")" />
-        <IncludeRules context="Default" />
-      </context>
-      <context name="Level2" attribute="Normal" lineEndContext="#stay">
-        <DetectChar attribute="Brackets3" context="Level3" char="("/>
-        <Detect2Chars attribute="Brackets3" context="Level3" char="'" char1="("/>
-        <Detect2Chars attribute="Brackets3" context="Level3" char="`" char1="("/>
-        <Detect2Chars attribute="Brackets3" context="Level3" char="#" char1="("/>
-        <Detect2Chars attribute="Brackets3" context="Level3" char="@" char1="("/>
-        <DetectChar attribute="Brackets2" context="#pop" char=")" />
-        <IncludeRules context="Default" />
-      </context>
-      <context name="Level3" attribute="Normal" lineEndContext="#stay">
-        <DetectChar attribute="Brackets4" context="Level4" char="("/>
-        <Detect2Chars attribute="Brackets4" context="Level4" char="'" char1="("/>
-        <Detect2Chars attribute="Brackets4" context="Level4" char="`" char1="("/>
-        <Detect2Chars attribute="Brackets4" context="Level4" char="#" char1="("/>
-        <Detect2Chars attribute="Brackets4" context="Level4" char="@" char1="("/>
-        <DetectChar attribute="Brackets3" context="#pop" char=")" />
-        <IncludeRules context="Default" />
-      </context>
-      <context name="Level4" attribute="Normal" lineEndContext="#stay">
-        <DetectChar attribute="Brackets5" context="Level5" char="("/>
-        <Detect2Chars attribute="Brackets5" context="Level5" char="'" char1="("/>
-        <Detect2Chars attribute="Brackets5" context="Level5" char="`" char1="("/>
-        <Detect2Chars attribute="Brackets5" context="Level5" char="#" char1="("/>
-        <Detect2Chars attribute="Brackets5" context="Level5" char="@" char1="("/>
-        <DetectChar attribute="Brackets4" context="#pop" char=")" />
-        <IncludeRules context="Default" />
-      </context>
-      <context name="Level5" attribute="Normal" lineEndContext="#stay">
-        <DetectChar attribute="Brackets6" context="Level6" char="("/>
-        <Detect2Chars attribute="Brackets6" context="Level6" char="'" char1="("/>
-        <Detect2Chars attribute="Brackets6" context="Level6" char="`" char1="("/>
-        <Detect2Chars attribute="Brackets6" context="Level6" char="#" char1="("/>
-        <Detect2Chars attribute="Brackets6" context="Level6" char="@" char1="("/>
-        <DetectChar attribute="Brackets5" context="#pop" char=")" />
-        <IncludeRules context="Default" />
-      </context>
-      <context name="Level6" attribute="Normal" lineEndContext="#stay">
-        <DetectChar attribute="Brackets1" context="Level1" char="("/>
-        <Detect2Chars attribute="Brackets1" context="Level1" char="'" char1="("/>
-        <Detect2Chars attribute="Brackets1" context="Level1" char="`" char1="("/>
-        <Detect2Chars attribute="Brackets1" context="Level1" char="#" char1="("/>
-        <Detect2Chars attribute="Brackets1" context="Level1" char="@" char1="("/>
-        <DetectChar attribute="Brackets6" context="#pop" char=")" />
-        <IncludeRules context="Default" />
-      </context>
     </contexts>
     <itemDatas>
       <itemData name="Normal" defStyleNum="dsNormal" spellChecking="false"/>
@@ -860,13 +798,8 @@
       <itemData name="BracketsSet" defStyleNum="dsNormal" color="#0000ff" selColor="#00ff00"/>
       <itemData name="BracketsMeta" defStyleNum="dsNormal" color="#0000ff" selColor="#00ff00" bold="1" italic="0"/>
       <itemData name="BracketsMap" defStyleNum="dsNormal" color="#33ab33" selColor="#219921"/>
+      <itemData name="Brackets"    defStyleNum="dsNormal" color="#0000ff" selColor="#00ff00" bold="1" italic="0"/>
       <itemData name="BracketsSquare" defStyleNum="dsNormal" color="#3333ff" selColor="#3333aa"/>
-      <itemData name="Brackets1" defStyleNum="dsNormal" color="#ff0000" selColor="#ffaa00" bold="0" italic="0"/>
-      <itemData name="Brackets2" defStyleNum="dsNormal" color="#ff8800" selColor="#ffff00" bold="0" italic="0"/>
-      <itemData name="Brackets3" defStyleNum="dsNormal" color="#888800" selColor="#888888" bold="0" italic="0"/>
-      <itemData name="Brackets4" defStyleNum="dsNormal" color="#008800" bold="0" italic="0"/>
-      <itemData name="Brackets5" defStyleNum="dsNormal" color="#3689e6" bold="0" italic="0"/>
-      <itemData name="Brackets6" defStyleNum="dsNormal" color="#a100a1" bold="0" italic="0"/>
     </itemDatas>
   </highlighting>
   <general>
diff --git a/syntax/cmake.xml b/syntax/cmake.xml
--- a/syntax/cmake.xml
+++ b/syntax/cmake.xml
@@ -1,4210 +1,6837 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
-[
-  <!ENTITY id_re "[_A-Za-z][\-_0-9A-Za-z]*">
-]>
-<!--
-    This file is part of KDE's kate project.
-
-    SPDX-FileCopyrightText: 2004 Alexander Neundorf <neundorf@kde.org>
-    SPDX-FileCopyrightText: 2005 Dominik Haumann <dhdev@gmx.de>
-    SPDX-FileCopyrightText: 2007, 2008, 2013, 2014 Matthew Woehlke <mw_triad@users.sourceforge.net>
-    SPDX-FileCopyrightText: 2013-2015, 2017-2020 Alex Turbov <i.zaufi@gmail.com>
-
-    SPDX-License-Identifier: LGPL-2.0-or-later
- -->
-
-<!-- ***** THIS FILE WAS GENERATED BY A SCRIPT - DO NOT EDIT *****
-  cd data/generators
-  # increase version of cmake.xml.tpl then
-  ./generate-cmake-syntax.py cmake.yaml > ../syntax/cmake.xml
--->
-
-<language
-    name="CMake"
-    version="34"
-    kateversion="5.0"
-    section="Other"
-    extensions="CMakeLists.txt;*.cmake;*.cmake.in"
-    style="CMake"
-    mimetype="text/x-cmake"
-    author="Alex Turbov (i.zaufi@gmail.com)"
-    license="LGPLv2+"
-  >
-  <highlighting>
-
-    <list name="commands">
-        <item>break</item>
-        <item>cmake_host_system_information</item>
-        <item>cmake_language</item>
-        <item>cmake_minimum_required</item>
-        <item>cmake_parse_arguments</item>
-        <item>cmake_path</item>
-        <item>cmake_policy</item>
-        <item>configure_file</item>
-        <item>continue</item>
-        <item>elseif</item>
-        <item>else</item>
-        <item>endforeach</item>
-        <item>endfunction</item>
-        <item>endif</item>
-        <item>endmacro</item>
-        <item>endwhile</item>
-        <item>execute_process</item>
-        <item>file</item>
-        <item>find_file</item>
-        <item>find_library</item>
-        <item>find_package</item>
-        <item>find_path</item>
-        <item>find_program</item>
-        <item>foreach</item>
-        <item>function</item>
-        <item>get_cmake_property</item>
-        <item>get_directory_property</item>
-        <item>get_filename_component</item>
-        <item>get_property</item>
-        <item>if</item>
-        <item>include</item>
-        <item>include_guard</item>
-        <item>list</item>
-        <item>macro</item>
-        <item>mark_as_advanced</item>
-        <item>math</item>
-        <item>message</item>
-        <item>option</item>
-        <item>return</item>
-        <item>separate_arguments</item>
-        <item>set_directory_properties</item>
-        <item>set_property</item>
-        <item>set</item>
-        <item>site_name</item>
-        <item>string</item>
-        <item>unset</item>
-        <item>variable_watch</item>
-        <item>while</item>
-        <item>add_compile_definitions</item>
-        <item>add_compile_options</item>
-        <item>add_custom_command</item>
-        <item>add_custom_target</item>
-        <item>add_definitions</item>
-        <item>add_dependencies</item>
-        <item>add_executable</item>
-        <item>add_library</item>
-        <item>add_link_options</item>
-        <item>add_subdirectory</item>
-        <item>add_test</item>
-        <item>aux_source_directory</item>
-        <item>build_command</item>
-        <item>create_test_sourcelist</item>
-        <item>define_property</item>
-        <item>enable_language</item>
-        <item>enable_testing</item>
-        <item>export</item>
-        <item>fltk_wrap_ui</item>
-        <item>get_source_file_property</item>
-        <item>get_target_property</item>
-        <item>get_test_property</item>
-        <item>include_directories</item>
-        <item>include_external_msproject</item>
-        <item>include_regular_expression</item>
-        <item>install</item>
-        <item>link_directories</item>
-        <item>link_libraries</item>
-        <item>load_cache</item>
-        <item>project</item>
-        <item>qt_wrap_cpp</item>
-        <item>qt_wrap_ui</item>
-        <item>remove_definitions</item>
-        <item>set_source_files_properties</item>
-        <item>set_target_properties</item>
-        <item>set_tests_properties</item>
-        <item>source_group</item>
-        <item>target_compile_definitions</item>
-        <item>target_compile_features</item>
-        <item>target_compile_options</item>
-        <item>target_include_directories</item>
-        <item>target_link_directories</item>
-        <item>target_link_libraries</item>
-        <item>target_link_options</item>
-        <item>target_precompile_headers</item>
-        <item>target_sources</item>
-        <item>try_compile</item>
-        <item>try_run</item>
-        <item>ctest_build</item>
-        <item>ctest_configure</item>
-        <item>ctest_coverage</item>
-        <item>ctest_empty_binary_directory</item>
-        <item>ctest_memcheck</item>
-        <item>ctest_read_custom_files</item>
-        <item>ctest_run_script</item>
-        <item>ctest_sleep</item>
-        <item>ctest_start</item>
-        <item>ctest_submit</item>
-        <item>ctest_test</item>
-        <item>ctest_update</item>
-        <item>ctest_upload</item>
-    </list>
-    
-    <list name="cmake_host_system_information_nargs">
-      <item>QUERY</item>
-      <item>RESULT</item>
-    </list>
-    <list name="cmake_host_system_information_sargs">
-      <item>AVAILABLE_PHYSICAL_MEMORY</item>
-      <item>AVAILABLE_VIRTUAL_MEMORY</item>
-      <item>FQDN</item>
-      <item>HAS_AMD_3DNOW</item>
-      <item>HAS_AMD_3DNOW_PLUS</item>
-      <item>HAS_FPU</item>
-      <item>HAS_IA64</item>
-      <item>HAS_MMX</item>
-      <item>HAS_MMX_PLUS</item>
-      <item>HAS_SERIAL_NUMBER</item>
-      <item>HAS_SSE</item>
-      <item>HAS_SSE2</item>
-      <item>HAS_SSE_FP</item>
-      <item>HAS_SSE_MMX</item>
-      <item>HOSTNAME</item>
-      <item>IS_64BIT</item>
-      <item>NUMBER_OF_LOGICAL_CORES</item>
-      <item>NUMBER_OF_PHYSICAL_CORES</item>
-      <item>OS_NAME</item>
-      <item>OS_PLATFORM</item>
-      <item>OS_RELEASE</item>
-      <item>OS_VERSION</item>
-      <item>PROCESSOR_DESCRIPTION</item>
-      <item>PROCESSOR_NAME</item>
-      <item>PROCESSOR_SERIAL_NUMBER</item>
-      <item>TOTAL_PHYSICAL_MEMORY</item>
-      <item>TOTAL_VIRTUAL_MEMORY</item>
-    </list>
-    <list name="cmake_language_nargs">
-      <item>CALL</item>
-      <item>CANCEL_CALL</item>
-      <item>CODE</item>
-      <item>DEFER</item>
-      <item>DIRECTORY</item>
-      <item>EVAL</item>
-      <item>GET_CALL</item>
-      <item>GET_CALL_IDS</item>
-      <item>ID</item>
-      <item>ID_VAR</item>
-    </list>
-    <list name="cmake_minimum_required_nargs">
-      <item>FATAL_ERROR</item>
-      <item>VERSION</item>
-    </list>
-    <list name="cmake_parse_arguments_nargs">
-      <item>PARSE_ARGV</item>
-    </list>
-    <list name="cmake_path_nargs">
-      <item>ABSOLUTE_PATH</item>
-      <item>APPEND</item>
-      <item>APPEND_STRING</item>
-      <item>BASE_DIRECTORY</item>
-      <item>CONVERT</item>
-      <item>EXTENSION</item>
-      <item>FILENAME</item>
-      <item>GET</item>
-      <item>HASH</item>
-      <item>HAS_EXTENSION</item>
-      <item>HAS_FILENAME</item>
-      <item>HAS_PARENT_PATH</item>
-      <item>HAS_RELATIVE_PART</item>
-      <item>HAS_ROOT_DIRECTORY</item>
-      <item>HAS_ROOT_NAME</item>
-      <item>HAS_ROOT_PATH</item>
-      <item>HAS_STEM</item>
-      <item>IS_ABSOLUTE</item>
-      <item>IS_PREFIX</item>
-      <item>IS_RELATIVE</item>
-      <item>LAST_ONLY</item>
-      <item>NATIVE_PATH</item>
-      <item>NORMALIZE</item>
-      <item>NORMAL_PATH</item>
-      <item>OUTPUT_VARIABLE</item>
-      <item>PARENT_PATH</item>
-      <item>RELATIVE_PART</item>
-      <item>RELATIVE_PATH</item>
-      <item>REMOVE_EXTENSION</item>
-      <item>REMOVE_FILENAME</item>
-      <item>REPLACE_EXTENSION</item>
-      <item>REPLACE_FILENAME</item>
-      <item>ROOT_DIRECTORY</item>
-      <item>ROOT_NAME</item>
-      <item>ROOT_PATH</item>
-      <item>SET</item>
-      <item>STEM</item>
-      <item>TO_CMAKE_PATH_LIST</item>
-      <item>TO_NATIVE_PATH_LIST</item>
-    </list>
-    <list name="cmake_policy_nargs">
-      <item>GET</item>
-      <item>POP</item>
-      <item>PUSH</item>
-      <item>SET</item>
-      <item>VERSION</item>
-    </list>
-    <list name="cmake_policy_sargs">
-      <item>NEW</item>
-      <item>OLD</item>
-    </list>
-    <list name="configure_file_nargs">
-      <item>@ONLY</item>
-      <item>COPYONLY</item>
-      <item>ESCAPE_QUOTES</item>
-      <item>FILE_PERMISSIONS</item>
-      <item>NEWLINE_STYLE</item>
-      <item>NO_SOURCE_PERMISSIONS</item>
-      <item>USE_SOURCE_PERMISSIONS</item>
-    </list>
-    <list name="configure_file_sargs">
-      <item>CRLF</item>
-      <item>DOS</item>
-      <item>LF</item>
-      <item>UNIX</item>
-      <item>WIN32</item>
-    </list>
-    <list name="elseif_nargs">
-      <item>AND</item>
-      <item>COMMAND</item>
-      <item>DEFINED</item>
-      <item>EQUAL</item>
-      <item>EXISTS</item>
-      <item>GREATER</item>
-      <item>GREATER_EQUAL</item>
-      <item>IN_LIST</item>
-      <item>IS_ABSOLUTE</item>
-      <item>IS_DIRECTORY</item>
-      <item>IS_NEWER_THAN</item>
-      <item>IS_SYMLINK</item>
-      <item>LESS</item>
-      <item>LESS_EQUAL</item>
-      <item>MATCHES</item>
-      <item>NOT</item>
-      <item>OR</item>
-      <item>POLICY</item>
-      <item>STREQUAL</item>
-      <item>STRGREATER</item>
-      <item>STRGREATER_EQUAL</item>
-      <item>STRLESS</item>
-      <item>STRLESS_EQUAL</item>
-      <item>TARGET</item>
-      <item>TEST</item>
-      <item>VERSION_EQUAL</item>
-      <item>VERSION_GREATER</item>
-      <item>VERSION_GREATER_EQUAL</item>
-      <item>VERSION_LESS</item>
-      <item>VERSION_LESS_EQUAL</item>
-    </list>
-    <list name="execute_process_nargs">
-      <item>COMMAND</item>
-      <item>COMMAND_ECHO</item>
-      <item>COMMAND_ERROR_IS_FATAL</item>
-      <item>ECHO_ERROR_VARIABLE</item>
-      <item>ECHO_OUTPUT_VARIABLE</item>
-      <item>ENCODING</item>
-      <item>ERROR_FILE</item>
-      <item>ERROR_QUIET</item>
-      <item>ERROR_STRIP_TRAILING_WHITESPACE</item>
-      <item>ERROR_VARIABLE</item>
-      <item>INPUT_FILE</item>
-      <item>OUTPUT_FILE</item>
-      <item>OUTPUT_QUIET</item>
-      <item>OUTPUT_STRIP_TRAILING_WHITESPACE</item>
-      <item>OUTPUT_VARIABLE</item>
-      <item>RESULTS_VARIABLE</item>
-      <item>RESULT_VARIABLE</item>
-      <item>TIMEOUT</item>
-      <item>WORKING_DIRECTORY</item>
-    </list>
-    <list name="execute_process_sargs">
-      <item>ANSI</item>
-      <item>ANY</item>
-      <item>AUTO</item>
-      <item>LAST</item>
-      <item>NONE</item>
-      <item>OEM</item>
-      <item>STDERR</item>
-      <item>STDOUT</item>
-      <item>UTF8</item>
-    </list>
-    <list name="file_nargs">
-      <item>@ONLY</item>
-      <item>APPEND</item>
-      <item>ARCHIVE_CREATE</item>
-      <item>ARCHIVE_EXTRACT</item>
-      <item>BASE_DIRECTORY</item>
-      <item>BUNDLE_EXECUTABLE</item>
-      <item>CHMOD</item>
-      <item>CHMOD_RECURSE</item>
-      <item>COMPRESSION</item>
-      <item>COMPRESSION_LEVEL</item>
-      <item>CONDITION</item>
-      <item>CONFIGURE</item>
-      <item>CONFIGURE_DEPENDS</item>
-      <item>CONTENT</item>
-      <item>COPY</item>
-      <item>COPY_FILE</item>
-      <item>DESTINATION</item>
-      <item>DIRECTORIES</item>
-      <item>DIRECTORY</item>
-      <item>DIRECTORY_PERMISSIONS</item>
-      <item>DOWNLOAD</item>
-      <item>ENCODING</item>
-      <item>ESCAPE_QUOTES</item>
-      <item>EXCLUDE</item>
-      <item>EXECUTABLES</item>
-      <item>EXPAND_TILDE</item>
-      <item>EXPECTED_HASH</item>
-      <item>EXPECTED_MD5</item>
-      <item>FILES</item>
-      <item>FILES_MATCHING</item>
-      <item>FILE_PERMISSIONS</item>
-      <item>FOLLOW_SYMLINKS</item>
-      <item>FOLLOW_SYMLINK_CHAIN</item>
-      <item>FORMAT</item>
-      <item>GENERATE</item>
-      <item>GET_RUNTIME_DEPENDENCIES</item>
-      <item>GLOB</item>
-      <item>GLOB_RECURSE</item>
-      <item>GUARD</item>
-      <item>HEX</item>
-      <item>HTTPHEADER</item>
-      <item>INACTIVITY_TIMEOUT</item>
-      <item>INPUT</item>
-      <item>INSTALL</item>
-      <item>LENGTH_MAXIMUM</item>
-      <item>LENGTH_MINIMUM</item>
-      <item>LIBRARIES</item>
-      <item>LIMIT</item>
-      <item>LIMIT_COUNT</item>
-      <item>LIMIT_INPUT</item>
-      <item>LIMIT_OUTPUT</item>
-      <item>LIST_DIRECTORIES</item>
-      <item>LIST_ONLY</item>
-      <item>LOCK</item>
-      <item>LOG</item>
-      <item>MAKE_DIRECTORY</item>
-      <item>MD5</item>
-      <item>MODULES</item>
-      <item>MTIME</item>
-      <item>NETRC</item>
-      <item>NETRC_FILE</item>
-      <item>NEWLINE_CONSUME</item>
-      <item>NEWLINE_STYLE</item>
-      <item>NO_HEX_CONVERSION</item>
-      <item>NO_REPLACE</item>
-      <item>NO_SOURCE_PERMISSIONS</item>
-      <item>OFFSET</item>
-      <item>ONLY_IF_DIFFERENT</item>
-      <item>OUTPUT</item>
-      <item>PATTERN</item>
-      <item>PERMISSIONS</item>
-      <item>POST_EXCLUDE_FILES</item>
-      <item>POST_EXCLUDE_REGEXES</item>
-      <item>POST_INCLUDE_FILES</item>
-      <item>POST_INCLUDE_REGEXES</item>
-      <item>PRE_EXCLUDE_REGEXES</item>
-      <item>PRE_INCLUDE_REGEXES</item>
-      <item>READ</item>
-      <item>READ_SYMLINK</item>
-      <item>REAL_PATH</item>
-      <item>REGEX</item>
-      <item>RELATIVE</item>
-      <item>RELATIVE_PATH</item>
-      <item>RELEASE</item>
-      <item>REMOVE</item>
-      <item>REMOVE_RECURSE</item>
-      <item>RENAME</item>
-      <item>RESOLVED_DEPENDENCIES_VAR</item>
-      <item>RESULT</item>
-      <item>RESULT_VARIABLE</item>
-      <item>SHA1</item>
-      <item>SHA224</item>
-      <item>SHA256</item>
-      <item>SHA384</item>
-      <item>SHA3_224</item>
-      <item>SHA3_256</item>
-      <item>SHA3_384</item>
-      <item>SHA3_512</item>
-      <item>SHA512</item>
-      <item>SHOW_PROGRESS</item>
-      <item>SIZE</item>
-      <item>STATUS</item>
-      <item>STRINGS</item>
-      <item>TARGET</item>
-      <item>TIMEOUT</item>
-      <item>TIMESTAMP</item>
-      <item>TLS_CAINFO</item>
-      <item>TLS_VERIFY</item>
-      <item>TOUCH</item>
-      <item>TOUCH_NOCREATE</item>
-      <item>TO_CMAKE_PATH</item>
-      <item>TO_NATIVE_PATH</item>
-      <item>UNRESOLVED_DEPENDENCIES_VAR</item>
-      <item>UPLOAD</item>
-      <item>USERPWD</item>
-      <item>USE_SOURCE_PERMISSIONS</item>
-      <item>UTC</item>
-      <item>VERBOSE</item>
-      <item>WRITE</item>
-    </list>
-    <list name="file_sargs">
-      <item>7zip</item>
-      <item>BZip2</item>
-      <item>CRLF</item>
-      <item>DOS</item>
-      <item>FILE</item>
-      <item>FUNCTION</item>
-      <item>GROUP_EXECUTE</item>
-      <item>GROUP_READ</item>
-      <item>GROUP_WRITE</item>
-      <item>GZip</item>
-      <item>IGNORED</item>
-      <item>LF</item>
-      <item>None</item>
-      <item>OPTIONAL</item>
-      <item>OWNER_EXECUTE</item>
-      <item>OWNER_READ</item>
-      <item>OWNER_WRITE</item>
-      <item>PROCESS</item>
-      <item>REQUIRED</item>
-      <item>SETGID</item>
-      <item>SETUID</item>
-      <item>UNIX</item>
-      <item>UTF-16BE</item>
-      <item>UTF-16LE</item>
-      <item>UTF-32B</item>
-      <item>UTF-32LE</item>
-      <item>UTF-8</item>
-      <item>WIN32</item>
-      <item>WORLD_EXECUTE</item>
-      <item>WORLD_READ</item>
-      <item>WORLD_WRITE</item>
-      <item>XZ</item>
-      <item>Zstd</item>
-      <item>gnutar</item>
-      <item>pax</item>
-      <item>paxr</item>
-      <item>raw</item>
-      <item>zip</item>
-    </list>
-    <list name="find_file_nargs">
-      <item>CMAKE_FIND_ROOT_PATH_BOTH</item>
-      <item>DOC</item>
-      <item>HINTS</item>
-      <item>NAMES</item>
-      <item>NO_CACHE</item>
-      <item>NO_CMAKE_ENVIRONMENT_PATH</item>
-      <item>NO_CMAKE_FIND_ROOT_PATH</item>
-      <item>NO_CMAKE_PATH</item>
-      <item>NO_CMAKE_SYSTEM_PATH</item>
-      <item>NO_DEFAULT_PATH</item>
-      <item>NO_PACKAGE_ROOT_PATH</item>
-      <item>NO_SYSTEM_ENVIRONMENT_PATH</item>
-      <item>ONLY_CMAKE_FIND_ROOT_PATH</item>
-      <item>PATHS</item>
-      <item>PATH_SUFFIXES</item>
-      <item>REQUIRED</item>
-    </list>
-    <list name="find_library_nargs">
-      <item>CMAKE_FIND_ROOT_PATH_BOTH</item>
-      <item>DOC</item>
-      <item>HINTS</item>
-      <item>NAMES</item>
-      <item>NAMES_PER_DIR</item>
-      <item>NO_CACHE</item>
-      <item>NO_CMAKE_ENVIRONMENT_PATH</item>
-      <item>NO_CMAKE_FIND_ROOT_PATH</item>
-      <item>NO_CMAKE_PATH</item>
-      <item>NO_CMAKE_SYSTEM_PATH</item>
-      <item>NO_DEFAULT_PATH</item>
-      <item>NO_PACKAGE_ROOT_PATH</item>
-      <item>NO_SYSTEM_ENVIRONMENT_PATH</item>
-      <item>ONLY_CMAKE_FIND_ROOT_PATH</item>
-      <item>PATHS</item>
-      <item>PATH_SUFFIXES</item>
-      <item>REQUIRED</item>
-    </list>
-    <list name="find_package_nargs">
-      <item>CMAKE_FIND_ROOT_PATH_BOTH</item>
-      <item>COMPONENTS</item>
-      <item>CONFIG</item>
-      <item>CONFIGS</item>
-      <item>EXACT</item>
-      <item>HINTS</item>
-      <item>MODULE</item>
-      <item>NAMES</item>
-      <item>NO_CMAKE_ENVIRONMENT_PATH</item>
-      <item>NO_CMAKE_FIND_ROOT_PATH</item>
-      <item>NO_CMAKE_PACKAGE_REGISTRY</item>
-      <item>NO_CMAKE_PATH</item>
-      <item>NO_CMAKE_SYSTEM_PACKAGE_REGISTRY</item>
-      <item>NO_CMAKE_SYSTEM_PATH</item>
-      <item>NO_DEFAULT_PATH</item>
-      <item>NO_MODULE</item>
-      <item>NO_PACAKGE_ROOT_PATH</item>
-      <item>NO_POLICY_SCOPE</item>
-      <item>NO_SYSTEM_ENVIRONMENT_PATH</item>
-      <item>ONLY_CMAKE_FIND_ROOT_PATH</item>
-      <item>OPTIONAL_COMPONENTS</item>
-      <item>PATHS</item>
-      <item>PATH_SUFFIXES</item>
-      <item>QUIET</item>
-      <item>REQUIRED</item>
-    </list>
-    <list name="find_path_nargs">
-      <item>CMAKE_FIND_ROOT_PATH_BOTH</item>
-      <item>DOC</item>
-      <item>HINTS</item>
-      <item>NAMES</item>
-      <item>NO_CACHE</item>
-      <item>NO_CMAKE_ENVIRONMENT_PATH</item>
-      <item>NO_CMAKE_FIND_ROOT_PATH</item>
-      <item>NO_CMAKE_PATH</item>
-      <item>NO_CMAKE_SYSTEM_PATH</item>
-      <item>NO_DEFAULT_PATH</item>
-      <item>NO_PACKAGE_ROOT_PATH</item>
-      <item>NO_SYSTEM_ENVIRONMENT_PATH</item>
-      <item>ONLY_CMAKE_FIND_ROOT_PATH</item>
-      <item>PATHS</item>
-      <item>PATH_SUFFIXES</item>
-      <item>REQUIRED</item>
-    </list>
-    <list name="find_program_nargs">
-      <item>CMAKE_FIND_ROOT_PATH_BOTH</item>
-      <item>DOC</item>
-      <item>HINTS</item>
-      <item>NAMES</item>
-      <item>NAMES_PER_DIR</item>
-      <item>NO_CACHE</item>
-      <item>NO_CMAKE_ENVIRONMENT_PATH</item>
-      <item>NO_CMAKE_FIND_ROOT_PATH</item>
-      <item>NO_CMAKE_PATH</item>
-      <item>NO_CMAKE_SYSTEM_PATH</item>
-      <item>NO_DEFAULT_PATH</item>
-      <item>NO_PACKAGE_ROOT_PATH</item>
-      <item>NO_SYSTEM_ENVIRONMENT_PATH</item>
-      <item>ONLY_CMAKE_FIND_ROOT_PATH</item>
-      <item>PATHS</item>
-      <item>PATH_SUFFIXES</item>
-      <item>REQUIRED</item>
-    </list>
-    <list name="foreach_nargs">
-      <item>IN</item>
-      <item>ITEMS</item>
-      <item>LISTS</item>
-      <item>RANGE</item>
-      <item>ZIP_LISTS</item>
-    </list>
-    <list name="get_cmake_property_sargs">
-      <item>CACHE_VARIABLES</item>
-      <item>COMMANDS</item>
-      <item>COMPONENTS</item>
-      <item>MACROS</item>
-      <item>VARIABLES</item>
-    </list>
-    <list name="get_directory_property_nargs">
-      <item>DEFINITION</item>
-      <item>DIRECTORY</item>
-    </list>
-    <list name="get_filename_component_nargs">
-      <item>ABSOLUTE</item>
-      <item>BASE_DIR</item>
-      <item>CACHE</item>
-      <item>DIRECTORY</item>
-      <item>EXT</item>
-      <item>LAST_EXT</item>
-      <item>NAME</item>
-      <item>NAME_WE</item>
-      <item>NAME_WLE</item>
-      <item>PATH</item>
-      <item>PROGRAM</item>
-      <item>PROGRAM_ARGS</item>
-      <item>REALPATH</item>
-    </list>
-    <list name="get_property_nargs">
-      <item>BRIEF_DOCS</item>
-      <item>CACHE</item>
-      <item>DEFINED</item>
-      <item>DIRECTORY</item>
-      <item>FULL_DOCS</item>
-      <item>GLOBAL</item>
-      <item>INSTALL</item>
-      <item>PROPERTY</item>
-      <item>SET</item>
-      <item>SOURCE</item>
-      <item>TARGET</item>
-      <item>TARGET_DIRECTORY</item>
-      <item>TEST</item>
-      <item>VARIABLE</item>
-    </list>
-    <list name="if_nargs">
-      <item>AND</item>
-      <item>COMMAND</item>
-      <item>DEFINED</item>
-      <item>EQUAL</item>
-      <item>EXISTS</item>
-      <item>GREATER</item>
-      <item>GREATER_EQUAL</item>
-      <item>IN_LIST</item>
-      <item>IS_ABSOLUTE</item>
-      <item>IS_DIRECTORY</item>
-      <item>IS_NEWER_THAN</item>
-      <item>IS_SYMLINK</item>
-      <item>LESS</item>
-      <item>LESS_EQUAL</item>
-      <item>MATCHES</item>
-      <item>NOT</item>
-      <item>OR</item>
-      <item>POLICY</item>
-      <item>STREQUAL</item>
-      <item>STRGREATER</item>
-      <item>STRGREATER_EQUAL</item>
-      <item>STRLESS</item>
-      <item>STRLESS_EQUAL</item>
-      <item>TARGET</item>
-      <item>TEST</item>
-      <item>VERSION_EQUAL</item>
-      <item>VERSION_GREATER</item>
-      <item>VERSION_GREATER_EQUAL</item>
-      <item>VERSION_LESS</item>
-      <item>VERSION_LESS_EQUAL</item>
-    </list>
-    <list name="include_nargs">
-      <item>NO_POLICY_SCOPE</item>
-      <item>OPTIONAL</item>
-      <item>RESULT_VARIABLE</item>
-    </list>
-    <list name="include_guard_nargs">
-      <item>DIRECTORY</item>
-      <item>GLOBAL</item>
-    </list>
-    <list name="list_nargs">
-      <item>APPEND</item>
-      <item>AT</item>
-      <item>CASE</item>
-      <item>COMPARE</item>
-      <item>EXCLUDE</item>
-      <item>FILTER</item>
-      <item>FIND</item>
-      <item>FOR</item>
-      <item>GENEX_STRIP</item>
-      <item>GET</item>
-      <item>INCLUDE</item>
-      <item>INSERT</item>
-      <item>JOIN</item>
-      <item>LENGTH</item>
-      <item>ORDER</item>
-      <item>OUTPUT_VARIABLE</item>
-      <item>POP_BACK</item>
-      <item>POP_FRONT</item>
-      <item>PREPEND</item>
-      <item>REGEX</item>
-      <item>REMOVE_AT</item>
-      <item>REMOVE_DUPLICATES</item>
-      <item>REMOVE_ITEM</item>
-      <item>REPLACE</item>
-      <item>REVERSE</item>
-      <item>SORT</item>
-      <item>STRIP</item>
-      <item>SUBLIST</item>
-      <item>TOLOWER</item>
-      <item>TRANSFORM</item>
-    </list>
-    <list name="list_sargs">
-      <item>ASCENDING</item>
-      <item>DESCENDING</item>
-      <item>FILE_BASENAME</item>
-      <item>INSENSITIVE</item>
-      <item>NATURAL</item>
-      <item>SENSITIVE</item>
-      <item>STRING</item>
-    </list>
-    <list name="mark_as_advanced_nargs">
-      <item>CLEAR</item>
-      <item>FORCE</item>
-    </list>
-    <list name="math_nargs">
-      <item>EXPR</item>
-      <item>OUTPUT_FORMAT</item>
-    </list>
-    <list name="math_sargs">
-      <item>DECIMAL</item>
-      <item>HEXADECIMAL</item>
-    </list>
-    <list name="message_nargs">
-      <item>AUTHOR_WARNING</item>
-      <item>CHECK_FAIL</item>
-      <item>CHECK_PASS</item>
-      <item>CHECK_START</item>
-      <item>DEBUG</item>
-      <item>DEPRECATION</item>
-      <item>FATAL_ERROR</item>
-      <item>NOTICE</item>
-      <item>SEND_ERROR</item>
-      <item>STATUS</item>
-      <item>TRACE</item>
-      <item>VERBOSE</item>
-      <item>WARNING</item>
-    </list>
-    <list name="separate_arguments_nargs">
-      <item>NATIVE_COMMAND</item>
-      <item>PROGRAM</item>
-      <item>SEPARATE_ARGS</item>
-      <item>UNIX_COMMAND</item>
-      <item>WINDOWS_COMMAND</item>
-    </list>
-    <list name="set_directory_properties_nargs">
-      <item>PROPERTIES</item>
-    </list>
-    <list name="set_property_nargs">
-      <item>APPEND</item>
-      <item>APPEND_STRING</item>
-      <item>CACHE</item>
-      <item>DIRECTORY</item>
-      <item>GLOBAL</item>
-      <item>INSTALL</item>
-      <item>PROPERTY</item>
-      <item>SOURCE</item>
-      <item>TARGET</item>
-      <item>TARGET_DIRECTORY</item>
-      <item>TEST</item>
-      <item>VARIABLE</item>
-    </list>
-    <list name="set_nargs">
-      <item>CACHE</item>
-      <item>FORCE</item>
-      <item>PARENT_SCOPE</item>
-    </list>
-    <list name="set_sargs">
-      <item>BOOL</item>
-      <item>FILEPATH</item>
-      <item>INTERNAL</item>
-      <item>PATH</item>
-      <item>STATIC</item>
-      <item>STRING</item>
-    </list>
-    <list name="string_nargs">
-      <item>@ONLY</item>
-      <item>ALPHABET</item>
-      <item>APPEND</item>
-      <item>ASCII</item>
-      <item>COMPARE</item>
-      <item>CONCAT</item>
-      <item>CONFIGURE</item>
-      <item>EQUAL</item>
-      <item>ERROR_VARIABLE</item>
-      <item>ESCAPE_QUOTES</item>
-      <item>FIND</item>
-      <item>GENEX_STRIP</item>
-      <item>GET</item>
-      <item>GREATER</item>
-      <item>GREATER_EQUAL</item>
-      <item>HEX</item>
-      <item>JOIN</item>
-      <item>JSON</item>
-      <item>LENGTH</item>
-      <item>LESS</item>
-      <item>LESS_EQUAL</item>
-      <item>MAKE_C_IDENTIFIER</item>
-      <item>MATCH</item>
-      <item>MATCHALL</item>
-      <item>MD5</item>
-      <item>MEMBER</item>
-      <item>NAME</item>
-      <item>NAMESPACE</item>
-      <item>NOTEQUAL</item>
-      <item>PREPEND</item>
-      <item>RANDOM</item>
-      <item>RANDOM_SEED</item>
-      <item>REGEX</item>
-      <item>REMOVE</item>
-      <item>REPEAT</item>
-      <item>REPLACE</item>
-      <item>REVERSE</item>
-      <item>SET</item>
-      <item>SHA1</item>
-      <item>SHA224</item>
-      <item>SHA256</item>
-      <item>SHA384</item>
-      <item>SHA3_224</item>
-      <item>SHA3_256</item>
-      <item>SHA3_384</item>
-      <item>SHA3_512</item>
-      <item>SHA512</item>
-      <item>STRIP</item>
-      <item>SUBSTRING</item>
-      <item>TIMESTAMP</item>
-      <item>TOLOWER</item>
-      <item>TOUPPER</item>
-      <item>TYPE</item>
-      <item>UPPER</item>
-      <item>UTC</item>
-      <item>UUID</item>
-    </list>
-    <list name="unset_nargs">
-      <item>CACHE</item>
-      <item>PARENT_SCOPE</item>
-    </list>
-    <list name="while_nargs">
-      <item>AND</item>
-      <item>COMMAND</item>
-      <item>DEFINED</item>
-      <item>EQUAL</item>
-      <item>EXISTS</item>
-      <item>GREATER</item>
-      <item>GREATER_EQUAL</item>
-      <item>IN_LIST</item>
-      <item>IS_ABSOLUTE</item>
-      <item>IS_DIRECTORY</item>
-      <item>IS_NEWER_THAN</item>
-      <item>IS_SYMLINK</item>
-      <item>LESS</item>
-      <item>LESS_EQUAL</item>
-      <item>MATCHES</item>
-      <item>NOT</item>
-      <item>OR</item>
-      <item>POLICY</item>
-      <item>STREQUAL</item>
-      <item>STRGREATER</item>
-      <item>STRGREATER_EQUAL</item>
-      <item>STRLESS</item>
-      <item>STRLESS_EQUAL</item>
-      <item>TARGET</item>
-      <item>TEST</item>
-      <item>VERSION_EQUAL</item>
-      <item>VERSION_GREATER</item>
-      <item>VERSION_GREATER_EQUAL</item>
-      <item>VERSION_LESS</item>
-      <item>VERSION_LESS_EQUAL</item>
-    </list>
-    <list name="add_custom_command_nargs">
-      <item>APPEND</item>
-      <item>ARGS</item>
-      <item>BYPRODUCTS</item>
-      <item>COMMAND</item>
-      <item>COMMAND_EXPAND_LISTS</item>
-      <item>COMMENT</item>
-      <item>DEPENDS</item>
-      <item>DEPFILE</item>
-      <item>IMPLICIT_DEPENDS</item>
-      <item>JOB_POOL</item>
-      <item>MAIN_DEPENDENCY</item>
-      <item>OUTPUT</item>
-      <item>POST_BUILD</item>
-      <item>PRE_BUILD</item>
-      <item>PRE_LINK</item>
-      <item>TARGET</item>
-      <item>USES_TERMINAL</item>
-      <item>VERBATIM</item>
-      <item>WORKING_DIRECTORY</item>
-    </list>
-    <list name="add_custom_target_nargs">
-      <item>ALL</item>
-      <item>APPEND</item>
-      <item>BYPRODUCTS</item>
-      <item>COMMAND</item>
-      <item>COMMAND_EXPAND_LISTS</item>
-      <item>COMMENT</item>
-      <item>DEPENDS</item>
-      <item>DEPFILE</item>
-      <item>IMPLICIT_DEPENDS</item>
-      <item>JOB_POOL</item>
-      <item>SOURCES</item>
-      <item>USES_TERMINAL</item>
-      <item>VERBATIM</item>
-      <item>WORKING_DIRECTORY</item>
-    </list>
-    <list name="add_executable_nargs">
-      <item>ALIAS</item>
-      <item>EXCLUDE_FROM_ALL</item>
-      <item>GLOBAL</item>
-      <item>IMPORTED</item>
-      <item>MACOSX_BUNDLE</item>
-      <item>WIN32</item>
-    </list>
-    <list name="add_library_nargs">
-      <item>ALIAS</item>
-      <item>EXCLUDE_FROM_ALL</item>
-      <item>GLOBAL</item>
-      <item>IMPORTED</item>
-      <item>INTERFACE</item>
-      <item>MODULE</item>
-      <item>OBJECT</item>
-      <item>SHARED</item>
-      <item>STATIC</item>
-      <item>UNKNOWN</item>
-    </list>
-    <list name="add_subdirectory_nargs">
-      <item>EXCLUDE_FROM_ALL</item>
-    </list>
-    <list name="add_test_nargs">
-      <item>COMMAND</item>
-      <item>COMMAND_EXPAND_LISTS</item>
-      <item>CONFIGURATIONS</item>
-      <item>NAME</item>
-      <item>WORKING_DIRECTORY</item>
-    </list>
-    <list name="build_command_nargs">
-      <item>CONFIGURATION</item>
-      <item>PARALLEL_LEVEL</item>
-      <item>TARGET</item>
-    </list>
-    <list name="create_test_sourcelist_nargs">
-      <item>EXTRA_INCLUDE</item>
-      <item>FUNCTION</item>
-    </list>
-    <list name="define_property_nargs">
-      <item>BRIEF_DOCS</item>
-      <item>CACHED_VARIABLE</item>
-      <item>DIRECTORY</item>
-      <item>FULL_DOCS</item>
-      <item>GLOBAL</item>
-      <item>INHERITED</item>
-      <item>PROPERTY</item>
-      <item>SOURCE</item>
-      <item>TEST</item>
-      <item>VARIABLE</item>
-    </list>
-    <list name="enable_language_nargs">
-      <item>OPTIONAL</item>
-    </list>
-    <list name="enable_language_sargs">
-      <item>ASM</item>
-      <item>ASM-ATT</item>
-      <item>ASM_MASM</item>
-      <item>ASM_NASM</item>
-      <item>C</item>
-      <item>CSharp</item>
-      <item>CUDA</item>
-      <item>CXX</item>
-      <item>Fortran</item>
-      <item>HIP</item>
-      <item>ISPC</item>
-      <item>Java</item>
-      <item>OBJC</item>
-      <item>OBJCXX</item>
-      <item>RC</item>
-      <item>Swift</item>
-    </list>
-    <list name="export_nargs">
-      <item>ANDROID_MK</item>
-      <item>APPEND</item>
-      <item>EXPORT</item>
-      <item>EXPORT_LINK_INTERFACE_LIBRARIES</item>
-      <item>FILE</item>
-      <item>NAMESPACE</item>
-      <item>TARGETS</item>
-    </list>
-    <list name="get_source_file_property_nargs">
-      <item>DIRECTORY</item>
-      <item>TARGET_DIRECTORY</item>
-    </list>
-    <list name="include_directories_nargs">
-      <item>AFTER</item>
-      <item>BEFORE</item>
-      <item>SYSTEM</item>
-    </list>
-    <list name="include_external_msproject_nargs">
-      <item>GUID</item>
-      <item>PLATFORM</item>
-      <item>TYPE</item>
-    </list>
-    <list name="install_nargs">
-      <item>ARCHIVE</item>
-      <item>BUNDLE</item>
-      <item>CODE</item>
-      <item>COMPONENT</item>
-      <item>CONFIGURATIONS</item>
-      <item>DESTINATION</item>
-      <item>DIRECTORIES</item>
-      <item>DIRECTORY</item>
-      <item>DIRECTORY_PERMISSIONS</item>
-      <item>EXCLUDE</item>
-      <item>EXCLUDE_FROM_ALL</item>
-      <item>EXPORT</item>
-      <item>EXPORT_ANDROID_MK</item>
-      <item>EXPORT_LINK_INTERFACE_LIBRARIES</item>
-      <item>FILE</item>
-      <item>FILES</item>
-      <item>FILES_MATCHING</item>
-      <item>FILE_PERMISSIONS</item>
-      <item>FRAMEWORK</item>
-      <item>IMPORTED_RUNTIME_ARTIFACTS</item>
-      <item>INCLUDES</item>
-      <item>LIBRARY</item>
-      <item>MESSAGE_NEVER</item>
-      <item>NAMELINK_COMPONENT</item>
-      <item>NAMELINK_ONLY</item>
-      <item>NAMELINK_SKIP</item>
-      <item>NAMESPACE</item>
-      <item>OBJECTS</item>
-      <item>OPTIONAL</item>
-      <item>PATTERN</item>
-      <item>PERMISSIONS</item>
-      <item>POST_EXCLUDE_FILES</item>
-      <item>POST_EXCLUDE_REGEXES</item>
-      <item>POST_INCLUDE_FILES</item>
-      <item>POST_INCLUDE_REGEXES</item>
-      <item>PRE_EXCLUDE_REGEXES</item>
-      <item>PRE_INCLUDE_REGEXES</item>
-      <item>PRIVATE_HEADER</item>
-      <item>PROGRAMS</item>
-      <item>PUBLIC_HEADER</item>
-      <item>REGEX</item>
-      <item>RENAME</item>
-      <item>RESOURCE</item>
-      <item>RUNTIME</item>
-      <item>RUNTIME_DEPENDENCIES</item>
-      <item>RUNTIME_DEPENDENCY_SET</item>
-      <item>SCRIPT</item>
-      <item>TARGETS</item>
-      <item>TYPE</item>
-      <item>USE_SOURCE_PERMISSIONS</item>
-    </list>
-    <list name="install_sargs">
-      <item>GROUP_EXECUTE</item>
-      <item>GROUP_READ</item>
-      <item>GROUP_WRITE</item>
-      <item>OWNER_EXECUTE</item>
-      <item>OWNER_READ</item>
-      <item>OWNER_WRITE</item>
-      <item>SETGID</item>
-      <item>SETUID</item>
-      <item>WORLD_EXECUTE</item>
-      <item>WORLD_READ</item>
-      <item>WORLD_WRITE</item>
-    </list>
-    <list name="link_directories_nargs">
-      <item>AFTER</item>
-      <item>BEFORE</item>
-    </list>
-    <list name="link_libraries_nargs">
-      <item>debug</item>
-      <item>general</item>
-      <item>optimized</item>
-    </list>
-    <list name="load_cache_nargs">
-      <item>EXCLUDE</item>
-      <item>INCLUDE_INTERNALS</item>
-      <item>READ_WITH_PREFIX</item>
-    </list>
-    <list name="project_nargs">
-      <item>DESCRIPTION</item>
-      <item>HOMEPAGE_URL</item>
-      <item>LANGUAGES</item>
-      <item>VERSION</item>
-    </list>
-    <list name="project_sargs">
-      <item>ASM</item>
-      <item>ASM-ATT</item>
-      <item>ASM_MASM</item>
-      <item>ASM_NASM</item>
-      <item>C</item>
-      <item>CSharp</item>
-      <item>CUDA</item>
-      <item>CXX</item>
-      <item>Fortran</item>
-      <item>HIP</item>
-      <item>ISPC</item>
-      <item>Java</item>
-      <item>NONE</item>
-      <item>OBJC</item>
-      <item>OBJCXX</item>
-      <item>RC</item>
-      <item>Swift</item>
-    </list>
-    <list name="set_source_files_properties_nargs">
-      <item>DIRECTORY</item>
-      <item>PROPERTIES</item>
-      <item>TARGET_DIRECTORY</item>
-    </list>
-    <list name="set_target_properties_nargs">
-      <item>PROPERTIES</item>
-    </list>
-    <list name="set_tests_properties_nargs">
-      <item>PROPERTIES</item>
-    </list>
-    <list name="source_group_nargs">
-      <item>FILES</item>
-      <item>PREFIX</item>
-      <item>REGULAR_EXPRESSION</item>
-      <item>TREE</item>
-    </list>
-    <list name="target_compile_definitions_nargs">
-      <item>INTERFACE</item>
-      <item>PRIVATE</item>
-      <item>PUBLIC</item>
-    </list>
-    <list name="target_compile_features_nargs">
-      <item>INTERFACE</item>
-      <item>PRIVATE</item>
-      <item>PUBLIC</item>
-    </list>
-    <list name="target_compile_features_sargs">
-      <item>c_function_prototypes</item>
-      <item>c_restrict</item>
-      <item>c_static_assert</item>
-      <item>c_std_11</item>
-      <item>c_std_17</item>
-      <item>c_std_23</item>
-      <item>c_std_90</item>
-      <item>c_std_99</item>
-      <item>c_variadic_macros</item>
-      <item>cuda_std_03</item>
-      <item>cuda_std_11</item>
-      <item>cuda_std_14</item>
-      <item>cuda_std_17</item>
-      <item>cuda_std_20</item>
-      <item>cuda_std_23</item>
-      <item>cxx_aggregate_default_initializers</item>
-      <item>cxx_alias_templates</item>
-      <item>cxx_alignas</item>
-      <item>cxx_alignof</item>
-      <item>cxx_attribute_deprecated</item>
-      <item>cxx_attributes</item>
-      <item>cxx_auto_type</item>
-      <item>cxx_binary_literals</item>
-      <item>cxx_constexpr</item>
-      <item>cxx_contextual_conversions</item>
-      <item>cxx_decltype</item>
-      <item>cxx_decltype_auto</item>
-      <item>cxx_decltype_incomplete_return_types</item>
-      <item>cxx_default_function_template_args</item>
-      <item>cxx_defaulted_functions</item>
-      <item>cxx_defaulted_move_initializers</item>
-      <item>cxx_delegating_constructors</item>
-      <item>cxx_deleted_functions</item>
-      <item>cxx_digit_separators</item>
-      <item>cxx_enum_forward_declarations</item>
-      <item>cxx_explicit_conversions</item>
-      <item>cxx_extended_friend_declarations</item>
-      <item>cxx_extern_templates</item>
-      <item>cxx_final</item>
-      <item>cxx_func_identifier</item>
-      <item>cxx_generalized_initializers</item>
-      <item>cxx_generic_lambdas</item>
-      <item>cxx_inheriting_constructors</item>
-      <item>cxx_inline_namespaces</item>
-      <item>cxx_lambda_init_captures</item>
-      <item>cxx_lambdas</item>
-      <item>cxx_local_type_template_args</item>
-      <item>cxx_long_long_type</item>
-      <item>cxx_noexcept</item>
-      <item>cxx_nonstatic_member_init</item>
-      <item>cxx_nullptr</item>
-      <item>cxx_override</item>
-      <item>cxx_range_for</item>
-      <item>cxx_raw_string_literals</item>
-      <item>cxx_reference_qualified_functions</item>
-      <item>cxx_relaxed_constexpr</item>
-      <item>cxx_return_type_deduction</item>
-      <item>cxx_right_angle_brackets</item>
-      <item>cxx_rvalue_references</item>
-      <item>cxx_sizeof_member</item>
-      <item>cxx_static_assert</item>
-      <item>cxx_std_11</item>
-      <item>cxx_std_14</item>
-      <item>cxx_std_17</item>
-      <item>cxx_std_20</item>
-      <item>cxx_std_23</item>
-      <item>cxx_std_98</item>
-      <item>cxx_strong_enums</item>
-      <item>cxx_template_template_parameters</item>
-      <item>cxx_thread_local</item>
-      <item>cxx_trailing_return_types</item>
-      <item>cxx_unicode_literals</item>
-      <item>cxx_uniform_initialization</item>
-      <item>cxx_unrestricted_unions</item>
-      <item>cxx_user_literals</item>
-      <item>cxx_variable_templates</item>
-      <item>cxx_variadic_macros</item>
-      <item>cxx_variadic_templates</item>
-    </list>
-    <list name="target_compile_options_nargs">
-      <item>BEFORE</item>
-      <item>INTERFACE</item>
-      <item>PRIVATE</item>
-      <item>PUBLIC</item>
-    </list>
-    <list name="target_include_directories_nargs">
-      <item>AFTER</item>
-      <item>BEFORE</item>
-      <item>INTERFACE</item>
-      <item>PRIVATE</item>
-      <item>PUBLIC</item>
-      <item>SYSTEM</item>
-    </list>
-    <list name="target_link_directories_nargs">
-      <item>BEFORE</item>
-      <item>INTERFACE</item>
-      <item>PRIVATE</item>
-      <item>PUBLIC</item>
-    </list>
-    <list name="target_link_libraries_nargs">
-      <item>INTERFACE</item>
-      <item>PRIVATE</item>
-      <item>PUBLIC</item>
-    </list>
-    <list name="target_link_options_nargs">
-      <item>INTERFACE</item>
-      <item>PRIVATE</item>
-      <item>PUBLIC</item>
-    </list>
-    <list name="target_precompile_headers_nargs">
-      <item>INTERFACE</item>
-      <item>PRIVATE</item>
-      <item>PUBLIC</item>
-      <item>REUSE_FROM</item>
-    </list>
-    <list name="target_sources_nargs">
-      <item>INTERFACE</item>
-      <item>PRIVATE</item>
-      <item>PUBLIC</item>
-    </list>
-    <list name="try_compile_nargs">
-      <item>CMAKE_FLAGS</item>
-      <item>COMPILE_DEFINITIONS</item>
-      <item>COPY_FILE</item>
-      <item>COPY_FILE_ERROR</item>
-      <item>LINK_LIBRARIES</item>
-      <item>LINK_OPTIONS</item>
-      <item>OUTPUT_VARIABLE</item>
-      <item>RESULT_VAR</item>
-      <item>SOURCES</item>
-    </list>
-    <list name="try_run_nargs">
-      <item>ARGS</item>
-      <item>CMAKE_FLAGS</item>
-      <item>COMPILE_DEFINITIONS</item>
-      <item>COMPILE_OUTPUT_VARIABLE</item>
-      <item>COMPILE_RESULT_VAR</item>
-      <item>LINK_LIBRARIES</item>
-      <item>LINK_OPTIONS</item>
-      <item>OUTPUT_VARIABLE</item>
-      <item>RUN_OUTPUT_VARIABLE</item>
-      <item>RUN_RESULT_VAR</item>
-      <item>WORKING_DIRECTORY</item>
-    </list>
-    <list name="ctest_build_nargs">
-      <item>APPEND</item>
-      <item>BUILD</item>
-      <item>CAPTURE_CMAKE_ERROR</item>
-      <item>CONFIGURATION</item>
-      <item>FLAGS</item>
-      <item>NUMBER_ERRORS</item>
-      <item>NUMBER_WARNINGS</item>
-      <item>PROJECT_NAME</item>
-      <item>RETURN_VALUE</item>
-      <item>TARGET</item>
-    </list>
-    <list name="ctest_configure_nargs">
-      <item>APPEND</item>
-      <item>BUILD</item>
-      <item>CAPTURE_CMAKE_ERROR</item>
-      <item>OPTIONS</item>
-      <item>QUIET</item>
-      <item>RETURN_VALUE</item>
-      <item>SOURCE</item>
-    </list>
-    <list name="ctest_coverage_nargs">
-      <item>APPEND</item>
-      <item>BUILD</item>
-      <item>CAPTURE_CMAKE_ERROR</item>
-      <item>LABELS</item>
-      <item>QUIET</item>
-      <item>RETURN_VALUE</item>
-    </list>
-    <list name="ctest_memcheck_nargs">
-      <item>APPEND</item>
-      <item>BUILD</item>
-      <item>DEFECT_COUNT</item>
-      <item>END</item>
-      <item>EXCLUDE</item>
-      <item>EXCLUDE_FIXTURE</item>
-      <item>EXCLUDE_FIXTURE_CLEANUP</item>
-      <item>EXCLUDE_FIXTURE_SETUP</item>
-      <item>EXCLUDE_LABEL</item>
-      <item>INCLUDE</item>
-      <item>INCLUDE_LABEL</item>
-      <item>PARALLEL_LEVEL</item>
-      <item>QUIET</item>
-      <item>RETURN_VALUE</item>
-      <item>SCHEDULE_RANDOM</item>
-      <item>START</item>
-      <item>STOP_TIME</item>
-      <item>STRIDE</item>
-      <item>TEST_LOAD</item>
-    </list>
-    <list name="ctest_run_script_nargs">
-      <item>NEW_PROCESS</item>
-      <item>RETURN_VALUE</item>
-    </list>
-    <list name="ctest_start_nargs">
-      <item>APPEND</item>
-      <item>QUIET</item>
-      <item>TRACK</item>
-    </list>
-    <list name="ctest_submit_nargs">
-      <item>BUILD_ID</item>
-      <item>CDASH_UPLOAD</item>
-      <item>CDASH_UPLOAD_TYPE</item>
-      <item>FILES</item>
-      <item>HTTPHEADER</item>
-      <item>PARTS</item>
-      <item>QUIET</item>
-      <item>RETRY_COUNT</item>
-      <item>RETRY_DELAY</item>
-      <item>RETURN_VALUE</item>
-      <item>SUBMIT_URL</item>
-    </list>
-    <list name="ctest_test_nargs">
-      <item>APPEND</item>
-      <item>BUILD</item>
-      <item>CAPTURE_CMAKE_ERROR</item>
-      <item>END</item>
-      <item>EXCLUDE</item>
-      <item>EXCLUDE_FIXTURE</item>
-      <item>EXCLUDE_FIXTURE_CLEANUP</item>
-      <item>EXCLUDE_FIXTURE_SETUP</item>
-      <item>EXCLUDE_LABEL</item>
-      <item>INCLUDE</item>
-      <item>INCLUDE_LABEL</item>
-      <item>PARALLEL_LEVEL</item>
-      <item>QUIET</item>
-      <item>REPEAT</item>
-      <item>RETURN_VALUE</item>
-      <item>SCHEDULE_RANDOM</item>
-      <item>START</item>
-      <item>STOP_ON_FAILURE</item>
-      <item>STOP_TIME</item>
-      <item>STRIDE</item>
-      <item>TEST_LOAD</item>
-    </list>
-    <list name="ctest_test_sargs">
-      <item>AFTER_TIMEOUT</item>
-      <item>UNTIL_FAIL</item>
-      <item>UNTIL_PASS</item>
-    </list>
-    <list name="ctest_update_nargs">
-      <item>QUIET</item>
-      <item>RETURN_VALUE</item>
-      <item>SOURCE</item>
-    </list>
-    <list name="ctest_upload_nargs">
-      <item>CAPTURE_CMAKE_ERROR</item>
-      <item>FILES</item>
-      <item>QUIET</item>
-    </list>
-
-    <list name="variables">
-      <item>ANDROID</item>
-      <item>APPLE</item>
-      <item>ARGC</item>
-      <item>ARGN</item>
-      <item>ARGV</item>
-      <item>BORLAND</item>
-      <item>BUILD_SHARED_LIBS</item>
-      <item>BUILD_TESTING</item>
-      <item>CMAKE_ABSOLUTE_DESTINATION_FILES</item>
-      <item>CMAKE_AIX_EXPORT_ALL_SYMBOLS</item>
-      <item>CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS</item>
-      <item>CMAKE_ANDROID_API</item>
-      <item>CMAKE_ANDROID_API_MIN</item>
-      <item>CMAKE_ANDROID_ARCH</item>
-      <item>CMAKE_ANDROID_ARCH_ABI</item>
-      <item>CMAKE_ANDROID_ARM_MODE</item>
-      <item>CMAKE_ANDROID_ARM_NEON</item>
-      <item>CMAKE_ANDROID_ASSETS_DIRECTORIES</item>
-      <item>CMAKE_ANDROID_GUI</item>
-      <item>CMAKE_ANDROID_JAR_DEPENDENCIES</item>
-      <item>CMAKE_ANDROID_JAR_DIRECTORIES</item>
-      <item>CMAKE_ANDROID_JAVA_SOURCE_DIR</item>
-      <item>CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES</item>
-      <item>CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES</item>
-      <item>CMAKE_ANDROID_NDK</item>
-      <item>CMAKE_ANDROID_NDK_DEPRECATED_HEADERS</item>
-      <item>CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG</item>
-      <item>CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION</item>
-      <item>CMAKE_ANDROID_NDK_VERSION</item>
-      <item>CMAKE_ANDROID_PROCESS_MAX</item>
-      <item>CMAKE_ANDROID_PROGUARD</item>
-      <item>CMAKE_ANDROID_PROGUARD_CONFIG_PATH</item>
-      <item>CMAKE_ANDROID_SECURE_PROPS_PATH</item>
-      <item>CMAKE_ANDROID_SKIP_ANT_STEP</item>
-      <item>CMAKE_ANDROID_STANDALONE_TOOLCHAIN</item>
-      <item>CMAKE_ANDROID_STL_TYPE</item>
-      <item>CMAKE_ANSI_CXXFLAGS</item>
-      <item>CMAKE_APPBUNDLE_PATH</item>
-      <item>CMAKE_APPLE_SILICON_PROCESSOR</item>
-      <item>CMAKE_AR</item>
-      <item>CMAKE_ARCHIVE_OUTPUT_DIRECTORY</item>
-      <item>CMAKE_ARGC</item>
-      <item>CMAKE_AUTOGEN_ORIGIN_DEPENDS</item>
-      <item>CMAKE_AUTOGEN_PARALLEL</item>
-      <item>CMAKE_AUTOGEN_VERBOSE</item>
-      <item>CMAKE_AUTOMOC</item>
-      <item>CMAKE_AUTOMOC_DEPEND_FILTERS</item>
-      <item>CMAKE_AUTOMOC_MOC_OPTIONS</item>
-      <item>CMAKE_AUTOMOC_PATH_PREFIX</item>
-      <item>CMAKE_AUTOMOC_RELAXED_MODE</item>
-      <item>CMAKE_AUTORCC</item>
-      <item>CMAKE_AUTORCC_OPTIONS</item>
-      <item>CMAKE_AUTOUIC</item>
-      <item>CMAKE_AUTOUIC_OPTIONS</item>
-      <item>CMAKE_AUTOUIC_SEARCH_PATHS</item>
-      <item>CMAKE_BACKWARDS_COMPATIBILITY</item>
-      <item>CMAKE_BINARY_DIR</item>
-      <item>CMAKE_BUILD_RPATH</item>
-      <item>CMAKE_BUILD_RPATH_USE_ORIGIN</item>
-      <item>CMAKE_BUILD_TOOL</item>
-      <item>CMAKE_BUILD_TYPE</item>
-      <item>CMAKE_BUILD_WITH_INSTALL_NAME_DIR</item>
-      <item>CMAKE_BUILD_WITH_INSTALL_RPATH</item>
-      <item>CMAKE_CACHEFILE_DIR</item>
-      <item>CMAKE_CACHE_MAJOR_VERSION</item>
-      <item>CMAKE_CACHE_MINOR_VERSION</item>
-      <item>CMAKE_CACHE_PATCH_VERSION</item>
-      <item>CMAKE_CFG_INTDIR</item>
-      <item>CMAKE_CLANG_VFS_OVERLAY</item>
-      <item>CMAKE_CL_64</item>
-      <item>CMAKE_CODEBLOCKS_COMPILER_ID</item>
-      <item>CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES</item>
-      <item>CMAKE_CODELITE_USE_TARGETS</item>
-      <item>CMAKE_COLOR_MAKEFILE</item>
-      <item>CMAKE_COMMAND</item>
-      <item>CMAKE_COMPILER_2005</item>
-      <item>CMAKE_COMPILER_IS_GNUCC</item>
-      <item>CMAKE_COMPILER_IS_GNUCXX</item>
-      <item>CMAKE_COMPILER_IS_GNUG77</item>
-      <item>CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY</item>
-      <item>CMAKE_CONFIGURATION_TYPES</item>
-      <item>CMAKE_CROSSCOMPILING</item>
-      <item>CMAKE_CROSSCOMPILING_EMULATOR</item>
-      <item>CMAKE_CROSS_CONFIGS</item>
-      <item>CMAKE_CTEST_ARGUMENTS</item>
-      <item>CMAKE_CTEST_COMMAND</item>
-      <item>CMAKE_CUDA_ARCHITECTURES</item>
-      <item>CMAKE_CUDA_COMPILE_FEATURES</item>
-      <item>CMAKE_CUDA_EXTENSIONS</item>
-      <item>CMAKE_CUDA_HOST_COMPILER</item>
-      <item>CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS</item>
-      <item>CMAKE_CUDA_RUNTIME_LIBRARY</item>
-      <item>CMAKE_CUDA_SEPARABLE_COMPILATION</item>
-      <item>CMAKE_CUDA_STANDARD</item>
-      <item>CMAKE_CUDA_STANDARD_REQUIRED</item>
-      <item>CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES</item>
-      <item>CMAKE_CURRENT_BINARY_DIR</item>
-      <item>CMAKE_CURRENT_FUNCTION</item>
-      <item>CMAKE_CURRENT_FUNCTION_LIST_DIR</item>
-      <item>CMAKE_CURRENT_FUNCTION_LIST_FILE</item>
-      <item>CMAKE_CURRENT_FUNCTION_LIST_LINE</item>
-      <item>CMAKE_CURRENT_LIST_DIR</item>
-      <item>CMAKE_CURRENT_LIST_FILE</item>
-      <item>CMAKE_CURRENT_LIST_LINE</item>
-      <item>CMAKE_CURRENT_SOURCE_DIR</item>
-      <item>CMAKE_CXX_COMPILE_FEATURES</item>
-      <item>CMAKE_CXX_EXTENSIONS</item>
-      <item>CMAKE_CXX_STANDARD</item>
-      <item>CMAKE_CXX_STANDARD_REQUIRED</item>
-      <item>CMAKE_C_COMPILE_FEATURES</item>
-      <item>CMAKE_C_EXTENSIONS</item>
-      <item>CMAKE_C_STANDARD</item>
-      <item>CMAKE_C_STANDARD_REQUIRED</item>
-      <item>CMAKE_DEBUG_POSTFIX</item>
-      <item>CMAKE_DEBUG_TARGET_PROPERTIES</item>
-      <item>CMAKE_DEFAULT_BUILD_TYPE</item>
-      <item>CMAKE_DEFAULT_CONFIGS</item>
-      <item>CMAKE_DEPENDS_IN_PROJECT_ONLY</item>
-      <item>CMAKE_DIRECTORY_LABELS</item>
-      <item>CMAKE_DISABLE_PRECOMPILE_HEADERS</item>
-      <item>CMAKE_DL_LIBS</item>
-      <item>CMAKE_DOTNET_TARGET_FRAMEWORK</item>
-      <item>CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION</item>
-      <item>CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES</item>
-      <item>CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT</item>
-      <item>CMAKE_ECLIPSE_MAKE_ARGUMENTS</item>
-      <item>CMAKE_ECLIPSE_RESOURCE_ENCODING</item>
-      <item>CMAKE_ECLIPSE_VERSION</item>
-      <item>CMAKE_EDIT_COMMAND</item>
-      <item>CMAKE_ENABLE_EXPORTS</item>
-      <item>CMAKE_ERROR_DEPRECATED</item>
-      <item>CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION</item>
-      <item>CMAKE_EXECUTABLE_SUFFIX</item>
-      <item>CMAKE_EXECUTE_PROCESS_COMMAND_ECHO</item>
-      <item>CMAKE_EXE_LINKER_FLAGS</item>
-      <item>CMAKE_EXE_LINKER_FLAGS_INIT</item>
-      <item>CMAKE_EXPORT_COMPILE_COMMANDS</item>
-      <item>CMAKE_EXPORT_NO_PACKAGE_REGISTRY</item>
-      <item>CMAKE_EXPORT_PACKAGE_REGISTRY</item>
-      <item>CMAKE_EXTRA_GENERATOR</item>
-      <item>CMAKE_EXTRA_INCLUDE_FILES</item>
-      <item>CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES</item>
-      <item>CMAKE_FIND_APPBUNDLE</item>
-      <item>CMAKE_FIND_DEBUG_MODE</item>
-      <item>CMAKE_FIND_FRAMEWORK</item>
-      <item>CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS</item>
-      <item>CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX</item>
-      <item>CMAKE_FIND_LIBRARY_PREFIXES</item>
-      <item>CMAKE_FIND_LIBRARY_SUFFIXES</item>
-      <item>CMAKE_FIND_NO_INSTALL_PREFIX</item>
-      <item>CMAKE_FIND_PACKAGE_NAME</item>
-      <item>CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY</item>
-      <item>CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY</item>
-      <item>CMAKE_FIND_PACKAGE_PREFER_CONFIG</item>
-      <item>CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS</item>
-      <item>CMAKE_FIND_PACKAGE_SORT_DIRECTION</item>
-      <item>CMAKE_FIND_PACKAGE_SORT_ORDER</item>
-      <item>CMAKE_FIND_PACKAGE_WARN_NO_MODULE</item>
-      <item>CMAKE_FIND_ROOT_PATH</item>
-      <item>CMAKE_FIND_ROOT_PATH_MODE_INCLUDE</item>
-      <item>CMAKE_FIND_ROOT_PATH_MODE_LIBRARY</item>
-      <item>CMAKE_FIND_ROOT_PATH_MODE_PACKAGE</item>
-      <item>CMAKE_FIND_ROOT_PATH_MODE_PROGRAM</item>
-      <item>CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH</item>
-      <item>CMAKE_FIND_USE_CMAKE_PATH</item>
-      <item>CMAKE_FIND_USE_CMAKE_SYSTEM_PATH</item>
-      <item>CMAKE_FIND_USE_PACKAGE_REGISTRY</item>
-      <item>CMAKE_FIND_USE_PACKAGE_ROOT_PATH</item>
-      <item>CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH</item>
-      <item>CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY</item>
-      <item>CMAKE_FOLDER</item>
-      <item>CMAKE_FRAMEWORK</item>
-      <item>CMAKE_FRAMEWORK_PATH</item>
-      <item>CMAKE_Fortran_FORMAT</item>
-      <item>CMAKE_Fortran_MODDIR_DEFAULT</item>
-      <item>CMAKE_Fortran_MODDIR_FLAG</item>
-      <item>CMAKE_Fortran_MODOUT_FLAG</item>
-      <item>CMAKE_Fortran_MODULE_DIRECTORY</item>
-      <item>CMAKE_Fortran_PREPROCESS</item>
-      <item>CMAKE_GENERATOR</item>
-      <item>CMAKE_GENERATOR_INSTANCE</item>
-      <item>CMAKE_GENERATOR_NO_COMPILER_ENV</item>
-      <item>CMAKE_GENERATOR_PLATFORM</item>
-      <item>CMAKE_GENERATOR_TOOLSET</item>
-      <item>CMAKE_GET_RUNTIME_DEPENDENCIES_COMMAND</item>
-      <item>CMAKE_GET_RUNTIME_DEPENDENCIES_PLATFORM</item>
-      <item>CMAKE_GET_RUNTIME_DEPENDENCIES_TOOL</item>
-      <item>CMAKE_GLOBAL_AUTOGEN_TARGET</item>
-      <item>CMAKE_GLOBAL_AUTOGEN_TARGET_NAME</item>
-      <item>CMAKE_GLOBAL_AUTORCC_TARGET</item>
-      <item>CMAKE_GLOBAL_AUTORCC_TARGET_NAME</item>
-      <item>CMAKE_GNUtoMS</item>
-      <item>CMAKE_HAS_ANSI_STRING_STREAM</item>
-      <item>CMAKE_HOST_APPLE</item>
-      <item>CMAKE_HOST_SOLARIS</item>
-      <item>CMAKE_HOST_SYSTEM</item>
-      <item>CMAKE_HOST_SYSTEM_NAME</item>
-      <item>CMAKE_HOST_SYSTEM_PROCESSOR</item>
-      <item>CMAKE_HOST_SYSTEM_VERSION</item>
-      <item>CMAKE_HOST_UNIX</item>
-      <item>CMAKE_HOST_WIN32</item>
-      <item>CMAKE_HP_PTHREADS_INIT</item>
-      <item>CMAKE_IGNORE_PATH</item>
-      <item>CMAKE_IMPORT_LIBRARY_PREFIX</item>
-      <item>CMAKE_IMPORT_LIBRARY_SUFFIX</item>
-      <item>CMAKE_INCLUDE_CURRENT_DIR</item>
-      <item>CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE</item>
-      <item>CMAKE_INCLUDE_DIRECTORIES_BEFORE</item>
-      <item>CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE</item>
-      <item>CMAKE_INCLUDE_PATH</item>
-      <item>CMAKE_INSTALL_BINDIR</item>
-      <item>CMAKE_INSTALL_DATADIR</item>
-      <item>CMAKE_INSTALL_DATAROOTDIR</item>
-      <item>CMAKE_INSTALL_DEBUG_LIBRARIES</item>
-      <item>CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY</item>
-      <item>CMAKE_INSTALL_DEFAULT_COMPONENT_NAME</item>
-      <item>CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS</item>
-      <item>CMAKE_INSTALL_DOCDIR</item>
-      <item>CMAKE_INSTALL_FULL_BINDIR</item>
-      <item>CMAKE_INSTALL_FULL_DATADIR</item>
-      <item>CMAKE_INSTALL_FULL_DATAROOTDIR</item>
-      <item>CMAKE_INSTALL_FULL_DOCDIR</item>
-      <item>CMAKE_INSTALL_FULL_INCLUDEDIR</item>
-      <item>CMAKE_INSTALL_FULL_INFODIR</item>
-      <item>CMAKE_INSTALL_FULL_LIBDIR</item>
-      <item>CMAKE_INSTALL_FULL_LIBEXECDIR</item>
-      <item>CMAKE_INSTALL_FULL_LOCALEDIR</item>
-      <item>CMAKE_INSTALL_FULL_LOCALSTATEDIR</item>
-      <item>CMAKE_INSTALL_FULL_MANDIR</item>
-      <item>CMAKE_INSTALL_FULL_OLDINCLUDEDIR</item>
-      <item>CMAKE_INSTALL_FULL_RUNSTATEDIR</item>
-      <item>CMAKE_INSTALL_FULL_SBINDIR</item>
-      <item>CMAKE_INSTALL_FULL_SHAREDSTATEDIR</item>
-      <item>CMAKE_INSTALL_FULL_SYSCONFDIR</item>
-      <item>CMAKE_INSTALL_INCLUDEDIR</item>
-      <item>CMAKE_INSTALL_INFODIR</item>
-      <item>CMAKE_INSTALL_LIBDIR</item>
-      <item>CMAKE_INSTALL_LIBEXECDIR</item>
-      <item>CMAKE_INSTALL_LOCALEDIR</item>
-      <item>CMAKE_INSTALL_LOCALSTATEDIR</item>
-      <item>CMAKE_INSTALL_MANDIR</item>
-      <item>CMAKE_INSTALL_MESSAGE</item>
-      <item>CMAKE_INSTALL_MFC_LIBRARIES</item>
-      <item>CMAKE_INSTALL_NAME_DIR</item>
-      <item>CMAKE_INSTALL_OLDINCLUDEDIR</item>
-      <item>CMAKE_INSTALL_OPENMP_LIBRARIES</item>
-      <item>CMAKE_INSTALL_PREFIX</item>
-      <item>CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT</item>
-      <item>CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH</item>
-      <item>CMAKE_INSTALL_RPATH</item>
-      <item>CMAKE_INSTALL_RPATH_USE_LINK_PATH</item>
-      <item>CMAKE_INSTALL_RUNSTATEDIR</item>
-      <item>CMAKE_INSTALL_SBINDIR</item>
-      <item>CMAKE_INSTALL_SHAREDSTATEDIR</item>
-      <item>CMAKE_INSTALL_SYSCONFDIR</item>
-      <item>CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT</item>
-      <item>CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION</item>
-      <item>CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS</item>
-      <item>CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS</item>
-      <item>CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP</item>
-      <item>CMAKE_INSTALL_UCRT_LIBRARIES</item>
-      <item>CMAKE_INTERPROCEDURAL_OPTIMIZATION</item>
-      <item>CMAKE_IOS_INSTALL_COMBINED</item>
-      <item>CMAKE_ISPC_HEADER_DIRECTORY</item>
-      <item>CMAKE_ISPC_HEADER_SUFFIX</item>
-      <item>CMAKE_ISPC_INSTRUCTION_SETS</item>
-      <item>CMAKE_JAR_CLASSES_PREFIX</item>
-      <item>CMAKE_JAVA_COMPILE_FLAGS</item>
-      <item>CMAKE_JAVA_INCLUDE_PATH</item>
-      <item>CMAKE_JNI_TARGET</item>
-      <item>CMAKE_JOB_POOLS</item>
-      <item>CMAKE_JOB_POOL_COMPILE</item>
-      <item>CMAKE_JOB_POOL_LINK</item>
-      <item>CMAKE_LIBRARY_ARCHITECTURE</item>
-      <item>CMAKE_LIBRARY_ARCHITECTURE_REGEX</item>
-      <item>CMAKE_LIBRARY_OUTPUT_DIRECTORY</item>
-      <item>CMAKE_LIBRARY_PATH</item>
-      <item>CMAKE_LIBRARY_PATH_FLAG</item>
-      <item>CMAKE_LINK_DEF_FILE_FLAG</item>
-      <item>CMAKE_LINK_DEPENDS_NO_SHARED</item>
-      <item>CMAKE_LINK_DIRECTORIES_BEFORE</item>
-      <item>CMAKE_LINK_INTERFACE_LIBRARIES</item>
-      <item>CMAKE_LINK_LIBRARY_FILE_FLAG</item>
-      <item>CMAKE_LINK_LIBRARY_FLAG</item>
-      <item>CMAKE_LINK_LIBRARY_SUFFIX</item>
-      <item>CMAKE_LINK_SEARCH_END_STATIC</item>
-      <item>CMAKE_LINK_SEARCH_START_STATIC</item>
-      <item>CMAKE_LINK_WHAT_YOU_USE</item>
-      <item>CMAKE_MACOSX_BUNDLE</item>
-      <item>CMAKE_MACOSX_RPATH</item>
-      <item>CMAKE_MAJOR_VERSION</item>
-      <item>CMAKE_MAKE_PROGRAM</item>
-      <item>CMAKE_MATCH_COUNT</item>
-      <item>CMAKE_MAXIMUM_RECURSION_DEPTH</item>
-      <item>CMAKE_MESSAGE_CONTEXT</item>
-      <item>CMAKE_MESSAGE_CONTEXT_SHOW</item>
-      <item>CMAKE_MESSAGE_INDENT</item>
-      <item>CMAKE_MESSAGE_LOG_LEVEL</item>
-      <item>CMAKE_MFC_FLAG</item>
-      <item>CMAKE_MINIMUM_REQUIRED_VERSION</item>
-      <item>CMAKE_MINOR_VERSION</item>
-      <item>CMAKE_MODULE_LINKER_FLAGS</item>
-      <item>CMAKE_MODULE_LINKER_FLAGS_INIT</item>
-      <item>CMAKE_MODULE_PATH</item>
-      <item>CMAKE_MSVCIDE_RUN_PATH</item>
-      <item>CMAKE_MSVC_RUNTIME_LIBRARY</item>
-      <item>CMAKE_NETRC</item>
-      <item>CMAKE_NETRC_FILE</item>
-      <item>CMAKE_NINJA_OUTPUT_PATH_PREFIX</item>
-      <item>CMAKE_NO_ANSI_FOR_SCOPE</item>
-      <item>CMAKE_NO_ANSI_STREAM_HEADERS</item>
-      <item>CMAKE_NO_ANSI_STRING_STREAM</item>
-      <item>CMAKE_NO_BUILTIN_CHRPATH</item>
-      <item>CMAKE_NO_STD_NAMESPACE</item>
-      <item>CMAKE_NO_SYSTEM_FROM_IMPORTED</item>
-      <item>CMAKE_OBJCXX_EXTENSIONS</item>
-      <item>CMAKE_OBJCXX_STANDARD</item>
-      <item>CMAKE_OBJCXX_STANDARD_REQUIRED</item>
-      <item>CMAKE_OBJC_EXTENSIONS</item>
-      <item>CMAKE_OBJC_STANDARD</item>
-      <item>CMAKE_OBJC_STANDARD_REQUIRED</item>
-      <item>CMAKE_OBJECT_PATH_MAX</item>
-      <item>CMAKE_OPTIMIZE_DEPENDENCIES</item>
-      <item>CMAKE_OSX_ARCHITECTURES</item>
-      <item>CMAKE_OSX_DEPLOYMENT_TARGET</item>
-      <item>CMAKE_OSX_SYSROOT</item>
-      <item>CMAKE_PARENT_LIST_FILE</item>
-      <item>CMAKE_PATCH_VERSION</item>
-      <item>CMAKE_PCH_INSTANTIATE_TEMPLATES</item>
-      <item>CMAKE_PCH_WARN_INVALID</item>
-      <item>CMAKE_PDB_OUTPUT_DIRECTORY</item>
-      <item>CMAKE_POSITION_INDEPENDENT_CODE</item>
-      <item>CMAKE_PREFIX_PATH</item>
-      <item>CMAKE_PROGRAM_PATH</item>
-      <item>CMAKE_PROJECT_DESCRIPTION</item>
-      <item>CMAKE_PROJECT_HOMEPAGE_URL</item>
-      <item>CMAKE_PROJECT_INCLUDE</item>
-      <item>CMAKE_PROJECT_INCLUDE_BEFORE</item>
-      <item>CMAKE_PROJECT_NAME</item>
-      <item>CMAKE_PROJECT_VERSION</item>
-      <item>CMAKE_PROJECT_VERSION_MAJOR</item>
-      <item>CMAKE_PROJECT_VERSION_MINOR</item>
-      <item>CMAKE_PROJECT_VERSION_PATCH</item>
-      <item>CMAKE_PROJECT_VERSION_TWEAK</item>
-      <item>CMAKE_RANLIB</item>
-      <item>CMAKE_REQUIRED_DEFINITIONS</item>
-      <item>CMAKE_REQUIRED_FLAGS</item>
-      <item>CMAKE_REQUIRED_INCLUDES</item>
-      <item>CMAKE_REQUIRED_LIBRARIES</item>
-      <item>CMAKE_REQUIRED_LINK_OPTIONS</item>
-      <item>CMAKE_REQUIRED_QUIET</item>
-      <item>CMAKE_ROOT</item>
-      <item>CMAKE_RUNTIME_OUTPUT_DIRECTORY</item>
-      <item>CMAKE_SCRIPT_MODE_FILE</item>
-      <item>CMAKE_SHARED_LIBRARY_PREFIX</item>
-      <item>CMAKE_SHARED_LIBRARY_SUFFIX</item>
-      <item>CMAKE_SHARED_LINKER_FLAGS</item>
-      <item>CMAKE_SHARED_LINKER_FLAGS_INIT</item>
-      <item>CMAKE_SHARED_MODULE_PREFIX</item>
-      <item>CMAKE_SHARED_MODULE_SUFFIX</item>
-      <item>CMAKE_SIZEOF_VOID_P</item>
-      <item>CMAKE_SKIP_BUILD_RPATH</item>
-      <item>CMAKE_SKIP_INSTALL_ALL_DEPENDENCY</item>
-      <item>CMAKE_SKIP_INSTALL_RPATH</item>
-      <item>CMAKE_SKIP_INSTALL_RULES</item>
-      <item>CMAKE_SKIP_RPATH</item>
-      <item>CMAKE_SOURCE_DIR</item>
-      <item>CMAKE_STAGING_PREFIX</item>
-      <item>CMAKE_STATIC_LIBRARY_PREFIX</item>
-      <item>CMAKE_STATIC_LIBRARY_SUFFIX</item>
-      <item>CMAKE_STATIC_LINKER_FLAGS</item>
-      <item>CMAKE_STATIC_LINKER_FLAGS_INIT</item>
-      <item>CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS</item>
-      <item>CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE</item>
-      <item>CMAKE_SUPPRESS_REGENERATION</item>
-      <item>CMAKE_SWIG_FLAGS</item>
-      <item>CMAKE_SWIG_OUTDIR</item>
-      <item>CMAKE_SYSROOT</item>
-      <item>CMAKE_SYSROOT_COMPILE</item>
-      <item>CMAKE_SYSROOT_LINK</item>
-      <item>CMAKE_SYSTEM</item>
-      <item>CMAKE_SYSTEM_APPBUNDLE_PATH</item>
-      <item>CMAKE_SYSTEM_FRAMEWORK_PATH</item>
-      <item>CMAKE_SYSTEM_IGNORE_PATH</item>
-      <item>CMAKE_SYSTEM_INCLUDE_PATH</item>
-      <item>CMAKE_SYSTEM_LIBRARY_PATH</item>
-      <item>CMAKE_SYSTEM_NAME</item>
-      <item>CMAKE_SYSTEM_PREFIX_PATH</item>
-      <item>CMAKE_SYSTEM_PROCESSOR</item>
-      <item>CMAKE_SYSTEM_PROGRAM_PATH</item>
-      <item>CMAKE_SYSTEM_VERSION</item>
-      <item>CMAKE_Swift_LANGUAGE_VERSION</item>
-      <item>CMAKE_Swift_MODULE_DIRECTORY</item>
-      <item>CMAKE_THREAD_LIBS_INIT</item>
-      <item>CMAKE_THREAD_PREFER_PTHREAD</item>
-      <item>CMAKE_TOOLCHAIN_FILE</item>
-      <item>CMAKE_TRY_COMPILE_CONFIGURATION</item>
-      <item>CMAKE_TRY_COMPILE_PLATFORM_VARIABLES</item>
-      <item>CMAKE_TRY_COMPILE_TARGET_TYPE</item>
-      <item>CMAKE_TWEAK_VERSION</item>
-      <item>CMAKE_UNITY_BUILD</item>
-      <item>CMAKE_UNITY_BUILD_BATCH_SIZE</item>
-      <item>CMAKE_USER_MAKE_RULES_OVERRIDE</item>
-      <item>CMAKE_USE_PTHREADS_INIT</item>
-      <item>CMAKE_USE_RELATIVE_PATHS</item>
-      <item>CMAKE_USE_SPROC_INIT</item>
-      <item>CMAKE_USE_WIN32_THREADS_INIT</item>
-      <item>CMAKE_VERBOSE_MAKEFILE</item>
-      <item>CMAKE_VERSION</item>
-      <item>CMAKE_VISIBILITY_INLINES_HIDDEN</item>
-      <item>CMAKE_VS_DEVENV_COMMAND</item>
-      <item>CMAKE_VS_GLOBALS</item>
-      <item>CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD</item>
-      <item>CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD</item>
-      <item>CMAKE_VS_JUST_MY_CODE_DEBUGGING</item>
-      <item>CMAKE_VS_MSBUILD_COMMAND</item>
-      <item>CMAKE_VS_NsightTegra_VERSION</item>
-      <item>CMAKE_VS_PLATFORM_NAME</item>
-      <item>CMAKE_VS_PLATFORM_TOOLSET</item>
-      <item>CMAKE_VS_PLATFORM_TOOLSET_CUDA</item>
-      <item>CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE</item>
-      <item>CMAKE_VS_SDK_EXCLUDE_DIRECTORIES</item>
-      <item>CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES</item>
-      <item>CMAKE_VS_SDK_INCLUDE_DIRECTORIES</item>
-      <item>CMAKE_VS_SDK_LIBRARY_DIRECTORIES</item>
-      <item>CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES</item>
-      <item>CMAKE_VS_SDK_REFERENCE_DIRECTORIES</item>
-      <item>CMAKE_VS_SDK_SOURCE_DIRECTORIES</item>
-      <item>CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION</item>
-      <item>CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM</item>
-      <item>CMAKE_WARN_DEPRECATED</item>
-      <item>CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION</item>
-      <item>CMAKE_WIN32_EXECUTABLE</item>
-      <item>CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS</item>
-      <item>CMAKE_XCODE_BUILD_SYSTEM</item>
-      <item>CMAKE_XCODE_GENERATE_SCHEME</item>
-      <item>CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY</item>
-      <item>CMAKE_XCODE_LINK_BUILD_PHASE_MODE</item>
-      <item>CMAKE_XCODE_PLATFORM_TOOLSET</item>
-      <item>CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER</item>
-      <item>CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN</item>
-      <item>CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING</item>
-      <item>CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER</item>
-      <item>CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS</item>
-      <item>CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE</item>
-      <item>CMAKE_XCODE_SCHEME_ENVIRONMENT</item>
-      <item>CMAKE_XCODE_SCHEME_GUARD_MALLOC</item>
-      <item>CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP</item>
-      <item>CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES</item>
-      <item>CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE</item>
-      <item>CMAKE_XCODE_SCHEME_MALLOC_STACK</item>
-      <item>CMAKE_XCODE_SCHEME_THREAD_SANITIZER</item>
-      <item>CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP</item>
-      <item>CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER</item>
-      <item>CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP</item>
-      <item>CMAKE_XCODE_SCHEME_WORKING_DIRECTORY</item>
-      <item>CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS</item>
-      <item>CPACK_ABSOLUTE_DESTINATION_FILES</item>
-      <item>CPACK_ARCHIVE_COMPONENT_INSTALL</item>
-      <item>CPACK_ARCHIVE_FILE_NAME</item>
-      <item>CPACK_ARCHIVE_THREADS</item>
-      <item>CPACK_BUILD_SOURCE_DIRS</item>
-      <item>CPACK_BUNDLE_APPLE_CERT_APP</item>
-      <item>CPACK_BUNDLE_APPLE_CODESIGN_FILES</item>
-      <item>CPACK_BUNDLE_APPLE_CODESIGN_PARAMETER</item>
-      <item>CPACK_BUNDLE_APPLE_ENTITLEMENTS</item>
-      <item>CPACK_BUNDLE_ICON</item>
-      <item>CPACK_BUNDLE_NAME</item>
-      <item>CPACK_BUNDLE_PLIST</item>
-      <item>CPACK_BUNDLE_STARTUP_COMMAND</item>
-      <item>CPACK_CMAKE_GENERATOR</item>
-      <item>CPACK_COMMAND_CODESIGN</item>
-      <item>CPACK_COMMAND_HDIUTIL</item>
-      <item>CPACK_COMMAND_PKGBUILD</item>
-      <item>CPACK_COMMAND_PRODUCTBUILD</item>
-      <item>CPACK_COMMAND_REZ</item>
-      <item>CPACK_COMMAND_SETFILE</item>
-      <item>CPACK_COMPONENTS_ALL</item>
-      <item>CPACK_COMPONENTS_GROUPING</item>
-      <item>CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY</item>
-      <item>CPACK_CREATE_DESKTOP_LINKS</item>
-      <item>CPACK_CUSTOM_INSTALL_VARIABLES</item>
-      <item>CPACK_CYGWIN_BUILD_SCRIPT</item>
-      <item>CPACK_CYGWIN_PATCH_FILE</item>
-      <item>CPACK_CYGWIN_PATCH_NUMBER</item>
-      <item>CPACK_DEBIAN_ARCHIVE_TYPE</item>
-      <item>CPACK_DEBIAN_COMPRESSION_TYPE</item>
-      <item>CPACK_DEBIAN_DEBUGINFO_PACKAGE</item>
-      <item>CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS</item>
-      <item>CPACK_DEBIAN_FILE_NAME</item>
-      <item>CPACK_DEBIAN_PACKAGE_ARCHITECTURE</item>
-      <item>CPACK_DEBIAN_PACKAGE_BREAKS</item>
-      <item>CPACK_DEBIAN_PACKAGE_CONFLICTS</item>
-      <item>CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA</item>
-      <item>CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION</item>
-      <item>CPACK_DEBIAN_PACKAGE_DEBUG</item>
-      <item>CPACK_DEBIAN_PACKAGE_DEPENDS</item>
-      <item>CPACK_DEBIAN_PACKAGE_DESCRIPTION</item>
-      <item>CPACK_DEBIAN_PACKAGE_ENHANCES</item>
-      <item>CPACK_DEBIAN_PACKAGE_EPOCH</item>
-      <item>CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS</item>
-      <item>CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY</item>
-      <item>CPACK_DEBIAN_PACKAGE_HOMEPAGE</item>
-      <item>CPACK_DEBIAN_PACKAGE_MAINTAINER</item>
-      <item>CPACK_DEBIAN_PACKAGE_NAME</item>
-      <item>CPACK_DEBIAN_PACKAGE_PREDEPENDS</item>
-      <item>CPACK_DEBIAN_PACKAGE_PRIORITY</item>
-      <item>CPACK_DEBIAN_PACKAGE_PROVIDES</item>
-      <item>CPACK_DEBIAN_PACKAGE_RECOMMENDS</item>
-      <item>CPACK_DEBIAN_PACKAGE_RELEASE</item>
-      <item>CPACK_DEBIAN_PACKAGE_REPLACES</item>
-      <item>CPACK_DEBIAN_PACKAGE_SECTION</item>
-      <item>CPACK_DEBIAN_PACKAGE_SHLIBDEPS</item>
-      <item>CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS</item>
-      <item>CPACK_DEBIAN_PACKAGE_SOURCE</item>
-      <item>CPACK_DEBIAN_PACKAGE_SUGGESTS</item>
-      <item>CPACK_DEBIAN_PACKAGE_VERSION</item>
-      <item>CPACK_DEB_COMPONENT_INSTALL</item>
-      <item>CPACK_DMG_BACKGROUND_IMAGE</item>
-      <item>CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK</item>
-      <item>CPACK_DMG_DS_STORE</item>
-      <item>CPACK_DMG_DS_STORE_SETUP_SCRIPT</item>
-      <item>CPACK_DMG_FILESYSTEM</item>
-      <item>CPACK_DMG_FORMAT</item>
-      <item>CPACK_DMG_SLA_DIR</item>
-      <item>CPACK_DMG_SLA_LANGUAGES</item>
-      <item>CPACK_DMG_VOLUME_NAME</item>
-      <item>CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION</item>
-      <item>CPACK_EXTERNAL_BUILT_PACKAGES</item>
-      <item>CPACK_EXTERNAL_ENABLE_STAGING</item>
-      <item>CPACK_EXTERNAL_PACKAGE_SCRIPT</item>
-      <item>CPACK_EXTERNAL_REQUESTED_VERSIONS</item>
-      <item>CPACK_GENERATOR</item>
-      <item>CPACK_IFW_ADMIN_TARGET_DIRECTORY</item>
-      <item>CPACK_IFW_BINARYCREATOR_EXECUTABLE</item>
-      <item>CPACK_IFW_DEVTOOL_EXECUTABLE</item>
-      <item>CPACK_IFW_DOWNLOAD_ALL</item>
-      <item>CPACK_IFW_FRAMEWORK_VERSION</item>
-      <item>CPACK_IFW_INSTALLERBASE_EXECUTABLE</item>
-      <item>CPACK_IFW_PACKAGES_DIRECTORIES</item>
-      <item>CPACK_IFW_PACKAGE_ALLOW_NON_ASCII_CHARACTERS</item>
-      <item>CPACK_IFW_PACKAGE_ALLOW_SPACE_IN_PATH</item>
-      <item>CPACK_IFW_PACKAGE_BACKGROUND</item>
-      <item>CPACK_IFW_PACKAGE_BANNER</item>
-      <item>CPACK_IFW_PACKAGE_CONTROL_SCRIPT</item>
-      <item>CPACK_IFW_PACKAGE_GROUP</item>
-      <item>CPACK_IFW_PACKAGE_ICON</item>
-      <item>CPACK_IFW_PACKAGE_LOGO</item>
-      <item>CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_INI_FILE</item>
-      <item>CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME</item>
-      <item>CPACK_IFW_PACKAGE_NAME</item>
-      <item>CPACK_IFW_PACKAGE_PUBLISHER</item>
-      <item>CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR</item>
-      <item>CPACK_IFW_PACKAGE_RESOURCES</item>
-      <item>CPACK_IFW_PACKAGE_START_MENU_DIRECTORY</item>
-      <item>CPACK_IFW_PACKAGE_STYLE_SHEET</item>
-      <item>CPACK_IFW_PACKAGE_TITLE</item>
-      <item>CPACK_IFW_PACKAGE_TITLE_COLOR</item>
-      <item>CPACK_IFW_PACKAGE_WATERMARK</item>
-      <item>CPACK_IFW_PACKAGE_WINDOW_ICON</item>
-      <item>CPACK_IFW_PACKAGE_WIZARD_DEFAULT_HEIGHT</item>
-      <item>CPACK_IFW_PACKAGE_WIZARD_DEFAULT_WIDTH</item>
-      <item>CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST</item>
-      <item>CPACK_IFW_PACKAGE_WIZARD_STYLE</item>
-      <item>CPACK_IFW_PRODUCT_URL</item>
-      <item>CPACK_IFW_REPOGEN_EXECUTABLE</item>
-      <item>CPACK_IFW_REPOSITORIES_ALL</item>
-      <item>CPACK_IFW_RESOLVE_DUPLICATE_NAMES</item>
-      <item>CPACK_IFW_ROOT</item>
-      <item>CPACK_IFW_TARGET_DIRECTORY</item>
-      <item>CPACK_IFW_VERBOSE</item>
-      <item>CPACK_INCLUDE_TOPLEVEL_DIRECTORY</item>
-      <item>CPACK_INSTALLED_DIRECTORIES</item>
-      <item>CPACK_INSTALL_CMAKE_PROJECTS</item>
-      <item>CPACK_INSTALL_COMMANDS</item>
-      <item>CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS</item>
-      <item>CPACK_INSTALL_SCRIPTS</item>
-      <item>CPACK_MONOLITHIC_INSTALL</item>
-      <item>CPACK_NSIS_BRANDING_TEXT</item>
-      <item>CPACK_NSIS_BRANDING_TEXT_TRIM_POSITION</item>
-      <item>CPACK_NSIS_COMPRESSOR</item>
-      <item>CPACK_NSIS_CONTACT</item>
-      <item>CPACK_NSIS_CREATE_ICONS_EXTRA</item>
-      <item>CPACK_NSIS_DELETE_ICONS_EXTRA</item>
-      <item>CPACK_NSIS_DISPLAY_NAME</item>
-      <item>CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL</item>
-      <item>CPACK_NSIS_EXECUTABLE</item>
-      <item>CPACK_NSIS_EXECUTABLES_DIRECTORY</item>
-      <item>CPACK_NSIS_EXTRA_INSTALL_COMMANDS</item>
-      <item>CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS</item>
-      <item>CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS</item>
-      <item>CPACK_NSIS_FINISH_TITLE</item>
-      <item>CPACK_NSIS_FINISH_TITLE_3LINES</item>
-      <item>CPACK_NSIS_HELP_LINK</item>
-      <item>CPACK_NSIS_INSTALLED_ICON_NAME</item>
-      <item>CPACK_NSIS_INSTALLER_MUI_ICON_CODE</item>
-      <item>CPACK_NSIS_INSTALL_ROOT</item>
-      <item>CPACK_NSIS_MANIFEST_DPI_AWARE</item>
-      <item>CPACK_NSIS_MENU_LINKS</item>
-      <item>CPACK_NSIS_MODIFY_PATH</item>
-      <item>CPACK_NSIS_MUI_FINISHPAGE_RUN</item>
-      <item>CPACK_NSIS_MUI_HEADERIMAGE</item>
-      <item>CPACK_NSIS_MUI_ICON</item>
-      <item>CPACK_NSIS_MUI_UNIICON</item>
-      <item>CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP</item>
-      <item>CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP</item>
-      <item>CPACK_NSIS_PACKAGE_NAME</item>
-      <item>CPACK_NSIS_UNINSTALL_NAME</item>
-      <item>CPACK_NSIS_URL_INFO_ABOUT</item>
-      <item>CPACK_NSIS_WELCOME_TITLE</item>
-      <item>CPACK_NSIS_WELCOME_TITLE_3LINES</item>
-      <item>CPACK_NUGET_COMPONENT_INSTALL</item>
-      <item>CPACK_NUGET_PACKAGE_AUTHORS</item>
-      <item>CPACK_NUGET_PACKAGE_COPYRIGHT</item>
-      <item>CPACK_NUGET_PACKAGE_DEBUG</item>
-      <item>CPACK_NUGET_PACKAGE_DEPENDENCIES</item>
-      <item>CPACK_NUGET_PACKAGE_DESCRIPTION</item>
-      <item>CPACK_NUGET_PACKAGE_DESCRIPTION_SUMMARY</item>
-      <item>CPACK_NUGET_PACKAGE_HOMEPAGE_URL</item>
-      <item>CPACK_NUGET_PACKAGE_ICON</item>
-      <item>CPACK_NUGET_PACKAGE_ICONURL</item>
-      <item>CPACK_NUGET_PACKAGE_LANGUAGE</item>
-      <item>CPACK_NUGET_PACKAGE_LICENSEURL</item>
-      <item>CPACK_NUGET_PACKAGE_LICENSE_EXPRESSION</item>
-      <item>CPACK_NUGET_PACKAGE_LICENSE_FILE_NAME</item>
-      <item>CPACK_NUGET_PACKAGE_NAME</item>
-      <item>CPACK_NUGET_PACKAGE_OWNERS</item>
-      <item>CPACK_NUGET_PACKAGE_RELEASE_NOTES</item>
-      <item>CPACK_NUGET_PACKAGE_TAGS</item>
-      <item>CPACK_NUGET_PACKAGE_TITLE</item>
-      <item>CPACK_NUGET_PACKAGE_VERSION</item>
-      <item>CPACK_OUTPUT_CONFIG_FILE</item>
-      <item>CPACK_PACKAGE_CHECKSUM</item>
-      <item>CPACK_PACKAGE_DESCRIPTION</item>
-      <item>CPACK_PACKAGE_DESCRIPTION_FILE</item>
-      <item>CPACK_PACKAGE_DESCRIPTION_SUMMARY</item>
-      <item>CPACK_PACKAGE_DIRECTORY</item>
-      <item>CPACK_PACKAGE_EXECUTABLES</item>
-      <item>CPACK_PACKAGE_FILES</item>
-      <item>CPACK_PACKAGE_FILE_NAME</item>
-      <item>CPACK_PACKAGE_HOMEPAGE_URL</item>
-      <item>CPACK_PACKAGE_ICON</item>
-      <item>CPACK_PACKAGE_INSTALL_DIRECTORY</item>
-      <item>CPACK_PACKAGE_INSTALL_REGISTRY_KEY</item>
-      <item>CPACK_PACKAGE_NAME</item>
-      <item>CPACK_PACKAGE_VENDOR</item>
-      <item>CPACK_PACKAGE_VERSION</item>
-      <item>CPACK_PACKAGE_VERSION_MAJOR</item>
-      <item>CPACK_PACKAGE_VERSION_MINOR</item>
-      <item>CPACK_PACKAGE_VERSION_PATCH</item>
-      <item>CPACK_PACKAGING_INSTALL_PREFIX</item>
-      <item>CPACK_PKGBUILD_IDENTITY_NAME</item>
-      <item>CPACK_PKGBUILD_KEYCHAIN_PATH</item>
-      <item>CPACK_POST_BUILD_SCRIPTS</item>
-      <item>CPACK_PRE_BUILD_SCRIPTS</item>
-      <item>CPACK_PRODUCTBUILD_BACKGROUND</item>
-      <item>CPACK_PRODUCTBUILD_BACKGROUND_ALIGNMENT</item>
-      <item>CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA</item>
-      <item>CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_ALIGNMENT</item>
-      <item>CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_MIME_TYPE</item>
-      <item>CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_SCALING</item>
-      <item>CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_UTI</item>
-      <item>CPACK_PRODUCTBUILD_BACKGROUND_MIME_TYPE</item>
-      <item>CPACK_PRODUCTBUILD_BACKGROUND_SCALING</item>
-      <item>CPACK_PRODUCTBUILD_BACKGROUND_UTI</item>
-      <item>CPACK_PRODUCTBUILD_IDENTITY_NAME</item>
-      <item>CPACK_PRODUCTBUILD_KEYCHAIN_PATH</item>
-      <item>CPACK_PRODUCTBUILD_RESOURCES_DIR</item>
-      <item>CPACK_PROJECT_CONFIG_FILE</item>
-      <item>CPACK_RESOURCE_FILE_LICENSE</item>
-      <item>CPACK_RESOURCE_FILE_README</item>
-      <item>CPACK_RESOURCE_FILE_WELCOME</item>
-      <item>CPACK_RPM_ADDITIONAL_MAN_DIRS</item>
-      <item>CPACK_RPM_BUILDREQUIRES</item>
-      <item>CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX</item>
-      <item>CPACK_RPM_CHANGELOG_FILE</item>
-      <item>CPACK_RPM_COMPONENT_INSTALL</item>
-      <item>CPACK_RPM_COMPRESSION_TYPE</item>
-      <item>CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS</item>
-      <item>CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS_ADDITION</item>
-      <item>CPACK_RPM_DEBUGINFO_FILE_NAME</item>
-      <item>CPACK_RPM_DEBUGINFO_PACKAGE</item>
-      <item>CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE</item>
-      <item>CPACK_RPM_DEFAULT_DIR_PERMISSIONS</item>
-      <item>CPACK_RPM_DEFAULT_FILE_PERMISSIONS</item>
-      <item>CPACK_RPM_DEFAULT_GROUP</item>
-      <item>CPACK_RPM_DEFAULT_USER</item>
-      <item>CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST</item>
-      <item>CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION</item>
-      <item>CPACK_RPM_FILE_NAME</item>
-      <item>CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE</item>
-      <item>CPACK_RPM_INSTALL_WITH_EXEC</item>
-      <item>CPACK_RPM_MAIN_COMPONENT</item>
-      <item>CPACK_RPM_NO_INSTALL_PREFIX_RELOCATION</item>
-      <item>CPACK_RPM_PACKAGE_ARCHITECTURE</item>
-      <item>CPACK_RPM_PACKAGE_AUTOPROV</item>
-      <item>CPACK_RPM_PACKAGE_AUTOREQ</item>
-      <item>CPACK_RPM_PACKAGE_AUTOREQPROV</item>
-      <item>CPACK_RPM_PACKAGE_CONFLICTS</item>
-      <item>CPACK_RPM_PACKAGE_DEBUG</item>
-      <item>CPACK_RPM_PACKAGE_DESCRIPTION</item>
-      <item>CPACK_RPM_PACKAGE_EPOCH</item>
-      <item>CPACK_RPM_PACKAGE_GROUP</item>
-      <item>CPACK_RPM_PACKAGE_LICENSE</item>
-      <item>CPACK_RPM_PACKAGE_NAME</item>
-      <item>CPACK_RPM_PACKAGE_OBSOLETES</item>
-      <item>CPACK_RPM_PACKAGE_PROVIDES</item>
-      <item>CPACK_RPM_PACKAGE_RELEASE</item>
-      <item>CPACK_RPM_PACKAGE_RELEASE_DIST</item>
-      <item>CPACK_RPM_PACKAGE_RELOCATABLE</item>
-      <item>CPACK_RPM_PACKAGE_REQUIRES</item>
-      <item>CPACK_RPM_PACKAGE_REQUIRES_POST</item>
-      <item>CPACK_RPM_PACKAGE_REQUIRES_POSTUN</item>
-      <item>CPACK_RPM_PACKAGE_REQUIRES_PRE</item>
-      <item>CPACK_RPM_PACKAGE_REQUIRES_PREUN</item>
-      <item>CPACK_RPM_PACKAGE_SOURCES</item>
-      <item>CPACK_RPM_PACKAGE_SUGGESTS</item>
-      <item>CPACK_RPM_PACKAGE_SUMMARY</item>
-      <item>CPACK_RPM_PACKAGE_URL</item>
-      <item>CPACK_RPM_PACKAGE_VENDOR</item>
-      <item>CPACK_RPM_PACKAGE_VERSION</item>
-      <item>CPACK_RPM_POST_INSTALL_SCRIPT_FILE</item>
-      <item>CPACK_RPM_POST_TRANS_SCRIPT_FILE</item>
-      <item>CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE</item>
-      <item>CPACK_RPM_PRE_INSTALL_SCRIPT_FILE</item>
-      <item>CPACK_RPM_PRE_TRANS_SCRIPT_FILE</item>
-      <item>CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE</item>
-      <item>CPACK_RPM_RELOCATION_PATHS</item>
-      <item>CPACK_RPM_SOURCE_PKG_BUILD_PARAMS</item>
-      <item>CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX</item>
-      <item>CPACK_RPM_SPEC_INSTALL_POST</item>
-      <item>CPACK_RPM_SPEC_MORE_DEFINE</item>
-      <item>CPACK_RPM_USER_BINARY_SPECFILE</item>
-      <item>CPACK_RPM_USER_FILELIST</item>
-      <item>CPACK_SET_DESTDIR</item>
-      <item>CPACK_SOURCE_GENERATOR</item>
-      <item>CPACK_SOURCE_IGNORE_FILES</item>
-      <item>CPACK_SOURCE_OUTPUT_CONFIG_FILE</item>
-      <item>CPACK_SOURCE_PACKAGE_FILE_NAME</item>
-      <item>CPACK_SOURCE_STRIP_FILES</item>
-      <item>CPACK_STRIP_FILES</item>
-      <item>CPACK_SYSTEM_NAME</item>
-      <item>CPACK_THREADS</item>
-      <item>CPACK_TOPLEVEL_TAG</item>
-      <item>CPACK_VERBATIM_VARIABLES</item>
-      <item>CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION</item>
-      <item>CPACK_WIX_CMAKE_PACKAGE_REGISTRY</item>
-      <item>CPACK_WIX_CULTURES</item>
-      <item>CPACK_WIX_CUSTOM_XMLNS</item>
-      <item>CPACK_WIX_EXTENSIONS</item>
-      <item>CPACK_WIX_EXTRA_OBJECTS</item>
-      <item>CPACK_WIX_EXTRA_SOURCES</item>
-      <item>CPACK_WIX_LICENSE_RTF</item>
-      <item>CPACK_WIX_PATCH_FILE</item>
-      <item>CPACK_WIX_PRODUCT_GUID</item>
-      <item>CPACK_WIX_PRODUCT_ICON</item>
-      <item>CPACK_WIX_PROGRAM_MENU_FOLDER</item>
-      <item>CPACK_WIX_ROOT</item>
-      <item>CPACK_WIX_ROOT_FEATURE_DESCRIPTION</item>
-      <item>CPACK_WIX_ROOT_FEATURE_TITLE</item>
-      <item>CPACK_WIX_ROOT_FOLDER_ID</item>
-      <item>CPACK_WIX_SKIP_PROGRAM_FOLDER</item>
-      <item>CPACK_WIX_TEMPLATE</item>
-      <item>CPACK_WIX_UI_BANNER</item>
-      <item>CPACK_WIX_UI_DIALOG</item>
-      <item>CPACK_WIX_UI_REF</item>
-      <item>CPACK_WIX_UPGRADE_GUID</item>
-      <item>CTEST_BINARY_DIRECTORY</item>
-      <item>CTEST_BUILD_COMMAND</item>
-      <item>CTEST_BUILD_NAME</item>
-      <item>CTEST_BZR_COMMAND</item>
-      <item>CTEST_BZR_UPDATE_OPTIONS</item>
-      <item>CTEST_CHANGE_ID</item>
-      <item>CTEST_CHECKOUT_COMMAND</item>
-      <item>CTEST_CONFIGURATION_TYPE</item>
-      <item>CTEST_CONFIGURE_COMMAND</item>
-      <item>CTEST_COVERAGE_COMMAND</item>
-      <item>CTEST_COVERAGE_EXTRA_FLAGS</item>
-      <item>CTEST_CURL_OPTIONS</item>
-      <item>CTEST_CUSTOM_COVERAGE_EXCLUDE</item>
-      <item>CTEST_CUSTOM_ERROR_EXCEPTION</item>
-      <item>CTEST_CUSTOM_ERROR_MATCH</item>
-      <item>CTEST_CUSTOM_ERROR_POST_CONTEXT</item>
-      <item>CTEST_CUSTOM_ERROR_PRE_CONTEXT</item>
-      <item>CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE</item>
-      <item>CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS</item>
-      <item>CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS</item>
-      <item>CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE</item>
-      <item>CTEST_CUSTOM_MEMCHECK_IGNORE</item>
-      <item>CTEST_CUSTOM_POST_MEMCHECK</item>
-      <item>CTEST_CUSTOM_POST_TEST</item>
-      <item>CTEST_CUSTOM_PRE_MEMCHECK</item>
-      <item>CTEST_CUSTOM_PRE_TEST</item>
-      <item>CTEST_CUSTOM_TEST_IGNORE</item>
-      <item>CTEST_CUSTOM_WARNING_EXCEPTION</item>
-      <item>CTEST_CUSTOM_WARNING_MATCH</item>
-      <item>CTEST_CVS_CHECKOUT</item>
-      <item>CTEST_CVS_COMMAND</item>
-      <item>CTEST_CVS_UPDATE_OPTIONS</item>
-      <item>CTEST_DROP_LOCATION</item>
-      <item>CTEST_DROP_METHOD</item>
-      <item>CTEST_DROP_SITE</item>
-      <item>CTEST_DROP_SITE_CDASH</item>
-      <item>CTEST_DROP_SITE_PASSWORD</item>
-      <item>CTEST_DROP_SITE_USER</item>
-      <item>CTEST_EXTRA_COVERAGE_GLOB</item>
-      <item>CTEST_GIT_COMMAND</item>
-      <item>CTEST_GIT_INIT_SUBMODULES</item>
-      <item>CTEST_GIT_UPDATE_CUSTOM</item>
-      <item>CTEST_GIT_UPDATE_OPTIONS</item>
-      <item>CTEST_HG_COMMAND</item>
-      <item>CTEST_HG_UPDATE_OPTIONS</item>
-      <item>CTEST_LABELS_FOR_SUBPROJECTS</item>
-      <item>CTEST_MEMORYCHECK_COMMAND</item>
-      <item>CTEST_MEMORYCHECK_COMMAND_OPTIONS</item>
-      <item>CTEST_MEMORYCHECK_SANITIZER_OPTIONS</item>
-      <item>CTEST_MEMORYCHECK_SUPPRESSIONS_FILE</item>
-      <item>CTEST_MEMORYCHECK_TYPE</item>
-      <item>CTEST_NIGHTLY_START_TIME</item>
-      <item>CTEST_P4_CLIENT</item>
-      <item>CTEST_P4_COMMAND</item>
-      <item>CTEST_P4_OPTIONS</item>
-      <item>CTEST_P4_UPDATE_OPTIONS</item>
-      <item>CTEST_RESOURCE_SPEC_FILE</item>
-      <item>CTEST_RUN_CURRENT_SCRIPT</item>
-      <item>CTEST_SCP_COMMAND</item>
-      <item>CTEST_SITE</item>
-      <item>CTEST_SOURCE_DIRECTORY</item>
-      <item>CTEST_SUBMIT_URL</item>
-      <item>CTEST_SVN_COMMAND</item>
-      <item>CTEST_SVN_OPTIONS</item>
-      <item>CTEST_SVN_UPDATE_OPTIONS</item>
-      <item>CTEST_TEST_LOAD</item>
-      <item>CTEST_TEST_TIMEOUT</item>
-      <item>CTEST_TRIGGER_SITE</item>
-      <item>CTEST_UPDATE_COMMAND</item>
-      <item>CTEST_UPDATE_OPTIONS</item>
-      <item>CTEST_UPDATE_VERSION_ONLY</item>
-      <item>CTEST_UPDATE_VERSION_OVERRIDE</item>
-      <item>CTEST_USE_LAUNCHERS</item>
-      <item>CYGWIN</item>
-      <item>EXECUTABLE_OUTPUT_PATH</item>
-      <item>ExternalData_BINARY_ROOT</item>
-      <item>ExternalData_CUSTOM_ERROR</item>
-      <item>ExternalData_CUSTOM_FILE</item>
-      <item>ExternalData_CUSTOM_LOCATION</item>
-      <item>ExternalData_LINK_CONTENT</item>
-      <item>ExternalData_NO_SYMLINKS</item>
-      <item>ExternalData_OBJECT_STORES</item>
-      <item>ExternalData_SERIES_MATCH</item>
-      <item>ExternalData_SERIES_PARSE</item>
-      <item>ExternalData_SERIES_PARSE_NUMBER</item>
-      <item>ExternalData_SERIES_PARSE_PREFIX</item>
-      <item>ExternalData_SERIES_PARSE_SUFFIX</item>
-      <item>ExternalData_SOURCE_ROOT</item>
-      <item>ExternalData_TIMEOUT_ABSOLUTE</item>
-      <item>ExternalData_TIMEOUT_INACTIVITY</item>
-      <item>ExternalData_URL_TEMPLATES</item>
-      <item>GHS-MULTI</item>
-      <item>GRAPHVIZ_EXECUTABLES</item>
-      <item>GRAPHVIZ_EXTERNAL_LIBS</item>
-      <item>GRAPHVIZ_GENERATE_PER_TARGET</item>
-      <item>GRAPHVIZ_GRAPH_HEADER</item>
-      <item>GRAPHVIZ_GRAPH_NAME</item>
-      <item>GRAPHVIZ_GRAPH_TYPE</item>
-      <item>GRAPHVIZ_IGNORE_TARGETS</item>
-      <item>GRAPHVIZ_MODULE_LIBS</item>
-      <item>GRAPHVIZ_NODE_PREFIX</item>
-      <item>GRAPHVIZ_SHARED_LIBS</item>
-      <item>GRAPHVIZ_STATIC_LIBS</item>
-      <item>LIBRARY_OUTPUT_PATH</item>
-      <item>MINGW</item>
-      <item>MSVC</item>
-      <item>MSVC10</item>
-      <item>MSVC11</item>
-      <item>MSVC12</item>
-      <item>MSVC14</item>
-      <item>MSVC60</item>
-      <item>MSVC70</item>
-      <item>MSVC71</item>
-      <item>MSVC80</item>
-      <item>MSVC90</item>
-      <item>MSVC_IDE</item>
-      <item>MSVC_TOOLSET_VERSION</item>
-      <item>MSVC_VERSION</item>
-      <item>PACKAGE_FIND_NAME</item>
-      <item>PACKAGE_FIND_VERSION_COMPLETE</item>
-      <item>PACKAGE_FIND_VERSION_COUNT</item>
-      <item>PACKAGE_FIND_VERSION_MAX</item>
-      <item>PACKAGE_FIND_VERSION_MAX_COUNT</item>
-      <item>PACKAGE_FIND_VERSION_MAX_MAJOR</item>
-      <item>PACKAGE_FIND_VERSION_MAX_MINOR</item>
-      <item>PACKAGE_FIND_VERSION_MAX_PATCH</item>
-      <item>PACKAGE_FIND_VERSION_MAX_TWEAK</item>
-      <item>PACKAGE_FIND_VERSION_MIN</item>
-      <item>PACKAGE_FIND_VERSION_MIN_COUNT</item>
-      <item>PACKAGE_FIND_VERSION_MIN_MAJOR</item>
-      <item>PACKAGE_FIND_VERSION_MIN_MINOR</item>
-      <item>PACKAGE_FIND_VERSION_MIN_PATCH</item>
-      <item>PACKAGE_FIND_VERSION_MIN_TWEAK</item>
-      <item>PACKAGE_FIND_VERSION_RANGE</item>
-      <item>PACKAGE_FIND_VERSION_RANGE_MAX</item>
-      <item>PACKAGE_FIND_VERSION_RANGE_MIN</item>
-      <item>PACKAGE_VERSION</item>
-      <item>PACKAGE_VERSION_COMPATIBLE</item>
-      <item>PACKAGE_VERSION_EXACT</item>
-      <item>PACKAGE_VERSION_UNSUITABLE</item>
-      <item>PKG_CONFIG_EXECUTABLE</item>
-      <item>PKG_CONFIG_USE_CMAKE_PREFIX_PATH</item>
-      <item>PKG_CONFIG_VERSION_STRING</item>
-      <item>PROJECT_BINARY_DIR</item>
-      <item>PROJECT_DESCRIPTION</item>
-      <item>PROJECT_HOMEPAGE_URL</item>
-      <item>PROJECT_IS_TOP_LEVEL</item>
-      <item>PROJECT_NAME</item>
-      <item>PROJECT_SOURCE_DIR</item>
-      <item>PROJECT_VERSION</item>
-      <item>PROJECT_VERSION_MAJOR</item>
-      <item>PROJECT_VERSION_MINOR</item>
-      <item>PROJECT_VERSION_PATCH</item>
-      <item>PROJECT_VERSION_TWEAK</item>
-      <item>QTIFWDIR</item>
-      <item>SWIG_OUTFILE_DIR</item>
-      <item>SWIG_SOURCE_FILE_EXTENSIONS</item>
-      <item>SWIG_USE_SWIG_DEPENDENCIES</item>
-      <item>THREADS_PREFER_PTHREAD_FLAG</item>
-      <item>UNIX</item>
-      <item>UseSWIG_MODULE_VERSION</item>
-      <item>WIN32</item>
-      <item>WINCE</item>
-      <item>WINDOWS_PHONE</item>
-      <item>WINDOWS_STORE</item>
-      <item>XCODE</item>
-      <item>XCODE_VERSION</item>
-    </list>
-
-    <list name="deprecated-or-internal-variables">
-      <item>CMAKE_HOME_DIRECTORY</item>
-      <item>CMAKE_INTERNAL_PLATFORM_ABI</item>
-      <item>CMAKE_NOT_USING_CONFIG_FLAGS</item>
-      <item>CMAKE_OBJDUMP</item>
-      <item>CMAKE_SUPPRESS_DEVELOPER_ERRORS</item>
-      <item>CMAKE_SUPPRESS_DEVELOPER_WARNINGS</item>
-      <item>CMAKE_SYSTEM_ARCH</item>
-      <item>CMAKE_VS_INTEL_Fortran_PROJECT_VERSION</item>
-      <item>CPACK_INSTALL_PREFIX</item>
-      <item>CPACK_INSTALL_SCRIPT</item>
-      <item>CPACK_PACKAGE_CONTACT</item>
-      <item>CPACK_PACKAGE_RELOCATABLE</item>
-      <item>CPACK_TEMPORARY_DIRECTORY</item>
-      <item>CPACK_TOPLEVEL_DIRECTORY</item>
-    </list>
-
-    <list name="environment-variables">
-      <item>CC</item>
-      <item>CFLAGS</item>
-      <item>CMAKE_APPBUNDLE_PATH</item>
-      <item>CMAKE_APPLE_SILICON_PROCESSOR</item>
-      <item>CMAKE_BUILD_PARALLEL_LEVEL</item>
-      <item>CMAKE_CONFIG_TYPE</item>
-      <item>CMAKE_EXPORT_COMPILE_COMMANDS</item>
-      <item>CMAKE_FRAMEWORK_PATH</item>
-      <item>CMAKE_GENERATOR</item>
-      <item>CMAKE_GENERATOR_INSTANCE</item>
-      <item>CMAKE_GENERATOR_PLATFORM</item>
-      <item>CMAKE_GENERATOR_TOOLSET</item>
-      <item>CMAKE_MSVCIDE_RUN_PATH</item>
-      <item>CMAKE_NO_VERBOSE</item>
-      <item>CMAKE_OSX_ARCHITECTURES</item>
-      <item>CMAKE_PREFIX_PATH</item>
-      <item>CMAKE_TOOLCHAIN_FILE</item>
-      <item>CSFLAGS</item>
-      <item>CTEST_INTERACTIVE_DEBUG_MODE</item>
-      <item>CTEST_OUTPUT_ON_FAILURE</item>
-      <item>CTEST_PARALLEL_LEVEL</item>
-      <item>CTEST_PROGRESS_OUTPUT</item>
-      <item>CTEST_USE_LAUNCHERS_DEFAULT</item>
-      <item>CUDAARCHS</item>
-      <item>CUDACXX</item>
-      <item>CUDAFLAGS</item>
-      <item>CUDAHOSTCXX</item>
-      <item>CXX</item>
-      <item>CXXFLAGS</item>
-      <item>DASHBOARD_TEST_FROM_CTEST</item>
-      <item>DESTDIR</item>
-      <item>FC</item>
-      <item>FFLAGS</item>
-      <item>LDFLAGS</item>
-      <item>MACOSX_DEPLOYMENT_TARGET</item>
-      <item>PATH</item>
-      <item>RC</item>
-      <item>RCFLAGS</item>
-      <item>SWIFTC</item>
-      <item>VERBOSE</item>
-    </list>
-    <list name="global-properties">
-      <item>ALLOW_DUPLICATE_CUSTOM_TARGETS</item>
-      <item>AUTOGEN_SOURCE_GROUP</item>
-      <item>AUTOGEN_TARGETS_FOLDER</item>
-      <item>AUTOMOC_SOURCE_GROUP</item>
-      <item>AUTOMOC_TARGETS_FOLDER</item>
-      <item>AUTORCC_SOURCE_GROUP</item>
-      <item>CMAKE_CUDA_KNOWN_FEATURES</item>
-      <item>CMAKE_CXX_KNOWN_FEATURES</item>
-      <item>CMAKE_C_KNOWN_FEATURES</item>
-      <item>CMAKE_ROLE</item>
-      <item>DEBUG_CONFIGURATIONS</item>
-      <item>DISABLED_FEATURES</item>
-      <item>ECLIPSE_EXTRA_NATURES</item>
-      <item>ENABLED_FEATURES</item>
-      <item>ENABLED_LANGUAGES</item>
-      <item>FIND_LIBRARY_USE_LIB32_PATHS</item>
-      <item>FIND_LIBRARY_USE_LIB64_PATHS</item>
-      <item>FIND_LIBRARY_USE_LIBX32_PATHS</item>
-      <item>FIND_LIBRARY_USE_OPENBSD_VERSIONING</item>
-      <item>FeatureSummary_DEFAULT_PKG_TYPE</item>
-      <item>FeatureSummary_PKG_TYPES</item>
-      <item>FeatureSummary_REQUIRED_PKG_TYPES</item>
-      <item>GENERATOR_IS_MULTI_CONFIG</item>
-      <item>GLOBAL_DEPENDS_DEBUG_MODE</item>
-      <item>GLOBAL_DEPENDS_NO_CYCLES</item>
-      <item>IN_TRY_COMPILE</item>
-      <item>JOB_POOLS</item>
-      <item>PACKAGES_FOUND</item>
-      <item>PACKAGES_NOT_FOUND</item>
-      <item>PREDEFINED_TARGETS_FOLDER</item>
-      <item>REPORT_UNDEFINED_PROPERTIES</item>
-      <item>RULE_LAUNCH_COMPILE</item>
-      <item>RULE_LAUNCH_CUSTOM</item>
-      <item>RULE_LAUNCH_LINK</item>
-      <item>RULE_MESSAGES</item>
-      <item>TARGET_ARCHIVES_MAY_BE_SHARED_LIBS</item>
-      <item>TARGET_MESSAGES</item>
-      <item>TARGET_SUPPORTS_SHARED_LIBS</item>
-      <item>USE_FOLDERS</item>
-      <item>XCODE_EMIT_EFFECTIVE_PLATFORM_NAME</item>
-    </list>
-    <list name="directory-properties">
-      <item>ADDITIONAL_CLEAN_FILES</item>
-      <item>ADDITIONAL_MAKE_CLEAN_FILES</item>
-      <item>BINARY_DIR</item>
-      <item>BUILDSYSTEM_TARGETS</item>
-      <item>CACHE_VARIABLES</item>
-      <item>CLEAN_NO_CUSTOM</item>
-      <item>CMAKE_CONFIGURE_DEPENDS</item>
-      <item>COMPILE_DEFINITIONS</item>
-      <item>COMPILE_OPTIONS</item>
-      <item>DEFINITIONS</item>
-      <item>EXCLUDE_FROM_ALL</item>
-      <item>IMPLICIT_DEPENDS_INCLUDE_TRANSFORM</item>
-      <item>IMPORTED_TARGETS</item>
-      <item>INCLUDE_DIRECTORIES</item>
-      <item>INCLUDE_REGULAR_EXPRESSION</item>
-      <item>INTERPROCEDURAL_OPTIMIZATION</item>
-      <item>LABELS</item>
-      <item>LINK_DIRECTORIES</item>
-      <item>LINK_OPTIONS</item>
-      <item>LISTFILE_STACK</item>
-      <item>MACROS</item>
-      <item>PARENT_DIRECTORY</item>
-      <item>RULE_LAUNCH_COMPILE</item>
-      <item>RULE_LAUNCH_CUSTOM</item>
-      <item>RULE_LAUNCH_LINK</item>
-      <item>SOURCE_DIR</item>
-      <item>SUBDIRECTORIES</item>
-      <item>TESTS</item>
-      <item>TEST_INCLUDE_FILE</item>
-      <item>TEST_INCLUDE_FILES</item>
-      <item>VARIABLES</item>
-      <item>VS_STARTUP_PROJECT</item>
-    </list>
-    <list name="target-properties">
-      <item>ADDITIONAL_CLEAN_FILES</item>
-      <item>AIX_EXPORT_ALL_SYMBOLS</item>
-      <item>ALIASED_TARGET</item>
-      <item>ANDROID_ANT_ADDITIONAL_OPTIONS</item>
-      <item>ANDROID_API</item>
-      <item>ANDROID_API_MIN</item>
-      <item>ANDROID_ARCH</item>
-      <item>ANDROID_ASSETS_DIRECTORIES</item>
-      <item>ANDROID_GUI</item>
-      <item>ANDROID_JAR_DEPENDENCIES</item>
-      <item>ANDROID_JAR_DIRECTORIES</item>
-      <item>ANDROID_JAVA_SOURCE_DIR</item>
-      <item>ANDROID_NATIVE_LIB_DEPENDENCIES</item>
-      <item>ANDROID_NATIVE_LIB_DIRECTORIES</item>
-      <item>ANDROID_PROCESS_MAX</item>
-      <item>ANDROID_PROGUARD</item>
-      <item>ANDROID_PROGUARD_CONFIG_PATH</item>
-      <item>ANDROID_SECURE_PROPS_PATH</item>
-      <item>ANDROID_SKIP_ANT_STEP</item>
-      <item>ANDROID_STL_TYPE</item>
-      <item>ARCHIVE_OUTPUT_DIRECTORY</item>
-      <item>ARCHIVE_OUTPUT_NAME</item>
-      <item>AUTOGEN_BUILD_DIR</item>
-      <item>AUTOGEN_ORIGIN_DEPENDS</item>
-      <item>AUTOGEN_TARGET_DEPENDS</item>
-      <item>AUTOMOC</item>
-      <item>AUTOMOC_COMPILER_PREDEFINES</item>
-      <item>AUTOMOC_DEPEND_FILTERS</item>
-      <item>AUTOMOC_EXECUTABLE</item>
-      <item>AUTOMOC_MACRO_NAMES</item>
-      <item>AUTOMOC_MOC_OPTIONS</item>
-      <item>AUTOMOC_PATH_PREFIX</item>
-      <item>AUTORCC</item>
-      <item>AUTORCC_EXECUTABLE</item>
-      <item>AUTORCC_OPTIONS</item>
-      <item>AUTOUIC</item>
-      <item>AUTOUIC_EXECUTABLE</item>
-      <item>AUTOUIC_OPTIONS</item>
-      <item>AUTOUIC_SEARCH_PATHS</item>
-      <item>BINARY_DIR</item>
-      <item>BUILD_RPATH</item>
-      <item>BUILD_RPATH_USE_ORIGIN</item>
-      <item>BUILD_WITH_INSTALL_NAME_DIR</item>
-      <item>BUILD_WITH_INSTALL_RPATH</item>
-      <item>BUNDLE</item>
-      <item>BUNDLE_EXTENSION</item>
-      <item>COMMON_LANGUAGE_RUNTIME</item>
-      <item>COMPATIBLE_INTERFACE_BOOL</item>
-      <item>COMPATIBLE_INTERFACE_NUMBER_MAX</item>
-      <item>COMPATIBLE_INTERFACE_NUMBER_MIN</item>
-      <item>COMPATIBLE_INTERFACE_STRING</item>
-      <item>COMPILE_DEFINITIONS</item>
-      <item>COMPILE_FEATURES</item>
-      <item>COMPILE_FLAGS</item>
-      <item>COMPILE_OPTIONS</item>
-      <item>COMPILE_PDB_NAME</item>
-      <item>COMPILE_PDB_OUTPUT_DIRECTORY</item>
-      <item>CROSSCOMPILING_EMULATOR</item>
-      <item>CUDA_ARCHITECTURES</item>
-      <item>CUDA_EXTENSIONS</item>
-      <item>CUDA_PTX_COMPILATION</item>
-      <item>CUDA_RESOLVE_DEVICE_SYMBOLS</item>
-      <item>CUDA_RUNTIME_LIBRARY</item>
-      <item>CUDA_SEPARABLE_COMPILATION</item>
-      <item>CUDA_STANDARD</item>
-      <item>CUDA_STANDARD_REQUIRED</item>
-      <item>CXX_EXTENSIONS</item>
-      <item>CXX_STANDARD</item>
-      <item>CXX_STANDARD_REQUIRED</item>
-      <item>C_EXTENSIONS</item>
-      <item>C_STANDARD</item>
-      <item>C_STANDARD_REQUIRED</item>
-      <item>DEFINE_SYMBOL</item>
-      <item>DEPLOYMENT_ADDITIONAL_FILES</item>
-      <item>DEPLOYMENT_REMOTE_DIRECTORY</item>
-      <item>DEPRECATION</item>
-      <item>DISABLE_PRECOMPILE_HEADERS</item>
-      <item>DOTNET_TARGET_FRAMEWORK</item>
-      <item>DOTNET_TARGET_FRAMEWORK_VERSION</item>
-      <item>ENABLE_EXPORTS</item>
-      <item>EXCLUDE_FROM_ALL</item>
-      <item>EXCLUDE_FROM_DEFAULT_BUILD</item>
-      <item>EXPORT_COMPILE_COMMANDS</item>
-      <item>EXPORT_NAME</item>
-      <item>EXPORT_PROPERTIES</item>
-      <item>EchoString</item>
-      <item>FOLDER</item>
-      <item>FRAMEWORK</item>
-      <item>FRAMEWORK_VERSION</item>
-      <item>Fortran_FORMAT</item>
-      <item>Fortran_MODULE_DIRECTORY</item>
-      <item>Fortran_PREPROCESS</item>
-      <item>GENERATOR_FILE_NAME</item>
-      <item>GNUtoMS</item>
-      <item>HAS_CXX</item>
-      <item>IMPLICIT_DEPENDS_INCLUDE_TRANSFORM</item>
-      <item>IMPORTED</item>
-      <item>IMPORTED_COMMON_LANGUAGE_RUNTIME</item>
-      <item>IMPORTED_CONFIGURATIONS</item>
-      <item>IMPORTED_GLOBAL</item>
-      <item>IMPORTED_IMPLIB</item>
-      <item>IMPORTED_LIBNAME</item>
-      <item>IMPORTED_LINK_DEPENDENT_LIBRARIES</item>
-      <item>IMPORTED_LINK_INTERFACE_LANGUAGES</item>
-      <item>IMPORTED_LINK_INTERFACE_LIBRARIES</item>
-      <item>IMPORTED_LINK_INTERFACE_MULTIPLICITY</item>
-      <item>IMPORTED_LOCATION</item>
-      <item>IMPORTED_NO_SONAME</item>
-      <item>IMPORTED_OBJECTS</item>
-      <item>IMPORTED_SONAME</item>
-      <item>IMPORT_PREFIX</item>
-      <item>IMPORT_SUFFIX</item>
-      <item>INCLUDE_DIRECTORIES</item>
-      <item>INSTALL_NAME_DIR</item>
-      <item>INSTALL_REMOVE_ENVIRONMENT_RPATH</item>
-      <item>INSTALL_RPATH</item>
-      <item>INSTALL_RPATH_USE_LINK_PATH</item>
-      <item>INTERFACE_AUTOUIC_OPTIONS</item>
-      <item>INTERFACE_COMPILE_DEFINITIONS</item>
-      <item>INTERFACE_COMPILE_FEATURES</item>
-      <item>INTERFACE_COMPILE_OPTIONS</item>
-      <item>INTERFACE_INCLUDE_DIRECTORIES</item>
-      <item>INTERFACE_LINK_DEPENDS</item>
-      <item>INTERFACE_LINK_DIRECTORIES</item>
-      <item>INTERFACE_LINK_LIBRARIES</item>
-      <item>INTERFACE_LINK_OPTIONS</item>
-      <item>INTERFACE_POSITION_INDEPENDENT_CODE</item>
-      <item>INTERFACE_PRECOMPILE_HEADERS</item>
-      <item>INTERFACE_SOURCES</item>
-      <item>INTERFACE_SYSTEM_INCLUDE_DIRECTORIES</item>
-      <item>INTERPROCEDURAL_OPTIMIZATION</item>
-      <item>IOS_INSTALL_COMBINED</item>
-      <item>ISPC_HEADER_DIRECTORY</item>
-      <item>ISPC_HEADER_SUFFIX</item>
-      <item>ISPC_INSTRUCTION_SETS</item>
-      <item>JOB_POOL_COMPILE</item>
-      <item>JOB_POOL_LINK</item>
-      <item>LABELS</item>
-      <item>LIBRARY_OUTPUT_DIRECTORY</item>
-      <item>LIBRARY_OUTPUT_NAME</item>
-      <item>LINKER_LANGUAGE</item>
-      <item>LINK_DEPENDS</item>
-      <item>LINK_DEPENDS_NO_SHARED</item>
-      <item>LINK_DIRECTORIES</item>
-      <item>LINK_FLAGS</item>
-      <item>LINK_INTERFACE_LIBRARIES</item>
-      <item>LINK_INTERFACE_MULTIPLICITY</item>
-      <item>LINK_LIBRARIES</item>
-      <item>LINK_OPTIONS</item>
-      <item>LINK_SEARCH_END_STATIC</item>
-      <item>LINK_SEARCH_START_STATIC</item>
-      <item>LINK_WHAT_YOU_USE</item>
-      <item>LOCATION</item>
-      <item>MACHO_COMPATIBILITY_VERSION</item>
-      <item>MACHO_CURRENT_VERSION</item>
-      <item>MACOSX_BUNDLE</item>
-      <item>MACOSX_BUNDLE_INFO_PLIST</item>
-      <item>MACOSX_FRAMEWORK_INFO_PLIST</item>
-      <item>MACOSX_RPATH</item>
-      <item>MANUALLY_ADDED_DEPENDENCIES</item>
-      <item>MSVC_RUNTIME_LIBRARY</item>
-      <item>NAME</item>
-      <item>NO_SONAME</item>
-      <item>NO_SYSTEM_FROM_IMPORTED</item>
-      <item>OBJCXX_EXTENSIONS</item>
-      <item>OBJCXX_STANDARD</item>
-      <item>OBJCXX_STANDARD_REQUIRED</item>
-      <item>OBJC_EXTENSIONS</item>
-      <item>OBJC_STANDARD</item>
-      <item>OBJC_STANDARD_REQUIRED</item>
-      <item>OPTIMIZE_DEPENDENCIES</item>
-      <item>OSX_ARCHITECTURES</item>
-      <item>OSX_COMPATIBILITY_VERSION</item>
-      <item>OSX_CURRENT_VERSION</item>
-      <item>OUTPUT_NAME</item>
-      <item>PCH_INSTANTIATE_TEMPLATES</item>
-      <item>PCH_WARN_INVALID</item>
-      <item>PDB_NAME</item>
-      <item>PDB_OUTPUT_DIRECTORY</item>
-      <item>POSITION_INDEPENDENT_CODE</item>
-      <item>PRECOMPILE_HEADERS</item>
-      <item>PRECOMPILE_HEADERS_REUSE_FROM</item>
-      <item>PREFIX</item>
-      <item>PRIVATE_HEADER</item>
-      <item>PROJECT_LABEL</item>
-      <item>PUBLIC_HEADER</item>
-      <item>RESOURCE</item>
-      <item>RULE_LAUNCH_COMPILE</item>
-      <item>RULE_LAUNCH_CUSTOM</item>
-      <item>RULE_LAUNCH_LINK</item>
-      <item>RUNTIME_OUTPUT_DIRECTORY</item>
-      <item>RUNTIME_OUTPUT_NAME</item>
-      <item>SKIP_BUILD_RPATH</item>
-      <item>SOURCES</item>
-      <item>SOURCE_DIR</item>
-      <item>SOVERSION</item>
-      <item>STATIC_LIBRARY_FLAGS</item>
-      <item>STATIC_LIBRARY_OPTIONS</item>
-      <item>SUFFIX</item>
-      <item>Swift_DEPENDENCIES_FILE</item>
-      <item>Swift_MODULE_DIRECTORY</item>
-      <item>Swift_MODULE_NAME</item>
-      <item>TYPE</item>
-      <item>UNITY_BUILD</item>
-      <item>UNITY_BUILD_BATCH_SIZE</item>
-      <item>UNITY_BUILD_CODE_AFTER_INCLUDE</item>
-      <item>UNITY_BUILD_CODE_BEFORE_INCLUDE</item>
-      <item>UNITY_BUILD_MODE</item>
-      <item>UNITY_BUILD_UNIQUE_ID</item>
-      <item>VERSION</item>
-      <item>VISIBILITY_INLINES_HIDDEN</item>
-      <item>VS_CONFIGURATION_TYPE</item>
-      <item>VS_DEBUGGER_COMMAND</item>
-      <item>VS_DEBUGGER_COMMAND_ARGUMENTS</item>
-      <item>VS_DEBUGGER_ENVIRONMENT</item>
-      <item>VS_DEBUGGER_WORKING_DIRECTORY</item>
-      <item>VS_DESKTOP_EXTENSIONS_VERSION</item>
-      <item>VS_DOTNET_DOCUMENTATION_FILE</item>
-      <item>VS_DOTNET_REFERENCES</item>
-      <item>VS_DOTNET_REFERENCES_COPY_LOCAL</item>
-      <item>VS_DOTNET_TARGET_FRAMEWORK_VERSION</item>
-      <item>VS_DPI_AWARE</item>
-      <item>VS_GLOBAL_KEYWORD</item>
-      <item>VS_GLOBAL_PROJECT_TYPES</item>
-      <item>VS_GLOBAL_ROOTNAMESPACE</item>
-      <item>VS_IOT_EXTENSIONS_VERSION</item>
-      <item>VS_IOT_STARTUP_TASK</item>
-      <item>VS_JUST_MY_CODE_DEBUGGING</item>
-      <item>VS_KEYWORD</item>
-      <item>VS_MOBILE_EXTENSIONS_VERSION</item>
-      <item>VS_NO_SOLUTION_DEPLOY</item>
-      <item>VS_PACKAGE_REFERENCES</item>
-      <item>VS_PLATFORM_TOOLSET</item>
-      <item>VS_PROJECT_IMPORT</item>
-      <item>VS_SCC_AUXPATH</item>
-      <item>VS_SCC_LOCALPATH</item>
-      <item>VS_SCC_PROJECTNAME</item>
-      <item>VS_SCC_PROVIDER</item>
-      <item>VS_SDK_REFERENCES</item>
-      <item>VS_SOLUTION_DEPLOY</item>
-      <item>VS_USER_PROPS</item>
-      <item>VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION</item>
-      <item>VS_WINRT_COMPONENT</item>
-      <item>VS_WINRT_EXTENSIONS</item>
-      <item>VS_WINRT_REFERENCES</item>
-      <item>WIN32_EXECUTABLE</item>
-      <item>WINDOWS_EXPORT_ALL_SYMBOLS</item>
-      <item>XCODE_EXPLICIT_FILE_TYPE</item>
-      <item>XCODE_GENERATE_SCHEME</item>
-      <item>XCODE_LINK_BUILD_PHASE_MODE</item>
-      <item>XCODE_PRODUCT_TYPE</item>
-      <item>XCODE_SCHEME_ADDRESS_SANITIZER</item>
-      <item>XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN</item>
-      <item>XCODE_SCHEME_ARGUMENTS</item>
-      <item>XCODE_SCHEME_DEBUG_AS_ROOT</item>
-      <item>XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING</item>
-      <item>XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER</item>
-      <item>XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS</item>
-      <item>XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE</item>
-      <item>XCODE_SCHEME_ENVIRONMENT</item>
-      <item>XCODE_SCHEME_EXECUTABLE</item>
-      <item>XCODE_SCHEME_GUARD_MALLOC</item>
-      <item>XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP</item>
-      <item>XCODE_SCHEME_MALLOC_GUARD_EDGES</item>
-      <item>XCODE_SCHEME_MALLOC_SCRIBBLE</item>
-      <item>XCODE_SCHEME_MALLOC_STACK</item>
-      <item>XCODE_SCHEME_THREAD_SANITIZER</item>
-      <item>XCODE_SCHEME_THREAD_SANITIZER_STOP</item>
-      <item>XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER</item>
-      <item>XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP</item>
-      <item>XCODE_SCHEME_WORKING_DIRECTORY</item>
-      <item>XCODE_SCHEME_ZOMBIE_OBJECTS</item>
-      <item>XCTEST</item>
-    </list>
-    <list name="source-properties">
-      <item>ABSTRACT</item>
-      <item>AUTORCC_OPTIONS</item>
-      <item>AUTOUIC_OPTIONS</item>
-      <item>COMPILE_DEFINITIONS</item>
-      <item>COMPILE_FLAGS</item>
-      <item>COMPILE_OPTIONS</item>
-      <item>EXTERNAL_OBJECT</item>
-      <item>Fortran_FORMAT</item>
-      <item>Fortran_PREPROCESS</item>
-      <item>GENERATED</item>
-      <item>HEADER_FILE_ONLY</item>
-      <item>INCLUDE_DIRECTORIES</item>
-      <item>KEEP_EXTENSION</item>
-      <item>LABELS</item>
-      <item>LANGUAGE</item>
-      <item>LOCATION</item>
-      <item>MACOSX_PACKAGE_LOCATION</item>
-      <item>OBJECT_DEPENDS</item>
-      <item>OBJECT_OUTPUTS</item>
-      <item>SKIP_AUTOGEN</item>
-      <item>SKIP_AUTOMOC</item>
-      <item>SKIP_AUTORCC</item>
-      <item>SKIP_AUTOUIC</item>
-      <item>SKIP_PRECOMPILE_HEADERS</item>
-      <item>SKIP_UNITY_BUILD_INCLUSION</item>
-      <item>SYMBOLIC</item>
-      <item>Swift_DEPENDENCIES_FILE</item>
-      <item>Swift_DIAGNOSTICS_FILE</item>
-      <item>VS_COPY_TO_OUT_DIR</item>
-      <item>VS_DEPLOYMENT_CONTENT</item>
-      <item>VS_DEPLOYMENT_LOCATION</item>
-      <item>VS_INCLUDE_IN_VSIX</item>
-      <item>VS_RESOURCE_GENERATOR</item>
-      <item>VS_SETTINGS</item>
-      <item>VS_SHADER_DISABLE_OPTIMIZATIONS</item>
-      <item>VS_SHADER_ENABLE_DEBUG</item>
-      <item>VS_SHADER_ENTRYPOINT</item>
-      <item>VS_SHADER_FLAGS</item>
-      <item>VS_SHADER_MODEL</item>
-      <item>VS_SHADER_OBJECT_FILE_NAME</item>
-      <item>VS_SHADER_OUTPUT_HEADER_FILE</item>
-      <item>VS_SHADER_TYPE</item>
-      <item>VS_SHADER_VARIABLE_NAME</item>
-      <item>VS_TOOL_OVERRIDE</item>
-      <item>VS_XAML_TYPE</item>
-      <item>WRAP_EXCLUDE</item>
-      <item>XCODE_EXPLICIT_FILE_TYPE</item>
-      <item>XCODE_FILE_ATTRIBUTES</item>
-      <item>XCODE_LAST_KNOWN_FILE_TYPE</item>
-    </list>
-    <list name="test-properties">
-      <item>ATTACHED_FILES</item>
-      <item>ATTACHED_FILES_ON_FAIL</item>
-      <item>COST</item>
-      <item>DEPENDS</item>
-      <item>DISABLED</item>
-      <item>ENVIRONMENT</item>
-      <item>FAIL_REGULAR_EXPRESSION</item>
-      <item>FIXTURES_CLEANUP</item>
-      <item>FIXTURES_REQUIRED</item>
-      <item>FIXTURES_SETUP</item>
-      <item>LABELS</item>
-      <item>MEASUREMENT</item>
-      <item>PASS_REGULAR_EXPRESSION</item>
-      <item>PROCESSORS</item>
-      <item>PROCESSOR_AFFINITY</item>
-      <item>REQUIRED_FILES</item>
-      <item>RESOURCE_LOCK</item>
-      <item>RUN_SERIAL</item>
-      <item>SKIP_REGULAR_EXPRESSION</item>
-      <item>SKIP_RETURN_CODE</item>
-      <item>TIMEOUT</item>
-      <item>TIMEOUT_AFTER_MATCH</item>
-      <item>WILL_FAIL</item>
-      <item>WORKING_DIRECTORY</item>
-    </list>
-    <list name="cache-properties">
-      <item>ADVANCED</item>
-      <item>HELPSTRING</item>
-      <item>MODIFIED</item>
-      <item>STRINGS</item>
-      <item>TYPE</item>
-      <item>VALUE</item>
-    </list>
-    <list name="install-properties">
-      <item>CPACK_DESKTOP_SHORTCUTS</item>
-      <item>CPACK_NEVER_OVERWRITE</item>
-      <item>CPACK_PERMANENT</item>
-      <item>CPACK_STARTUP_SHORTCUTS</item>
-      <item>CPACK_START_MENU_SHORTCUTS</item>
-      <item>CPACK_WIX_ACL</item>
-    </list>
-
-    <list name="generator-expressions">
-      <item>0</item>
-      <item>1</item>
-      <item>BOOL</item>
-      <item>AND</item>
-      <item>OR</item>
-      <item>NOT</item>
-      <item>STREQUAL</item>
-      <item>EQUAL</item>
-      <item>IN_LIST</item>
-      <item>VERSION_LESS</item>
-      <item>VERSION_GREATER</item>
-      <item>VERSION_EQUAL</item>
-      <item>VERSION_LESS_EQUAL</item>
-      <item>VERSION_GREATER_EQUAL</item>
-      <item>TARGET_EXISTS</item>
-      <item>CONFIG</item>
-      <item>PLATFORM_ID</item>
-      <item>C_COMPILER_ID</item>
-      <item>CXX_COMPILER_ID</item>
-      <item>CUDA_COMPILER_ID</item>
-      <item>Fortran_COMPILER_ID</item>
-      <item>C_COMPILER_VERSION</item>
-      <item>CXX_COMPILER_VERSION</item>
-      <item>CUDA_COMPILER_VERSION</item>
-      <item>Fortran_COMPILER_VERSION</item>
-      <item>TARGET_POLICY</item>
-      <item>COMPILE_FEATURES</item>
-      <item>COMPILE_LANG_AND_ID</item>
-      <item>COMPILE_LANGUAGE</item>
-      <item>LINK_LANG_AND_ID</item>
-      <item>LINK_LANGUAGE</item>
-      <item>DEVICE_LINK</item>
-      <item>HOST_LINK</item>
-      <item>ANGLE-R</item>
-      <item>COMMA</item>
-      <item>SEMICOLON</item>
-      <item>IF</item>
-      <item>JOIN</item>
-      <item>REMOVE_DUPLICATES</item>
-      <item>FILTER</item>
-      <item>LOWER_CASE</item>
-      <item>UPPER_CASE</item>
-      <item>GENEX_EVAL</item>
-      <item>TARGET_GENEX_EVAL</item>
-      <item>TARGET_NAME_IF_EXISTS</item>
-      <item>TARGET_FILE</item>
-      <item>TARGET_FILE_BASE_NAME</item>
-      <item>TARGET_FILE_PREFIX</item>
-      <item>TARGET_FILE_SUFFIX</item>
-      <item>TARGET_FILE_NAME</item>
-      <item>TARGET_FILE_DIR</item>
-      <item>TARGET_LINKER_FILE</item>
-      <item>TARGET_LINKER_FILE_BASE_NAME</item>
-      <item>TARGET_LINKER_FILE_PREFIX</item>
-      <item>TARGET_LINKER_FILE_SUFFIX</item>
-      <item>TARGET_LINKER_FILE_NAME</item>
-      <item>TARGET_LINKER_FILE_DIR</item>
-      <item>TARGET_SONAME_FILE</item>
-      <item>TARGET_SONAME_FILE</item>
-      <item>TARGET_SONAME_FILE_NAME</item>
-      <item>TARGET_SONAME_FILE_DIR</item>
-      <item>TARGET_PDB_FILE</item>
-      <item>TARGET_PDB_FILE_BASE_NAME</item>
-      <item>TARGET_PDB_FILE_NAME</item>
-      <item>TARGET_PDB_FILE_DIR</item>
-      <item>TARGET_BUNDLE_DIR</item>
-      <item>TARGET_BUNDLE_CONTENT_DIR</item>
-      <item>TARGET_PROPERTY</item>
-      <item>TARGET_RUNTIME_DLLS</item>
-      <item>INSTALL_PREFIX</item>
-      <item>TARGET_NAME</item>
-      <item>LINK_ONLY</item>
-      <item>INSTALL_INTERFACE</item>
-      <item>BUILD_INTERFACE</item>
-      <item>MAKE_C_IDENTIFIER</item>
-      <item>TARGET_OBJECTS</item>
-      <item>SHELL_PATH</item>
-      <item>OUTPUT_CONFIG</item>
-      <item>COMMAND_CONFIG</item>
-    </list>
-
-    <contexts>
-
-      <context attribute="Normal Text" lineEndContext="#stay" name="Normal Text">
-        <DetectSpaces/>
-        <WordDetect String="break" insensitive="true" attribute="Command" context="break_ctx" />
-        <WordDetect String="cmake_host_system_information" insensitive="true" attribute="Command" context="cmake_host_system_information_ctx" />
-        <WordDetect String="cmake_language" insensitive="true" attribute="Command" context="cmake_language_ctx" />
-        <WordDetect String="cmake_minimum_required" insensitive="true" attribute="Command" context="cmake_minimum_required_ctx" />
-        <WordDetect String="cmake_parse_arguments" insensitive="true" attribute="Command" context="cmake_parse_arguments_ctx" />
-        <WordDetect String="cmake_path" insensitive="true" attribute="Command" context="cmake_path_ctx" />
-        <WordDetect String="cmake_policy" insensitive="true" attribute="Command" context="cmake_policy_ctx" />
-        <WordDetect String="configure_file" insensitive="true" attribute="Command" context="configure_file_ctx" />
-        <WordDetect String="continue" insensitive="true" attribute="Command" context="continue_ctx" />
-        <WordDetect String="elseif" insensitive="true" attribute="Command" context="elseif_ctx" />
-        <WordDetect String="else" insensitive="true" attribute="Command" context="else_ctx" />
-        <WordDetect String="endforeach" insensitive="true" attribute="Command" context="endforeach_ctx" endRegion="foreach" />
-        <WordDetect String="endfunction" insensitive="true" attribute="Command" context="endfunction_ctx" endRegion="function" />
-        <WordDetect String="endif" insensitive="true" attribute="Command" context="endif_ctx" endRegion="if" />
-        <WordDetect String="endmacro" insensitive="true" attribute="Command" context="endmacro_ctx" endRegion="macro" />
-        <WordDetect String="endwhile" insensitive="true" attribute="Command" context="endwhile_ctx" endRegion="while" />
-        <WordDetect String="execute_process" insensitive="true" attribute="Command" context="execute_process_ctx" />
-        <WordDetect String="file" insensitive="true" attribute="Command" context="file_ctx" />
-        <WordDetect String="find_file" insensitive="true" attribute="Command" context="find_file_ctx" />
-        <WordDetect String="find_library" insensitive="true" attribute="Command" context="find_library_ctx" />
-        <WordDetect String="find_package" insensitive="true" attribute="Command" context="find_package_ctx" />
-        <WordDetect String="find_path" insensitive="true" attribute="Command" context="find_path_ctx" />
-        <WordDetect String="find_program" insensitive="true" attribute="Command" context="find_program_ctx" />
-        <WordDetect String="foreach" insensitive="true" attribute="Command" context="foreach_ctx" beginRegion="foreach" />
-        <WordDetect String="function" insensitive="true" attribute="Command" context="function_ctx" beginRegion="function" />
-        <WordDetect String="get_cmake_property" insensitive="true" attribute="Command" context="get_cmake_property_ctx" />
-        <WordDetect String="get_directory_property" insensitive="true" attribute="Command" context="get_directory_property_ctx" />
-        <WordDetect String="get_filename_component" insensitive="true" attribute="Command" context="get_filename_component_ctx" />
-        <WordDetect String="get_property" insensitive="true" attribute="Command" context="get_property_ctx" />
-        <WordDetect String="if" insensitive="true" attribute="Command" context="if_ctx" beginRegion="if" />
-        <WordDetect String="include" insensitive="true" attribute="Command" context="include_ctx" />
-        <WordDetect String="include_guard" insensitive="true" attribute="Command" context="include_guard_ctx" />
-        <WordDetect String="list" insensitive="true" attribute="Command" context="list_ctx" />
-        <WordDetect String="macro" insensitive="true" attribute="Command" context="macro_ctx" beginRegion="macro" />
-        <WordDetect String="mark_as_advanced" insensitive="true" attribute="Command" context="mark_as_advanced_ctx" />
-        <WordDetect String="math" insensitive="true" attribute="Command" context="math_ctx" />
-        <WordDetect String="message" insensitive="true" attribute="Command" context="message_ctx" />
-        <WordDetect String="option" insensitive="true" attribute="Command" context="option_ctx" />
-        <WordDetect String="return" insensitive="true" attribute="Command" context="return_ctx" />
-        <WordDetect String="separate_arguments" insensitive="true" attribute="Command" context="separate_arguments_ctx" />
-        <WordDetect String="set_directory_properties" insensitive="true" attribute="Command" context="set_directory_properties_ctx" />
-        <WordDetect String="set_property" insensitive="true" attribute="Command" context="set_property_ctx" />
-        <WordDetect String="set" insensitive="true" attribute="Command" context="set_ctx" />
-        <WordDetect String="site_name" insensitive="true" attribute="Command" context="site_name_ctx" />
-        <WordDetect String="string" insensitive="true" attribute="Command" context="string_ctx" />
-        <WordDetect String="unset" insensitive="true" attribute="Command" context="unset_ctx" />
-        <WordDetect String="variable_watch" insensitive="true" attribute="Command" context="variable_watch_ctx" />
-        <WordDetect String="while" insensitive="true" attribute="Command" context="while_ctx" beginRegion="while" />
-        <WordDetect String="add_compile_definitions" insensitive="true" attribute="Command" context="add_compile_definitions_ctx" />
-        <WordDetect String="add_compile_options" insensitive="true" attribute="Command" context="add_compile_options_ctx" />
-        <WordDetect String="add_custom_command" insensitive="true" attribute="Command" context="add_custom_command_ctx" />
-        <WordDetect String="add_custom_target" insensitive="true" attribute="Command" context="add_custom_target_ctx" />
-        <WordDetect String="add_definitions" insensitive="true" attribute="Command" context="add_definitions_ctx" />
-        <WordDetect String="add_dependencies" insensitive="true" attribute="Command" context="add_dependencies_ctx" />
-        <WordDetect String="add_executable" insensitive="true" attribute="Command" context="add_executable_ctx" />
-        <WordDetect String="add_library" insensitive="true" attribute="Command" context="add_library_ctx" />
-        <WordDetect String="add_link_options" insensitive="true" attribute="Command" context="add_link_options_ctx" />
-        <WordDetect String="add_subdirectory" insensitive="true" attribute="Command" context="add_subdirectory_ctx" />
-        <WordDetect String="add_test" insensitive="true" attribute="Command" context="add_test_ctx" />
-        <WordDetect String="aux_source_directory" insensitive="true" attribute="Command" context="aux_source_directory_ctx" />
-        <WordDetect String="build_command" insensitive="true" attribute="Command" context="build_command_ctx" />
-        <WordDetect String="create_test_sourcelist" insensitive="true" attribute="Command" context="create_test_sourcelist_ctx" />
-        <WordDetect String="define_property" insensitive="true" attribute="Command" context="define_property_ctx" />
-        <WordDetect String="enable_language" insensitive="true" attribute="Command" context="enable_language_ctx" />
-        <WordDetect String="enable_testing" insensitive="true" attribute="Command" context="enable_testing_ctx" />
-        <WordDetect String="export" insensitive="true" attribute="Command" context="export_ctx" />
-        <WordDetect String="fltk_wrap_ui" insensitive="true" attribute="Command" context="fltk_wrap_ui_ctx" />
-        <WordDetect String="get_source_file_property" insensitive="true" attribute="Command" context="get_source_file_property_ctx" />
-        <WordDetect String="get_target_property" insensitive="true" attribute="Command" context="get_target_property_ctx" />
-        <WordDetect String="get_test_property" insensitive="true" attribute="Command" context="get_test_property_ctx" />
-        <WordDetect String="include_directories" insensitive="true" attribute="Command" context="include_directories_ctx" />
-        <WordDetect String="include_external_msproject" insensitive="true" attribute="Command" context="include_external_msproject_ctx" />
-        <WordDetect String="include_regular_expression" insensitive="true" attribute="Command" context="include_regular_expression_ctx" />
-        <WordDetect String="install" insensitive="true" attribute="Command" context="install_ctx" />
-        <WordDetect String="link_directories" insensitive="true" attribute="Command" context="link_directories_ctx" />
-        <WordDetect String="link_libraries" insensitive="true" attribute="Command" context="link_libraries_ctx" />
-        <WordDetect String="load_cache" insensitive="true" attribute="Command" context="load_cache_ctx" />
-        <WordDetect String="project" insensitive="true" attribute="Command" context="project_ctx" />
-        <WordDetect String="qt_wrap_cpp" insensitive="true" attribute="Command" context="qt_wrap_cpp_ctx" />
-        <WordDetect String="qt_wrap_ui" insensitive="true" attribute="Command" context="qt_wrap_ui_ctx" />
-        <WordDetect String="remove_definitions" insensitive="true" attribute="Command" context="remove_definitions_ctx" />
-        <WordDetect String="set_source_files_properties" insensitive="true" attribute="Command" context="set_source_files_properties_ctx" />
-        <WordDetect String="set_target_properties" insensitive="true" attribute="Command" context="set_target_properties_ctx" />
-        <WordDetect String="set_tests_properties" insensitive="true" attribute="Command" context="set_tests_properties_ctx" />
-        <WordDetect String="source_group" insensitive="true" attribute="Command" context="source_group_ctx" />
-        <WordDetect String="target_compile_definitions" insensitive="true" attribute="Command" context="target_compile_definitions_ctx" />
-        <WordDetect String="target_compile_features" insensitive="true" attribute="Command" context="target_compile_features_ctx" />
-        <WordDetect String="target_compile_options" insensitive="true" attribute="Command" context="target_compile_options_ctx" />
-        <WordDetect String="target_include_directories" insensitive="true" attribute="Command" context="target_include_directories_ctx" />
-        <WordDetect String="target_link_directories" insensitive="true" attribute="Command" context="target_link_directories_ctx" />
-        <WordDetect String="target_link_libraries" insensitive="true" attribute="Command" context="target_link_libraries_ctx" />
-        <WordDetect String="target_link_options" insensitive="true" attribute="Command" context="target_link_options_ctx" />
-        <WordDetect String="target_precompile_headers" insensitive="true" attribute="Command" context="target_precompile_headers_ctx" />
-        <WordDetect String="target_sources" insensitive="true" attribute="Command" context="target_sources_ctx" />
-        <WordDetect String="try_compile" insensitive="true" attribute="Command" context="try_compile_ctx" />
-        <WordDetect String="try_run" insensitive="true" attribute="Command" context="try_run_ctx" />
-        <WordDetect String="ctest_build" insensitive="true" attribute="Command" context="ctest_build_ctx" />
-        <WordDetect String="ctest_configure" insensitive="true" attribute="Command" context="ctest_configure_ctx" />
-        <WordDetect String="ctest_coverage" insensitive="true" attribute="Command" context="ctest_coverage_ctx" />
-        <WordDetect String="ctest_empty_binary_directory" insensitive="true" attribute="Command" context="ctest_empty_binary_directory_ctx" />
-        <WordDetect String="ctest_memcheck" insensitive="true" attribute="Command" context="ctest_memcheck_ctx" />
-        <WordDetect String="ctest_read_custom_files" insensitive="true" attribute="Command" context="ctest_read_custom_files_ctx" />
-        <WordDetect String="ctest_run_script" insensitive="true" attribute="Command" context="ctest_run_script_ctx" />
-        <WordDetect String="ctest_sleep" insensitive="true" attribute="Command" context="ctest_sleep_ctx" />
-        <WordDetect String="ctest_start" insensitive="true" attribute="Command" context="ctest_start_ctx" />
-        <WordDetect String="ctest_submit" insensitive="true" attribute="Command" context="ctest_submit_ctx" />
-        <WordDetect String="ctest_test" insensitive="true" attribute="Command" context="ctest_test_ctx" />
-        <WordDetect String="ctest_update" insensitive="true" attribute="Command" context="ctest_update_ctx" />
-        <WordDetect String="ctest_upload" insensitive="true" attribute="Command" context="ctest_upload_ctx" />
-        <DetectChar attribute="Comment" context="Match Comments and Docs" char="#" lookAhead="true" />
-        <DetectIdentifier attribute="User Function/Macro" context="User Function" />
-        <RegExpr attribute="@Variable Substitution" context="@VarSubst" String="@&id_re;@" lookAhead="true" />
-        <!-- Include keywords matching for language autocompleter work -->
-        <keyword attribute="Command" context="#stay" String="commands" />
-      </context>
-
-      <context attribute="Normal Text" lineEndContext="#stay" name="break_ctx">
-        <DetectChar attribute="Normal Text" context="break_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="break_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_host_system_information_ctx">
-        <DetectChar attribute="Normal Text" context="cmake_host_system_information_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_host_system_information_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="cmake_host_system_information_nargs" />
-        <keyword attribute="Special Args" context="#stay" String="cmake_host_system_information_sargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_language_ctx">
-        <DetectChar attribute="Normal Text" context="cmake_language_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_language_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="cmake_language_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_minimum_required_ctx">
-        <DetectChar attribute="Normal Text" context="cmake_minimum_required_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_minimum_required_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="cmake_minimum_required_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_parse_arguments_ctx">
-        <DetectChar attribute="Normal Text" context="cmake_parse_arguments_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_parse_arguments_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="cmake_parse_arguments_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_path_ctx">
-        <DetectChar attribute="Normal Text" context="cmake_path_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_path_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="cmake_path_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_policy_ctx">
-        <DetectChar attribute="Normal Text" context="cmake_policy_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_policy_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="cmake_policy_nargs" />
-        <keyword attribute="Special Args" context="#stay" String="cmake_policy_sargs" />
-        <IncludeRules context="User Function Args" />
-        <!-- NOTE Handle CMP<NNN> as a special arg of `cmake_policy` command -->
-        <RegExpr attribute="Special Args" context="#stay" String="\bCMP[0-9]+\b" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="configure_file_ctx">
-        <DetectChar attribute="Normal Text" context="configure_file_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="configure_file_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="configure_file_nargs" />
-        <keyword attribute="Special Args" context="#stay" String="configure_file_sargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="continue_ctx">
-        <DetectChar attribute="Normal Text" context="continue_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="continue_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="elseif_ctx">
-        <DetectChar attribute="Normal Text" context="elseif_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="elseif_ctx_op">
-        <DetectChar attribute="Normal Text" context="elseif_ctx_op_nested" char="(" />
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="elseif_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="elseif_ctx_op_nested">
-        <IncludeRules context="EndCmdPop" />
-        <keyword attribute="Named Args" context="#stay" String="elseif_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="else_ctx">
-        <DetectChar attribute="Normal Text" context="else_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="else_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="endforeach_ctx">
-        <DetectChar attribute="Normal Text" context="endforeach_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="endforeach_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="endfunction_ctx">
-        <DetectChar attribute="Normal Text" context="endfunction_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="endfunction_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="endif_ctx">
-        <DetectChar attribute="Normal Text" context="endif_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="endif_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="endmacro_ctx">
-        <DetectChar attribute="Normal Text" context="endmacro_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="endmacro_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="endwhile_ctx">
-        <DetectChar attribute="Normal Text" context="endwhile_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="endwhile_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="execute_process_ctx">
-        <DetectChar attribute="Normal Text" context="execute_process_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="execute_process_ctx_op">
-        <DetectChar attribute="Normal Text" context="execute_process_ctx_op_nested" char="(" />
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="execute_process_nargs" />
-        <keyword attribute="Special Args" context="#stay" String="execute_process_sargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="execute_process_ctx_op_nested">
-        <IncludeRules context="EndCmdPop" />
-        <keyword attribute="Named Args" context="#stay" String="execute_process_nargs" />
-        <keyword attribute="Special Args" context="#stay" String="execute_process_sargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="file_ctx">
-        <DetectChar attribute="Normal Text" context="file_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="file_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="file_nargs" />
-        <keyword attribute="Special Args" context="#stay" String="file_sargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="find_file_ctx">
-        <DetectChar attribute="Normal Text" context="find_file_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="find_file_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="find_file_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="find_library_ctx">
-        <DetectChar attribute="Normal Text" context="find_library_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="find_library_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="find_library_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="find_package_ctx">
-        <DetectChar attribute="Normal Text" context="find_package_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="find_package_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="find_package_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="find_path_ctx">
-        <DetectChar attribute="Normal Text" context="find_path_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="find_path_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="find_path_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="find_program_ctx">
-        <DetectChar attribute="Normal Text" context="find_program_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="find_program_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="find_program_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="foreach_ctx">
-        <DetectChar attribute="Normal Text" context="foreach_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="foreach_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="foreach_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="function_ctx">
-        <DetectChar attribute="Normal Text" context="function_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="function_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="get_cmake_property_ctx">
-        <DetectChar attribute="Normal Text" context="get_cmake_property_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="get_cmake_property_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Special Args" context="#stay" String="get_cmake_property_sargs" />
-        <keyword attribute="Property" context="#stay" String="global-properties" />
-        <IncludeRules context="Detect More global-properties" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="get_directory_property_ctx">
-        <DetectChar attribute="Normal Text" context="get_directory_property_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="get_directory_property_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="get_directory_property_nargs" />
-        <keyword attribute="Property" context="#stay" String="directory-properties" />
-        <IncludeRules context="Detect More directory-properties" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="get_filename_component_ctx">
-        <DetectChar attribute="Normal Text" context="get_filename_component_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="get_filename_component_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="get_filename_component_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="get_property_ctx">
-        <DetectChar attribute="Normal Text" context="get_property_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="get_property_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="get_property_nargs" />
-        <keyword attribute="Property" context="#stay" String="cache-properties" />
-        <keyword attribute="Property" context="#stay" String="directory-properties" />
-        <IncludeRules context="Detect More directory-properties" />
-        <keyword attribute="Property" context="#stay" String="global-properties" />
-        <IncludeRules context="Detect More global-properties" />
-        <keyword attribute="Property" context="#stay" String="install-properties" />
-        <keyword attribute="Property" context="#stay" String="source-properties" />
-        <IncludeRules context="Detect More source-properties" />
-        <keyword attribute="Property" context="#stay" String="target-properties" />
-        <IncludeRules context="Detect More target-properties" />
-        <keyword attribute="Property" context="#stay" String="test-properties" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="if_ctx">
-        <DetectChar attribute="Normal Text" context="if_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="if_ctx_op">
-        <DetectChar attribute="Normal Text" context="if_ctx_op_nested" char="(" />
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="if_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="if_ctx_op_nested">
-        <IncludeRules context="EndCmdPop" />
-        <keyword attribute="Named Args" context="#stay" String="if_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="include_ctx">
-        <DetectChar attribute="Normal Text" context="include_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="include_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="include_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="include_guard_ctx">
-        <DetectChar attribute="Normal Text" context="include_guard_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="include_guard_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="include_guard_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="list_ctx">
-        <DetectChar attribute="Normal Text" context="list_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="list_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="list_nargs" />
-        <keyword attribute="Special Args" context="#stay" String="list_sargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="macro_ctx">
-        <DetectChar attribute="Normal Text" context="macro_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="macro_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="mark_as_advanced_ctx">
-        <DetectChar attribute="Normal Text" context="mark_as_advanced_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="mark_as_advanced_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="mark_as_advanced_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="math_ctx">
-        <DetectChar attribute="Normal Text" context="math_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="math_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="math_nargs" />
-        <keyword attribute="Special Args" context="#stay" String="math_sargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="message_ctx">
-        <DetectChar attribute="Normal Text" context="message_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="message_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="message_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="option_ctx">
-        <DetectChar attribute="Normal Text" context="option_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="option_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="return_ctx">
-        <DetectChar attribute="Normal Text" context="return_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="return_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="separate_arguments_ctx">
-        <DetectChar attribute="Normal Text" context="separate_arguments_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="separate_arguments_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="separate_arguments_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="set_directory_properties_ctx">
-        <DetectChar attribute="Normal Text" context="set_directory_properties_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="set_directory_properties_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="set_directory_properties_nargs" />
-        <keyword attribute="Property" context="#stay" String="cache-properties" />
-        <keyword attribute="Property" context="#stay" String="directory-properties" />
-        <IncludeRules context="Detect More directory-properties" />
-        <keyword attribute="Property" context="#stay" String="global-properties" />
-        <IncludeRules context="Detect More global-properties" />
-        <keyword attribute="Property" context="#stay" String="install-properties" />
-        <keyword attribute="Property" context="#stay" String="source-properties" />
-        <IncludeRules context="Detect More source-properties" />
-        <keyword attribute="Property" context="#stay" String="target-properties" />
-        <IncludeRules context="Detect More target-properties" />
-        <keyword attribute="Property" context="#stay" String="test-properties" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="set_property_ctx">
-        <DetectChar attribute="Normal Text" context="set_property_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="set_property_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="set_property_nargs" />
-        <keyword attribute="Property" context="#stay" String="cache-properties" />
-        <keyword attribute="Property" context="#stay" String="directory-properties" />
-        <IncludeRules context="Detect More directory-properties" />
-        <keyword attribute="Property" context="#stay" String="global-properties" />
-        <IncludeRules context="Detect More global-properties" />
-        <keyword attribute="Property" context="#stay" String="install-properties" />
-        <keyword attribute="Property" context="#stay" String="source-properties" />
-        <IncludeRules context="Detect More source-properties" />
-        <keyword attribute="Property" context="#stay" String="target-properties" />
-        <IncludeRules context="Detect More target-properties" />
-        <keyword attribute="Property" context="#stay" String="test-properties" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="set_ctx">
-        <DetectChar attribute="Normal Text" context="set_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="set_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="set_nargs" />
-        <keyword attribute="Special Args" context="#stay" String="set_sargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="site_name_ctx">
-        <DetectChar attribute="Normal Text" context="site_name_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="site_name_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="string_ctx">
-        <DetectChar attribute="Normal Text" context="string_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="string_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="string_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="unset_ctx">
-        <DetectChar attribute="Normal Text" context="unset_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="unset_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="unset_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="variable_watch_ctx">
-        <DetectChar attribute="Normal Text" context="variable_watch_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="variable_watch_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="while_ctx">
-        <DetectChar attribute="Normal Text" context="while_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="while_ctx_op">
-        <DetectChar attribute="Normal Text" context="while_ctx_op_nested" char="(" />
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="while_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="while_ctx_op_nested">
-        <IncludeRules context="EndCmdPop" />
-        <keyword attribute="Named Args" context="#stay" String="while_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_compile_definitions_ctx">
-        <DetectChar attribute="Normal Text" context="add_compile_definitions_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_compile_definitions_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_compile_options_ctx">
-        <DetectChar attribute="Normal Text" context="add_compile_options_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_compile_options_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_custom_command_ctx">
-        <DetectChar attribute="Normal Text" context="add_custom_command_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_custom_command_ctx_op">
-        <DetectChar attribute="Normal Text" context="add_custom_command_ctx_op_nested" char="(" />
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="add_custom_command_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_custom_command_ctx_op_nested">
-        <IncludeRules context="EndCmdPop" />
-        <keyword attribute="Named Args" context="#stay" String="add_custom_command_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_custom_target_ctx">
-        <DetectChar attribute="Normal Text" context="add_custom_target_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_custom_target_ctx_op">
-        <DetectChar attribute="Normal Text" context="add_custom_target_ctx_op_nested" char="(" />
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="add_custom_target_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_custom_target_ctx_op_nested">
-        <IncludeRules context="EndCmdPop" />
-        <keyword attribute="Named Args" context="#stay" String="add_custom_target_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_definitions_ctx">
-        <DetectChar attribute="Normal Text" context="add_definitions_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_definitions_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_dependencies_ctx">
-        <DetectChar attribute="Normal Text" context="add_dependencies_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_dependencies_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_executable_ctx">
-        <DetectChar attribute="Normal Text" context="add_executable_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_executable_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="add_executable_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_library_ctx">
-        <DetectChar attribute="Normal Text" context="add_library_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_library_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="add_library_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_link_options_ctx">
-        <DetectChar attribute="Normal Text" context="add_link_options_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_link_options_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_subdirectory_ctx">
-        <DetectChar attribute="Normal Text" context="add_subdirectory_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_subdirectory_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="add_subdirectory_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_test_ctx">
-        <DetectChar attribute="Normal Text" context="add_test_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_test_ctx_op">
-        <DetectChar attribute="Normal Text" context="add_test_ctx_op_nested" char="(" />
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="add_test_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="add_test_ctx_op_nested">
-        <IncludeRules context="EndCmdPop" />
-        <keyword attribute="Named Args" context="#stay" String="add_test_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="aux_source_directory_ctx">
-        <DetectChar attribute="Normal Text" context="aux_source_directory_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="aux_source_directory_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="build_command_ctx">
-        <DetectChar attribute="Normal Text" context="build_command_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="build_command_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="build_command_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="create_test_sourcelist_ctx">
-        <DetectChar attribute="Normal Text" context="create_test_sourcelist_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="create_test_sourcelist_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="create_test_sourcelist_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="define_property_ctx">
-        <DetectChar attribute="Normal Text" context="define_property_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="define_property_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="define_property_nargs" />
-        <keyword attribute="Property" context="#stay" String="cache-properties" />
-        <keyword attribute="Property" context="#stay" String="directory-properties" />
-        <IncludeRules context="Detect More directory-properties" />
-        <keyword attribute="Property" context="#stay" String="global-properties" />
-        <IncludeRules context="Detect More global-properties" />
-        <keyword attribute="Property" context="#stay" String="install-properties" />
-        <keyword attribute="Property" context="#stay" String="source-properties" />
-        <IncludeRules context="Detect More source-properties" />
-        <keyword attribute="Property" context="#stay" String="target-properties" />
-        <IncludeRules context="Detect More target-properties" />
-        <keyword attribute="Property" context="#stay" String="test-properties" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="enable_language_ctx">
-        <DetectChar attribute="Normal Text" context="enable_language_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="enable_language_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="enable_language_nargs" />
-        <keyword attribute="Special Args" context="#stay" String="enable_language_sargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="enable_testing_ctx">
-        <DetectChar attribute="Normal Text" context="enable_testing_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="enable_testing_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="export_ctx">
-        <DetectChar attribute="Normal Text" context="export_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="export_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="export_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="fltk_wrap_ui_ctx">
-        <DetectChar attribute="Normal Text" context="fltk_wrap_ui_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="fltk_wrap_ui_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="get_source_file_property_ctx">
-        <DetectChar attribute="Normal Text" context="get_source_file_property_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="get_source_file_property_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="get_source_file_property_nargs" />
-        <keyword attribute="Property" context="#stay" String="source-properties" />
-        <IncludeRules context="Detect More source-properties" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="get_target_property_ctx">
-        <DetectChar attribute="Normal Text" context="get_target_property_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="get_target_property_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Property" context="#stay" String="target-properties" />
-        <IncludeRules context="Detect More target-properties" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="get_test_property_ctx">
-        <DetectChar attribute="Normal Text" context="get_test_property_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="get_test_property_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Property" context="#stay" String="test-properties" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="include_directories_ctx">
-        <DetectChar attribute="Normal Text" context="include_directories_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="include_directories_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="include_directories_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="include_external_msproject_ctx">
-        <DetectChar attribute="Normal Text" context="include_external_msproject_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="include_external_msproject_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="include_external_msproject_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="include_regular_expression_ctx">
-        <DetectChar attribute="Normal Text" context="include_regular_expression_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="include_regular_expression_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="install_ctx">
-        <DetectChar attribute="Normal Text" context="install_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="install_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="install_nargs" />
-        <keyword attribute="Special Args" context="#stay" String="install_sargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="link_directories_ctx">
-        <DetectChar attribute="Normal Text" context="link_directories_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="link_directories_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="link_directories_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="link_libraries_ctx">
-        <DetectChar attribute="Normal Text" context="link_libraries_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="link_libraries_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="link_libraries_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="load_cache_ctx">
-        <DetectChar attribute="Normal Text" context="load_cache_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="load_cache_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="load_cache_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="project_ctx">
-        <DetectChar attribute="Normal Text" context="project_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="project_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="project_nargs" />
-        <keyword attribute="Special Args" context="#stay" String="project_sargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="qt_wrap_cpp_ctx">
-        <DetectChar attribute="Normal Text" context="qt_wrap_cpp_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="qt_wrap_cpp_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="qt_wrap_ui_ctx">
-        <DetectChar attribute="Normal Text" context="qt_wrap_ui_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="qt_wrap_ui_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="remove_definitions_ctx">
-        <DetectChar attribute="Normal Text" context="remove_definitions_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="remove_definitions_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="set_source_files_properties_ctx">
-        <DetectChar attribute="Normal Text" context="set_source_files_properties_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="set_source_files_properties_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="set_source_files_properties_nargs" />
-        <keyword attribute="Property" context="#stay" String="source-properties" />
-        <IncludeRules context="Detect More source-properties" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="set_target_properties_ctx">
-        <DetectChar attribute="Normal Text" context="set_target_properties_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="set_target_properties_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="set_target_properties_nargs" />
-        <keyword attribute="Property" context="#stay" String="target-properties" />
-        <IncludeRules context="Detect More target-properties" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="set_tests_properties_ctx">
-        <DetectChar attribute="Normal Text" context="set_tests_properties_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="set_tests_properties_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="set_tests_properties_nargs" />
-        <keyword attribute="Property" context="#stay" String="test-properties" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="source_group_ctx">
-        <DetectChar attribute="Normal Text" context="source_group_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="source_group_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="source_group_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_definitions_ctx">
-        <DetectChar attribute="Normal Text" context="target_compile_definitions_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_definitions_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="target_compile_definitions_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_features_ctx">
-        <DetectChar attribute="Normal Text" context="target_compile_features_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_features_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="target_compile_features_nargs" />
-        <keyword attribute="Special Args" context="#stay" String="target_compile_features_sargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_options_ctx">
-        <DetectChar attribute="Normal Text" context="target_compile_options_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_options_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="target_compile_options_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="target_include_directories_ctx">
-        <DetectChar attribute="Normal Text" context="target_include_directories_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="target_include_directories_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="target_include_directories_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="target_link_directories_ctx">
-        <DetectChar attribute="Normal Text" context="target_link_directories_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="target_link_directories_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="target_link_directories_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="target_link_libraries_ctx">
-        <DetectChar attribute="Normal Text" context="target_link_libraries_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="target_link_libraries_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="target_link_libraries_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="target_link_options_ctx">
-        <DetectChar attribute="Normal Text" context="target_link_options_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="target_link_options_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="target_link_options_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="target_precompile_headers_ctx">
-        <DetectChar attribute="Normal Text" context="target_precompile_headers_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="target_precompile_headers_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="target_precompile_headers_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="target_sources_ctx">
-        <DetectChar attribute="Normal Text" context="target_sources_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="target_sources_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="target_sources_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="try_compile_ctx">
-        <DetectChar attribute="Normal Text" context="try_compile_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="try_compile_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="try_compile_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="try_run_ctx">
-        <DetectChar attribute="Normal Text" context="try_run_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="try_run_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="try_run_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_build_ctx">
-        <DetectChar attribute="Normal Text" context="ctest_build_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_build_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="ctest_build_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_configure_ctx">
-        <DetectChar attribute="Normal Text" context="ctest_configure_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_configure_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="ctest_configure_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_coverage_ctx">
-        <DetectChar attribute="Normal Text" context="ctest_coverage_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_coverage_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="ctest_coverage_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_empty_binary_directory_ctx">
-        <DetectChar attribute="Normal Text" context="ctest_empty_binary_directory_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_empty_binary_directory_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_memcheck_ctx">
-        <DetectChar attribute="Normal Text" context="ctest_memcheck_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_memcheck_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="ctest_memcheck_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_read_custom_files_ctx">
-        <DetectChar attribute="Normal Text" context="ctest_read_custom_files_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_read_custom_files_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_run_script_ctx">
-        <DetectChar attribute="Normal Text" context="ctest_run_script_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_run_script_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="ctest_run_script_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_sleep_ctx">
-        <DetectChar attribute="Normal Text" context="ctest_sleep_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_sleep_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_start_ctx">
-        <DetectChar attribute="Normal Text" context="ctest_start_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_start_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="ctest_start_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_submit_ctx">
-        <DetectChar attribute="Normal Text" context="ctest_submit_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_submit_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="ctest_submit_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_test_ctx">
-        <DetectChar attribute="Normal Text" context="ctest_test_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_test_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="ctest_test_nargs" />
-        <keyword attribute="Special Args" context="#stay" String="ctest_test_sargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_update_ctx">
-        <DetectChar attribute="Normal Text" context="ctest_update_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_update_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="ctest_update_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_upload_ctx">
-        <DetectChar attribute="Normal Text" context="ctest_upload_ctx_op" char="(" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_upload_ctx_op">
-        <IncludeRules context="EndCmdPop2" />
-        <keyword attribute="Named Args" context="#stay" String="ctest_upload_nargs" />
-        <IncludeRules context="User Function Args" />
-      </context>
-      <context attribute="Normal Text" lineEndContext="#stay" name="Detect More global-properties">
-        <RegExpr attribute="Property" context="#stay" String="\b(?:FeatureSummary_&id_re;_DESCRIPTION)\b" />
-      </context>
-
-      <context attribute="Normal Text" lineEndContext="#stay" name="Detect More directory-properties">
-        <RegExpr attribute="Property" context="#stay" String="\b(?:VS_GLOBAL_SECTION_PRE_&id_re;|VS_GLOBAL_SECTION_POST_&id_re;|INTERPROCEDURAL_OPTIMIZATION_&id_re;)\b" />
-      </context>
-
-      <context attribute="Normal Text" lineEndContext="#stay" name="Detect More target-properties">
-        <RegExpr attribute="Property" context="#stay" String="\b(?:XCODE_EMBED_&id_re;_REMOVE_HEADERS_ON_COPY|XCODE_EMBED_&id_re;_PATH|XCODE_EMBED_&id_re;_CODE_SIGN_ON_COPY|XCODE_EMBED_&id_re;|XCODE_ATTRIBUTE_&id_re;|VS_SOURCE_SETTINGS_&id_re;|VS_GLOBAL_&id_re;|VS_DOTNET_REFERENCE_&id_re;|VS_DOTNET_REFERENCEPROP_&id_re;_TAG_&id_re;|STATIC_LIBRARY_FLAGS_&id_re;|RUNTIME_OUTPUT_NAME_&id_re;|RUNTIME_OUTPUT_DIRECTORY_&id_re;|PDB_OUTPUT_DIRECTORY_&id_re;|PDB_NAME_&id_re;|OUTPUT_NAME_&id_re;|OSX_ARCHITECTURES_&id_re;|MAP_IMPORTED_CONFIG_&id_re;|LOCATION_&id_re;|LINK_INTERFACE_MULTIPLICITY_&id_re;|LINK_INTERFACE_LIBRARIES_&id_re;|LINK_FLAGS_&id_re;|LIBRARY_OUTPUT_NAME_&id_re;|LIBRARY_OUTPUT_DIRECTORY_&id_re;|INTERPROCEDURAL_OPTIMIZATION_&id_re;|IMPORTED_SONAME_&id_re;|IMPORTED_OBJECTS_&id_re;|IMPORTED_NO_SONAME_&id_re;|IMPORTED_LOCATION_&id_re;|IMPORTED_LINK_INTERFACE_MULTIPLICITY_&id_re;|IMPORTED_LINK_INTERFACE_LIBRARIES_&id_re;|IMPORTED_LINK_INTERFACE_LANGUAGES_&id_re;|IMPORTED_LINK_DEPENDENT_LIBRARIES_&id_re;|IMPORTED_LIBNAME_&id_re;|IMPORTED_IMPLIB_&id_re;|FRAMEWORK_MULTI_CONFIG_POSTFIX_&id_re;|EXCLUDE_FROM_DEFAULT_BUILD_&id_re;|COMPILE_PDB_OUTPUT_DIRECTORY_&id_re;|COMPILE_PDB_NAME_&id_re;|ARCHIVE_OUTPUT_NAME_&id_re;|ARCHIVE_OUTPUT_DIRECTORY_&id_re;|&id_re;_VISIBILITY_PRESET|&id_re;_POSTFIX|&id_re;_OUTPUT_NAME|&id_re;_LINKER_LAUNCHER|&id_re;_INCLUDE_WHAT_YOU_USE|&id_re;_CPPLINT|&id_re;_CPPCHECK|&id_re;_COMPILER_LAUNCHER|&id_re;_CLANG_TIDY)\b" />
-      </context>
-
-      <context attribute="Normal Text" lineEndContext="#stay" name="Detect More source-properties">
-        <RegExpr attribute="Property" context="#stay" String="\b(?:VS_CSHARP_&id_re;)\b" />
-      </context>
-
-      <context attribute="Normal Text" lineEndContext="#stay" name="EndCmdPop">
-        <DetectChar attribute="Normal Text" context="#pop" char=")" />
-      </context>
-
-      <context attribute="Normal Text" lineEndContext="#stay" name="EndCmdPop2">
-        <DetectChar attribute="Normal Text" context="#pop#pop" char=")" />
-      </context>
-
-      <context attribute="User Function/Macro" lineEndContext="#stay" name="User Function">
-        <DetectChar attribute="Normal Text" context="User Function Opened" char="(" />
-        <IncludeRules context="EndCmdPop2" />
-      </context>
-
-      <context attribute="Normal Text" lineEndContext="#stay" name="User Function Opened">
-        <IncludeRules context="EndCmdPop2" />
-        <IncludeRules context="User Function Args" />
-      </context>
-
-      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Builtin Variables">
-        <RegExpr attribute="Internal Name" context="#stay" String="\b_&id_re;\b" />
-        <keyword attribute="CMake Internal Variable" context="#stay" String="deprecated-or-internal-variables" insensitive="false" />
-        <keyword attribute="Builtin Variable" context="#stay" String="variables" insensitive="false" />
-        <IncludeRules context="Detect More Builtin Variables" />
-      </context>
-
-      <context attribute="Normal Text" lineEndContext="#stay" name="Detect More Builtin Variables">
-        <RegExpr attribute="CMake Internal Variable" context="#stay" String="\b(?:CMAKE_&id_re;_PLATFORM_ID|CMAKE_&id_re;_COMPILER_VERSION_INTERNAL|CMAKE_&id_re;_COMPILER_ARCHITECTURE_ID|CMAKE_&id_re;_COMPILER_ABI)\b" />
-        <RegExpr attribute="Builtin Variable" context="#stay" String="\b(?:SWIG_MODULE_&id_re;_EXTRA_DEPS|ExternalData_URL_ALGO_&id_re;_&id_re;|ExternalData_CUSTOM_SCRIPT_&id_re;|DOXYGEN_&id_re;|CPACK_WIX_PROPERTY_&id_re;|CPACK_WIX_&id_re;_EXTRA_FLAGS|CPACK_WIX_&id_re;_EXTENSIONS|CPACK_RPM_NO_&id_re;_INSTALL_PREFIX_RELOCATION|CPACK_RPM_&id_re;_USER_FILELIST|CPACK_RPM_&id_re;_USER_BINARY_SPECFILE|CPACK_RPM_&id_re;_PACKAGE_URL|CPACK_RPM_&id_re;_PACKAGE_SUMMARY|CPACK_RPM_&id_re;_PACKAGE_SUGGESTS|CPACK_RPM_&id_re;_PACKAGE_REQUIRES_PREUN|CPACK_RPM_&id_re;_PACKAGE_REQUIRES_PRE|CPACK_RPM_&id_re;_PACKAGE_REQUIRES_POSTUN|CPACK_RPM_&id_re;_PACKAGE_REQUIRES_POST|CPACK_RPM_&id_re;_PACKAGE_REQUIRES|CPACK_RPM_&id_re;_PACKAGE_PROVIDES|CPACK_RPM_&id_re;_PACKAGE_PREFIX|CPACK_RPM_&id_re;_PACKAGE_OBSOLETES|CPACK_RPM_&id_re;_PACKAGE_NAME|CPACK_RPM_&id_re;_PACKAGE_GROUP|CPACK_RPM_&id_re;_PACKAGE_DESCRIPTION|CPACK_RPM_&id_re;_PACKAGE_CONFLICTS|CPACK_RPM_&id_re;_PACKAGE_AUTOREQPROV|CPACK_RPM_&id_re;_PACKAGE_AUTOREQ|CPACK_RPM_&id_re;_PACKAGE_AUTOPROV|CPACK_RPM_&id_re;_PACKAGE_ARCHITECTURE|CPACK_RPM_&id_re;_FILE_NAME|CPACK_RPM_&id_re;_DEFAULT_USER|CPACK_RPM_&id_re;_DEFAULT_GROUP|CPACK_RPM_&id_re;_DEFAULT_FILE_PERMISSIONS|CPACK_RPM_&id_re;_DEFAULT_DIR_PERMISSIONS|CPACK_RPM_&id_re;_DEBUGINFO_PACKAGE|CPACK_RPM_&id_re;_DEBUGINFO_FILE_NAME|CPACK_RPM_&id_re;_BUILD_SOURCE_DIRS_PREFIX|CPACK_PREFLIGHT_&id_re;_SCRIPT|CPACK_POSTFLIGHT_&id_re;_SCRIPT|CPACK_NUGET_PACKAGE_DEPENDENCIES_&id_re;_VERSION|CPACK_NUGET_&id_re;_PACKAGE_VERSION|CPACK_NUGET_&id_re;_PACKAGE_TITLE|CPACK_NUGET_&id_re;_PACKAGE_TAGS|CPACK_NUGET_&id_re;_PACKAGE_RELEASE_NOTES|CPACK_NUGET_&id_re;_PACKAGE_OWNERS|CPACK_NUGET_&id_re;_PACKAGE_NAME|CPACK_NUGET_&id_re;_PACKAGE_LICENSE_FILE_NAME|CPACK_NUGET_&id_re;_PACKAGE_LICENSE_EXPRESSION|CPACK_NUGET_&id_re;_PACKAGE_LICENSEURL|CPACK_NUGET_&id_re;_PACKAGE_LANGUAGE|CPACK_NUGET_&id_re;_PACKAGE_ICONURL|CPACK_NUGET_&id_re;_PACKAGE_ICON|CPACK_NUGET_&id_re;_PACKAGE_HOMEPAGE_URL|CPACK_NUGET_&id_re;_PACKAGE_DESCRIPTION_SUMMARY|CPACK_NUGET_&id_re;_PACKAGE_DESCRIPTION|CPACK_NUGET_&id_re;_PACKAGE_DEPENDENCIES_&id_re;_VERSION|CPACK_NUGET_&id_re;_PACKAGE_DEPENDENCIES|CPACK_NUGET_&id_re;_PACKAGE_COPYRIGHT|CPACK_NUGET_&id_re;_PACKAGE_AUTHORS|CPACK_NSIS_&id_re;_INSTALL_DIRECTORY|CPACK_DMG_&id_re;_FILE_NAME|CPACK_DEBIAN_&id_re;_PACKAGE_SUGGESTS|CPACK_DEBIAN_&id_re;_PACKAGE_SOURCE|CPACK_DEBIAN_&id_re;_PACKAGE_SHLIBDEPS|CPACK_DEBIAN_&id_re;_PACKAGE_SECTION|CPACK_DEBIAN_&id_re;_PACKAGE_REPLACES|CPACK_DEBIAN_&id_re;_PACKAGE_RECOMMENDS|CPACK_DEBIAN_&id_re;_PACKAGE_PROVIDES|CPACK_DEBIAN_&id_re;_PACKAGE_PRIORITY|CPACK_DEBIAN_&id_re;_PACKAGE_PREDEPENDS|CPACK_DEBIAN_&id_re;_PACKAGE_NAME|CPACK_DEBIAN_&id_re;_PACKAGE_ENHANCES|CPACK_DEBIAN_&id_re;_PACKAGE_DEPENDS|CPACK_DEBIAN_&id_re;_PACKAGE_CONTROL_STRICT_PERMISSION|CPACK_DEBIAN_&id_re;_PACKAGE_CONTROL_EXTRA|CPACK_DEBIAN_&id_re;_PACKAGE_CONFLICTS|CPACK_DEBIAN_&id_re;_PACKAGE_BREAKS|CPACK_DEBIAN_&id_re;_PACKAGE_ARCHITECTURE|CPACK_DEBIAN_&id_re;_FILE_NAME|CPACK_DEBIAN_&id_re;_DESCRIPTION|CPACK_DEBIAN_&id_re;_DEBUGINFO_PACKAGE|CPACK_COMPONENT_&id_re;_REQUIRED|CPACK_COMPONENT_&id_re;_HIDDEN|CPACK_COMPONENT_&id_re;_GROUP|CPACK_COMPONENT_&id_re;_DISPLAY_NAME|CPACK_COMPONENT_&id_re;_DISABLED|CPACK_COMPONENT_&id_re;_DESCRIPTION|CPACK_COMPONENT_&id_re;_DEPENDS|CPACK_BINARY_&id_re;|CPACK_ARCHIVE_&id_re;_FILE_NAME|CPACK_&id_re;_COMPONENT_INSTALL|CMAKE_XCODE_ATTRIBUTE_&id_re;|CMAKE_USER_MAKE_RULES_OVERRIDE_&id_re;|CMAKE_STATIC_LINKER_FLAGS_&id_re;_INIT|CMAKE_STATIC_LINKER_FLAGS_&id_re;|CMAKE_SHARED_LINKER_FLAGS_&id_re;_INIT|CMAKE_SHARED_LINKER_FLAGS_&id_re;|CMAKE_RUNTIME_OUTPUT_DIRECTORY_&id_re;|CMAKE_PROJECT_&id_re;_INCLUDE|CMAKE_POLICY_WARNING_CMP[0-9]{4}|CMAKE_POLICY_DEFAULT_CMP[0-9]{4}|CMAKE_PDB_OUTPUT_DIRECTORY_&id_re;|CMAKE_MODULE_LINKER_FLAGS_&id_re;_INIT|CMAKE_MODULE_LINKER_FLAGS_&id_re;|CMAKE_MATCH_[0-9]+|CMAKE_MAP_IMPORTED_CONFIG_&id_re;|CMAKE_LIBRARY_OUTPUT_DIRECTORY_&id_re;|CMAKE_INTERPROCEDURAL_OPTIMIZATION_&id_re;|CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_&id_re;|CMAKE_EXE_LINKER_FLAGS_&id_re;_INIT|CMAKE_EXE_LINKER_FLAGS_&id_re;|CMAKE_DISABLE_FIND_PACKAGE_&id_re;|CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_&id_re;|CMAKE_ARGV[0-9]+|CMAKE_ARCHIVE_OUTPUT_DIRECTORY_&id_re;|CMAKE_&id_re;_VISIBILITY_PRESET|CMAKE_&id_re;_STANDARD_LIBRARIES|CMAKE_&id_re;_STANDARD_INCLUDE_DIRECTORIES|CMAKE_&id_re;_SOURCE_FILE_EXTENSIONS|CMAKE_&id_re;_SIZEOF_DATA_PTR|CMAKE_&id_re;_SIMULATE_VERSION|CMAKE_&id_re;_SIMULATE_ID|CMAKE_&id_re;_POSTFIX|CMAKE_&id_re;_OUTPUT_EXTENSION|CMAKE_&id_re;_LINK_LIBRARY_FLAG|CMAKE_&id_re;_LINK_LIBRARY_FILE_FLAG|CMAKE_&id_re;_LINK_EXECUTABLE|CMAKE_&id_re;_LINKER_WRAPPER_FLAG_SEP|CMAKE_&id_re;_LINKER_WRAPPER_FLAG|CMAKE_&id_re;_LINKER_PREFERENCE_PROPAGATES|CMAKE_&id_re;_LINKER_PREFERENCE|CMAKE_&id_re;_LINKER_LAUNCHER|CMAKE_&id_re;_LIBRARY_ARCHITECTURE|CMAKE_&id_re;_INCLUDE_WHAT_YOU_USE|CMAKE_&id_re;_IMPLICIT_LINK_LIBRARIES|CMAKE_&id_re;_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES|CMAKE_&id_re;_IMPLICIT_LINK_DIRECTORIES|CMAKE_&id_re;_IMPLICIT_INCLUDE_DIRECTORIES|CMAKE_&id_re;_IGNORE_EXTENSIONS|CMAKE_&id_re;_GHS_KERNEL_FLAGS_RELWITHDEBINFO|CMAKE_&id_re;_GHS_KERNEL_FLAGS_RELEASE|CMAKE_&id_re;_GHS_KERNEL_FLAGS_MINSIZEREL|CMAKE_&id_re;_GHS_KERNEL_FLAGS_DEBUG|CMAKE_&id_re;_FLAGS_RELWITHDEBINFO_INIT|CMAKE_&id_re;_FLAGS_RELWITHDEBINFO|CMAKE_&id_re;_FLAGS_RELEASE_INIT|CMAKE_&id_re;_FLAGS_RELEASE|CMAKE_&id_re;_FLAGS_MINSIZEREL_INIT|CMAKE_&id_re;_FLAGS_MINSIZEREL|CMAKE_&id_re;_FLAGS_INIT|CMAKE_&id_re;_FLAGS_DEBUG_INIT|CMAKE_&id_re;_FLAGS_DEBUG|CMAKE_&id_re;_FLAGS|CMAKE_&id_re;_CREATE_STATIC_LIBRARY|CMAKE_&id_re;_CREATE_SHARED_MODULE|CMAKE_&id_re;_CREATE_SHARED_LIBRARY|CMAKE_&id_re;_CPPLINT|CMAKE_&id_re;_CPPCHECK|CMAKE_&id_re;_COMPILE_OBJECT|CMAKE_&id_re;_COMPILER_VERSION|CMAKE_&id_re;_COMPILER_TARGET|CMAKE_&id_re;_COMPILER_RANLIB|CMAKE_&id_re;_COMPILER_LOADED|CMAKE_&id_re;_COMPILER_LAUNCHER|CMAKE_&id_re;_COMPILER_ID|CMAKE_&id_re;_COMPILER_EXTERNAL_TOOLCHAIN|CMAKE_&id_re;_COMPILER_AR|CMAKE_&id_re;_COMPILER|CMAKE_&id_re;_CLANG_TIDY|CMAKE_&id_re;_BYTE_ORDER|CMAKE_&id_re;_ARCHIVE_FINISH|CMAKE_&id_re;_ARCHIVE_CREATE|CMAKE_&id_re;_ARCHIVE_APPEND|CMAKE_&id_re;_ANDROID_TOOLCHAIN_SUFFIX|CMAKE_&id_re;_ANDROID_TOOLCHAIN_PREFIX|CMAKE_&id_re;_ANDROID_TOOLCHAIN_MACHINE|ARGV[0-9]+|&id_re;__TRYRUN_OUTPUT|&id_re;_VERSION_TWEAK|&id_re;_VERSION_STRING|&id_re;_VERSION_PATCH|&id_re;_VERSION_MINOR|&id_re;_VERSION_MAJOR|&id_re;_VERSION_COUNT|&id_re;_VERSION|&id_re;_UNPARSED_ARGUMENTS|&id_re;_SOURCE_DIR|&id_re;_ROOT|&id_re;_MODULE_NAME|&id_re;_LIBRARY_DIRS|&id_re;_LIBRARIES|&id_re;_KEYWORDS_MISSING_VALUES|&id_re;_IS_TOP_LEVEL|&id_re;_INCLUDE_DIRS|&id_re;_HOMEPAGE_URL|&id_re;_FOUND|&id_re;_FIND_VERSION_RANGE_MIN|&id_re;_FIND_VERSION_RANGE_MAX|&id_re;_FIND_VERSION_RANGE|&id_re;_FIND_VERSION_MIN_TWEAK|&id_re;_FIND_VERSION_MIN_PATCH|&id_re;_FIND_VERSION_MIN_MINOR|&id_re;_FIND_VERSION_MIN_MAJOR|&id_re;_FIND_VERSION_MIN_COUNT|&id_re;_FIND_VERSION_MIN|&id_re;_FIND_VERSION_MAX_TWEAK|&id_re;_FIND_VERSION_MAX_PATCH|&id_re;_FIND_VERSION_MAX_MINOR|&id_re;_FIND_VERSION_MAX_MAJOR|&id_re;_FIND_VERSION_MAX_COUNT|&id_re;_FIND_VERSION_MAX|&id_re;_FIND_VERSION_EXACT|&id_re;_FIND_VERSION_COUNT|&id_re;_FIND_VERSION_COMPLETE|&id_re;_FIND_REQUIRED_&id_re;|&id_re;_FIND_REQUIRED|&id_re;_FIND_QUIETLY|&id_re;_FIND_COMPONENTS|&id_re;_DESCRIPTION|&id_re;_CONSIDERED_VERSIONS|&id_re;_CONSIDERED_CONFIGS|&id_re;_CONFIG|&id_re;_BINARY_DIR)\b" />
-      </context>
-
-      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Variable Substitutions">
-        <RegExpr attribute="Cache Variable Substitution" context="#stay" String="\$CACHE\{\s*[\w-]+\s*\}" />
-        <RegExpr attribute="Environment Variable Substitution" context="EnvVarSubst" String="\$?ENV\{" />
-        <Detect2Chars attribute="Variable Substitution" context="VarSubst" char="$" char1="{" />
-        <RegExpr attribute="@Variable Substitution" context="@VarSubst" String="@&id_re;@" lookAhead="true" />
-      </context>
-
-      <context attribute="Environment Variable Substitution" lineEndContext="#pop" name="EnvVarSubst">
-        <keyword attribute="Standard Environment Variable" context="#stay" String="environment-variables" insensitive="false" />
-        <RegExpr attribute="Standard Environment Variable" context="#stay" String="\b(?:CMAKE_&id_re;_COMPILER_LAUNCHER|ASM&id_re;FLAGS|ASM&id_re;|&id_re;_ROOT|&id_re;_DIR)\b" />
-        <DetectIdentifier />
-        <IncludeRules context="Detect Variable Substitutions" />
-        <DetectChar attribute="Environment Variable Substitution" context="#pop" char="}" />
-      </context>
-
-      <context attribute="Variable Substitution" lineEndContext="#pop" name="VarSubst">
-        <IncludeRules context="Detect Builtin Variables" />
-        <DetectIdentifier />
-        <DetectChar attribute="Variable Substitution" context="#pop" char="}" />
-        <IncludeRules context="Detect Variable Substitutions" />
-      </context>
-
-      <context attribute="@Variable Substitution" lineEndContext="#pop" name="@VarSubst">
-        <IncludeRules context="Detect Builtin Variables" />
-        <DetectChar attribute="@Variable Substitution" context="VarSubst@" char="@" />
-      </context>
-
-      <context attribute="@Variable Substitution" lineEndContext="#pop#pop" name="VarSubst@">
-        <IncludeRules context="Detect Builtin Variables" />
-        <DetectIdentifier />
-        <DetectChar attribute="@Variable Substitution" context="#pop#pop" char="@" />
-      </context>
-
-      <context attribute="Normal Text" lineEndContext="#stay" name="User Function Args">
-        <Detect2Chars attribute="Normal Text" context="#stay" char="\" char1="(" />
-        <Detect2Chars attribute="Normal Text" context="#stay" char="\" char1=")" />
-        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="&quot;" />
-        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="$" />
-        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="n" />
-        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="\" />
-        <DetectChar attribute="Strings" context="String" char="&quot;" />
-        <RegExpr attribute="Strings" context="Bracketed String" String="\[(=*)\[" beginRegion="BracketedString" />
-        <DetectChar attribute="Comment" context="Match Comments" char="#" lookAhead="true" />
-        <IncludeRules context="Detect Builtin Variables" />
-        <IncludeRules context="Detect Variable Substitutions" />
-        <IncludeRules context="Detect Special Values" />
-        <IncludeRules context="Detect Aliased Targets" />
-        <IncludeRules context="Detect Generator Expressions" />
-      </context>
-
-      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Special Values">
-        <RegExpr attribute="Version Arg" context="#stay" String="\b[0-9]+(.[0-9]+)+\b" />
-        <!-- Source/cmStringAlgorithms.cxx: bool cmIsOff(cm::string_view val) -->
-        <WordDetect attribute="True Special Arg" context="#stay" String="TRUE" insensitive="true" />
-        <WordDetect attribute="True Special Arg" context="#stay" String="ON" insensitive="true" />
-        <WordDetect attribute="True Special Arg" context="#stay" String="YES" insensitive="true" />
-        <WordDetect attribute="True Special Arg" context="#stay" String="Y" insensitive="true" />
-        <WordDetect attribute="True Special Arg" context="#stay" String="1" />
-        <!-- Source/cmStringAlgorithms.cxx: bool cmIsOff(cm::string_view val) -->
-        <WordDetect attribute="False Special Arg" context="#stay" String="FALSE" insensitive="true" />
-        <WordDetect attribute="False Special Arg" context="#stay" String="OFF" insensitive="true" />
-        <WordDetect attribute="False Special Arg" context="#stay" String="NO" insensitive="true" />
-        <WordDetect attribute="False Special Arg" context="#stay" String="N" insensitive="true" />
-        <WordDetect attribute="False Special Arg" context="#stay" String="IGNORE" insensitive="true" />
-        <WordDetect attribute="False Special Arg" context="#stay" String="0" />
-        <RegExpr attribute="False Special Arg" context="#stay" String="\b(?:&id_re;-)?NOTFOUND\b" />
-        <RegExpr attribute="Special Args" context="#stay" String="\bCMP[0-9][0-9][0-9]\b" />
-      </context>
-
-      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Aliased Targets">
-        <RegExpr attribute="Aliased Targets" context="#stay" String="\b&id_re;::&id_re;(?:\:\:&id_re;)*\b" />
-      </context>
-
-      <context attribute="Comment" lineEndContext="#pop" name="Match Comments">
-        <RegExpr attribute="Comment" context="#pop!Bracketed Comment" String="#\[(=*)\[" beginRegion="BracketedComment" />
-        <DetectChar attribute="Comment" context="#pop!Comment" char="#" />
-      </context>
-
-      <context attribute="Comment" lineEndContext="#pop" name="Match Comments and Docs">
-        <RegExpr attribute="Region Marker" context="#pop!RST Documentation" String="^#\[(=*)\[\.rst:" column="0" beginRegion="RSTDocumentation" />
-        <IncludeRules context="Match Comments" />
-      </context>
-
-      <context attribute="Comment" lineEndContext="#pop" name="Comment">
-        <LineContinue attribute="Comment" context="#pop" />
-        <DetectSpaces />
-        <IncludeRules context="##Comments" />
-      </context>
-
-      <context attribute="Comment" lineEndContext="#stay" name="RST Documentation" dynamic="true">
-        <RegExpr attribute="Region Marker" context="#pop" String="^#?\]%1\]" dynamic="true" column="0" endRegion="RSTDocumentation" />
-        <IncludeRules context="##reStructuredText" />
-      </context>
-
-      <context attribute="Comment" lineEndContext="#stay" name="Bracketed Comment" dynamic="true">
-        <LineContinue attribute="Comment" context="#stay" />
-        <DetectSpaces />
-        <StringDetect attribute="Comment" context="#pop" String="]%1]" dynamic="true" endRegion="BracketedComment" />
-        <IncludeRules context="##Comments" />
-      </context>
-
-      <context attribute="Strings" lineEndContext="#stay" name="String">
-        <RegExpr attribute="Strings" context="#pop" String="&quot;(?=[ );]|$)" />
-        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="&quot;" />
-        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="$" />
-        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="n" />
-        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="r" />
-        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="t" />
-        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="\" />
-        <IncludeRules context="Detect Variable Substitutions" />
-        <IncludeRules context="Detect Generator Expressions" />
-      </context>
-
-      <context attribute="Strings" lineEndContext="#stay" name="Bracketed String" dynamic="true">
-        <StringDetect attribute="Strings" context="#pop" String="]%1]" dynamic="true" endRegion="BracketedString" />
-      </context>
-
-      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Generator Expressions">
-        <Detect2Chars attribute="Generator Expression" context="Generator Expression" char="$" char1="&lt;" />
-      </context>
-
-      <context attribute="Generator Expression" lineEndContext="#stay" name="Generator Expression">
-        <IncludeRules context="Detect Generator Expressions" />
-        <DetectChar attribute="Comment" context="Comment" char="#" />
-        <DetectChar attribute="Generator Expression" context="#pop" char="&gt;" />
-        <keyword attribute="Generator Expression Keyword" context="#stay" String="generator-expressions" insensitive="false" />
-        <IncludeRules context="Detect Aliased Targets" />
-        <IncludeRules context="Detect Variable Substitutions" />
-      </context>
-
-    </contexts>
-
-    <itemDatas>
-      <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />
-      <itemData name="Command" defStyleNum="dsKeyword" spellChecking="false" />
-      <itemData name="User Function/Macro"  defStyleNum="dsFunction" spellChecking="false" />
-      <itemData name="Property" defStyleNum="dsOthers" spellChecking="false" />
-      <itemData name="Aliased Targets" defStyleNum="dsBaseN" spellChecking="false" />
-      <itemData name="Named Args" defStyleNum="dsOthers" spellChecking="false" />
-      <itemData name="Special Args" defStyleNum="dsOthers" spellChecking="false" />
-      <itemData name="True Special Arg" defStyleNum="dsOthers" color="#30a030" selColor="#30a030" spellChecking="false" />
-      <itemData name="False Special Arg" defStyleNum="dsOthers" color="#e05050" selColor="#e05050" spellChecking="false" />
-      <itemData name="Version Arg" defStyleNum="dsDataType" spellChecking="false" />
-      <itemData name="Strings" defStyleNum="dsString" spellChecking="true" />
-      <itemData name="Escapes" defStyleNum="dsSpecialChar" spellChecking="false" />
-      <itemData name="Builtin Variable" defStyleNum="dsDecVal" color="#c09050" selColor="#c09050" spellChecking="false" />
-      <itemData name="CMake Internal Variable" defStyleNum="dsVariable" spellChecking="false" />
-      <itemData name="Internal Name" defStyleNum="dsVariable" spellChecking="false" />
-      <itemData name="Variable Substitution" defStyleNum="dsDecVal" spellChecking="false" />
-      <itemData name="@Variable Substitution" defStyleNum="dsBaseN" spellChecking="false" />
-      <itemData name="Cache Variable Substitution" defStyleNum="dsFloat" spellChecking="false" />
-      <itemData name="Environment Variable Substitution" defStyleNum="dsFloat" spellChecking="false" />
-      <itemData name="Standard Environment Variable" defStyleNum="dsFloat" spellChecking="false" />
-      <itemData name="Generator Expression Keyword" defStyleNum="dsKeyword" color="#b84040" selColor="#b84040" spellChecking="false" />
-      <itemData name="Generator Expression" defStyleNum="dsOthers" color="#b86050" selColor="#b86050" spellChecking="false" />
-      <itemData name="Comment" defStyleNum="dsComment" spellChecking="true" />
-      <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false" />
-    </itemDatas>
-
-  </highlighting>
-
-  <general>
-    <comments>
-      <comment name="singleLine" start="#" position="afterwhitespace" />
-      <comment name="multiLine" start="#[[" end="]]" region="BracketedComment"/>
-    </comments>
-    <keywords casesensitive="1" weakDeliminator="." />
-  </general>
-</language>
-
-<!-- kate: replace-tabs on; indent-width 2; tab-width 2; -->
-
+<!DOCTYPE language
+[
+  <!-- NOTE See https://cmake.org/cmake/help/latest/manual/cmake-language.7.html#variable-references -->
+  <!ENTITY var_ref_re "[/\.\+\-_0-9A-Za-z]+">
+  <!-- NOTE See `cmGeneratorExpression::IsValidTargetName` -->
+  <!ENTITY tgt_name_re "[A-Za-z0-9_\.\+\-]+">
+]>
+<!--
+    This file is part of KDE's kate project.
+
+    SPDX-FileCopyrightText: 2004 Alexander Neundorf <neundorf@kde.org>
+    SPDX-FileCopyrightText: 2005 Dominik Haumann <dhdev@gmx.de>
+    SPDX-FileCopyrightText: 2007, 2008, 2013, 2014 Matthew Woehlke <mw_triad@users.sourceforge.net>
+    SPDX-FileCopyrightText: 2013-2015, 2017-2023 Alex Turbov <i.zaufi@gmail.com>
+
+    SPDX-License-Identifier: LGPL-2.0-or-later
+ -->
+
+<!-- ***** THIS FILE WAS GENERATED BY A SCRIPT - DO NOT EDIT *****
+  cd data/generators
+  # increase version of cmake.xml.tpl then
+  ./generate-cmake-syntax.py cmake.yaml > ../syntax/cmake.xml
+-->
+
+<language
+    name="CMake"
+    version="50"
+    kateversion="5.62"
+    section="Other"
+    extensions="CMakeLists.txt;*.cmake;*.cmake.in"
+    style="CMake"
+    mimetype="text/x-cmake"
+    author="Alex Turbov (i.zaufi@gmail.com)"
+    license="LGPLv2+"
+  >
+  <highlighting>
+
+    <list name="commands">
+        <item>block</item>
+        <item>break</item>
+        <item>cmake_host_system_information</item>
+        <item>cmake_language</item>
+        <item>cmake_minimum_required</item>
+        <item>cmake_parse_arguments</item>
+        <item>cmake_path</item>
+        <item>cmake_policy</item>
+        <item>configure_file</item>
+        <item>continue</item>
+        <item>elseif</item>
+        <item>else</item>
+        <item>endblock</item>
+        <item>endforeach</item>
+        <item>endfunction</item>
+        <item>endif</item>
+        <item>endmacro</item>
+        <item>endwhile</item>
+        <item>execute_process</item>
+        <item>file</item>
+        <item>find_file</item>
+        <item>find_library</item>
+        <item>find_package</item>
+        <item>find_path</item>
+        <item>find_program</item>
+        <item>foreach</item>
+        <item>function</item>
+        <item>get_cmake_property</item>
+        <item>get_directory_property</item>
+        <item>get_filename_component</item>
+        <item>get_property</item>
+        <item>if</item>
+        <item>include</item>
+        <item>include_guard</item>
+        <item>list</item>
+        <item>macro</item>
+        <item>mark_as_advanced</item>
+        <item>math</item>
+        <item>message</item>
+        <item>option</item>
+        <item>return</item>
+        <item>separate_arguments</item>
+        <item>set_directory_properties</item>
+        <item>set_property</item>
+        <item>set</item>
+        <item>site_name</item>
+        <item>string</item>
+        <item>unset</item>
+        <item>variable_watch</item>
+        <item>while</item>
+        <item>add_compile_definitions</item>
+        <item>add_compile_options</item>
+        <item>add_custom_command</item>
+        <item>add_custom_target</item>
+        <item>add_definitions</item>
+        <item>add_dependencies</item>
+        <item>add_executable</item>
+        <item>add_library</item>
+        <item>add_link_options</item>
+        <item>add_subdirectory</item>
+        <item>add_test</item>
+        <item>aux_source_directory</item>
+        <item>build_command</item>
+        <item>cmake_file_api</item>
+        <item>create_test_sourcelist</item>
+        <item>define_property</item>
+        <item>enable_language</item>
+        <item>enable_testing</item>
+        <item>export</item>
+        <item>fltk_wrap_ui</item>
+        <item>get_source_file_property</item>
+        <item>get_target_property</item>
+        <item>get_test_property</item>
+        <item>include_directories</item>
+        <item>include_external_msproject</item>
+        <item>include_regular_expression</item>
+        <item>install</item>
+        <item>link_directories</item>
+        <item>link_libraries</item>
+        <item>load_cache</item>
+        <item>project</item>
+        <item>qt_wrap_cpp</item>
+        <item>qt_wrap_ui</item>
+        <item>remove_definitions</item>
+        <item>set_source_files_properties</item>
+        <item>set_target_properties</item>
+        <item>set_tests_properties</item>
+        <item>source_group</item>
+        <item>target_compile_definitions</item>
+        <item>target_compile_features</item>
+        <item>target_compile_options</item>
+        <item>target_include_directories</item>
+        <item>target_link_directories</item>
+        <item>target_link_libraries</item>
+        <item>target_link_options</item>
+        <item>target_precompile_headers</item>
+        <item>target_sources</item>
+        <item>try_compile</item>
+        <item>try_run</item>
+        <item>ctest_build</item>
+        <item>ctest_configure</item>
+        <item>ctest_coverage</item>
+        <item>ctest_empty_binary_directory</item>
+        <item>ctest_memcheck</item>
+        <item>ctest_read_custom_files</item>
+        <item>ctest_run_script</item>
+        <item>ctest_sleep</item>
+        <item>ctest_start</item>
+        <item>ctest_submit</item>
+        <item>ctest_test</item>
+        <item>ctest_update</item>
+        <item>ctest_upload</item>
+    </list>
+    <list name="block_nargs">
+      <item>PROPAGATE</item>
+      <item>SCOPE_FOR</item>
+    </list>
+    <list name="block_sargs">
+      <item>POLICIES</item>
+      <item>VARIABLES</item>
+    </list>
+    <list name="cmake_host_system_information_nargs">
+      <item>ERROR_VARIABLE</item>
+      <item>QUERY</item>
+      <item>RESULT</item>
+      <item>SEPARATOR</item>
+      <item>SUBKEYS</item>
+      <item>VALUE</item>
+      <item>VALUE_NAMES</item>
+      <item>VIEW</item>
+      <item>WINDOWS_REGISTRY</item>
+    </list>
+    <list name="cmake_host_system_information_sargs">
+      <item>32</item>
+      <item>32_64</item>
+      <item>64</item>
+      <item>64_32</item>
+      <item>AVAILABLE_PHYSICAL_MEMORY</item>
+      <item>AVAILABLE_VIRTUAL_MEMORY</item>
+      <item>BOTH</item>
+      <item>DISTRIB_INFO</item>
+      <item>FQDN</item>
+      <item>HAS_AMD_3DNOW</item>
+      <item>HAS_AMD_3DNOW_PLUS</item>
+      <item>HAS_FPU</item>
+      <item>HAS_IA64</item>
+      <item>HAS_MMX</item>
+      <item>HAS_MMX_PLUS</item>
+      <item>HAS_SERIAL_NUMBER</item>
+      <item>HAS_SSE</item>
+      <item>HAS_SSE2</item>
+      <item>HAS_SSE_FP</item>
+      <item>HAS_SSE_MMX</item>
+      <item>HOST</item>
+      <item>HOSTNAME</item>
+      <item>IS_64BIT</item>
+      <item>MSYSTEM_PREFIX</item>
+      <item>NUMBER_OF_LOGICAL_CORES</item>
+      <item>NUMBER_OF_PHYSICAL_CORES</item>
+      <item>OS_NAME</item>
+      <item>OS_PLATFORM</item>
+      <item>OS_RELEASE</item>
+      <item>OS_VERSION</item>
+      <item>PROCESSOR_DESCRIPTION</item>
+      <item>PROCESSOR_NAME</item>
+      <item>PROCESSOR_SERIAL_NUMBER</item>
+      <item>TARGET</item>
+      <item>TOTAL_PHYSICAL_MEMORY</item>
+      <item>TOTAL_VIRTUAL_MEMORY</item>
+    </list>
+    <list name="cmake_language_nargs">
+      <item>CALL</item>
+      <item>CANCEL_CALL</item>
+      <item>CODE</item>
+      <item>DEFER</item>
+      <item>DIRECTORY</item>
+      <item>EVAL</item>
+      <item>GET_CALL</item>
+      <item>GET_CALL_IDS</item>
+      <item>GET_MESSAGE_LOG_LEVEL</item>
+      <item>ID</item>
+      <item>ID_VAR</item>
+      <item>SET_DEPENDENCY_PROVIDER</item>
+      <item>SUPPORTED_METHODS</item>
+    </list>
+    <list name="cmake_language_sargs">
+      <item>FETCHCONTENT_MAKEAVAILABLE_SERIAL</item>
+      <item>FIND_PACKAGE</item>
+    </list>
+    <list name="cmake_minimum_required_nargs">
+      <item>FATAL_ERROR</item>
+      <item>VERSION</item>
+    </list>
+    <list name="cmake_parse_arguments_nargs">
+      <item>PARSE_ARGV</item>
+    </list>
+    <list name="cmake_path_nargs">
+      <item>ABSOLUTE_PATH</item>
+      <item>APPEND</item>
+      <item>APPEND_STRING</item>
+      <item>BASE_DIRECTORY</item>
+      <item>COMPARE</item>
+      <item>CONVERT</item>
+      <item>EQUAL</item>
+      <item>EXTENSION</item>
+      <item>FILENAME</item>
+      <item>GET</item>
+      <item>HASH</item>
+      <item>HAS_EXTENSION</item>
+      <item>HAS_FILENAME</item>
+      <item>HAS_PARENT_PATH</item>
+      <item>HAS_RELATIVE_PART</item>
+      <item>HAS_ROOT_DIRECTORY</item>
+      <item>HAS_ROOT_NAME</item>
+      <item>HAS_ROOT_PATH</item>
+      <item>HAS_STEM</item>
+      <item>IS_ABSOLUTE</item>
+      <item>IS_PREFIX</item>
+      <item>IS_RELATIVE</item>
+      <item>LAST_ONLY</item>
+      <item>NATIVE_PATH</item>
+      <item>NORMALIZE</item>
+      <item>NORMAL_PATH</item>
+      <item>NOT_EQUAL</item>
+      <item>OUTPUT_VARIABLE</item>
+      <item>PARENT_PATH</item>
+      <item>RELATIVE_PART</item>
+      <item>RELATIVE_PATH</item>
+      <item>REMOVE_EXTENSION</item>
+      <item>REMOVE_FILENAME</item>
+      <item>REPLACE_EXTENSION</item>
+      <item>REPLACE_FILENAME</item>
+      <item>ROOT_DIRECTORY</item>
+      <item>ROOT_NAME</item>
+      <item>ROOT_PATH</item>
+      <item>SET</item>
+      <item>STEM</item>
+      <item>TO_CMAKE_PATH_LIST</item>
+      <item>TO_NATIVE_PATH_LIST</item>
+    </list>
+    <list name="cmake_policy_nargs">
+      <item>GET</item>
+      <item>POP</item>
+      <item>PUSH</item>
+      <item>SET</item>
+      <item>VERSION</item>
+    </list>
+    <list name="cmake_policy_sargs">
+      <item>NEW</item>
+      <item>OLD</item>
+    </list>
+    <list name="configure_file_nargs">
+      <item>@ONLY</item>
+      <item>COPYONLY</item>
+      <item>ESCAPE_QUOTES</item>
+      <item>FILE_PERMISSIONS</item>
+      <item>NEWLINE_STYLE</item>
+      <item>NO_SOURCE_PERMISSIONS</item>
+      <item>USE_SOURCE_PERMISSIONS</item>
+    </list>
+    <list name="configure_file_sargs">
+      <item>CRLF</item>
+      <item>DOS</item>
+      <item>LF</item>
+      <item>UNIX</item>
+      <item>WIN32</item>
+    </list>
+    <list name="elseif_nargs">
+      <item>AND</item>
+      <item>COMMAND</item>
+      <item>DEFINED</item>
+      <item>EQUAL</item>
+      <item>EXISTS</item>
+      <item>GREATER</item>
+      <item>GREATER_EQUAL</item>
+      <item>IN_LIST</item>
+      <item>IS_ABSOLUTE</item>
+      <item>IS_DIRECTORY</item>
+      <item>IS_NEWER_THAN</item>
+      <item>IS_SYMLINK</item>
+      <item>LESS</item>
+      <item>LESS_EQUAL</item>
+      <item>MATCHES</item>
+      <item>NOT</item>
+      <item>OR</item>
+      <item>PATH_EQUAL</item>
+      <item>POLICY</item>
+      <item>STREQUAL</item>
+      <item>STRGREATER</item>
+      <item>STRGREATER_EQUAL</item>
+      <item>STRLESS</item>
+      <item>STRLESS_EQUAL</item>
+      <item>TARGET</item>
+      <item>TEST</item>
+      <item>VERSION_EQUAL</item>
+      <item>VERSION_GREATER</item>
+      <item>VERSION_GREATER_EQUAL</item>
+      <item>VERSION_LESS</item>
+      <item>VERSION_LESS_EQUAL</item>
+    </list>
+    <list name="execute_process_nargs">
+      <item>COMMAND</item>
+      <item>COMMAND_ECHO</item>
+      <item>COMMAND_ERROR_IS_FATAL</item>
+      <item>ECHO_ERROR_VARIABLE</item>
+      <item>ECHO_OUTPUT_VARIABLE</item>
+      <item>ENCODING</item>
+      <item>ERROR_FILE</item>
+      <item>ERROR_QUIET</item>
+      <item>ERROR_STRIP_TRAILING_WHITESPACE</item>
+      <item>ERROR_VARIABLE</item>
+      <item>INPUT_FILE</item>
+      <item>OUTPUT_FILE</item>
+      <item>OUTPUT_QUIET</item>
+      <item>OUTPUT_STRIP_TRAILING_WHITESPACE</item>
+      <item>OUTPUT_VARIABLE</item>
+      <item>RESULTS_VARIABLE</item>
+      <item>RESULT_VARIABLE</item>
+      <item>TIMEOUT</item>
+      <item>WORKING_DIRECTORY</item>
+    </list>
+    <list name="execute_process_sargs">
+      <item>ANSI</item>
+      <item>ANY</item>
+      <item>AUTO</item>
+      <item>LAST</item>
+      <item>NONE</item>
+      <item>OEM</item>
+      <item>STDERR</item>
+      <item>STDOUT</item>
+      <item>UTF8</item>
+    </list>
+    <list name="file_nargs">
+      <item>@ONLY</item>
+      <item>APPEND</item>
+      <item>ARCHIVE_CREATE</item>
+      <item>ARCHIVE_EXTRACT</item>
+      <item>BASE_DIRECTORY</item>
+      <item>BUNDLE_EXECUTABLE</item>
+      <item>CHMOD</item>
+      <item>CHMOD_RECURSE</item>
+      <item>COMPRESSION</item>
+      <item>COMPRESSION_LEVEL</item>
+      <item>CONDITION</item>
+      <item>CONFIGURE</item>
+      <item>CONFIGURE_DEPENDS</item>
+      <item>CONTENT</item>
+      <item>COPY</item>
+      <item>COPY_FILE</item>
+      <item>DESTINATION</item>
+      <item>DIRECTORIES</item>
+      <item>DIRECTORY</item>
+      <item>DIRECTORY_PERMISSIONS</item>
+      <item>DOWNLOAD</item>
+      <item>ENCODING</item>
+      <item>ESCAPE_QUOTES</item>
+      <item>EXCLUDE</item>
+      <item>EXECUTABLES</item>
+      <item>EXPAND_TILDE</item>
+      <item>EXPECTED_HASH</item>
+      <item>EXPECTED_MD5</item>
+      <item>FILES</item>
+      <item>FILES_MATCHING</item>
+      <item>FILE_PERMISSIONS</item>
+      <item>FOLLOW_SYMLINKS</item>
+      <item>FOLLOW_SYMLINK_CHAIN</item>
+      <item>FORMAT</item>
+      <item>GENERATE</item>
+      <item>GET_RUNTIME_DEPENDENCIES</item>
+      <item>GLOB</item>
+      <item>GLOB_RECURSE</item>
+      <item>GUARD</item>
+      <item>HEX</item>
+      <item>HTTPHEADER</item>
+      <item>INACTIVITY_TIMEOUT</item>
+      <item>INPUT</item>
+      <item>INSTALL</item>
+      <item>LENGTH_MAXIMUM</item>
+      <item>LENGTH_MINIMUM</item>
+      <item>LIBRARIES</item>
+      <item>LIMIT</item>
+      <item>LIMIT_COUNT</item>
+      <item>LIMIT_INPUT</item>
+      <item>LIMIT_OUTPUT</item>
+      <item>LIST_DIRECTORIES</item>
+      <item>LIST_ONLY</item>
+      <item>LOCK</item>
+      <item>LOG</item>
+      <item>MAKE_DIRECTORY</item>
+      <item>MD5</item>
+      <item>MODULES</item>
+      <item>MTIME</item>
+      <item>NETRC</item>
+      <item>NETRC_FILE</item>
+      <item>NEWLINE_CONSUME</item>
+      <item>NEWLINE_STYLE</item>
+      <item>NO_HEX_CONVERSION</item>
+      <item>NO_REPLACE</item>
+      <item>NO_SOURCE_PERMISSIONS</item>
+      <item>OFFSET</item>
+      <item>ONLY_IF_DIFFERENT</item>
+      <item>OUTPUT</item>
+      <item>PATTERN</item>
+      <item>PERMISSIONS</item>
+      <item>POST_EXCLUDE_FILES</item>
+      <item>POST_EXCLUDE_REGEXES</item>
+      <item>POST_INCLUDE_FILES</item>
+      <item>POST_INCLUDE_REGEXES</item>
+      <item>PRE_EXCLUDE_REGEXES</item>
+      <item>PRE_INCLUDE_REGEXES</item>
+      <item>RANGE_END</item>
+      <item>RANGE_START</item>
+      <item>READ</item>
+      <item>READ_SYMLINK</item>
+      <item>REAL_PATH</item>
+      <item>REGEX</item>
+      <item>RELATIVE</item>
+      <item>RELATIVE_PATH</item>
+      <item>RELEASE</item>
+      <item>REMOVE</item>
+      <item>REMOVE_RECURSE</item>
+      <item>RENAME</item>
+      <item>RESOLVED_DEPENDENCIES_VAR</item>
+      <item>RESULT</item>
+      <item>RESULT_VARIABLE</item>
+      <item>SHA1</item>
+      <item>SHA224</item>
+      <item>SHA256</item>
+      <item>SHA384</item>
+      <item>SHA3_224</item>
+      <item>SHA3_256</item>
+      <item>SHA3_384</item>
+      <item>SHA3_512</item>
+      <item>SHA512</item>
+      <item>SHOW_PROGRESS</item>
+      <item>SIZE</item>
+      <item>STATUS</item>
+      <item>STRINGS</item>
+      <item>TARGET</item>
+      <item>TIMEOUT</item>
+      <item>TIMESTAMP</item>
+      <item>TLS_CAINFO</item>
+      <item>TLS_VERIFY</item>
+      <item>TOUCH</item>
+      <item>TOUCH_NOCREATE</item>
+      <item>TO_CMAKE_PATH</item>
+      <item>TO_NATIVE_PATH</item>
+      <item>UNRESOLVED_DEPENDENCIES_VAR</item>
+      <item>UPLOAD</item>
+      <item>USERPWD</item>
+      <item>USE_SOURCE_PERMISSIONS</item>
+      <item>UTC</item>
+      <item>VERBOSE</item>
+      <item>WRITE</item>
+    </list>
+    <list name="file_sargs">
+      <item>7zip</item>
+      <item>BZip2</item>
+      <item>CRLF</item>
+      <item>DOS</item>
+      <item>FILE</item>
+      <item>FUNCTION</item>
+      <item>GROUP_EXECUTE</item>
+      <item>GROUP_READ</item>
+      <item>GROUP_WRITE</item>
+      <item>GZip</item>
+      <item>IGNORED</item>
+      <item>LF</item>
+      <item>None</item>
+      <item>OPTIONAL</item>
+      <item>OWNER_EXECUTE</item>
+      <item>OWNER_READ</item>
+      <item>OWNER_WRITE</item>
+      <item>PROCESS</item>
+      <item>REQUIRED</item>
+      <item>SETGID</item>
+      <item>SETUID</item>
+      <item>UNIX</item>
+      <item>UTF-16BE</item>
+      <item>UTF-16LE</item>
+      <item>UTF-32B</item>
+      <item>UTF-32LE</item>
+      <item>UTF-8</item>
+      <item>WIN32</item>
+      <item>WORLD_EXECUTE</item>
+      <item>WORLD_READ</item>
+      <item>WORLD_WRITE</item>
+      <item>XZ</item>
+      <item>Zstd</item>
+      <item>gnutar</item>
+      <item>pax</item>
+      <item>paxr</item>
+      <item>raw</item>
+      <item>zip</item>
+    </list>
+    <list name="find_file_nargs">
+      <item>CMAKE_FIND_ROOT_PATH_BOTH</item>
+      <item>DOC</item>
+      <item>HINTS</item>
+      <item>NAMES</item>
+      <item>NO_CACHE</item>
+      <item>NO_CMAKE_ENVIRONMENT_PATH</item>
+      <item>NO_CMAKE_FIND_ROOT_PATH</item>
+      <item>NO_CMAKE_INSTALL_PREFIX</item>
+      <item>NO_CMAKE_PATH</item>
+      <item>NO_CMAKE_SYSTEM_PATH</item>
+      <item>NO_DEFAULT_PATH</item>
+      <item>NO_PACKAGE_ROOT_PATH</item>
+      <item>NO_SYSTEM_ENVIRONMENT_PATH</item>
+      <item>ONLY_CMAKE_FIND_ROOT_PATH</item>
+      <item>PATHS</item>
+      <item>PATH_SUFFIXES</item>
+      <item>REGISTRY_VIEW</item>
+      <item>REQUIRED</item>
+      <item>VALIDATOR</item>
+    </list>
+    <list name="find_file_sargs">
+      <item>32</item>
+      <item>32_64</item>
+      <item>64</item>
+      <item>64_32</item>
+      <item>BOTH</item>
+      <item>HOST</item>
+      <item>TARGET</item>
+    </list>
+    <list name="find_library_nargs">
+      <item>CMAKE_FIND_ROOT_PATH_BOTH</item>
+      <item>DOC</item>
+      <item>HINTS</item>
+      <item>NAMES</item>
+      <item>NAMES_PER_DIR</item>
+      <item>NO_CACHE</item>
+      <item>NO_CMAKE_ENVIRONMENT_PATH</item>
+      <item>NO_CMAKE_FIND_ROOT_PATH</item>
+      <item>NO_CMAKE_INSTALL_PREFIX</item>
+      <item>NO_CMAKE_PATH</item>
+      <item>NO_CMAKE_SYSTEM_PATH</item>
+      <item>NO_DEFAULT_PATH</item>
+      <item>NO_PACKAGE_ROOT_PATH</item>
+      <item>NO_SYSTEM_ENVIRONMENT_PATH</item>
+      <item>ONLY_CMAKE_FIND_ROOT_PATH</item>
+      <item>PATHS</item>
+      <item>PATH_SUFFIXES</item>
+      <item>REGISTRY_VIEW</item>
+      <item>REQUIRED</item>
+      <item>VALIDATOR</item>
+    </list>
+    <list name="find_package_nargs">
+      <item>BYPASS_PROVIDER</item>
+      <item>CMAKE_FIND_ROOT_PATH_BOTH</item>
+      <item>COMPONENTS</item>
+      <item>CONFIG</item>
+      <item>CONFIGS</item>
+      <item>EXACT</item>
+      <item>GLOBAL</item>
+      <item>HINTS</item>
+      <item>MODULE</item>
+      <item>NAMES</item>
+      <item>NO_CMAKE_ENVIRONMENT_PATH</item>
+      <item>NO_CMAKE_FIND_ROOT_PATH</item>
+      <item>NO_CMAKE_INSTALL_PREFIX</item>
+      <item>NO_CMAKE_PACKAGE_REGISTRY</item>
+      <item>NO_CMAKE_PATH</item>
+      <item>NO_CMAKE_SYSTEM_PACKAGE_REGISTRY</item>
+      <item>NO_CMAKE_SYSTEM_PATH</item>
+      <item>NO_DEFAULT_PATH</item>
+      <item>NO_MODULE</item>
+      <item>NO_PACAKGE_ROOT_PATH</item>
+      <item>NO_POLICY_SCOPE</item>
+      <item>NO_SYSTEM_ENVIRONMENT_PATH</item>
+      <item>ONLY_CMAKE_FIND_ROOT_PATH</item>
+      <item>OPTIONAL_COMPONENTS</item>
+      <item>PATHS</item>
+      <item>PATH_SUFFIXES</item>
+      <item>QUIET</item>
+      <item>REGISTRY_VIEW</item>
+      <item>REQUIRED</item>
+    </list>
+    <list name="foreach_nargs">
+      <item>IN</item>
+      <item>ITEMS</item>
+      <item>LISTS</item>
+      <item>RANGE</item>
+      <item>ZIP_LISTS</item>
+    </list>
+    <list name="get_cmake_property_sargs">
+      <item>CACHE_VARIABLES</item>
+      <item>COMMANDS</item>
+      <item>COMPONENTS</item>
+      <item>MACROS</item>
+      <item>VARIABLES</item>
+    </list>
+    <list name="get_directory_property_nargs">
+      <item>DEFINITION</item>
+      <item>DIRECTORY</item>
+    </list>
+    <list name="get_filename_component_nargs">
+      <item>ABSOLUTE</item>
+      <item>BASE_DIR</item>
+      <item>CACHE</item>
+      <item>DIRECTORY</item>
+      <item>EXT</item>
+      <item>LAST_EXT</item>
+      <item>NAME</item>
+      <item>NAME_WE</item>
+      <item>NAME_WLE</item>
+      <item>PATH</item>
+      <item>PROGRAM</item>
+      <item>PROGRAM_ARGS</item>
+      <item>REALPATH</item>
+    </list>
+    <list name="get_property_nargs">
+      <item>BRIEF_DOCS</item>
+      <item>CACHE</item>
+      <item>DEFINED</item>
+      <item>DIRECTORY</item>
+      <item>FULL_DOCS</item>
+      <item>GLOBAL</item>
+      <item>INSTALL</item>
+      <item>PROPERTY</item>
+      <item>SET</item>
+      <item>SOURCE</item>
+      <item>TARGET</item>
+      <item>TARGET_DIRECTORY</item>
+      <item>TEST</item>
+      <item>VARIABLE</item>
+    </list>
+    <list name="include_nargs">
+      <item>NO_POLICY_SCOPE</item>
+      <item>OPTIONAL</item>
+      <item>RESULT_VARIABLE</item>
+    </list>
+    <list name="include_guard_nargs">
+      <item>DIRECTORY</item>
+      <item>GLOBAL</item>
+    </list>
+    <list name="list_nargs">
+      <item>APPEND</item>
+      <item>AT</item>
+      <item>CASE</item>
+      <item>COMPARE</item>
+      <item>EXCLUDE</item>
+      <item>FILTER</item>
+      <item>FIND</item>
+      <item>FOR</item>
+      <item>GENEX_STRIP</item>
+      <item>GET</item>
+      <item>INCLUDE</item>
+      <item>INSERT</item>
+      <item>JOIN</item>
+      <item>LENGTH</item>
+      <item>ORDER</item>
+      <item>OUTPUT_VARIABLE</item>
+      <item>POP_BACK</item>
+      <item>POP_FRONT</item>
+      <item>PREPEND</item>
+      <item>REGEX</item>
+      <item>REMOVE_AT</item>
+      <item>REMOVE_DUPLICATES</item>
+      <item>REMOVE_ITEM</item>
+      <item>REPLACE</item>
+      <item>REVERSE</item>
+      <item>SORT</item>
+      <item>STRIP</item>
+      <item>SUBLIST</item>
+      <item>TOLOWER</item>
+      <item>TRANSFORM</item>
+    </list>
+    <list name="list_sargs">
+      <item>ASCENDING</item>
+      <item>DESCENDING</item>
+      <item>FILE_BASENAME</item>
+      <item>INSENSITIVE</item>
+      <item>NATURAL</item>
+      <item>SENSITIVE</item>
+      <item>STRING</item>
+    </list>
+    <list name="mark_as_advanced_nargs">
+      <item>CLEAR</item>
+      <item>FORCE</item>
+    </list>
+    <list name="math_nargs">
+      <item>EXPR</item>
+      <item>OUTPUT_FORMAT</item>
+    </list>
+    <list name="math_sargs">
+      <item>DECIMAL</item>
+      <item>HEXADECIMAL</item>
+    </list>
+    <list name="message_nargs">
+      <item>AUTHOR_WARNING</item>
+      <item>CHECK_FAIL</item>
+      <item>CHECK_PASS</item>
+      <item>CHECK_START</item>
+      <item>CONFIGURE_LOG</item>
+      <item>DEBUG</item>
+      <item>DEPRECATION</item>
+      <item>FATAL_ERROR</item>
+      <item>NOTICE</item>
+      <item>SEND_ERROR</item>
+      <item>STATUS</item>
+      <item>TRACE</item>
+      <item>VERBOSE</item>
+      <item>WARNING</item>
+    </list>
+    <list name="return_nargs">
+      <item>PROPAGATE</item>
+    </list>
+    <list name="separate_arguments_nargs">
+      <item>NATIVE_COMMAND</item>
+      <item>PROGRAM</item>
+      <item>SEPARATE_ARGS</item>
+      <item>UNIX_COMMAND</item>
+      <item>WINDOWS_COMMAND</item>
+    </list>
+    <list name="set_directory_properties_nargs">
+      <item>PROPERTIES</item>
+    </list>
+    <list name="set_property_nargs">
+      <item>APPEND</item>
+      <item>APPEND_STRING</item>
+      <item>CACHE</item>
+      <item>DIRECTORY</item>
+      <item>GLOBAL</item>
+      <item>INSTALL</item>
+      <item>PROPERTY</item>
+      <item>SOURCE</item>
+      <item>TARGET</item>
+      <item>TARGET_DIRECTORY</item>
+      <item>TEST</item>
+      <item>VARIABLE</item>
+    </list>
+    <list name="set_nargs">
+      <item>CACHE</item>
+      <item>FORCE</item>
+      <item>PARENT_SCOPE</item>
+    </list>
+    <list name="set_sargs">
+      <item>BOOL</item>
+      <item>FILEPATH</item>
+      <item>INTERNAL</item>
+      <item>PATH</item>
+      <item>STATIC</item>
+      <item>STRING</item>
+    </list>
+    <list name="string_nargs">
+      <item>@ONLY</item>
+      <item>ALPHABET</item>
+      <item>APPEND</item>
+      <item>ASCII</item>
+      <item>COMPARE</item>
+      <item>CONCAT</item>
+      <item>CONFIGURE</item>
+      <item>EQUAL</item>
+      <item>ERROR_VARIABLE</item>
+      <item>ESCAPE_QUOTES</item>
+      <item>FIND</item>
+      <item>GENEX_STRIP</item>
+      <item>GET</item>
+      <item>GREATER</item>
+      <item>GREATER_EQUAL</item>
+      <item>HEX</item>
+      <item>JOIN</item>
+      <item>JSON</item>
+      <item>LENGTH</item>
+      <item>LESS</item>
+      <item>LESS_EQUAL</item>
+      <item>MAKE_C_IDENTIFIER</item>
+      <item>MATCH</item>
+      <item>MATCHALL</item>
+      <item>MD5</item>
+      <item>MEMBER</item>
+      <item>NAME</item>
+      <item>NAMESPACE</item>
+      <item>NOTEQUAL</item>
+      <item>PREPEND</item>
+      <item>RANDOM</item>
+      <item>RANDOM_SEED</item>
+      <item>REGEX</item>
+      <item>REMOVE</item>
+      <item>REPEAT</item>
+      <item>REPLACE</item>
+      <item>REVERSE</item>
+      <item>SET</item>
+      <item>SHA1</item>
+      <item>SHA224</item>
+      <item>SHA256</item>
+      <item>SHA384</item>
+      <item>SHA3_224</item>
+      <item>SHA3_256</item>
+      <item>SHA3_384</item>
+      <item>SHA3_512</item>
+      <item>SHA512</item>
+      <item>STRIP</item>
+      <item>SUBSTRING</item>
+      <item>TIMESTAMP</item>
+      <item>TOLOWER</item>
+      <item>TOUPPER</item>
+      <item>TYPE</item>
+      <item>UPPER</item>
+      <item>UTC</item>
+      <item>UUID</item>
+    </list>
+    <list name="unset_nargs">
+      <item>CACHE</item>
+      <item>PARENT_SCOPE</item>
+    </list>
+    <list name="add_custom_command_nargs">
+      <item>APPEND</item>
+      <item>ARGS</item>
+      <item>BYPRODUCTS</item>
+      <item>COMMAND</item>
+      <item>COMMAND_EXPAND_LISTS</item>
+      <item>COMMENT</item>
+      <item>DEPENDS</item>
+      <item>DEPENDS_EXPLICIT_ONLY</item>
+      <item>DEPFILE</item>
+      <item>IMPLICIT_DEPENDS</item>
+      <item>JOB_POOL</item>
+      <item>JOB_SERVER_AWARE</item>
+      <item>MAIN_DEPENDENCY</item>
+      <item>OUTPUT</item>
+      <item>POST_BUILD</item>
+      <item>PRE_BUILD</item>
+      <item>PRE_LINK</item>
+      <item>TARGET</item>
+      <item>USES_TERMINAL</item>
+      <item>VERBATIM</item>
+      <item>WORKING_DIRECTORY</item>
+    </list>
+    <list name="add_custom_target_nargs">
+      <item>ALL</item>
+      <item>APPEND</item>
+      <item>BYPRODUCTS</item>
+      <item>COMMAND</item>
+      <item>COMMAND_EXPAND_LISTS</item>
+      <item>COMMENT</item>
+      <item>DEPENDS</item>
+      <item>DEPFILE</item>
+      <item>IMPLICIT_DEPENDS</item>
+      <item>JOB_POOL</item>
+      <item>JOB_SERVER_AWARE</item>
+      <item>SOURCES</item>
+      <item>USES_TERMINAL</item>
+      <item>VERBATIM</item>
+      <item>WORKING_DIRECTORY</item>
+    </list>
+    <list name="add_executable_nargs">
+      <item>ALIAS</item>
+      <item>EXCLUDE_FROM_ALL</item>
+      <item>GLOBAL</item>
+      <item>IMPORTED</item>
+      <item>MACOSX_BUNDLE</item>
+      <item>WIN32</item>
+    </list>
+    <list name="add_library_nargs">
+      <item>ALIAS</item>
+      <item>EXCLUDE_FROM_ALL</item>
+      <item>GLOBAL</item>
+      <item>IMPORTED</item>
+      <item>INTERFACE</item>
+      <item>MODULE</item>
+      <item>OBJECT</item>
+      <item>SHARED</item>
+      <item>STATIC</item>
+      <item>UNKNOWN</item>
+    </list>
+    <list name="add_subdirectory_nargs">
+      <item>EXCLUDE_FROM_ALL</item>
+      <item>SYSTEM</item>
+    </list>
+    <list name="add_test_nargs">
+      <item>COMMAND</item>
+      <item>COMMAND_EXPAND_LISTS</item>
+      <item>CONFIGURATIONS</item>
+      <item>NAME</item>
+      <item>WORKING_DIRECTORY</item>
+    </list>
+    <list name="build_command_nargs">
+      <item>CONFIGURATION</item>
+      <item>PARALLEL_LEVEL</item>
+      <item>TARGET</item>
+    </list>
+    <list name="cmake_file_api_nargs">
+      <item>API_VERSION</item>
+      <item>CACHE</item>
+      <item>CMAKEFILES</item>
+      <item>CODEMODEL</item>
+      <item>QUERY</item>
+      <item>TOOLCHAINS</item>
+    </list>
+    <list name="create_test_sourcelist_nargs">
+      <item>EXTRA_INCLUDE</item>
+      <item>FUNCTION</item>
+    </list>
+    <list name="define_property_nargs">
+      <item>BRIEF_DOCS</item>
+      <item>CACHED_VARIABLE</item>
+      <item>DIRECTORY</item>
+      <item>FULL_DOCS</item>
+      <item>GLOBAL</item>
+      <item>INHERITED</item>
+      <item>INITIALIZE_FROM_VARIABLE</item>
+      <item>PROPERTY</item>
+      <item>SOURCE</item>
+      <item>TEST</item>
+      <item>VARIABLE</item>
+    </list>
+    <list name="enable_language_nargs">
+      <item>OPTIONAL</item>
+    </list>
+    <list name="enable_language_sargs">
+      <item>ASM</item>
+      <item>ASM-ATT</item>
+      <item>ASM_MARMASM</item>
+      <item>ASM_MASM</item>
+      <item>ASM_NASM</item>
+      <item>C</item>
+      <item>CSharp</item>
+      <item>CUDA</item>
+      <item>CXX</item>
+      <item>Fortran</item>
+      <item>HIP</item>
+      <item>ISPC</item>
+      <item>Java</item>
+      <item>OBJC</item>
+      <item>OBJCXX</item>
+      <item>RC</item>
+      <item>Swift</item>
+    </list>
+    <list name="export_nargs">
+      <item>ANDROID_MK</item>
+      <item>APPEND</item>
+      <item>EXPORT</item>
+      <item>EXPORT_LINK_INTERFACE_LIBRARIES</item>
+      <item>FILE</item>
+      <item>NAMESPACE</item>
+      <item>TARGETS</item>
+    </list>
+    <list name="get_source_file_property_nargs">
+      <item>DIRECTORY</item>
+      <item>TARGET_DIRECTORY</item>
+    </list>
+    <list name="get_test_property_nargs">
+      <item>DIRECTORY</item>
+    </list>
+    <list name="include_directories_nargs">
+      <item>AFTER</item>
+      <item>BEFORE</item>
+      <item>SYSTEM</item>
+    </list>
+    <list name="include_external_msproject_nargs">
+      <item>GUID</item>
+      <item>PLATFORM</item>
+      <item>TYPE</item>
+    </list>
+    <list name="install_nargs">
+      <item>ARCHIVE</item>
+      <item>BUNDLE</item>
+      <item>CODE</item>
+      <item>COMPONENT</item>
+      <item>CONFIGURATIONS</item>
+      <item>DESTINATION</item>
+      <item>DIRECTORIES</item>
+      <item>DIRECTORY</item>
+      <item>DIRECTORY_PERMISSIONS</item>
+      <item>EXCLUDE</item>
+      <item>EXCLUDE_FROM_ALL</item>
+      <item>EXPORT</item>
+      <item>EXPORT_ANDROID_MK</item>
+      <item>EXPORT_LINK_INTERFACE_LIBRARIES</item>
+      <item>FILE</item>
+      <item>FILES</item>
+      <item>FILES_MATCHING</item>
+      <item>FILE_PERMISSIONS</item>
+      <item>FILE_SET</item>
+      <item>FRAMEWORK</item>
+      <item>IMPORTED_RUNTIME_ARTIFACTS</item>
+      <item>INCLUDES</item>
+      <item>LIBRARY</item>
+      <item>MESSAGE_NEVER</item>
+      <item>NAMELINK_COMPONENT</item>
+      <item>NAMELINK_ONLY</item>
+      <item>NAMELINK_SKIP</item>
+      <item>NAMESPACE</item>
+      <item>OBJECTS</item>
+      <item>OPTIONAL</item>
+      <item>PATTERN</item>
+      <item>PERMISSIONS</item>
+      <item>POST_EXCLUDE_FILES</item>
+      <item>POST_EXCLUDE_REGEXES</item>
+      <item>POST_INCLUDE_FILES</item>
+      <item>POST_INCLUDE_REGEXES</item>
+      <item>PRE_EXCLUDE_REGEXES</item>
+      <item>PRE_INCLUDE_REGEXES</item>
+      <item>PRIVATE_HEADER</item>
+      <item>PROGRAMS</item>
+      <item>PUBLIC_HEADER</item>
+      <item>REGEX</item>
+      <item>RENAME</item>
+      <item>RESOURCE</item>
+      <item>RUNTIME</item>
+      <item>RUNTIME_DEPENDENCIES</item>
+      <item>RUNTIME_DEPENDENCY_SET</item>
+      <item>SCRIPT</item>
+      <item>TARGETS</item>
+      <item>TYPE</item>
+      <item>USE_SOURCE_PERMISSIONS</item>
+    </list>
+    <list name="install_sargs">
+      <item>GROUP_EXECUTE</item>
+      <item>GROUP_READ</item>
+      <item>GROUP_WRITE</item>
+      <item>OWNER_EXECUTE</item>
+      <item>OWNER_READ</item>
+      <item>OWNER_WRITE</item>
+      <item>SETGID</item>
+      <item>SETUID</item>
+      <item>WORLD_EXECUTE</item>
+      <item>WORLD_READ</item>
+      <item>WORLD_WRITE</item>
+    </list>
+    <list name="link_directories_nargs">
+      <item>AFTER</item>
+      <item>BEFORE</item>
+    </list>
+    <list name="link_libraries_sargs">
+      <item>debug</item>
+      <item>general</item>
+      <item>optimized</item>
+    </list>
+    <list name="load_cache_nargs">
+      <item>EXCLUDE</item>
+      <item>INCLUDE_INTERNALS</item>
+      <item>READ_WITH_PREFIX</item>
+    </list>
+    <list name="project_nargs">
+      <item>DESCRIPTION</item>
+      <item>HOMEPAGE_URL</item>
+      <item>LANGUAGES</item>
+      <item>VERSION</item>
+    </list>
+    <list name="project_sargs">
+      <item>ASM</item>
+      <item>ASM-ATT</item>
+      <item>ASM_MASM</item>
+      <item>ASM_NASM</item>
+      <item>C</item>
+      <item>CSharp</item>
+      <item>CUDA</item>
+      <item>CXX</item>
+      <item>Fortran</item>
+      <item>HIP</item>
+      <item>ISPC</item>
+      <item>Java</item>
+      <item>NONE</item>
+      <item>OBJC</item>
+      <item>OBJCXX</item>
+      <item>RC</item>
+      <item>Swift</item>
+    </list>
+    <list name="set_source_files_properties_nargs">
+      <item>DIRECTORY</item>
+      <item>PROPERTIES</item>
+      <item>TARGET_DIRECTORY</item>
+    </list>
+    <list name="set_tests_properties_nargs">
+      <item>DIRECTORY</item>
+      <item>PROPERTIES</item>
+    </list>
+    <list name="source_group_nargs">
+      <item>FILES</item>
+      <item>PREFIX</item>
+      <item>REGULAR_EXPRESSION</item>
+      <item>TREE</item>
+    </list>
+    <list name="target_compile_definitions_nargs">
+      <item>INTERFACE</item>
+      <item>PRIVATE</item>
+      <item>PUBLIC</item>
+    </list>
+    <list name="target_compile_features_sargs">
+      <item>c_function_prototypes</item>
+      <item>c_restrict</item>
+      <item>c_static_assert</item>
+      <item>c_std_11</item>
+      <item>c_std_17</item>
+      <item>c_std_23</item>
+      <item>c_std_90</item>
+      <item>c_std_99</item>
+      <item>c_variadic_macros</item>
+      <item>cuda_std_03</item>
+      <item>cuda_std_11</item>
+      <item>cuda_std_14</item>
+      <item>cuda_std_17</item>
+      <item>cuda_std_20</item>
+      <item>cuda_std_23</item>
+      <item>cuda_std_26</item>
+      <item>cxx_aggregate_default_initializers</item>
+      <item>cxx_alias_templates</item>
+      <item>cxx_alignas</item>
+      <item>cxx_alignof</item>
+      <item>cxx_attribute_deprecated</item>
+      <item>cxx_attributes</item>
+      <item>cxx_auto_type</item>
+      <item>cxx_binary_literals</item>
+      <item>cxx_constexpr</item>
+      <item>cxx_contextual_conversions</item>
+      <item>cxx_decltype</item>
+      <item>cxx_decltype_auto</item>
+      <item>cxx_decltype_incomplete_return_types</item>
+      <item>cxx_default_function_template_args</item>
+      <item>cxx_defaulted_functions</item>
+      <item>cxx_defaulted_move_initializers</item>
+      <item>cxx_delegating_constructors</item>
+      <item>cxx_deleted_functions</item>
+      <item>cxx_digit_separators</item>
+      <item>cxx_enum_forward_declarations</item>
+      <item>cxx_explicit_conversions</item>
+      <item>cxx_extended_friend_declarations</item>
+      <item>cxx_extern_templates</item>
+      <item>cxx_final</item>
+      <item>cxx_func_identifier</item>
+      <item>cxx_generalized_initializers</item>
+      <item>cxx_generic_lambdas</item>
+      <item>cxx_inheriting_constructors</item>
+      <item>cxx_inline_namespaces</item>
+      <item>cxx_lambda_init_captures</item>
+      <item>cxx_lambdas</item>
+      <item>cxx_local_type_template_args</item>
+      <item>cxx_long_long_type</item>
+      <item>cxx_noexcept</item>
+      <item>cxx_nonstatic_member_init</item>
+      <item>cxx_nullptr</item>
+      <item>cxx_override</item>
+      <item>cxx_range_for</item>
+      <item>cxx_raw_string_literals</item>
+      <item>cxx_reference_qualified_functions</item>
+      <item>cxx_relaxed_constexpr</item>
+      <item>cxx_return_type_deduction</item>
+      <item>cxx_right_angle_brackets</item>
+      <item>cxx_rvalue_references</item>
+      <item>cxx_sizeof_member</item>
+      <item>cxx_static_assert</item>
+      <item>cxx_std_11</item>
+      <item>cxx_std_14</item>
+      <item>cxx_std_17</item>
+      <item>cxx_std_20</item>
+      <item>cxx_std_23</item>
+      <item>cxx_std_26</item>
+      <item>cxx_std_98</item>
+      <item>cxx_strong_enums</item>
+      <item>cxx_template_template_parameters</item>
+      <item>cxx_thread_local</item>
+      <item>cxx_trailing_return_types</item>
+      <item>cxx_unicode_literals</item>
+      <item>cxx_uniform_initialization</item>
+      <item>cxx_unrestricted_unions</item>
+      <item>cxx_user_literals</item>
+      <item>cxx_variable_templates</item>
+      <item>cxx_variadic_macros</item>
+      <item>cxx_variadic_templates</item>
+    </list>
+    <list name="target_compile_options_nargs">
+      <item>BEFORE</item>
+      <item>INTERFACE</item>
+      <item>PRIVATE</item>
+      <item>PUBLIC</item>
+    </list>
+    <list name="target_include_directories_nargs">
+      <item>AFTER</item>
+      <item>BEFORE</item>
+      <item>INTERFACE</item>
+      <item>PRIVATE</item>
+      <item>PUBLIC</item>
+      <item>SYSTEM</item>
+    </list>
+    <list name="target_precompile_headers_nargs">
+      <item>INTERFACE</item>
+      <item>PRIVATE</item>
+      <item>PUBLIC</item>
+      <item>REUSE_FROM</item>
+    </list>
+    <list name="target_sources_nargs">
+      <item>BASE_DIRS</item>
+      <item>FILES</item>
+      <item>FILE_SET</item>
+      <item>INTERFACE</item>
+      <item>PRIVATE</item>
+      <item>PUBLIC</item>
+      <item>TYPE</item>
+    </list>
+    <list name="target_sources_sargs">
+      <item>CXX_MODULES</item>
+      <item>HEADERS</item>
+    </list>
+    <list name="try_compile_nargs">
+      <item>BINARY_DIR</item>
+      <item>CMAKE_FLAGS</item>
+      <item>COMPILE_DEFINITIONS</item>
+      <item>COPY_FILE</item>
+      <item>COPY_FILE_ERROR</item>
+      <item>LINK_LIBRARIES</item>
+      <item>LINK_OPTIONS</item>
+      <item>LOG_DESCRIPTION</item>
+      <item>NO_CACHE</item>
+      <item>NO_LOG</item>
+      <item>OUTPUT_VARIABLE</item>
+      <item>PROJECT</item>
+      <item>SOURCES</item>
+      <item>SOURCE_DIR</item>
+      <item>SOURCE_FROM_CONTENT</item>
+      <item>SOURCE_FROM_FILE</item>
+      <item>SOURCE_FROM_VAR</item>
+      <item>TARGET</item>
+    </list>
+    <list name="try_run_nargs">
+      <item>ARGS</item>
+      <item>CMAKE_FLAGS</item>
+      <item>COMPILE_DEFINITIONS</item>
+      <item>COMPILE_OUTPUT_VARIABLE</item>
+      <item>COMPILE_RESULT_VAR</item>
+      <item>COPY_FILE</item>
+      <item>COPY_FILE_ERROR</item>
+      <item>LINK_LIBRARIES</item>
+      <item>LINK_OPTIONS</item>
+      <item>LOG_DESCRIPTION</item>
+      <item>NO_CACHE</item>
+      <item>NO_LOG</item>
+      <item>OUTPUT_VARIABLE</item>
+      <item>RUN_OUTPUT_STDERR_VARIABLE</item>
+      <item>RUN_OUTPUT_STDOUT_VARIABLE</item>
+      <item>RUN_OUTPUT_VARIABLE</item>
+      <item>RUN_RESULT_VAR</item>
+      <item>SOURCES</item>
+      <item>SOURCE_FROM_CONTENT</item>
+      <item>SOURCE_FROM_FILE</item>
+      <item>SOURCE_FROM_VAR</item>
+      <item>WORKING_DIRECTORY</item>
+    </list>
+    <list name="ctest_build_nargs">
+      <item>APPEND</item>
+      <item>BUILD</item>
+      <item>CAPTURE_CMAKE_ERROR</item>
+      <item>CONFIGURATION</item>
+      <item>FLAGS</item>
+      <item>NUMBER_ERRORS</item>
+      <item>NUMBER_WARNINGS</item>
+      <item>PROJECT_NAME</item>
+      <item>RETURN_VALUE</item>
+      <item>TARGET</item>
+    </list>
+    <list name="ctest_configure_nargs">
+      <item>APPEND</item>
+      <item>BUILD</item>
+      <item>CAPTURE_CMAKE_ERROR</item>
+      <item>OPTIONS</item>
+      <item>QUIET</item>
+      <item>RETURN_VALUE</item>
+      <item>SOURCE</item>
+    </list>
+    <list name="ctest_coverage_nargs">
+      <item>APPEND</item>
+      <item>BUILD</item>
+      <item>CAPTURE_CMAKE_ERROR</item>
+      <item>LABELS</item>
+      <item>QUIET</item>
+      <item>RETURN_VALUE</item>
+    </list>
+    <list name="ctest_memcheck_nargs">
+      <item>APPEND</item>
+      <item>BUILD</item>
+      <item>DEFECT_COUNT</item>
+      <item>END</item>
+      <item>EXCLUDE</item>
+      <item>EXCLUDE_FIXTURE</item>
+      <item>EXCLUDE_FIXTURE_CLEANUP</item>
+      <item>EXCLUDE_FIXTURE_SETUP</item>
+      <item>EXCLUDE_LABEL</item>
+      <item>INCLUDE</item>
+      <item>INCLUDE_LABEL</item>
+      <item>PARALLEL_LEVEL</item>
+      <item>QUIET</item>
+      <item>RETURN_VALUE</item>
+      <item>SCHEDULE_RANDOM</item>
+      <item>START</item>
+      <item>STOP_TIME</item>
+      <item>STRIDE</item>
+      <item>TEST_LOAD</item>
+    </list>
+    <list name="ctest_run_script_nargs">
+      <item>NEW_PROCESS</item>
+      <item>RETURN_VALUE</item>
+    </list>
+    <list name="ctest_start_nargs">
+      <item>APPEND</item>
+      <item>QUIET</item>
+      <item>TRACK</item>
+    </list>
+    <list name="ctest_submit_nargs">
+      <item>BUILD_ID</item>
+      <item>CDASH_UPLOAD</item>
+      <item>CDASH_UPLOAD_TYPE</item>
+      <item>FILES</item>
+      <item>HTTPHEADER</item>
+      <item>PARTS</item>
+      <item>QUIET</item>
+      <item>RETRY_COUNT</item>
+      <item>RETRY_DELAY</item>
+      <item>RETURN_VALUE</item>
+      <item>SUBMIT_URL</item>
+    </list>
+    <list name="ctest_test_nargs">
+      <item>APPEND</item>
+      <item>BUILD</item>
+      <item>CAPTURE_CMAKE_ERROR</item>
+      <item>END</item>
+      <item>EXCLUDE</item>
+      <item>EXCLUDE_FIXTURE</item>
+      <item>EXCLUDE_FIXTURE_CLEANUP</item>
+      <item>EXCLUDE_FIXTURE_SETUP</item>
+      <item>EXCLUDE_LABEL</item>
+      <item>INCLUDE</item>
+      <item>INCLUDE_LABEL</item>
+      <item>PARALLEL_LEVEL</item>
+      <item>QUIET</item>
+      <item>REPEAT</item>
+      <item>RETURN_VALUE</item>
+      <item>SCHEDULE_RANDOM</item>
+      <item>START</item>
+      <item>STOP_ON_FAILURE</item>
+      <item>STOP_TIME</item>
+      <item>STRIDE</item>
+      <item>TEST_LOAD</item>
+    </list>
+    <list name="ctest_test_sargs">
+      <item>AFTER_TIMEOUT</item>
+      <item>UNTIL_FAIL</item>
+      <item>UNTIL_PASS</item>
+    </list>
+    <list name="ctest_update_nargs">
+      <item>QUIET</item>
+      <item>RETURN_VALUE</item>
+      <item>SOURCE</item>
+    </list>
+    <list name="ctest_upload_nargs">
+      <item>CAPTURE_CMAKE_ERROR</item>
+      <item>FILES</item>
+      <item>QUIET</item>
+    </list>
+    <list name="android_add_test_data_nargs">
+      <item>DEVICE_OBJECT_STORE</item>
+      <item>DEVICE_TEST_DIR</item>
+      <item>FILES</item>
+      <item>FILES_DEST</item>
+      <item>LIBS</item>
+      <item>LIBS_DEST</item>
+      <item>NO_LINK_REGEX</item>
+    </list>
+    <list name="check_c_source_compiles_nargs">
+      <item>FAIL_REGEX</item>
+    </list>
+    <list name="check_fortran_source_compiles_nargs">
+      <item>FAIL_REGEX</item>
+      <item>SRC_EXT</item>
+    </list>
+    <list name="check_fortran_source_runs_nargs">
+      <item>SRC_EXT</item>
+    </list>
+    <list name="check_include_files_nargs">
+      <item>LANGUAGE</item>
+    </list>
+    <list name="check_include_files_sargs">
+      <item>C</item>
+      <item>CXX</item>
+    </list>
+    <list name="check_ipo_supported_nargs">
+      <item>LANGUAGES</item>
+      <item>OUTPUT</item>
+      <item>RESULT</item>
+    </list>
+    <list name="check_ipo_supported_sargs">
+      <item>C</item>
+      <item>CXX</item>
+      <item>Fortran</item>
+    </list>
+    <list name="check_pie_supported_nargs">
+      <item>LANGUAGES</item>
+      <item>OUTPUT_VARIABLE</item>
+    </list>
+    <list name="check_pie_supported_sargs">
+      <item>C</item>
+      <item>CUDA</item>
+      <item>CXX</item>
+      <item>Fortran</item>
+      <item>HIP</item>
+      <item>OBJC</item>
+      <item>OBJCXX</item>
+    </list>
+    <list name="check_type_size_nargs">
+      <item>BUILTIN_TYPES_ONLY</item>
+      <item>LANGUAGE</item>
+    </list>
+    <list name="cmake_add_fortran_subdirectory_nargs">
+      <item>ARCHIVE_DIR</item>
+      <item>CMAKE_COMMAND_LINE</item>
+      <item>LIBRARIES</item>
+      <item>LINK_LIBRARIES</item>
+      <item>LINK_LIBS</item>
+      <item>NO_EXTERNAL_INSTALL</item>
+      <item>PROJECT</item>
+      <item>RUNTIME_DIR</item>
+    </list>
+    <list name="configure_package_config_file_nargs">
+      <item>INSTALL_DESTINATION</item>
+      <item>INSTALL_PREFIX</item>
+      <item>NO_CHECK_REQUIRED_COMPONENTS_MACRO</item>
+      <item>NO_SET_AND_CHECK_MACRO</item>
+      <item>PATH_VARS</item>
+    </list>
+    <list name="write_basic_package_version_file_nargs">
+      <item>ARCH_INDEPENDENT</item>
+      <item>COMPATIBILITY</item>
+      <item>VERSION</item>
+    </list>
+    <list name="write_basic_package_version_file_sargs">
+      <item>AnyNewerVersion</item>
+      <item>ExactVersion</item>
+      <item>SameMajorVersion</item>
+      <item>SameMinorVersion</item>
+    </list>
+    <list name="cmake_print_properties_nargs">
+      <item>CACHE_ENTRIES</item>
+      <item>DIRECTORIES</item>
+      <item>PROPERTIES</item>
+      <item>SOURCES</item>
+      <item>TARGETS</item>
+      <item>TESTS</item>
+    </list>
+    <list name="cmake_push_check_state_nargs">
+      <item>RESET</item>
+    </list>
+    <list name="cpack_add_component_nargs">
+      <item>ARCHIVE_FILE</item>
+      <item>DEPENDS</item>
+      <item>DESCRIPTION</item>
+      <item>DISABLED</item>
+      <item>DISPLAY_NAME</item>
+      <item>DOWNLOADED</item>
+      <item>GROUP</item>
+      <item>HIDDEN</item>
+      <item>INSTALL_TYPES</item>
+      <item>PLIST</item>
+      <item>REQUIRED</item>
+    </list>
+    <list name="cpack_add_component_group_nargs">
+      <item>BOLD_TITLE</item>
+      <item>DESCRIPTION</item>
+      <item>DISPLAY_NAME</item>
+      <item>EXPANDED</item>
+      <item>PARENT_GROUP</item>
+    </list>
+    <list name="cpack_add_install_type_nargs">
+      <item>DISPLAY_NAME</item>
+    </list>
+    <list name="cpack_configure_downloads_nargs">
+      <item>ADD_REMOVE</item>
+      <item>ALL</item>
+      <item>NO_ADD_REMOVE</item>
+      <item>UPLOAD_DIRECTORY</item>
+    </list>
+    <list name="cpack_ifw_configure_component_nargs">
+      <item>AUTO_DEPEND_ON</item>
+      <item>CHECKABLE</item>
+      <item>COMMON</item>
+      <item>DEFAULT</item>
+      <item>DEPENDENCIES</item>
+      <item>DEPENDS</item>
+      <item>DESCRIPTION</item>
+      <item>DISPLAY_NAME</item>
+      <item>ESSENTIAL</item>
+      <item>FORCED_INSTALLATION</item>
+      <item>LICENSES</item>
+      <item>NAME</item>
+      <item>PRIORITY</item>
+      <item>RELEASE_DATE</item>
+      <item>REPLACES</item>
+      <item>REQUIRES_ADMIN_RIGHTS]</item>
+      <item>SCRIPT</item>
+      <item>SORTING_PRIORITY</item>
+      <item>TRANSLATIONS</item>
+      <item>UPDATE_TEXT</item>
+      <item>USER_INTERFACES</item>
+      <item>VERSION</item>
+      <item>VIRTUAL</item>
+    </list>
+    <list name="cpack_ifw_configure_component_group_nargs">
+      <item>AUTO_DEPEND_ON</item>
+      <item>CHECKABLE</item>
+      <item>DEFAULT</item>
+      <item>DEPENDENCIES</item>
+      <item>DEPENDS</item>
+      <item>DESCRIPTION</item>
+      <item>DISPLAY_NAME</item>
+      <item>FORCED_INSTALLATION</item>
+      <item>LICENSES</item>
+      <item>NAME</item>
+      <item>PRIORITY</item>
+      <item>RELEASE_DATE</item>
+      <item>REPLACES</item>
+      <item>REQUIRES_ADMIN_RIGHTS</item>
+      <item>SCRIPT</item>
+      <item>SORTING_PRIORITY</item>
+      <item>TRANSLATIONS</item>
+      <item>UPDATE_TEXT</item>
+      <item>USER_INTERFACES</item>
+      <item>VERSION</item>
+      <item>VIRTUAL</item>
+    </list>
+    <list name="cpack_ifw_add_repository_nargs">
+      <item>DISABLED</item>
+      <item>DISPLAY_NAME</item>
+      <item>PASSWORD</item>
+      <item>URL</item>
+      <item>USERNAME</item>
+    </list>
+    <list name="cpack_ifw_update_repository_nargs">
+      <item>ADD</item>
+      <item>DISPLAY_NAME</item>
+      <item>NEW_URL</item>
+      <item>OLD_URL</item>
+      <item>PASSWORD</item>
+      <item>REMOVE</item>
+      <item>REPLACE</item>
+      <item>URL</item>
+      <item>USERNAME</item>
+    </list>
+    <list name="ctest_coverage_collect_gcov_nargs">
+      <item>BUILD</item>
+      <item>DELETE</item>
+      <item>GCOV_COMMAND</item>
+      <item>GCOV_OPTIONS</item>
+      <item>GLOB</item>
+      <item>QUIET</item>
+      <item>SOURCE</item>
+      <item>TARBALL</item>
+      <item>TARBALL_COMPRESSION</item>
+    </list>
+    <list name="ExternalData_Add_Target_nargs">
+      <item>SHOW_PROGRESS</item>
+    </list>
+    <list name="ExternalProject_Add_nargs">
+      <item>BINARY_DIR</item>
+      <item>BUILD_ALWAYS</item>
+      <item>BUILD_BYPRODUCTS</item>
+      <item>BUILD_COMMAND</item>
+      <item>BUILD_IN_SOURCE</item>
+      <item>BUILD_JOB_SERVER_AWARE</item>
+      <item>CMAKE_ARGS</item>
+      <item>CMAKE_CACHE_ARGS</item>
+      <item>CMAKE_CACHE_DEFAULT_ARGS</item>
+      <item>CMAKE_COMMAND</item>
+      <item>CMAKE_GENERATOR</item>
+      <item>CMAKE_GENERATOR_INSTANCE</item>
+      <item>CMAKE_GENERATOR_PLATFORM</item>
+      <item>CMAKE_GENERATOR_TOOLSET</item>
+      <item>COMMAND</item>
+      <item>CONFIGURE_COMMAND</item>
+      <item>CONFIGURE_HANDLED_BY_BUILD</item>
+      <item>CVS_MODULE</item>
+      <item>CVS_REPOSITORY</item>
+      <item>CVS_TAG</item>
+      <item>DEPENDS</item>
+      <item>DOWNLOAD_COMMAND</item>
+      <item>DOWNLOAD_DIR</item>
+      <item>DOWNLOAD_EXTRACT_TIMESTAMP</item>
+      <item>DOWNLOAD_NAME</item>
+      <item>DOWNLOAD_NO_EXTRACT</item>
+      <item>DOWNLOAD_NO_PROGRESS</item>
+      <item>EXCLUDE_FROM_ALL</item>
+      <item>GIT_CONFIG</item>
+      <item>GIT_PROGRESS</item>
+      <item>GIT_REMOTE_NAME</item>
+      <item>GIT_REMOTE_UPDATE_STRATEGY</item>
+      <item>GIT_REPOSITORY</item>
+      <item>GIT_SHALLOW</item>
+      <item>GIT_SUBMODULES</item>
+      <item>GIT_SUBMODULES_RECURSE</item>
+      <item>GIT_TAG</item>
+      <item>HG_REPOSITORY</item>
+      <item>HG_TAG</item>
+      <item>HTTP_HEADER</item>
+      <item>HTTP_PASSWORD</item>
+      <item>HTTP_USERNAME</item>
+      <item>INACTIVITY_TIMEOUT</item>
+      <item>INDEPENDENT_STEP_TARGETS</item>
+      <item>INSTALL_BYPRODUCTS</item>
+      <item>INSTALL_COMMAND</item>
+      <item>INSTALL_DIR</item>
+      <item>LIST_SEPARATOR</item>
+      <item>LOG_BUILD</item>
+      <item>LOG_CONFIGURE</item>
+      <item>LOG_DIR</item>
+      <item>LOG_DOWNLOAD</item>
+      <item>LOG_INSTALL</item>
+      <item>LOG_MERGED_STDOUTERR</item>
+      <item>LOG_OUTPUT_ON_FAILURE</item>
+      <item>LOG_PATCH</item>
+      <item>LOG_TEST</item>
+      <item>LOG_UPDATE</item>
+      <item>NETRC</item>
+      <item>NETRC_FILE</item>
+      <item>PATCH_COMMAND</item>
+      <item>PREFIX</item>
+      <item>SOURCE_DIR</item>
+      <item>SOURCE_SUBDIR</item>
+      <item>STAMP_DIR</item>
+      <item>STEP_TARGETS</item>
+      <item>SVN_PASSWORD</item>
+      <item>SVN_REPOSITORY</item>
+      <item>SVN_REVISION</item>
+      <item>SVN_TRUST_CERT</item>
+      <item>SVN_USERNAME</item>
+      <item>TEST_AFTER_INSTALL</item>
+      <item>TEST_BEFORE_INSTALL</item>
+      <item>TEST_COMMAND</item>
+      <item>TEST_EXCLUDE_FROM_MAIN</item>
+      <item>TIMEOUT</item>
+      <item>TLS_CAINFO</item>
+      <item>TLS_VERIFY</item>
+      <item>TMP_DIR</item>
+      <item>UPDATE_COMMAND</item>
+      <item>UPDATE_DISCONNECTED</item>
+      <item>URL</item>
+      <item>URL_HASH</item>
+      <item>URL_MD5</item>
+      <item>USES_TERMINAL_BUILD</item>
+      <item>USES_TERMINAL_CONFIGURE</item>
+      <item>USES_TERMINAL_DOWNLOAD</item>
+      <item>USES_TERMINAL_INSTALL</item>
+      <item>USES_TERMINAL_PATCH</item>
+      <item>USES_TERMINAL_TEST</item>
+      <item>USES_TERMINAL_UPDATE</item>
+    </list>
+    <list name="ExternalProject_Add_sargs">
+      <item>CHECKOUT</item>
+      <item>IGNORED</item>
+      <item>OPTIONAL</item>
+      <item>REBASE</item>
+      <item>REBASE_CHECKOUT</item>
+      <item>REQUIRED</item>
+    </list>
+    <list name="ExternalProject_Add_Step_nargs">
+      <item>ALWAYS</item>
+      <item>BYPRODUCTS</item>
+      <item>COMMAND</item>
+      <item>COMMENT</item>
+      <item>DEPENDEES</item>
+      <item>DEPENDERS</item>
+      <item>DEPENDS</item>
+      <item>EXCLUDE_FROM_MAIN</item>
+      <item>INDEPENDENT</item>
+      <item>JOB_SERVER_AWARE</item>
+      <item>LOG</item>
+      <item>USES_TERMINAL</item>
+      <item>WORKING_DIRECTORY</item>
+    </list>
+    <list name="ExternalProject_Add_StepTargets_nargs">
+      <item>NO_DEPENDS</item>
+    </list>
+    <list name="feature_summary_nargs">
+      <item>ALL</item>
+      <item>APPEND</item>
+      <item>DEFAULT_DESCRIPTION</item>
+      <item>DESCRIPTION</item>
+      <item>DISABLED_FEATURES</item>
+      <item>ENABLED_FEATURES</item>
+      <item>FATAL_ON_MISSING_REQUIRED_PACKAGES</item>
+      <item>FILENAME</item>
+      <item>INCLUDE_QUIET_PACKAGES</item>
+      <item>PACKAGES_FOUND</item>
+      <item>PACKAGES_NOT_FOUND</item>
+      <item>QUIET_ON_EMPTY</item>
+      <item>VAR</item>
+      <item>WHAT</item>
+    </list>
+    <list name="set_package_properties_nargs">
+      <item>DESCRIPTION</item>
+      <item>OPTIONAL</item>
+      <item>PROPERTIES</item>
+      <item>PURPOSE</item>
+      <item>RECOMMENDED</item>
+      <item>REQUIRED</item>
+      <item>RUNTIME</item>
+      <item>TYPE</item>
+      <item>URL</item>
+    </list>
+    <list name="FetchContent_Declare_nargs">
+      <item>CVS_MODULE</item>
+      <item>CVS_REPOSITORY</item>
+      <item>CVS_TAG</item>
+      <item>DOWNLOAD_COMMAND</item>
+      <item>DOWNLOAD_NAME</item>
+      <item>DOWNLOAD_NO_EXTRACT</item>
+      <item>DOWNLOAD_NO_PROGRESS</item>
+      <item>EXCLUDE_FROM_ALL</item>
+      <item>FIND_PACKAGE_ARGS</item>
+      <item>GIT_CONFIG</item>
+      <item>GIT_PROGRESS</item>
+      <item>GIT_REMOTE_NAME</item>
+      <item>GIT_REMOTE_UPDATE_STRATEGY</item>
+      <item>GIT_REPOSITORY</item>
+      <item>GIT_SHALLOW</item>
+      <item>GIT_SUBMODULES</item>
+      <item>GIT_SUBMODULES_RECURSE</item>
+      <item>GIT_TAG</item>
+      <item>HG_REPOSITORY</item>
+      <item>HG_TAG</item>
+      <item>HTTP_HEADER</item>
+      <item>HTTP_PASSWORD</item>
+      <item>HTTP_USERNAME</item>
+      <item>INACTIVITY_TIMEOUT</item>
+      <item>NETRC</item>
+      <item>NETRC_FILE</item>
+      <item>OVERRIDE_FIND_PACKAGE</item>
+      <item>PATCH_COMMAND</item>
+      <item>SOURCE_SUBDIR</item>
+      <item>SVN_PASSWORD</item>
+      <item>SVN_REPOSITORY</item>
+      <item>SVN_REVISION</item>
+      <item>SVN_TRUST_CERT</item>
+      <item>SVN_USERNAME</item>
+      <item>SYSTEM</item>
+      <item>TIMEOUT</item>
+      <item>TLS_CAINFO</item>
+      <item>TLS_VERIFY</item>
+      <item>UPDATE_COMMAND</item>
+      <item>UPDATE_DISCONNECTED</item>
+      <item>URL</item>
+      <item>URL_HASH</item>
+      <item>URL_MD5</item>
+    </list>
+    <list name="FetchContent_Populate_nargs">
+      <item>BINARY_DIR</item>
+      <item>CVS_MODULE</item>
+      <item>CVS_REPOSITORY</item>
+      <item>CVS_TAG</item>
+      <item>DOWNLOAD_COMMAND</item>
+      <item>DOWNLOAD_NAME</item>
+      <item>DOWNLOAD_NO_EXTRACT</item>
+      <item>DOWNLOAD_NO_PROGRESS</item>
+      <item>GIT_CONFIG</item>
+      <item>GIT_PROGRESS</item>
+      <item>GIT_REMOTE_NAME</item>
+      <item>GIT_REMOTE_UPDATE_STRATEGY</item>
+      <item>GIT_REPOSITORY</item>
+      <item>GIT_SHALLOW</item>
+      <item>GIT_SUBMODULES</item>
+      <item>GIT_SUBMODULES_RECURSE</item>
+      <item>GIT_TAG</item>
+      <item>HG_REPOSITORY</item>
+      <item>HG_TAG</item>
+      <item>HTTP_HEADER</item>
+      <item>HTTP_PASSWORD</item>
+      <item>HTTP_USERNAME</item>
+      <item>INACTIVITY_TIMEOUT</item>
+      <item>NETRC</item>
+      <item>NETRC_FILE</item>
+      <item>PATCH_COMMAND</item>
+      <item>QUIET</item>
+      <item>SOURCE_DIR</item>
+      <item>SOURCE_SUBDIR</item>
+      <item>SUBBUILD_DIR</item>
+      <item>SVN_PASSWORD</item>
+      <item>SVN_REPOSITORY</item>
+      <item>SVN_REVISION</item>
+      <item>SVN_TRUST_CERT</item>
+      <item>SVN_USERNAME</item>
+      <item>TIMEOUT</item>
+      <item>TLS_CAINFO</item>
+      <item>TLS_VERIFY</item>
+      <item>UPDATE_COMMAND</item>
+      <item>UPDATE_DISCONNECTED</item>
+      <item>URL</item>
+      <item>URL_HASH</item>
+      <item>URL_MD5</item>
+    </list>
+    <list name="FetchContent_GetProperties_nargs">
+      <item>BINARY_DIR</item>
+      <item>POPULATED</item>
+      <item>SOURCE_DIR</item>
+    </list>
+    <list name="find_package_handle_standard_args_nargs">
+      <item>CONFIG_MODE</item>
+      <item>DEFAULT_MSG</item>
+      <item>FAIL_MESSAGE</item>
+      <item>FOUND_VAR</item>
+      <item>HANDLE_COMPONENTS</item>
+      <item>HANDLE_VERSION_RANGE</item>
+      <item>NAME_MISMATCHED</item>
+      <item>REASON_FAILURE_MESSAGE</item>
+      <item>REQUIRED_VARS</item>
+      <item>VERSION_VAR</item>
+    </list>
+    <list name="find_package_check_version_nargs">
+      <item>HANDLE_VERSION_RANGE</item>
+      <item>RESULT_MESSAGE_VARIABLE</item>
+    </list>
+    <list name="FortranCInterface_HEADER_nargs">
+      <item>MACRO_NAMESPACE</item>
+      <item>SYMBOLS</item>
+      <item>SYMBOL_NAMESPACE</item>
+    </list>
+    <list name="FortranCInterface_VERIFY_nargs">
+      <item>CXX</item>
+      <item>QUIET</item>
+    </list>
+    <list name="generate_export_header_nargs">
+      <item>BASE_NAME</item>
+      <item>CUSTOM_CONTENT_FROM_VARIABLE</item>
+      <item>DEFINE_NO_DEPRECATED</item>
+      <item>DEPRECATED_MACRO_NAME</item>
+      <item>EXPORT_FILE_NAME</item>
+      <item>EXPORT_MACRO_NAME</item>
+      <item>INCLUDE_GUARD_NAME</item>
+      <item>NO_DEPRECATED_MACRO_NAME</item>
+      <item>NO_EXPORT_MACRO_NAME</item>
+      <item>PREFIX_NAME</item>
+      <item>STATIC_DEFINE</item>
+    </list>
+    <list name="gtest_add_tests_nargs">
+      <item>EXTRA_ARGS</item>
+      <item>SKIP_DEPENDENCY</item>
+      <item>SOURCES</item>
+      <item>TARGET</item>
+      <item>TEST_LIST</item>
+      <item>TEST_PREFIX</item>
+      <item>TEST_SUFFIX</item>
+      <item>WORKING_DIRECTORY</item>
+    </list>
+    <list name="gtest_discover_tests_nargs">
+      <item>DISCOVERY_MODE</item>
+      <item>DISCOVERY_TIMEOUT</item>
+      <item>EXTRA_ARGS</item>
+      <item>NO_PRETTY_TYPES</item>
+      <item>NO_PRETTY_VALUES</item>
+      <item>PROPERTIES</item>
+      <item>TEST_FILTER</item>
+      <item>TEST_LIST</item>
+      <item>TEST_PREFIX</item>
+      <item>TEST_SUFFIX</item>
+      <item>WORKING_DIRECTORY</item>
+      <item>XML_OUTPUT_DIR</item>
+    </list>
+    <list name="gtest_discover_tests_sargs">
+      <item>POST_BUILD</item>
+      <item>PRE_TEST</item>
+    </list>
+    <list name="add_jar_nargs">
+      <item>BUILD</item>
+      <item>DESTINATION</item>
+      <item>ENTRY_POINT</item>
+      <item>GENERATE_NATIVE_HEADERS</item>
+      <item>INCLUDE_JARS</item>
+      <item>INSTALL</item>
+      <item>MANIFEST</item>
+      <item>NAMESPACE</item>
+      <item>OUTPUT_DIR</item>
+      <item>OUTPUT_NAME</item>
+      <item>RESOURCES</item>
+      <item>SOURCES</item>
+      <item>VERSION</item>
+    </list>
+    <list name="install_jar_nargs">
+      <item>COMPONENT</item>
+      <item>DESTINATION</item>
+    </list>
+    <list name="create_javah_nargs">
+      <item>CLASSES</item>
+      <item>CLASSPATH</item>
+      <item>DEPENDS</item>
+      <item>GENERATED_FILES</item>
+      <item>OUTPUT_DIR</item>
+      <item>OUTPUT_NAME</item>
+      <item>TARGET</item>
+    </list>
+    <list name="install_jar_exports_nargs">
+      <item>COMPONENT</item>
+      <item>DESTINATION</item>
+      <item>FILE</item>
+      <item>NAMESPACE</item>
+      <item>TARGETS</item>
+    </list>
+    <list name="export_jars_nargs">
+      <item>FILE</item>
+      <item>NAMESPACE</item>
+      <item>TARGETS</item>
+    </list>
+    <list name="find_jar_nargs">
+      <item>DOC</item>
+      <item>ENV</item>
+      <item>NAMES</item>
+      <item>PATHS</item>
+      <item>VERSIONS</item>
+    </list>
+    <list name="create_javadoc_nargs">
+      <item>AUTHOR</item>
+      <item>CLASSPATH</item>
+      <item>DOCTITLE</item>
+      <item>FILES</item>
+      <item>INSTALLPATH</item>
+      <item>PACKAGES</item>
+      <item>SOURCEPATH</item>
+      <item>USE</item>
+      <item>VERSION</item>
+      <item>WINDOWTITLE</item>
+    </list>
+    <list name="swig_add_library_nargs">
+      <item>LANGUAGE</item>
+      <item>MODULE</item>
+      <item>NO_PROXY</item>
+      <item>OUTFILE_DIR</item>
+      <item>OUTPUT_DIR</item>
+      <item>SHARED</item>
+      <item>SOURCES</item>
+      <item>STATIC</item>
+      <item>TYPE</item>
+      <item>USE_BUILD_SHARED_LIBS</item>
+    </list>
+    <list name="squish_add_test_nargs">
+      <item>AUT</item>
+      <item>POST_COMMAND</item>
+      <item>PRE_COMMAND</item>
+      <item>SETTINGSGROUP</item>
+      <item>SUITE</item>
+      <item>TEST</item>
+    </list>
+    <list name="bison_target_nargs">
+      <item>COMPILE_FLAGS</item>
+      <item>DEFINES_FILE</item>
+      <item>REPORT_FILE</item>
+      <item>VERBOSE</item>
+    </list>
+    <list name="doxygen_add_docs_nargs">
+      <item>ALL</item>
+      <item>COMMENT</item>
+      <item>CONFIG_FILE</item>
+      <item>USE_STAMP_FILE</item>
+      <item>WORKING_DIRECTORY</item>
+    </list>
+    <list name="env_module_nargs">
+      <item>COMMAND</item>
+      <item>OUTPUT_VARIABLE</item>
+      <item>RESULT_VARIABLE</item>
+    </list>
+    <list name="env_module_swap_nargs">
+      <item>OUTPUT_VARIABLE</item>
+      <item>RESULT_VARIABLE</item>
+    </list>
+    <list name="flex_target_nargs">
+      <item>COMPILE_FLAGS</item>
+      <item>DEFINES_FILE</item>
+    </list>
+    <list name="gettext_create_translations_nargs">
+      <item>ALL</item>
+    </list>
+    <list name="gettext_process_pot_file_nargs">
+      <item>ALL</item>
+      <item>INSTALL_DESTINATION</item>
+      <item>LANGUAGES</item>
+    </list>
+    <list name="gettext_process_po_files_nargs">
+      <item>ALL</item>
+      <item>INSTALL_DESTINATION</item>
+      <item>PO_FILES</item>
+    </list>
+    <list name="matlab_add_unit_test_nargs">
+      <item>ADDITIONAL_PATH</item>
+      <item>CUSTOM_TEST_COMMAND</item>
+      <item>MATLAB_ADDITIONAL_STARTUP_OPTIONS</item>
+      <item>NAME</item>
+      <item>NO_UNITTEST_FRAMEWORK</item>
+      <item>TEST_ARGS</item>
+      <item>TIMEOUT</item>
+      <item>UNITTEST_FILE</item>
+      <item>UNITTEST_PRECOMMAND</item>
+    </list>
+    <list name="matlab_add_mex_nargs">
+      <item>DOCUMENTATION</item>
+      <item>EXCLUDE_FROM_ALL</item>
+      <item>EXECUTABLE</item>
+      <item>LINK_TO</item>
+      <item>MODULE</item>
+      <item>NAME</item>
+      <item>NO_IMPLICIT_LINK_TO_MATLAB_LIBRARIES</item>
+      <item>OUTPUT_NAME</item>
+      <item>R2017b</item>
+      <item>R2018a</item>
+      <item>SHARED</item>
+      <item>SRC</item>
+    </list>
+    <list name="pkg_check_modules_nargs">
+      <item>GLOBAL</item>
+      <item>IMPORTED_TARGET</item>
+      <item>NO_CMAKE_ENVIRONMENT_PATH</item>
+      <item>NO_CMAKE_PATH</item>
+      <item>QUIET</item>
+      <item>REQUIRED</item>
+      <item>STATIC_TARGET</item>
+    </list>
+    <list name="pkg_get_variable_nargs">
+      <item>DEFINE_VARIABLES</item>
+    </list>
+    <list name="protobuf_generate_cpp_nargs">
+      <item>DESCRIPTORS</item>
+      <item>EXPORT_MACRO</item>
+    </list>
+    <list name="Python_add_library_nargs">
+      <item>MODULE</item>
+      <item>SHARED</item>
+      <item>STATIC</item>
+      <item>WITH_SOABI</item>
+    </list>
+    <list name="Subversion_WC_INFO_nargs">
+      <item>IGNORE_SVN_FAILURE</item>
+    </list>
+
+    <list name="variables">
+      <item>ALSA_LIBRARY</item>
+      <item>ANDROID</item>
+      <item>APPLE</item>
+      <item>ARGC</item>
+      <item>ARGN</item>
+      <item>ARGV</item>
+      <item>ASPELL_DEFINITIONS</item>
+      <item>ASPELL_EXECUTABLE</item>
+      <item>AVIFILE_DEFINITIONS</item>
+      <item>BIBER_COMPILER</item>
+      <item>BIBTEX_COMPILER</item>
+      <item>BISON_EXECUTABLE</item>
+      <item>BLAS_LINKER_FLAGS</item>
+      <item>BLA_F95</item>
+      <item>BLA_PREFER_PKGCONFIG</item>
+      <item>BLA_SIZEOF_INTEGER</item>
+      <item>BLA_STATIC</item>
+      <item>BLA_VENDOR</item>
+      <item>BOOSTROOT</item>
+      <item>BOOST_INCLUDEDIR</item>
+      <item>BOOST_LIBRARYDIR</item>
+      <item>BORLAND</item>
+      <item>BSD</item>
+      <item>BUILD_SHARED_LIBS</item>
+      <item>BUILD_TESTING</item>
+      <item>BU_CHMOD_BUNDLE_ITEMS</item>
+      <item>BZIP2_INCLUDE_DIR</item>
+      <item>BZIP2_NEED_PREFIX</item>
+      <item>Backtrace_HEADER</item>
+      <item>Backtrace_LIBRARY</item>
+      <item>Boost_ADDITIONAL_VERSIONS</item>
+      <item>Boost_ARCHITECTURE</item>
+      <item>Boost_COMPILER</item>
+      <item>Boost_DEBUG</item>
+      <item>Boost_INCLUDE_DIR</item>
+      <item>Boost_LIBRARY_DIR_DEBUG</item>
+      <item>Boost_LIBRARY_DIR_RELEASE</item>
+      <item>Boost_LIB_PREFIX</item>
+      <item>Boost_NAMESPACE</item>
+      <item>Boost_NO_SYSTEM_PATHS</item>
+      <item>Boost_NO_WARN_NEW_VERSIONS</item>
+      <item>Boost_REALPATH</item>
+      <item>Boost_THREADAPI</item>
+      <item>Boost_USE_DEBUG_LIBS</item>
+      <item>Boost_USE_DEBUG_PYTHON</item>
+      <item>Boost_USE_DEBUG_RUNTIME</item>
+      <item>Boost_USE_MULTITHREADED</item>
+      <item>Boost_USE_RELEASE_LIBS</item>
+      <item>Boost_USE_STATIC_LIBS</item>
+      <item>Boost_USE_STLPORT</item>
+      <item>Boost_USE_STLPORT_DEPRECATED_NATIVE_IOSTREAMS</item>
+      <item>Boost_VERSION_COUNT</item>
+      <item>Boost_VERSION_MACRO</item>
+      <item>CABLE</item>
+      <item>CABLE_INCLUDE_DIR</item>
+      <item>CABLE_TCL_LIBRARY</item>
+      <item>CMAKE_ABSOLUTE_DESTINATION_FILES</item>
+      <item>CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY</item>
+      <item>CMAKE_AIX_EXPORT_ALL_SYMBOLS</item>
+      <item>CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS</item>
+      <item>CMAKE_ANDROID_API</item>
+      <item>CMAKE_ANDROID_API_MIN</item>
+      <item>CMAKE_ANDROID_ARCH</item>
+      <item>CMAKE_ANDROID_ARCH_ABI</item>
+      <item>CMAKE_ANDROID_ARM_MODE</item>
+      <item>CMAKE_ANDROID_ARM_NEON</item>
+      <item>CMAKE_ANDROID_ASSETS_DIRECTORIES</item>
+      <item>CMAKE_ANDROID_GUI</item>
+      <item>CMAKE_ANDROID_JAR_DEPENDENCIES</item>
+      <item>CMAKE_ANDROID_JAR_DIRECTORIES</item>
+      <item>CMAKE_ANDROID_JAVA_SOURCE_DIR</item>
+      <item>CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES</item>
+      <item>CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES</item>
+      <item>CMAKE_ANDROID_NDK</item>
+      <item>CMAKE_ANDROID_NDK_DEPRECATED_HEADERS</item>
+      <item>CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG</item>
+      <item>CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION</item>
+      <item>CMAKE_ANDROID_NDK_VERSION</item>
+      <item>CMAKE_ANDROID_PROCESS_MAX</item>
+      <item>CMAKE_ANDROID_PROGUARD</item>
+      <item>CMAKE_ANDROID_PROGUARD_CONFIG_PATH</item>
+      <item>CMAKE_ANDROID_SECURE_PROPS_PATH</item>
+      <item>CMAKE_ANDROID_SKIP_ANT_STEP</item>
+      <item>CMAKE_ANDROID_STANDALONE_TOOLCHAIN</item>
+      <item>CMAKE_ANDROID_STL_TYPE</item>
+      <item>CMAKE_ANSI_CXXFLAGS</item>
+      <item>CMAKE_APPBUNDLE_PATH</item>
+      <item>CMAKE_APPLE_SILICON_PROCESSOR</item>
+      <item>CMAKE_AR</item>
+      <item>CMAKE_ARCHIVE_OUTPUT_DIRECTORY</item>
+      <item>CMAKE_ARGC</item>
+      <item>CMAKE_AUTOGEN_ORIGIN_DEPENDS</item>
+      <item>CMAKE_AUTOGEN_PARALLEL</item>
+      <item>CMAKE_AUTOGEN_USE_SYSTEM_INCLUDE</item>
+      <item>CMAKE_AUTOGEN_VERBOSE</item>
+      <item>CMAKE_AUTOMOC</item>
+      <item>CMAKE_AUTOMOC_DEPEND_FILTERS</item>
+      <item>CMAKE_AUTOMOC_EXECUTABLE</item>
+      <item>CMAKE_AUTOMOC_MOC_OPTIONS</item>
+      <item>CMAKE_AUTOMOC_PATH_PREFIX</item>
+      <item>CMAKE_AUTOMOC_RELAXED_MODE</item>
+      <item>CMAKE_AUTORCC</item>
+      <item>CMAKE_AUTORCC_EXECUTABLE</item>
+      <item>CMAKE_AUTORCC_OPTIONS</item>
+      <item>CMAKE_AUTOUIC</item>
+      <item>CMAKE_AUTOUIC_EXECUTABLE</item>
+      <item>CMAKE_AUTOUIC_OPTIONS</item>
+      <item>CMAKE_AUTOUIC_SEARCH_PATHS</item>
+      <item>CMAKE_BACKWARDS_COMPATIBILITY</item>
+      <item>CMAKE_BINARY_DIR</item>
+      <item>CMAKE_BUILD_RPATH</item>
+      <item>CMAKE_BUILD_RPATH_USE_ORIGIN</item>
+      <item>CMAKE_BUILD_TOOL</item>
+      <item>CMAKE_BUILD_TYPE</item>
+      <item>CMAKE_BUILD_WITH_INSTALL_NAME_DIR</item>
+      <item>CMAKE_BUILD_WITH_INSTALL_RPATH</item>
+      <item>CMAKE_CACHEFILE_DIR</item>
+      <item>CMAKE_CACHE_MAJOR_VERSION</item>
+      <item>CMAKE_CACHE_MINOR_VERSION</item>
+      <item>CMAKE_CACHE_PATCH_VERSION</item>
+      <item>CMAKE_CFG_INTDIR</item>
+      <item>CMAKE_CLANG_VFS_OVERLAY</item>
+      <item>CMAKE_CL_64</item>
+      <item>CMAKE_CODEBLOCKS_COMPILER_ID</item>
+      <item>CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES</item>
+      <item>CMAKE_CODELITE_USE_TARGETS</item>
+      <item>CMAKE_COLOR_DIAGNOSTICS</item>
+      <item>CMAKE_COLOR_MAKEFILE</item>
+      <item>CMAKE_COMMAND</item>
+      <item>CMAKE_COMPILER_2005</item>
+      <item>CMAKE_COMPILER_IS_GNUCC</item>
+      <item>CMAKE_COMPILER_IS_GNUCXX</item>
+      <item>CMAKE_COMPILER_IS_GNUG77</item>
+      <item>CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY</item>
+      <item>CMAKE_COMPILE_WARNING_AS_ERROR</item>
+      <item>CMAKE_CONFIGURATION_TYPES</item>
+      <item>CMAKE_CROSSCOMPILING</item>
+      <item>CMAKE_CROSSCOMPILING_EMULATOR</item>
+      <item>CMAKE_CROSS_CONFIGS</item>
+      <item>CMAKE_CTEST_ARGUMENTS</item>
+      <item>CMAKE_CTEST_COMMAND</item>
+      <item>CMAKE_CUDA_ARCHITECTURES</item>
+      <item>CMAKE_CUDA_COMPILE_FEATURES</item>
+      <item>CMAKE_CUDA_EXTENSIONS</item>
+      <item>CMAKE_CUDA_HOST_COMPILER</item>
+      <item>CMAKE_CUDA_LINK_NO_PIE_SUPPORTED</item>
+      <item>CMAKE_CUDA_LINK_PIE_SUPPORTED</item>
+      <item>CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS</item>
+      <item>CMAKE_CUDA_RUNTIME_LIBRARY</item>
+      <item>CMAKE_CUDA_SEPARABLE_COMPILATION</item>
+      <item>CMAKE_CUDA_STANDARD</item>
+      <item>CMAKE_CUDA_STANDARD_REQUIRED</item>
+      <item>CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES</item>
+      <item>CMAKE_CURRENT_BINARY_DIR</item>
+      <item>CMAKE_CURRENT_FUNCTION</item>
+      <item>CMAKE_CURRENT_FUNCTION_LIST_DIR</item>
+      <item>CMAKE_CURRENT_FUNCTION_LIST_FILE</item>
+      <item>CMAKE_CURRENT_FUNCTION_LIST_LINE</item>
+      <item>CMAKE_CURRENT_LIST_DIR</item>
+      <item>CMAKE_CURRENT_LIST_FILE</item>
+      <item>CMAKE_CURRENT_LIST_LINE</item>
+      <item>CMAKE_CURRENT_SOURCE_DIR</item>
+      <item>CMAKE_CXX_COMPILE_FEATURES</item>
+      <item>CMAKE_CXX_EXTENSIONS</item>
+      <item>CMAKE_CXX_LINK_NO_PIE_SUPPORTED</item>
+      <item>CMAKE_CXX_LINK_PIE_SUPPORTED</item>
+      <item>CMAKE_CXX_SCAN_FOR_MODULES</item>
+      <item>CMAKE_CXX_STANDARD</item>
+      <item>CMAKE_CXX_STANDARD_REQUIRED</item>
+      <item>CMAKE_C_COMPILE_FEATURES</item>
+      <item>CMAKE_C_EXTENSIONS</item>
+      <item>CMAKE_C_LINK_NO_PIE_SUPPORTED</item>
+      <item>CMAKE_C_LINK_PIE_SUPPORTED</item>
+      <item>CMAKE_C_STANDARD</item>
+      <item>CMAKE_C_STANDARD_REQUIRED</item>
+      <item>CMAKE_DEBUG_POSTFIX</item>
+      <item>CMAKE_DEBUG_TARGET_PROPERTIES</item>
+      <item>CMAKE_DEFAULT_BUILD_TYPE</item>
+      <item>CMAKE_DEFAULT_CONFIGS</item>
+      <item>CMAKE_DEPENDS_IN_PROJECT_ONLY</item>
+      <item>CMAKE_DIRECTORY_LABELS</item>
+      <item>CMAKE_DISABLE_PRECOMPILE_HEADERS</item>
+      <item>CMAKE_DLL_NAME_WITH_SOVERSION</item>
+      <item>CMAKE_DL_LIBS</item>
+      <item>CMAKE_DOTNET_SDK</item>
+      <item>CMAKE_DOTNET_TARGET_FRAMEWORK</item>
+      <item>CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION</item>
+      <item>CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES</item>
+      <item>CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT</item>
+      <item>CMAKE_ECLIPSE_MAKE_ARGUMENTS</item>
+      <item>CMAKE_ECLIPSE_RESOURCE_ENCODING</item>
+      <item>CMAKE_ECLIPSE_VERSION</item>
+      <item>CMAKE_EDIT_COMMAND</item>
+      <item>CMAKE_ERROR_DEPRECATED</item>
+      <item>CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION</item>
+      <item>CMAKE_EXECUTABLE_ENABLE_EXPORTS</item>
+      <item>CMAKE_EXECUTABLE_SUFFIX</item>
+      <item>CMAKE_EXECUTE_PROCESS_COMMAND_ECHO</item>
+      <item>CMAKE_EXE_LINKER_FLAGS</item>
+      <item>CMAKE_EXE_LINKER_FLAGS_INIT</item>
+      <item>CMAKE_EXPORT_COMPILE_COMMANDS</item>
+      <item>CMAKE_EXPORT_NO_PACKAGE_REGISTRY</item>
+      <item>CMAKE_EXPORT_PACKAGE_REGISTRY</item>
+      <item>CMAKE_EXTRA_GENERATOR</item>
+      <item>CMAKE_EXTRA_INCLUDE_FILES</item>
+      <item>CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES</item>
+      <item>CMAKE_FIND_APPBUNDLE</item>
+      <item>CMAKE_FIND_DEBUG_MODE</item>
+      <item>CMAKE_FIND_FRAMEWORK</item>
+      <item>CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS</item>
+      <item>CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX</item>
+      <item>CMAKE_FIND_LIBRARY_PREFIXES</item>
+      <item>CMAKE_FIND_LIBRARY_SUFFIXES</item>
+      <item>CMAKE_FIND_NO_INSTALL_PREFIX</item>
+      <item>CMAKE_FIND_PACKAGE_NAME</item>
+      <item>CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY</item>
+      <item>CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY</item>
+      <item>CMAKE_FIND_PACKAGE_PREFER_CONFIG</item>
+      <item>CMAKE_FIND_PACKAGE_REDIRECTS_DIR</item>
+      <item>CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS</item>
+      <item>CMAKE_FIND_PACKAGE_SORT_DIRECTION</item>
+      <item>CMAKE_FIND_PACKAGE_SORT_ORDER</item>
+      <item>CMAKE_FIND_PACKAGE_TARGETS_GLOBAL</item>
+      <item>CMAKE_FIND_PACKAGE_WARN_NO_MODULE</item>
+      <item>CMAKE_FIND_ROOT_PATH</item>
+      <item>CMAKE_FIND_ROOT_PATH_MODE_INCLUDE</item>
+      <item>CMAKE_FIND_ROOT_PATH_MODE_LIBRARY</item>
+      <item>CMAKE_FIND_ROOT_PATH_MODE_PACKAGE</item>
+      <item>CMAKE_FIND_ROOT_PATH_MODE_PROGRAM</item>
+      <item>CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH</item>
+      <item>CMAKE_FIND_USE_CMAKE_PATH</item>
+      <item>CMAKE_FIND_USE_CMAKE_SYSTEM_PATH</item>
+      <item>CMAKE_FIND_USE_INSTALL_PREFIX</item>
+      <item>CMAKE_FIND_USE_PACKAGE_REGISTRY</item>
+      <item>CMAKE_FIND_USE_PACKAGE_ROOT_PATH</item>
+      <item>CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH</item>
+      <item>CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY</item>
+      <item>CMAKE_FOLDER</item>
+      <item>CMAKE_FRAMEWORK</item>
+      <item>CMAKE_FRAMEWORK_PATH</item>
+      <item>CMAKE_Fortran_FORMAT</item>
+      <item>CMAKE_Fortran_LINK_NO_PIE_SUPPORTED</item>
+      <item>CMAKE_Fortran_LINK_PIE_SUPPORTED</item>
+      <item>CMAKE_Fortran_MODDIR_DEFAULT</item>
+      <item>CMAKE_Fortran_MODDIR_FLAG</item>
+      <item>CMAKE_Fortran_MODOUT_FLAG</item>
+      <item>CMAKE_Fortran_MODULE_DIRECTORY</item>
+      <item>CMAKE_Fortran_PREPROCESS</item>
+      <item>CMAKE_GENERATOR</item>
+      <item>CMAKE_GENERATOR_INSTANCE</item>
+      <item>CMAKE_GENERATOR_NO_COMPILER_ENV</item>
+      <item>CMAKE_GENERATOR_PLATFORM</item>
+      <item>CMAKE_GENERATOR_TOOLSET</item>
+      <item>CMAKE_GET_OS_RELEASE_FALLBACK_RESULT</item>
+      <item>CMAKE_GET_OS_RELEASE_FALLBACK_SCRIPTS</item>
+      <item>CMAKE_GET_RUNTIME_DEPENDENCIES_COMMAND</item>
+      <item>CMAKE_GET_RUNTIME_DEPENDENCIES_PLATFORM</item>
+      <item>CMAKE_GET_RUNTIME_DEPENDENCIES_TOOL</item>
+      <item>CMAKE_GLOBAL_AUTOGEN_TARGET</item>
+      <item>CMAKE_GLOBAL_AUTOGEN_TARGET_NAME</item>
+      <item>CMAKE_GLOBAL_AUTORCC_TARGET</item>
+      <item>CMAKE_GLOBAL_AUTORCC_TARGET_NAME</item>
+      <item>CMAKE_GNUtoMS</item>
+      <item>CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE</item>
+      <item>CMAKE_HAS_ANSI_STRING_STREAM</item>
+      <item>CMAKE_HIP_ARCHITECTURES</item>
+      <item>CMAKE_HIP_EXTENSIONS</item>
+      <item>CMAKE_HIP_LINK_NO_PIE_SUPPORTED</item>
+      <item>CMAKE_HIP_LINK_PIE_SUPPORTED</item>
+      <item>CMAKE_HIP_PLATFORM</item>
+      <item>CMAKE_HIP_STANDARD</item>
+      <item>CMAKE_HIP_STANDARD_REQUIRED</item>
+      <item>CMAKE_HOST_APPLE</item>
+      <item>CMAKE_HOST_BSD</item>
+      <item>CMAKE_HOST_LINUX</item>
+      <item>CMAKE_HOST_SOLARIS</item>
+      <item>CMAKE_HOST_SYSTEM</item>
+      <item>CMAKE_HOST_SYSTEM_NAME</item>
+      <item>CMAKE_HOST_SYSTEM_PROCESSOR</item>
+      <item>CMAKE_HOST_SYSTEM_VERSION</item>
+      <item>CMAKE_HOST_UNIX</item>
+      <item>CMAKE_HOST_WIN32</item>
+      <item>CMAKE_HP_PTHREADS_INIT</item>
+      <item>CMAKE_IGNORE_PATH</item>
+      <item>CMAKE_IGNORE_PREFIX_PATH</item>
+      <item>CMAKE_IMPORT_LIBRARY_PREFIX</item>
+      <item>CMAKE_IMPORT_LIBRARY_SUFFIX</item>
+      <item>CMAKE_INCLUDE_CURRENT_DIR</item>
+      <item>CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE</item>
+      <item>CMAKE_INCLUDE_DIRECTORIES_BEFORE</item>
+      <item>CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE</item>
+      <item>CMAKE_INCLUDE_PATH</item>
+      <item>CMAKE_INSTALL_BINDIR</item>
+      <item>CMAKE_INSTALL_DATADIR</item>
+      <item>CMAKE_INSTALL_DATAROOTDIR</item>
+      <item>CMAKE_INSTALL_DEBUG_LIBRARIES</item>
+      <item>CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY</item>
+      <item>CMAKE_INSTALL_DEFAULT_COMPONENT_NAME</item>
+      <item>CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS</item>
+      <item>CMAKE_INSTALL_DOCDIR</item>
+      <item>CMAKE_INSTALL_FULL_BINDIR</item>
+      <item>CMAKE_INSTALL_FULL_DATADIR</item>
+      <item>CMAKE_INSTALL_FULL_DATAROOTDIR</item>
+      <item>CMAKE_INSTALL_FULL_DOCDIR</item>
+      <item>CMAKE_INSTALL_FULL_INCLUDEDIR</item>
+      <item>CMAKE_INSTALL_FULL_INFODIR</item>
+      <item>CMAKE_INSTALL_FULL_LIBDIR</item>
+      <item>CMAKE_INSTALL_FULL_LIBEXECDIR</item>
+      <item>CMAKE_INSTALL_FULL_LOCALEDIR</item>
+      <item>CMAKE_INSTALL_FULL_LOCALSTATEDIR</item>
+      <item>CMAKE_INSTALL_FULL_MANDIR</item>
+      <item>CMAKE_INSTALL_FULL_OLDINCLUDEDIR</item>
+      <item>CMAKE_INSTALL_FULL_RUNSTATEDIR</item>
+      <item>CMAKE_INSTALL_FULL_SBINDIR</item>
+      <item>CMAKE_INSTALL_FULL_SHAREDSTATEDIR</item>
+      <item>CMAKE_INSTALL_FULL_SYSCONFDIR</item>
+      <item>CMAKE_INSTALL_INCLUDEDIR</item>
+      <item>CMAKE_INSTALL_INFODIR</item>
+      <item>CMAKE_INSTALL_LIBDIR</item>
+      <item>CMAKE_INSTALL_LIBEXECDIR</item>
+      <item>CMAKE_INSTALL_LOCALEDIR</item>
+      <item>CMAKE_INSTALL_LOCALSTATEDIR</item>
+      <item>CMAKE_INSTALL_MANDIR</item>
+      <item>CMAKE_INSTALL_MESSAGE</item>
+      <item>CMAKE_INSTALL_MFC_LIBRARIES</item>
+      <item>CMAKE_INSTALL_NAME_DIR</item>
+      <item>CMAKE_INSTALL_OLDINCLUDEDIR</item>
+      <item>CMAKE_INSTALL_OPENMP_LIBRARIES</item>
+      <item>CMAKE_INSTALL_PREFIX</item>
+      <item>CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT</item>
+      <item>CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH</item>
+      <item>CMAKE_INSTALL_RPATH</item>
+      <item>CMAKE_INSTALL_RPATH_USE_LINK_PATH</item>
+      <item>CMAKE_INSTALL_RUNSTATEDIR</item>
+      <item>CMAKE_INSTALL_SBINDIR</item>
+      <item>CMAKE_INSTALL_SHAREDSTATEDIR</item>
+      <item>CMAKE_INSTALL_SYSCONFDIR</item>
+      <item>CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT</item>
+      <item>CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION</item>
+      <item>CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS</item>
+      <item>CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS</item>
+      <item>CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP</item>
+      <item>CMAKE_INSTALL_UCRT_LIBRARIES</item>
+      <item>CMAKE_INTERPROCEDURAL_OPTIMIZATION</item>
+      <item>CMAKE_ISPC_HEADER_DIRECTORY</item>
+      <item>CMAKE_ISPC_HEADER_SUFFIX</item>
+      <item>CMAKE_ISPC_INSTRUCTION_SETS</item>
+      <item>CMAKE_JAR_CLASSES_PREFIX</item>
+      <item>CMAKE_JAVA_COMPILE_FLAGS</item>
+      <item>CMAKE_JAVA_INCLUDE_PATH</item>
+      <item>CMAKE_JNI_TARGET</item>
+      <item>CMAKE_JOB_POOLS</item>
+      <item>CMAKE_JOB_POOL_COMPILE</item>
+      <item>CMAKE_JOB_POOL_LINK</item>
+      <item>CMAKE_LIBRARY_ARCHITECTURE</item>
+      <item>CMAKE_LIBRARY_ARCHITECTURE_REGEX</item>
+      <item>CMAKE_LIBRARY_OUTPUT_DIRECTORY</item>
+      <item>CMAKE_LIBRARY_PATH</item>
+      <item>CMAKE_LIBRARY_PATH_FLAG</item>
+      <item>CMAKE_LINK_DEF_FILE_FLAG</item>
+      <item>CMAKE_LINK_DEPENDS_NO_SHARED</item>
+      <item>CMAKE_LINK_DEPENDS_USE_LINKER</item>
+      <item>CMAKE_LINK_DIRECTORIES_BEFORE</item>
+      <item>CMAKE_LINK_INTERFACE_LIBRARIES</item>
+      <item>CMAKE_LINK_LIBRARIES_ONLY_TARGETS</item>
+      <item>CMAKE_LINK_LIBRARY_FILE_FLAG</item>
+      <item>CMAKE_LINK_LIBRARY_FLAG</item>
+      <item>CMAKE_LINK_LIBRARY_SUFFIX</item>
+      <item>CMAKE_LINK_SEARCH_END_STATIC</item>
+      <item>CMAKE_LINK_SEARCH_START_STATIC</item>
+      <item>CMAKE_LINK_WHAT_YOU_USE</item>
+      <item>CMAKE_LINK_WHAT_YOU_USE_CHECK</item>
+      <item>CMAKE_MACOSX_BUNDLE</item>
+      <item>CMAKE_MACOSX_RPATH</item>
+      <item>CMAKE_MAJOR_VERSION</item>
+      <item>CMAKE_MAKE_PROGRAM</item>
+      <item>CMAKE_MATCH_COUNT</item>
+      <item>CMAKE_MAXIMUM_RECURSION_DEPTH</item>
+      <item>CMAKE_MESSAGE_CONTEXT</item>
+      <item>CMAKE_MESSAGE_CONTEXT_SHOW</item>
+      <item>CMAKE_MESSAGE_INDENT</item>
+      <item>CMAKE_MESSAGE_LOG_LEVEL</item>
+      <item>CMAKE_MFC_FLAG</item>
+      <item>CMAKE_MINIMUM_REQUIRED_VERSION</item>
+      <item>CMAKE_MINOR_VERSION</item>
+      <item>CMAKE_MODULE_LINKER_FLAGS</item>
+      <item>CMAKE_MODULE_LINKER_FLAGS_INIT</item>
+      <item>CMAKE_MODULE_PATH</item>
+      <item>CMAKE_MSVCIDE_RUN_PATH</item>
+      <item>CMAKE_MSVC_DEBUG_INFORMATION_FORMAT</item>
+      <item>CMAKE_MSVC_RUNTIME_LIBRARY</item>
+      <item>CMAKE_NETRC</item>
+      <item>CMAKE_NETRC_FILE</item>
+      <item>CMAKE_NINJA_OUTPUT_PATH_PREFIX</item>
+      <item>CMAKE_NO_ANSI_FOR_SCOPE</item>
+      <item>CMAKE_NO_ANSI_STREAM_HEADERS</item>
+      <item>CMAKE_NO_ANSI_STRING_STREAM</item>
+      <item>CMAKE_NO_BUILTIN_CHRPATH</item>
+      <item>CMAKE_NO_STD_NAMESPACE</item>
+      <item>CMAKE_NO_SYSTEM_FROM_IMPORTED</item>
+      <item>CMAKE_OBJCXX_EXTENSIONS</item>
+      <item>CMAKE_OBJCXX_LINK_NO_PIE_SUPPORTED</item>
+      <item>CMAKE_OBJCXX_LINK_PIE_SUPPORTED</item>
+      <item>CMAKE_OBJCXX_STANDARD</item>
+      <item>CMAKE_OBJCXX_STANDARD_REQUIRED</item>
+      <item>CMAKE_OBJC_EXTENSIONS</item>
+      <item>CMAKE_OBJC_LINK_NO_PIE_SUPPORTED</item>
+      <item>CMAKE_OBJC_LINK_PIE_SUPPORTED</item>
+      <item>CMAKE_OBJC_STANDARD</item>
+      <item>CMAKE_OBJC_STANDARD_REQUIRED</item>
+      <item>CMAKE_OBJECT_PATH_MAX</item>
+      <item>CMAKE_OPTIMIZE_DEPENDENCIES</item>
+      <item>CMAKE_OSX_ARCHITECTURES</item>
+      <item>CMAKE_OSX_DEPLOYMENT_TARGET</item>
+      <item>CMAKE_OSX_SYSROOT</item>
+      <item>CMAKE_PARENT_LIST_FILE</item>
+      <item>CMAKE_PATCH_VERSION</item>
+      <item>CMAKE_PCH_INSTANTIATE_TEMPLATES</item>
+      <item>CMAKE_PCH_WARN_INVALID</item>
+      <item>CMAKE_PDB_OUTPUT_DIRECTORY</item>
+      <item>CMAKE_PLATFORM_NO_VERSIONED_SONAME</item>
+      <item>CMAKE_POSITION_INDEPENDENT_CODE</item>
+      <item>CMAKE_PREFIX_PATH</item>
+      <item>CMAKE_PROGRAM_PATH</item>
+      <item>CMAKE_PROJECT_DESCRIPTION</item>
+      <item>CMAKE_PROJECT_HOMEPAGE_URL</item>
+      <item>CMAKE_PROJECT_INCLUDE</item>
+      <item>CMAKE_PROJECT_INCLUDE_BEFORE</item>
+      <item>CMAKE_PROJECT_NAME</item>
+      <item>CMAKE_PROJECT_TOP_LEVEL_INCLUDES</item>
+      <item>CMAKE_PROJECT_VERSION</item>
+      <item>CMAKE_PROJECT_VERSION_MAJOR</item>
+      <item>CMAKE_PROJECT_VERSION_MINOR</item>
+      <item>CMAKE_PROJECT_VERSION_PATCH</item>
+      <item>CMAKE_PROJECT_VERSION_TWEAK</item>
+      <item>CMAKE_RANLIB</item>
+      <item>CMAKE_REQUIRED_DEFINITIONS</item>
+      <item>CMAKE_REQUIRED_FLAGS</item>
+      <item>CMAKE_REQUIRED_INCLUDES</item>
+      <item>CMAKE_REQUIRED_LIBRARIES</item>
+      <item>CMAKE_REQUIRED_LINK_OPTIONS</item>
+      <item>CMAKE_REQUIRED_QUIET</item>
+      <item>CMAKE_ROOT</item>
+      <item>CMAKE_RUNTIME_OUTPUT_DIRECTORY</item>
+      <item>CMAKE_SCRIPT_MODE_FILE</item>
+      <item>CMAKE_SHARED_LIBRARY_ENABLE_EXPORTS</item>
+      <item>CMAKE_SHARED_LIBRARY_PREFIX</item>
+      <item>CMAKE_SHARED_LIBRARY_SUFFIX</item>
+      <item>CMAKE_SHARED_LINKER_FLAGS</item>
+      <item>CMAKE_SHARED_LINKER_FLAGS_INIT</item>
+      <item>CMAKE_SHARED_MODULE_PREFIX</item>
+      <item>CMAKE_SHARED_MODULE_SUFFIX</item>
+      <item>CMAKE_SIZEOF_VOID_P</item>
+      <item>CMAKE_SKIP_BUILD_RPATH</item>
+      <item>CMAKE_SKIP_INSTALL_ALL_DEPENDENCY</item>
+      <item>CMAKE_SKIP_INSTALL_RPATH</item>
+      <item>CMAKE_SKIP_INSTALL_RULES</item>
+      <item>CMAKE_SKIP_RPATH</item>
+      <item>CMAKE_SOURCE_DIR</item>
+      <item>CMAKE_STAGING_PREFIX</item>
+      <item>CMAKE_STATIC_LIBRARY_PREFIX</item>
+      <item>CMAKE_STATIC_LIBRARY_SUFFIX</item>
+      <item>CMAKE_STATIC_LINKER_FLAGS</item>
+      <item>CMAKE_STATIC_LINKER_FLAGS_INIT</item>
+      <item>CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS</item>
+      <item>CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE</item>
+      <item>CMAKE_SUPPRESS_REGENERATION</item>
+      <item>CMAKE_SWIG_FLAGS</item>
+      <item>CMAKE_SWIG_OUTDIR</item>
+      <item>CMAKE_SYSROOT</item>
+      <item>CMAKE_SYSROOT_COMPILE</item>
+      <item>CMAKE_SYSROOT_LINK</item>
+      <item>CMAKE_SYSTEM</item>
+      <item>CMAKE_SYSTEM_APPBUNDLE_PATH</item>
+      <item>CMAKE_SYSTEM_FRAMEWORK_PATH</item>
+      <item>CMAKE_SYSTEM_IGNORE_PATH</item>
+      <item>CMAKE_SYSTEM_IGNORE_PREFIX_PATH</item>
+      <item>CMAKE_SYSTEM_INCLUDE_PATH</item>
+      <item>CMAKE_SYSTEM_LIBRARY_PATH</item>
+      <item>CMAKE_SYSTEM_NAME</item>
+      <item>CMAKE_SYSTEM_PREFIX_PATH</item>
+      <item>CMAKE_SYSTEM_PROCESSOR</item>
+      <item>CMAKE_SYSTEM_PROGRAM_PATH</item>
+      <item>CMAKE_SYSTEM_VERSION</item>
+      <item>CMAKE_Swift_LANGUAGE_VERSION</item>
+      <item>CMAKE_Swift_MODULE_DIRECTORY</item>
+      <item>CMAKE_TASKING_TOOLSET</item>
+      <item>CMAKE_THREAD_LIBS_INIT</item>
+      <item>CMAKE_THREAD_PREFER_PTHREAD</item>
+      <item>CMAKE_TOOLCHAIN_FILE</item>
+      <item>CMAKE_TRY_COMPILE_CONFIGURATION</item>
+      <item>CMAKE_TRY_COMPILE_NO_PLATFORM_VARIABLES</item>
+      <item>CMAKE_TRY_COMPILE_PLATFORM_VARIABLES</item>
+      <item>CMAKE_TRY_COMPILE_TARGET_TYPE</item>
+      <item>CMAKE_TWEAK_VERSION</item>
+      <item>CMAKE_UNITY_BUILD</item>
+      <item>CMAKE_UNITY_BUILD_BATCH_SIZE</item>
+      <item>CMAKE_USER_MAKE_RULES_OVERRIDE</item>
+      <item>CMAKE_USE_PTHREADS_INIT</item>
+      <item>CMAKE_USE_RELATIVE_PATHS</item>
+      <item>CMAKE_USE_SPROC_INIT</item>
+      <item>CMAKE_USE_WIN32_THREADS_INIT</item>
+      <item>CMAKE_VERBOSE_MAKEFILE</item>
+      <item>CMAKE_VERIFY_INTERFACE_HEADER_SETS</item>
+      <item>CMAKE_VERSION</item>
+      <item>CMAKE_VISIBILITY_INLINES_HIDDEN</item>
+      <item>CMAKE_VS_DEBUGGER_COMMAND</item>
+      <item>CMAKE_VS_DEBUGGER_COMMAND_ARGUMENTS</item>
+      <item>CMAKE_VS_DEBUGGER_ENVIRONMENT</item>
+      <item>CMAKE_VS_DEBUGGER_WORKING_DIRECTORY</item>
+      <item>CMAKE_VS_DEVENV_COMMAND</item>
+      <item>CMAKE_VS_GLOBALS</item>
+      <item>CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD</item>
+      <item>CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD</item>
+      <item>CMAKE_VS_JUST_MY_CODE_DEBUGGING</item>
+      <item>CMAKE_VS_MSBUILD_COMMAND</item>
+      <item>CMAKE_VS_NUGET_PACKAGE_RESTORE</item>
+      <item>CMAKE_VS_NsightTegra_VERSION</item>
+      <item>CMAKE_VS_PLATFORM_NAME</item>
+      <item>CMAKE_VS_PLATFORM_NAME_DEFAULT</item>
+      <item>CMAKE_VS_PLATFORM_TOOLSET</item>
+      <item>CMAKE_VS_PLATFORM_TOOLSET_CUDA</item>
+      <item>CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR</item>
+      <item>CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE</item>
+      <item>CMAKE_VS_PLATFORM_TOOLSET_VERSION</item>
+      <item>CMAKE_VS_SDK_EXCLUDE_DIRECTORIES</item>
+      <item>CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES</item>
+      <item>CMAKE_VS_SDK_INCLUDE_DIRECTORIES</item>
+      <item>CMAKE_VS_SDK_LIBRARY_DIRECTORIES</item>
+      <item>CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES</item>
+      <item>CMAKE_VS_SDK_REFERENCE_DIRECTORIES</item>
+      <item>CMAKE_VS_SDK_SOURCE_DIRECTORIES</item>
+      <item>CMAKE_VS_TARGET_FRAMEWORK_IDENTIFIER</item>
+      <item>CMAKE_VS_TARGET_FRAMEWORK_TARGETS_VERSION</item>
+      <item>CMAKE_VS_TARGET_FRAMEWORK_VERSION</item>
+      <item>CMAKE_VS_VERSION_BUILD_NUMBER</item>
+      <item>CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION</item>
+      <item>CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION</item>
+      <item>CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM</item>
+      <item>CMAKE_VS_WINRT_BY_DEFAULT</item>
+      <item>CMAKE_WARN_DEPRECATED</item>
+      <item>CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION</item>
+      <item>CMAKE_WATCOM_RUNTIME_LIBRARY</item>
+      <item>CMAKE_WIN32_EXECUTABLE</item>
+      <item>CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS</item>
+      <item>CMAKE_XCODE_BUILD_SYSTEM</item>
+      <item>CMAKE_XCODE_GENERATE_SCHEME</item>
+      <item>CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY</item>
+      <item>CMAKE_XCODE_LINK_BUILD_PHASE_MODE</item>
+      <item>CMAKE_XCODE_PLATFORM_TOOLSET</item>
+      <item>CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER</item>
+      <item>CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN</item>
+      <item>CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING</item>
+      <item>CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER</item>
+      <item>CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS</item>
+      <item>CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE</item>
+      <item>CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION</item>
+      <item>CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE</item>
+      <item>CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION</item>
+      <item>CMAKE_XCODE_SCHEME_ENVIRONMENT</item>
+      <item>CMAKE_XCODE_SCHEME_GUARD_MALLOC</item>
+      <item>CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION</item>
+      <item>CMAKE_XCODE_SCHEME_LAUNCH_MODE</item>
+      <item>CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP</item>
+      <item>CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES</item>
+      <item>CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE</item>
+      <item>CMAKE_XCODE_SCHEME_MALLOC_STACK</item>
+      <item>CMAKE_XCODE_SCHEME_THREAD_SANITIZER</item>
+      <item>CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP</item>
+      <item>CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER</item>
+      <item>CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP</item>
+      <item>CMAKE_XCODE_SCHEME_WORKING_DIRECTORY</item>
+      <item>CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS</item>
+      <item>CMAKE_XCODE_XCCONFIG</item>
+      <item>CPACK_ABSOLUTE_DESTINATION_FILES</item>
+      <item>CPACK_ARCHIVE_COMPONENT_INSTALL</item>
+      <item>CPACK_ARCHIVE_FILE_EXTENSION</item>
+      <item>CPACK_ARCHIVE_FILE_NAME</item>
+      <item>CPACK_ARCHIVE_THREADS</item>
+      <item>CPACK_BUILD_SOURCE_DIRS</item>
+      <item>CPACK_BUNDLE_APPLE_CERT_APP</item>
+      <item>CPACK_BUNDLE_APPLE_CODESIGN_FILES</item>
+      <item>CPACK_BUNDLE_APPLE_CODESIGN_PARAMETER</item>
+      <item>CPACK_BUNDLE_APPLE_ENTITLEMENTS</item>
+      <item>CPACK_BUNDLE_ICON</item>
+      <item>CPACK_BUNDLE_NAME</item>
+      <item>CPACK_BUNDLE_PLIST</item>
+      <item>CPACK_BUNDLE_STARTUP_COMMAND</item>
+      <item>CPACK_CMAKE_GENERATOR</item>
+      <item>CPACK_COMMAND_CODESIGN</item>
+      <item>CPACK_COMMAND_HDIUTIL</item>
+      <item>CPACK_COMMAND_PKGBUILD</item>
+      <item>CPACK_COMMAND_PRODUCTBUILD</item>
+      <item>CPACK_COMMAND_REZ</item>
+      <item>CPACK_COMMAND_SETFILE</item>
+      <item>CPACK_COMPONENTS_ALL</item>
+      <item>CPACK_COMPONENTS_GROUPING</item>
+      <item>CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY</item>
+      <item>CPACK_CREATE_DESKTOP_LINKS</item>
+      <item>CPACK_CUSTOM_INSTALL_VARIABLES</item>
+      <item>CPACK_CYGWIN_BUILD_SCRIPT</item>
+      <item>CPACK_CYGWIN_PATCH_FILE</item>
+      <item>CPACK_CYGWIN_PATCH_NUMBER</item>
+      <item>CPACK_DEBIAN_ARCHIVE_TYPE</item>
+      <item>CPACK_DEBIAN_COMPRESSION_TYPE</item>
+      <item>CPACK_DEBIAN_DEBUGINFO_PACKAGE</item>
+      <item>CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS</item>
+      <item>CPACK_DEBIAN_FILE_NAME</item>
+      <item>CPACK_DEBIAN_PACKAGE_ARCHITECTURE</item>
+      <item>CPACK_DEBIAN_PACKAGE_BREAKS</item>
+      <item>CPACK_DEBIAN_PACKAGE_CONFLICTS</item>
+      <item>CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA</item>
+      <item>CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION</item>
+      <item>CPACK_DEBIAN_PACKAGE_DEBUG</item>
+      <item>CPACK_DEBIAN_PACKAGE_DEPENDS</item>
+      <item>CPACK_DEBIAN_PACKAGE_DESCRIPTION</item>
+      <item>CPACK_DEBIAN_PACKAGE_ENHANCES</item>
+      <item>CPACK_DEBIAN_PACKAGE_EPOCH</item>
+      <item>CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS</item>
+      <item>CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY</item>
+      <item>CPACK_DEBIAN_PACKAGE_HOMEPAGE</item>
+      <item>CPACK_DEBIAN_PACKAGE_MAINTAINER</item>
+      <item>CPACK_DEBIAN_PACKAGE_NAME</item>
+      <item>CPACK_DEBIAN_PACKAGE_PREDEPENDS</item>
+      <item>CPACK_DEBIAN_PACKAGE_PRIORITY</item>
+      <item>CPACK_DEBIAN_PACKAGE_PROVIDES</item>
+      <item>CPACK_DEBIAN_PACKAGE_RECOMMENDS</item>
+      <item>CPACK_DEBIAN_PACKAGE_RELEASE</item>
+      <item>CPACK_DEBIAN_PACKAGE_REPLACES</item>
+      <item>CPACK_DEBIAN_PACKAGE_SECTION</item>
+      <item>CPACK_DEBIAN_PACKAGE_SHLIBDEPS</item>
+      <item>CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS</item>
+      <item>CPACK_DEBIAN_PACKAGE_SOURCE</item>
+      <item>CPACK_DEBIAN_PACKAGE_SUGGESTS</item>
+      <item>CPACK_DEBIAN_PACKAGE_VERSION</item>
+      <item>CPACK_DEB_COMPONENT_INSTALL</item>
+      <item>CPACK_DMG_BACKGROUND_IMAGE</item>
+      <item>CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK</item>
+      <item>CPACK_DMG_DS_STORE</item>
+      <item>CPACK_DMG_DS_STORE_SETUP_SCRIPT</item>
+      <item>CPACK_DMG_FILESYSTEM</item>
+      <item>CPACK_DMG_FORMAT</item>
+      <item>CPACK_DMG_SLA_DIR</item>
+      <item>CPACK_DMG_SLA_LANGUAGES</item>
+      <item>CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE</item>
+      <item>CPACK_DMG_VOLUME_NAME</item>
+      <item>CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION</item>
+      <item>CPACK_EXTERNAL_BUILT_PACKAGES</item>
+      <item>CPACK_EXTERNAL_ENABLE_STAGING</item>
+      <item>CPACK_EXTERNAL_PACKAGE_SCRIPT</item>
+      <item>CPACK_EXTERNAL_REQUESTED_VERSIONS</item>
+      <item>CPACK_FREEBSD_PACKAGE_CATEGORIES</item>
+      <item>CPACK_FREEBSD_PACKAGE_COMMENT</item>
+      <item>CPACK_FREEBSD_PACKAGE_DEPS</item>
+      <item>CPACK_FREEBSD_PACKAGE_DESCRIPTION</item>
+      <item>CPACK_FREEBSD_PACKAGE_LICENSE</item>
+      <item>CPACK_FREEBSD_PACKAGE_LICENSE_LOGIC</item>
+      <item>CPACK_FREEBSD_PACKAGE_MAINTAINER</item>
+      <item>CPACK_FREEBSD_PACKAGE_NAME</item>
+      <item>CPACK_FREEBSD_PACKAGE_ORIGIN</item>
+      <item>CPACK_FREEBSD_PACKAGE_WWW</item>
+      <item>CPACK_GENERATOR</item>
+      <item>CPACK_IFW_ADMIN_TARGET_DIRECTORY</item>
+      <item>CPACK_IFW_ARCHIVE_COMPRESSION</item>
+      <item>CPACK_IFW_ARCHIVE_FORMAT</item>
+      <item>CPACK_IFW_BINARYCREATOR_EXECUTABLE</item>
+      <item>CPACK_IFW_DEVTOOL_EXECUTABLE</item>
+      <item>CPACK_IFW_DOWNLOAD_ALL</item>
+      <item>CPACK_IFW_FRAMEWORK_VERSION</item>
+      <item>CPACK_IFW_INSTALLERBASE_EXECUTABLE</item>
+      <item>CPACK_IFW_PACKAGES_DIRECTORIES</item>
+      <item>CPACK_IFW_PACKAGE_ALLOW_NON_ASCII_CHARACTERS</item>
+      <item>CPACK_IFW_PACKAGE_ALLOW_SPACE_IN_PATH</item>
+      <item>CPACK_IFW_PACKAGE_BACKGROUND</item>
+      <item>CPACK_IFW_PACKAGE_BANNER</item>
+      <item>CPACK_IFW_PACKAGE_CONTROL_SCRIPT</item>
+      <item>CPACK_IFW_PACKAGE_DISABLE_COMMAND_LINE_INTERFACE</item>
+      <item>CPACK_IFW_PACKAGE_GROUP</item>
+      <item>CPACK_IFW_PACKAGE_ICON</item>
+      <item>CPACK_IFW_PACKAGE_LOGO</item>
+      <item>CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_INI_FILE</item>
+      <item>CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME</item>
+      <item>CPACK_IFW_PACKAGE_NAME</item>
+      <item>CPACK_IFW_PACKAGE_PRODUCT_IMAGES</item>
+      <item>CPACK_IFW_PACKAGE_PUBLISHER</item>
+      <item>CPACK_IFW_PACKAGE_REMOVE_TARGET_DIR</item>
+      <item>CPACK_IFW_PACKAGE_RESOURCES</item>
+      <item>CPACK_IFW_PACKAGE_RUN_PROGRAM</item>
+      <item>CPACK_IFW_PACKAGE_RUN_PROGRAM_ARGUMENTS</item>
+      <item>CPACK_IFW_PACKAGE_RUN_PROGRAM_DESCRIPTION</item>
+      <item>CPACK_IFW_PACKAGE_SIGNING_IDENTITY</item>
+      <item>CPACK_IFW_PACKAGE_START_MENU_DIRECTORY</item>
+      <item>CPACK_IFW_PACKAGE_STYLE_SHEET</item>
+      <item>CPACK_IFW_PACKAGE_TITLE</item>
+      <item>CPACK_IFW_PACKAGE_TITLE_COLOR</item>
+      <item>CPACK_IFW_PACKAGE_WATERMARK</item>
+      <item>CPACK_IFW_PACKAGE_WINDOW_ICON</item>
+      <item>CPACK_IFW_PACKAGE_WIZARD_DEFAULT_HEIGHT</item>
+      <item>CPACK_IFW_PACKAGE_WIZARD_DEFAULT_WIDTH</item>
+      <item>CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST</item>
+      <item>CPACK_IFW_PACKAGE_WIZARD_STYLE</item>
+      <item>CPACK_IFW_PRODUCT_URL</item>
+      <item>CPACK_IFW_REPOGEN_EXECUTABLE</item>
+      <item>CPACK_IFW_REPOSITORIES_ALL</item>
+      <item>CPACK_IFW_RESOLVE_DUPLICATE_NAMES</item>
+      <item>CPACK_IFW_ROOT</item>
+      <item>CPACK_IFW_TARGET_DIRECTORY</item>
+      <item>CPACK_IFW_VERBOSE</item>
+      <item>CPACK_INCLUDE_TOPLEVEL_DIRECTORY</item>
+      <item>CPACK_INNOSETUP_ALLOW_CUSTOM_DIRECTORY</item>
+      <item>CPACK_INNOSETUP_ARCHITECTURE</item>
+      <item>CPACK_INNOSETUP_CODE_FILES</item>
+      <item>CPACK_INNOSETUP_CREATE_UNINSTALL_LINK</item>
+      <item>CPACK_INNOSETUP_CUSTOM_INSTALL_INSTRUCTIONS</item>
+      <item>CPACK_INNOSETUP_EXECUTABLE</item>
+      <item>CPACK_INNOSETUP_EXECUTABLE_ARGUMENTS</item>
+      <item>CPACK_INNOSETUP_EXTRA_SCRIPTS</item>
+      <item>CPACK_INNOSETUP_ICON_FILE</item>
+      <item>CPACK_INNOSETUP_IGNORE_LICENSE_PAGE</item>
+      <item>CPACK_INNOSETUP_IGNORE_README_PAGE</item>
+      <item>CPACK_INNOSETUP_INSTALL_ROOT</item>
+      <item>CPACK_INNOSETUP_LANGUAGES</item>
+      <item>CPACK_INNOSETUP_MENU_LINKS</item>
+      <item>CPACK_INNOSETUP_PASSWORD</item>
+      <item>CPACK_INNOSETUP_PROGRAM_MENU_FOLDER</item>
+      <item>CPACK_INNOSETUP_RUN_EXECUTABLES</item>
+      <item>CPACK_INNOSETUP_USE_CMAKE_BOOL_FORMAT</item>
+      <item>CPACK_INNOSETUP_USE_MODERN_WIZARD</item>
+      <item>CPACK_INNOSETUP_VERIFY_DOWNLOADS</item>
+      <item>CPACK_INSTALLED_DIRECTORIES</item>
+      <item>CPACK_INSTALL_CMAKE_PROJECTS</item>
+      <item>CPACK_INSTALL_COMMANDS</item>
+      <item>CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS</item>
+      <item>CPACK_INSTALL_SCRIPTS</item>
+      <item>CPACK_MONOLITHIC_INSTALL</item>
+      <item>CPACK_NSIS_BRANDING_TEXT</item>
+      <item>CPACK_NSIS_BRANDING_TEXT_TRIM_POSITION</item>
+      <item>CPACK_NSIS_COMPRESSOR</item>
+      <item>CPACK_NSIS_CONTACT</item>
+      <item>CPACK_NSIS_CREATE_ICONS_EXTRA</item>
+      <item>CPACK_NSIS_DELETE_ICONS_EXTRA</item>
+      <item>CPACK_NSIS_DISPLAY_NAME</item>
+      <item>CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL</item>
+      <item>CPACK_NSIS_EXECUTABLE</item>
+      <item>CPACK_NSIS_EXECUTABLES_DIRECTORY</item>
+      <item>CPACK_NSIS_EXECUTABLE_POST_ARGUMENTS</item>
+      <item>CPACK_NSIS_EXECUTABLE_PRE_ARGUMENTS</item>
+      <item>CPACK_NSIS_EXTRA_INSTALL_COMMANDS</item>
+      <item>CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS</item>
+      <item>CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS</item>
+      <item>CPACK_NSIS_FINISH_TITLE</item>
+      <item>CPACK_NSIS_FINISH_TITLE_3LINES</item>
+      <item>CPACK_NSIS_HELP_LINK</item>
+      <item>CPACK_NSIS_IGNORE_LICENSE_PAGE</item>
+      <item>CPACK_NSIS_INSTALLED_ICON_NAME</item>
+      <item>CPACK_NSIS_INSTALLER_MUI_ICON_CODE</item>
+      <item>CPACK_NSIS_INSTALL_ROOT</item>
+      <item>CPACK_NSIS_MANIFEST_DPI_AWARE</item>
+      <item>CPACK_NSIS_MENU_LINKS</item>
+      <item>CPACK_NSIS_MODIFY_PATH</item>
+      <item>CPACK_NSIS_MUI_FINISHPAGE_RUN</item>
+      <item>CPACK_NSIS_MUI_HEADERIMAGE</item>
+      <item>CPACK_NSIS_MUI_ICON</item>
+      <item>CPACK_NSIS_MUI_UNIICON</item>
+      <item>CPACK_NSIS_MUI_UNWELCOMEFINISHPAGE_BITMAP</item>
+      <item>CPACK_NSIS_MUI_WELCOMEFINISHPAGE_BITMAP</item>
+      <item>CPACK_NSIS_PACKAGE_NAME</item>
+      <item>CPACK_NSIS_UNINSTALL_NAME</item>
+      <item>CPACK_NSIS_URL_INFO_ABOUT</item>
+      <item>CPACK_NSIS_WELCOME_TITLE</item>
+      <item>CPACK_NSIS_WELCOME_TITLE_3LINES</item>
+      <item>CPACK_NUGET_COMPONENT_INSTALL</item>
+      <item>CPACK_NUGET_PACKAGE_AUTHORS</item>
+      <item>CPACK_NUGET_PACKAGE_COPYRIGHT</item>
+      <item>CPACK_NUGET_PACKAGE_DEBUG</item>
+      <item>CPACK_NUGET_PACKAGE_DEPENDENCIES</item>
+      <item>CPACK_NUGET_PACKAGE_DESCRIPTION</item>
+      <item>CPACK_NUGET_PACKAGE_DESCRIPTION_SUMMARY</item>
+      <item>CPACK_NUGET_PACKAGE_HOMEPAGE_URL</item>
+      <item>CPACK_NUGET_PACKAGE_ICON</item>
+      <item>CPACK_NUGET_PACKAGE_ICONURL</item>
+      <item>CPACK_NUGET_PACKAGE_LANGUAGE</item>
+      <item>CPACK_NUGET_PACKAGE_LICENSEURL</item>
+      <item>CPACK_NUGET_PACKAGE_LICENSE_EXPRESSION</item>
+      <item>CPACK_NUGET_PACKAGE_LICENSE_FILE_NAME</item>
+      <item>CPACK_NUGET_PACKAGE_NAME</item>
+      <item>CPACK_NUGET_PACKAGE_OWNERS</item>
+      <item>CPACK_NUGET_PACKAGE_RELEASE_NOTES</item>
+      <item>CPACK_NUGET_PACKAGE_TAGS</item>
+      <item>CPACK_NUGET_PACKAGE_TITLE</item>
+      <item>CPACK_NUGET_PACKAGE_VERSION</item>
+      <item>CPACK_OBJCOPY_EXECUTABLE</item>
+      <item>CPACK_OBJDUMP_EXECUTABLE</item>
+      <item>CPACK_OUTPUT_CONFIG_FILE</item>
+      <item>CPACK_PACKAGE_CHECKSUM</item>
+      <item>CPACK_PACKAGE_DESCRIPTION</item>
+      <item>CPACK_PACKAGE_DESCRIPTION_FILE</item>
+      <item>CPACK_PACKAGE_DESCRIPTION_SUMMARY</item>
+      <item>CPACK_PACKAGE_DIRECTORY</item>
+      <item>CPACK_PACKAGE_EXECUTABLES</item>
+      <item>CPACK_PACKAGE_FILES</item>
+      <item>CPACK_PACKAGE_FILE_NAME</item>
+      <item>CPACK_PACKAGE_HOMEPAGE_URL</item>
+      <item>CPACK_PACKAGE_ICON</item>
+      <item>CPACK_PACKAGE_INSTALL_DIRECTORY</item>
+      <item>CPACK_PACKAGE_INSTALL_REGISTRY_KEY</item>
+      <item>CPACK_PACKAGE_NAME</item>
+      <item>CPACK_PACKAGE_VENDOR</item>
+      <item>CPACK_PACKAGE_VERSION</item>
+      <item>CPACK_PACKAGE_VERSION_MAJOR</item>
+      <item>CPACK_PACKAGE_VERSION_MINOR</item>
+      <item>CPACK_PACKAGE_VERSION_PATCH</item>
+      <item>CPACK_PACKAGING_INSTALL_PREFIX</item>
+      <item>CPACK_PKGBUILD_IDENTITY_NAME</item>
+      <item>CPACK_PKGBUILD_KEYCHAIN_PATH</item>
+      <item>CPACK_POST_BUILD_SCRIPTS</item>
+      <item>CPACK_PRE_BUILD_SCRIPTS</item>
+      <item>CPACK_PRODUCTBUILD_BACKGROUND</item>
+      <item>CPACK_PRODUCTBUILD_BACKGROUND_ALIGNMENT</item>
+      <item>CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA</item>
+      <item>CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_ALIGNMENT</item>
+      <item>CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_MIME_TYPE</item>
+      <item>CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_SCALING</item>
+      <item>CPACK_PRODUCTBUILD_BACKGROUND_DARKAQUA_UTI</item>
+      <item>CPACK_PRODUCTBUILD_BACKGROUND_MIME_TYPE</item>
+      <item>CPACK_PRODUCTBUILD_BACKGROUND_SCALING</item>
+      <item>CPACK_PRODUCTBUILD_BACKGROUND_UTI</item>
+      <item>CPACK_PRODUCTBUILD_DOMAINS</item>
+      <item>CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE</item>
+      <item>CPACK_PRODUCTBUILD_DOMAINS_ROOT</item>
+      <item>CPACK_PRODUCTBUILD_DOMAINS_USER</item>
+      <item>CPACK_PRODUCTBUILD_IDENTIFIER</item>
+      <item>CPACK_PRODUCTBUILD_IDENTITY_NAME</item>
+      <item>CPACK_PRODUCTBUILD_KEYCHAIN_PATH</item>
+      <item>CPACK_PRODUCTBUILD_RESOURCES_DIR</item>
+      <item>CPACK_PROJECT_CONFIG_FILE</item>
+      <item>CPACK_READELF_EXECUTABLE</item>
+      <item>CPACK_RESOURCE_FILE_LICENSE</item>
+      <item>CPACK_RESOURCE_FILE_README</item>
+      <item>CPACK_RESOURCE_FILE_WELCOME</item>
+      <item>CPACK_RPM_ADDITIONAL_MAN_DIRS</item>
+      <item>CPACK_RPM_BUILDREQUIRES</item>
+      <item>CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX</item>
+      <item>CPACK_RPM_CHANGELOG_FILE</item>
+      <item>CPACK_RPM_COMPONENT_INSTALL</item>
+      <item>CPACK_RPM_COMPRESSION_TYPE</item>
+      <item>CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS</item>
+      <item>CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS_ADDITION</item>
+      <item>CPACK_RPM_DEBUGINFO_FILE_NAME</item>
+      <item>CPACK_RPM_DEBUGINFO_PACKAGE</item>
+      <item>CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE</item>
+      <item>CPACK_RPM_DEFAULT_DIR_PERMISSIONS</item>
+      <item>CPACK_RPM_DEFAULT_FILE_PERMISSIONS</item>
+      <item>CPACK_RPM_DEFAULT_GROUP</item>
+      <item>CPACK_RPM_DEFAULT_USER</item>
+      <item>CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST</item>
+      <item>CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION</item>
+      <item>CPACK_RPM_FILE_NAME</item>
+      <item>CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE</item>
+      <item>CPACK_RPM_INSTALL_WITH_EXEC</item>
+      <item>CPACK_RPM_MAIN_COMPONENT</item>
+      <item>CPACK_RPM_NO_INSTALL_PREFIX_RELOCATION</item>
+      <item>CPACK_RPM_PACKAGE_ARCHITECTURE</item>
+      <item>CPACK_RPM_PACKAGE_AUTOPROV</item>
+      <item>CPACK_RPM_PACKAGE_AUTOREQ</item>
+      <item>CPACK_RPM_PACKAGE_AUTOREQPROV</item>
+      <item>CPACK_RPM_PACKAGE_CONFLICTS</item>
+      <item>CPACK_RPM_PACKAGE_DEBUG</item>
+      <item>CPACK_RPM_PACKAGE_DESCRIPTION</item>
+      <item>CPACK_RPM_PACKAGE_EPOCH</item>
+      <item>CPACK_RPM_PACKAGE_GROUP</item>
+      <item>CPACK_RPM_PACKAGE_LICENSE</item>
+      <item>CPACK_RPM_PACKAGE_NAME</item>
+      <item>CPACK_RPM_PACKAGE_OBSOLETES</item>
+      <item>CPACK_RPM_PACKAGE_PROVIDES</item>
+      <item>CPACK_RPM_PACKAGE_RELEASE</item>
+      <item>CPACK_RPM_PACKAGE_RELEASE_DIST</item>
+      <item>CPACK_RPM_PACKAGE_RELOCATABLE</item>
+      <item>CPACK_RPM_PACKAGE_REQUIRES</item>
+      <item>CPACK_RPM_PACKAGE_REQUIRES_POST</item>
+      <item>CPACK_RPM_PACKAGE_REQUIRES_POSTUN</item>
+      <item>CPACK_RPM_PACKAGE_REQUIRES_PRE</item>
+      <item>CPACK_RPM_PACKAGE_REQUIRES_PREUN</item>
+      <item>CPACK_RPM_PACKAGE_SOURCES</item>
+      <item>CPACK_RPM_PACKAGE_SUGGESTS</item>
+      <item>CPACK_RPM_PACKAGE_SUMMARY</item>
+      <item>CPACK_RPM_PACKAGE_URL</item>
+      <item>CPACK_RPM_PACKAGE_VENDOR</item>
+      <item>CPACK_RPM_PACKAGE_VERSION</item>
+      <item>CPACK_RPM_POST_INSTALL_SCRIPT_FILE</item>
+      <item>CPACK_RPM_POST_TRANS_SCRIPT_FILE</item>
+      <item>CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE</item>
+      <item>CPACK_RPM_PRE_INSTALL_SCRIPT_FILE</item>
+      <item>CPACK_RPM_PRE_TRANS_SCRIPT_FILE</item>
+      <item>CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE</item>
+      <item>CPACK_RPM_RELOCATION_PATHS</item>
+      <item>CPACK_RPM_REQUIRES_EXCLUDE_FROM</item>
+      <item>CPACK_RPM_SOURCE_PKG_BUILD_PARAMS</item>
+      <item>CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX</item>
+      <item>CPACK_RPM_SPEC_INSTALL_POST</item>
+      <item>CPACK_RPM_SPEC_MORE_DEFINE</item>
+      <item>CPACK_RPM_USER_BINARY_SPECFILE</item>
+      <item>CPACK_RPM_USER_FILELIST</item>
+      <item>CPACK_SET_DESTDIR</item>
+      <item>CPACK_SOURCE_GENERATOR</item>
+      <item>CPACK_SOURCE_IGNORE_FILES</item>
+      <item>CPACK_SOURCE_OUTPUT_CONFIG_FILE</item>
+      <item>CPACK_SOURCE_PACKAGE_FILE_NAME</item>
+      <item>CPACK_SOURCE_STRIP_FILES</item>
+      <item>CPACK_STRIP_FILES</item>
+      <item>CPACK_SYSTEM_NAME</item>
+      <item>CPACK_THREADS</item>
+      <item>CPACK_TOPLEVEL_TAG</item>
+      <item>CPACK_VERBATIM_VARIABLES</item>
+      <item>CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION</item>
+      <item>CPACK_WIX_ARCHITECTURE</item>
+      <item>CPACK_WIX_CMAKE_PACKAGE_REGISTRY</item>
+      <item>CPACK_WIX_CULTURES</item>
+      <item>CPACK_WIX_CUSTOM_XMLNS</item>
+      <item>CPACK_WIX_EXTENSIONS</item>
+      <item>CPACK_WIX_EXTRA_OBJECTS</item>
+      <item>CPACK_WIX_EXTRA_SOURCES</item>
+      <item>CPACK_WIX_LICENSE_RTF</item>
+      <item>CPACK_WIX_PATCH_FILE</item>
+      <item>CPACK_WIX_PRODUCT_GUID</item>
+      <item>CPACK_WIX_PRODUCT_ICON</item>
+      <item>CPACK_WIX_PROGRAM_MENU_FOLDER</item>
+      <item>CPACK_WIX_ROOT</item>
+      <item>CPACK_WIX_ROOT_FEATURE_DESCRIPTION</item>
+      <item>CPACK_WIX_ROOT_FEATURE_TITLE</item>
+      <item>CPACK_WIX_ROOT_FOLDER_ID</item>
+      <item>CPACK_WIX_SKIP_PROGRAM_FOLDER</item>
+      <item>CPACK_WIX_SKIP_WIX_UI_EXTENSION</item>
+      <item>CPACK_WIX_TEMPLATE</item>
+      <item>CPACK_WIX_UI_BANNER</item>
+      <item>CPACK_WIX_UI_DIALOG</item>
+      <item>CPACK_WIX_UI_REF</item>
+      <item>CPACK_WIX_UPGRADE_GUID</item>
+      <item>CTEST_BINARY_DIRECTORY</item>
+      <item>CTEST_BUILD_COMMAND</item>
+      <item>CTEST_BUILD_NAME</item>
+      <item>CTEST_BZR_COMMAND</item>
+      <item>CTEST_BZR_UPDATE_OPTIONS</item>
+      <item>CTEST_CHANGE_ID</item>
+      <item>CTEST_CHECKOUT_COMMAND</item>
+      <item>CTEST_CONFIGURATION_TYPE</item>
+      <item>CTEST_CONFIGURE_COMMAND</item>
+      <item>CTEST_COVERAGE_COMMAND</item>
+      <item>CTEST_COVERAGE_EXTRA_FLAGS</item>
+      <item>CTEST_CURL_OPTIONS</item>
+      <item>CTEST_CUSTOM_COVERAGE_EXCLUDE</item>
+      <item>CTEST_CUSTOM_ERROR_EXCEPTION</item>
+      <item>CTEST_CUSTOM_ERROR_MATCH</item>
+      <item>CTEST_CUSTOM_ERROR_POST_CONTEXT</item>
+      <item>CTEST_CUSTOM_ERROR_PRE_CONTEXT</item>
+      <item>CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE</item>
+      <item>CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS</item>
+      <item>CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS</item>
+      <item>CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE</item>
+      <item>CTEST_CUSTOM_MEMCHECK_IGNORE</item>
+      <item>CTEST_CUSTOM_POST_MEMCHECK</item>
+      <item>CTEST_CUSTOM_POST_TEST</item>
+      <item>CTEST_CUSTOM_PRE_MEMCHECK</item>
+      <item>CTEST_CUSTOM_PRE_TEST</item>
+      <item>CTEST_CUSTOM_TEST_IGNORE</item>
+      <item>CTEST_CUSTOM_TEST_OUTPUT_TRUNCATION</item>
+      <item>CTEST_CUSTOM_WARNING_EXCEPTION</item>
+      <item>CTEST_CUSTOM_WARNING_MATCH</item>
+      <item>CTEST_CVS_CHECKOUT</item>
+      <item>CTEST_CVS_COMMAND</item>
+      <item>CTEST_CVS_UPDATE_OPTIONS</item>
+      <item>CTEST_DROP_LOCATION</item>
+      <item>CTEST_DROP_METHOD</item>
+      <item>CTEST_DROP_SITE</item>
+      <item>CTEST_DROP_SITE_CDASH</item>
+      <item>CTEST_DROP_SITE_PASSWORD</item>
+      <item>CTEST_DROP_SITE_USER</item>
+      <item>CTEST_EXTRA_COVERAGE_GLOB</item>
+      <item>CTEST_GIT_COMMAND</item>
+      <item>CTEST_GIT_INIT_SUBMODULES</item>
+      <item>CTEST_GIT_UPDATE_CUSTOM</item>
+      <item>CTEST_GIT_UPDATE_OPTIONS</item>
+      <item>CTEST_HG_COMMAND</item>
+      <item>CTEST_HG_UPDATE_OPTIONS</item>
+      <item>CTEST_LABELS_FOR_SUBPROJECTS</item>
+      <item>CTEST_MEMORYCHECK_COMMAND</item>
+      <item>CTEST_MEMORYCHECK_COMMAND_OPTIONS</item>
+      <item>CTEST_MEMORYCHECK_SANITIZER_OPTIONS</item>
+      <item>CTEST_MEMORYCHECK_SUPPRESSIONS_FILE</item>
+      <item>CTEST_MEMORYCHECK_TYPE</item>
+      <item>CTEST_NIGHTLY_START_TIME</item>
+      <item>CTEST_P4_CLIENT</item>
+      <item>CTEST_P4_COMMAND</item>
+      <item>CTEST_P4_OPTIONS</item>
+      <item>CTEST_P4_UPDATE_OPTIONS</item>
+      <item>CTEST_RESOURCE_SPEC_FILE</item>
+      <item>CTEST_RUN_CURRENT_SCRIPT</item>
+      <item>CTEST_SCP_COMMAND</item>
+      <item>CTEST_SITE</item>
+      <item>CTEST_SOURCE_DIRECTORY</item>
+      <item>CTEST_SUBMIT_INACTIVITY_TIMEOUT</item>
+      <item>CTEST_SUBMIT_URL</item>
+      <item>CTEST_SVN_COMMAND</item>
+      <item>CTEST_SVN_OPTIONS</item>
+      <item>CTEST_SVN_UPDATE_OPTIONS</item>
+      <item>CTEST_TEST_LOAD</item>
+      <item>CTEST_TEST_TIMEOUT</item>
+      <item>CTEST_TRIGGER_SITE</item>
+      <item>CTEST_UPDATE_COMMAND</item>
+      <item>CTEST_UPDATE_OPTIONS</item>
+      <item>CTEST_UPDATE_VERSION_ONLY</item>
+      <item>CTEST_UPDATE_VERSION_OVERRIDE</item>
+      <item>CTEST_USE_LAUNCHERS</item>
+      <item>CUDAToolkit_NVCC_EXECUTABLE</item>
+      <item>CUPS_INCLUDE_DIR</item>
+      <item>CURL_NO_CURL_CMAKE</item>
+      <item>CURL_USE_STATIC_LIBS</item>
+      <item>CURSES_CFLAGS</item>
+      <item>CURSES_HAVE_CURSES_H</item>
+      <item>CURSES_HAVE_NCURSES_CURSES_H</item>
+      <item>CURSES_HAVE_NCURSES_H</item>
+      <item>CURSES_HAVE_NCURSES_NCURSES_H</item>
+      <item>CURSES_NEED_NCURSES</item>
+      <item>CURSES_NEED_WIDE</item>
+      <item>CVS_EXECUTABLE</item>
+      <item>CXXTEST_PERL_TESTGEN_EXECUTABLE</item>
+      <item>CXXTEST_PYTHON_TESTGEN_EXECUTABLE</item>
+      <item>CXXTEST_TESTGEN_ARGS</item>
+      <item>CXXTEST_TESTGEN_EXECUTABLE</item>
+      <item>CXXTEST_TESTGEN_INTERPRETER</item>
+      <item>CXXTEST_USE_PYTHON</item>
+      <item>CYGWIN</item>
+      <item>DVIPDF_CONVERTER</item>
+      <item>DVIPS_CONVERTER</item>
+      <item>EXECUTABLE_OUTPUT_PATH</item>
+      <item>EXPAT_USE_STATIC_LIBS</item>
+      <item>EnvModules_COMMAND</item>
+      <item>ExternalData_BINARY_ROOT</item>
+      <item>ExternalData_CUSTOM_ERROR</item>
+      <item>ExternalData_CUSTOM_FILE</item>
+      <item>ExternalData_CUSTOM_LOCATION</item>
+      <item>ExternalData_LINK_CONTENT</item>
+      <item>ExternalData_NO_SYMLINKS</item>
+      <item>ExternalData_OBJECT_STORES</item>
+      <item>ExternalData_SERIES_MATCH</item>
+      <item>ExternalData_SERIES_PARSE</item>
+      <item>ExternalData_SERIES_PARSE_NUMBER</item>
+      <item>ExternalData_SERIES_PARSE_PREFIX</item>
+      <item>ExternalData_SERIES_PARSE_SUFFIX</item>
+      <item>ExternalData_SOURCE_ROOT</item>
+      <item>ExternalData_TIMEOUT_ABSOLUTE</item>
+      <item>ExternalData_TIMEOUT_INACTIVITY</item>
+      <item>ExternalData_URL_TEMPLATES</item>
+      <item>FETCHCONTENT_FULLY_DISCONNECTED</item>
+      <item>FETCHCONTENT_QUIET</item>
+      <item>FETCHCONTENT_TRY_FIND_PACKAGE_MODE</item>
+      <item>FETCHCONTENT_UPDATES_DISCONNECTED</item>
+      <item>FLEX_EXECUTABLE</item>
+      <item>FLTK2_BASE_LIBRARY</item>
+      <item>FLTK2_FLUID_EXECUTABLE</item>
+      <item>FLTK2_GL_LIBRARY</item>
+      <item>FLTK2_IMAGES_LIBRARY</item>
+      <item>FLTK2_WRAP_UI</item>
+      <item>FLTK_BASE_LIBRARY_DEBUG</item>
+      <item>FLTK_BASE_LIBRARY_RELEASE</item>
+      <item>FLTK_FLUID_EXECUTABLE</item>
+      <item>FLTK_FORMS_LIBRARY_DEBUG</item>
+      <item>FLTK_FORMS_LIBRARY_RELEASE</item>
+      <item>FLTK_GL_LIBRARY_DEBUG</item>
+      <item>FLTK_GL_LIBRARY_RELEASE</item>
+      <item>FLTK_IMAGES_LIBRARY_DEBUG</item>
+      <item>FLTK_IMAGES_LIBRARY_RELEASE</item>
+      <item>FLTK_SKIP_FLUID</item>
+      <item>FLTK_SKIP_FORMS</item>
+      <item>FLTK_SKIP_IMAGES</item>
+      <item>FLTK_SKIP_OPENGL</item>
+      <item>FLTK_WRAP_UI</item>
+      <item>FREETYPE_INCLUDE_DIR_freetype2</item>
+      <item>FREETYPE_INCLUDE_DIR_ft2build</item>
+      <item>FindGDAL_SKIP_GDAL_CONFIG</item>
+      <item>Fontconfig_COMPILE_OPTIONS</item>
+      <item>FortranCInterface_GLOBAL_CASE</item>
+      <item>FortranCInterface_GLOBAL_PREFIX</item>
+      <item>FortranCInterface_GLOBAL_SUFFIX</item>
+      <item>FortranCInterface_GLOBAL_SYMBOLS</item>
+      <item>FortranCInterface_GLOBAL__CASE</item>
+      <item>FortranCInterface_GLOBAL__PREFIX</item>
+      <item>FortranCInterface_GLOBAL__SUFFIX</item>
+      <item>FortranCInterface_MODULE_CASE</item>
+      <item>FortranCInterface_MODULE_MIDDLE</item>
+      <item>FortranCInterface_MODULE_PREFIX</item>
+      <item>FortranCInterface_MODULE_SUFFIX</item>
+      <item>FortranCInterface_MODULE_SYMBOLS</item>
+      <item>FortranCInterface_MODULE__CASE</item>
+      <item>FortranCInterface_MODULE__MIDDLE</item>
+      <item>FortranCInterface_MODULE__PREFIX</item>
+      <item>FortranCInterface_MODULE__SUFFIX</item>
+      <item>FortranCInterface_VERIFIED_C</item>
+      <item>FortranCInterface_VERIFIED_CXX</item>
+      <item>GCCXML</item>
+      <item>GDAL_ADDITIONAL_LIBRARY_VERSIONS</item>
+      <item>GDAL_LIBRARY</item>
+      <item>GETTEXT_MSGFMT_EXECUTABLE</item>
+      <item>GETTEXT_MSGMERGE_EXECUTABLE</item>
+      <item>GHSMULTI</item>
+      <item>GIF_LIBRARY</item>
+      <item>GIT_EXECUTABLE</item>
+      <item>GLEW_USE_STATIC_LIBS</item>
+      <item>GLEW_VERBOSE</item>
+      <item>GLUT_Xi_LIBRARY</item>
+      <item>GLUT_Xmu_LIBRARY</item>
+      <item>GLUT_glut_LIBRARY</item>
+      <item>GNUPLOT_EXECUTABLE</item>
+      <item>GNUTLS_DEFINITIONS</item>
+      <item>GRAPHVIZ_EXECUTABLES</item>
+      <item>GRAPHVIZ_EXTERNAL_LIBS</item>
+      <item>GRAPHVIZ_GENERATE_PER_TARGET</item>
+      <item>GRAPHVIZ_GRAPH_HEADER</item>
+      <item>GRAPHVIZ_GRAPH_NAME</item>
+      <item>GRAPHVIZ_GRAPH_TYPE</item>
+      <item>GRAPHVIZ_IGNORE_TARGETS</item>
+      <item>GRAPHVIZ_MODULE_LIBS</item>
+      <item>GRAPHVIZ_NODE_PREFIX</item>
+      <item>GRAPHVIZ_SHARED_LIBS</item>
+      <item>GRAPHVIZ_STATIC_LIBS</item>
+      <item>GSL_CBLAS_LIBRARY</item>
+      <item>GSL_CBLAS_LIBRARY_DEBUG</item>
+      <item>GSL_CONFIG_EXECUTABLE</item>
+      <item>GSL_LIBRARY</item>
+      <item>GSL_LIBRARY_DEBUG</item>
+      <item>GTEST_MSVC_SEARCH</item>
+      <item>GTK2_ADDITIONAL_SUFFIXES</item>
+      <item>GTK2_DEBUG</item>
+      <item>GTK2_DEFINITIONS</item>
+      <item>GTK2_TARGETS</item>
+      <item>GTK2_USE_IMPORTED_TARGETS</item>
+      <item>HDF5_CXX_COMPILER_EXECUTABLE</item>
+      <item>HDF5_CXX_COMPILER_EXECUTABLE_NO_INTERROGATE</item>
+      <item>HDF5_CXX_DEFINITIONS</item>
+      <item>HDF5_C_COMPILER_EXECUTABLE</item>
+      <item>HDF5_C_COMPILER_EXECUTABLE_NO_INTERROGATE</item>
+      <item>HDF5_C_DEFINITIONS</item>
+      <item>HDF5_DEFINITIONS</item>
+      <item>HDF5_DIFF_EXECUTABLE</item>
+      <item>HDF5_FIND_DEBUG</item>
+      <item>HDF5_Fortran_COMPILER_EXECUTABLE</item>
+      <item>HDF5_Fortran_COMPILER_EXECUTABLE_NO_INTERROGATE</item>
+      <item>HDF5_Fortran_DEFINITIONS</item>
+      <item>HDF5_IS_PARALLEL</item>
+      <item>HDF5_NO_FIND_PACKAGE_CONFIG_FILE</item>
+      <item>HDF5_PREFER_PARALLEL</item>
+      <item>HG_EXECUTABLE</item>
+      <item>HTLATEX_COMPILER</item>
+      <item>HTML_HELP_COMPILER</item>
+      <item>HTML_HELP_LIBRARY</item>
+      <item>ICOTOOL_EXECUTABLE</item>
+      <item>ICU_DEBUG</item>
+      <item>ICU_MAKEFILE_INC</item>
+      <item>ICU_PKGDATA_INC</item>
+      <item>IOS</item>
+      <item>Iconv_IS_BUILT_IN</item>
+      <item>Iconv_LIBRARY</item>
+      <item>Intl_IS_BUILT_IN</item>
+      <item>Intl_LIBRARY</item>
+      <item>JASPER_LIBARRY_DEBUG</item>
+      <item>JASPER_LIBRARY_RELEASE</item>
+      <item>JAVA_AWT_INCLUDE_PATH</item>
+      <item>JAVA_AWT_LIBRARY</item>
+      <item>JAVA_INCLUDE_PATH</item>
+      <item>JAVA_INCLUDE_PATH2</item>
+      <item>JAVA_JVM_LIBRARY</item>
+      <item>JPEG_LIBRARY</item>
+      <item>JPEG_LIBRARY_DEBUG</item>
+      <item>JPEG_LIBRARY_RELEASE</item>
+      <item>Java_IDLJ_EXECUTABLE</item>
+      <item>Java_JARSIGNER_EXECUTABLE</item>
+      <item>Java_JAR_EXECUTABLE</item>
+      <item>Java_JAVAC_EXECUTABLE</item>
+      <item>Java_JAVADOC_EXECUTABLE</item>
+      <item>Java_JAVAH_EXECUTABLE</item>
+      <item>Java_JAVA_EXECUTABLE</item>
+      <item>LAPACK_LINKER_FLAGS</item>
+      <item>LATEX2HTML_CONVERTER</item>
+      <item>LATEX_COMPILER</item>
+      <item>LIBLZMA_HAS_AUTO_DECODER</item>
+      <item>LIBLZMA_HAS_EASY_ENCODER</item>
+      <item>LIBLZMA_HAS_LZMA_PRESET</item>
+      <item>LIBRARY_OUTPUT_PATH</item>
+      <item>LIBXML2_DEFINITIONS</item>
+      <item>LIBXML2_LIBRARY</item>
+      <item>LIBXML2_XMLLINT_EXECUTABLE</item>
+      <item>LIBXSLT_DEFINITIONS</item>
+      <item>LIBXSLT_XSLTPROC_EXECUTABLE</item>
+      <item>LINUX</item>
+      <item>LTTNGUST_HAS_TRACEF</item>
+      <item>LTTNGUST_HAS_TRACELOG</item>
+      <item>LUALATEX_COMPILER</item>
+      <item>Libinput_COMPILE_OPTIONS</item>
+      <item>MAKEINDEX_COMPILER</item>
+      <item>MATLAB_ADDITIONAL_VERSIONS</item>
+      <item>MATLAB_FIND_DEBUG</item>
+      <item>MINGW</item>
+      <item>MPEG2_mpeg2_LIBRARY</item>
+      <item>MPEG2_vo_LIBRARY</item>
+      <item>MPEG_mpeg2_LIBRARY</item>
+      <item>MPEG_vo_LIBRARY</item>
+      <item>MPIEXEC_EXECUTABLE</item>
+      <item>MPIEXEC_MAX_NUMPROCS</item>
+      <item>MPIEXEC_NUMPROC_FLAG</item>
+      <item>MPIEXEC_POSTFLAGS</item>
+      <item>MPIEXEC_PREFLAGS</item>
+      <item>MPI_ASSUME_NO_BUILTIN_MPI</item>
+      <item>MPI_ASYNC_PROTECTS_NONBLOCKING</item>
+      <item>MPI_COMPILER_FLAGS</item>
+      <item>MPI_CXX_SKIP_MPICXX</item>
+      <item>MPI_DETERMINE_Fortran_CAPABILITIES</item>
+      <item>MPI_EXECUTABLE_SUFFIX</item>
+      <item>MPI_Fortran_F08_MODULE_ASYNCPROT</item>
+      <item>MPI_Fortran_F08_MODULE_SUBARRAYS</item>
+      <item>MPI_Fortran_F77_HEADER_ASYNCPROT</item>
+      <item>MPI_Fortran_F77_HEADER_SUBARRAYS</item>
+      <item>MPI_Fortran_F90_MODULE_ASYNCPROT</item>
+      <item>MPI_Fortran_F90_MODULE_SUBARRAYS</item>
+      <item>MPI_Fortran_HAVE_F08_MODULE</item>
+      <item>MPI_Fortran_HAVE_F77_HEADER</item>
+      <item>MPI_Fortran_HAVE_F90_MODULE</item>
+      <item>MPI_GUESS_LIBRARY_NAME</item>
+      <item>MPI_HOME</item>
+      <item>MPI_SKIP_COMPILER_WRAPPER</item>
+      <item>MPI_SKIP_GUESSING</item>
+      <item>MPI_SUBARRAYS_SUPPORTED</item>
+      <item>MSVC</item>
+      <item>MSVC10</item>
+      <item>MSVC11</item>
+      <item>MSVC12</item>
+      <item>MSVC14</item>
+      <item>MSVC60</item>
+      <item>MSVC70</item>
+      <item>MSVC71</item>
+      <item>MSVC80</item>
+      <item>MSVC90</item>
+      <item>MSVC_IDE</item>
+      <item>MSVC_TOOLSET_VERSION</item>
+      <item>MSVC_VERSION</item>
+      <item>Matlab_DATAARRAY_LIBRARY</item>
+      <item>Matlab_ENGINE_LIBRARY</item>
+      <item>Matlab_ENG_LIBRARY</item>
+      <item>Matlab_MAIN_PROGRAM</item>
+      <item>Matlab_MAT_LIBRARY</item>
+      <item>Matlab_MCC_COMPILER</item>
+      <item>Matlab_MEX_COMPILER</item>
+      <item>Matlab_MEX_EXTENSION</item>
+      <item>Matlab_MEX_LIBRARY</item>
+      <item>Matlab_MX_LIBRARY</item>
+      <item>ODBC_CONFIG</item>
+      <item>ODBC_LIBRARY</item>
+      <item>OPENAL_LIBRARY</item>
+      <item>OPENGL_egl_LIBRARY</item>
+      <item>OPENGL_gl_LIBRARY</item>
+      <item>OPENGL_glu_LIBRARY</item>
+      <item>OPENGL_glx_LIBRARY</item>
+      <item>OPENGL_opengl_LIBRARY</item>
+      <item>OPENSSL_APPLINK_SOURCE</item>
+      <item>OPENSSL_CRYPTO_LIBRARY</item>
+      <item>OPENSSL_MSVC_STATIC_RT</item>
+      <item>OPENSSL_SSL_LIBRARY</item>
+      <item>OPENSSL_USE_STATIC_LIBS</item>
+      <item>OpenACC_ACCEL_TARGET</item>
+      <item>OpenCL_LIBRARY</item>
+      <item>OpenGL_GL_PREFERENCE</item>
+      <item>OpenMP_Fortran_HAVE_OMPLIB_HEADER</item>
+      <item>OpenMP_Fortran_HAVE_OMPLIB_MODULE</item>
+      <item>PACKAGE_FIND_NAME</item>
+      <item>PACKAGE_FIND_VERSION_COMPLETE</item>
+      <item>PACKAGE_FIND_VERSION_COUNT</item>
+      <item>PACKAGE_FIND_VERSION_MAX</item>
+      <item>PACKAGE_FIND_VERSION_MAX_COUNT</item>
+      <item>PACKAGE_FIND_VERSION_MAX_MAJOR</item>
+      <item>PACKAGE_FIND_VERSION_MAX_MINOR</item>
+      <item>PACKAGE_FIND_VERSION_MAX_PATCH</item>
+      <item>PACKAGE_FIND_VERSION_MAX_TWEAK</item>
+      <item>PACKAGE_FIND_VERSION_MIN</item>
+      <item>PACKAGE_FIND_VERSION_MIN_COUNT</item>
+      <item>PACKAGE_FIND_VERSION_MIN_MAJOR</item>
+      <item>PACKAGE_FIND_VERSION_MIN_MINOR</item>
+      <item>PACKAGE_FIND_VERSION_MIN_PATCH</item>
+      <item>PACKAGE_FIND_VERSION_MIN_TWEAK</item>
+      <item>PACKAGE_FIND_VERSION_RANGE</item>
+      <item>PACKAGE_FIND_VERSION_RANGE_MAX</item>
+      <item>PACKAGE_FIND_VERSION_RANGE_MIN</item>
+      <item>PACKAGE_VERSION</item>
+      <item>PACKAGE_VERSION_COMPATIBLE</item>
+      <item>PACKAGE_VERSION_EXACT</item>
+      <item>PACKAGE_VERSION_UNSUITABLE</item>
+      <item>PDFLATEX_COMPILER</item>
+      <item>PDFTOPS_CONVERTER</item>
+      <item>PERL_ARCHLIB</item>
+      <item>PERL_EXECUTABLE</item>
+      <item>PERL_EXTRA_C_FLAGS</item>
+      <item>PERL_PRIVLIB</item>
+      <item>PERL_SITEARCH</item>
+      <item>PERL_SITELIB</item>
+      <item>PERL_SITESEARCH</item>
+      <item>PERL_UPDATE_ARCHLIB</item>
+      <item>PERL_UPDATE_PRIVLIB</item>
+      <item>PERL_VENDORARCH</item>
+      <item>PERL_VENDORLIB</item>
+      <item>PHP4_EXECUTABLE</item>
+      <item>PHP4_INCLUDE_PATH</item>
+      <item>PHYSFS_LIBRARY</item>
+      <item>PIKE_EXECUTABLE</item>
+      <item>PIKE_INCLUDE_PATH</item>
+      <item>PKG_CONFIG_EXECUTABLE</item>
+      <item>PKG_CONFIG_USE_CMAKE_PREFIX_PATH</item>
+      <item>PKG_CONFIG_VERSION_STRING</item>
+      <item>PNG_DEFINITIONS</item>
+      <item>PNG_LIBRARY</item>
+      <item>PROJECT_BINARY_DIR</item>
+      <item>PROJECT_DESCRIPTION</item>
+      <item>PROJECT_HOMEPAGE_URL</item>
+      <item>PROJECT_IS_TOP_LEVEL</item>
+      <item>PROJECT_NAME</item>
+      <item>PROJECT_SOURCE_DIR</item>
+      <item>PROJECT_VERSION</item>
+      <item>PROJECT_VERSION_MAJOR</item>
+      <item>PROJECT_VERSION_MINOR</item>
+      <item>PROJECT_VERSION_PATCH</item>
+      <item>PROJECT_VERSION_TWEAK</item>
+      <item>PS2PDF_CONVERTER</item>
+      <item>Patch_EXECUTABLE</item>
+      <item>Protobuf_DEBUG</item>
+      <item>Protobuf_IMPORT_DIRS</item>
+      <item>Protobuf_LIBRARY</item>
+      <item>Protobuf_LIBRARY_DEBUG</item>
+      <item>Protobuf_LITE_LIBRARY</item>
+      <item>Protobuf_LITE_LIBRARY_DEBUG</item>
+      <item>Protobuf_PROTOC_EXECUTABLE</item>
+      <item>Protobuf_PROTOC_LIBRARY</item>
+      <item>Protobuf_PROTOC_LIBRARY_DEBUG</item>
+      <item>Protobuf_SRC_ROOT_FOLDER</item>
+      <item>Protobuf_USE_STATIC_LIBS</item>
+      <item>Python2_ARTIFACTS_INTERACTIVE</item>
+      <item>Python2_COMPILER</item>
+      <item>Python2_COMPILER_ID</item>
+      <item>Python2_DOTNET_LAUNCHER</item>
+      <item>Python2_EXECUTABLE</item>
+      <item>Python2_FIND_ABI</item>
+      <item>Python2_FIND_FRAMEWORK</item>
+      <item>Python2_FIND_IMPLEMENTATIONS</item>
+      <item>Python2_FIND_REGISTRY</item>
+      <item>Python2_FIND_STRATEGY</item>
+      <item>Python2_FIND_UNVERSIONED_NAMES</item>
+      <item>Python2_FIND_VIRTUALENV</item>
+      <item>Python2_INTERPRETER_ID</item>
+      <item>Python2_LINK_OPTIONS</item>
+      <item>Python2_SITEARCH</item>
+      <item>Python2_SITELIB</item>
+      <item>Python2_SOABI</item>
+      <item>Python2_STDARCH</item>
+      <item>Python2_STDLIB</item>
+      <item>Python2_USE_STATIC_LIBS</item>
+      <item>Python3_ARTIFACTS_INTERACTIVE</item>
+      <item>Python3_COMPILER</item>
+      <item>Python3_COMPILER_ID</item>
+      <item>Python3_DOTNET_LAUNCHER</item>
+      <item>Python3_EXECUTABLE</item>
+      <item>Python3_FIND_ABI</item>
+      <item>Python3_FIND_FRAMEWORK</item>
+      <item>Python3_FIND_IMPLEMENTATIONS</item>
+      <item>Python3_FIND_REGISTRY</item>
+      <item>Python3_FIND_STRATEGY</item>
+      <item>Python3_FIND_UNVERSIONED_NAMES</item>
+      <item>Python3_FIND_VIRTUALENV</item>
+      <item>Python3_INTERPRETER_ID</item>
+      <item>Python3_LINK_OPTIONS</item>
+      <item>Python3_SITEARCH</item>
+      <item>Python3_SITELIB</item>
+      <item>Python3_SOABI</item>
+      <item>Python3_STDARCH</item>
+      <item>Python3_STDLIB</item>
+      <item>Python3_USE_STATIC_LIBS</item>
+      <item>Python_ARTIFACTS_INTERACTIVE</item>
+      <item>Python_COMPILER</item>
+      <item>Python_COMPILER_ID</item>
+      <item>Python_DOTNET_LAUNCHER</item>
+      <item>Python_EXECUTABLE</item>
+      <item>Python_FIND_ABI</item>
+      <item>Python_FIND_FRAMEWORK</item>
+      <item>Python_FIND_IMPLEMENTATIONS</item>
+      <item>Python_FIND_REGISTRY</item>
+      <item>Python_FIND_STRATEGY</item>
+      <item>Python_FIND_UNVERSIONED_NAMES</item>
+      <item>Python_FIND_VIRTUALENV</item>
+      <item>Python_INTERPRETER_ID</item>
+      <item>Python_LINK_OPTIONS</item>
+      <item>Python_SITEARCH</item>
+      <item>Python_SITELIB</item>
+      <item>Python_SOABI</item>
+      <item>Python_STDARCH</item>
+      <item>Python_STDLIB</item>
+      <item>Python_USE_STATIC_LIBS</item>
+      <item>QTIFWDIR</item>
+      <item>RTI_DEFINITIONS</item>
+      <item>Ruby_EXECUTABLE</item>
+      <item>Ruby_FIND_VIRTUALENV</item>
+      <item>SDLIMAGE_LIBRARY</item>
+      <item>SDLMIXER_LIBRARY</item>
+      <item>SDLNET_LIBRARY</item>
+      <item>SDLTTF_LIBRARY</item>
+      <item>SDL_BUILDING_LIBRARY</item>
+      <item>SDL_LIBRARY</item>
+      <item>SDL_SOUND_LIBRARY</item>
+      <item>SQUISH_CLIENT_EXECUTABLE</item>
+      <item>SQUISH_SERVER_EXECUTABLE</item>
+      <item>SWIG_EXECUTABLE</item>
+      <item>SWIG_OUTFILE_DIR</item>
+      <item>SWIG_SOURCE_FILE_EXTENSIONS</item>
+      <item>SWIG_USE_SWIG_DEPENDENCIES</item>
+      <item>Subversion_SVN_EXECUTABLE</item>
+      <item>Subversion_VERSION_SVN</item>
+      <item>TCL_INCLUDE_PATH</item>
+      <item>TCL_STUB_LIBRARY</item>
+      <item>TCL_TCLSH</item>
+      <item>THREADS_PREFER_PTHREAD_FLAG</item>
+      <item>TIFFXX_LIBRARY_DEBUG</item>
+      <item>TIFFXX_LIBRARY_RELEASE</item>
+      <item>TIFF_LIBRARY_DEBUG</item>
+      <item>TIFF_LIBRARY_RELEASE</item>
+      <item>TK_INCLUDE_PATH</item>
+      <item>TK_LIBRARY</item>
+      <item>TK_STUB_LIBRARY</item>
+      <item>TK_WISH</item>
+      <item>TTK_STUB_LIBRARY</item>
+      <item>UNIX</item>
+      <item>UseSWIG_MODULE_VERSION</item>
+      <item>Vulkan_GLSLANG_VALIDATOR_EXECUTABLE</item>
+      <item>Vulkan_GLSLC_EXECUTABLE</item>
+      <item>Vulkan_LIBRARY</item>
+      <item>WGET_EXECUTABLE</item>
+      <item>WIN32</item>
+      <item>WINCE</item>
+      <item>WINDOWS_PHONE</item>
+      <item>WINDOWS_STORE</item>
+      <item>XCODE</item>
+      <item>XCODE_VERSION</item>
+      <item>XCTest_EXECUTABLE</item>
+      <item>XELATEX_COMPILER</item>
+      <item>XINDY_COMPILER</item>
+      <item>XalanC_LIBRARY</item>
+      <item>XercesC_LIBRARY</item>
+      <item>ZLIB_USE_STATIC_LIBS</item>
+      <item>wxWidgets_CONFIGURATION</item>
+      <item>wxWidgets_CXX_FLAGS</item>
+      <item>wxWidgets_DEFINITIONS</item>
+      <item>wxWidgets_DEFINITIONS_DEBUG</item>
+      <item>wxWidgets_EXCLUDE_COMMON_LIBRARIES</item>
+      <item>wxWidgets_USE_DEBUG</item>
+      <item>wxWidgets_USE_FILE</item>
+      <item>wxWidgets_USE_STATIC</item>
+      <item>wxWidgets_USE_UNICODE</item>
+      <item>wxWidgets_USE_UNIVERSAL</item>
+    </list>
+
+    <list name="deprecated-or-internal-variables">
+      <item>CMAKE_ENABLE_EXPORTS</item>
+      <item>CMAKE_FILES_DIRECTORY</item>
+      <item>CMAKE_HOME_DIRECTORY</item>
+      <item>CMAKE_INTERNAL_PLATFORM_ABI</item>
+      <item>CMAKE_IOS_INSTALL_COMBINED</item>
+      <item>CMAKE_NOT_USING_CONFIG_FLAGS</item>
+      <item>CMAKE_OBJDUMP</item>
+      <item>CMAKE_SUPPRESS_DEVELOPER_ERRORS</item>
+      <item>CMAKE_SUPPRESS_DEVELOPER_WARNINGS</item>
+      <item>CMAKE_SYSTEM_ARCH</item>
+      <item>CMAKE_VS_INTEL_Fortran_PROJECT_VERSION</item>
+      <item>CPACK_INSTALL_PREFIX</item>
+      <item>CPACK_INSTALL_SCRIPT</item>
+      <item>CPACK_PACKAGE_CONTACT</item>
+      <item>CPACK_PACKAGE_RELOCATABLE</item>
+      <item>CPACK_TEMPORARY_DIRECTORY</item>
+      <item>CPACK_TOPLEVEL_DIRECTORY</item>
+    </list>
+
+    <list name="environment-variables">
+      <item>ADSP_ROOT</item>
+      <item>CC</item>
+      <item>CCMAKE_COLORS</item>
+      <item>CFLAGS</item>
+      <item>CMAKE_APPBUNDLE_PATH</item>
+      <item>CMAKE_APPLE_SILICON_PROCESSOR</item>
+      <item>CMAKE_BUILD_PARALLEL_LEVEL</item>
+      <item>CMAKE_BUILD_TYPE</item>
+      <item>CMAKE_COLOR_DIAGNOSTICS</item>
+      <item>CMAKE_CONFIGURATION_TYPES</item>
+      <item>CMAKE_CONFIG_TYPE</item>
+      <item>CMAKE_CROSSCOMPILING_EMULATOR</item>
+      <item>CMAKE_EXPORT_COMPILE_COMMANDS</item>
+      <item>CMAKE_FRAMEWORK_PATH</item>
+      <item>CMAKE_GENERATOR</item>
+      <item>CMAKE_GENERATOR_INSTANCE</item>
+      <item>CMAKE_GENERATOR_PLATFORM</item>
+      <item>CMAKE_GENERATOR_TOOLSET</item>
+      <item>CMAKE_INSTALL_MODE</item>
+      <item>CMAKE_MSVCIDE_RUN_PATH</item>
+      <item>CMAKE_NO_VERBOSE</item>
+      <item>CMAKE_OSX_ARCHITECTURES</item>
+      <item>CMAKE_PREFIX_PATH</item>
+      <item>CMAKE_TOOLCHAIN_FILE</item>
+      <item>CSFLAGS</item>
+      <item>CTEST_INTERACTIVE_DEBUG_MODE</item>
+      <item>CTEST_NO_TESTS_ACTION</item>
+      <item>CTEST_OUTPUT_ON_FAILURE</item>
+      <item>CTEST_PARALLEL_LEVEL</item>
+      <item>CTEST_PROGRESS_OUTPUT</item>
+      <item>CTEST_USE_LAUNCHERS_DEFAULT</item>
+      <item>CUDAARCHS</item>
+      <item>CUDACXX</item>
+      <item>CUDAFLAGS</item>
+      <item>CUDAHOSTCXX</item>
+      <item>CUDA_PATH</item>
+      <item>CXX</item>
+      <item>CXXFLAGS</item>
+      <item>DASHBOARD_TEST_FROM_CTEST</item>
+      <item>DESTDIR</item>
+      <item>FC</item>
+      <item>FFLAGS</item>
+      <item>HIPCXX</item>
+      <item>HIPFLAGS</item>
+      <item>ISPC</item>
+      <item>ISPCFLAGS</item>
+      <item>LDFLAGS</item>
+      <item>MACOSX_DEPLOYMENT_TARGET</item>
+      <item>OBJC</item>
+      <item>OBJCXX</item>
+      <item>PATH</item>
+      <item>QTIFWDIR</item>
+      <item>RC</item>
+      <item>RCFLAGS</item>
+      <item>SSL_CERT_DIR</item>
+      <item>SSL_CERT_FILE</item>
+      <item>SWIFTC</item>
+      <item>VERBOSE</item>
+    </list>
+    <list name="global-properties">
+      <item>ALLOW_DUPLICATE_CUSTOM_TARGETS</item>
+      <item>AUTOGEN_SOURCE_GROUP</item>
+      <item>AUTOGEN_TARGETS_FOLDER</item>
+      <item>AUTOMOC_SOURCE_GROUP</item>
+      <item>AUTOMOC_TARGETS_FOLDER</item>
+      <item>AUTORCC_SOURCE_GROUP</item>
+      <item>CMAKE_CUDA_KNOWN_FEATURES</item>
+      <item>CMAKE_CXX_KNOWN_FEATURES</item>
+      <item>CMAKE_C_KNOWN_FEATURES</item>
+      <item>CMAKE_ROLE</item>
+      <item>DEBUG_CONFIGURATIONS</item>
+      <item>DISABLED_FEATURES</item>
+      <item>ECLIPSE_EXTRA_NATURES</item>
+      <item>ENABLED_FEATURES</item>
+      <item>ENABLED_LANGUAGES</item>
+      <item>FIND_LIBRARY_USE_LIB32_PATHS</item>
+      <item>FIND_LIBRARY_USE_LIB64_PATHS</item>
+      <item>FIND_LIBRARY_USE_LIBX32_PATHS</item>
+      <item>FIND_LIBRARY_USE_OPENBSD_VERSIONING</item>
+      <item>FeatureSummary_DEFAULT_PKG_TYPE</item>
+      <item>FeatureSummary_PKG_TYPES</item>
+      <item>FeatureSummary_REQUIRED_PKG_TYPES</item>
+      <item>GENERATOR_IS_MULTI_CONFIG</item>
+      <item>GLOBAL_DEPENDS_DEBUG_MODE</item>
+      <item>GLOBAL_DEPENDS_NO_CYCLES</item>
+      <item>IN_TRY_COMPILE</item>
+      <item>JOB_POOLS</item>
+      <item>PACKAGES_FOUND</item>
+      <item>PACKAGES_NOT_FOUND</item>
+      <item>PREDEFINED_TARGETS_FOLDER</item>
+      <item>REPORT_UNDEFINED_PROPERTIES</item>
+      <item>RULE_LAUNCH_COMPILE</item>
+      <item>RULE_LAUNCH_CUSTOM</item>
+      <item>RULE_LAUNCH_LINK</item>
+      <item>RULE_MESSAGES</item>
+      <item>TARGET_ARCHIVES_MAY_BE_SHARED_LIBS</item>
+      <item>TARGET_MESSAGES</item>
+      <item>TARGET_SUPPORTS_SHARED_LIBS</item>
+      <item>USE_FOLDERS</item>
+      <item>XCODE_EMIT_EFFECTIVE_PLATFORM_NAME</item>
+    </list>
+    <list name="directory-properties">
+      <item>ADDITIONAL_CLEAN_FILES</item>
+      <item>ADDITIONAL_MAKE_CLEAN_FILES</item>
+      <item>BINARY_DIR</item>
+      <item>BUILDSYSTEM_TARGETS</item>
+      <item>CACHE_VARIABLES</item>
+      <item>CLEAN_NO_CUSTOM</item>
+      <item>CMAKE_CONFIGURE_DEPENDS</item>
+      <item>COMPILE_DEFINITIONS</item>
+      <item>COMPILE_OPTIONS</item>
+      <item>DEFINITIONS</item>
+      <item>EXCLUDE_FROM_ALL</item>
+      <item>IMPLICIT_DEPENDS_INCLUDE_TRANSFORM</item>
+      <item>IMPORTED_TARGETS</item>
+      <item>INCLUDE_DIRECTORIES</item>
+      <item>INCLUDE_REGULAR_EXPRESSION</item>
+      <item>INTERPROCEDURAL_OPTIMIZATION</item>
+      <item>LABELS</item>
+      <item>LINK_DIRECTORIES</item>
+      <item>LINK_OPTIONS</item>
+      <item>LISTFILE_STACK</item>
+      <item>MACROS</item>
+      <item>PARENT_DIRECTORY</item>
+      <item>RULE_LAUNCH_COMPILE</item>
+      <item>RULE_LAUNCH_CUSTOM</item>
+      <item>RULE_LAUNCH_LINK</item>
+      <item>SOURCE_DIR</item>
+      <item>SUBDIRECTORIES</item>
+      <item>SYSTEM</item>
+      <item>TESTS</item>
+      <item>TEST_INCLUDE_FILE</item>
+      <item>TEST_INCLUDE_FILES</item>
+      <item>VARIABLES</item>
+      <item>VS_STARTUP_PROJECT</item>
+    </list>
+    <list name="target-properties">
+      <item>ADDITIONAL_CLEAN_FILES</item>
+      <item>AIX_EXPORT_ALL_SYMBOLS</item>
+      <item>ALIASED_TARGET</item>
+      <item>ANDROID_ANT_ADDITIONAL_OPTIONS</item>
+      <item>ANDROID_API</item>
+      <item>ANDROID_API_MIN</item>
+      <item>ANDROID_ARCH</item>
+      <item>ANDROID_ASSETS_DIRECTORIES</item>
+      <item>ANDROID_GUI</item>
+      <item>ANDROID_JAR_DEPENDENCIES</item>
+      <item>ANDROID_JAR_DIRECTORIES</item>
+      <item>ANDROID_JAVA_SOURCE_DIR</item>
+      <item>ANDROID_NATIVE_LIB_DEPENDENCIES</item>
+      <item>ANDROID_NATIVE_LIB_DIRECTORIES</item>
+      <item>ANDROID_PROCESS_MAX</item>
+      <item>ANDROID_PROGUARD</item>
+      <item>ANDROID_PROGUARD_CONFIG_PATH</item>
+      <item>ANDROID_SECURE_PROPS_PATH</item>
+      <item>ANDROID_SKIP_ANT_STEP</item>
+      <item>ANDROID_STL_TYPE</item>
+      <item>ARCHIVE_OUTPUT_DIRECTORY</item>
+      <item>ARCHIVE_OUTPUT_NAME</item>
+      <item>AUTOGEN_BUILD_DIR</item>
+      <item>AUTOGEN_ORIGIN_DEPENDS</item>
+      <item>AUTOGEN_TARGET_DEPENDS</item>
+      <item>AUTOGEN_USE_SYSTEM_INCLUDE</item>
+      <item>AUTOMOC</item>
+      <item>AUTOMOC_COMPILER_PREDEFINES</item>
+      <item>AUTOMOC_DEPEND_FILTERS</item>
+      <item>AUTOMOC_EXECUTABLE</item>
+      <item>AUTOMOC_MACRO_NAMES</item>
+      <item>AUTOMOC_MOC_OPTIONS</item>
+      <item>AUTOMOC_PATH_PREFIX</item>
+      <item>AUTORCC</item>
+      <item>AUTORCC_EXECUTABLE</item>
+      <item>AUTORCC_OPTIONS</item>
+      <item>AUTOUIC</item>
+      <item>AUTOUIC_EXECUTABLE</item>
+      <item>AUTOUIC_OPTIONS</item>
+      <item>AUTOUIC_SEARCH_PATHS</item>
+      <item>BINARY_DIR</item>
+      <item>BUILD_RPATH</item>
+      <item>BUILD_RPATH_USE_ORIGIN</item>
+      <item>BUILD_WITH_INSTALL_NAME_DIR</item>
+      <item>BUILD_WITH_INSTALL_RPATH</item>
+      <item>BUNDLE</item>
+      <item>BUNDLE_EXTENSION</item>
+      <item>COMMON_LANGUAGE_RUNTIME</item>
+      <item>COMPATIBLE_INTERFACE_BOOL</item>
+      <item>COMPATIBLE_INTERFACE_NUMBER_MAX</item>
+      <item>COMPATIBLE_INTERFACE_NUMBER_MIN</item>
+      <item>COMPATIBLE_INTERFACE_STRING</item>
+      <item>COMPILE_DEFINITIONS</item>
+      <item>COMPILE_FEATURES</item>
+      <item>COMPILE_FLAGS</item>
+      <item>COMPILE_OPTIONS</item>
+      <item>COMPILE_PDB_NAME</item>
+      <item>COMPILE_PDB_OUTPUT_DIRECTORY</item>
+      <item>COMPILE_WARNING_AS_ERROR</item>
+      <item>CROSSCOMPILING_EMULATOR</item>
+      <item>CUDA_ARCHITECTURES</item>
+      <item>CUDA_CUBIN_COMPILATION</item>
+      <item>CUDA_EXTENSIONS</item>
+      <item>CUDA_FATBIN_COMPILATION</item>
+      <item>CUDA_OPTIX_COMPILATION</item>
+      <item>CUDA_PTX_COMPILATION</item>
+      <item>CUDA_RESOLVE_DEVICE_SYMBOLS</item>
+      <item>CUDA_RUNTIME_LIBRARY</item>
+      <item>CUDA_SEPARABLE_COMPILATION</item>
+      <item>CUDA_STANDARD</item>
+      <item>CUDA_STANDARD_REQUIRED</item>
+      <item>CXX_EXTENSIONS</item>
+      <item>CXX_MODULE_DIRS</item>
+      <item>CXX_MODULE_SET</item>
+      <item>CXX_MODULE_SETS</item>
+      <item>CXX_SCAN_FOR_MODULES</item>
+      <item>CXX_STANDARD</item>
+      <item>CXX_STANDARD_REQUIRED</item>
+      <item>C_EXTENSIONS</item>
+      <item>C_STANDARD</item>
+      <item>C_STANDARD_REQUIRED</item>
+      <item>DEFINE_SYMBOL</item>
+      <item>DEPLOYMENT_ADDITIONAL_FILES</item>
+      <item>DEPLOYMENT_REMOTE_DIRECTORY</item>
+      <item>DEPRECATION</item>
+      <item>DISABLE_PRECOMPILE_HEADERS</item>
+      <item>DLL_NAME_WITH_SOVERSION</item>
+      <item>DOTNET_SDK</item>
+      <item>DOTNET_TARGET_FRAMEWORK</item>
+      <item>DOTNET_TARGET_FRAMEWORK_VERSION</item>
+      <item>ENABLE_EXPORTS</item>
+      <item>EXCLUDE_FROM_ALL</item>
+      <item>EXCLUDE_FROM_DEFAULT_BUILD</item>
+      <item>EXPORT_COMPILE_COMMANDS</item>
+      <item>EXPORT_NAME</item>
+      <item>EXPORT_NO_SYSTEM</item>
+      <item>EXPORT_PROPERTIES</item>
+      <item>EchoString</item>
+      <item>FOLDER</item>
+      <item>FRAMEWORK</item>
+      <item>FRAMEWORK_VERSION</item>
+      <item>Fortran_FORMAT</item>
+      <item>Fortran_MODULE_DIRECTORY</item>
+      <item>Fortran_PREPROCESS</item>
+      <item>GENERATOR_FILE_NAME</item>
+      <item>GNUtoMS</item>
+      <item>HAS_CXX</item>
+      <item>HEADER_DIRS</item>
+      <item>HEADER_SET</item>
+      <item>HEADER_SETS</item>
+      <item>HIP_ARCHITECTURES</item>
+      <item>HIP_EXTENSIONS</item>
+      <item>HIP_STANDARD</item>
+      <item>HIP_STANDARD_REQUIRED</item>
+      <item>IMPLICIT_DEPENDS_INCLUDE_TRANSFORM</item>
+      <item>IMPORTED</item>
+      <item>IMPORTED_COMMON_LANGUAGE_RUNTIME</item>
+      <item>IMPORTED_CONFIGURATIONS</item>
+      <item>IMPORTED_GLOBAL</item>
+      <item>IMPORTED_IMPLIB</item>
+      <item>IMPORTED_LIBNAME</item>
+      <item>IMPORTED_LINK_DEPENDENT_LIBRARIES</item>
+      <item>IMPORTED_LINK_INTERFACE_LANGUAGES</item>
+      <item>IMPORTED_LINK_INTERFACE_LIBRARIES</item>
+      <item>IMPORTED_LINK_INTERFACE_MULTIPLICITY</item>
+      <item>IMPORTED_LOCATION</item>
+      <item>IMPORTED_NO_SONAME</item>
+      <item>IMPORTED_NO_SYSTEM</item>
+      <item>IMPORTED_OBJECTS</item>
+      <item>IMPORTED_SONAME</item>
+      <item>IMPORT_PREFIX</item>
+      <item>IMPORT_SUFFIX</item>
+      <item>INCLUDE_DIRECTORIES</item>
+      <item>INSTALL_NAME_DIR</item>
+      <item>INSTALL_REMOVE_ENVIRONMENT_RPATH</item>
+      <item>INSTALL_RPATH</item>
+      <item>INSTALL_RPATH_USE_LINK_PATH</item>
+      <item>INTERFACE_AUTOMOC_MACRO_NAMES</item>
+      <item>INTERFACE_AUTOUIC_OPTIONS</item>
+      <item>INTERFACE_COMPILE_DEFINITIONS</item>
+      <item>INTERFACE_COMPILE_FEATURES</item>
+      <item>INTERFACE_COMPILE_OPTIONS</item>
+      <item>INTERFACE_CXX_MODULE_SETS</item>
+      <item>INTERFACE_HEADER_SETS</item>
+      <item>INTERFACE_HEADER_SETS_TO_VERIFY</item>
+      <item>INTERFACE_INCLUDE_DIRECTORIES</item>
+      <item>INTERFACE_LINK_DEPENDS</item>
+      <item>INTERFACE_LINK_DIRECTORIES</item>
+      <item>INTERFACE_LINK_LIBRARIES</item>
+      <item>INTERFACE_LINK_LIBRARIES_DIRECT</item>
+      <item>INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE</item>
+      <item>INTERFACE_LINK_OPTIONS</item>
+      <item>INTERFACE_POSITION_INDEPENDENT_CODE</item>
+      <item>INTERFACE_PRECOMPILE_HEADERS</item>
+      <item>INTERFACE_SOURCES</item>
+      <item>INTERFACE_SYSTEM_INCLUDE_DIRECTORIES</item>
+      <item>INTERPROCEDURAL_OPTIMIZATION</item>
+      <item>IOS_INSTALL_COMBINED</item>
+      <item>ISPC_HEADER_DIRECTORY</item>
+      <item>ISPC_HEADER_SUFFIX</item>
+      <item>ISPC_INSTRUCTION_SETS</item>
+      <item>JOB_POOL_COMPILE</item>
+      <item>JOB_POOL_LINK</item>
+      <item>LABELS</item>
+      <item>LIBRARY_OUTPUT_DIRECTORY</item>
+      <item>LIBRARY_OUTPUT_NAME</item>
+      <item>LINKER_LANGUAGE</item>
+      <item>LINK_DEPENDS</item>
+      <item>LINK_DEPENDS_NO_SHARED</item>
+      <item>LINK_DIRECTORIES</item>
+      <item>LINK_FLAGS</item>
+      <item>LINK_INTERFACE_LIBRARIES</item>
+      <item>LINK_INTERFACE_MULTIPLICITY</item>
+      <item>LINK_LIBRARIES</item>
+      <item>LINK_LIBRARIES_ONLY_TARGETS</item>
+      <item>LINK_OPTIONS</item>
+      <item>LINK_SEARCH_END_STATIC</item>
+      <item>LINK_SEARCH_START_STATIC</item>
+      <item>LINK_WHAT_YOU_USE</item>
+      <item>LOCATION</item>
+      <item>MACHO_COMPATIBILITY_VERSION</item>
+      <item>MACHO_CURRENT_VERSION</item>
+      <item>MACOSX_BUNDLE</item>
+      <item>MACOSX_BUNDLE_INFO_PLIST</item>
+      <item>MACOSX_FRAMEWORK_INFO_PLIST</item>
+      <item>MACOSX_RPATH</item>
+      <item>MANUALLY_ADDED_DEPENDENCIES</item>
+      <item>MSVC_DEBUG_INFORMATION_FORMAT</item>
+      <item>MSVC_RUNTIME_LIBRARY</item>
+      <item>NAME</item>
+      <item>NO_SONAME</item>
+      <item>NO_SYSTEM_FROM_IMPORTED</item>
+      <item>OBJCXX_EXTENSIONS</item>
+      <item>OBJCXX_STANDARD</item>
+      <item>OBJCXX_STANDARD_REQUIRED</item>
+      <item>OBJC_EXTENSIONS</item>
+      <item>OBJC_STANDARD</item>
+      <item>OBJC_STANDARD_REQUIRED</item>
+      <item>OPTIMIZE_DEPENDENCIES</item>
+      <item>OSX_ARCHITECTURES</item>
+      <item>OSX_COMPATIBILITY_VERSION</item>
+      <item>OSX_CURRENT_VERSION</item>
+      <item>OUTPUT_NAME</item>
+      <item>PCH_INSTANTIATE_TEMPLATES</item>
+      <item>PCH_WARN_INVALID</item>
+      <item>PDB_NAME</item>
+      <item>PDB_OUTPUT_DIRECTORY</item>
+      <item>POSITION_INDEPENDENT_CODE</item>
+      <item>PRECOMPILE_HEADERS</item>
+      <item>PRECOMPILE_HEADERS_REUSE_FROM</item>
+      <item>PREFIX</item>
+      <item>PRIVATE_HEADER</item>
+      <item>PROJECT_LABEL</item>
+      <item>PUBLIC_HEADER</item>
+      <item>RESOURCE</item>
+      <item>RULE_LAUNCH_COMPILE</item>
+      <item>RULE_LAUNCH_CUSTOM</item>
+      <item>RULE_LAUNCH_LINK</item>
+      <item>RUNTIME_OUTPUT_DIRECTORY</item>
+      <item>RUNTIME_OUTPUT_NAME</item>
+      <item>SKIP_BUILD_RPATH</item>
+      <item>SOURCES</item>
+      <item>SOURCE_DIR</item>
+      <item>SOVERSION</item>
+      <item>STATIC_LIBRARY_FLAGS</item>
+      <item>STATIC_LIBRARY_OPTIONS</item>
+      <item>SUFFIX</item>
+      <item>SYSTEM</item>
+      <item>Swift_DEPENDENCIES_FILE</item>
+      <item>Swift_MODULE_DIRECTORY</item>
+      <item>Swift_MODULE_NAME</item>
+      <item>TYPE</item>
+      <item>UNITY_BUILD</item>
+      <item>UNITY_BUILD_BATCH_SIZE</item>
+      <item>UNITY_BUILD_CODE_AFTER_INCLUDE</item>
+      <item>UNITY_BUILD_CODE_BEFORE_INCLUDE</item>
+      <item>UNITY_BUILD_MODE</item>
+      <item>UNITY_BUILD_UNIQUE_ID</item>
+      <item>VERIFY_INTERFACE_HEADER_SETS</item>
+      <item>VERSION</item>
+      <item>VISIBILITY_INLINES_HIDDEN</item>
+      <item>VS_CONFIGURATION_TYPE</item>
+      <item>VS_DEBUGGER_COMMAND</item>
+      <item>VS_DEBUGGER_COMMAND_ARGUMENTS</item>
+      <item>VS_DEBUGGER_ENVIRONMENT</item>
+      <item>VS_DEBUGGER_WORKING_DIRECTORY</item>
+      <item>VS_DESKTOP_EXTENSIONS_VERSION</item>
+      <item>VS_DOTNET_DOCUMENTATION_FILE</item>
+      <item>VS_DOTNET_REFERENCES</item>
+      <item>VS_DOTNET_REFERENCES_COPY_LOCAL</item>
+      <item>VS_DOTNET_STARTUP_OBJECT</item>
+      <item>VS_DOTNET_TARGET_FRAMEWORK_VERSION</item>
+      <item>VS_DPI_AWARE</item>
+      <item>VS_GLOBAL_KEYWORD</item>
+      <item>VS_GLOBAL_PROJECT_TYPES</item>
+      <item>VS_GLOBAL_ROOTNAMESPACE</item>
+      <item>VS_IOT_EXTENSIONS_VERSION</item>
+      <item>VS_IOT_STARTUP_TASK</item>
+      <item>VS_JUST_MY_CODE_DEBUGGING</item>
+      <item>VS_KEYWORD</item>
+      <item>VS_MOBILE_EXTENSIONS_VERSION</item>
+      <item>VS_NO_COMPILE_BATCHING</item>
+      <item>VS_NO_SOLUTION_DEPLOY</item>
+      <item>VS_PACKAGE_REFERENCES</item>
+      <item>VS_PLATFORM_TOOLSET</item>
+      <item>VS_PROJECT_IMPORT</item>
+      <item>VS_SCC_AUXPATH</item>
+      <item>VS_SCC_LOCALPATH</item>
+      <item>VS_SCC_PROJECTNAME</item>
+      <item>VS_SCC_PROVIDER</item>
+      <item>VS_SDK_REFERENCES</item>
+      <item>VS_SOLUTION_DEPLOY</item>
+      <item>VS_USER_PROPS</item>
+      <item>VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION</item>
+      <item>VS_WINRT_COMPONENT</item>
+      <item>VS_WINRT_EXTENSIONS</item>
+      <item>VS_WINRT_REFERENCES</item>
+      <item>WATCOM_RUNTIME_LIBRARY</item>
+      <item>WIN32_EXECUTABLE</item>
+      <item>WINDOWS_EXPORT_ALL_SYMBOLS</item>
+      <item>XCODE_EXPLICIT_FILE_TYPE</item>
+      <item>XCODE_GENERATE_SCHEME</item>
+      <item>XCODE_LINK_BUILD_PHASE_MODE</item>
+      <item>XCODE_PRODUCT_TYPE</item>
+      <item>XCODE_SCHEME_ADDRESS_SANITIZER</item>
+      <item>XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN</item>
+      <item>XCODE_SCHEME_ARGUMENTS</item>
+      <item>XCODE_SCHEME_DEBUG_AS_ROOT</item>
+      <item>XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING</item>
+      <item>XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER</item>
+      <item>XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS</item>
+      <item>XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE</item>
+      <item>XCODE_SCHEME_ENABLE_GPU_API_VALIDATION</item>
+      <item>XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE</item>
+      <item>XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION</item>
+      <item>XCODE_SCHEME_ENVIRONMENT</item>
+      <item>XCODE_SCHEME_EXECUTABLE</item>
+      <item>XCODE_SCHEME_GUARD_MALLOC</item>
+      <item>XCODE_SCHEME_LAUNCH_CONFIGURATION</item>
+      <item>XCODE_SCHEME_LAUNCH_MODE</item>
+      <item>XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP</item>
+      <item>XCODE_SCHEME_MALLOC_GUARD_EDGES</item>
+      <item>XCODE_SCHEME_MALLOC_SCRIBBLE</item>
+      <item>XCODE_SCHEME_MALLOC_STACK</item>
+      <item>XCODE_SCHEME_THREAD_SANITIZER</item>
+      <item>XCODE_SCHEME_THREAD_SANITIZER_STOP</item>
+      <item>XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER</item>
+      <item>XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP</item>
+      <item>XCODE_SCHEME_WORKING_DIRECTORY</item>
+      <item>XCODE_SCHEME_ZOMBIE_OBJECTS</item>
+      <item>XCODE_XCCONFIG</item>
+      <item>XCTEST</item>
+    </list>
+    <list name="source-properties">
+      <item>ABSTRACT</item>
+      <item>AUTORCC_OPTIONS</item>
+      <item>AUTOUIC_OPTIONS</item>
+      <item>COMPILE_DEFINITIONS</item>
+      <item>COMPILE_FLAGS</item>
+      <item>COMPILE_OPTIONS</item>
+      <item>CXX_SCAN_FOR_MODULES</item>
+      <item>EXTERNAL_OBJECT</item>
+      <item>Fortran_FORMAT</item>
+      <item>Fortran_PREPROCESS</item>
+      <item>GENERATED</item>
+      <item>HEADER_FILE_ONLY</item>
+      <item>INCLUDE_DIRECTORIES</item>
+      <item>KEEP_EXTENSION</item>
+      <item>LABELS</item>
+      <item>LANGUAGE</item>
+      <item>LOCATION</item>
+      <item>MACOSX_PACKAGE_LOCATION</item>
+      <item>OBJECT_DEPENDS</item>
+      <item>OBJECT_OUTPUTS</item>
+      <item>SKIP_AUTOGEN</item>
+      <item>SKIP_AUTOMOC</item>
+      <item>SKIP_AUTORCC</item>
+      <item>SKIP_AUTOUIC</item>
+      <item>SKIP_LINTING</item>
+      <item>SKIP_PRECOMPILE_HEADERS</item>
+      <item>SKIP_UNITY_BUILD_INCLUSION</item>
+      <item>SYMBOLIC</item>
+      <item>Swift_DEPENDENCIES_FILE</item>
+      <item>Swift_DIAGNOSTICS_FILE</item>
+      <item>VS_COPY_TO_OUT_DIR</item>
+      <item>VS_DEPLOYMENT_CONTENT</item>
+      <item>VS_DEPLOYMENT_LOCATION</item>
+      <item>VS_INCLUDE_IN_VSIX</item>
+      <item>VS_RESOURCE_GENERATOR</item>
+      <item>VS_SETTINGS</item>
+      <item>VS_SHADER_DISABLE_OPTIMIZATIONS</item>
+      <item>VS_SHADER_ENABLE_DEBUG</item>
+      <item>VS_SHADER_ENTRYPOINT</item>
+      <item>VS_SHADER_FLAGS</item>
+      <item>VS_SHADER_MODEL</item>
+      <item>VS_SHADER_OBJECT_FILE_NAME</item>
+      <item>VS_SHADER_OUTPUT_HEADER_FILE</item>
+      <item>VS_SHADER_TYPE</item>
+      <item>VS_SHADER_VARIABLE_NAME</item>
+      <item>VS_TOOL_OVERRIDE</item>
+      <item>VS_XAML_TYPE</item>
+      <item>WRAP_EXCLUDE</item>
+      <item>XCODE_EXPLICIT_FILE_TYPE</item>
+      <item>XCODE_FILE_ATTRIBUTES</item>
+      <item>XCODE_LAST_KNOWN_FILE_TYPE</item>
+    </list>
+    <list name="test-properties">
+      <item>ATTACHED_FILES</item>
+      <item>ATTACHED_FILES_ON_FAIL</item>
+      <item>COST</item>
+      <item>DEPENDS</item>
+      <item>DISABLED</item>
+      <item>ENVIRONMENT</item>
+      <item>ENVIRONMENT_MODIFICATION</item>
+      <item>FAIL_REGULAR_EXPRESSION</item>
+      <item>FIXTURES_CLEANUP</item>
+      <item>FIXTURES_REQUIRED</item>
+      <item>FIXTURES_SETUP</item>
+      <item>GENERATED_RESOURCE_SPEC_FILE</item>
+      <item>LABELS</item>
+      <item>MEASUREMENT</item>
+      <item>PASS_REGULAR_EXPRESSION</item>
+      <item>PROCESSORS</item>
+      <item>PROCESSOR_AFFINITY</item>
+      <item>REQUIRED_FILES</item>
+      <item>RESOURCE_GROUPS</item>
+      <item>RESOURCE_LOCK</item>
+      <item>RUN_SERIAL</item>
+      <item>SKIP_REGULAR_EXPRESSION</item>
+      <item>SKIP_RETURN_CODE</item>
+      <item>TIMEOUT</item>
+      <item>TIMEOUT_AFTER_MATCH</item>
+      <item>TIMEOUT_SIGNAL_GRACE_PERIOD</item>
+      <item>TIMEOUT_SIGNAL_NAME</item>
+      <item>WILL_FAIL</item>
+      <item>WORKING_DIRECTORY</item>
+    </list>
+    <list name="cache-properties">
+      <item>ADVANCED</item>
+      <item>HELPSTRING</item>
+      <item>MODIFIED</item>
+      <item>STRINGS</item>
+      <item>TYPE</item>
+      <item>VALUE</item>
+    </list>
+    <list name="install-properties">
+      <item>CPACK_DESKTOP_SHORTCUTS</item>
+      <item>CPACK_NEVER_OVERWRITE</item>
+      <item>CPACK_PERMANENT</item>
+      <item>CPACK_STARTUP_SHORTCUTS</item>
+      <item>CPACK_START_MENU_SHORTCUTS</item>
+      <item>CPACK_WIX_ACL</item>
+    </list>
+
+    <list name="generator-expressions">
+      <item>IF</item>
+      <item>0</item>
+      <item>1</item>
+      <item>BOOL</item>
+      <item>AND</item>
+      <item>OR</item>
+      <item>NOT</item>
+      <item>STREQUAL</item>
+      <item>EQUAL</item>
+      <item>VERSION_LESS</item>
+      <item>VERSION_GREATER</item>
+      <item>VERSION_EQUAL</item>
+      <item>VERSION_LESS_EQUAL</item>
+      <item>VERSION_GREATER_EQUAL</item>
+      <item>LOWER_CASE</item>
+      <item>UPPER_CASE</item>
+      <item>MAKE_C_IDENTIFIER</item>
+      <item>IN_LIST</item>
+      <item>JOIN</item>
+      <item>REMOVE_DUPLICATES</item>
+      <item>FILTER</item>
+      <item>PATH_EQUAL</item>
+      <item>SHELL_PATH</item>
+      <item>CONFIG</item>
+      <item>OUTPUT_CONFIG</item>
+      <item>COMMAND_CONFIG</item>
+      <item>PLATFORM_ID</item>
+      <item>C_COMPILER_VERSION</item>
+      <item>CXX_COMPILER_VERSION</item>
+      <item>CUDA_COMPILER_VERSION</item>
+      <item>OBJC_COMPILER_VERSION</item>
+      <item>OBJCXX_COMPILER_VERSION</item>
+      <item>Fortran_COMPILER_VERSION</item>
+      <item>HIP_COMPILER_VERSION</item>
+      <item>ISPC_COMPILER_VERSION</item>
+      <item>C_COMPILER_ID</item>
+      <item>CXX_COMPILER_ID</item>
+      <item>CUDA_COMPILER_ID</item>
+      <item>OBJC_COMPILER_ID</item>
+      <item>OBJCXX_COMPILER_ID</item>
+      <item>Fortran_COMPILER_ID</item>
+      <item>HIP_COMPILER_ID</item>
+      <item>ISPC_COMPILER_ID</item>
+      <item>COMPILE_LANGUAGE</item>
+      <item>COMPILE_LANG_AND_ID</item>
+      <item>COMPILE_FEATURES</item>
+      <item>COMPILE_ONLY</item>
+      <item>LINK_LANGUAGE</item>
+      <item>LINK_LANG_AND_ID</item>
+      <item>LINK_LIBRARY</item>
+      <item>LINK_GROUP</item>
+      <item>LINK_ONLY</item>
+      <item>DEVICE_LINK</item>
+      <item>HOST_LINK</item>
+      <item>TARGET_EXISTS</item>
+      <item>TARGET_NAME_IF_EXISTS</item>
+      <item>TARGET_NAME</item>
+      <item>TARGET_PROPERTY</item>
+      <item>TARGET_OBJECTS</item>
+      <item>TARGET_POLICY</item>
+      <item>TARGET_FILE</item>
+      <item>TARGET_FILE_BASE_NAME</item>
+      <item>TARGET_FILE_PREFIX</item>
+      <item>TARGET_FILE_SUFFIX</item>
+      <item>TARGET_FILE_NAME</item>
+      <item>TARGET_FILE_DIR</item>
+      <item>TARGET_IMPORT_FILE</item>
+      <item>TARGET_IMPORT_FILE_BASE_NAME</item>
+      <item>TARGET_IMPORT_FILE_PREFIX</item>
+      <item>TARGET_IMPORT_FILE_SUFFIX</item>
+      <item>TARGET_IMPORT_FILE_NAME</item>
+      <item>TARGET_IMPORT_FILE_DIR</item>
+      <item>TARGET_LINKER_FILE</item>
+      <item>TARGET_LINKER_FILE_BASE_NAME</item>
+      <item>TARGET_LINKER_FILE_PREFIX</item>
+      <item>TARGET_LINKER_FILE_SUFFIX</item>
+      <item>TARGET_LINKER_FILE_NAME</item>
+      <item>TARGET_LINKER_FILE_DIR</item>
+      <item>TARGET_SONAME_FILE</item>
+      <item>TARGET_SONAME_FILE_NAME</item>
+      <item>TARGET_SONAME_FILE_DIR</item>
+      <item>TARGET_PDB_FILE</item>
+      <item>TARGET_PDB_FILE_BASE_NAME</item>
+      <item>TARGET_PDB_FILE_NAME</item>
+      <item>TARGET_PDB_FILE_DIR</item>
+      <item>TARGET_BUNDLE_DIR_NAME</item>
+      <item>TARGET_BUNDLE_DIR</item>
+      <item>TARGET_BUNDLE_CONTENT_DIR</item>
+      <item>TARGET_RUNTIME_DLLS</item>
+      <item>TARGET_RUNTIME_DLL_DIRS</item>
+      <item>INSTALL_INTERFACE</item>
+      <item>BUILD_INTERFACE</item>
+      <item>BUILD_LOCAL_INTERFACE</item>
+      <item>INSTALL_PREFIX</item>
+      <item>GENEX_EVAL</item>
+      <item>TARGET_GENEX_EVAL</item>
+      <item>ANGLE-R</item>
+      <item>COMMA</item>
+      <item>SEMICOLON</item>
+    </list>
+    <list name="genex-LIST-subcommands">
+      <item>LENGTH</item>
+      <item>GET</item>
+      <item>SUBLIST</item>
+      <item>FIND</item>
+      <item>JOIN</item>
+      <item>APPEND</item>
+      <item>PREPEND</item>
+      <item>INSERT</item>
+      <item>POP_BACK</item>
+      <item>POP_FRONT</item>
+      <item>REMOVE_ITEM</item>
+      <item>REMOVE_AT</item>
+      <item>REMOVE_DUPLICATES</item>
+      <item>FILTER</item>
+      <item>TRANSFORM</item>
+      <item>FRANSFORM</item>
+      <item>REVERSE</item>
+      <item>SORT</item>
+    </list>
+    <list name="genex-PATH-subcommands">
+      <item>HAS_ROOT_NAME</item>
+      <item>HAS_ROOT_DIRECTORY</item>
+      <item>HAS_ROOT_PATH</item>
+      <item>HAS_FILENAME</item>
+      <item>HAS_EXTENSION</item>
+      <item>HAS_STEM</item>
+      <item>HAS_RELATIVE_PART</item>
+      <item>HAS_PARENT_PATH</item>
+      <item>IS_ABSOLUTE</item>
+      <item>IS_RELATIVE</item>
+      <item>IS_PREFIX</item>
+      <item>GET_ROOT_NAME</item>
+      <item>GET_ROOT_DIRECTORY</item>
+      <item>GET_ROOT_PATH</item>
+      <item>GET_FILENAME</item>
+      <item>GET_EXTENSION</item>
+      <item>GET_STEM</item>
+      <item>GET_RELATIVE_PART</item>
+      <item>GET_PARENT_PATH</item>
+      <item>CMAKE_PATH</item>
+      <item>APPEND</item>
+      <item>REMOVE_FILENAME</item>
+      <item>REPLACE_FILENAME</item>
+      <item>REMOVE_EXTENSION</item>
+      <item>REPLACE_EXTENSION</item>
+      <item>NORMAL_PATH</item>
+      <item>RELATIVE_PATH</item>
+      <item>ABSOLUTE_PATH</item>
+    </list>
+
+    <list name="standard-modules">
+      <item>AndroidTestUtilities</item>
+      <item>BundleUtilities</item>
+      <item>CheckCCompilerFlag</item>
+      <item>CheckCompilerFlag</item>
+      <item>CheckCSourceCompiles</item>
+      <item>CheckCSourceRuns</item>
+      <item>CheckCXXCompilerFlag</item>
+      <item>CheckCXXSourceCompiles</item>
+      <item>CheckCXXSourceRuns</item>
+      <item>CheckCXXSymbolExists</item>
+      <item>CheckFortranCompilerFlag</item>
+      <item>CheckFortranFunctionExists</item>
+      <item>CheckFortranSourceCompiles</item>
+      <item>CheckFortranSourceRuns</item>
+      <item>CheckFunctionExists</item>
+      <item>CheckIncludeFileCXX</item>
+      <item>CheckIncludeFile</item>
+      <item>CheckIncludeFiles</item>
+      <item>CheckIPOSupported</item>
+      <item>CheckLanguage</item>
+      <item>CheckLibraryExists</item>
+      <item>CheckLinkerFlag</item>
+      <item>CheckOBJCCompilerFlag</item>
+      <item>CheckOBJCSourceCompiles</item>
+      <item>CheckOBJCSourceRuns</item>
+      <item>CheckOBJCXXCompilerFlag</item>
+      <item>CheckOBJCXXSourceCompiles</item>
+      <item>CheckOBJCXXSourceRuns</item>
+      <item>CheckPIESupported</item>
+      <item>CheckPrototypeDefinition</item>
+      <item>CheckSourceCompiles</item>
+      <item>CheckSourceRuns</item>
+      <item>CheckStructHasMember</item>
+      <item>CheckSymbolExists</item>
+      <item>CheckTypeSize</item>
+      <item>CheckVariableExists</item>
+      <item>CMakeAddFortranSubdirectory</item>
+      <item>CMakeBackwardCompatibilityCXX</item>
+      <item>CMakeDependentOption</item>
+      <item>CMakeFindDependencyMacro</item>
+      <item>CMakeFindFrameworks</item>
+      <item>CMakePackageConfigHelpers</item>
+      <item>CMakePrintHelpers</item>
+      <item>CMakePrintSystemInformation</item>
+      <item>CMakePushCheckState</item>
+      <item>CPack</item>
+      <item>CPackComponent</item>
+      <item>CPackIFW</item>
+      <item>CPackIFWConfigureFile</item>
+      <item>CSharpUtilities</item>
+      <item>CTest</item>
+      <item>CTestCoverageCollectGCOV</item>
+      <item>CTestScriptMode</item>
+      <item>CTestUseLaunchers</item>
+      <item>DeployQt4</item>
+      <item>ExternalData</item>
+      <item>ExternalProject</item>
+      <item>FeatureSummary</item>
+      <item>FetchContent</item>
+      <item>FindPackageHandleStandardArgs</item>
+      <item>FindPackageMessage</item>
+      <item>FortranCInterface</item>
+      <item>GenerateExportHeader</item>
+      <item>GNUInstallDirs</item>
+      <item>GoogleTest</item>
+      <item>InstallRequiredSystemLibraries</item>
+      <item>ProcessorCount</item>
+      <item>SelectLibraryConfigurations</item>
+      <item>TestForANSIForScope</item>
+      <item>TestForANSIStreamHeaders</item>
+      <item>TestForSSTREAM</item>
+      <item>TestForSTDNamespace</item>
+      <item>UseEcos</item>
+      <item>UseJava</item>
+      <item>UseSWIG</item>
+      <item>UsewxWidgets</item>
+    </list>
+
+    <list name="standard-finder-modules">
+      <item>ALSA</item>
+      <item>Armadillo</item>
+      <item>ASPELL</item>
+      <item>AVIFile</item>
+      <item>Backtrace</item>
+      <item>BISON</item>
+      <item>BLAS</item>
+      <item>Boost</item>
+      <item>Bullet</item>
+      <item>BZip2</item>
+      <item>CABLE</item>
+      <item>Coin3D</item>
+      <item>CUDAToolkit</item>
+      <item>Cups</item>
+      <item>CURL</item>
+      <item>Curses</item>
+      <item>CVS</item>
+      <item>CxxTest</item>
+      <item>Cygwin</item>
+      <item>DCMTK</item>
+      <item>DevIL</item>
+      <item>Doxygen</item>
+      <item>EnvModules</item>
+      <item>EXPAT</item>
+      <item>FLEX</item>
+      <item>FLTK</item>
+      <item>FLTK2</item>
+      <item>Fontconfig</item>
+      <item>Freetype</item>
+      <item>GCCXML</item>
+      <item>GDAL</item>
+      <item>Gettext</item>
+      <item>GIF</item>
+      <item>Git</item>
+      <item>GLEW</item>
+      <item>GLUT</item>
+      <item>Gnuplot</item>
+      <item>GnuTLS</item>
+      <item>GSL</item>
+      <item>GTest</item>
+      <item>GTK</item>
+      <item>GTK2</item>
+      <item>HDF5</item>
+      <item>Hg</item>
+      <item>HSPELL</item>
+      <item>HTMLHelp</item>
+      <item>Ice</item>
+      <item>Iconv</item>
+      <item>Icotool</item>
+      <item>ICU</item>
+      <item>ImageMagick</item>
+      <item>Intl</item>
+      <item>ITK</item>
+      <item>Jasper</item>
+      <item>Java</item>
+      <item>JNI</item>
+      <item>JPEG</item>
+      <item>KDE3</item>
+      <item>KDE4</item>
+      <item>LAPACK</item>
+      <item>LATEX</item>
+      <item>LibArchive</item>
+      <item>Libinput</item>
+      <item>LibLZMA</item>
+      <item>LibXml2</item>
+      <item>LibXslt</item>
+      <item>LTTngUST</item>
+      <item>Lua</item>
+      <item>Lua50</item>
+      <item>Lua51</item>
+      <item>Matlab</item>
+      <item>MFC</item>
+      <item>Motif</item>
+      <item>MPEG</item>
+      <item>MPEG2</item>
+      <item>MPI</item>
+      <item>Msys</item>
+      <item>ODBC</item>
+      <item>OpenACC</item>
+      <item>OpenAL</item>
+      <item>OpenCL</item>
+      <item>OpenGL</item>
+      <item>OpenMP</item>
+      <item>OpenSceneGraph</item>
+      <item>OpenSSL</item>
+      <item>OpenThreads</item>
+      <item>osg</item>
+      <item>osg_functions</item>
+      <item>osgAnimation</item>
+      <item>osgDB</item>
+      <item>osgFX</item>
+      <item>osgGA</item>
+      <item>osgIntrospection</item>
+      <item>osgManipulator</item>
+      <item>osgParticle</item>
+      <item>osgPresentation</item>
+      <item>osgProducer</item>
+      <item>osgQt</item>
+      <item>osgShadow</item>
+      <item>osgSim</item>
+      <item>osgTerrain</item>
+      <item>osgText</item>
+      <item>osgUtil</item>
+      <item>osgViewer</item>
+      <item>osgVolume</item>
+      <item>osgWidget</item>
+      <item>Patch</item>
+      <item>Perl</item>
+      <item>PerlLibs</item>
+      <item>PHP4</item>
+      <item>PhysFS</item>
+      <item>Pike</item>
+      <item>PkgConfig</item>
+      <item>PNG</item>
+      <item>PostgreSQL</item>
+      <item>Producer</item>
+      <item>Protobuf</item>
+      <item>Python</item>
+      <item>Python2</item>
+      <item>Python3</item>
+      <item>Qt3</item>
+      <item>Qt4</item>
+      <item>QuickTime</item>
+      <item>RTI</item>
+      <item>Ruby</item>
+      <item>SDL</item>
+      <item>SDL_image</item>
+      <item>SDL_mixer</item>
+      <item>SDL_net</item>
+      <item>SDL_sound</item>
+      <item>SDL_ttf</item>
+      <item>SelfPackers</item>
+      <item>Squish</item>
+      <item>SQLite3</item>
+      <item>Subversion</item>
+      <item>SWIG</item>
+      <item>TCL</item>
+      <item>Tclsh</item>
+      <item>TclStub</item>
+      <item>Threads</item>
+      <item>TIFF</item>
+      <item>UnixCommands</item>
+      <item>VTK</item>
+      <item>Vulkan</item>
+      <item>Wget</item>
+      <item>Wish</item>
+      <item>wxWidgets</item>
+      <item>X11</item>
+      <item>XalanC</item>
+      <item>XCTest</item>
+      <item>XercesC</item>
+      <item>XMLRPC</item>
+      <item>ZLIB</item>
+    </list>
+
+    <list name="deprecated-modules">
+      <item>AddFileDependencies</item>
+      <item>CMakeDetermineVSServicePack</item>
+      <item>CMakeExpandImportedTargets</item>
+      <item>CMakeForceCompiler</item>
+      <item>CMakeParseArguments</item>
+      <item>Dart</item>
+      <item>Documentation</item>
+      <item>MacroAddFileDependencies</item>
+      <item>TestCXXAcceptsFlag</item>
+      <item>UseJavaClassFilelist</item>
+      <item>UseJavaSymlinks</item>
+      <item>UsePkgConfig</item>
+      <item>Use_wxWindows</item>
+      <item>WriteBasicConfigVersionFile</item>
+      <item>WriteCompilerDetectionHeader</item>
+      <item>FindCUDA</item>
+      <item>FindDart</item>
+      <item>FindPythonInterp</item>
+      <item>FindPythonLibs</item>
+      <item>FindQt</item>
+      <item>FindwxWindows</item>
+      <item>CPackArchive</item>
+      <item>CPackBundle</item>
+      <item>CPackCygwin</item>
+      <item>CPackDeb</item>
+      <item>CPackDMG</item>
+      <item>CPackFreeBSD</item>
+      <item>CPackNSIS</item>
+      <item>CPackNuGet</item>
+      <item>CPackPackageMaker</item>
+      <item>CPackProductBuild</item>
+      <item>CPackRPM</item>
+      <item>CPackWIX</item>
+      <item>GetPrerequisites</item>
+      <item>TestBigEndian</item>
+    </list>
+
+    
+<!-- Source/cmStringAlgorithms.cxx: bool cmIsOff(cm::string_view val) -->
+    <list name="true_special_arg">
+      <item>TRUE</item>
+      <item>ON</item>
+      <item>YES</item>
+      <item>Y</item>
+      <item>0</item>
+    </list>
+
+    
+<!-- Source/cmStringAlgorithms.cxx: bool cmIsOff(cm::string_view val) -->
+    <list name="false_special_arg">
+      <item>FALSE</item>
+      <item>OFF</item>
+      <item>NO</item>
+      <item>IGNORE</item>
+      <item>N</item>
+      <item>0</item>
+    </list>
+
+    <contexts>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal Text">
+        <DetectSpaces/>
+        <WordDetect String="block" insensitive="true" attribute="Command" context="block_ctx" beginRegion="block"/>
+        <WordDetect String="break" insensitive="true" attribute="Control Flow" context="break_ctx"/>
+        <WordDetect String="cmake_host_system_information" insensitive="true" attribute="Command" context="cmake_host_system_information_ctx"/>
+        <WordDetect String="cmake_language" insensitive="true" attribute="Command" context="cmake_language_ctx"/>
+        <WordDetect String="cmake_minimum_required" insensitive="true" attribute="Command" context="cmake_minimum_required_ctx"/>
+        <WordDetect String="cmake_parse_arguments" insensitive="true" attribute="Command" context="cmake_parse_arguments_ctx"/>
+        <WordDetect String="cmake_path" insensitive="true" attribute="Command" context="cmake_path_ctx"/>
+        <WordDetect String="cmake_policy" insensitive="true" attribute="Command" context="cmake_policy_ctx"/>
+        <WordDetect String="configure_file" insensitive="true" attribute="Command" context="configure_file_ctx"/>
+        <WordDetect String="continue" insensitive="true" attribute="Control Flow" context="break_ctx"/>
+        <WordDetect String="elseif" insensitive="true" attribute="Control Flow" context="elseif_ctx"/>
+        <WordDetect String="else" insensitive="true" attribute="Control Flow" context="break_ctx"/>
+        <WordDetect String="endblock" insensitive="true" attribute="Command" context="break_ctx" endRegion="block"/>
+        <WordDetect String="endforeach" insensitive="true" attribute="Control Flow" context="break_ctx" endRegion="foreach"/>
+        <WordDetect String="endfunction" insensitive="true" attribute="Command" context="break_ctx" endRegion="function"/>
+        <WordDetect String="endif" insensitive="true" attribute="Control Flow" context="break_ctx" endRegion="if"/>
+        <WordDetect String="endmacro" insensitive="true" attribute="Command" context="break_ctx" endRegion="macro"/>
+        <WordDetect String="endwhile" insensitive="true" attribute="Control Flow" context="break_ctx" endRegion="while"/>
+        <WordDetect String="execute_process" insensitive="true" attribute="Command" context="execute_process_ctx"/>
+        <WordDetect String="file" insensitive="true" attribute="Command" context="file_ctx"/>
+        <WordDetect String="find_file" insensitive="true" attribute="Command" context="find_file_ctx"/>
+        <WordDetect String="find_library" insensitive="true" attribute="Command" context="find_library_ctx"/>
+        <WordDetect String="find_package" insensitive="true" attribute="Command" context="find_package_ctx"/>
+        <WordDetect String="find_path" insensitive="true" attribute="Command" context="find_file_ctx"/>
+        <WordDetect String="find_program" insensitive="true" attribute="Command" context="find_library_ctx"/>
+        <WordDetect String="foreach" insensitive="true" attribute="Control Flow" context="foreach_ctx" beginRegion="foreach"/>
+        <WordDetect String="function" insensitive="true" attribute="Command" context="function_ctx" beginRegion="function"/>
+        <WordDetect String="get_cmake_property" insensitive="true" attribute="Command" context="get_cmake_property_ctx"/>
+        <WordDetect String="get_directory_property" insensitive="true" attribute="Command" context="get_directory_property_ctx"/>
+        <WordDetect String="get_filename_component" insensitive="true" attribute="Command" context="get_filename_component_ctx"/>
+        <WordDetect String="get_property" insensitive="true" attribute="Command" context="get_property_ctx"/>
+        <WordDetect String="if" insensitive="true" attribute="Control Flow" context="if_ctx" beginRegion="if"/>
+        <WordDetect String="include" insensitive="true" attribute="Command" context="include_ctx"/>
+        <WordDetect String="include_guard" insensitive="true" attribute="Command" context="include_guard_ctx"/>
+        <WordDetect String="list" insensitive="true" attribute="Command" context="list_ctx"/>
+        <WordDetect String="macro" insensitive="true" attribute="Command" context="function_ctx" beginRegion="macro"/>
+        <WordDetect String="mark_as_advanced" insensitive="true" attribute="Command" context="mark_as_advanced_ctx"/>
+        <WordDetect String="math" insensitive="true" attribute="Command" context="math_ctx"/>
+        <WordDetect String="message" insensitive="true" attribute="Command" context="message_ctx"/>
+        <WordDetect String="option" insensitive="true" attribute="Command" context="function_ctx"/>
+        <WordDetect String="return" insensitive="true" attribute="Control Flow" context="return_ctx"/>
+        <WordDetect String="separate_arguments" insensitive="true" attribute="Command" context="separate_arguments_ctx"/>
+        <WordDetect String="set_directory_properties" insensitive="true" attribute="Command" context="set_directory_properties_ctx"/>
+        <WordDetect String="set_property" insensitive="true" attribute="Command" context="set_property_ctx"/>
+        <WordDetect String="set" insensitive="true" attribute="Command" context="set_ctx"/>
+        <WordDetect String="site_name" insensitive="true" attribute="Command" context="function_ctx"/>
+        <WordDetect String="string" insensitive="true" attribute="Command" context="string_ctx"/>
+        <WordDetect String="unset" insensitive="true" attribute="Command" context="unset_ctx"/>
+        <WordDetect String="variable_watch" insensitive="true" attribute="Command" context="function_ctx"/>
+        <WordDetect String="while" insensitive="true" attribute="Control Flow" context="while_ctx" beginRegion="while"/>
+        <WordDetect String="add_compile_definitions" insensitive="true" attribute="Command" context="function_ctx"/>
+        <WordDetect String="add_compile_options" insensitive="true" attribute="Command" context="function_ctx"/>
+        <WordDetect String="add_custom_command" insensitive="true" attribute="Command" context="add_custom_command_ctx"/>
+        <WordDetect String="add_custom_target" insensitive="true" attribute="Command" context="add_custom_target_ctx"/>
+        <WordDetect String="add_definitions" insensitive="true" attribute="Command" context="function_ctx"/>
+        <WordDetect String="add_dependencies" insensitive="true" attribute="Command" context="add_dependencies_ctx"/>
+        <WordDetect String="add_executable" insensitive="true" attribute="Command" context="add_executable_ctx"/>
+        <WordDetect String="add_library" insensitive="true" attribute="Command" context="add_library_ctx"/>
+        <WordDetect String="add_link_options" insensitive="true" attribute="Command" context="function_ctx"/>
+        <WordDetect String="add_subdirectory" insensitive="true" attribute="Command" context="add_subdirectory_ctx"/>
+        <WordDetect String="add_test" insensitive="true" attribute="Command" context="add_test_ctx"/>
+        <WordDetect String="aux_source_directory" insensitive="true" attribute="Command" context="function_ctx"/>
+        <WordDetect String="build_command" insensitive="true" attribute="Command" context="build_command_ctx"/>
+        <WordDetect String="cmake_file_api" insensitive="true" attribute="Command" context="cmake_file_api_ctx"/>
+        <WordDetect String="create_test_sourcelist" insensitive="true" attribute="Command" context="create_test_sourcelist_ctx"/>
+        <WordDetect String="define_property" insensitive="true" attribute="Command" context="define_property_ctx"/>
+        <WordDetect String="enable_language" insensitive="true" attribute="Command" context="enable_language_ctx"/>
+        <WordDetect String="enable_testing" insensitive="true" attribute="Command" context="function_ctx"/>
+        <WordDetect String="export" insensitive="true" attribute="Command" context="export_ctx"/>
+        <WordDetect String="fltk_wrap_ui" insensitive="true" attribute="Command" context="function_ctx"/>
+        <WordDetect String="get_source_file_property" insensitive="true" attribute="Command" context="get_source_file_property_ctx"/>
+        <WordDetect String="get_target_property" insensitive="true" attribute="Command" context="get_target_property_ctx"/>
+        <WordDetect String="get_test_property" insensitive="true" attribute="Command" context="get_test_property_ctx"/>
+        <WordDetect String="include_directories" insensitive="true" attribute="Command" context="include_directories_ctx"/>
+        <WordDetect String="include_external_msproject" insensitive="true" attribute="Command" context="include_external_msproject_ctx"/>
+        <WordDetect String="include_regular_expression" insensitive="true" attribute="Command" context="function_ctx"/>
+        <WordDetect String="install" insensitive="true" attribute="Command" context="install_ctx"/>
+        <WordDetect String="link_directories" insensitive="true" attribute="Command" context="link_directories_ctx"/>
+        <WordDetect String="link_libraries" insensitive="true" attribute="Command" context="link_libraries_ctx"/>
+        <WordDetect String="load_cache" insensitive="true" attribute="Command" context="load_cache_ctx"/>
+        <WordDetect String="project" insensitive="true" attribute="Command" context="project_ctx"/>
+        <WordDetect String="qt_wrap_cpp" insensitive="true" attribute="Command" context="function_ctx"/>
+        <WordDetect String="qt_wrap_ui" insensitive="true" attribute="Command" context="function_ctx"/>
+        <WordDetect String="remove_definitions" insensitive="true" attribute="Command" context="function_ctx"/>
+        <WordDetect String="set_source_files_properties" insensitive="true" attribute="Command" context="set_source_files_properties_ctx"/>
+        <WordDetect String="set_target_properties" insensitive="true" attribute="Command" context="set_target_properties_ctx"/>
+        <WordDetect String="set_tests_properties" insensitive="true" attribute="Command" context="set_tests_properties_ctx"/>
+        <WordDetect String="source_group" insensitive="true" attribute="Command" context="source_group_ctx"/>
+        <WordDetect String="target_compile_definitions" insensitive="true" attribute="Command" context="target_compile_definitions_ctx"/>
+        <WordDetect String="target_compile_features" insensitive="true" attribute="Command" context="target_compile_features_ctx"/>
+        <WordDetect String="target_compile_options" insensitive="true" attribute="Command" context="target_compile_options_ctx"/>
+        <WordDetect String="target_include_directories" insensitive="true" attribute="Command" context="target_include_directories_ctx"/>
+        <WordDetect String="target_link_directories" insensitive="true" attribute="Command" context="target_compile_options_ctx"/>
+        <WordDetect String="target_link_libraries" insensitive="true" attribute="Command" context="target_link_libraries_ctx"/>
+        <WordDetect String="target_link_options" insensitive="true" attribute="Command" context="target_compile_definitions_ctx"/>
+        <WordDetect String="target_precompile_headers" insensitive="true" attribute="Command" context="target_precompile_headers_ctx"/>
+        <WordDetect String="target_sources" insensitive="true" attribute="Command" context="target_sources_ctx"/>
+        <WordDetect String="try_compile" insensitive="true" attribute="Command" context="try_compile_ctx"/>
+        <WordDetect String="try_run" insensitive="true" attribute="Command" context="try_run_ctx"/>
+        <WordDetect String="ctest_build" insensitive="true" attribute="Command" context="ctest_build_ctx"/>
+        <WordDetect String="ctest_configure" insensitive="true" attribute="Command" context="ctest_configure_ctx"/>
+        <WordDetect String="ctest_coverage" insensitive="true" attribute="Command" context="ctest_coverage_ctx"/>
+        <WordDetect String="ctest_empty_binary_directory" insensitive="true" attribute="Command" context="function_ctx"/>
+        <WordDetect String="ctest_memcheck" insensitive="true" attribute="Command" context="ctest_memcheck_ctx"/>
+        <WordDetect String="ctest_read_custom_files" insensitive="true" attribute="Command" context="function_ctx"/>
+        <WordDetect String="ctest_run_script" insensitive="true" attribute="Command" context="ctest_run_script_ctx"/>
+        <WordDetect String="ctest_sleep" insensitive="true" attribute="Command" context="function_ctx"/>
+        <WordDetect String="ctest_start" insensitive="true" attribute="Command" context="ctest_start_ctx"/>
+        <WordDetect String="ctest_submit" insensitive="true" attribute="Command" context="ctest_submit_ctx"/>
+        <WordDetect String="ctest_test" insensitive="true" attribute="Command" context="ctest_test_ctx"/>
+        <WordDetect String="ctest_update" insensitive="true" attribute="Command" context="ctest_update_ctx"/>
+        <WordDetect String="ctest_upload" insensitive="true" attribute="Command" context="ctest_upload_ctx"/>
+        <WordDetect String="android_add_test_data" insensitive="true" attribute="CMake Provided Function/Macro" context="android_add_test_data_ctx"/>
+        <WordDetect String="fixup_bundle" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="copy_and_fixup_bundle" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="verify_app" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="get_bundle_main_executable" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="get_dotapp_dir" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="get_bundle_and_executable" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="get_bundle_all_executables" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="get_item_key" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="get_item_rpaths" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="clear_bundle_keys" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="set_bundle_key_values" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="get_bundle_keys" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="copy_resolved_item_into_bundle" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="copy_resolved_framework_into_bundle" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="fixup_bundle_item" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="verify_bundle_prerequisites" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="verify_bundle_symlinks" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_c_compiler_flag" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_compiler_flag" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_c_source_compiles" insensitive="true" attribute="CMake Provided Function/Macro" context="check_c_source_compiles_ctx"/>
+        <WordDetect String="check_c_source_runs" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_cxx_compiler_flag" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_cxx_source_compiles" insensitive="true" attribute="CMake Provided Function/Macro" context="check_c_source_compiles_ctx"/>
+        <WordDetect String="check_cxx_source_runs" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_cxx_symbol_exists" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_fortran_compiler_flag" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_fortran_function_exists" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_fortran_source_compiles" insensitive="true" attribute="CMake Provided Function/Macro" context="check_fortran_source_compiles_ctx"/>
+        <WordDetect String="check_fortran_source_runs" insensitive="true" attribute="CMake Provided Function/Macro" context="check_fortran_source_runs_ctx"/>
+        <WordDetect String="check_function_exists" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_include_file_cxx" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_include_file" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_include_files" insensitive="true" attribute="CMake Provided Function/Macro" context="check_include_files_ctx"/>
+        <WordDetect String="check_ipo_supported" insensitive="true" attribute="CMake Provided Function/Macro" context="check_ipo_supported_ctx"/>
+        <WordDetect String="check_language" insensitive="true" attribute="CMake Provided Function/Macro" context="check_language_ctx"/>
+        <WordDetect String="check_library_exists" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_linker_flag" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_objc_compiler_flag" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_objc_source_compiles" insensitive="true" attribute="CMake Provided Function/Macro" context="check_c_source_compiles_ctx"/>
+        <WordDetect String="check_objc_source_runs" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_objcxx_compiler_flag" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_objcxx_source_compiles" insensitive="true" attribute="CMake Provided Function/Macro" context="check_c_source_compiles_ctx"/>
+        <WordDetect String="check_objcxx_source_runs" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_pie_supported" insensitive="true" attribute="CMake Provided Function/Macro" context="check_pie_supported_ctx"/>
+        <WordDetect String="check_prototype_definition" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_source_compiles" insensitive="true" attribute="CMake Provided Function/Macro" context="check_fortran_source_compiles_ctx"/>
+        <WordDetect String="check_source_runs" insensitive="true" attribute="CMake Provided Function/Macro" context="check_fortran_source_runs_ctx"/>
+        <WordDetect String="check_struct_has_member" insensitive="true" attribute="CMake Provided Function/Macro" context="check_include_files_ctx"/>
+        <WordDetect String="check_symbol_exists" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="check_type_size" insensitive="true" attribute="CMake Provided Function/Macro" context="check_type_size_ctx"/>
+        <WordDetect String="check_variable_exists" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="cmake_add_fortran_subdirectory" insensitive="true" attribute="CMake Provided Function/Macro" context="cmake_add_fortran_subdirectory_ctx"/>
+        <WordDetect String="cmake_dependent_option" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="find_dependency" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="configure_package_config_file" insensitive="true" attribute="CMake Provided Function/Macro" context="configure_package_config_file_ctx"/>
+        <WordDetect String="write_basic_package_version_file" insensitive="true" attribute="CMake Provided Function/Macro" context="write_basic_package_version_file_ctx"/>
+        <WordDetect String="cmake_print_properties" insensitive="true" attribute="CMake Provided Function/Macro" context="cmake_print_properties_ctx"/>
+        <WordDetect String="cmake_push_check_state" insensitive="true" attribute="CMake Provided Function/Macro" context="cmake_push_check_state_ctx"/>
+        <WordDetect String="cmake_pop_check_state" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="cmake_reset_check_state" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="cpack_add_component" insensitive="true" attribute="CMake Provided Function/Macro" context="cpack_add_component_ctx"/>
+        <WordDetect String="cpack_add_component_group" insensitive="true" attribute="CMake Provided Function/Macro" context="cpack_add_component_group_ctx"/>
+        <WordDetect String="cpack_add_install_type" insensitive="true" attribute="CMake Provided Function/Macro" context="cpack_add_install_type_ctx"/>
+        <WordDetect String="cpack_configure_downloads" insensitive="true" attribute="CMake Provided Function/Macro" context="cpack_configure_downloads_ctx"/>
+        <WordDetect String="cpack_ifw_configure_component" insensitive="true" attribute="CMake Provided Function/Macro" context="cpack_ifw_configure_component_ctx"/>
+        <WordDetect String="cpack_ifw_configure_component_group" insensitive="true" attribute="CMake Provided Function/Macro" context="cpack_ifw_configure_component_group_ctx"/>
+        <WordDetect String="cpack_ifw_add_repository" insensitive="true" attribute="CMake Provided Function/Macro" context="cpack_ifw_add_repository_ctx"/>
+        <WordDetect String="cpack_ifw_update_repository" insensitive="true" attribute="CMake Provided Function/Macro" context="cpack_ifw_update_repository_ctx"/>
+        <WordDetect String="cpack_ifw_add_package_resources" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="cpack_ifw_configure_file" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="csharp_set_windows_forms_properties" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="csharp_set_designer_cs_properties" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="csharp_set_xaml_cs_properties" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="csharp_get_filename_keys" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="csharp_get_filename_key_base" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="csharp_get_dependentupon_name" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="ctest_coverage_collect_gcov" insensitive="true" attribute="CMake Provided Function/Macro" context="ctest_coverage_collect_gcov_ctx"/>
+        <WordDetect String="write_qt4_conf" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="resolve_qt4_paths" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="fixup_qt4_executable" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="install_qt4_plugin_path" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="install_qt4_plugin" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="install_qt4_executable" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="ExternalData_Expand_Arguments" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="ExternalData_Add_Test" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="ExternalData_Add_Target" insensitive="true" attribute="CMake Provided Function/Macro" context="ExternalData_Add_Target_ctx"/>
+        <WordDetect String="ExternalProject_Add" insensitive="true" attribute="CMake Provided Function/Macro" context="ExternalProject_Add_ctx"/>
+        <WordDetect String="ExternalProject_Get_Property" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="ExternalProject_Add_Step" insensitive="true" attribute="CMake Provided Function/Macro" context="ExternalProject_Add_Step_ctx"/>
+        <WordDetect String="ExternalProject_Add_StepTargets" insensitive="true" attribute="CMake Provided Function/Macro" context="ExternalProject_Add_StepTargets_ctx"/>
+        <WordDetect String="ExternalProject_Add_StepDependencies" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="feature_summary" insensitive="true" attribute="CMake Provided Function/Macro" context="feature_summary_ctx"/>
+        <WordDetect String="set_package_properties" insensitive="true" attribute="CMake Provided Function/Macro" context="set_package_properties_ctx"/>
+        <WordDetect String="add_feature_info" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="set_package_info" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="set_feature_info" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="print_enabled_features" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="print_disabled_features" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="FetchContent_Declare" insensitive="true" attribute="CMake Provided Function/Macro" context="FetchContent_Declare_ctx"/>
+        <WordDetect String="FetchContent_Populate" insensitive="true" attribute="CMake Provided Function/Macro" context="FetchContent_Populate_ctx"/>
+        <WordDetect String="FetchContent_GetProperties" insensitive="true" attribute="CMake Provided Function/Macro" context="FetchContent_GetProperties_ctx"/>
+        <WordDetect String="FetchContent_MakeAvailable" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="find_package_handle_standard_args" insensitive="true" attribute="CMake Provided Function/Macro" context="find_package_handle_standard_args_ctx"/>
+        <WordDetect String="find_package_check_version" insensitive="true" attribute="CMake Provided Function/Macro" context="find_package_check_version_ctx"/>
+        <WordDetect String="find_package_message" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="FortranCInterface_HEADER" insensitive="true" attribute="CMake Provided Function/Macro" context="FortranCInterface_HEADER_ctx"/>
+        <WordDetect String="FortranCInterface_VERIFY" insensitive="true" attribute="CMake Provided Function/Macro" context="FortranCInterface_VERIFY_ctx"/>
+        <WordDetect String="generate_export_header" insensitive="true" attribute="CMake Provided Function/Macro" context="generate_export_header_ctx"/>
+        <WordDetect String="GNUInstallDirs_get_absolute_install_dir" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="gtest_add_tests" insensitive="true" attribute="CMake Provided Function/Macro" context="gtest_add_tests_ctx"/>
+        <WordDetect String="gtest_discover_tests" insensitive="true" attribute="CMake Provided Function/Macro" context="gtest_discover_tests_ctx"/>
+        <WordDetect String="processorcount" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="select_library_configurations" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="test_big_endian" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="ecos_add_include_directories" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="ecos_add_executable" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="ecos_add_target_lib" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="ecos_adjust_directory" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="ecos_use_arm_elf_tools" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="ecos_use_i386_elf_tools" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="ecos_use_ppc_eabi_tools" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="add_jar" insensitive="true" attribute="CMake Provided Function/Macro" context="add_jar_ctx"/>
+        <WordDetect String="install_jar" insensitive="true" attribute="CMake Provided Function/Macro" context="install_jar_ctx"/>
+        <WordDetect String="install_jni_symlink" insensitive="true" attribute="CMake Provided Function/Macro" context="install_jar_ctx"/>
+        <WordDetect String="create_javah" insensitive="true" attribute="CMake Provided Function/Macro" context="create_javah_ctx"/>
+        <WordDetect String="install_jar_exports" insensitive="true" attribute="CMake Provided Function/Macro" context="install_jar_exports_ctx"/>
+        <WordDetect String="export_jars" insensitive="true" attribute="CMake Provided Function/Macro" context="export_jars_ctx"/>
+        <WordDetect String="find_jar" insensitive="true" attribute="CMake Provided Function/Macro" context="find_jar_ctx"/>
+        <WordDetect String="create_javadoc" insensitive="true" attribute="CMake Provided Function/Macro" context="create_javadoc_ctx"/>
+        <WordDetect String="swig_add_library" insensitive="true" attribute="CMake Provided Function/Macro" context="swig_add_library_ctx"/>
+        <WordDetect String="swig_link_libraries" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="squish_add_test" insensitive="true" attribute="CMake Provided Function/Macro" context="squish_add_test_ctx"/>
+        <WordDetect String="bison_target" insensitive="true" attribute="CMake Provided Function/Macro" context="bison_target_ctx"/>
+        <WordDetect String="cxxtest_add_test" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="doxygen_add_docs" insensitive="true" attribute="CMake Provided Function/Macro" context="doxygen_add_docs_ctx"/>
+        <WordDetect String="env_module" insensitive="true" attribute="CMake Provided Function/Macro" context="env_module_ctx"/>
+        <WordDetect String="env_module_swap" insensitive="true" attribute="CMake Provided Function/Macro" context="env_module_swap_ctx"/>
+        <WordDetect String="env_module_list" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="env_module_avail" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="flex_target" insensitive="true" attribute="CMake Provided Function/Macro" context="flex_target_ctx"/>
+        <WordDetect String="add_flex_bison_dependency" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="gettext_create_translations" insensitive="true" attribute="CMake Provided Function/Macro" context="gettext_create_translations_ctx"/>
+        <WordDetect String="gettext_process_pot_file" insensitive="true" attribute="CMake Provided Function/Macro" context="gettext_process_pot_file_ctx"/>
+        <WordDetect String="gettext_process_po_files" insensitive="true" attribute="CMake Provided Function/Macro" context="gettext_process_po_files_ctx"/>
+        <WordDetect String="hg_wc_info" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="matlab_get_version_from_release_name" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="matlab_get_release_name_from_version" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="matlab_extract_all_installed_versions_from_registry" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="matlab_get_all_valid_matlab_roots_from_registry" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="matlab_get_mex_suffix" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="matlab_get_version_from_matlab_run" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="matlab_add_unit_test" insensitive="true" attribute="CMake Provided Function/Macro" context="matlab_add_unit_test_ctx"/>
+        <WordDetect String="matlab_add_mex" insensitive="true" attribute="CMake Provided Function/Macro" context="matlab_add_mex_ctx"/>
+        <WordDetect String="pkg_check_modules" insensitive="true" attribute="CMake Provided Function/Macro" context="pkg_check_modules_ctx"/>
+        <WordDetect String="pkg_search_module" insensitive="true" attribute="CMake Provided Function/Macro" context="pkg_check_modules_ctx"/>
+        <WordDetect String="pkg_get_variable" insensitive="true" attribute="CMake Provided Function/Macro" context="pkg_get_variable_ctx"/>
+        <WordDetect String="protobuf_generate_cpp" insensitive="true" attribute="CMake Provided Function/Macro" context="protobuf_generate_cpp_ctx"/>
+        <WordDetect String="protobuf_generate_python" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="Python_add_library" insensitive="true" attribute="CMake Provided Function/Macro" context="Python_add_library_ctx"/>
+        <WordDetect String="Subversion_WC_INFO" insensitive="true" attribute="CMake Provided Function/Macro" context="Subversion_WC_INFO_ctx"/>
+        <WordDetect String="Subversion_WC_LOG" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="xctest_add_bundle" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <WordDetect String="xctest_add_test" insensitive="true" attribute="CMake Provided Function/Macro" context="function_ctx"/>
+        <DetectChar attribute="Comment" context="Match Comments and Docs" char="#" lookAhead="true"/>
+        <DetectIdentifier attribute="User Function/Macro" context="User Function"/>
+        <RegExpr attribute="@Variable Substitution" context="@VarSubst" String="@&var_ref_re;@" lookAhead="true"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="block_ctx">
+        <DetectChar attribute="Normal Text" context="block_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="block_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="block_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="block_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="break_ctx">
+        <DetectChar attribute="Normal Text" context="break_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="break_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_host_system_information_ctx">
+        <DetectChar attribute="Normal Text" context="cmake_host_system_information_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_host_system_information_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="cmake_host_system_information_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="cmake_host_system_information_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_language_ctx">
+        <DetectChar attribute="Normal Text" context="cmake_language_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_language_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="cmake_language_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="cmake_language_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_minimum_required_ctx">
+        <DetectChar attribute="Normal Text" context="cmake_minimum_required_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_minimum_required_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="cmake_minimum_required_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_parse_arguments_ctx">
+        <DetectChar attribute="Normal Text" context="cmake_parse_arguments_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_parse_arguments_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="cmake_parse_arguments_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_path_ctx">
+        <DetectChar attribute="Normal Text" context="cmake_path_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_path_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="cmake_path_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_policy_ctx">
+        <DetectChar attribute="Normal Text" context="cmake_policy_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_policy_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="cmake_policy_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="cmake_policy_sargs"/>
+        <IncludeRules context="User Function Args"/>
+        
+<!-- NOTE Handle CMP<NNN> as a special arg of `cmake_policy` command -->
+        <RegExpr attribute="Special Args" context="#stay" String="\bCMP[0-9]+\b"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="configure_file_ctx">
+        <DetectChar attribute="Normal Text" context="configure_file_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="configure_file_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="configure_file_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="configure_file_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="elseif_ctx">
+        <DetectChar attribute="Normal Text" context="elseif_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="elseif_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="elseif_ctx_op_nested" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <WordDetect String="TARGET" attribute="Named Args" context="Target Name"/>
+        <keyword attribute="Named Args" context="#stay" String="elseif_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="elseif_ctx_op_nested">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+        <DetectChar attribute="Normal Text" context="elseif_ctx_op_nested" char="("/>
+        <keyword attribute="Named Args" context="#stay" String="elseif_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="execute_process_ctx">
+        <DetectChar attribute="Normal Text" context="execute_process_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="execute_process_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="execute_process_ctx_op_nested" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="execute_process_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="execute_process_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="execute_process_ctx_op_nested">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+        <DetectChar attribute="Normal Text" context="execute_process_ctx_op_nested" char="("/>
+        <keyword attribute="Named Args" context="#stay" String="execute_process_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="execute_process_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="file_ctx">
+        <DetectChar attribute="Normal Text" context="file_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="file_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="file_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="file_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_file_ctx">
+        <DetectChar attribute="Normal Text" context="find_file_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_file_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="find_file_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="find_file_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_library_ctx">
+        <DetectChar attribute="Normal Text" context="find_library_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_library_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="find_library_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="find_file_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_package_ctx">
+        <DetectChar attribute="Normal Text" context="find_package_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_package_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="find_package_nargs"/>
+        <keyword attribute="Standard Module" context="#stay" String="standard-finder-modules"/>
+        <keyword attribute="Special Args" context="#stay" String="find_file_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="foreach_ctx">
+        <DetectChar attribute="Normal Text" context="foreach_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="foreach_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="foreach_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="function_ctx">
+        <DetectChar attribute="Normal Text" context="function_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="function_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_cmake_property_ctx">
+        <DetectChar attribute="Normal Text" context="get_cmake_property_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_cmake_property_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Special Args" context="#stay" String="get_cmake_property_sargs"/>
+        <keyword attribute="Property" context="#stay" String="global-properties"/>
+        <IncludeRules context="Detect More global-properties"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_directory_property_ctx">
+        <DetectChar attribute="Normal Text" context="get_directory_property_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_directory_property_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="get_directory_property_nargs"/>
+        <keyword attribute="Property" context="#stay" String="directory-properties"/>
+        <IncludeRules context="Detect More directory-properties"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_filename_component_ctx">
+        <DetectChar attribute="Normal Text" context="get_filename_component_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_filename_component_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="get_filename_component_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_property_ctx">
+        <DetectChar attribute="Normal Text" context="get_property_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_property_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="get_property_nargs"/>
+        <keyword attribute="Property" context="#stay" String="cache-properties"/>
+        <keyword attribute="Property" context="#stay" String="directory-properties"/>
+        <IncludeRules context="Detect More directory-properties"/>
+        <keyword attribute="Property" context="#stay" String="global-properties"/>
+        <IncludeRules context="Detect More global-properties"/>
+        <keyword attribute="Property" context="#stay" String="install-properties"/>
+        <keyword attribute="Property" context="#stay" String="source-properties"/>
+        <IncludeRules context="Detect More source-properties"/>
+        <keyword attribute="Property" context="#stay" String="target-properties"/>
+        <IncludeRules context="Detect More target-properties"/>
+        <keyword attribute="Property" context="#stay" String="test-properties"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="if_ctx">
+        <DetectChar attribute="Normal Text" context="if_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="if_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="if_ctx_op_nested" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <WordDetect String="TARGET" attribute="Named Args" context="Target Name"/>
+        <keyword attribute="Named Args" context="#stay" String="elseif_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="if_ctx_op_nested">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+        <DetectChar attribute="Normal Text" context="if_ctx_op_nested" char="("/>
+        <keyword attribute="Named Args" context="#stay" String="elseif_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="include_ctx">
+        <DetectChar attribute="Normal Text" context="include_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="include_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="include_nargs"/>
+        <keyword attribute="Standard Module" context="#stay" String="standard-modules"/>
+        <keyword attribute="Deprecated Module" context="#stay" String="deprecated-modules"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="include_guard_ctx">
+        <DetectChar attribute="Normal Text" context="include_guard_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="include_guard_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="include_guard_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="list_ctx">
+        <DetectChar attribute="Normal Text" context="list_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="list_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="list_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="list_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="mark_as_advanced_ctx">
+        <DetectChar attribute="Normal Text" context="mark_as_advanced_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="mark_as_advanced_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="mark_as_advanced_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="math_ctx">
+        <DetectChar attribute="Normal Text" context="math_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="math_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="math_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="math_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="message_ctx">
+        <DetectChar attribute="Normal Text" context="message_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="message_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="message_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="return_ctx">
+        <DetectChar attribute="Normal Text" context="return_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="return_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="return_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="separate_arguments_ctx">
+        <DetectChar attribute="Normal Text" context="separate_arguments_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="separate_arguments_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="separate_arguments_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_directory_properties_ctx">
+        <DetectChar attribute="Normal Text" context="set_directory_properties_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_directory_properties_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="set_directory_properties_nargs"/>
+        <keyword attribute="Property" context="#stay" String="cache-properties"/>
+        <keyword attribute="Property" context="#stay" String="directory-properties"/>
+        <IncludeRules context="Detect More directory-properties"/>
+        <keyword attribute="Property" context="#stay" String="global-properties"/>
+        <IncludeRules context="Detect More global-properties"/>
+        <keyword attribute="Property" context="#stay" String="install-properties"/>
+        <keyword attribute="Property" context="#stay" String="source-properties"/>
+        <IncludeRules context="Detect More source-properties"/>
+        <keyword attribute="Property" context="#stay" String="target-properties"/>
+        <IncludeRules context="Detect More target-properties"/>
+        <keyword attribute="Property" context="#stay" String="test-properties"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_property_ctx">
+        <DetectChar attribute="Normal Text" context="set_property_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_property_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="set_property_nargs"/>
+        <keyword attribute="Property" context="#stay" String="cache-properties"/>
+        <keyword attribute="Property" context="#stay" String="directory-properties"/>
+        <IncludeRules context="Detect More directory-properties"/>
+        <keyword attribute="Property" context="#stay" String="global-properties"/>
+        <IncludeRules context="Detect More global-properties"/>
+        <keyword attribute="Property" context="#stay" String="install-properties"/>
+        <keyword attribute="Property" context="#stay" String="source-properties"/>
+        <IncludeRules context="Detect More source-properties"/>
+        <keyword attribute="Property" context="#stay" String="target-properties"/>
+        <IncludeRules context="Detect More target-properties"/>
+        <keyword attribute="Property" context="#stay" String="test-properties"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_ctx">
+        <DetectChar attribute="Normal Text" context="set_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="set_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="set_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="string_ctx">
+        <DetectChar attribute="Normal Text" context="string_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="string_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="string_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="unset_ctx">
+        <DetectChar attribute="Normal Text" context="unset_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="unset_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="unset_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="while_ctx">
+        <DetectChar attribute="Normal Text" context="while_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="while_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="while_ctx_op_nested" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <WordDetect String="TARGET" attribute="Named Args" context="Target Name"/>
+        <keyword attribute="Named Args" context="#stay" String="elseif_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="while_ctx_op_nested">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+        <DetectChar attribute="Normal Text" context="while_ctx_op_nested" char="("/>
+        <keyword attribute="Named Args" context="#stay" String="elseif_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_custom_command_ctx">
+        <DetectChar attribute="Normal Text" context="add_custom_command_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_custom_command_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="add_custom_command_ctx_op_nested" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <WordDetect String="TARGET" attribute="Named Args" context="Target Name"/>
+        <keyword attribute="Named Args" context="#stay" String="add_custom_command_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_custom_command_ctx_op_nested">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+        <DetectChar attribute="Normal Text" context="add_custom_command_ctx_op_nested" char="("/>
+        <keyword attribute="Named Args" context="#stay" String="add_custom_command_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_custom_target_ctx">
+        <DetectChar attribute="Normal Text" context="add_custom_target_ctx_op_tgt_first" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_custom_target_ctx_op_tgt_first">
+        <DetectSpaces/>
+        <RegExpr attribute="Aliased Targets" context="add_custom_target_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
+        <RegExpr attribute="Targets" context="add_custom_target_ctx_op" String="&tgt_name_re;"/>
+        <IncludeRules context="User Function Opened"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_custom_target_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="add_custom_target_ctx_op_nested" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="add_custom_target_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_custom_target_ctx_op_nested">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+        <DetectChar attribute="Normal Text" context="add_custom_target_ctx_op_nested" char="("/>
+        <keyword attribute="Named Args" context="#stay" String="add_custom_target_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_dependencies_ctx">
+        <DetectChar attribute="Normal Text" context="add_dependencies_ctx_op_tgts_first" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_dependencies_ctx_op_tgts_first">
+        <DetectSpaces/>
+        <IncludeRules context="Detect Aliased Targets"/>
+        <IncludeRules context="Detect Targets"/>
+        <IncludeRules context="User Function Opened"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_executable_ctx">
+        <DetectChar attribute="Normal Text" context="add_executable_ctx_op_tgt_first" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_executable_ctx_op_tgt_first">
+        <DetectSpaces/>
+        <RegExpr attribute="Aliased Targets" context="add_executable_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
+        <RegExpr attribute="Targets" context="add_executable_ctx_op" String="&tgt_name_re;"/>
+        <IncludeRules context="User Function Opened"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_executable_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="add_executable_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_library_ctx">
+        <DetectChar attribute="Normal Text" context="add_library_ctx_op_tgt_first" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_library_ctx_op_tgt_first">
+        <DetectSpaces/>
+        <RegExpr attribute="Aliased Targets" context="add_library_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
+        <RegExpr attribute="Targets" context="add_library_ctx_op" String="&tgt_name_re;"/>
+        <IncludeRules context="User Function Opened"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_library_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <WordDetect String="ALIAS" attribute="Named Args" context="Target Name"/>
+        <keyword attribute="Named Args" context="#stay" String="add_library_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_subdirectory_ctx">
+        <DetectChar attribute="Normal Text" context="add_subdirectory_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_subdirectory_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="add_subdirectory_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_test_ctx">
+        <DetectChar attribute="Normal Text" context="add_test_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_test_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="add_test_ctx_op_nested" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="add_test_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_test_ctx_op_nested">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+        <DetectChar attribute="Normal Text" context="add_test_ctx_op_nested" char="("/>
+        <keyword attribute="Named Args" context="#stay" String="add_test_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="build_command_ctx">
+        <DetectChar attribute="Normal Text" context="build_command_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="build_command_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <WordDetect String="TARGET" attribute="Named Args" context="Target Name"/>
+        <keyword attribute="Named Args" context="#stay" String="build_command_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_file_api_ctx">
+        <DetectChar attribute="Normal Text" context="cmake_file_api_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_file_api_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="cmake_file_api_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="create_test_sourcelist_ctx">
+        <DetectChar attribute="Normal Text" context="create_test_sourcelist_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="create_test_sourcelist_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="create_test_sourcelist_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="define_property_ctx">
+        <DetectChar attribute="Normal Text" context="define_property_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="define_property_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="define_property_nargs"/>
+        <keyword attribute="Property" context="#stay" String="cache-properties"/>
+        <keyword attribute="Property" context="#stay" String="directory-properties"/>
+        <IncludeRules context="Detect More directory-properties"/>
+        <keyword attribute="Property" context="#stay" String="global-properties"/>
+        <IncludeRules context="Detect More global-properties"/>
+        <keyword attribute="Property" context="#stay" String="install-properties"/>
+        <keyword attribute="Property" context="#stay" String="source-properties"/>
+        <IncludeRules context="Detect More source-properties"/>
+        <keyword attribute="Property" context="#stay" String="target-properties"/>
+        <IncludeRules context="Detect More target-properties"/>
+        <keyword attribute="Property" context="#stay" String="test-properties"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="enable_language_ctx">
+        <DetectChar attribute="Normal Text" context="enable_language_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="enable_language_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="enable_language_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="enable_language_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="export_ctx">
+        <DetectChar attribute="Normal Text" context="export_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="export_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <WordDetect String="TARGETS" attribute="Named Args" context="export_tgts"/>
+        <keyword attribute="Named Args" context="#stay" String="export_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="export_tgts">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#pop" String="export_nargs"/>
+        <IncludeRules context="Detect Aliased Targets"/>
+        <IncludeRules context="Detect Targets"/>
+        <IncludeRules context="User Function Args"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_source_file_property_ctx">
+        <DetectChar attribute="Normal Text" context="get_source_file_property_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_source_file_property_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="get_source_file_property_nargs"/>
+        <keyword attribute="Property" context="#stay" String="source-properties"/>
+        <IncludeRules context="Detect More source-properties"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_target_property_ctx">
+        <DetectChar attribute="Normal Text" context="get_target_property_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_target_property_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Property" context="#stay" String="target-properties"/>
+        <IncludeRules context="Detect More target-properties"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_test_property_ctx">
+        <DetectChar attribute="Normal Text" context="get_test_property_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="get_test_property_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="get_test_property_nargs"/>
+        <keyword attribute="Property" context="#stay" String="test-properties"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="include_directories_ctx">
+        <DetectChar attribute="Normal Text" context="include_directories_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="include_directories_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="include_directories_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="include_external_msproject_ctx">
+        <DetectChar attribute="Normal Text" context="include_external_msproject_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="include_external_msproject_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="include_external_msproject_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="install_ctx">
+        <DetectChar attribute="Normal Text" context="install_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="install_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <WordDetect String="TARGETS" attribute="Named Args" context="install_tgts"/>
+        <keyword attribute="Named Args" context="#stay" String="install_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="install_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="install_tgts">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#pop" String="install_nargs"/>
+        <IncludeRules context="Detect Aliased Targets"/>
+        <IncludeRules context="Detect Targets"/>
+        <IncludeRules context="User Function Args"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="link_directories_ctx">
+        <DetectChar attribute="Normal Text" context="link_directories_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="link_directories_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="link_directories_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="link_libraries_ctx">
+        <DetectChar attribute="Normal Text" context="link_libraries_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="link_libraries_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Special Args" context="#stay" String="link_libraries_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="load_cache_ctx">
+        <DetectChar attribute="Normal Text" context="load_cache_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="load_cache_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="load_cache_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="project_ctx">
+        <DetectChar attribute="Normal Text" context="project_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="project_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="project_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="project_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_source_files_properties_ctx">
+        <DetectChar attribute="Normal Text" context="set_source_files_properties_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_source_files_properties_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="set_source_files_properties_nargs"/>
+        <keyword attribute="Property" context="#stay" String="source-properties"/>
+        <IncludeRules context="Detect More source-properties"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_target_properties_ctx">
+        <DetectChar attribute="Normal Text" context="set_target_properties_ctx_op_tgts_first" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_target_properties_ctx_op_tgts_first">
+        <DetectSpaces/>
+          
+<!-- NOTE Handle the only case in CMake nowadays:
+              1. `set_target_properties` have a named keyword (`PROPERTIES`) after targets list
+          -->
+        <keyword context="set_target_properties_ctx_op" String="set_directory_properties_nargs" lookAhead="true"/>
+        <IncludeRules context="Detect Aliased Targets"/>
+        <IncludeRules context="Detect Targets"/>
+        <IncludeRules context="User Function Opened"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_target_properties_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="set_directory_properties_nargs"/>
+        <keyword attribute="Property" context="#stay" String="target-properties"/>
+        <IncludeRules context="Detect More target-properties"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_tests_properties_ctx">
+        <DetectChar attribute="Normal Text" context="set_tests_properties_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_tests_properties_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="set_tests_properties_nargs"/>
+        <keyword attribute="Property" context="#stay" String="test-properties"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="source_group_ctx">
+        <DetectChar attribute="Normal Text" context="source_group_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="source_group_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="source_group_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_definitions_ctx">
+        <DetectChar attribute="Normal Text" context="target_compile_definitions_ctx_op_tgt_first" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_definitions_ctx_op_tgt_first">
+        <DetectSpaces/>
+        <RegExpr attribute="Aliased Targets" context="target_compile_definitions_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
+        <RegExpr attribute="Targets" context="target_compile_definitions_ctx_op" String="&tgt_name_re;"/>
+        <IncludeRules context="User Function Opened"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_definitions_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="target_compile_definitions_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_features_ctx">
+        <DetectChar attribute="Normal Text" context="target_compile_features_ctx_op_tgt_first" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_features_ctx_op_tgt_first">
+        <DetectSpaces/>
+        <RegExpr attribute="Aliased Targets" context="target_compile_features_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
+        <RegExpr attribute="Targets" context="target_compile_features_ctx_op" String="&tgt_name_re;"/>
+        <IncludeRules context="User Function Opened"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_features_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="target_compile_definitions_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="target_compile_features_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_options_ctx">
+        <DetectChar attribute="Normal Text" context="target_compile_options_ctx_op_tgt_first" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_options_ctx_op_tgt_first">
+        <DetectSpaces/>
+        <RegExpr attribute="Aliased Targets" context="target_compile_options_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
+        <RegExpr attribute="Targets" context="target_compile_options_ctx_op" String="&tgt_name_re;"/>
+        <IncludeRules context="User Function Opened"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_compile_options_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="target_compile_options_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_include_directories_ctx">
+        <DetectChar attribute="Normal Text" context="target_include_directories_ctx_op_tgt_first" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_include_directories_ctx_op_tgt_first">
+        <DetectSpaces/>
+        <RegExpr attribute="Aliased Targets" context="target_include_directories_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
+        <RegExpr attribute="Targets" context="target_include_directories_ctx_op" String="&tgt_name_re;"/>
+        <IncludeRules context="User Function Opened"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_include_directories_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="target_include_directories_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_link_libraries_ctx">
+        <DetectChar attribute="Normal Text" context="target_link_libraries_ctx_op_tgt_first" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_link_libraries_ctx_op_tgt_first">
+        <DetectSpaces/>
+        <RegExpr attribute="Aliased Targets" context="target_link_libraries_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
+        <RegExpr attribute="Targets" context="target_link_libraries_ctx_op" String="&tgt_name_re;"/>
+        <IncludeRules context="User Function Opened"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_link_libraries_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="target_compile_definitions_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="link_libraries_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_precompile_headers_ctx">
+        <DetectChar attribute="Normal Text" context="target_precompile_headers_ctx_op_tgt_first" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_precompile_headers_ctx_op_tgt_first">
+        <DetectSpaces/>
+        <RegExpr attribute="Aliased Targets" context="target_precompile_headers_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
+        <RegExpr attribute="Targets" context="target_precompile_headers_ctx_op" String="&tgt_name_re;"/>
+        <IncludeRules context="User Function Opened"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_precompile_headers_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="target_precompile_headers_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_sources_ctx">
+        <DetectChar attribute="Normal Text" context="target_sources_ctx_op_tgt_first" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_sources_ctx_op_tgt_first">
+        <DetectSpaces/>
+        <RegExpr attribute="Aliased Targets" context="target_sources_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
+        <RegExpr attribute="Targets" context="target_sources_ctx_op" String="&tgt_name_re;"/>
+        <IncludeRules context="User Function Opened"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="target_sources_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="target_sources_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="target_sources_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="try_compile_ctx">
+        <DetectChar attribute="Normal Text" context="try_compile_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="try_compile_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="try_compile_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="try_run_ctx">
+        <DetectChar attribute="Normal Text" context="try_run_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="try_run_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="try_run_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_build_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_build_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_build_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="ctest_build_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_configure_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_configure_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_configure_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="ctest_configure_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_coverage_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_coverage_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_coverage_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="ctest_coverage_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_memcheck_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_memcheck_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_memcheck_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="ctest_memcheck_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_run_script_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_run_script_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_run_script_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="ctest_run_script_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_start_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_start_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_start_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="ctest_start_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_submit_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_submit_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_submit_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="ctest_submit_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_test_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_test_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_test_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="ctest_test_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="ctest_test_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_update_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_update_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_update_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="ctest_update_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_upload_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_upload_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_upload_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="ctest_upload_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      
+      <context attribute="Normal Text" lineEndContext="#stay" name="android_add_test_data_ctx">
+        <DetectChar attribute="Normal Text" context="android_add_test_data_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="android_add_test_data_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="android_add_test_data_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="check_c_source_compiles_ctx">
+        <DetectChar attribute="Normal Text" context="check_c_source_compiles_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="check_c_source_compiles_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="check_c_source_compiles_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="check_fortran_source_compiles_ctx">
+        <DetectChar attribute="Normal Text" context="check_fortran_source_compiles_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="check_fortran_source_compiles_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="check_fortran_source_compiles_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="check_fortran_source_runs_ctx">
+        <DetectChar attribute="Normal Text" context="check_fortran_source_runs_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="check_fortran_source_runs_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="check_fortran_source_runs_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="check_include_files_ctx">
+        <DetectChar attribute="Normal Text" context="check_include_files_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="check_include_files_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="check_include_files_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="check_include_files_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="check_ipo_supported_ctx">
+        <DetectChar attribute="Normal Text" context="check_ipo_supported_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="check_ipo_supported_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="check_ipo_supported_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="check_ipo_supported_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="check_language_ctx">
+        <DetectChar attribute="Normal Text" context="check_language_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="check_language_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Special Args" context="#stay" String="enable_language_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="check_pie_supported_ctx">
+        <DetectChar attribute="Normal Text" context="check_pie_supported_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="check_pie_supported_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="check_pie_supported_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="check_pie_supported_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="check_type_size_ctx">
+        <DetectChar attribute="Normal Text" context="check_type_size_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="check_type_size_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="check_type_size_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="check_include_files_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_add_fortran_subdirectory_ctx">
+        <DetectChar attribute="Normal Text" context="cmake_add_fortran_subdirectory_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_add_fortran_subdirectory_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="cmake_add_fortran_subdirectory_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="configure_package_config_file_ctx">
+        <DetectChar attribute="Normal Text" context="configure_package_config_file_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="configure_package_config_file_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="configure_package_config_file_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="write_basic_package_version_file_ctx">
+        <DetectChar attribute="Normal Text" context="write_basic_package_version_file_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="write_basic_package_version_file_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="write_basic_package_version_file_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="write_basic_package_version_file_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_print_properties_ctx">
+        <DetectChar attribute="Normal Text" context="cmake_print_properties_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_print_properties_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <WordDetect String="TARGETS" attribute="Named Args" context="cmake_print_properties_tgts"/>
+        <keyword attribute="Named Args" context="#stay" String="cmake_print_properties_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_print_properties_tgts">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#pop" String="cmake_print_properties_nargs"/>
+        <IncludeRules context="Detect Aliased Targets"/>
+        <IncludeRules context="Detect Targets"/>
+        <IncludeRules context="User Function Args"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_push_check_state_ctx">
+        <DetectChar attribute="Normal Text" context="cmake_push_check_state_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cmake_push_check_state_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="cmake_push_check_state_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cpack_add_component_ctx">
+        <DetectChar attribute="Normal Text" context="cpack_add_component_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cpack_add_component_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="cpack_add_component_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cpack_add_component_group_ctx">
+        <DetectChar attribute="Normal Text" context="cpack_add_component_group_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cpack_add_component_group_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="cpack_add_component_group_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cpack_add_install_type_ctx">
+        <DetectChar attribute="Normal Text" context="cpack_add_install_type_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cpack_add_install_type_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="cpack_add_install_type_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cpack_configure_downloads_ctx">
+        <DetectChar attribute="Normal Text" context="cpack_configure_downloads_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cpack_configure_downloads_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="cpack_configure_downloads_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cpack_ifw_configure_component_ctx">
+        <DetectChar attribute="Normal Text" context="cpack_ifw_configure_component_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cpack_ifw_configure_component_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="cpack_ifw_configure_component_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cpack_ifw_configure_component_group_ctx">
+        <DetectChar attribute="Normal Text" context="cpack_ifw_configure_component_group_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cpack_ifw_configure_component_group_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="cpack_ifw_configure_component_group_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cpack_ifw_add_repository_ctx">
+        <DetectChar attribute="Normal Text" context="cpack_ifw_add_repository_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cpack_ifw_add_repository_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="cpack_ifw_add_repository_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cpack_ifw_update_repository_ctx">
+        <DetectChar attribute="Normal Text" context="cpack_ifw_update_repository_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="cpack_ifw_update_repository_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="cpack_ifw_update_repository_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_coverage_collect_gcov_ctx">
+        <DetectChar attribute="Normal Text" context="ctest_coverage_collect_gcov_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ctest_coverage_collect_gcov_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="ctest_coverage_collect_gcov_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExternalData_Add_Target_ctx">
+        <DetectChar attribute="Normal Text" context="ExternalData_Add_Target_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExternalData_Add_Target_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="ExternalData_Add_Target_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExternalProject_Add_ctx">
+        <DetectChar attribute="Normal Text" context="ExternalProject_Add_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExternalProject_Add_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="ExternalProject_Add_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="ExternalProject_Add_sargs"/>
+        <keyword attribute="Property" context="#stay" String="target-properties"/>
+        <IncludeRules context="Detect More target-properties"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExternalProject_Add_Step_ctx">
+        <DetectChar attribute="Normal Text" context="ExternalProject_Add_Step_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExternalProject_Add_Step_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="ExternalProject_Add_Step_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExternalProject_Add_StepTargets_ctx">
+        <DetectChar attribute="Normal Text" context="ExternalProject_Add_StepTargets_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExternalProject_Add_StepTargets_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="ExternalProject_Add_StepTargets_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="feature_summary_ctx">
+        <DetectChar attribute="Normal Text" context="feature_summary_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="feature_summary_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="feature_summary_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_package_properties_ctx">
+        <DetectChar attribute="Normal Text" context="set_package_properties_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="set_package_properties_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="set_package_properties_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="FetchContent_Declare_ctx">
+        <DetectChar attribute="Normal Text" context="FetchContent_Declare_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="FetchContent_Declare_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="FetchContent_Declare_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="FetchContent_Populate_ctx">
+        <DetectChar attribute="Normal Text" context="FetchContent_Populate_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="FetchContent_Populate_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="FetchContent_Populate_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="FetchContent_GetProperties_ctx">
+        <DetectChar attribute="Normal Text" context="FetchContent_GetProperties_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="FetchContent_GetProperties_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="FetchContent_GetProperties_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_package_handle_standard_args_ctx">
+        <DetectChar attribute="Normal Text" context="find_package_handle_standard_args_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_package_handle_standard_args_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="find_package_handle_standard_args_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_package_check_version_ctx">
+        <DetectChar attribute="Normal Text" context="find_package_check_version_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_package_check_version_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="find_package_check_version_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="FortranCInterface_HEADER_ctx">
+        <DetectChar attribute="Normal Text" context="FortranCInterface_HEADER_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="FortranCInterface_HEADER_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="FortranCInterface_HEADER_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="FortranCInterface_VERIFY_ctx">
+        <DetectChar attribute="Normal Text" context="FortranCInterface_VERIFY_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="FortranCInterface_VERIFY_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="FortranCInterface_VERIFY_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="generate_export_header_ctx">
+        <DetectChar attribute="Normal Text" context="generate_export_header_ctx_op_tgt_first" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="generate_export_header_ctx_op_tgt_first">
+        <DetectSpaces/>
+        <RegExpr attribute="Aliased Targets" context="generate_export_header_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
+        <RegExpr attribute="Targets" context="generate_export_header_ctx_op" String="&tgt_name_re;"/>
+        <IncludeRules context="User Function Opened"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="generate_export_header_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="generate_export_header_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="gtest_add_tests_ctx">
+        <DetectChar attribute="Normal Text" context="gtest_add_tests_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="gtest_add_tests_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <WordDetect String="TARGET" attribute="Named Args" context="Target Name"/>
+        <keyword attribute="Named Args" context="#stay" String="gtest_add_tests_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="gtest_discover_tests_ctx">
+        <DetectChar attribute="Normal Text" context="gtest_discover_tests_ctx_op_tgt_first" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="gtest_discover_tests_ctx_op_tgt_first">
+        <DetectSpaces/>
+        <RegExpr attribute="Aliased Targets" context="gtest_discover_tests_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
+        <RegExpr attribute="Targets" context="gtest_discover_tests_ctx_op" String="&tgt_name_re;"/>
+        <IncludeRules context="User Function Opened"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="gtest_discover_tests_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="gtest_discover_tests_nargs"/>
+        <keyword attribute="Special Args" context="#stay" String="gtest_discover_tests_sargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_jar_ctx">
+        <DetectChar attribute="Normal Text" context="add_jar_ctx_op_tgt_first" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_jar_ctx_op_tgt_first">
+        <DetectSpaces/>
+        <RegExpr attribute="Aliased Targets" context="add_jar_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
+        <RegExpr attribute="Targets" context="add_jar_ctx_op" String="&tgt_name_re;"/>
+        <IncludeRules context="User Function Opened"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="add_jar_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="add_jar_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="install_jar_ctx">
+        <DetectChar attribute="Normal Text" context="install_jar_ctx_op_tgt_first" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="install_jar_ctx_op_tgt_first">
+        <DetectSpaces/>
+        <RegExpr attribute="Aliased Targets" context="install_jar_ctx_op" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
+        <RegExpr attribute="Targets" context="install_jar_ctx_op" String="&tgt_name_re;"/>
+        <IncludeRules context="User Function Opened"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="install_jar_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="install_jar_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="create_javah_ctx">
+        <DetectChar attribute="Normal Text" context="create_javah_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="create_javah_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <WordDetect String="TARGET" attribute="Named Args" context="Target Name"/>
+        <keyword attribute="Named Args" context="#stay" String="create_javah_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="install_jar_exports_ctx">
+        <DetectChar attribute="Normal Text" context="install_jar_exports_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="install_jar_exports_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <WordDetect String="TARGETS" attribute="Named Args" context="install_jar_exports_tgts"/>
+        <keyword attribute="Named Args" context="#stay" String="install_jar_exports_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="install_jar_exports_tgts">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#pop" String="install_jar_exports_nargs"/>
+        <IncludeRules context="Detect Aliased Targets"/>
+        <IncludeRules context="Detect Targets"/>
+        <IncludeRules context="User Function Args"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="export_jars_ctx">
+        <DetectChar attribute="Normal Text" context="export_jars_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="export_jars_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <WordDetect String="TARGETS" attribute="Named Args" context="export_jars_tgts"/>
+        <keyword attribute="Named Args" context="#stay" String="export_jars_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="export_jars_tgts">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#pop" String="export_jars_nargs"/>
+        <IncludeRules context="Detect Aliased Targets"/>
+        <IncludeRules context="Detect Targets"/>
+        <IncludeRules context="User Function Args"/>
+        <IncludeRules context="LineError"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_jar_ctx">
+        <DetectChar attribute="Normal Text" context="find_jar_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_jar_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="find_jar_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="create_javadoc_ctx">
+        <DetectChar attribute="Normal Text" context="create_javadoc_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="create_javadoc_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="create_javadoc_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="swig_add_library_ctx">
+        <DetectChar attribute="Normal Text" context="swig_add_library_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="swig_add_library_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="swig_add_library_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="squish_add_test_ctx">
+        <DetectChar attribute="Normal Text" context="squish_add_test_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="squish_add_test_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="squish_add_test_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="bison_target_ctx">
+        <DetectChar attribute="Normal Text" context="bison_target_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="bison_target_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="bison_target_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="doxygen_add_docs_ctx">
+        <DetectChar attribute="Normal Text" context="doxygen_add_docs_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="doxygen_add_docs_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="doxygen_add_docs_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="env_module_ctx">
+        <DetectChar attribute="Normal Text" context="env_module_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="env_module_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="env_module_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="env_module_swap_ctx">
+        <DetectChar attribute="Normal Text" context="env_module_swap_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="env_module_swap_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="env_module_swap_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="flex_target_ctx">
+        <DetectChar attribute="Normal Text" context="flex_target_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="flex_target_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="flex_target_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="gettext_create_translations_ctx">
+        <DetectChar attribute="Normal Text" context="gettext_create_translations_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="gettext_create_translations_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="gettext_create_translations_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="gettext_process_pot_file_ctx">
+        <DetectChar attribute="Normal Text" context="gettext_process_pot_file_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="gettext_process_pot_file_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="gettext_process_pot_file_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="gettext_process_po_files_ctx">
+        <DetectChar attribute="Normal Text" context="gettext_process_po_files_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="gettext_process_po_files_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="gettext_process_po_files_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="matlab_add_unit_test_ctx">
+        <DetectChar attribute="Normal Text" context="matlab_add_unit_test_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="matlab_add_unit_test_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="matlab_add_unit_test_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="matlab_add_mex_ctx">
+        <DetectChar attribute="Normal Text" context="matlab_add_mex_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="matlab_add_mex_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="matlab_add_mex_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="pkg_check_modules_ctx">
+        <DetectChar attribute="Normal Text" context="pkg_check_modules_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="pkg_check_modules_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="pkg_check_modules_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="pkg_get_variable_ctx">
+        <DetectChar attribute="Normal Text" context="pkg_get_variable_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="pkg_get_variable_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="pkg_get_variable_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="protobuf_generate_cpp_ctx">
+        <DetectChar attribute="Normal Text" context="protobuf_generate_cpp_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="protobuf_generate_cpp_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="protobuf_generate_cpp_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Python_add_library_ctx">
+        <DetectChar attribute="Normal Text" context="Python_add_library_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Python_add_library_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="Python_add_library_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Subversion_WC_INFO_ctx">
+        <DetectChar attribute="Normal Text" context="Subversion_WC_INFO_ctx_op" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Subversion_WC_INFO_ctx_op">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <keyword attribute="Named Args" context="#stay" String="Subversion_WC_INFO_nargs"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect More global-properties">
+        <RegExpr attribute="Property" context="#stay" String="\b(?:FeatureSummary_&var_ref_re;_DESCRIPTION)\b"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect More directory-properties">
+        <RegExpr attribute="Property" context="#stay" String="\b(?:(INTERPROCEDURAL_OPTIMIZATION|VS_GLOBAL_SECTION_(POST|PRE))_&var_ref_re;)\b"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect More target-properties">
+        <RegExpr attribute="Property" context="#stay" String="\b(?:&var_ref_re;_((COMPIL|LINK)ER_LAUNCHER|CLANG_TIDY(_EXPORT_FIXES_DIR)?|CPP(CHECK|LINT)|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|((ARCHIVE|LIBRARY|RUNTIME)_OUTPUT_(DIRECTORY|NAME)|COMPILE_PDB_(NAME|OUTPUT_DIRECTORY)|CXX_MODULE_(DIRS|SET)|EXCLUDE_FROM_DEFAULT_BUILD|FRAMEWORK_MULTI_CONFIG_POSTFIX|HEADER_(DIRS|SET)|IMPORTED_((NO_)?SONAME|IMPLIB|LIBNAME|LINK_(DEPENDENT_LIBRARIES|INTERFACE_(LANGUAGES|LIBRARIES|MULTIPLICITY))|LOCATION|OBJECTS)|INTERPROCEDURAL_OPTIMIZATION|LINK_(FLAGS|INTERFACE_(LIBRARIES|MULTIPLICITY))|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_(NAME|OUTPUT_DIRECTORY)|STATIC_LIBRARY_FLAGS|VS_(DOTNET_REFERENCE(PROP_&var_ref_re;_TAG)?|GLOBAL|SOURCE_SETTINGS))_&var_ref_re;|XCODE_(ATTRIBUTE_&var_ref_re;|EMBED_&var_ref_re;(_((CODE_SIGN|REMOVE_HEADERS)_ON_COPY|PATH))?))\b"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect More source-properties">
+        <RegExpr attribute="Property" context="#stay" String="\b(?:VS_CSHARP_&var_ref_re;)\b"/>
+      </context>
+
+      <context attribute="User Function/Macro" lineEndContext="#stay" name="User Function">
+        <DetectChar attribute="Normal Text" context="User Function Opened" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="User Function Opened">
+        <DetectChar attribute="Normal Text" context="#pop" char=")" lookAhead="true"/>
+        <IncludeRules context="User Function Args"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Builtin Variables">
+        <RegExpr attribute="Internal Name" context="#stay" String="\b_&var_ref_re;\b"/>
+        <keyword attribute="CMake Internal Variable" context="#stay" String="deprecated-or-internal-variables" insensitive="false"/>
+        <keyword attribute="Builtin Variable" context="#stay" String="variables" insensitive="false"/>
+        <IncludeRules context="Detect More Builtin Variables"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect More Builtin Variables">
+        <RegExpr attribute="CMake Internal Variable" context="#stay" String="\b(?:CMAKE_&var_ref_re;_(COMPILER_(ABI|ARCHITECTURE_ID|VERSION_INTERNAL)|PLATFORM_ID))\b"/>
+        <RegExpr attribute="Builtin Variable" context="#stay" String="\b(?:&var_ref_re;_(((STATIC_)?LINK_)?LIBRARIES|(BINARY|SOURCE)_DIR|(C|LD)FLAGS(_OTHER)?|(INCLUDE|LIBRARY)_DIRS|CONFIG|CONSIDERED_(CONFIGS|VERSIONS)|DESCRIPTION|FIND_(COMPONENTS|REQUIRED(_&var_ref_re;)?|VERSION_(COMPLETE|COUNT|EXACT|M(AX|IN)(_(COUNT|MAJOR|MINOR|PATCH|TWEAK))?|RANGE(_(MAX|MIN))?)|QUIETLY)|FOUND|HOMEPAGE_URL|IS_TOP_LEVEL|KEYWORDS_MISSING_VALUES|MODULE_NAME|ROOT|UNPARSED_ARGUMENTS|VERSION(_(MAJOR|MINOR|PATCH|TWEAK|COUNT|STRING))?)|&var_ref_re;__TRYRUN_OUTPUT|(DOXYGEN|ExternalData_(CUSTOM_SCRIPT|URL_ALGO)|FETCHCONTENT_(SOURCE_DIR|UPDATES_DISCONNECTED))_&var_ref_re;|ARGV[0-9]+|BISON_&var_ref_re;_(COMPILE_FLAGS|DEFINED|INPUT|OUTPUT(S|_(HEADER|SOURCE)))|Boost_&var_ref_re;_LIBRARY(_(DEBUG|RELEASE))?|CMAKE_(&var_ref_re;_(ANDROID_TOOLCHAIN_((PRE|SUF)FIX|MACHINE)|ARCHIVE_(APPEND|CREATE|FINISH)|BYTE_ORDER|CLANG_TIDY(_EXPORT_FIXES_DIR)?|COMPILER(_(AR|EXTERNAL_TOOLCHAIN|FRONTEND_VARIANT|ID|LAUNCHER|LOADED|RANLIB|TARGET|VERSION))?|COMPILE_OBJECT|CPP(CHECK|LINT)|CREATE_(SHARED_(LIBRARY|MODULE)|STATIC_LIBRARY)|EXTENSIONS(_DEFAULT)?|FLAGS(_((DEBUG|MINSIZEREL|REL(EASE|WITHDEBINFO)|&var_ref_re;)(_INIT)?|INIT))?|GHS_KERNEL_FLAGS_(DEBUG|MINSIZEREL|REL(EASE|WITHDEBINFO))|IGNORE_EXTENSIONS|IMPLICIT_(INCLUDE_DIRECTORIES|LINK_((FRAMEWORK_)?DIRECTORIES|LIBRARIES))|INCLUDE_WHAT_YOU_USE|LIBRARY_ARCHITECTURE|LINKER_(LAUNCHER|PREFERENCE(_PROPAGATES)?|WRAPPER_FLAG(_SEP)?)|LINK_(EXECUTABLE|GROUP_USING_&var_ref_re;(_SUPPORTED)?|LIBRARY_(FILE_FLAG|FLAG|USING_&var_ref_re;(_SUPPORTED)?)|WHAT_YOU_USE_FLAG)|OUTPUT_EXTENSION|POSTFIX|SIMULATE_(ID|VERSION)|SIZEOF_DATA_PTR|SOURCE_FILE_EXTENSIONS|STANDARD_(INCLUDE_DIRECTO|LIBRA)RIES|VISIBILITY_PRESET)|((ARCHIVE|(COMPILE_)?PDB|LIBRARY|RUNTIME)_OUTPUT_DIRECTORY|(DISABLE|REQUIRE)_FIND_PACKAGE|FRAMEWORK_MULTI_CONFIG_POSTFIX|GET_OS_RELEASE_FALLBACK_RESULT|INTERPROCEDURAL_OPTIMIZATION|MAP_IMPORTED_CONFIG|USER_MAKE_RULES_OVERRIDE|XCODE_ATTRIBUTE)_&var_ref_re;|(EXE|MODULE|SHARED|STATIC)_LINKER_FLAGS_&var_ref_re;(_INIT)?|LINK_(GROUP|LIBRARY)_USING_&var_ref_re;(_SUPPORTED)?|PROJECT_&var_ref_re;_INCLUDE(_BEFORE)?)|CMAKE_(ARGV|MATCH_)[0-9]+|CMAKE_POLICY_(DEFAULT|WARNING)_CMP[0-9]{4}|CPACK_(&var_ref_re;_COMPONENT_INSTALL|ARCHIVE_&var_ref_re;_FILE_NAME|BINARY_&var_ref_re;|COMPONENT_&var_ref_re;_(DEPENDS|DESCRIPTION|DIS(ABLED|PLAY_NAME)|GROUP|HIDDEN|REQUIRED)|DEBIAN_&var_ref_re;_(DESCRIPTION|FILE_NAME|PACKAGE_((PRE)?DEPENDS|ARCHITECTURE|BREAKS|CONFLICTS|CONTROL_(EXTRA|STRICT_PERMISSION)|ENHANCES|NAME|PRIORITY|PROVIDES|RECOMMENDS|REPLACES|SECTION|SHLIBDEPS|SOURCE|SUGGESTS)|DEBUGINFO_PACKAGE)|DMG_&var_ref_re;_FILE_NAME|INNOSETUP_(&var_ref_re;_INSTALL_DIRECTORY|(DEFINE|SETUP)_&var_ref_re;)|NSIS_&var_ref_re;_INSTALL_DIRECTORY|NUGET_(&var_ref_re;_PACKAGE_(AUTHORS|COPYRIGHT|DEPENDENCIES(_&var_ref_re;_VERSION)?|DESCRIPTION(_SUMMARY)?|HOMEPAGE_URL|ICON(URL)?|LANGUAGE|LICENSE(URL|_(EXPRESSION|FILE_NAME))|NAME|OWNERS|RELEASE_NOTES|TAGS|TITLE|VERSION)|PACKAGE_DEPENDENCIES_&var_ref_re;_VERSION)|P(RE|OST)FLIGHT_&var_ref_re;_SCRIPT|RPM_(&var_ref_re;_(DEFAULT_((DIR|FILE)_PERMISSIONS|GROUP|USER)|BUILD_SOURCE_DIRS_PREFIX|DEBUGINFO_(FILE_NAME|PACKAGE)|FILE_NAME|PACKAGE_(ARCHITECTURE|AUTO(PROV|REQ(PROV)?)|CONFLICTS|DESCRIPTION|GROUP|NAME|OBSOLETES|PREFIX|PROVIDES|REQUIRES(_P(RE|OST)(UN)?)?|SUGGESTS|SUMMARY|URL)|USER_(FILELIST|BINARY_SPECFILE))|NO_&var_ref_re;_INSTALL_PREFIX_RELOCATION)|WIX_(&var_ref_re;_EXT(ENSIONS|RA_FLAGS)|PROPERTY_&var_ref_re;))|ICU_&var_ref_re;_(LIBRARY|EXECUTABLE)|MPI_&var_ref_re;_(ADDITIONAL_INCLUDE_VARS|COMPILE(R|_(DEFINI|OP)TIONS)|LIB(_NAMES|RARY))|OpenACC_&var_ref_re;_(FLAGS|OPTIONS|SPEC_DATE)|OpenMP_&var_ref_re;_(FLAGS|LIB(_NAMES|RARY)|SPEC_DATE)|SWIG_MODULE_&var_ref_re;_EXTRA_DEPS)\b"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Variable Substitutions">
+        <RegExpr attribute="Cache Variable Substitution" context="#stay" String="\$CACHE\{\s*[\w-]+\s*\}"/>
+        <RegExpr attribute="Environment Variable Substitution" context="EnvVarSubst" String="\$?ENV\{"/>
+        <Detect2Chars attribute="Variable Substitution" context="VarSubst" char="$" char1="{"/>
+        <RegExpr attribute="@Variable Substitution" context="@VarSubst" String="@&var_ref_re;@" lookAhead="true"/>
+      </context>
+
+      <context attribute="Environment Variable Substitution" lineEndContext="#pop" name="EnvVarSubst">
+        <DetectChar attribute="Environment Variable Substitution" context="#pop" char="}"/>
+        <keyword attribute="Standard Environment Variable" context="#stay" String="environment-variables" insensitive="false"/>
+        <RegExpr attribute="Standard Environment Variable" context="#stay" String="\b(?:&var_ref_re;_(DIR|ROOT)|ASM&var_ref_re;(FLAGS)?|CMAKE_&var_ref_re;_(COMPIL|LINK)ER_LAUNCHER)\b"/>
+        <DetectIdentifier/>
+        <IncludeRules context="Detect Variable Substitutions"/>
+      </context>
+
+      <context attribute="Variable Substitution" lineEndContext="#pop" name="VarSubst">
+        <DetectChar attribute="Variable Substitution" context="#pop" char="}"/>
+        <IncludeRules context="Detect Builtin Variables"/>
+        <DetectIdentifier/>
+        <IncludeRules context="Detect Variable Substitutions"/>
+      </context>
+
+      <context attribute="@Variable Substitution" lineEndContext="#pop" name="@VarSubst">
+        <DetectChar attribute="@Variable Substitution" context="VarSubst@" char="@"/>
+      </context>
+
+      <context attribute="@Variable Substitution" lineEndContext="#pop#pop" name="VarSubst@">
+        <DetectChar attribute="@Variable Substitution" context="#pop#pop" char="@"/>
+        <IncludeRules context="Detect Builtin Variables"/>
+        <DetectIdentifier/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Target Name">
+        <DetectSpaces/>
+        <RegExpr attribute="Aliased Targets" context="#pop" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
+        <IncludeRules context="Detect Targets"/>
+        <IncludeRules context="User Function Opened"/>
+        <IncludeRules context="LineError"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Targets">
+        <RegExpr attribute="Targets" context="#stay" String="&tgt_name_re;"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="LineError">
+        <RegExpr attribute="Error" context="#stay" String=".*"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="User Function Args">
+        <Detect2Chars attribute="Normal Text" context="#stay" char="\" char1="("/>
+        <Detect2Chars attribute="Normal Text" context="#stay" char="\" char1=")"/>
+        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="&quot;"/>
+        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="$"/>
+        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="n"/>
+        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="\"/>
+        <DetectChar attribute="Strings" context="String" char="&quot;"/>
+        <RegExpr attribute="Strings" context="Bracketed String" String="\[(=*)\[" beginRegion="BracketedString"/>
+        <DetectChar attribute="Comment" context="Match Comments" char="#" lookAhead="true"/>
+        <IncludeRules context="Detect Builtin Variables"/>
+        <IncludeRules context="Detect Variable Substitutions"/>
+        <IncludeRules context="Detect Special Values"/>
+        <IncludeRules context="Detect Aliased Targets"/>
+        <IncludeRules context="Detect Generator Expressions"/>
+        <DetectIdentifier/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Special Values">
+        <RegExpr attribute="Version Arg" context="#stay" String="\b[0-9]++(.[0-9]++)+\b"/>
+        <keyword attribute="True Special Arg" context="#stay" String="true_special_arg" insensitive="true"/>
+        <keyword attribute="False Special Arg" context="#stay" String="false_special_arg" insensitive="true"/>
+        <RegExpr attribute="False Special Arg" context="#stay" String="\b(?:&var_ref_re;-)?NOTFOUND\b"/>
+        <RegExpr attribute="Special Args" context="#stay" String="\bCMP[0-9][0-9][0-9][0-9]\b"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Aliased Targets">
+        <RegExpr attribute="Aliased Targets" context="#stay" String="&tgt_name_re;::&tgt_name_re;(?:\:\:&tgt_name_re;)*"/>
+      </context>
+
+      <context attribute="Comment" lineEndContext="#pop" name="Match Comments">
+        <DetectSpaces/>
+        <RegExpr attribute="Comment" context="#pop!Bracketed Comment" String="#\[(=*)\[" beginRegion="BracketedComment"/>
+        <DetectChar attribute="Comment" context="#pop!Comment" char="#"/>
+        <DetectIdentifier/>
+      </context>
+
+      <context attribute="Comment" lineEndContext="#pop" name="Match Comments and Docs">
+        <RegExpr attribute="Region Marker" context="#pop!RST Documentation" String="^#\[(=*)\[\.rst:" column="0" beginRegion="RSTDocumentation"/>
+        <IncludeRules context="Match Comments"/>
+      </context>
+
+      <context attribute="Comment" lineEndContext="#pop" name="Comment">
+        <DetectSpaces/>
+        <LineContinue attribute="Comment" context="#pop"/>
+        <IncludeRules context="##Comments"/>
+        <DetectIdentifier/>
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="RST Documentation" dynamic="true">
+        <RegExpr attribute="Region Marker" context="#pop" String="^#?\]%1\]" dynamic="true" column="0" endRegion="RSTDocumentation"/>
+        <IncludeRules context="##reStructuredText"/>
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="Bracketed Comment" dynamic="true">
+        <LineContinue attribute="Comment" context="#stay"/>
+        <DetectSpaces/>
+        <StringDetect attribute="Comment" context="#pop" String="]%1]" dynamic="true" endRegion="BracketedComment"/>
+        <IncludeRules context="##Comments"/>
+      </context>
+
+      <context attribute="Strings" lineEndContext="#stay" name="String">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <RegExpr attribute="Strings" context="#pop" String="&quot;(?=[ );]|$)"/>
+        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="&quot;"/>
+        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="$"/>
+        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="n"/>
+        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="r"/>
+        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="t"/>
+        <Detect2Chars attribute="Escapes" context="#stay" char="\" char1="\"/>
+        <IncludeRules context="Detect Variable Substitutions"/>
+        <IncludeRules context="Detect Generator Expressions"/>
+      </context>
+
+      <context attribute="Strings" lineEndContext="#stay" name="Bracketed String" dynamic="true">
+        <StringDetect attribute="Strings" context="#pop" String="]%1]" dynamic="true" endRegion="BracketedString"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Generator Expressions">
+        <Detect2Chars attribute="Generator Expression" context="Generator Expression" char="$" char1="&lt;"/>
+      </context>
+
+      <context attribute="Generator Expression" lineEndContext="#stay" name="Generator Expression">
+        <IncludeRules context="Detect Generator Expressions"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
+        <DetectChar attribute="Generator Expression" context="#pop" char="&gt;"/>
+        <keyword attribute="Generator Expression Keyword" context="#stay" String="generator-expressions" insensitive="false"/>
+        <WordDetect String="LIST" attribute="Generator Expression Keyword" context="genex_LIST_ctx"/>
+        <WordDetect String="PATH" attribute="Generator Expression Keyword" context="genex_PATH_ctx"/>
+        <IncludeRules context="Detect Aliased Targets"/>
+        <IncludeRules context="Detect Variable Substitutions"/>
+        <DetectIdentifier/>
+      </context>
+      <context attribute="Generator Expression" lineEndContext="#stay" name="genex_LIST_ctx" fallthroughContext="#pop">
+        <DetectChar char=":" context="#stay"/>
+        <DetectSpaces/>
+        <keyword attribute="Generator Expression Sub-Command" context="#pop" String="genex-LIST-subcommands" insensitive="false"/>
+      </context>
+      <context attribute="Generator Expression" lineEndContext="#stay" name="genex_PATH_ctx" fallthroughContext="#pop">
+        <DetectChar char=":" context="#stay"/>
+        <DetectSpaces/>
+        <keyword attribute="Generator Expression Sub-Command" context="#pop" String="genex-PATH-subcommands" insensitive="false"/>
+      </context>
+
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Comment" defStyleNum="dsComment" spellChecking="true"/>
+      <itemData name="Command" defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="false"/>
+      <itemData name="CMake Provided Function/Macro" defStyleNum="dsFunction" bold="true" spellChecking="false"/>
+      <itemData name="User Function/Macro" defStyleNum="dsFunction" spellChecking="false"/>
+      <itemData name="Property" defStyleNum="dsOthers" spellChecking="false"/>
+      <itemData name="Targets" defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Aliased Targets" defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Named Args" defStyleNum="dsOthers" spellChecking="false"/>
+      <itemData name="Special Args" defStyleNum="dsOthers" spellChecking="false"/>
+      <itemData name="True Special Arg" defStyleNum="dsOthers" color="#30a030" selColor="#30a030" spellChecking="false"/>
+      <itemData name="False Special Arg" defStyleNum="dsOthers" color="#e05050" selColor="#e05050" spellChecking="false"/>
+      <itemData name="Version Arg" defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Strings" defStyleNum="dsString" spellChecking="true"/>
+      <itemData name="Escapes" defStyleNum="dsSpecialChar" spellChecking="false"/>
+      <itemData name="Builtin Variable" defStyleNum="dsDecVal" color="#c09050" selColor="#c09050" spellChecking="false"/>
+      <itemData name="CMake Internal Variable" defStyleNum="dsVariable" spellChecking="false"/>
+      <itemData name="Internal Name" defStyleNum="dsVariable" spellChecking="false"/>
+      <itemData name="Variable Substitution" defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="@Variable Substitution" defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Cache Variable Substitution" defStyleNum="dsFloat" spellChecking="false"/>
+      <itemData name="Environment Variable Substitution" defStyleNum="dsFloat" spellChecking="false"/>
+      <itemData name="Standard Environment Variable" defStyleNum="dsFloat" spellChecking="false"/>
+      <itemData name="Generator Expression Keyword" defStyleNum="dsKeyword" color="#b84040" selColor="#b84040" spellChecking="false"/>
+      <itemData name="Generator Expression Sub-Command" defStyleNum="dsKeyword" color="#c05050" selColor="#c05050" spellChecking="false"/>
+      <itemData name="Generator Expression" defStyleNum="dsOthers" color="#b86050" selColor="#b86050" spellChecking="false"/>
+      <itemData name="Standard Module" defStyleNum="dsImport" spellChecking="false"/>
+      <itemData name="Deprecated Module" defStyleNum="dsImport" spellChecking="false"/>
+      <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
+      <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
+    </itemDatas>
+
+  </highlighting>
+
+  <general>
+    <comments>
+      <comment name="singleLine" start="#" position="afterwhitespace"/>
+      <comment name="multiLine" start="#[[" end="]]" region="BracketedComment"/>
+    </comments>
+    <keywords casesensitive="1" weakDeliminator="."/>
+  </general>
+</language>
+<!-- kate: replace-tabs on; indent-width 2; tab-width 2; -->
diff --git a/syntax/coffee.xml b/syntax/coffee.xml
--- a/syntax/coffee.xml
+++ b/syntax/coffee.xml
@@ -1,8 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 
 <language name="CoffeeScript"
-          version="15"
+          alternativeNames="Coffee;Coffee-Script"
+          version="16"
           kateversion="5.53"
           section="Scripts"
           extensions="Cakefile;*.coffee;*.coco;*.cson"
diff --git a/syntax/coldfusion.xml b/syntax/coldfusion.xml
--- a/syntax/coldfusion.xml
+++ b/syntax/coldfusion.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
-<language name="ColdFusion" version="5" kateversion="5.0" section="Markup" extensions="*.cfm;*.cfc;*.cfml;*.dbm" mimetype="text/x-coldfusion">
+<!DOCTYPE language>
+<language name="ColdFusion" version="6" kateversion="5.0" section="Markup" extensions="*.cfm;*.cfc;*.cfml;*.dbm" mimetype="text/x-coldfusion">
 
 	<highlighting>
 
@@ -510,6 +510,7 @@
 		<contexts>
 
 			<context attribute="Normal Text" lineEndContext="#stay" name="Normal Text">
+				<DetectSpaces attribute="Normal Text" />
 				<StringDetect attribute="CF Comment" context="ctxCF Comment" String="&lt;!---" beginRegion="CF Comment" />
 				<StringDetect attribute="HTML Comment" context="ctxHTML Comment" String="&lt;!--" beginRegion="HTML Comment" />
 				<StringDetect attribute="Script Tags" context="ctxCFSCRIPT Tag" String="&lt;cfscript" insensitive="true" beginRegion="CF Script" />
@@ -532,10 +533,10 @@
 
 
 			<context name="Tag Content" attribute="Normal Text" lineEndContext="#stay">
-				<RegExpr attribute="Tag Attributes" context="#stay" String="(?:\s|^)[A-Za-z_:*][\w.:_-]*(?=\s*\=)" />
 				<DetectChar attribute="Normal Text" context="#stay" char="=" />
 				<RangeDetect attribute="Attribute Values" context="#stay" char="&quot;" char1="&quot;" />
 				<RangeDetect attribute="Attribute Values" context="#stay" char="'" char1="'" />
+				<RegExpr attribute="Tag Attributes" context="#stay" String="(?:\s|^)[A-Za-z_:*][\w.:_-]*(?=\s*\=)" />
 			</context>
 
 			<context name="ctxCFSCRIPT Tag" attribute="Script Tags" lineEndContext="#stay">
@@ -593,23 +594,31 @@
 
 
 			<context name="ctxHTML Comment" attribute="HTML Comment" lineEndContext="#stay">
+				<DetectSpaces attribute="HTML Comment" />
 				<StringDetect attribute="CF Comment" context="ctxCF Comment" String="&lt;!---" beginRegion="CF Comment" />
 				<StringDetect attribute="HTML Comment" context="#pop" String="--&gt;" endRegion="HTML Comment" />
 				<IncludeRules context="##Comments" />
+				<DetectIdentifier attribute="HTML Comment" />
 			</context>
 
 			<context name="ctxCF Comment" attribute="CF Comment" lineEndContext="#stay">
+				<DetectSpaces attribute="CF Comment" />
 				<StringDetect attribute="CF Comment" context="#pop" String="---&gt;" endRegion="CF Comment" />
 				<IncludeRules context="##Comments" />
+				<DetectIdentifier attribute="CF Comment" />
 			</context>
 
 			<context name="ctxC Style Comment" attribute="Script Comment" lineEndContext="#stay">
+				<DetectSpaces attribute="Script Comment" />
 				<Detect2Chars attribute="Script Comment" context="#pop" char="*" char1="/" endRegion="CComment" />
 				<IncludeRules context="##Comments" />
+				<DetectIdentifier attribute="Script Comment" />
 			</context>
 
 			<context name="ctxOne Line Comment" attribute="Script Comment" lineEndContext="#pop">
+				<DetectSpaces attribute="Script Comment" />
 				<IncludeRules context="##Comments" />
+				<DetectIdentifier attribute="Script Comment" />
 			</context>
 
 			<context name="ctxHTML Entities" attribute="HTML Entities" lineEndContext="#pop">
@@ -618,61 +627,69 @@
 
 
 
-			<context name="ctxCFSCRIPT Block" attribute="Normal Text" lineEndContext="#stay">
+			<context name="SCRIPT Block" attribute="Normal Text" lineEndContext="#stay">
+				<DetectSpaces attribute="Normal Text" />
 				<Detect2Chars attribute="Script Comment" context="ctxC Style Comment" char="/" char1="*" beginRegion="CComment" />
 				<Detect2Chars attribute="Script Comment" context="ctxOne Line Comment" char="/" char1="/" />
 				<RangeDetect attribute="Script Strings" context="#stay" char="&quot;" char1="&quot;" />
 				<RangeDetect attribute="Script Strings" context="#stay" char="'" char1="'" />
-				<Int attribute="Script Numbers" context="#stay" />
 				<Float attribute="Script Numbers" context="#stay" />
+				<Int attribute="Script Numbers" context="#stay" />
 				<AnyChar attribute="Script Operators" context="#stay" String="()[]=+-*/" />
 				<AnyChar attribute="Brackets" context="#stay" String="{}" />
+			</context>
 
+
+
+			<context name="ctxCFSCRIPT Block" attribute="Normal Text" lineEndContext="#stay">
+				<IncludeRules context="SCRIPT Block" />
+
 				<keyword attribute="Script Keywords" context="#stay" String="CFSCRIPT Keywords" />
 				<keyword attribute="Script Functions" context="#stay" String="CFSCRIPT Functions" />
 				<StringDetect attribute="Script Tags" context="#pop#pop" String="&lt;/cfscript&gt;" insensitive="true" endRegion="CF Script" />
+				<DetectIdentifier attribute="Normal Text" />
 			</context>
 
 
 
 			<context name="ctxSCRIPT Block" attribute="Normal Text" lineEndContext="#stay">
-				<Detect2Chars attribute="Script Comment" context="ctxC Style Comment" char="/" char1="*" beginRegion="CComment" />
-				<Detect2Chars attribute="Script Comment" context="ctxOne Line Comment" char="/" char1="/" />
-				<RangeDetect attribute="Script Strings" context="#stay" char="&quot;" char1="&quot;" />
-				<RangeDetect attribute="Script Strings" context="#stay" char="'" char1="'" />
-				<Int attribute="Script Numbers" context="#stay" />
-				<Float attribute="Script Numbers" context="#stay" />
-				<AnyChar attribute="Script Operators" context="#stay" String="()[]=+-*/" />
-				<AnyChar attribute="Brackets" context="#stay" String="{}" />
+				<IncludeRules context="SCRIPT Block" />
 
 				<keyword attribute="Script Keywords" context="#stay" String="Script Keywords" />
 				<keyword attribute="Script Objects" context="#stay" String="Script Objects" />
 				<keyword attribute="Script Functions" context="#stay" String="Script Methods" />
 				<StringDetect attribute="Script Tags" context="#pop#pop" String="&lt;/script&gt;" insensitive="true" endRegion="Script" />
+				<DetectIdentifier attribute="Normal Text" />
 			</context>
 
 
 
 			<context name="ctxSTYLE Block" attribute="Style Selectors" lineEndContext="#stay">
+				<DetectSpaces attribute="Style Selectors" />
+				<DetectIdentifier attribute="Style Selectors" />
 				<Detect2Chars attribute="Script Comment" context="ctxC Style Comment" char="/" char1="*" beginRegion="CComment" />
 				<DetectChar attribute="Brackets" context="ctxStyle Properties" char="{" />
 				<StringDetect attribute="Style Tags" context="#pop#pop" String="&lt;/style&gt;" insensitive="true" endRegion="Style" />
 			</context>
 
 			<context name="ctxStyle Properties" attribute="Style Properties" lineEndContext="#stay">
+				<DetectSpaces attribute="Style Properties" />
+				<DetectIdentifier attribute="Style Properties" />
 				<DetectChar attribute="Brackets" context="#pop" char="}" />
 				<Detect2Chars attribute="Script Comment" context="ctxC Style Comment" char="/" char1="*" beginRegion="CComment" />
 				<DetectChar attribute="Normal Text" context="ctxStyle Values" char=":" />
 			</context>
 
 			<context name="ctxStyle Values" attribute="Style Values" lineEndContext="#pop">
+				<DetectSpaces attribute="Style Values" />
+				<DetectIdentifier attribute="Style Values" />
 				<DetectChar attribute="Normal Text" context="#pop" char=";" />
 				<DetectChar attribute="Normal Text" context="#stay" char="," />
-				<Int attribute="Numbers" context="#stay" />
 				<Float attribute="Numbers" context="#stay" />
-				<RegExpr attribute="Numbers" context="#stay" String="#(?:[0-9a-fA-F]{3})|(?:[0-9a-fA-F]{6})" />
+				<Int attribute="Numbers" context="#stay" />
 				<RangeDetect attribute="Attribute Values" context="#stay" char="&quot;" char1="&quot;" />
 				<RangeDetect attribute="Attribute Values" context="#stay" char="'" char1="'" />
+				<RegExpr attribute="Numbers" context="#stay" String="#(?:[0-9a-fA-F]{8}|[0-9a-fA-F]{6}|[0-9a-fA-F]{3})" />
 			</context>
 
 		</contexts>
diff --git a/syntax/comments.xml b/syntax/comments.xml
--- a/syntax/comments.xml
+++ b/syntax/comments.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language
     version="1"
     kateversion="5.0"
diff --git a/syntax/commonlisp.xml b/syntax/commonlisp.xml
--- a/syntax/commonlisp.xml
+++ b/syntax/commonlisp.xml
@@ -1,6 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
-<language version="10" kateversion="5.0" name="Common Lisp" section="Sources" extensions="*.lisp;*.cl;*.lsp" mimetype="" author="Dominik Haumann (dhaumann@kde.org)" license="MIT">
+<!DOCTYPE language [
+    <!ENTITY identchar "[A-Za-z0-9-+&lt;&gt;/*]">
+]>
+<language version="11" kateversion="5.79" name="Common Lisp" section="Sources" extensions="*.lisp;*.cl;*.lsp;*.el" mimetype="" author="Dominik Haumann (dhaumann@kde.org)" license="MIT">
   <highlighting>
     <list name="symbols">
       <item>&lt;</item>
@@ -21,7 +23,7 @@
       <item>++</item> 
       <item>+++</item> 
       <item>1-</item> 
-      <item>1+</item> 
+      <item>1+</item>
     </list>
     <list name="definitions">
       <item>defclass</item> 
@@ -789,7 +791,7 @@
       <item>simple-base-string</item> 
       <item>simple-bit-vector</item> 
       <item>simple-bit-vector-p</item> 
-      <item>simple-condition-format-arguments</item> 
+      <item>simple-condition-format-arguments</item>
       <item>simple-condition-format-control</item> 
       <item>simple-error</item> 
       <item>simple-string</item> 
@@ -1110,62 +1112,104 @@
       <item>*trace-output*</item>
     </list>
 
+    <list name="operators">
+      <item>&amp;allow-other-keys</item>
+      <item>&amp;aux</item>
+      <item>&amp;body</item>
+      <item>&amp;environment</item>
+      <item>&amp;key</item>
+      <item>&amp;optional</item>
+      <item>&amp;rest</item>
+      <item>&amp;whole</item>
+    </list>
+
     <contexts>
       <context name="Normal" attribute="Normal" lineEndContext="#stay">
-        <RegExpr attribute="Region Marker" context="#stay" String=";+\s*BEGIN.*$" beginRegion="region"/>
-        <RegExpr attribute="Region Marker" context="#stay" String=";+\s*END.*$" endRegion="region"/>
-        <DetectChar attribute="Comment" context="Comment" char=";"/>
-        <Detect2Chars attribute="Comment" context="MultiLineComment" char="#" char1="|" beginRegion="BlockComment"/>
+        <DetectSpaces/>
+        <DetectChar context="StartSingleComment" char=";" lookAhead="1"/>
+        <DetectChar context="StartHash" char="#" lookAhead="1"/>
+        <DetectChar attribute="String" context="String" char="&quot;"/>
         <AnyChar attribute="Brackets" context="#stay" String="()"/>
         <keyword attribute="Keyword" context="#stay" String="keywords"/>
         <keyword attribute="Operator" context="#stay" String="symbols"/>
         <keyword attribute="Modifier" context="#stay" String="modifiers"/>
         <keyword attribute="Variable" context="#stay" String="variables"/>
         <keyword attribute="Definition" context="function_decl" String="definitions"/>
-        <RegExpr attribute="Char" context="#stay" String="#\\."/>
-        <DetectChar attribute="String" context="String" char="&quot;"/>
-        <Detect2Chars attribute="Decimal" context="#stay" char="#" char1="t"/>
-        <Detect2Chars attribute="Decimal" context="#stay" char="#" char1="f"/>
-        <RegExpr attribute="Char" context="SpecialNumber" String="#[bodxei]"/>
-        <Float attribute="Float" context="#stay"/>
-        <Int attribute="Decimal" context="#stay"/>
+        <keyword attribute="Operator" context="#stay" String="operators" weakDeliminator="&amp;"/>
+        <RegExpr attribute="Type" context="#stay" String="'&identchar;+"/>
+        <Float attribute="Float" context="#stay" additionalDeliminator="-"/>
+        <Int attribute="Decimal" context="#stay" additionalDeliminator="-"/>
+        <WordDetect attribute="Operator" context="#stay" String="-" additionalDeliminator="0123456789"/>
+        <RegExpr String="&identchar;+"/>
       </context>
+
+      <context name="StartHash" attribute="Normal" lineEndContext="#pop">
+        <Detect2Chars attribute="Comment" context="#pop!MultiLineComment" char="#" char1="|" beginRegion="BlockComment"/>
+        <Detect2Chars attribute="Function Operator" context="#pop!FunctionOperator" char="#" char1="'"/>
+        <Detect2Chars attribute="Decimal" context="#pop" char="#" char1="t"/>
+        <Detect2Chars attribute="Decimal" context="#pop" char="#" char1="f"/>
+        <RegExpr attribute="Char" context="#pop" String="#\\."/>
+        <RegExpr attribute="Char" context="#pop!SpecialNumber" String="#[bodxei]"/>
+        <DetectChar context="#pop" char="#"/>
+      </context>
+
+      <context name="FunctionOperator" attribute="Normal" lineEndContext="#pop" fallthroughContext="#pop">
+        <RegExpr attribute="Function By Name" context="#pop" String="&identchar;+"/>
+      </context>
+
       <context name="MultiLineComment" attribute="Comment" lineEndContext="#stay">
         <Detect2Chars attribute="Comment" context="#pop" char="|" char1="#" endRegion="BlockComment"/>
         <IncludeRules context="##Comments"/>
       </context>
+
       <context name="function_decl" attribute="Function" lineEndContext="#stay">
-        <RegExpr attribute="Function" context="#pop" String="\s*[A-Za-z0-9-+\&lt;\&gt;//\*]*\s*" />
+        <RegExpr attribute="Function" context="#pop" String="\s*&identchar;*\s*" />
       </context>
+
       <context name="SpecialNumber" attribute="Normal" lineEndContext="#pop">
         <Float attribute="Float" context="#pop"/>
         <Int attribute="Decimal" context="#pop"/>
         <HlCOct attribute="BaseN" context="#pop"/>
         <HlCHex attribute="Float" context="#pop"/>
       </context>
+
       <context name="String" attribute="String" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
         <RegExpr attribute="Char" context="#stay" String="#\\."/>
         <HlCStringChar attribute="String Char" context="#stay"/>
         <DetectChar attribute="String" context="#pop" char="&quot;"/>
       </context>
+
+      <context name="StartSingleComment" attribute="Comment" lineEndContext="#pop">
+        <RegExpr attribute="Region Marker" context="#pop" String=";+\s*BEGIN.*$" beginRegion="region"/>
+        <RegExpr attribute="Region Marker" context="#pop" String=";+\s*END.*$" endRegion="region"/>
+        <DetectChar attribute="Comment" context="#pop!Comment" char=";"/>
+      </context>
       <context name="Comment" attribute="Comment" lineEndContext="#pop">
+        <DetectSpaces/>
         <IncludeRules context="##Comments"/>
+        <DetectIdentifier/>
       </context>
+
     </contexts>
     <itemDatas>
-      <itemData name="Normal"      defStyleNum="dsNormal"/>
-      <itemData name="Keyword"     defStyleNum="dsKeyword"/>
-      <itemData name="Operator"    defStyleNum="dsOperator"/>
-      <itemData name="Modifier"    defStyleNum="dsBuiltIn"/>
-      <itemData name="Variable"    defStyleNum="dsVariable"/>
-      <itemData name="Definition"  defStyleNum="dsKeyword"/>
-      <itemData name="Decimal"     defStyleNum="dsDecVal"/>
-      <itemData name="BaseN"       defStyleNum="dsBaseN"/>
-      <itemData name="Float"       defStyleNum="dsFloat"/>
-      <itemData name="Function"    defStyleNum="dsFunction"/>
-      <itemData name="Char"        defStyleNum="dsChar"/>
-      <itemData name="String"      defStyleNum="dsString"/>
-      <itemData name="String Char" defStyleNum="dsSpecialChar"/>
+      <itemData name="Normal"      defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Keyword"     defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Operator"    defStyleNum="dsOperator" spellChecking="false"/>
+      <itemData name="Modifier"    defStyleNum="dsBuiltIn" spellChecking="false"/>
+      <itemData name="Variable"    defStyleNum="dsVariable" spellChecking="false"/>
+      <itemData name="Definition"  defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Decimal"     defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="BaseN"       defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Float"       defStyleNum="dsFloat" spellChecking="false"/>
+      <itemData name="Function"    defStyleNum="dsFunction" spellChecking="false"/>
+      <itemData name="Function Operator" defStyleNum="dsOperator" spellChecking="false"/>
+      <itemData name="Function By Name"  defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Type"        defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Char"        defStyleNum="dsChar" spellChecking="false"/>
+      <itemData name="String"      defStyleNum="dsString" spellChecking="false"/>
+      <itemData name="String Char" defStyleNum="dsSpecialChar" spellChecking="false"/>
       <itemData name="Comment"     defStyleNum="dsComment"/>
       <itemData name="Region Marker" defStyleNum="dsRegionMarker"/>
       <itemData name="Brackets"    defStyleNum="dsNormal" color="#0000ff" selColor="#00ff00" bold="1" italic="0"/>
diff --git a/syntax/cpp.xml b/syntax/cpp.xml
--- a/syntax/cpp.xml
+++ b/syntax/cpp.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
     <!ENTITY space " ">
     <!ENTITY separators ",&#59;">
@@ -10,13 +10,14 @@
   -->
 <language
     name="C++"
+    alternativeNames="CPP"
     section="Sources"
-    version="13"
-    kateversion="5.0"
+    version="19"
+    kateversion="5.79"
     indenter="cstyle"
     style="C++"
     mimetype="text/x-c++src;text/x-c++hdr;text/x-chdr"
-    extensions="*.c++;*.cxx;*.cpp;*.cc;*.C;*.cu;*.h;*.hh;*.H;*.h++;*.hxx;*.hpp;*.hcc;*.cuh;*.inl;*.ino;*.pde;*.moc"
+    extensions="*.c++;*.cxx;*.cpp;*.cc;*.C;*.h;*.hh;*.H;*.h++;*.hxx;*.hpp;*.hcc;*.inl;*.pde;*.moc;*.mpp;*.ixx;*.cppm;*.cxxm;*.c++m;*.ccm"
     author="Alex Turbov (i.zaufi@gmail.com)"
     license="LGPL"
     priority="9"
@@ -50,11 +51,16 @@
     <item>Q_EMIT</item>
     <item>Q_ENUM</item>
     <item>Q_ENUMS</item>
+    <item>Q_ENUM_NS</item>
     <item>Q_FLAG</item>
     <item>Q_FLAGS</item>
+    <item>Q_FLAG_NS</item>
     <item>Q_GADGET</item>
+    <item>Q_GADGET_EXPORT</item>
     <item>Q_INTERFACES</item>
     <item>Q_INVOKABLE</item>
+    <item>Q_NAMESPACE</item>
+    <item>Q_NAMESPACE_EXPORT</item>
     <item>Q_OBJECT</item>
     <item>Q_PROPERTY</item>
     <item>Q_REVISION</item>
@@ -458,6 +464,27 @@
     <item>Q_MOVABLE_TYPE</item>
     <item>Q_DUMMY_TYPE</item>
     <item>Q_RELOCATABLE_TYPE</item>
+    <!--https://doc.qt.io/qt-6/qqmlengine.html#macros-->
+    <item>QML_ADDED_IN_MINOR_VERSION</item>
+    <item>QML_ANONYMOUS</item>
+    <item>QML_ATTACHED</item>
+    <item>QML_DECLARE_TYPE</item>
+    <item>QML_DECLARE_TYPEINFO</item>
+    <item>QML_ELEMENT</item>
+    <item>QML_EXTENDED</item>
+    <item>QML_EXTENDED_NAMESPACE</item>
+    <item>QML_EXTRA_VERSION</item>
+    <item>QML_FOREIGN</item>
+    <item>QML_FOREIGN_NAMESPACE</item>
+    <item>QML_IMPLEMENTS_INTERFACES</item>
+    <item>QML_INTERFACE</item>
+    <item>QML_NAMED_ELEMENT</item>
+    <item>QML_REMOVED_IN_MINOR_VERSION</item>
+    <item>QML_SEQUENTIAL_CONTAINER</item>
+    <item>QML_SINGLETON</item>
+    <item>QML_UNAVAILABLE</item>
+    <item>QML_UNCREATABLE</item>
+    <item>QML_VALUE_TYPE</item>
   </list>
 
   <list name="QtFunc">
@@ -649,7 +676,6 @@
     <item>QAbstract3DSeries</item>
     <item>QAbstractActionInput</item>
     <item>QAbstractAnimation</item>
-    <item>QAbstractAnimation</item>
     <item>QAbstractAnimationClip</item>
     <item>QAbstractAspect</item>
     <item>QAbstractAudioDeviceInfo</item>
@@ -666,11 +692,16 @@
     <item>QAbstractEventDispatcher</item>
     <item>QAbstractExtensionFactory</item>
     <item>QAbstractExtensionManager</item>
+    <item>QAbstractFileIconProvider</item>
     <item>QAbstractFormBuilder</item>
     <item>QAbstractFunctor</item>
     <item>QAbstractGraphicsShapeItem</item>
+    <item>QAbstractGrpcChannel</item>
+    <item>QAbstractGrpcClient</item>
+    <item>QAbstractHttpServer</item>
     <item>QAbstractItemDelegate</item>
     <item>QAbstractItemModel</item>
+    <item>QAbstractItemModelReplica</item>
     <item>QAbstractItemModelTester</item>
     <item>QAbstractItemView</item>
     <item>QAbstractLight</item>
@@ -686,6 +717,7 @@
     <item>QAbstractPhysicalDeviceProxy</item>
     <item>QAbstractPlanarVideoBuffer</item>
     <item>QAbstractPrintDialog</item>
+    <item>QAbstractProtobufSerializer</item>
     <item>QAbstractProxyModel</item>
     <item>QAbstractRayCaster</item>
     <item>QAbstractScrollArea</item>
@@ -716,6 +748,7 @@
     <item>QAccessibleInterface</item>
     <item>QAccessibleObject</item>
     <item>QAccessiblePlugin</item>
+    <item>QAccessibleSelectionInterface</item>
     <item>QAccessibleStateChangeEvent</item>
     <item>QAccessibleTableCellInterface</item>
     <item>QAccessibleTableInterface</item>
@@ -730,11 +763,11 @@
     <item>QAccessibleValueInterface</item>
     <item>QAccessibleWidget</item>
     <item>QAction</item>
-    <item>QAction</item>
     <item>QActionEvent</item>
     <item>QActionGroup</item>
     <item>QActionInput</item>
     <item>QAdditiveClipBlend</item>
+    <item>QAdoptSharedDataTag</item>
     <item>QAlphaCoverage</item>
     <item>QAlphaTest</item>
     <item>QAltimeter</item>
@@ -743,17 +776,21 @@
     <item>QAmbientLightFilter</item>
     <item>QAmbientLightReading</item>
     <item>QAmbientLightSensor</item>
+    <item>QAmbientSound</item>
     <item>QAmbientTemperatureFilter</item>
     <item>QAmbientTemperatureReading</item>
     <item>QAmbientTemperatureSensor</item>
     <item>QAnalogAxisInput</item>
     <item>QAndroidActivityResultReceiver</item>
+    <item>QAndroidApplication</item>
     <item>QAndroidBinder</item>
     <item>QAndroidIntent</item>
     <item>QAndroidJniEnvironment</item>
     <item>QAndroidJniExceptionCleaner</item>
     <item>QAndroidJniObject</item>
+    <item>QAndroidOffscreenSurface</item>
     <item>QAndroidParcel</item>
+    <item>QAndroidScreen</item>
     <item>QAndroidService</item>
     <item>QAndroidServiceConnection</item>
     <item>QAnimationAspect</item>
@@ -763,7 +800,7 @@
     <item>QAnimationClipLoader</item>
     <item>QAnimationController</item>
     <item>QAnimationGroup</item>
-    <item>QAnimationGroup</item>
+    <item>QAnyStringView</item>
     <item>QApplication</item>
     <item>QAreaLegendMarker</item>
     <item>QAreaSeries</item>
@@ -774,31 +811,41 @@
     <item>QAtomicInt</item>
     <item>QAtomicInteger</item>
     <item>QAtomicPointer</item>
+    <item>QAtomicScopedValueRollback</item>
     <item>QAttribute</item>
     <item>QAudioBuffer</item>
     <item>QAudioDecoder</item>
     <item>QAudioDecoderControl</item>
+    <item>QAudioDevice</item>
     <item>QAudioDeviceInfo</item>
     <item>QAudioEncoderSettings</item>
     <item>QAudioEncoderSettingsControl</item>
+    <item>QAudioEngine</item>
     <item>QAudioFormat</item>
     <item>QAudioInput</item>
     <item>QAudioInputSelectorControl</item>
+    <item>QAudioListener</item>
     <item>QAudioOutput</item>
     <item>QAudioOutputSelectorControl</item>
     <item>QAudioProbe</item>
     <item>QAudioRecorder</item>
     <item>QAudioRoleControl</item>
+    <item>QAudioRoom</item>
+    <item>QAudioSink</item>
+    <item>QAudioSource</item>
     <item>QAudioSystemPlugin</item>
     <item>QAuthenticator</item>
     <item>QAxAggregated</item>
     <item>QAxBase</item>
+    <item>QAxBaseObject</item>
+    <item>QAxBaseWidget</item>
     <item>QAxBindable</item>
     <item>QAxFactory</item>
     <item>QAxis</item>
     <item>QAxisAccumulator</item>
     <item>QAxisSetting</item>
     <item>QAxObject</item>
+    <item>QAxObjectInterface</item>
     <item>QAxScript</item>
     <item>QAxScriptEngine</item>
     <item>QAxScriptManager</item>
@@ -814,8 +861,10 @@
     <item>QBarLegendMarker</item>
     <item>QBarSeries</item>
     <item>QBarSet</item>
+    <item>QBaseIterator</item>
     <item>QBasicTimer</item>
     <item>QBEInteger</item>
+    <item>QBindable</item>
     <item>QBitArray</item>
     <item>QBitmap</item>
     <item>QBlendedClipAnimator</item>
@@ -827,6 +876,7 @@
     <item>QBluetoothDeviceInfo</item>
     <item>QBluetoothHostInfo</item>
     <item>QBluetoothLocalDevice</item>
+    <item>QBluetoothPermission</item>
     <item>QBluetoothServer</item>
     <item>QBluetoothServiceDiscoveryAgent</item>
     <item>QBluetoothServiceInfo</item>
@@ -835,13 +885,13 @@
     <item>QBluetoothTransferReply</item>
     <item>QBluetoothTransferRequest</item>
     <item>QBluetoothUuid</item>
+    <item>QBoundingVolume</item>
     <item>QBoxLayout</item>
     <item>QBoxPlotLegendMarker</item>
     <item>QBoxPlotSeries</item>
     <item>QBoxSet</item>
     <item>QBrush</item>
     <item>QBuffer</item>
-    <item>QBuffer</item>
     <item>QBufferCapture</item>
     <item>QBufferDataGenerator</item>
     <item>QButtonAxisInput</item>
@@ -849,15 +899,17 @@
     <item>QByteArray</item>
     <item>QByteArrayList</item>
     <item>QByteArrayMatcher</item>
+    <item>QByteArrayView</item>
     <item>QCache</item>
     <item>QCalendar</item>
+    <item>QCalendarPermission</item>
     <item>QCalendarWidget</item>
     <item>QCallbackMapping</item>
     <item>QCamera</item>
-    <item>QCamera</item>
     <item>QCameraCaptureBufferFormatControl</item>
     <item>QCameraCaptureDestinationControl</item>
     <item>QCameraControl</item>
+    <item>QCameraDevice</item>
     <item>QCameraExposure</item>
     <item>QCameraExposureControl</item>
     <item>QCameraFeedbackControl</item>
@@ -865,6 +917,7 @@
     <item>QCameraFocus</item>
     <item>QCameraFocusControl</item>
     <item>QCameraFocusZone</item>
+    <item>QCameraFormat</item>
     <item>QCameraImageCapture</item>
     <item>QCameraImageCaptureControl</item>
     <item>QCameraImageProcessing</item>
@@ -873,6 +926,7 @@
     <item>QCameraInfoControl</item>
     <item>QCameraLens</item>
     <item>QCameraLocksControl</item>
+    <item>QCameraPermission</item>
     <item>QCameraSelector</item>
     <item>QCameraViewfinderSettings</item>
     <item>QCameraViewfinderSettingsControl</item>
@@ -884,10 +938,16 @@
     <item>QCanBusFactory</item>
     <item>QCanBusFactoryV2</item>
     <item>QCanBusFrame</item>
+    <item>QCanDbcFileParser</item>
     <item>QCandlestickLegendMarker</item>
     <item>QCandlestickModelMapper</item>
     <item>QCandlestickSeries</item>
     <item>QCandlestickSet</item>
+    <item>QCanFrameProcessor</item>
+    <item>QCanMessageDescription</item>
+    <item>QCanSignalDescription</item>
+    <item>QCanUniqueIdDescription</item>
+    <item>QCapturableWindow</item>
     <item>QCategory3DAxis</item>
     <item>QCategoryAxis</item>
     <item>QCborArray</item>
@@ -906,6 +966,7 @@
     <item>QChartView</item>
     <item>QCheckBox</item>
     <item>QChildEvent</item>
+    <item>QChildWindowEvent</item>
     <item>QClearBuffers</item>
     <item>QClipAnimator</item>
     <item>QClipBlendNodeCreatedChangeBase</item>
@@ -913,11 +974,22 @@
     <item>QClipboard</item>
     <item>QClipPlane</item>
     <item>QCloseEvent</item>
+    <item>QCoapClient</item>
+    <item>QCoapMessage</item>
+    <item>QCoapOption</item>
+    <item>QCoapPrivateKey</item>
+    <item>QCoapReply</item>
+    <item>QCoapRequest</item>
+    <item>QCoapResource</item>
+    <item>QCoapResourceDiscoveryReply</item>
+    <item>QCoapSecurityConfiguration</item>
+    <item>QCocoaGLContext</item>
     <item>QCocoaNativeContext</item>
     <item>QCocoaWindowFunctions</item>
     <item>QCollator</item>
     <item>QCollatorSortKey</item>
     <item>QColor</item>
+    <item>QColorAxis</item>
     <item>QColorDialog</item>
     <item>QColormap</item>
     <item>QColorMask</item>
@@ -940,13 +1012,18 @@
     <item>QComputeCommand</item>
     <item>QConcatenateTablesProxyModel</item>
     <item>QConeGeometry</item>
+    <item>QConeGeometryView</item>
     <item>QConeMesh</item>
     <item>QConicalGradient</item>
+    <item>QConstIterator</item>
+    <item>QContactsPermission</item>
     <item>QContextMenuEvent</item>
     <item>QContiguousCache</item>
     <item>QCoreApplication</item>
+    <item>QCoreSettings</item>
     <item>QCryptographicHash</item>
     <item>QCuboidGeometry</item>
+    <item>QCuboidGeometryView</item>
     <item>QCuboidMesh</item>
     <item>QCullFace</item>
     <item>QCursor</item>
@@ -955,6 +1032,7 @@
     <item>QCustom3DVolume</item>
     <item>QCustomAudioRoleControl</item>
     <item>QCylinderGeometry</item>
+    <item>QCylinderGeometryView</item>
     <item>QCylinderMesh</item>
     <item>QDataStream</item>
     <item>QDataWidgetMapper</item>
@@ -985,6 +1063,7 @@
     <item>QDBusVirtualObject</item>
     <item>QDeadlineTimer</item>
     <item>QDebug</item>
+    <item>QDebugOverlay</item>
     <item>QDebugStateSaver</item>
     <item>QDepthRange</item>
     <item>QDepthTest</item>
@@ -1058,6 +1137,7 @@
     <item>QEasingCurve</item>
     <item>QEffect</item>
     <item>QEglFSFunctions</item>
+    <item>QEGLContext</item>
     <item>QEGLNativeContext</item>
     <item>QElapsedTimer</item>
     <item>QEnableSharedFromThis</item>
@@ -1068,6 +1148,7 @@
     <item>QEvent</item>
     <item>QEventLoop</item>
     <item>QEventLoopLocker</item>
+    <item>QEventPoint</item>
     <item>QEventTransition</item>
     <item>QException</item>
     <item>QExplicitlySharedDataPointer</item>
@@ -1134,6 +1215,7 @@
     <item>QGeoManeuver</item>
     <item>QGeometry</item>
     <item>QGeometryRenderer</item>
+    <item>QGeometryView</item>
     <item>QGeoPath</item>
     <item>QGeoPolygon</item>
     <item>QGeoPositionInfo</item>
@@ -1169,6 +1251,7 @@
     <item>QGLShader</item>
     <item>QGLShaderProgram</item>
     <item>QGLWidget</item>
+    <item>QGLXContext</item>
     <item>QGLXNativeContext</item>
     <item>QGlyphRun</item>
     <item>QGoochMaterial</item>
@@ -1212,17 +1295,34 @@
     <item>QGraphicsSvgItem</item>
     <item>QGraphicsTextItem</item>
     <item>QGraphicsTransform</item>
+    <item>QGraphicsVideoItem</item>
     <item>QGraphicsView</item>
     <item>QGraphicsWidget</item>
+    <item>QGraphTheme</item>
     <item>QGregorianCalendar</item>
     <item>QGridLayout</item>
     <item>QGroupBox</item>
+    <item>QGrpcBidirStream</item>
+    <item>QGrpcCallOptions</item>
+    <item>QGrpcCallReply</item>
+    <item>QGrpcChannel</item>
+    <item>QGrpcChannelOperation</item>
+    <item>QGrpcChannelOptions</item>
+    <item>QGrpcClientInterceptor</item>
+    <item>QGrpcClientInterceptorManager</item>
+    <item>QGrpcClientStream</item>
+    <item>QGrpcHttp2Channel</item>
+    <item>QGrpcInterceptorContinuation</item>
+    <item>QGrpcOperation</item>
+    <item>QGrpcServerStream</item>
+    <item>QGrpcStatus</item>
     <item>QGuiApplication</item>
     <item>QGyroscope</item>
     <item>QGyroscopeFilter</item>
     <item>QGyroscopeReading</item>
     <item>QHash</item>
     <item>QHashIterator</item>
+    <item>QHashSeed</item>
     <item>QHBarModelMapper</item>
     <item>QHBoxLayout</item>
     <item>QHBoxPlotModelMapper</item>
@@ -1259,9 +1359,17 @@
     <item>QHoverEvent</item>
     <item>QHPieModelMapper</item>
     <item>QHstsPolicy</item>
+    <item>QHttp1Configuration</item>
     <item>QHttp2Configuration</item>
+    <item>QHttpHeaders</item>
     <item>QHttpMultiPart</item>
     <item>QHttpPart</item>
+    <item>QHttpServer</item>
+    <item>QHttpServerRequest</item>
+    <item>QHttpServerResponder</item>
+    <item>QHttpServerResponse</item>
+    <item>QHttpServerRouter</item>
+    <item>QHttpServerRouterRule</item>
     <item>QHumidityFilter</item>
     <item>QHumidityReading</item>
     <item>QHumiditySensor</item>
@@ -1272,6 +1380,7 @@
     <item>QIconEnginePlugin</item>
     <item>QIdentityProxyModel</item>
     <item>QImage</item>
+    <item>QImageCapture</item>
     <item>QImageEncoderControl</item>
     <item>QImageEncoderSettings</item>
     <item>QImageIOHandler</item>
@@ -1283,6 +1392,7 @@
     <item>QInAppTransaction</item>
     <item>QInputAspect</item>
     <item>QInputChord</item>
+    <item>QInputDevice</item>
     <item>QInputDeviceIntegration</item>
     <item>QInputDialog</item>
     <item>QInputEvent</item>
@@ -1293,6 +1403,7 @@
     <item>QInputSettings</item>
     <item>QIntValidator</item>
     <item>QIODevice</item>
+    <item>QIODeviceBase</item>
     <item>QIRProximityFilter</item>
     <item>QIRProximityReading</item>
     <item>QIRProximitySensor</item>
@@ -1306,20 +1417,29 @@
     <item>QItemSelection</item>
     <item>QItemSelectionModel</item>
     <item>QItemSelectionRange</item>
+    <item>QIterable</item>
+    <item>QIterator</item>
     <item>QJalaliCalendar</item>
+    <item>QJniEnvironment</item>
+    <item>QJniObject</item>
     <item>QJoint</item>
     <item>QJSEngine</item>
+    <item>QJSManagedValue</item>
     <item>QJsonArray</item>
     <item>QJsonDocument</item>
     <item>QJsonObject</item>
     <item>QJsonParseError</item>
     <item>QJsonValue</item>
+    <item>QJSPrimitiveNull</item>
+    <item>QJSPrimitiveUndefined</item>
+    <item>QJSPrimitiveValue</item>
     <item>QJSValue</item>
     <item>QJSValueIterator</item>
     <item>QJulianCalendar</item>
     <item>QKeyboardDevice</item>
     <item>QKeyboardHandler</item>
     <item>QKeyEvent</item>
+    <item>QKeyCombination</item>
     <item>QKeyEvent</item>
     <item>QKeyEventTransition</item>
     <item>QKeyFrame</item>
@@ -1330,6 +1450,8 @@
     <item>QLabel</item>
     <item>QLatin1Char</item>
     <item>QLatin1String</item>
+    <item>QLatin1StringMatcher</item>
+    <item>QLatin1StringView</item>
     <item>QLayer</item>
     <item>QLayerFilter</item>
     <item>QLayout</item>
@@ -1367,6 +1489,7 @@
     <item>QLocale</item>
     <item>QLocalServer</item>
     <item>QLocalSocket</item>
+    <item>QLocationPermission</item>
     <item>QLockFile</item>
     <item>QLoggingCategory</item>
     <item>QLogicalDevice</item>
@@ -1405,10 +1528,14 @@
     <item>QMediaAudioProbeControl</item>
     <item>QMediaAvailabilityControl</item>
     <item>QMediaBindableInterface</item>
+    <item>QMediaCaptureSession</item>
     <item>QMediaContainerControl</item>
     <item>QMediaContent</item>
     <item>QMediaControl</item>
+    <item>QMediaDevices</item>
+    <item>QMediaFormat</item>
     <item>QMediaGaplessPlaybackControl</item>
+    <item>QMediaMetaData</item>
     <item>QMediaNetworkAccessControl</item>
     <item>QMediaObject</item>
     <item>QMediaPlayer</item>
@@ -1444,7 +1571,9 @@
     <item>QMetaMethod</item>
     <item>QMetaObject</item>
     <item>QMetaProperty</item>
+    <item>QMetaSequence</item>
     <item>QMetaType</item>
+    <item>QMicrophonePermission</item>
     <item>QMilankovicCalendar</item>
     <item>QMimeData</item>
     <item>QMimeDatabase</item>
@@ -1458,13 +1587,17 @@
     <item>QModbusReply</item>
     <item>QModbusRequest</item>
     <item>QModbusResponse</item>
+    <item>QModbusRtuSerialClient</item>
     <item>QModbusRtuSerialMaster</item>
+    <item>QModbusRtuSerialServer</item>
     <item>QModbusRtuSerialSlave</item>
     <item>QModbusServer</item>
     <item>QModbusTcpClient</item>
     <item>QModbusTcpConnectionObserver</item>
     <item>QModbusTcpServer</item>
     <item>QModelIndex</item>
+    <item>QModelRoleData</item>
+    <item>QModelRoleDataSpan</item>
     <item>QMorphingAnimation</item>
     <item>QMorphPhongMaterial</item>
     <item>QMorphTarget</item>
@@ -1475,20 +1608,39 @@
     <item>QMouseHandler</item>
     <item>QMoveEvent</item>
     <item>QMovie</item>
+    <item>QMqttAuthenticationProperties</item>
+    <item>QMqttClient</item>
+    <item>QMqttConnectionProperties</item>
+    <item>QMqttLastWillProperties</item>
+    <item>QMqttMessage</item>
+    <item>QMqttMessageStatusProperties</item>
+    <item>QMqttPublishProperties</item>
+    <item>QMqttServerConnectionProperties</item>
+    <item>QMqttStringPair</item>
+    <item>QMqttSubscription</item>
+    <item>QMqttSubscriptionProperties</item>
+    <item>QMqttTopicFilter</item>
+    <item>QMqttTopicName</item>
+    <item>QMqttUnsubscriptionProperties</item>
+    <item>QMqttUserProperties</item>
     <item>QMultiHash</item>
     <item>QMultiMap</item>
+    <item>QMultiMapIterator</item>
     <item>QMultiSampleAntiAliasing</item>
     <item>QMutableHashIterator</item>
     <item>QMutableLinkedListIterator</item>
     <item>QMutableListIterator</item>
     <item>QMutableMapIterator</item>
+    <item>QMutableMultiMapIterator</item>
     <item>QMutableSetIterator</item>
     <item>QMutableVectorIterator</item>
     <item>QMutex</item>
     <item>QMutexLocker</item>
     <item>QNativeGestureEvent</item>
+    <item>QNativeIpcKey</item>
     <item>QNdefFilter</item>
     <item>QNdefMessage</item>
+    <item>QNdefNfcIconRecord</item>
     <item>QNdefNfcSmartPosterRecord</item>
     <item>QNdefNfcTextRecord</item>
     <item>QNdefNfcUriRecord</item>
@@ -1506,14 +1658,17 @@
     <item>QNetworkCookieJar</item>
     <item>QNetworkDatagram</item>
     <item>QNetworkDiskCache</item>
+    <item>QNetworkInformation</item>
     <item>QNetworkInterface</item>
     <item>QNetworkProxy</item>
     <item>QNetworkProxyFactory</item>
     <item>QNetworkProxyQuery</item>
     <item>QNetworkReply</item>
     <item>QNetworkRequest</item>
+    <item>QNetworkRequestFactory</item>
     <item>QNetworkSession</item>
     <item>QNmeaPositionInfoSource</item>
+    <item>QNmeaSatelliteInfoSource</item>
     <item>QNode</item>
     <item>QNodeCommand</item>
     <item>QNodeCreatedChange</item>
@@ -1526,14 +1681,85 @@
     <item>QNormalDiffuseMapAlphaMaterial</item>
     <item>QNormalDiffuseMapMaterial</item>
     <item>QNormalDiffuseSpecularMapMaterial</item>
+    <item>QNtfsPermissionCheckGuard</item>
     <item>QOAuth1</item>
     <item>QOAuth1Signature</item>
     <item>QOAuth2AuthorizationCodeFlow</item>
     <item>QObject</item>
+    <item>QObjectBindableProperty</item>
     <item>QObjectCleanupHandler</item>
+    <item>QObjectComputedProperty</item>
     <item>QObjectPicker</item>
     <item>QOcspResponse</item>
     <item>QOffscreenSurface</item>
+    <item>QOpcUaAddNodeItem</item>
+    <item>QOpcUaAddReferenceItem</item>
+    <item>QOpcUaApplicationDescription</item>
+    <item>QOpcUaApplicationIdentity</item>
+    <item>QOpcUaApplicationRecordDataType</item>
+    <item>QOpcUaArgument</item>
+    <item>QOpcUaAttributeOperand</item>
+    <item>QOpcUaAuthenticationInformation</item>
+    <item>QOpcUaAxisInformation</item>
+    <item>QOpcUaBinaryDataEncoding</item>
+    <item>QOpcUaBrowsePathTarget</item>
+    <item>QOpcUaBrowseRequest</item>
+    <item>QOpcUaClient</item>
+    <item>QOpcUaComplexNumber</item>
+    <item>QOpcUaConnectionSettings</item>
+    <item>QOpcUaContentFilterElement</item>
+    <item>QOpcUaContentFilterElementResult</item>
+    <item>QOpcUaDataValue</item>
+    <item>QOpcUaDeleteReferenceItem</item>
+    <item>QOpcUaDiagnosticInfo</item>
+    <item>QOpcUaDoubleComplexNumber</item>
+    <item>QOpcUaElementOperand</item>
+    <item>QOpcUaEndpointDescription</item>
+    <item>QOpcUaEnumDefinition</item>
+    <item>QOpcUaEnumField</item>
+    <item>QOpcUaErrorState</item>
+    <item>QOpcUaEUInformation</item>
+    <item>QOpcUaEventFilterResult</item>
+    <item>QOpcUaExpandedNodeId</item>
+    <item>QOpcUaExtensionObject</item>
+    <item>QOpcUaGdsClient</item>
+    <item>QOpcUaGenericStructHandler</item>
+    <item>QOpcUaGenericStructValue</item>
+    <item>QOpcUaHistoryData</item>
+    <item>QOpcUaHistoryEvent</item>
+    <item>QOpcUaHistoryReadEventRequest</item>
+    <item>QOpcUaHistoryReadRawRequest</item>
+    <item>QOpcUaHistoryReadResponse</item>
+    <item>QOpcUaKeyPair</item>
+    <item>QOpcUaLiteralOperand</item>
+    <item>QOpcUaLocalizedText</item>
+    <item>QOpcUaMonitoringParameters</item>
+    <item>QOpcUaMultiDimensionalArray</item>
+    <item>QOpcUaNode</item>
+    <item>QOpcUaNodeCreationAttributes</item>
+    <item>QOpcUaPkiConfiguration</item>
+    <item>QOpcUaProvider</item>
+    <item>QOpcUaQualifiedName</item>
+    <item>QOpcUaRange</item>
+    <item>QOpcUaReadItem</item>
+    <item>QOpcUaReadResult</item>
+    <item>QOpcUaReferenceDescription</item>
+    <item>QOpcUaRelativePathElement</item>
+    <item>QOpcUaSimpleAttributeOperand</item>
+    <item>QOpcUaStructureDefinition</item>
+    <item>QOpcUaStructureField</item>
+    <item>QOpcUaUserTokenPolicy</item>
+    <item>QOpcUaVariant</item>
+    <item>QOpcUaWriteItem</item>
+    <item>QOpcUaWriteResult</item>
+    <item>QOpcUaX509CertificateSigningRequest</item>
+    <item>QOpcUaX509DistinguishedName</item>
+    <item>QOpcUaX509Extension</item>
+    <item>QOpcUaX509ExtensionBasicConstraints</item>
+    <item>QOpcUaX509ExtensionExtendedKeyUsage</item>
+    <item>QOpcUaX509ExtensionKeyUsage</item>
+    <item>QOpcUaX509ExtensionSubjectAlternativeName</item>
+    <item>QOpcUaXValue</item>
     <item>QOpenGLBuffer</item>
     <item>QOpenGLContext</item>
     <item>QOpenGLContextGroup</item>
@@ -1578,6 +1804,7 @@
     <item>QOpenGLTextureBlitter</item>
     <item>QOpenGLTimeMonitor</item>
     <item>QOpenGLTimerQuery</item>
+    <item>QOpenGLVersionFunctionsFactory</item>
     <item>QOpenGLVersionProfile</item>
     <item>QOpenGLVertexArrayObject</item>
     <item>QOpenGLWidget</item>
@@ -1590,6 +1817,7 @@
     <item>qoutputrange</item>
     <item>QPagedPaintDevice</item>
     <item>QPageLayout</item>
+    <item>QPageRanges</item>
     <item>QPageSetupDialog</item>
     <item>QPageSize</item>
     <item>QPaintDevice</item>
@@ -1606,22 +1834,32 @@
     <item>QPanGesture</item>
     <item>QParallelAnimationGroup</item>
     <item>QParameter</item>
+    <item>QPartialOrdering</item>
     <item>QPauseAnimation</item>
+    <item>QPdfBookmarkModel</item>
     <item>QPdfDestination</item>
     <item>QPdfDocument</item>
     <item>QPdfDocumentRenderOptions</item>
+    <item>QPdfLink</item>
+    <item>QPdfLinkModel</item>
     <item>QPdfPageNavigation</item>
+    <item>QPdfPageNavigator</item>
     <item>QPdfPageRenderer</item>
+    <item>QPdfPageSelector</item>
+    <item>QPdfSearchModel</item>
     <item>QPdfSelection</item>
+    <item>QPdfView</item>
     <item>QPdfWriter</item>
     <item>QPen</item>
     <item>QPercentBarSeries</item>
+    <item>QPermission</item>
     <item>QPersistentModelIndex</item>
     <item>QPerVertexColorMaterial</item>
     <item>QPhongAlphaMaterial</item>
     <item>QPhongMaterial</item>
     <item>QPhysicalDeviceCreatedChangeBase</item>
     <item>QPickEvent</item>
+    <item>QPickingProxy</item>
     <item>QPickingSettings</item>
     <item>QPickLineEvent</item>
     <item>QPickPointEvent</item>
@@ -1666,12 +1904,15 @@
     <item>QPlainTextDocumentLayout</item>
     <item>QPlainTextEdit</item>
     <item>QPlaneGeometry</item>
+    <item>QPlaneGeometryView</item>
     <item>QPlaneMesh</item>
     <item>QPlatformSurfaceEvent</item>
     <item>QPluginLoader</item>
     <item>QPoint</item>
     <item>QPointer</item>
+    <item>QPointerEvent</item>
     <item>QPointF</item>
+    <item>QPointingDevice</item>
     <item>QPointingDeviceUniqueId</item>
     <item>QPointLight</item>
     <item>QPointSize</item>
@@ -1692,16 +1933,26 @@
     <item>QProcessEnvironment</item>
     <item>QProgressBar</item>
     <item>QProgressDialog</item>
+    <item>QPromise</item>
+    <item>QProperty</item>
     <item>QPropertyAnimation</item>
+    <item>QPropertyBindingError</item>
+    <item>QPropertyChangeHandler</item>
+    <item>QPropertyData</item>
     <item>QPropertyNodeAddedChange</item>
     <item>QPropertyNodeRemovedChange</item>
+    <item>QPropertyNotifier</item>
     <item>QPropertyUpdatedChange</item>
     <item>QPropertyUpdatedChangeBase</item>
     <item>QPropertyValueAddedChange</item>
     <item>QPropertyValueAddedChangeBase</item>
     <item>QPropertyValueRemovedChange</item>
     <item>QPropertyValueRemovedChangeBase</item>
-    <item>QProximityFilter</item>
+    <item>QProtobufBaseSerializer</item>
+    <item>QProtobufJsonSerializer</item>
+    <item>QProtobufMessage</item>
+    <item>QProtobufMessageDeleter</item>
+    <item>QProtobufSerializer</item>
     <item>QProximityFilter</item>
     <item>QProximityReading</item>
     <item>QProximitySensor</item>
@@ -1716,10 +1967,13 @@
     <item>QQmlEngineExtensionPlugin</item>
     <item>QQmlError</item>
     <item>QQmlExpression</item>
+    <item>QQmlExtensionPlugin</item>
+    <item>QQmlFile</item>
     <item>QQmlFileSelector</item>
     <item>QQmlImageProviderBase</item>
     <item>QQmlIncubationController</item>
     <item>QQmlIncubator</item>
+    <item>QQmlInfo</item>
     <item>QQmlListProperty</item>
     <item>QQmlListReference</item>
     <item>QQmlNdefRecord</item>
@@ -1732,16 +1986,26 @@
     <item>QQuaternion</item>
     <item>QQueue</item>
     <item>QQuick3D</item>
+    <item>QQuick3DExtensionHelpers</item>
     <item>QQuick3DGeometry</item>
+    <item>QQuick3DInstancing</item>
     <item>QQuick3DObject</item>
+    <item>QQuick3DRenderExtension</item>
+    <item>QQuick3DTextureData</item>
     <item>QQuickAsyncImageProvider</item>
+    <item>QQuickAttachedPropertyPropagator</item>
     <item>QQuickFramebufferObject</item>
+    <item>QQuickGraphicsConfiguration</item>
+    <item>QQuickGraphicsDevice</item>
     <item>QQuickImageProvider</item>
     <item>QQuickImageResponse</item>
     <item>QQuickItem</item>
     <item>QQuickItemGrabResult</item>
     <item>QQuickPaintedItem</item>
     <item>QQuickRenderControl</item>
+    <item>QQuickRenderTarget</item>
+    <item>QQuickRhiItem</item>
+    <item>QQuickRhiItemRenderer</item>
     <item>QQuickStyle</item>
     <item>QQuickTextDocument</item>
     <item>QQuickTextureFactory</item>
@@ -1802,7 +2066,65 @@
     <item>QRenderTargetSelector</item>
     <item>QResizeEvent</item>
     <item>QResource</item>
+    <item>QRestAccessManager</item>
+    <item>QRestReply</item>
     <item>QRgba64</item>
+    <item>QRgbaFloat</item>
+    <item>QRhi</item>
+    <item>QRhiBuffer</item>
+    <item>QRhiColorAttachment</item>
+    <item>QRhiCommandBuffer</item>
+    <item>QRhiComputePipeline</item>
+    <item>QRhiD3D11InitParams</item>
+    <item>QRhiD3D11NativeHandles</item>
+    <item>QRhiD3D12CommandBufferNativeHandles</item>
+    <item>QRhiD3D12InitParams</item>
+    <item>QRhiD3D12NativeHandles</item>
+    <item>QRhiDepthStencilClearValue</item>
+    <item>QRhiDriverInfo</item>
+    <item>QRhiGles2InitParams</item>
+    <item>QRhiGles2NativeHandles</item>
+    <item>QRhiGraphicsPipeline</item>
+    <item>QRhiInitParams</item>
+    <item>QRhiMetalCommandBufferNativeHandles</item>
+    <item>QRhiMetalInitParams</item>
+    <item>QRhiMetalNativeHandles</item>
+    <item>QRhiNativeHandles</item>
+    <item>QRhiNullInitParams</item>
+    <item>QRhiNullNativeHandles</item>
+    <item>QRhiReadbackDescription</item>
+    <item>QRhiReadbackResult</item>
+    <item>QRhiRenderBuffer</item>
+    <item>QRhiRenderPassDescriptor</item>
+    <item>QRhiRenderTarget</item>
+    <item>QRhiResource</item>
+    <item>QRhiResourceUpdateBatch</item>
+    <item>QRhiSampler</item>
+    <item>QRhiScissor</item>
+    <item>QRhiShaderResourceBinding</item>
+    <item>QRhiShaderResourceBindings</item>
+    <item>QRhiShaderStage</item>
+    <item>QRhiStats</item>
+    <item>QRhiSwapChain</item>
+    <item>QRhiSwapChainHdrInfo</item>
+    <item>QRhiSwapChainProxyData</item>
+    <item>QRhiSwapChainRenderTarget</item>
+    <item>QRhiTexture</item>
+    <item>QRhiTextureCopyDescription</item>
+    <item>QRhiTextureRenderTarget</item>
+    <item>QRhiTextureRenderTargetDescription</item>
+    <item>QRhiTextureSubresourceUploadDescription</item>
+    <item>QRhiTextureUploadDescription</item>
+    <item>QRhiTextureUploadEntry</item>
+    <item>QRhiVertexInputAttribute</item>
+    <item>QRhiVertexInputBinding</item>
+    <item>QRhiVertexInputLayout</item>
+    <item>QRhiViewport</item>
+    <item>QRhiVulkanCommandBufferNativeHandles</item>
+    <item>QRhiVulkanInitParams</item>
+    <item>QRhiVulkanNativeHandles</item>
+    <item>QRhiVulkanRenderPassNativeHandles</item>
+    <item>QRhiWidget</item>
     <item>QRomanCalendar</item>
     <item>QRotationFilter</item>
     <item>QRotationReading</item>
@@ -1820,9 +2142,11 @@
     <item>QScissorTest</item>
     <item>QScopedArrayPointer</item>
     <item>QScopedPointer</item>
+    <item>QScopedPropertyUpdateGroup</item>
     <item>QScopedValueRollback</item>
     <item>QScopeGuard</item>
     <item>QScreen</item>
+    <item>QScreenCapture</item>
     <item>QScreenRayCaster</item>
     <item>QScriptable</item>
     <item>QScriptClass</item>
@@ -1878,6 +2202,7 @@
     <item>QSequentialIterable</item>
     <item>QSerialPort</item>
     <item>QSerialPortInfo</item>
+    <item>QSeriesTheme</item>
     <item>QSessionManager</item>
     <item>QSet</item>
     <item>QSetFence</item>
@@ -1886,6 +2211,8 @@
     <item>QSGAbstractRenderer</item>
     <item>QSGBasicGeometryNode</item>
     <item>QSGClipNode</item>
+    <item>QSGD3D11Texture</item>
+    <item>QSGD3D12Texture</item>
     <item>QSGDynamicTexture</item>
     <item>QSGEngine</item>
     <item>QSGFlatColorMaterial</item>
@@ -1896,9 +2223,11 @@
     <item>QSGMaterialRhiShader</item>
     <item>QSGMaterialShader</item>
     <item>QSGMaterialType</item>
+    <item>QSGMetalTexture</item>
     <item>QSGNode</item>
     <item>QSGOpacityNode</item>
     <item>QSGOpaqueTextureMaterial</item>
+    <item>QSGOpenGLTexture</item>
     <item>QSGRectangleNode</item>
     <item>QSGRendererInterface</item>
     <item>QSGRenderNode</item>
@@ -1906,15 +2235,23 @@
     <item>QSGSimpleMaterialShader</item>
     <item>QSGSimpleRectNode</item>
     <item>QSGSimpleTextureNode</item>
+    <item>QSGTextNode</item>
     <item>QSGTexture</item>
     <item>QSGTextureMaterial</item>
     <item>QSGTextureProvider</item>
     <item>QSGTransformNode</item>
     <item>QSGVertexColorMaterial</item>
+    <item>QSGVulkanTexture</item>
+    <item>QShader</item>
+    <item>QShaderBaker</item>
+    <item>QShaderCode</item>
     <item>QShaderData</item>
+    <item>QShaderDescription</item>
     <item>QShaderImage</item>
+    <item>QShaderKey</item>
     <item>QShaderProgram</item>
     <item>QShaderProgramBuilder</item>
+    <item>QShaderVersion</item>
     <item>QSharedData</item>
     <item>QSharedDataPointer</item>
     <item>QSharedGLTexture</item>
@@ -1928,6 +2265,7 @@
     <item>QSignalSpy</item>
     <item>QSignalTransition</item>
     <item>QSimpleXmlNodeModel</item>
+    <item>QSinglePointEvent</item>
     <item>QSize</item>
     <item>QSizeF</item>
     <item>QSizeGrip</item>
@@ -1943,7 +2281,10 @@
     <item>QSoundEffect</item>
     <item>QSourceLocation</item>
     <item>QSpacerItem</item>
+    <item>QSpan</item>
+    <item>QSpatialSound</item>
     <item>QSphereGeometry</item>
+    <item>QSphereGeometryView</item>
     <item>QSphereMesh</item>
     <item>QSpinBox</item>
     <item>QSplashScreen</item>
@@ -1967,6 +2308,16 @@
     <item>QSqlRelationalTableModel</item>
     <item>QSqlResult</item>
     <item>QSqlTableModel</item>
+    <item>QSSGCameraHelpers</item>
+    <item>QSSGFrameData</item>
+    <item>QSSGModelHelpers</item>
+    <item>QSSGRenderContextInterface</item>
+    <item>QSSGRenderExtension</item>
+    <item>QSSGRenderExtensionHelpers</item>
+    <item>QSSGRenderHelpers</item>
+    <item>QSSGRhiContext</item>
+    <item>QSSGRhiGraphicsPipelineState</item>
+    <item>QSSGRhiSamplerDescription</item>
     <item>QSslCertificate</item>
     <item>QSslCertificateExtension</item>
     <item>QSslCipher</item>
@@ -1976,6 +2327,7 @@
     <item>QSslError</item>
     <item>QSslKey</item>
     <item>QSslPreSharedKeyAuthenticator</item>
+    <item>QSslServer</item>
     <item>QSslSocket</item>
     <item>QStack</item>
     <item>QStackedBarSeries</item>
@@ -1988,6 +2340,7 @@
     <item>QState</item>
     <item>QStateMachine</item>
     <item>QStaticByteArrayMatcher</item>
+    <item>QStaticLatin1StringMatcher</item>
     <item>QStaticPlugin</item>
     <item>QStaticPropertyUpdatedChangeBase</item>
     <item>QStaticPropertyValueAddedChangeBase</item>
@@ -2002,10 +2355,14 @@
     <item>QStencilTestArguments</item>
     <item>QStorageInfo</item>
     <item>QString</item>
+    <item>QStringConverter</item>
+    <item>QStringDecoder</item>
+    <item>QStringEncoder</item>
     <item>QStringList</item>
     <item>QStringListModel</item>
     <item>QStringMatcher</item>
     <item>QStringRef</item>
+    <item>QStringTokenizer</item>
     <item>QStringView</item>
     <item>QStyle</item>
     <item>QStyledItemDelegate</item>
@@ -2024,6 +2381,7 @@
     <item>QStyleOptionGraphicsItem</item>
     <item>QStyleOptionGroupBox</item>
     <item>QStyleOptionHeader</item>
+    <item>QStyleOptionHeaderV2</item>
     <item>QStyleOptionMenuItem</item>
     <item>QStyleOptionProgressBar</item>
     <item>QStyleOptionRubberBand</item>
@@ -2062,11 +2420,13 @@
     <item>QTableWidgetItem</item>
     <item>QTableWidgetSelectionRange</item>
     <item>QTabWidget</item>
+    <item>QTaggedIterator</item>
     <item>QTapAndHoldGesture</item>
     <item>QTapFilter</item>
     <item>QTapGesture</item>
     <item>QTapReading</item>
     <item>QTapSensor</item>
+    <item>QTaskBuilder</item>
     <item>QTcpServer</item>
     <item>QTcpSocket</item>
     <item>QTechnique</item>
@@ -2152,13 +2512,13 @@
     <item>QToolButton</item>
     <item>QToolTip</item>
     <item>QTorusGeometry</item>
+    <item>QTorusGeometryView</item>
     <item>QTorusMesh</item>
     <item>QTouch3DInputHandler</item>
     <item>QTouchDevice</item>
     <item>QTouchEvent</item>
     <item>QTouchEventSequence</item>
     <item>QTransform</item>
-    <item>QTransform</item>
     <item>QTranslator</item>
     <item>QTransposeProxyModel</item>
     <item>QTreeView</item>
@@ -2167,6 +2527,7 @@
     <item>QTreeWidgetItemIterator</item>
     <item>QtROClientFactory</item>
     <item>QtROServerFactory</item>
+    <item>QTypeRevision</item>
     <item>QUdpSocket</item>
     <item>QUiLoader</item>
     <item>QUndoCommand</item>
@@ -2174,8 +2535,11 @@
     <item>QUndoStack</item>
     <item>QUndoView</item>
     <item>QUnhandledException</item>
+    <item>QUntypedBindable</item>
     <item>QUrl</item>
     <item>QUrlQuery</item>
+    <item>QUtf8StringView</item>
+    <item>QUtiMimeConverter</item>
     <item>QUuid</item>
     <item>QValidator</item>
     <item>QValue3DAxis</item>
@@ -2186,6 +2550,9 @@
     <item>QVariantHash</item>
     <item>QVariantList</item>
     <item>QVariantMap</item>
+    <item>QVariantConstPointer</item>
+    <item>QVariantPointer</item>
+    <item>QVariantRef</item>
     <item>QVarLengthArray</item>
     <item>QVBarModelMapper</item>
     <item>QVBoxLayout</item>
@@ -2203,8 +2570,10 @@
     <item>QVideoEncoderSettingsControl</item>
     <item>QVideoFilterRunnable</item>
     <item>QVideoFrame</item>
+    <item>QVideoFrameFormat</item>
     <item>QVideoProbe</item>
     <item>QVideoRendererControl</item>
+    <item>QVideoSink</item>
     <item>QVideoSurfaceFormat</item>
     <item>QVideoWidget</item>
     <item>QVideoWidgetControl</item>
@@ -2212,8 +2581,11 @@
     <item>QViewport</item>
     <item>QVirtualKeyboardAbstractInputMethod</item>
     <item>QVirtualKeyboardExtensionPlugin</item>
+    <item>QVirtualKeyboardDictionary</item>
+    <item>QVirtualKeyboardDictionaryManager</item>
     <item>QVirtualKeyboardInputContext</item>
     <item>QVirtualKeyboardInputEngine</item>
+    <item>QVirtualKeyboardObserver</item>
     <item>QVirtualKeyboardSelectionListModel</item>
     <item>QVirtualKeyboardTrace</item>
     <item>QVoice</item>
@@ -2229,23 +2601,34 @@
     <item>QVXYModelMapper</item>
     <item>QWaitCondition</item>
     <item>QWaitFence</item>
+    <item>QWaylandApplication</item>
     <item>QWaylandBufferRef</item>
     <item>QWaylandClient</item>
     <item>QWaylandCompositor</item>
+    <item>QWaylandCompositorExtension</item>
+    <item>QWaylandCompositorExtensionTemplate</item>
     <item>QWaylandIdleInhibitManagerV1</item>
     <item>QWaylandIviApplication</item>
     <item>QWaylandIviSurface</item>
     <item>QWaylandKeyboard</item>
+    <item>QWaylandObject</item>
     <item>QWaylandOutput</item>
     <item>QWaylandOutputMode</item>
     <item>QWaylandPointer</item>
+    <item>QWaylandPresentationTime</item>
+    <item>QWaylandQtTextInputMethodManager</item>
     <item>QWaylandQuickItem</item>
     <item>QWaylandQuickShellIntegration</item>
     <item>QWaylandQuickShellSurfaceItem</item>
+    <item>QWaylandResource</item>
+    <item>QWaylandScreen</item>
     <item>QWaylandSeat</item>
     <item>QWaylandShellSurface</item>
+    <item>QWaylandShellSurfaceTemplate</item>
     <item>QWaylandSurface</item>
     <item>QWaylandSurfaceGrabber</item>
+    <item>QWaylandSurfaceRole</item>
+    <item>QWaylandTextInputManager</item>
     <item>QWaylandTouch</item>
     <item>QWaylandView</item>
     <item>QWaylandViewporter</item>
@@ -2268,10 +2651,23 @@
     <item>QWeakPointer</item>
     <item>QWebChannel</item>
     <item>QWebChannelAbstractTransport</item>
+    <item>QWebEngineCertificateError</item>
+    <item>QWebEngineClientCertificateSelection</item>
     <item>QWebEngineClientCertificateStore</item>
+    <item>QWebEngineContextMenuRequest</item>
     <item>QWebEngineCookieStore</item>
+    <item>QWebEngineDesktopMediaRequest</item>
+    <item>QWebEngineDownloadRequest</item>
+    <item>QWebEngineFileSystemAccessRequest</item>
     <item>QWebEngineFindTextResult</item>
+    <item>QWebEngineFullScreenRequest</item>
+    <item>QWebEngineHistory</item>
+    <item>QWebEngineHistoryItem</item>
+    <item>QWebEngineHistoryModel</item>
     <item>QWebEngineHttpRequest</item>
+    <item>QWebEngineLoadingInfo</item>
+    <item>QWebEngineNavigationRequest</item>
+    <item>QWebEngineNewWindowRequest</item>
     <item>QWebEngineNotification</item>
     <item>QWebEnginePage</item>
     <item>QWebEngineProfile</item>
@@ -2286,9 +2682,13 @@
     <item>QWebEngineUrlScheme</item>
     <item>QWebEngineUrlSchemeHandler</item>
     <item>QWebEngineView</item>
+    <item>QWebEngineWebAuthPinRequest</item>
+    <item>QWebEngineWebAuthUxRequest</item>
     <item>QWebSocket</item>
     <item>QWebSocketCorsAuthenticator</item>
+    <item>QWebSocketHandshakeOptions</item>
     <item>QWebSocketServer</item>
+    <item>QWGLContext</item>
     <item>QWGLNativeContext</item>
     <item>QWhatsThis</item>
     <item>QWhatsThisClickedEvent</item>
@@ -2298,6 +2698,9 @@
     <item>QWidgetAction</item>
     <item>QWidgetItem</item>
     <item>QWindow</item>
+    <item>QWindowCapture</item>
+    <item>QWindowsMimeConverter</item>
+    <item>QWindowsScreen</item>
     <item>QWindowStateChangeEvent</item>
     <item>QWindowsWindowFunctions</item>
     <item>QWinEventNotifier</item>
@@ -2312,6 +2715,7 @@
     <item>QWizard</item>
     <item>QWizardPage</item>
     <item>QWriteLocker</item>
+    <item>QX11Application</item>
     <item>QX11Info</item>
     <item>QXcbWindowFunctions</item>
     <item>QXmlAttributes</item>
@@ -2353,8 +2757,20 @@
     <item>QStringLiteral</item>
     <!-- Not actually classes, but namespaces -->
     <item>Qt</item>
+    <item>QNativeInterface</item>
+    <item>QQmlSA</item>
+    <item>QScxmlExecutableContent</item>
     <item>QTest</item>
+    <item>QWebEngineGlobalSettings</item>
+    <item>Qt3DAnimation</item>
+    <item>Qt3DCore</item>
+    <item>Qt3DExtras</item>
+    <item>Qt3DInput</item>
+    <item>Qt3DLogic</item>
+    <item>Qt3DRender</item>
     <item>QtConcurrent</item>
+    <item>QtFuture</item>
+    <item>QtProtobuf</item>
     <item>Phonon</item>
     <!-- Some public types, but not listed in main class list -->
     <item>QFileInfoList</item>
@@ -2387,10 +2803,6 @@
     </context>
 
     <context attribute="Qt Classes" lineEndContext="#pop" name="Qt5ClassMember">
-      <IncludeRules context="DetectNSEnd" />
-    </context>
-
-    <context lineEndContext="#pop" name="DetectNSEnd" attribute="Normal Text">
       <DetectIdentifier context="#stay" />
       <AnyChar context="#pop" String="&ns_punctuators;" lookAhead="true" />
     </context>
@@ -2408,7 +2820,7 @@
 
 <general>
   <comments>
-    <comment name="singleLine" start="//" />
+    <comment name="singleLine" start="//" position="afterwhitespace"/>
     <comment name="multiLine" start="/*" end="*/" />
   </comments>
   <keywords casesensitive="1" />
diff --git a/syntax/crystal.xml b/syntax/crystal.xml
new file mode 100644
--- /dev/null
+++ b/syntax/crystal.xml
@@ -0,0 +1,993 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language>
+
+<!--
+  Crystal syntax highlighting definition for Kate.
+  Copyright (C) 2022  by Gaurav Shah (gauravshah.89@gmail.com)
+
+  Forked from the Ruby syntax highlighting definition.
+  Copyright (C) 2004  by Sebastian Vuorinen (sebastian dot vuorinen at helsinki dot fi)
+  Copyright (C) 2004  by Stefan Lang (langstefan@gmx.at)
+  Copyright (C) 2008  by Robin Pedersen (robinpeder@gmail.com)
+  Copyright (C) 2011  by Miquel Sabaté (mikisabate@gmail.com)
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Library General Public
+  License as published by the Free Software Foundation; either
+  version 2 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
+  Library General Public License for more details.
+
+  You should have received a copy of the GNU Library General Public
+  License along with this library; if not, write to the
+  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+  Boston, MA  02110-1301, USA.
+-->
+
+<!--
+    TODO: Division after gdl contexts is interpreted as regexp
+-->
+
+<!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". -->
+<language name="Crystal" section="Sources"
+	  version="0" kateversion="5.0"
+	  extensions="*.cr"
+	  mimetype="application/x-crystal"
+	  style="crystal" indenter="ruby"
+	  author="Gaurav Shah (gauravshah.89@gmail.com)" license="LGPLv2+">
+
+	<highlighting>
+
+		<list name="keywords">
+			<item>begin</item>
+			<item>break</item>
+			<item>case</item>
+			<item>do</item>
+			<item>else</item>
+			<item>elsif</item>
+			<item>end</item>
+			<item>ensure</item>
+			<item>for</item>
+			<item>if</item>
+			<item>in</item>
+			<item>next</item>
+			<item>rescue</item>
+			<item>return</item>
+			<item>then</item>
+			<item>unless</item>
+			<item>until</item>
+			<item>when</item>
+			<item>yield</item>
+		</list>
+
+		<list name="access-control">
+			<item>private</item>
+			<item>protected</item>
+		</list>
+
+		<list name="attribute-definitions">
+			<item>getter</item>
+			<item>setter</item>
+			<item>property</item>
+		</list>
+
+		<list name="definitions">
+			<item>alias</item>
+			<item>module</item>
+			<item>class</item>
+			<item>struct</item>
+			<item>def</item>
+			<item>macro</item>
+		</list>
+
+		<list name="pseudo-variables">
+			<item>self</item>
+			<item>super</item>
+			<item>nil</item>
+			<item>false</item>
+			<item>true</item>
+			<item>caller</item>
+			<!-- TODO: move these to psudo constants list -->
+			<item>__FILE__</item>
+			<item>__LINE__</item>
+			<item>__END_LINE__</item>
+			<item>__DIR__</item>
+		</list>
+
+		<!-- Kernel module methods.
+			NOTE: Methods ending in ? or !
+				are included below as regexes.
+		-->
+		<!-- TODO: replace this with Crystal Object methods? -->
+		<list name="kernel-methods">
+			<!-- backquote ` -->
+			<item>abort</item>
+			<item>at_exit</item>
+			<item>autoload</item>
+			<item>autoload?</item>
+			<item>binding</item>
+			<item>block_given?</item>
+			<item>callcc</item>
+			<item>caller</item>
+			<item>catch</item>
+			<item>chomp</item>
+			<item>chomp!</item>
+			<item>chop</item>
+			<item>chop!</item>
+			<item>eval</item>
+			<item>exec</item>
+			<item>exit</item>
+			<item>exit!</item>
+			<item>fail</item>
+			<item>fork</item>
+			<item>format</item>
+			<item>getc</item>
+			<item>gets</item>
+			<item>global_variables</item>
+			<item>gsub</item>
+			<item>gsub!</item>
+			<item>iterator?</item>
+			<item>lambda</item>
+			<item>load</item>
+			<item>local_variables</item>
+			<item>loop</item>
+			<item>method_missing</item>
+			<item>open</item>
+			<item>p</item>
+			<item>print</item>
+			<item>printf</item>
+			<item>proc</item>
+			<item>putc</item>
+			<item>puts</item>
+			<item>raise</item>
+			<item>rand</item>
+			<item>readline</item>
+			<item>readlines</item>
+			<item>require</item>
+			<item>require_relative</item>
+			<item>scan</item>
+			<item>select</item>
+			<item>set_trace_func</item>
+			<item>sleep</item>
+			<item>split</item>
+			<item>sprintf</item>
+			<item>srand</item>
+			<item>sub</item>
+			<item>sub!</item>
+			<item>syscall</item>
+			<item>system</item>
+			<item>test</item>
+			<item>throw</item>
+			<item>trace_var</item>
+			<item>trap</item>
+			<item>untrace_var</item>
+			<item>warn</item>
+		</list>
+
+		<list name="mixin-methods">
+			<item>extend</item>
+			<item>include</item>
+		</list>
+
+		<contexts>
+			<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+				<!-- crystal ignores newline after \ -->
+				<LineContinue attribute="Normal Text" context="Line Continue"/>
+
+				<!-- "shebang" line -->
+				<!-- TODO: this may be required once crystal interpreter is ready -->
+				<!--<RegExpr attribute="Keyword" String="^#!\/.*" context="#stay" column="0"/>-->
+
+				<!-- "def" - "end" blocks -->
+				<!-- check for statement modifiers with regexes -->
+				<Detect2Chars attribute="Operator" char="{" char1="%" context="Find closing macro brace" beginRegion="def block"/>
+				<DetectChar attribute="Operator" char="{" context="Find closing block brace" beginRegion="def block"/>
+				<!-- TODO: why is this needed as a Delimiter? -->
+				<DetectChar attribute="Delimiter" char="}" context="check_div_1" endRegion="def block"/>
+				<RegExpr attribute="Keyword" String="[=([]\s*(if|unless|while|until)\b|(while|until)\b(?!.*\bdo\b)|\;\s*(while|until)\b(?!.*\bdo\b)|\;\s*(if|unless)\b" context="#stay" beginRegion="def block"/>
+				<RegExpr attribute="Keyword" String="(if|unless)\b" context="#stay" beginRegion="def block" firstNonSpace="true"/>
+				<WordDetect attribute="Keyword" String="class" context="no_heredoc" beginRegion="def block"/>
+				<WordDetect attribute="Keyword" String="struct" context="no_heredoc" beginRegion="def block"/>
+				<WordDetect attribute="Keyword" String="module" context="#stay" beginRegion="def block"/>
+				<WordDetect attribute="Keyword" String="begin" context="#stay" beginRegion="def block"/>
+				<WordDetect attribute="Keyword" String="case" context="#stay" beginRegion="def block"/>
+				<WordDetect attribute="Keyword" String="do" context="#stay" beginRegion="def block"/>
+				<WordDetect attribute="Keyword" String="macro" context="#stay" beginRegion="def block"/>
+				<WordDetect attribute="Keyword" String="def" context="Overloaded Operators" beginRegion="def block"/>
+				<WordDetect attribute="Keyword" String="end" context="#stay" endRegion="def block"/>
+				<!-- elsif/else close the current block and start a new one -->
+				<RegExpr attribute="Keyword" String="\b(else|elsif|rescue|ensure)\b" context="#stay" endRegion="def block" beginRegion="def block"/>
+
+				<StringDetect attribute="Operator" String="..." context="#stay"/>
+				<Detect2Chars attribute="Operator" char="." char1="." context="#stay"/>
+
+				<!-- marks a message being sent, not defined -->
+				<RegExpr attribute="Message" String="\.[_a-z][_a-zA-Z0-9]*(\?|\!|\b)" context="check_div_2"/>
+
+				<keyword attribute="Keyword" String="keywords" context="#stay"/>
+				<keyword attribute="Attribute Definition" String="attribute-definitions"  context="check_div_2"/>
+				<keyword attribute="Access Control" String="access-control" context="check_div_2"/>
+				<keyword attribute="Definition" String="definitions"  context="#stay" />
+				<keyword attribute="Pseudo variable" String="pseudo-variables"  context="check_div_1"/>
+				<keyword attribute="Kernel methods" String="kernel-methods" context="check_div_2"/>
+				<keyword attribute="Module mixin methods" String="mixin-methods" context="check_div_2"/>
+
+				<!-- TODO: write a rule for $~ and $? -->
+				<RegExpr attribute="Global Constant" String="\b[_A-Z]+[A-Z_0-9]+\b" context="check_div_2"/>
+				<!-- Generally a module or class name like "File", "MyModule_1", .. -->
+				<RegExpr attribute="Constant" String="\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\b" context="check_div_2"/>
+
+				<!-- Numeric values. Note that we have to allow underscores between two digits (thus the creepy regular expressions). -->
+				<!-- TODO: add support for Crystal number literals -->
+				<RegExpr attribute="Hex" String="\b\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+" context="check_div_1"/>
+				<RegExpr attribute="Bin" String="\b\-?0[bB]([01]|_[01])+" context="check_div_1"/>
+				<RegExpr attribute="Octal" String="\b\-?0[1-7]([0-7]|_[0-7])*" context="check_div_1"/>
+				<RegExpr attribute="Float" String="\b\-?[0-9]([0-9]|_[0-9])*\.[0-9]([0-9]|_[0-9])*([eE]\-?[1-9]([0-9]|_[0-9])*(\.[0-9]*)?)?" context="check_div_1"/>
+				<RegExpr attribute="Dec" String="\b\-?[1-9]([0-9]|_[0-9])*\b" context="check_div_1"/>
+				<Int attribute="Dec" context="check_div_1"/>
+				<!-- TODO: what is this? remove if this is not required. -->
+				<HlCChar attribute="Char" context="check_div_1"/>
+
+				<!-- recognize the beginning of a HEREDOC
+					This uses new features in Kate 2.3 and later
+
+					There is no other chance of keeping heredoc apart from the
+					push operator '<<' than requiring to put space between the operator
+					and the string.
+				-->
+				<RegExpr attribute="Operator" context="find_indented_heredoc" String="\s*&lt;&lt;[-~](?=\w+|[&quot;'`])" beginRegion="HereDocument" />
+				<RegExpr attribute="Operator" context="find_heredoc" String="\s*&lt;&lt;(?=\w+|[&quot;'`])" beginRegion="HereDocument" />
+
+				<DetectChar attribute="Operator" char="." context="#stay"/>
+				<Detect2Chars attribute="Operator" char="&amp;" char1="&amp;" context="#stay"/>
+				<Detect2Chars attribute="Operator" char="|" char1="|" context="#stay"/>
+				<!-- \s! is regexp hack -->
+				<RegExpr attribute="Operator" String="\s[\?\:\%]\s|[|&amp;&lt;&gt;\^\+*~\-=]+|\s!|/=\s" context="#stay"/>
+				<Detect2Chars attribute="Operator" char="%" char1="=" context="#stay"/>
+				<Detect2Chars attribute="Operator" char=":" char1=":" context="Member Access"/>
+
+				<RegExpr attribute="Symbol" String=":(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?|:\[\]=?" context="check_div_1"/>
+
+				<!-- Do not send to "check_div_1" context!:
+				     after detecting these rules (": ") there can be a regular expression (see bug: #361875) -->
+				<RegExpr attribute="Symbol" String="(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?: |\[\]=?: " context="#stay"/>
+
+				<DetectChar attribute="String" char="&quot;" context="Quoted String"/>
+				<!-- TODO: There are no single-quoted strings in Crystal. Only single-quoted characters. Modify accordingly. -->
+				<DetectChar attribute="Raw String" char="'" context="Apostrophed String"/>
+				<DetectChar attribute="Command" char="`" context="Command String"/>
+
+				<!-- TODO: Remove this if not needed -->
+				<Detect2Chars attribute="Normal Text" char="?" char1="#" context="#stay"/>
+
+				<DetectChar attribute="Comment" char="#" context="General Comment"/>
+
+				<DetectChar attribute="Delimiter" char="["  context="#stay"/>
+				<DetectChar attribute="Delimiter" char="]"  context="check_div_1"/>
+
+				<RegExpr attribute="Instance Variable" String="@[a-zA-Z_0-9]+" context="check_div_1"/>
+				<RegExpr attribute="Class Variable" String="@@[a-zA-Z_0-9]+" context="check_div_1"/>
+
+				<!-- handle the different regular expression formats -->
+				<DetectChar attribute="Regular Expression" char="/" context="RegEx 1"/>
+
+				<!-- recognize the beginning of a general delimited input format -->
+				<!-- this moves to the next context to separate out the exact nature of the GDL input -->
+				<RegExpr attribute="GDL input" context="find_gdl_input" String="\s*[%](?=[QqxwW]?[^\s}])" beginRegion="GdlInput" />
+
+				<DetectChar attribute="Normal Text" char=")" context="check_div_1"/>
+				<DetectIdentifier attribute="Normal Text" context="check_div_2"/>
+
+			</context>
+
+			<context name="Macro" attribute="Normal Text" lineEndContext="#stay">
+				<!-- TODO: copied Macro context from Normal context. repititions can be removed. pls refactor by including rules. -->
+				<!-- crystal ignores newline after \ -->
+				<LineContinue attribute="Normal Text" context="Line Continue"/>
+
+				<!-- "def" - "end" blocks -->
+				<!-- check for statement modifiers with regexes -->
+				<DetectChar attribute="Operator" char="{" context="Find closing block brace" beginRegion="def block"/>
+				<DetectChar attribute="Delimiter" char="}" context="check_div_1" endRegion="def block"/>
+				<RegExpr attribute="Keyword" String="[=([]\s*(if|unless|while|until)\b|(while|until)\b(?!.*\bdo\b)|\;\s*(while|until)\b(?!.*\bdo\b)|\;\s*(if|unless)\b" context="#stay" beginRegion="def block"/>
+				<RegExpr attribute="Keyword" String="(if|unless)\b" context="#stay" beginRegion="def block" firstNonSpace="true"/>
+				<WordDetect attribute="Keyword" String="begin" context="#stay" beginRegion="def block"/>
+				<RegExpr attribute="Keyword" String="\bfor\b(?!.*\bdo\b)" context="#stay" beginRegion="def block"/>
+				<WordDetect attribute="Keyword" String="do" context="#stay" beginRegion="def block"/>
+				<WordDetect attribute="Keyword" String="def" context="Overloaded Operators" beginRegion="def block"/>
+				<WordDetect attribute="Keyword" String="end" context="#stay" endRegion="def block"/>
+				<!-- elsif/else close the current block and start a new one -->
+				<RegExpr attribute="Keyword" String="\b(else|elsif|rescue|ensure)\b" context="#stay" endRegion="def block" beginRegion="def block"/>
+
+				<StringDetect attribute="Operator" String="..." context="#stay"/>
+				<Detect2Chars attribute="Operator" char="." char1="." context="#stay"/>
+
+				<!-- marks a message (being sent, not defined) -->
+				<RegExpr attribute="Message" String="\.[_a-z][_a-zA-Z0-9]*(\?|\!|\b)" context="check_div_2"/>
+
+				<keyword attribute="Keyword" String="keywords" context="#stay"/>
+				<keyword attribute="Attribute Definition" String="attribute-definitions"  context="check_div_2"/>
+				<keyword attribute="Definition" String="definitions"  context="#stay" />
+				<keyword attribute="Pseudo variable" String="pseudo-variables"  context="check_div_1"/>
+
+				<RegExpr attribute="Global Constant" String="\b[_A-Z]+[A-Z_0-9]+\b" context="check_div_2"/>
+				<!-- Generally a module or class name like "File", "MyModule_1", .. -->
+				<RegExpr attribute="Constant" String="\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\b" context="check_div_2"/>
+
+				<!-- Numeric values. Note that we have to allow underscores between two digits (thus the creepy regular expressions). -->
+				<RegExpr attribute="Hex" String="\b\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+" context="check_div_1"/>
+				<RegExpr attribute="Bin" String="\b\-?0[bB]([01]|_[01])+" context="check_div_1"/>
+				<RegExpr attribute="Octal" String="\b\-?0[1-7]([0-7]|_[0-7])*" context="check_div_1"/>
+				<RegExpr attribute="Float" String="\b\-?[0-9]([0-9]|_[0-9])*\.[0-9]([0-9]|_[0-9])*([eE]\-?[1-9]([0-9]|_[0-9])*(\.[0-9]*)?)?" context="check_div_1"/>
+				<RegExpr attribute="Dec" String="\b\-?[1-9]([0-9]|_[0-9])*\b" context="check_div_1"/>
+				<Int attribute="Dec" context="check_div_1"/>
+				<HlCChar attribute="Char" context="check_div_1"/>
+
+				<!-- recognize the beginning of a HEREDOC
+					This uses new features in Kate 2.3 and later
+
+					There is no other chance of keeping heredoc apart from the
+					push operator '<<' than requiring to put space between the operator
+					and the string.
+				-->
+				<RegExpr attribute="Operator" context="find_indented_heredoc" String="\s*&lt;&lt;[-~](?=\w+|[&quot;'`])" beginRegion="HereDocument" />
+				<RegExpr attribute="Operator" context="find_heredoc" String="\s*&lt;&lt;(?=\w+|[&quot;'`])" beginRegion="HereDocument" />
+
+				<DetectChar attribute="Operator" char="." context="#stay"/>
+				<Detect2Chars attribute="Operator" char="&amp;" char1="&amp;" context="#stay"/>
+				<Detect2Chars attribute="Operator" char="|" char1="|" context="#stay"/>
+				<!-- \s! is regexp hack -->
+				<RegExpr attribute="Operator" String="\s[\?\:\%]\s|[|&amp;&lt;&gt;\^\+*~\-=]+|\s!|/=\s" context="#stay"/>
+				<Detect2Chars attribute="Operator" char="%" char1="=" context="#stay"/>
+				<Detect2Chars attribute="Operator" char=":" char1=":" context="Member Access"/>
+
+				<RegExpr attribute="Symbol" String=":(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?|:\[\]=?" context="check_div_1"/>
+
+				<!-- Do not send to "check_div_1" context!:
+				     after detecting these rules (": ") there can be a regular expression (see bug: #361875) -->
+				<RegExpr attribute="Symbol" String="(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?: |\[\]=?: " context="#stay"/>
+
+				<DetectChar attribute="String" char="&quot;" context="Quoted String"/>
+				<!-- TODO: There are no single-quoted strings in Crystal. Only single-quoted characters. Modify accordingly. -->
+				<DetectChar attribute="Raw String" char="'" context="Apostrophed String"/>
+				<DetectChar attribute="Command" char="`" context="Command String"/>
+
+				<!-- TODO: Remove this if not needed -->
+				<Detect2Chars attribute="Normal Text" char="?" char1="#" context="#stay"/>
+
+				<DetectChar attribute="Comment" char="#" context="General Comment"/>
+
+				<DetectChar attribute="Delimiter" char="["  context="#stay"/>
+				<DetectChar attribute="Delimiter" char="]"  context="check_div_1"/>
+
+				<!-- handle the different regular expression formats -->
+				<DetectChar attribute="Regular Expression" char="/" context="RegEx 1"/>
+
+				<!-- recognize the beginning of a general delimited input format -->
+				<!-- this moves to the next context to separate out the exact nature of the GDL input -->
+				<RegExpr attribute="GDL input" context="find_gdl_input" String="\s*[%](?=[QqxwW]?[^\s}])" beginRegion="GdlInput" />
+
+				<DetectChar attribute="Normal Text" char=")" context="check_div_1"/>
+				<DetectIdentifier attribute="Normal Text" context="check_div_2"/>
+			</context>
+
+			<context name="Overloaded Operators" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop">
+				<DetectSpaces attribute="Normal Text" context="#stay"/>
+				<DetectChar attribute="Normal Text" char="/" context="#pop"/>
+			</context>
+
+			<!-- In the following contexts, a slash character ('/') is a division operator -->
+			<!-- Everywhere else, it's a regular expression delimiter -->
+
+			<!-- A slash is always a division operator, even if preceeded by whitespace -->
+			<context name="check_div_1" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop">
+				<Detect2Chars attribute="Operator" char="/" char1="/" context="#pop"/>
+				<DetectSpaces attribute="Normal Text" context="#stay"/>
+				<Detect2Chars attribute="Operator" char="%" char1="}" context="#pop#pop"/>
+				<AnyChar attribute="Operator" String="/%" context="#pop"/>
+			</context>
+
+			<!-- Same as check_div_1, but with double pop to exit the surrounding context -->
+			<context name="check_div_1_pop" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">
+				<Detect2Chars attribute="Operator" char="/" char1="/" context="#pop#pop"/>
+				<DetectSpaces attribute="Normal Text" context="#stay"/>
+				<Detect2Chars attribute="Operator" char="%" char1="}" context="#pop#pop#pop#pop"/>
+				<AnyChar attribute="Operator" String="/%" context="#pop#pop"/>
+			</context>
+
+			<!-- A slash is division operator if it's the first character, or if preceeded and followed by whitespace -->
+			<context name="check_div_2" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop">
+				<Detect2Chars attribute="Operator" char="/" char1="/" context="#pop"/>
+				<AnyChar attribute="Operator" String="/%" context="#pop"/>
+				<DetectSpaces attribute="Normal Text" context="check_div_2_internal"/>
+			</context>
+
+			<!-- Internal context used by check_div_2 -->
+			<context name="check_div_2_internal" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">
+				<RegExpr attribute="Operator" String="(//|[/%])(?=\s)" context="#pop#pop"/>
+			</context>
+
+			<!-- Same as check_div_2, but with double pop to exit the surrounding context -->
+			<context name="check_div_2_pop" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">
+				<Detect2Chars attribute="Operator" char="/" char1="/" context="#pop#pop"/>
+				<AnyChar attribute="Operator" String="/%" context="#pop#pop"/>
+				<DetectSpaces attribute="Normal Text" context="check_div_2_pop_internal"/>
+			</context>
+
+			<!-- Internal context used by check_div_2_pop -->
+			<context name="check_div_2_pop_internal" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop#pop" lineEndContext="#pop#pop#pop">
+				<RegExpr attribute="Operator" String="//(?=\s)" context="#pop#pop#pop"/>
+				<DetectChar attribute="Operator" char="%" context="#pop#pop#pop"/>
+				<RegExpr attribute="Operator" String="/(?=\s)" context="#pop#pop#pop"/>
+			</context>
+
+			<context name="Line Continue" attribute="Normal Text" lineEndContext="#pop">
+				<RegExpr attribute="Keyword" String="(while|until)\b(?!.*\bdo\b)|(if|unless)\b" context="#stay" firstNonSpace="true"/>
+				<IncludeRules context="Normal"/>
+			</context>
+
+			<context name="Find closing macro brace" attribute="Normal Text" lineEndContext="#stay">
+				<Detect2Chars attribute="Operator" char="%" char1="}" context="check_div_1_pop" endRegion="def block"/>
+				<IncludeRules context="Macro"/>
+			</context>
+
+			<context name="Find closing block brace" attribute="Normal Text" lineEndContext="#stay">
+				<DetectChar attribute="Operator" char="}" context="check_div_1_pop" endRegion="def block"/>
+				<IncludeRules context="Normal"/>
+			</context>
+
+			<context name="Quoted String" attribute="String" lineEndContext="#stay">
+				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>
+				<Detect2Chars attribute="String" char="\" char1="&quot;" context="#stay"/>
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+				<DetectChar char="&quot;" attribute="String" context="check_div_1_pop"/>
+			</context>
+
+			<context name="Apostrophed String" attribute="Raw String" lineEndContext="#stay">
+				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>
+				<Detect2Chars attribute="String" char="\" char1="'" context="#stay"/>
+				<DetectChar char="'" attribute="Raw String" context="check_div_1_pop"/>
+			</context>
+
+			<context name="Command String" attribute="Command" lineEndContext="#stay">
+				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>
+				<Detect2Chars attribute="String" char="\" char1="`" context="#stay"/>
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+				<DetectChar char="`" attribute="Command" context="check_div_1_pop"/>
+			</context>
+
+			<context name="RegEx 1" attribute="Regular Expression" lineEndContext="#stay">
+				<Detect2Chars attribute="Regular Expression" char="\" char1="/" context="#stay"/>
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+				<RegExpr attribute="Regular Expression" String="/[uiomxn]*" context="check_div_1_pop"/>
+			</context>
+
+			<!-- Substitutions can be nested -->
+			<context name="Subst" attribute="Normal Text" lineEndContext="#stay">
+				<DetectChar attribute="Substitution" char="}" context="#pop"/>
+				<!-- Highlight substitution as code. -->
+				<IncludeRules context="Normal"/>
+			</context>
+
+			<context name="Short Subst" attribute="Substitution" lineEndContext="#pop">
+				<!-- Check for e.g.: "#@var#@@xy" -->
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="#stay"/>
+				<RegExpr attribute="Substitution" String="\w(?!\w)" context="#pop"/>
+			</context>
+
+			<!-- This handles access of nested module classes and class methods -->
+			<context name="Member Access" attribute="Member" lineEndContext="#pop">
+				<!-- marks a message (being sent, not defined) -->
+				<RegExpr attribute="Message" String="\.?[_a-z]\w*(\?|\!)?(?=[^\w\d\.\:])" context="check_div_2_pop"/>
+				<RegExpr attribute="Message" String="\.?[_a-z]\w*(\?|\!)?" context="#stay"/>
+				<RegExpr attribute="Constant" String="[A-Z]+_*(\d|[a-z])\w*(?=[^\w\d\.\:])" context="check_div_2_pop"/>
+				<RegExpr attribute="Constant" String="[A-Z]+_*([0-9]|[a-z])\w*" context="#stay"/>
+				<RegExpr attribute="Constant Value" String="[_A-Z][_A-Z0-9]*(?=[^\w\d\.\:])" context="check_div_2_pop"/>
+				<RegExpr attribute="Constant Value" String="[_A-Z][_A-Z0-9]*" context="#stay"/>
+				<Detect2Chars attribute="Operator" char=":" char1=":" context="#stay"/>
+				<DetectChar attribute="Member" char="." context="#stay"/>
+
+				<AnyChar attribute="Operator" String="=+-*/%|&amp;[]{}~" context="#pop"/>
+				<DetectChar attribute="Comment" char="#" context="#pop"/>
+				<AnyChar attribute="Normal Text" String="()\" context="#pop"/>
+				<RegExpr attribute="Member" String="\W" context="#pop"/>
+			</context>
+
+			<context name="General Comment" attribute="Comment" lineEndContext="#pop">
+				<DetectSpaces />
+				<IncludeRules context="##Comments" />
+			</context>
+
+			<!-- HEREDOC support
+				The contexts below support both normal and indented heredocs
+			 -->
+			<!-- here we markup the heredoc markers -->
+			<context name="find_heredoc" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+				<RegExpr attribute="Keyword" context="apostrophed_normal_heredoc" String="'(\w+)'" />
+				<RegExpr attribute="Keyword" context="normal_heredoc" String="(?|(\w+)|&quot;(\w+)&quot;|`(\w+)`)" />
+			</context>
+			<context name="find_indented_heredoc" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+				<RegExpr attribute="Keyword" context="apostrophed_indented_heredoc" String="'(\w+)'" />
+				<RegExpr attribute="Keyword" context="indented_heredoc" String="(?|(\w+)|&quot;(\w+)&quot;|`(\w+)`)" />
+			</context>
+			<!-- these are the real heredoc contexts -->
+			<context name="indented_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">
+				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true"/>
+				<IncludeRules context="heredoc_rules" />
+			</context>
+			<context name="apostrophed_indented_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">
+				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true"/>
+			</context>
+
+			<context name="normal_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">
+				<RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument" column="0"/>
+				<IncludeRules context="heredoc_rules" />
+			</context>
+			<context name="apostrophed_normal_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">
+				<RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument" column="0"/>
+			</context>
+
+			<!-- rules for heredoc types -->
+			<context name="heredoc_rules" attribute="Normal Text" lineEndContext="#stay">
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+			</context>
+
+			<!-- avoid highlighting heredoc markers, for example, in singleton class definition (see bug: #358273) -->
+			<context name="no_heredoc" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
+				<DetectSpaces />
+				<Detect2Chars attribute="Operator" char="&lt;" char1="&lt;" context="#pop"/>
+				<!-- comments -->
+				<RegExpr attribute="Comment" String="^#\s*BEGIN.*$"  context="#stay" beginRegion="marker" column="0"/>
+				<RegExpr attribute="Comment" String="^#\s*END.*$"  context="#stay" endRegion="marker" column="0"/>
+				<DetectChar attribute="Comment" char="#" context="General Comment"/>
+			</context>
+
+			<!-- General delimited input support
+				The contexts below handle the various gdl formats
+			 -->
+			<context name="find_gdl_input" attribute="Normal Text" lineEndContext="#pop">
+
+				<!-- handle token arrays -->
+				<Detect2Chars attribute="GDL input" context="gdl_token_array_1" char="w" char1="(" />
+				<Detect2Chars attribute="GDL input" context="gdl_token_array_2" char="w" char1="{" />
+				<Detect2Chars attribute="GDL input" context="gdl_token_array_3" char="w" char1="[" />
+				<Detect2Chars attribute="GDL input" context="gdl_token_array_4" char="w" char1="&lt;" />
+				<!-- then we handle the 'any char' format -->
+				<RegExpr attribute="GDL input" context="gdl_token_array_5" String="w([^\s\w])" />
+
+				<!-- handle token arrays -->
+				<Detect2Chars attribute="GDL input" context="gdl_token_array_1" char="W" char1="(" />
+				<Detect2Chars attribute="GDL input" context="gdl_token_array_2" char="W" char1="{" />
+				<Detect2Chars attribute="GDL input" context="gdl_token_array_3" char="W" char1="[" />
+				<Detect2Chars attribute="GDL input" context="gdl_token_array_4" char="W" char1="&lt;" />
+				<!-- then we handle the 'any char' format -->
+				<RegExpr attribute="GDL input" context="gdl_token_array_5" String="W([^\s\w])" />
+
+				<!-- handle apostrophed strings -->
+				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_1" char="q" char1="(" />
+				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_2" char="q" char1="{" />
+				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_3" char="q" char1="[" />
+				<Detect2Chars attribute="GDL input" context="gdl_apostrophed_4" char="q" char1="&lt;" />
+				<!-- then we handle the 'any char' format -->
+				<RegExpr attribute="GDL input" context="gdl_apostrophed_5" String="q([^\s\w])" />
+
+				<!-- handle shell commands -->
+				<Detect2Chars attribute="GDL input" context="gdl_shell_command_1" char="x" char1="(" />
+				<Detect2Chars attribute="GDL input" context="gdl_shell_command_2" char="x" char1="{" />
+				<Detect2Chars attribute="GDL input" context="gdl_shell_command_3" char="x" char1="[" />
+				<Detect2Chars attribute="GDL input" context="gdl_shell_command_4" char="x" char1="&lt;" />
+				<!-- then we handle the 'any char' format -->
+				<RegExpr attribute="GDL input" context="gdl_shell_command_5" String="x([^\s\w])" />
+
+				<!-- handle regular expressions -->
+				<Detect2Chars attribute="GDL input" context="gdl_regexpr_1" char="r" char1="(" />
+				<Detect2Chars attribute="GDL input" context="gdl_regexpr_2" char="r" char1="{" />
+				<Detect2Chars attribute="GDL input" context="gdl_regexpr_3" char="r" char1="[" />
+				<Detect2Chars attribute="GDL input" context="gdl_regexpr_4" char="r" char1="&lt;" />
+				<!-- then we handle the 'any char' format -->
+				<RegExpr attribute="GDL input" context="gdl_regexpr_5" String="r([^\s\w])" />
+
+				<!-- handle double-quoted strings -->
+				<!--
+					  be careful to make this the last GDL ruleset, because the rule for
+					  the short form %?foo? will otherwise catch any of the other formats
+				-->
+				<Detect2Chars attribute="GDL input" context="gdl_dq_string_1" char="Q" char1="(" />
+				<Detect2Chars attribute="GDL input" context="gdl_dq_string_2" char="Q" char1="{" />
+				<Detect2Chars attribute="GDL input" context="gdl_dq_string_3" char="Q" char1="[" />
+				<Detect2Chars attribute="GDL input" context="gdl_dq_string_4" char="Q" char1="&lt;" />
+				<DetectChar attribute="GDL input" context="gdl_dq_string_1" char="(" />
+				<DetectChar attribute="GDL input" context="gdl_dq_string_2" char="{" />
+				<DetectChar attribute="GDL input" context="gdl_dq_string_3" char="[" />
+				<DetectChar attribute="GDL input" context="gdl_dq_string_4" char="&lt;" />
+				<!-- then we handle the 'any char' format -->
+				<RegExpr attribute="GDL input" context="gdl_dq_string_5" String="Q?([^\s\w])" />
+
+			</context>
+			<!-- double-quoted string specific contexts follow -->
+			<context name="gdl_dq_string_1" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="dq_string_rules" />
+				<Detect2Chars attribute="String" char="\" char1=")" context="#stay"/>
+				<DetectChar attribute="String" context="gdl_dq_string_1_nested" char="(" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_dq_string_1_nested" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="dq_string_rules" />
+				<DetectChar attribute="String" context="gdl_dq_string_1_nested" char="(" />
+				<DetectChar attribute="String" context="#pop" char=")" />
+			</context>
+			<!-- note that here substitution should win over nesting -->
+			<context name="gdl_dq_string_2" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="dq_string_rules" />
+				<Detect2Chars attribute="String" char="\" char1="}" context="#stay"/>
+				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
+				<DetectChar attribute="String" context="gdl_dq_string_2_nested" char="{" />
+			</context>
+			<context name="gdl_dq_string_2_nested" attribute="String" lineEndContext="#stay" >
+				<DetectChar attribute="String" context="gdl_dq_string_2_nested" char="{" />
+				<DetectChar attribute="String" context="#pop" char="}" />
+				<IncludeRules context="dq_string_rules" />
+			</context>
+
+			<context name="gdl_dq_string_3" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="dq_string_rules" />
+				<Detect2Chars attribute="String" char="\" char1="]" context="#stay"/>
+				<DetectChar attribute="String" context="gdl_dq_string_3_nested" char="[" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_dq_string_3_nested" attribute="String" lineEndContext="#stay" >
+				<DetectChar attribute="String" context="gdl_dq_string_3_nested" char="[" />
+				<DetectChar attribute="String" context="#pop" char="]" />
+				<IncludeRules context="dq_string_rules" />
+			</context>
+
+			<context name="gdl_dq_string_4" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="dq_string_rules" />
+				<Detect2Chars attribute="String" char="\" char1="&gt;" context="#stay"/>
+				<DetectChar attribute="String" context="gdl_dq_string_4_nested" char="&lt;" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_dq_string_4_nested" attribute="String" lineEndContext="#stay" >
+				<DetectChar attribute="String" context="gdl_dq_string_4_nested" char="&lt;" />
+				<DetectChar attribute="String" context="#pop" char="&gt;" />
+				<IncludeRules context="dq_string_rules" />
+			</context>
+
+			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
+				delimiter character
+			 -->
+			<context name="gdl_dq_string_5" attribute="String" lineEndContext="#stay" dynamic="true">
+				<IncludeRules context="dq_string_rules" />
+				<StringDetect attribute="String" String="\%1" context="#stay" dynamic="true" />
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
+			</context>
+			<!-- rules to be included in all dq_string contexts -->
+			<context name="dq_string_rules" attribute="String" lineEndContext="#stay" >
+				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+			</context>
+
+			<!-- token array specific contexts -->
+
+			<context name="gdl_token_array_1" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<Detect2Chars attribute="String" char="\" char1=")" context="#stay"/>
+				<DetectChar attribute="String" context="gdl_token_array_1_nested" char="(" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_token_array_1_nested" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<DetectChar attribute="String" context="gdl_token_array_1_nested" char="(" />
+				<DetectChar attribute="String" context="#pop" char=")" />
+			</context>
+
+			<context name="gdl_token_array_2" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<Detect2Chars attribute="String" char="\" char1="}" context="#stay"/>
+				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
+				<DetectChar attribute="String" context="gdl_token_array_2_nested" char="{" />
+			</context>
+			<context name="gdl_token_array_2_nested" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<DetectChar attribute="String" context="gdl_token_array_2_nested" char="{" />
+				<DetectChar attribute="String" context="#pop" char="}" />
+			</context>
+
+			<context name="gdl_token_array_3" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<Detect2Chars attribute="String" char="\" char1="]" context="#stay"/>
+				<DetectChar attribute="String" context="gdl_token_array_3_nested" char="[" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_token_array_3_nested" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<DetectChar attribute="String" context="gdl_token_array_3_nested" char="[" />
+				<DetectChar attribute="String" context="#pop" char="]" />
+			</context>
+
+			<context name="gdl_token_array_4" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<Detect2Chars attribute="String" char="\" char1="&gt;" context="#stay"/>
+				<DetectChar attribute="String" context="gdl_token_array_4_nested" char="&lt;" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_token_array_4_nested" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<DetectChar attribute="String" context="gdl_token_array_4_nested" char="&lt;" />
+				<DetectChar attribute="String" context="#pop" char="&gt;" />
+			</context>
+
+			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
+				delimiter character
+			 -->
+			<context name="gdl_token_array_5" attribute="String" lineEndContext="#stay" dynamic="true">
+				<IncludeRules context="token_array_rules" />
+				<StringDetect attribute="String" String="\%1" context="#stay" dynamic="true"/>
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
+			</context>
+
+			<!-- rules to be included in all token_array contexts -->
+			<context name="token_array_rules" attribute="String" lineEndContext="#stay" >
+				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>
+			</context>
+
+			<!-- apostrophed string specific contexts -->
+
+			<context name="gdl_apostrophed_1" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<Detect2Chars attribute="Raw String" char="\" char1=")" context="#stay"/>
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_1_nested" char="(" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_apostrophed_1_nested" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_1_nested" char="(" />
+				<DetectChar attribute="Raw String" context="#pop" char=")" />
+			</context>
+
+			<context name="gdl_apostrophed_2" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<Detect2Chars attribute="Raw String" char="\" char1="}" context="#stay"/>
+				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_2_nested" char="{" />
+			</context>
+			<context name="gdl_apostrophed_2_nested" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_2_nested" char="{" />
+				<DetectChar attribute="Raw String" context="#pop" char="}" />
+			</context>
+
+			<context name="gdl_apostrophed_3" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<Detect2Chars attribute="Raw String" char="\" char1="]" context="#stay"/>
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_3_nested" char="[" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_apostrophed_3_nested" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_3_nested" char="[" />
+				<DetectChar attribute="Raw String" context="#pop" char="]" />
+			</context>
+
+			<context name="gdl_apostrophed_4" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<Detect2Chars attribute="Raw String" char="\" char1="&gt;" context="#stay"/>
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_4_nested" char="&lt;" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_apostrophed_4_nested" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_4_nested" char="&lt;" />
+				<DetectChar attribute="Raw String" context="#pop" char="&gt;" />
+			</context>
+
+			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
+				delimiter character
+			 -->
+			<context name="gdl_apostrophed_5" attribute="Raw String" lineEndContext="#stay" dynamic="true">
+				<IncludeRules context="apostrophed_rules" />
+				<StringDetect attribute="Raw String" String="\%1" context="#stay" dynamic="true"/>
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
+			</context>
+
+			<!-- rules to be included in all apostrophed contexts -->
+			<context name="apostrophed_rules" attribute="Raw String" lineEndContext="#stay" >
+				<Detect2Chars attribute="Raw String" char="\" char1="\" context="#stay"/>
+			</context>
+
+			<!-- shell command specific contexts -->
+
+			<context name="gdl_shell_command_1" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<Detect2Chars attribute="Command" char="\" char1=")" context="#stay"/>
+				<DetectChar attribute="Command" context="gdl_shell_command_1_nested" char="(" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_shell_command_1_nested" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<DetectChar attribute="Command" context="gdl_shell_command_1_nested" char="(" />
+				<DetectChar attribute="Command" context="#pop" char=")" />
+			</context>
+
+			<context name="gdl_shell_command_2" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<Detect2Chars attribute="Command" char="\" char1="}" context="#stay"/>
+				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
+				<DetectChar attribute="Command" context="gdl_shell_command_2_nested" char="{" />
+			</context>
+			<context name="gdl_shell_command_2_nested" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<DetectChar attribute="Command" context="gdl_shell_command_2_nested" char="{" />
+				<DetectChar attribute="Command" context="#pop" char="}" />
+			</context>
+
+			<context name="gdl_shell_command_3" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<Detect2Chars attribute="Command" char="\" char1="]" context="#stay"/>
+				<DetectChar attribute="Command" context="gdl_shell_command_3_nested" char="[" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_shell_command_3_nested" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<DetectChar attribute="Command" context="gdl_shell_command_3_nested" char="[" />
+				<DetectChar attribute="Command" context="#pop" char="]" />
+			</context>
+
+			<context name="gdl_shell_command_4" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<Detect2Chars attribute="Command" char="\" char1="&gt;" context="#stay"/>
+				<DetectChar attribute="Command" context="gdl_shell_command_4_nested" char="&lt;" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_shell_command_4_nested" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<DetectChar attribute="Command" context="gdl_shell_command_4_nested" char="&lt;" />
+				<DetectChar attribute="Command" context="#pop" char="&gt;" />
+			</context>
+
+			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
+				delimiter character
+			 -->
+			<context name="gdl_shell_command_5" attribute="Command" lineEndContext="#stay" dynamic="true">
+				<IncludeRules context="shell_command_rules" />
+				<StringDetect attribute="Command" String="\%1" context="#stay" dynamic="true" />
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
+			</context>
+
+			<!-- rules to be included in all shell_command contexts -->
+			<context name="shell_command_rules" attribute="Command" lineEndContext="#stay" >
+				<Detect2Chars attribute="Command" char="\" char1="\" context="#stay"/>
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+			</context>
+
+			<!-- regular expression specific contexts -->
+
+			<context name="gdl_regexpr_1" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<Detect2Chars attribute="Regular Expression" char="\" char1=")" context="#stay"/>
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_1_nested" char="(" />
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\)[uiomxn]*" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_regexpr_1_nested" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_1_nested" char="(" />
+				<DetectChar attribute="Regular Expression" context="#pop" char=")" />
+			</context>
+
+			<context name="gdl_regexpr_2" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<Detect2Chars attribute="Regular Expression" char="\" char1="}" context="#stay"/>
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\}[uiomxn]*" endRegion="GdlInput" />
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_2_nested" char="{" />
+			</context>
+			<context name="gdl_regexpr_2_nested" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_2_nested" char="{" />
+				<DetectChar attribute="Regular Expression" context="#pop" char="}" />
+			</context>
+
+			<context name="gdl_regexpr_3" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<Detect2Chars attribute="Regular Expression" char="\" char1="]" context="#stay"/>
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_3_nested" char="[" />
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\][uiomxn]*" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_regexpr_3_nested" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_3_nested" char="[" />
+				<DetectChar attribute="Regular Expression" context="#pop" char="]" />
+			</context>
+
+			<context name="gdl_regexpr_4" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<Detect2Chars attribute="Regular Expression" char="\" char1="&gt;" context="#stay"/>
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_4_nested" char="&lt;" />
+				<RegExpr attribute="GDL input" context="#pop#pop" String="&gt;[uiomxn]*" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_regexpr_4_nested" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_4_nested" char="&lt;" />
+				<DetectChar attribute="Regular Expression" context="#pop" char="&gt;" />
+			</context>
+
+			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
+				delimiter character
+			 -->
+			<context name="gdl_regexpr_5" attribute="Regular Expression" lineEndContext="#stay" dynamic="true">
+				<IncludeRules context="regexpr_rules" />
+				<StringDetect attribute="Regular Expression" String="\%1" context="#stay" dynamic="true" />
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1[uiomxn]*" dynamic="true" endRegion="GdlInput" />
+			</context>
+
+			<!-- rules to be included in all regexpr contexts -->
+			<context name="regexpr_rules" attribute="Regular Expression" lineEndContext="#stay" >
+				<Detect2Chars attribute="Regular Expression" char="\" char1="\" context="#stay"/>
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+			</context>
+
+			<!-- END of General delimited input support -->
+
+		</contexts>
+
+		<itemDatas>
+			<itemData name="Normal Text" defStyleNum="dsNormal"/>
+
+			<itemData name="Keyword" defStyleNum="dsControlFlow"/>
+			<itemData name="Attribute Definition" defStyleNum="dsOthers"/>
+			<itemData name="Access Control" defStyleNum="dsAttribute" bold="1"/> <!-- #0000FF -->
+			<itemData name="Definition" defStyleNum="dsKeyword"/>
+			<itemData name="Pseudo variable" defStyleNum="dsDecVal"/>
+
+			<itemData name="Dec" defStyleNum="dsDecVal"/>
+			<itemData name="Float" defStyleNum="dsFloat"/>
+			<itemData name="Char" defStyleNum="dsChar"/>
+			<itemData name="Octal" defStyleNum="dsBaseN"/>
+			<itemData name="Hex" defStyleNum="dsBaseN"/>
+			<itemData name="Bin" defStyleNum="dsBaseN"/>
+
+			<itemData name="Symbol" defStyleNum="dsWarning" bold="0" underline="0"/> <!-- #D40000 -->
+			<itemData name="String" defStyleNum="dsString"/>
+			<itemData name="Raw String" defStyleNum="dsVerbatimString" /> <!-- #DD4A4A -->
+			<itemData name="Command" defStyleNum="dsInformation"/> <!-- #AA3000 -->
+			<itemData name="Message" defStyleNum="dsAttribute" bold="0"/> <!-- #4000A7 -->
+			<itemData name="Regular Expression" defStyleNum="dsSpecialString"/> <!-- #4A5704 -->
+			<itemData name="Substitution"	defStyleNum="dsSpecialChar"/>
+			<!-- short for 'general delimited input' -->
+			<itemData name="GDL input" defStyleNum="dsOthers" />
+
+			<itemData name="Global Constant" defStyleNum="dsConstant" bold="1"/> <!-- #bb1188 -->
+			<itemData name="Constant" defStyleNum="dsDataType"/>
+			<itemData name="Constant Value" defStyleNum="dsConstant" bold="0"/> <!-- #bb1188 -->
+			<itemData name="Kernel methods" defStyleNum="dsFunction" bold="1"/> <!-- #CC0E86 -->
+			<itemData name="Module mixin methods" defStyleNum="dsFunction" bold="1"/> <!-- #CC0E86 -->
+			<itemData name="Member" defStyleNum="dsNormal"/>
+			<itemData name="Instance Variable" defStyleNum="dsOthers"/>
+			<itemData name="Class Variable" defStyleNum="dsOthers"/>
+
+			<itemData name="Comment" defStyleNum="dsComment"/>
+
+			<itemData name="Here Document" defStyleNum="dsDocumentation"/>
+
+			<itemData name="Delimiter" defStyleNum="dsKeyword"/> <!-- #FF9FEC -->
+			<itemData name="Operator" defStyleNum="dsKeyword"/> <!-- #FF9FEC -->
+		</itemDatas>
+	</highlighting>
+	<general>
+		<comments>
+			<comment name="singleLine" start="#" position="afterwhitespace"/>
+		</comments>
+		<keywords casesensitive="1" weakDeliminator="!?"/>
+	</general>
+</language>
+
+<!-- kate: replace-tabs off; -->
diff --git a/syntax/cs.xml b/syntax/cs.xml
--- a/syntax/cs.xml
+++ b/syntax/cs.xml
@@ -1,5 +1,5 @@
-<!DOCTYPE language SYSTEM "language.dtd">
-<language name="C#" version="11" kateversion="5.0" section="Sources" extensions="*.cs" mimetype="text/x-csharp-src;text/x-csharp-hde" indenter="cstyle" style="C++">
+<!DOCTYPE language>
+<language name="C#" alternativeNames="CS;CSharp" version="14" kateversion="5.0" section="Sources" extensions="*.cs;*.ashx" mimetype="text/x-csharp-src;text/x-csharp-hde" indenter="cstyle" style="C++">
   <highlighting>
     <list name="keywords">
       <item>abstract</item>
@@ -160,7 +160,7 @@
   </highlighting>
   <general>
     <comments>
-      <comment name="singleLine" start="//" />
+      <comment name="singleLine" start="//" position="afterwhitespace"/>
       <comment name="multiLine" start="/*" end="*/" region="BlockComment" />
     </comments>
     <keywords casesensitive="1" />
diff --git a/syntax/css.xml b/syntax/css.xml
--- a/syntax/css.xml
+++ b/syntax/css.xml
@@ -1,1738 +1,2081 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
-[
-  <!-- https://www.w3.org/TR/CSS22/syndata.html#tokenization -->
-  <!ENTITY nmstart "[_a-zA-Z]|(\\[0-9a-fA-F]{1,6})|(\\[^\n\r\f0-9a-fA-F])">
-  <!ENTITY nmchar  "[_a-zA-Z0-9-]|(\\[0-9a-fA-F]{1,6})|(\\[^\n\r\f0-9a-fA-F])">
-]>
-
-<!--
-
-Kate CSS syntax highlighting definition
-
-Changelog:
-
-- Version 8, by Jonathan Poelen
-- fix some Operator and Selector Tag highlighting
-
-- Version 7, by Jonathan Poelen
-- fix tag followed by a pseudo-class in a nested rule (@media, ...)
-- fix constraint in a rule
-- fix Kate auto-completion for properties and rules
-- New highlighting categories: Keyword, Operator, Separator Symbol, SpecialChar, Variable, Value Keyword, Color, Number, Unit, Selector Tag
-
-- Version 4, by Guo Yunhe guoyunhebrave@gmail.com
-- Remake for complex CSS syntax, avoid errors
-
-- Version 2.13, by Guo Yunhe
-- Add all W3C Work Draft properties
-
-- Version 2.06, by Mte90:
-- CSS3 tag
-
-- Version 2.03, by Milian Wolff:
-- Make it spelling aware
-
-- Version 2.08, Joseph Wenninger:
-- CSS3 media queries
-
--->
-
-<language name="CSS" version="12" kateversion="5.53" section="Markup" extensions="*.css" indenter="cstyle" mimetype="text/css" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL" priority="10">
-    <!-- https://www.w3.org/Style/CSS/current-work -->
-
-    <highlighting>
-        <list name="properties">
-            <!-- W3C > Work Draft, from https://www.w3.org/Style/CSS/all-properties -->
-            <item>align-content</item>
-            <item>align-items</item>
-            <item>alignment-baseline</item>
-            <item>align-self</item>
-            <item>all</item>
-            <item>animation</item>
-            <item>animation-delay</item>
-            <item>animation-direction</item>
-            <item>animation-duration</item>
-            <item>animation-fill-mode</item>
-            <item>animation-iteration-count</item>
-            <item>animation-name</item>
-            <item>animation-play-state</item>
-            <item>animation-timing-function</item>
-            <item>appearance</item>
-            <item>azimuth</item>
-            <item>backface-visibility</item>
-            <item>background</item>
-            <item>background-attachment</item>
-            <item>background-blend-mode</item>
-            <item>background-clip</item>
-            <item>background-color</item>
-            <item>background-image</item>
-            <item>background-image-transform</item>
-            <item>background-origin</item>
-            <item>background-position</item>
-            <item>background-repeat</item>
-            <item>background-size</item>
-            <item>baseline-shift</item>
-            <item>block-size</item>
-            <item>block-step</item>
-            <item>block-step-align</item>
-            <item>block-step-insert</item>
-            <item>block-step-round</item>
-            <item>block-step-size</item>
-            <item>bookmark-label</item>
-            <item>bookmark-level</item>
-            <item>bookmark-state</item>
-            <item>border</item>
-            <item>border-block</item>
-            <item>border-block-color</item>
-            <item>border-block-end</item>
-            <item>border-block-end-color</item>
-            <item>border-block-end-style</item>
-            <item>border-block-end-width</item>
-            <item>border-block-start</item>
-            <item>border-block-start-color</item>
-            <item>border-block-start-style</item>
-            <item>border-block-start-width</item>
-            <item>border-block-style</item>
-            <item>border-block-width</item>
-            <item>border-bottom</item>
-            <item>border-bottom-color</item>
-            <item>border-bottom-left-radius</item>
-            <item>border-bottom-right-radius</item>
-            <item>border-bottom-style</item>
-            <item>border-bottom-width</item>
-            <item>border-boundary</item>
-            <item>border-collapse</item>
-            <item>border-color</item>
-            <item>border-image</item>
-            <item>border-image-outset</item>
-            <item>border-image-repeat</item>
-            <item>border-image-slice</item>
-            <item>border-image-source</item>
-            <item>border-image-transform</item>
-            <item>border-image-width</item>
-            <item>border-inline</item>
-            <item>border-inline-color</item>
-            <item>border-inline-end</item>
-            <item>border-inline-end-color</item>
-            <item>border-inline-end-style</item>
-            <item>border-inline-end-width</item>
-            <item>border-inline-start</item>
-            <item>border-inline-start-color</item>
-            <item>border-inline-start-style</item>
-            <item>border-inline-start-width</item>
-            <item>border-inline-style</item>
-            <item>border-inline-width</item>
-            <item>border-left</item>
-            <item>border-left-color</item>
-            <item>border-left-style</item>
-            <item>border-left-width</item>
-            <item>border-radius</item>
-            <item>border-right</item>
-            <item>border-right-color</item>
-            <item>border-right-style</item>
-            <item>border-right-width</item>
-            <item>border-spacing</item>
-            <item>border-style</item>
-            <item>border-top</item>
-            <item>border-top-color</item>
-            <item>border-top-left-radius</item>
-            <item>border-top-right-radius</item>
-            <item>border-top-style</item>
-            <item>border-top-width</item>
-            <item>border-width</item>
-            <item>bottom</item>
-            <item>box-decoration-break</item>
-            <item>box-shadow</item>
-            <item>box-sizing</item>
-            <item>box-snap</item>
-            <item>break-after</item>
-            <item>break-before</item>
-            <item>break-inside</item>
-            <item>caption-side</item>
-            <item>caret</item>
-            <item>caret-color</item>
-            <item>caret-shape</item>
-            <item>clear</item>
-            <item>clip</item>
-            <item>clip-path</item>
-            <item>clip-rule</item>
-            <item>color</item>
-            <item>color-adjust</item>
-            <item>color-interpolation-filters</item>
-            <item>columns</item>
-            <item>column-count</item>
-            <item>column-fill</item>
-            <item>column-gap</item>
-            <item>column-rule</item>
-            <item>column-rule-color</item>
-            <item>column-rule-style</item>
-            <item>column-rule-width</item>
-            <item>column-span</item>
-            <item>column-width</item>
-            <item>contain</item>
-            <item>content</item>
-            <item>continue</item>
-            <item>counter-increment</item>
-            <item>counter-reset</item>
-            <item>counter-set</item>
-            <item>cue</item>
-            <item>cue-after</item>
-            <item>cue-before</item>
-            <item>cursor</item>
-            <item>direction</item>
-            <item>display</item>
-            <item>dominant-baseline</item>
-            <item>elevation</item>
-            <item>empty-cells</item>
-            <item>fill</item>
-            <item>fill-break</item>
-            <item>fill-color</item>
-            <item>fill-image</item>
-            <item>fill-opacity</item>
-            <item>fill-origin</item>
-            <item>fill-position</item>
-            <item>fill-repeat</item>
-            <item>fill-rule</item>
-            <item>fill-size</item>
-            <item>filter</item>
-            <item>flex</item>
-            <item>flex-basis</item>
-            <item>flex-direction</item>
-            <item>flex-flow</item>
-            <item>flex-grow</item>
-            <item>flex-shrink</item>
-            <item>flex-wrap</item>
-            <item>float</item>
-            <item>float-defer</item>
-            <item>float-offset</item>
-            <item>float-reference</item>
-            <item>flood-color</item>
-            <item>flood-opacity</item>
-            <item>flow-from</item>
-            <item>flow-into</item>
-            <item>font</item>
-            <item>font-family</item>
-            <item>font-feature-settings</item>
-            <item>font-kerning</item>
-            <item>font-language-override</item>
-            <item>font-max-size</item>
-            <item>font-min-size</item>
-            <item>font-optical-sizing</item>
-            <item>font-palette</item>
-            <item>font-size</item>
-            <item>font-size-adjust</item>
-            <item>font-stretch</item>
-            <item>font-style</item>
-            <item>font-synthesis</item>
-            <item>font-variant</item>
-            <item>font-variant-alternates</item>
-            <item>font-variant-caps</item>
-            <item>font-variant-east-asian</item>
-            <item>font-variant-emoji</item>
-            <item>font-variant-ligatures</item>
-            <item>font-variant-numeric</item>
-            <item>font-variant-position</item>
-            <item>font-variation-settings</item>
-            <item>font-weight</item>
-            <item>footnote-display</item>
-            <item>footnote-policy</item>
-            <item>gap</item>
-            <item>glyph-orientation-vertical</item>
-            <item>grid</item>
-            <item>grid-area</item>
-            <item>grid-auto-columns</item>
-            <item>grid-auto-flow</item>
-            <item>grid-auto-rows</item>
-            <item>grid-column</item>
-            <item>grid-column-end</item>
-            <item>grid-column-gap</item>
-            <item>grid-column-start</item>
-            <item>grid-gap</item>
-            <item>grid-row</item>
-            <item>grid-row-end</item>
-            <item>grid-row-gap</item>
-            <item>grid-row-start</item>
-            <item>grid-template</item>
-            <item>grid-template-areas</item>
-            <item>grid-template-columns</item>
-            <item>grid-template-rows</item>
-            <item>hanging-punctuation</item>
-            <item>height</item>
-            <item>hyphenate-character</item>
-            <item>hyphenate-limit-chars</item>
-            <item>hyphenate-limit-last</item>
-            <item>hyphenate-limit-lines</item>
-            <item>hyphenate-limit-zone</item>
-            <item>hyphens</item>
-            <item>image-orientation</item>
-            <item>image-rendering</item>
-            <item>image-resolution</item>
-            <item>initial-letter</item>
-            <item>initial-letter-align</item>
-            <item>initial-letter-wrap</item>
-            <item>inline-size</item>
-            <item>inset</item>
-            <item>inset-block</item>
-            <item>inset-block-end</item>
-            <item>inset-block-start</item>
-            <item>inset-inline</item>
-            <item>inset-inline-end</item>
-            <item>inset-inline-start</item>
-            <item>isolation</item>
-            <item>justify-content</item>
-            <item>justify-items</item>
-            <item>justify-self</item>
-            <item>left</item>
-            <item>letter-spacing</item>
-            <item>lighting-color</item>
-            <item>line-break</item>
-            <item>line-grid</item>
-            <item>line-height</item>
-            <item>line-height-step</item>
-            <item>line-snap</item>
-            <item>list-style</item>
-            <item>list-style-image</item>
-            <item>list-style-position</item>
-            <item>list-style-type</item>
-            <item>margin</item>
-            <item>margin-block</item>
-            <item>margin-block-end</item>
-            <item>margin-block-start</item>
-            <item>margin-bottom</item>
-            <item>margin-inline</item>
-            <item>margin-inline-end</item>
-            <item>margin-inline-start</item>
-            <item>margin-left</item>
-            <item>margin-right</item>
-            <item>margin-top</item>
-            <item>marker</item>
-            <item>marker-end</item>
-            <item>marker-knockout-left</item>
-            <item>marker-knockout-right</item>
-            <item>marker-mid</item>
-            <item>marker-pattern</item>
-            <item>marker-segment</item>
-            <item>marker-side</item>
-            <item>marker-start</item>
-            <item>marquee-direction</item>
-            <item>marquee-loop</item>
-            <item>marquee-speed</item>
-            <item>marquee-style</item>
-            <item>mask</item>
-            <item>mask-border</item>
-            <item>mask-border-mode</item>
-            <item>mask-border-outset</item>
-            <item>mask-border-repeat</item>
-            <item>mask-border-slice</item>
-            <item>mask-border-source</item>
-            <item>mask-border-width</item>
-            <item>mask-clip</item>
-            <item>mask-composite</item>
-            <item>mask-image</item>
-            <item>mask-mode</item>
-            <item>mask-origin</item>
-            <item>mask-position</item>
-            <item>mask-repeat</item>
-            <item>mask-size</item>
-            <item>mask-type</item>
-            <item>max-block-size</item>
-            <item>max-height</item>
-            <item>max-inline-size</item>
-            <item>max-lines</item>
-            <item>max-width</item>
-            <item>min-block-size</item>
-            <item>min-height</item>
-            <item>min-inline-size</item>
-            <item>min-width</item>
-            <item>mix-blend-mode</item>
-            <item>nav-up</item>
-            <item>nav-down</item>
-            <item>nav-left</item>
-            <item>nav-right</item>
-            <item>object-fit</item>
-            <item>object-position</item>
-            <item>offset</item>
-            <item>offset-after</item>
-            <item>offset-anchor</item>
-            <item>offset-before</item>
-            <item>offset-distance</item>
-            <item>offset-end</item>
-            <item>offset-path</item>
-            <item>offset-position</item>
-            <item>offset-rotate</item>
-            <item>offset-start</item>
-            <item>opacity</item>
-            <item>order</item>
-            <item>orphans</item>
-            <item>outline</item>
-            <item>outline-color</item>
-            <item>outline-offset</item>
-            <item>outline-style</item>
-            <item>outline-width</item>
-            <item>overflow</item>
-            <item>overflow-style</item>
-            <item>overflow-wrap</item>
-            <item>overflow-x</item>
-            <item>overflow-y</item>
-            <item>padding</item>
-            <item>padding-block</item>
-            <item>padding-block-end</item>
-            <item>padding-block-start</item>
-            <item>padding-bottom</item>
-            <item>padding-inline</item>
-            <item>padding-inline-end</item>
-            <item>padding-inline-start</item>
-            <item>padding-left</item>
-            <item>padding-right</item>
-            <item>padding-top</item>
-            <item>page</item>
-            <item>page-break-after</item>
-            <item>page-break-before</item>
-            <item>page-break-inside</item>
-            <item>pause</item>
-            <item>pause-after</item>
-            <item>pause-before</item>
-            <item>perspective</item>
-            <item>perspective-origin</item>
-            <item>pitch</item>
-            <item>pitch-range</item>
-            <item>place-content</item>
-            <item>place-items</item>
-            <item>place-self</item>
-            <item>play-during</item>
-            <item>pointer-events</item>
-            <item>position</item>
-            <item>quotes</item>
-            <item>region-fragment</item>
-            <item>resize</item>
-            <item>richness</item>
-            <item>right</item>
-            <item>rotation</item>
-            <item>rotation-point</item>
-            <item>row-gap</item>
-            <item>ruby-align</item>
-            <item>ruby-merge</item>
-            <item>ruby-position</item>
-            <item>running</item>
-            <item>scrollbar-gutter</item>
-            <item>shape-image-threshold</item>
-            <item>shape-inside</item>
-            <item>shape-margin</item>
-            <item>shape-outside</item>
-            <item>size</item>
-            <item>speak</item>
-            <item>speak-header</item>
-            <item>speak-numeral</item>
-            <item>speak-punctuation</item>
-            <item>speech-rate</item>
-            <item>stress</item>
-            <item>string-set</item>
-            <item>table-layout</item>
-            <item>tab-size</item>
-            <item>text-align-all</item>
-            <item>text-align</item>
-            <item>text-align-last</item>
-            <item>text-combine-upright</item>
-            <item>text-decoration-color</item>
-            <item>text-decoration</item>
-            <item>text-decoration-line</item>
-            <item>text-decoration-skip</item>
-            <item>text-decoration-skip-ink</item>
-            <item>text-decoration-style</item>
-            <item>text-decoration-width</item>
-            <item>text-emphasis</item>
-            <item>text-emphasis-color</item>
-            <item>text-emphasis-position</item>
-            <item>text-emphasis-skip</item>
-            <item>text-emphasis-style</item>
-            <item>text-indent</item>
-            <item>text-justify</item>
-            <item>text-orientation</item>
-            <item>text-overflow</item>
-            <item>text-shadow</item>
-            <item>text-space-collapse</item>
-            <item>text-space-trim</item>
-            <item>text-spacing</item>
-            <item>text-transform</item>
-            <item>text-underline-offset</item>
-            <item>text-underline-position</item>
-            <item>text-wrap</item>
-            <item>top</item>
-            <item>transform</item>
-            <item>transform-box</item>
-            <item>transform-origin</item>
-            <item>transform-style</item>
-            <item>transition</item>
-            <item>transition-delay</item>
-            <item>transition-duration</item>
-            <item>transition-property</item>
-            <item>transition-timing-function</item>
-            <item>unicode-bidi</item>
-            <item>user-select</item>
-            <item>vertical-align</item>
-            <item>visibility</item>
-            <item>voice-family</item>
-            <item>volume</item>
-            <item>white-space</item>
-            <item>widows</item>
-            <item>width</item>
-            <item>will-change</item>
-            <item>word-break</item>
-            <item>word-spacing</item>
-            <item>word-wrap</item>
-            <item>wrap-after</item>
-            <item>wrap-before</item>
-            <item>wrap-flow</item>
-            <item>wrap-inside</item>
-            <item>wrap-through</item>
-            <item>writing-mode</item>
-            <item>z-index</item>
-
-            <!-- Gecko rendering engine CSS property extensions -->
-            <item>-moz-animation</item>
-            <item>-moz-animation-delay</item>
-            <item>-moz-animation-direction</item>
-            <item>-moz-animation-duration</item>
-            <item>-moz-animation-fill-mode</item>
-            <item>-moz-animation-iteration-count</item>
-            <item>-moz-animation-name</item>
-            <item>-moz-animation-play-state</item>
-            <item>-moz-animation-timing-function</item>
-            <item>-moz-appearance</item>
-            <item>-moz-background-clip</item>
-            <item>-moz-background-origin</item>
-            <item>-moz-background-size</item>
-            <item>-moz-border-image</item>
-            <item>-moz-border-radius</item>
-            <item>-moz-border-radius-bottomleft</item>
-            <item>-moz-border-radius-bottomright</item>
-            <item>-moz-border-radius-topleft</item>
-            <item>-moz-border-radius-topright</item>
-            <item>-moz-box-align</item>
-            <item>-moz-box-direction</item>
-            <item>-moz-box-flex</item>
-            <item>-moz-box-flex-group</item>
-            <item>-moz-box-ordinal-group</item>
-            <item>-moz-box-orient</item>
-            <item>-moz-box-pack</item>
-            <item>-moz-box-shadow</item>
-            <item>-moz-box-sizing</item>
-            <item>-moz-box</item>
-            <item>-moz-column-count</item>
-            <item>-moz-column-fill</item>
-            <item>-moz-column-gap</item>
-            <item>-moz-column-rule</item>
-            <item>-moz-column-rule-color</item>
-            <item>-moz-column-rule-style</item>
-            <item>-moz-column-rule-width</item>
-            <item>-moz-columns</item>
-            <item>-moz-column-width</item>
-            <item>-moz-hyphens</item>
-            <item>-moz-opacity</item>
-            <item>-moz-outline-style</item>
-            <item>-moz-perspective</item>
-            <item>-moz-resize</item>
-            <item>-moz-text-align-last</item>
-            <item>-moz-text-decoration-color</item>
-            <item>-moz-text-decoration-line</item>
-            <item>-moz-text-decoration-style</item>
-            <item>-moz-transform</item>
-            <item>-moz-transform-origin</item>
-            <item>-moz-transform-style</item>
-            <item>-moz-transition</item>
-            <item>-moz-transition-delay</item>
-            <item>-moz-transition-duration</item>
-            <item>-moz-transition-property</item>
-            <item>-moz-transition-timing-function</item>
-            <item>-moz-user-select</item>
-
-            <!-- Opera rendering engine CSS property extensions -->
-            <item>-o-background-size</item>
-            <item>-o-linear-gradient</item>
-            <item>-o-text-overflow</item>
-            <item>-o-transition</item>
-            <item>-o-transform-origin</item>
-
-            <!-- konq specific -->
-            <item>konq_bgpos_x</item>
-            <item>konq_bgpos_y</item>
-            <item>-khtml-background-size</item>
-            <item>-khtml-border-top-left-radius</item>
-            <item>-khtml-border-top-right-radius</item>
-            <item>-khtml-border-bottom-left-radius</item>
-            <item>-khtml-border-bottom-right-radius</item>
-            <item>-khtml-border-radius</item>
-            <item>-khtml-box-shadow</item>
-            <item>-khtml-opacity</item>
-
-            <!-- Webkit rendering engine CSS property extensions -->
-            <item>-webkit-appearance</item>
-            <item>-webkit-animation</item>
-            <item>-webkit-animation-name</item>
-            <item>-webkit-animation-duration</item>
-            <item>-webkit-animation-iteration</item>
-            <item>-webkit-animation-direction</item>
-            <item>-webkit-animation-delay</item>
-            <item>-webkit-animation-play-state</item>
-            <item>-webkit-animation-fill-mode</item>
-            <item>-webkit-background-size</item>
-            <item>-webkit-backface-visibility</item>
-            <item>-webkit-border-image</item>
-            <item>-webkit-border-bottom-colors</item>
-            <item>-webkit-border-left-colors</item>
-            <item>-webkit-border-radius</item>
-            <item>-webkit-border-right-colors</item>
-            <item>-webkit-border-top-colors</item>
-            <item>-webkit-border-top-left-radius</item>
-            <item>-webkit-border-top-right-radius</item>
-            <item>-webkit-border-bottom-left-radius</item>
-            <item>-webkit-border-bottom-right-radius</item>
-            <item>-webkit-border-radius-bottomleft</item>
-            <item>-webkit-border-radius-bottomright</item>
-            <item>-webkit-box-align</item>
-            <item>-webkit-box-direction</item>
-            <item>-webkit-box-flex</item>
-            <item>-webkit-box-ordinal-group</item>
-            <item>-webkit-box-orient</item>
-            <item>-webkit-box-pack</item>
-            <item>-webkit-box-reflect</item>
-            <item>-webkit-box-shadow</item>
-            <item>-webkit-box-sizing</item>
-            <item>-webkit-column-count</item>
-            <item>-webkit-column-gap</item>
-            <item>-webkit-hyphens</item>
-            <item>-webkit-linear-gradient</item>
-            <item>-webkit-gradient</item>
-            <item>-webkit-overflow-scrolling</item>
-            <item>-webkit-perspective</item>
-            <item>-webkit-text-decoration</item>
-            <item>-webkit-text-decoration-skip</item>
-            <item>-webkit-text-fill-color</item>
-            <item>-webkit-text-stroke-color</item>
-            <item>-webkit-text-stroke-width</item>
-            <item>-webkit-text-size-adjust</item>
-            <item>-webkit-tap-highlight-color</item>
-            <item>-webkit-transform</item>
-            <item>-webkit-transform-origin</item>
-            <item>-webkit-transform-style</item>
-            <item>-webkit-transition</item>
-            <item>-webkit-transition-property</item>
-            <item>-webkit-transition-delay</item>
-            <item>-webkit-transition-duration</item>
-            <item>-webkit-user-select</item>
-
-            <!-- Trident (a.k.a., MSHTML) CSS property extensions -->
-            <item>zoom</item>
-            <item>-ms-animation-name</item>
-            <item>-ms-animation-duration</item>
-            <item>-ms-animation-iteration</item>
-            <item>-ms-animation-direction</item>
-            <item>-ms-animation-delay</item>
-            <item>-ms-animation-play-state</item>
-            <item>-ms-animation-fill-mode</item>
-            <item>-ms-box-sizing</item>
-            <item>-ms-filter</item>
-            <item>-ms-flex</item>
-            <item>-ms-flex-align</item>
-            <item>-ms-flex-direction</item>
-            <item>-ms-flex-flow</item>
-            <item>-ms-flex-item-align</item>
-            <item>-ms-flex-line-pack</item>
-            <item>-ms-flex-negative</item>
-            <item>-ms-flex-order</item>
-            <item>-ms-flex-pack</item>
-            <item>-ms-flex-positive</item>
-            <item>-ms-flex-position</item>
-            <item>-ms-flex-preferred-size</item>
-            <item>-ms-flex-wrap</item>
-            <item>-ms-interpolation-mode</item>
-            <item>-ms-linear-gradient</item>
-            <item>-ms-overflow-style</item>
-            <item>-ms-text-size-adjust</item>
-            <item>-ms-transform</item>
-            <item>-ms-transition</item>
-            <item>-ms-user-select</item>
-        </list>
-
-        <list name="value keywords">
-            <item>inherit</item>
-            <item>unset</item>
-            <item>auto</item>
-            <!-- <item>revert</item> -->
-        </list>
-
-        <list name="values">
-            <item>none</item>
-            <item>hidden</item>
-            <item>dotted</item>
-            <item>dashed</item>
-            <item>solid</item>
-            <item>double</item>
-            <item>groove</item>
-            <item>ridge</item>
-            <item>inset</item>
-            <item>outset</item>
-            <item>xx-small</item>
-            <item>x-small</item>
-            <item>small</item>
-            <item>medium</item>
-            <item>large</item>
-            <item>x-large</item>
-            <item>xx-large</item>
-            <item>smaller</item>
-            <item>larger</item>
-            <item>italic</item>
-            <item>oblique</item>
-            <item>small-caps</item>
-            <item>normal</item>
-            <item>bold</item>
-            <item>bolder</item>
-            <item>lighter</item>
-            <item>light</item>
-            <item>transparent</item>
-            <item>repeat</item>
-            <item>repeat-x</item>
-            <item>repeat-y</item>
-            <item>no-repeat</item>
-            <item>baseline</item>
-            <item>sub</item>
-            <item>super</item>
-            <item>top</item>
-            <item>text-top</item>
-            <item>middle</item>
-            <item>bottom</item>
-            <item>text-bottom</item>
-            <item>left</item>
-            <item>right</item>
-            <item>center</item>
-            <item>justify</item>
-            <item>konq-center</item>
-            <item>disc</item>
-            <item>circle</item>
-            <item>square</item>
-            <item>box</item>
-            <item>decimal</item>
-            <item>decimal-leading-zero</item>
-            <item>lower-roman</item>
-            <item>upper-roman</item>
-            <item>lower-greek</item>
-            <item>lower-alpha</item>
-            <item>lower-latin</item>
-            <item>upper-alpha</item>
-            <item>upper-latin</item>
-            <item>hebrew</item>
-            <item>armenian</item>
-            <item>georgian</item>
-            <item>cjk-ideographic</item>
-            <item>hiragana</item>
-            <item>katakana</item>
-            <item>hiragana-iroha</item>
-            <item>katakana-iroha</item>
-            <item>inline</item>
-            <item>inline-block</item>
-            <item>block</item>
-            <item>list-item</item>
-            <item>run-in</item>
-            <item>compact</item>
-            <item>marker</item>
-            <item>table</item>
-            <item>inline-table</item>
-            <item>table-row-group</item>
-            <item>table-header-group</item>
-            <item>table-footer-group</item>
-            <item>table-row</item>
-            <item>table-column-group</item>
-            <item>table-column</item>
-            <item>table-cell</item>
-            <item>table-caption</item>
-            <item>crosshair</item>
-            <item>default</item>
-            <item>pointer</item>
-            <item>move</item>
-            <item>e-resize</item>
-            <item>ne-resize</item>
-            <item>nw-resize</item>
-            <item>n-resize</item>
-            <item>se-resize</item>
-            <item>sw-resize</item>
-            <item>s-resize</item>
-            <item>w-resize</item>
-            <item>text</item>
-            <item>wait</item>
-            <item>help</item>
-            <item>above</item>
-            <item>absolute</item>
-            <item>always</item>
-            <item>avoid</item>
-            <item>below</item>
-            <item>bidi-override</item>
-            <item>blink</item>
-            <item>both</item>
-            <item>capitalize</item>
-            <item>caption</item>
-            <item>clip</item>
-            <item>close-quote</item>
-            <item>collapse</item>
-            <item>condensed</item>
-            <item>crop</item>
-            <item>cross</item>
-            <item>ellipsis</item>
-            <item>ellipsis-word</item>
-            <item>embed</item>
-            <item>expanded</item>
-            <item>extra-condensed</item>
-            <item>extra-expanded</item>
-            <item>fixed</item>
-            <item>hand</item>
-            <item>hide</item>
-            <item>higher</item>
-            <item>icon</item>
-            <item>inside</item>
-            <item>invert</item>
-            <item>landscape</item>
-            <item>level</item>
-            <item>line-through</item>
-            <item>loud</item>
-            <item>lower</item>
-            <item>lowercase</item>
-            <item>ltr</item>
-            <item>menu</item>
-            <item>message-box</item>
-            <item>mix</item>
-            <item>narrower</item>
-            <item>no-close-quote</item>
-            <item>no-open-quote</item>
-            <item>nowrap</item>
-            <item>open-quote</item>
-            <item>outside</item>
-            <item>overline</item>
-            <item>portrait</item>
-            <item>pre</item>
-            <item>pre-line</item>
-            <item>pre-wrap</item>
-            <item>relative</item>
-            <item>rtl</item>
-            <item>scroll</item>
-            <item>semi-condensed</item>
-            <item>semi-expanded</item>
-            <item>separate</item>
-            <item>show</item>
-            <item>small-caption</item>
-            <item>static</item>
-            <item>static-position</item>
-            <item>status-bar</item>
-            <item>sticky</item>
-            <item>thick</item>
-            <item>thin</item>
-            <item>ultra-condensed</item>
-            <item>ultra-expanded</item>
-            <item>underline</item>
-            <item>uppercase</item>
-            <item>visible</item>
-            <item>wider</item>
-            <item>break</item>
-            <item>serif</item>
-            <item>sans-serif</item>
-            <item>cursive</item>
-            <item>fantasy</item>
-            <item>monospace</item>
-            <item>border-box</item>
-            <item>content-box</item>
-            <item>-epub-hyphens</item>
-            <item>contain</item>
-            <item>cover</item>
-
-            <!-- transition and animation -->
-            <item>all</item>
-            <item>ease</item>
-            <item>ease-in</item>
-            <item>ease-out</item>
-            <item>ease-in-out</item>
-            <item>step-start</item>
-            <item>step-end</item>
-            <item>linear</item>
-
-            <!-- animation -->
-            <item>infinite</item>
-            <item>reverse</item>
-            <item>alternate</item>
-            <item>alternate-reverse</item>
-            <item>forwards</item>
-            <item>backwards</item>
-            <item>running</item>
-            <item>paused</item>
-        </list>
-
-        <list name="colors">
-            <item>black</item>
-            <item>silver</item>
-            <item>gray</item>
-            <item>white</item>
-            <item>maroon</item>
-            <item>red</item>
-            <item>purple</item>
-            <item>fuchsia</item>
-            <item>green</item>
-            <item>lime</item>
-            <item>olive</item>
-            <item>yellow</item>
-            <item>navy</item>
-            <item>blue</item>
-            <item>teal</item>
-            <item>aqua</item>
-            <item>orange</item>
-            <item>aliceblue</item>
-            <item>antiquewhite</item>
-            <item>aquamarine</item>
-            <item>azure</item>
-            <item>beige</item>
-            <item>bisque</item>
-            <item>blanchedalmond</item>
-            <item>blueviolet</item>
-            <item>brown</item>
-            <item>burlywood</item>
-            <item>cadetblue</item>
-            <item>chartreuse</item>
-            <item>chocolate</item>
-            <item>coral</item>
-            <item>cornflowerblue</item>
-            <item>cornsilk</item>
-            <item>crimson</item>
-            <item>cyan</item>
-            <item>aqua</item>
-            <item>darkblue</item>
-            <item>darkcyan</item>
-            <item>darkgoldenrod</item>
-            <item>darkgray</item>
-            <item>darkgreen</item>
-            <item>darkgrey</item>
-            <item>darkkhaki</item>
-            <item>darkmagenta</item>
-            <item>darkolivegreen</item>
-            <item>darkorange</item>
-            <item>darkorchid</item>
-            <item>darkred</item>
-            <item>darksalmon</item>
-            <item>darkseagreen</item>
-            <item>darkslateblue</item>
-            <item>darkslategray</item>
-            <item>darkslategrey</item>
-            <item>darkturquoise</item>
-            <item>darkviolet</item>
-            <item>deeppink</item>
-            <item>deepskyblue</item>
-            <item>dimgray</item>
-            <item>dimgrey</item>
-            <item>dodgerblue</item>
-            <item>firebrick</item>
-            <item>floralwhite</item>
-            <item>forestgreen</item>
-            <item>gainsboro</item>
-            <item>ghostwhite</item>
-            <item>gold</item>
-            <item>goldenrod</item>
-            <item>greenyellow</item>
-            <item>grey</item>
-            <item>honeydew</item>
-            <item>hotpink</item>
-            <item>indianred</item>
-            <item>indigo</item>
-            <item>ivory</item>
-            <item>khaki</item>
-            <item>lavender</item>
-            <item>lavenderblush</item>
-            <item>lawngreen</item>
-            <item>lemonchiffon</item>
-            <item>lightblue</item>
-            <item>lightcoral</item>
-            <item>lightcyan</item>
-            <item>lightgoldenrodyellow</item>
-            <item>lightgray</item>
-            <item>lightgreen</item>
-            <item>lightgrey</item>
-            <item>lightpink</item>
-            <item>lightsalmon</item>
-            <item>lightseagreen</item>
-            <item>lightskyblue</item>
-            <item>lightslategray</item>
-            <item>lightslategrey</item>
-            <item>lightsteelblue</item>
-            <item>lightyellow</item>
-            <item>limegreen</item>
-            <item>linen</item>
-            <item>magenta</item>
-            <item>fuchsia</item>
-            <item>mediumaquamarine</item>
-            <item>mediumblue</item>
-            <item>mediumorchid</item>
-            <item>mediumpurple</item>
-            <item>mediumseagreen</item>
-            <item>mediumslateblue</item>
-            <item>mediumspringgreen</item>
-            <item>mediumturquoise</item>
-            <item>mediumvioletred</item>
-            <item>midnightblue</item>
-            <item>mintcream</item>
-            <item>mistyrose</item>
-            <item>moccasin</item>
-            <item>navajowhite</item>
-            <item>oldlace</item>
-            <item>olivedrab</item>
-            <item>orangered</item>
-            <item>orchid</item>
-            <item>palegoldenrod</item>
-            <item>palegreen</item>
-            <item>paleturquoise</item>
-            <item>palevioletred</item>
-            <item>papayawhip</item>
-            <item>peachpuff</item>
-            <item>peru</item>
-            <item>pink</item>
-            <item>plum</item>
-            <item>powderblue</item>
-            <item>rosybrown</item>
-            <item>royalblue</item>
-            <item>saddlebrown</item>
-            <item>salmon</item>
-            <item>sandybrown</item>
-            <item>seagreen</item>
-            <item>seashell</item>
-            <item>sienna</item>
-            <item>skyblue</item>
-            <item>slateblue</item>
-            <item>slategray</item>
-            <item>slategrey</item>
-            <item>snow</item>
-            <item>springgreen</item>
-            <item>steelblue</item>
-            <item>tan</item>
-            <item>thistle</item>
-            <item>tomato</item>
-            <item>turquoise</item>
-            <item>violet</item>
-            <item>wheat</item>
-            <item>whitesmoke</item>
-            <item>yellowgreen</item>
-            <item>rebeccapurple</item>
-
-            <item>ActiveBorder</item>
-            <item>ActiveCaption</item>
-            <item>AppWorkspace</item>
-            <item>Background</item>
-            <item>ButtonFace</item>
-            <item>ButtonHighlight</item>
-            <item>ButtonShadow</item>
-            <item>ButtonText</item>
-            <item>CaptionText</item>
-            <item>GrayText</item>
-            <item>Highlight</item>
-            <item>HighlightText</item>
-            <item>InactiveBorder</item>
-            <item>InactiveCaption</item>
-            <item>InactiveCaptionText</item>
-            <item>InfoBackground</item>
-            <item>InfoText</item>
-            <item>Menu</item>
-            <item>MenuText</item>
-            <item>Scrollbar</item>
-            <item>ThreeDDarkShadow</item>
-            <item>ThreeDFace</item>
-            <item>ThreeDHighlight</item>
-            <item>ThreeDLightShadow</item>
-            <item>ThreeDShadow</item>
-            <item>Window</item>
-            <item>WindowFrame</item>
-            <item>WindowText</item>
-        </list>
-
-        <list name="functions">
-            <item>attr</item>
-            <item>calc</item>
-            <item>hsl</item>
-            <item>hsla</item>
-            <item>linear-gradient</item>
-            <item>radial-gradient</item>
-            <item>repeating-linear-gradient</item>
-            <item>repeating-radial-gradient</item>
-            <item>rgb</item>
-            <item>rgba</item>
-            <item>var</item>
-            <item>url</item>
-
-            <!-- clip -->
-            <item>rect</item>
-
-            <!-- shape-outside and clip-path -->
-            <item>inset</item>
-            <item>circle</item>
-            <item>ellipse</item>
-            <item>polygon</item>
-
-            <!-- filter and backdrop-filter -->
-            <item>blur</item>
-            <item>brightness</item>
-            <item>contrast</item>
-            <item>drop-shadow</item>
-            <item>grayscale</item>
-            <item>hue-rotate</item>
-            <item>invert</item>
-            <item>opacity</item>
-            <item>saturate</item>
-            <item>sepia</item>
-
-            <!-- grid-template-columns and grid-template-rows -->
-            <item>max-content</item>
-            <item>min-content</item>
-            <item>minmax</item>
-            <item>fix-content</item>
-            <item>repeat</item>
-
-            <!-- transition and animation -->
-            <item>cubic-bezier</item>
-            <item>frames</item>
-            <item>steps</item>
-
-            <!-- transform -->
-            <item>matrix</item>
-            <item>matrix3d</item>
-            <item>perspective</item>
-            <item>rotate</item>
-            <item>rotate3d</item>
-            <item>rotateX</item>
-            <item>rotateY</item>
-            <item>rotateZ</item>
-            <item>scale</item>
-            <item>scale3d</item>
-            <item>scaleX</item>
-            <item>scaleY</item>
-            <item>scaleZ</item>
-            <item>skew</item>
-            <item>skewX</item>
-            <item>skewY</item>
-            <item>translate</item>
-            <item>translate3d</item>
-            <item>translateX</item>
-            <item>translateY</item>
-            <item>translateZ</item>
-
-            <!-- inner @font-face -->
-            <item>local</item>
-            <item>format</item>
-        </list>
-
-        <list name="medias">
-            <!-- types -->
-            <item>all</item>
-            <item>print</item>
-            <item>screen</item>
-            <item>speech</item>
-
-            <!-- features -->
-            <item>any-pointer</item>
-            <item>any-hover</item>
-            <item>aspect-ratio</item>
-            <item>color</item>
-            <item>color-gamut</item>
-            <item>color-index</item>
-            <item>display-mode</item>
-            <item>grid</item>
-            <item>height</item>
-            <item>hover</item>
-            <item>max-aspect-ratio</item>
-            <item>max-color</item>
-            <item>max-color-index</item>
-            <item>max-device-aspect-ratio</item>
-            <item>max-device-height</item>
-            <item>max-device-width</item>
-            <item>max-height</item>
-            <item>max-monochrome</item>
-            <item>max-resolution</item>
-            <item>max-width</item>
-            <item>min-aspect-ratio</item>
-            <item>min-color</item>
-            <item>min-color-index</item>
-            <item>min-device-aspect-ratio</item>
-            <item>min-device-height</item>
-            <item>min-device-width</item>
-            <item>min-height</item>
-            <item>min-monochrome</item>
-            <item>min-resolution</item>
-            <item>min-width</item>
-            <item>monochrome</item>
-            <item>orientation</item>
-            <item>pointer</item>
-            <item>resolution</item>
-            <item>scan</item>
-            <item>update</item>
-            <item>width</item>
-        </list>
-
-        <!-- prefixed by :: -->
-        <list name="pseudoelements">
-            <item>after</item>
-            <item>before</item>
-            <item>cue</item>
-            <item>first-letter</item>
-            <item>first-line</item>
-            <item>selection</item>
-
-            <!-- experimental -->
-            <item>backdrop</item>
-            <item>placeholder</item>
-            <!-- <item>marker</item> -->
-            <item>slotted</item>
-            <!-- <item>spelling-error</item> -->
-            <!-- <item>grammar-error</item> -->
-
-            <!-- UI pseudo-classes -->
-            <item>value</item>
-            <item>choices</item>
-            <item>repeat-item</item>
-            <item>repeat-index</item>
-
-            <item>-moz-progress-bar</item>
-            <item>-moz-range-progress</item>
-            <item>-moz-range-thumb</item>
-            <item>-moz-range-track</item>
-            <item>-moz-selection</item>
-            <item>-ms-fill</item>
-            <item>-ms-fill-lower</item>
-            <item>-ms-fill-upper</item>
-            <item>-ms-thumb</item>
-            <item>-ms-track</item>
-            <item>-webkit-progress-bar</item>
-            <item>-webkit-progress-value</item>
-            <item>-webkit-slider-runnable-track</item>
-            <item>-webkit-slider-thumb</item>
-        </list>
-
-        <!-- prefixed by : -->
-        <list name="pseudoclasses">
-            <item>active</item>
-            <item>any-link</item>
-            <item>checked</item>
-            <item>default</item>
-            <item>defined</item>
-            <!-- <item>dir</item> -->
-            <item>disabled</item>
-            <item>empty</item>
-            <item>enabled</item>
-            <item>first-child</item>
-            <item>first-of-type</item>
-            <item>fullscreen</item>
-            <item>focus</item>
-            <item>focus-within</item>
-            <item>host</item>
-            <item>hover</item>
-            <item>in-range</item>
-            <item>indeterminate</item>
-            <item>invalid</item>
-            <item>lang</item>
-            <item>last-child</item>
-            <item>last-of-type</item>
-            <item>link</item>
-            <item>not</item>
-            <item>nth-child</item>
-            <item>nth-last-child</item>
-            <item>nth-last-of-type</item>
-            <item>nth-of-type</item>
-            <item>only-child</item>
-            <item>only-of-type</item>
-            <item>optional</item>
-            <item>out-of-range</item>
-            <item>placeholder-shown</item>
-            <item>read-only</item>
-            <item>read-write</item>
-            <item>required</item>
-            <item>root</item>
-            <item>scope</item>
-            <item>target</item>
-            <item>valid</item>
-            <item>visited</item>
-
-            <!-- pseudo-elements -->
-            <item>after</item>
-            <item>before</item>
-            <item>cue</item>
-            <item>first-letter</item>
-            <item>first-line</item>
-            <item>selection</item>
-        </list>
-
-        <list name="pseudoclass-selector">
-            <item>not</item>
-            <item>matches</item>
-        </list>
-
-        <list name="pseudoclasses-@page">
-            <item>blank</item>
-            <item>first</item>
-            <item>left</item>
-            <item>recto</item>
-            <item>right</item>
-            <item>verso</item>
-        </list>
-
-        <list name="at-rules">
-            <item>@character</item>
-            <item>@charset</item>
-            <item>@import</item>
-            <item>@namespace</item>
-        </list>
-
-        <list name="nested at-rules">
-            <item>@document</item>
-            <item>@media</item>
-            <item>@supports</item>
-        </list>
-
-        <list name="@viewport">
-            <item>@viewport</item>
-        </list>
-
-        <list name="within-@viewport">
-            <item>min-width</item>
-            <item>max-width</item>
-            <item>width</item>
-            <item>min-height</item>
-            <item>max-height</item>
-            <item>height</item>
-            <item>zoom</item>
-            <item>min-zoom</item>
-            <item>max-zoom</item>
-            <item>user-zoom</item>
-            <item>orientation</item>
-            <item>viewport-fit</item>
-        </list>
-
-        <list name="@page">
-            <item>@page</item>
-        </list>
-
-        <list name="within-@page">
-            <item>size</item>
-            <item>marks</item>
-            <item>bleed</item>
-        </list>
-
-        <list name="@font-face">
-            <item>@font-face</item>
-        </list>
-
-        <list name="within-@font-face">
-            <item>font-display</item>
-            <item>font-family</item>
-            <item>font-stretch</item>
-            <item>font-style</item>
-            <item>font-weight</item>
-            <item>font-variant</item>
-            <item>font-feature-settings</item>
-            <item>font-variation-settings</item>
-            <item>src</item>
-            <item>unicode-range</item>
-        </list>
-
-        <list name="@keyframes">
-            <item>@keyframes</item>
-        </list>
-
-        <list name="within-@keyframes">
-            <item>from</item>
-            <item>to</item>
-        </list>
-
-        <list name="media operators">
-            <item>and</item>
-            <item>only</item>
-            <item>not</item>
-        </list>
-
-        <contexts>
-            <context name="Base" attribute="Normal Text" lineEndContext="#stay">
-                <DetectSpaces />
-                <IncludeRules context="FindComments" />
-                <DetectChar attribute="Normal Text" context="RuleSet" char="{" beginRegion="ruleset" />
-                <DetectChar attribute="At Rule" context="SelectAtRule" char="@" lookAhead="true" />
-                <!-- find selectors // .class #id :hover :nth-child(2n+1) [type="search"] -->
-                <DetectChar attribute="Selector Pseudo" context="SelectorPseudo" char=":" />
-                <DetectChar attribute="Selector Attribute" context="SelectorAttr" char="[" />
-                <DetectChar attribute="Separator Symbol" context="#stay" char="," />
-                <AnyChar attribute="Operator" context="#stay" String="*>+~|" />
-                <RegExpr attribute="Selector Id" context="#stay" String="#[-]?(&nmstart;)(&nmchar;)*" />
-                <RegExpr attribute="Selector Class" context="#stay" String="\.([a-zA-Z0-9\-_]|[\x80-\xFF]|\\[0-9A-Fa-f]{1,6})*" />
-                <RegExpr attribute="Selector Tag" context="#stay" String="[-]?(&nmstart;)(&nmchar;)*" />
-            </context>
-
-            <context name="FindSelector" attribute="Normal Text" lineEndContext="#stay">
-                <IncludeRules context="FindComments" />
-                <!-- find selectors // .class #id :hover :nth-child(2n+1) [type="search"] -->
-                <DetectChar attribute="Selector Attribute" context="SelectorAttr" char="[" />
-                <DetectChar attribute="Separator Symbol" context="#stay" char="," />
-                <AnyChar attribute="Operator" context="#stay" String="*>+~|" />
-                <RegExpr attribute="Selector Id" context="#stay" String="#[-]?(&nmstart;)(&nmchar;)*" />
-                <RegExpr attribute="Selector Class" context="#stay" String="\.([a-zA-Z0-9\-_]|[\x80-\xFF]|\\[0-9A-Fa-f]{1,6})*" />
-                <RegExpr attribute="Selector Tag" context="#stay" String="[-]?(&nmstart;)(&nmchar;)*" />
-            </context>
-
-            <!-- find functions // rgba(255,255,255,0.75) -->
-            <context name="FindFunctions" attribute="Normal Text" lineEndContext="#stay">
-                <RegExpr attribute="Function" context="Function" String="[a-z\-]{2,}\(" lookAhead="true" />
-            </context>
-
-            <!-- find values //  10px 12pt 2.5em 1rem 75% #ffcc99 red solid -->
-            <context name="FindValues" attribute="Normal Text" lineEndContext="#stay">
-                <DetectChar attribute="Annotation" context="Annotation" char="!" />
-                <keyword attribute="Value Keyword" context="#stay" String="value keywords" />
-                <keyword attribute="Value" context="#stay" String="values" />
-                <keyword attribute="Color" context="#stay" String="colors" />
-                <RegExpr attribute="Color" context="#stay" String="#([0-9A-Fa-f]{3,4}){1,2}\b" />
-                <RegExpr attribute="Number" context="FindUnits" String="[-+]?([0-9]+(\.[0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?(?![-+])" />
-                <RegExpr attribute="Normal Text" context="#stay" String="[-]?(&nmstart;)(&nmchar;)*" />
-            </context>
-
-            <context name="Annotation" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
-                <WordDetect attribute="Annotation" context="#pop" String="important" />
-            </context>
-
-            <context name="FindUnits" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
-                <!-- https://drafts.csswg.org/css-values-4/#lengths -->
-                <RegExpr attribute="Unit" context="#stay" String="(%|(em|ex|cap|ch|ic|rem|lh|rlh|vw|vh|vi|vb|vmin|vmax|cm|mm|Q|in|pc|pt|px|deg|rad|grad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx|x)\b)(?![-+])" />
-            </context>
-
-            <!-- find strings // "some words" 'some words' -->
-            <context name="FindStrings" attribute="Normal Text" lineEndContext="#stay">
-                <DetectChar attribute="String" context="StringDQ" char="&quot;" />
-                <DetectChar attribute="String" context="StringSQ" char="'" />
-            </context>
-
-            <!-- find comments // /* comment */ -->
-            <context name="FindComments" attribute="Normal Text" lineEndContext="#stay">
-                <Detect2Chars attribute="Comment" context="IsComments" char="/" char1="*" lookAhead="true"/>
-                <Detect2Chars attribute="Error" context="Error" char="/" char1="/" />
-            </context>
-
-            <context name="Error" attribute="Error" lineEndContext="#pop">
-                <RegExpr attribute="Error" context="#pop" String=".*" />
-            </context>
-
-            <context name="IsComments" attribute="Normal Text" lineEndContext="#stay">
-                <RegExpr attribute="Region Marker" context="#pop" String="/\*\s*BEGIN\b.*\*/" beginRegion="UserDefined" />
-                <RegExpr attribute="Region Marker" context="#pop" String="/\*\s*END\b.*\*/" endRegion="UserDefined" />
-                <Detect2Chars attribute="Comment" context="Comment" char="/" char1="*" beginRegion="comment" />
-            </context>
-
-            <context name="SelectAtRule" attribute="At Rule" lineEndContext="#pop">
-                <keyword attribute="At Rule" context="#pop!NestedAtRule" String="nested at-rules" />
-                <keyword attribute="At Rule" context="#pop!AtRule" String="at-rules" />
-                <keyword attribute="At Rule" context="#pop!@keyframes" String="@keyframes" />
-                <keyword attribute="At Rule" context="#pop!@viewport" String="@viewport" />
-                <keyword attribute="At Rule" context="#pop!@font-face" String="@font-face" />
-                <keyword attribute="At Rule" context="#pop!@page" String="@page" />
-                <RegExpr attribute="At Rule" context="#pop!UnknownAtRule" String="@[a-zA-Z0-9\-_]+\b" />
-            </context>
-
-            <context name="@keyframes" attribute="Normal Text" lineEndContext="#stay">
-                <DetectSpaces />
-                <IncludeRules context="FindComments" />
-                <DetectChar attribute="Normal Text" context="Within-@keyframes" char="{" beginRegion="ruleset" />
-            </context>
-
-            <context name="Within-@keyframes" attribute="Normal Text" lineEndContext="#stay">
-                <DetectSpaces />
-                <IncludeRules context="FindComments" />
-                <DetectChar attribute="Normal Text" context="#pop#pop" char="}" endRegion="ruleset" />
-                <DetectChar attribute="Normal Text" context="RuleSet" char="{" beginRegion="ruleset" />
-                <keyword attribute="Value" context="#stay" String="within-@keyframes" />
-                <RegExpr attribute="Value" context="#stay" String="[-+]?[0-9.]+%" />
-            </context>
-
-            <context name="@viewport" attribute="Normal Text" lineEndContext="#stay">
-                <DetectSpaces />
-                <IncludeRules context="FindComments" />
-                <DetectChar attribute="Selector Pseudo" context="SelectorPseudo" char=":" />
-                <DetectChar attribute="Normal Text" context="#pop!Within-@viewport" char="{" beginRegion="ruleset" />
-            </context>
-
-            <context name="Within-@viewport" attribute="Normal Text" lineEndContext="#stay">
-                <DetectSpaces />
-                <keyword attribute="Property" context="IsProperty" String="within-@viewport" />
-                <IncludeRules context="RuleSet" />
-            </context>
-
-            <context name="@font-face" attribute="Normal Text" lineEndContext="#stay">
-                <DetectSpaces />
-                <IncludeRules context="FindComments" />
-                <DetectChar attribute="Normal Text" context="#pop!Within-@font-face" char="{" beginRegion="ruleset" />
-            </context>
-
-            <context name="Within-@font-face" attribute="Normal Text" lineEndContext="#stay">
-                <DetectSpaces />
-                <IncludeRules context="FindComments" />
-                <keyword attribute="Property" context="IsProperty" String="within-@font-face" />
-                <RegExpr attribute="Unknown Property" context="IsProperty" String="[A-Za-z_-]+\b" />
-                <DetectChar attribute="Normal Text" context="#pop" char="}" endRegion="ruleset" />
-            </context>
-
-            <context name="@page" attribute="Normal Text" lineEndContext="#stay">
-                <DetectSpaces />
-                <IncludeRules context="FindComments" />
-                <DetectChar attribute="Selector Pseudo" context="SelectorPseudo-@page" char=":" />
-                <DetectChar attribute="Normal Text" context="#pop!Within-@page" char="{" beginRegion="ruleset" />
-            </context>
-
-            <context name="SelectorPseudo-@page" attribute="Selector Pseudo" lineEndContext="#pop">
-                <keyword attribute="Selector Pseudo" context="#pop" String="pseudoclasses-@page" />
-                <RegExpr attribute="Selector Pseudo" context="#pop" String="[-a-zA-Z][-a-zA-Z0-9]*" />
-            </context>
-
-            <context name="Within-@page" attribute="Normal Text" lineEndContext="#stay">
-                <DetectSpaces />
-                <keyword attribute="Property" context="IsProperty" String="within-@page" />
-                <IncludeRules context="RuleSet" />
-            </context>
-
-            <context name="IsProperty" attribute="Error" lineEndContext="#stay">
-                <DetectSpaces attribute="Normal Text" />
-                <DetectChar attribute="Normal Text" context="RuleParameters" char=":" />
-            </context>
-
-            <context name="NestedAtRule" attribute="Normal Text" lineEndContext="#stay">
-                <DetectSpaces />
-                <DetectChar attribute="Normal Text" context="NestedBase" char="{" beginRegion="ruleset" />
-                <IncludeRules context="AtRuleValue" />
-            </context>
-
-            <context name="NestedBase" attribute="Normal Text" lineEndContext="#stay">
-                <DetectSpaces />
-                <DetectChar attribute="Normal Text" context="#pop#pop" char="}" endRegion="ruleset" />
-                <IncludeRules context="Base" />
-            </context>
-
-            <context name="AtRule" attribute="Normal Text" lineEndContext="#pop">
-                <DetectSpaces />
-                <DetectChar attribute="Separator Symbol" context="#pop" char=";" />
-                <IncludeRules context="AtRuleValue" />
-            </context>
-
-            <context name="UnknownAtRule" attribute="Normal Text" lineEndContext="#stay">
-                <DetectSpaces />
-                <DetectChar attribute="Separator Symbol" context="#pop" char=";" />
-                <DetectChar attribute="Normal Text" context="#pop!RuleSet" char="{" beginRegion="ruleset" />
-                <DetectChar attribute="Normal Text" context="#pop" char="}" endRegion="ruleset" />
-                <IncludeRules context="AtRuleValue" />
-            </context>
-
-            <context name="AtRuleValue" attribute="Normal Text" lineEndContext="#stay">
-                <IncludeRules context="FindComments" />
-                <IncludeRules context="FindStrings" />
-                <IncludeRules context="FindFunctions" />
-                <keyword attribute="Keyword" context="#stay" String="media operators" />
-                <RegExpr attribute="Property" context="#stay" String="[A-Za-z_-]+(?=\s*:)" />
-                <keyword attribute="Value" context="#stay" String="medias" />
-                <IncludeRules context="FindValues" />
-            </context>
-
-            <context name="SelectorAttr" attribute="Selector Attribute" lineEndContext="#stay">
-                <DetectChar attribute="Selector Attribute" context="#pop" char="]" />
-                <IncludeRules context="FindStrings" />
-                <DetectChar   attribute="Operator" context="SelectorAttrValue" char="=" />
-                <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="~" char1="=" />
-                <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="^" char1="=" />
-                <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="$" char1="=" />
-                <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="*" char1="=" />
-                <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="|" char1="=" />
-                <DetectIdentifier />
-            </context>
-
-            <context name="SelectorAttrValue" attribute="String" lineEndContext="#stay">
-                <DetectChar attribute="Selector Attribute" context="#pop#pop" char="]" />
-                <DetectIdentifier />
-            </context>
-
-            <context name="SelectorPseudo" attribute="Selector Pseudo" lineEndContext="#pop">
-                <DetectChar attribute="Selector Pseudo" context="SelectorPseudoElements" char=":" />
-                <keyword attribute="Selector Pseudo" context="SelectorPseudoValueSelector" String="pseudoclass-selector" />
-                <keyword attribute="Selector Pseudo" context="SelectorPseudoValue" String="pseudoclasses" />
-                <RegExpr attribute="Selector Pseudo" context="SelectorPseudoValue" String="[-a-zA-Z][-a-zA-Z0-9]*" />
-            </context>
-
-            <context name="SelectorPseudoElements" attribute="Selector Pseudo" lineEndContext="#pop#pop">
-                <keyword attribute="Selector Pseudo" context="#pop!SelectorPseudoValue" String="pseudoelements" />
-                <RegExpr attribute="Selector Pseudo" context="#pop!SelectorPseudoValue" String="[-a-zA-Z][-a-zA-Z0-9]*" />
-            </context>
-
-            <context name="SelectorPseudoValueSelector" attribute="Selector Pseudo" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
-                <DetectChar attribute="Selector Pseudo" context="SelectorPseudoValueCloseSelector" char="(" />
-            </context>
-
-            <context name="SelectorPseudoValueCloseSelector" attribute="Normal Text" lineEndContext="#stay">
-                <DetectSpaces />
-                <DetectChar attribute="Selector Pseudo" context="#pop#pop#pop" char=")" />
-                <DetectChar attribute="Error" context="#pop#pop#pop!RuleSet" char="{" beginRegion="ruleset" />
-                <IncludeRules context="FindSelector" />
-            </context>
-
-            <context name="SelectorPseudoValue" attribute="Selector Pseudo" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
-                <DetectChar attribute="Selector Pseudo" context="SelectorPseudoValueClose" char="(" />
-            </context>
-
-            <context name="SelectorPseudoValueClose" attribute="Selector Pseudo" lineEndContext="#pop#pop#pop">
-                <DetectChar attribute="Selector Pseudo" context="#pop#pop#pop" char=")" />
-                <DetectIdentifier />
-            </context>
-
-            <context name="Comment" attribute="Comment" lineEndContext="#stay">
-                <DetectSpaces />
-                <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="comment" />
-                <IncludeRules context="##Comments" />
-                <DetectIdentifier />
-            </context>
-
-            <context name="RuleSet" attribute="Normal Text" lineEndContext="#stay">
-                <DetectSpaces />
-                <DetectChar attribute="Normal Text" context="#pop" char="}" endRegion="ruleset" />
-                <RegExpr attribute="Property" context="Rule" String="[A-Za-z_-]+(?=\s*:)" lookAhead="true" />
-                <IncludeRules context="Base" />
-                <RegExpr attribute="Normal Text" context="#stay" String="[A-Za-z_-]+" />
-                <!-- auto-completion only, includes by previous rule -->
-                <keyword attribute="Normal Text" context="#stay" String="properties" />
-            </context>
-
-            <context name="Rule" attribute="Normal Text" lineEndContext="#stay">
-                <DetectChar attribute="Normal Text" context="RuleParameters" char=":" />
-                <Detect2Chars attribute="Variable" context="IsVariable" char="-" char1="-" />
-                <keyword attribute="Property" context="#stay" String="properties" />
-                <RegExpr attribute="Unknown Property" context="#stay" String="[^:]+" />
-            </context>
-
-            <context name="IsVariable" attribute="Normal Text" lineEndContext="#pop">
-                <DetectChar attribute="Normal Text" context="#pop!RuleParameters" char=":" />
-                <RegExpr attribute="Variable" context="#stay" String="[^:]+" />
-            </context>
-
-            <context name="RuleParameters" attribute="Normal Text" lineEndContext="#stay">
-                <DetectSpaces />
-                <IncludeRules context="FindComments" />
-                <IncludeRules context="FindStrings" />
-                <IncludeRules context="FindFunctions" />
-                <IncludeRules context="FindValues" />
-                <!-- Jump out conditions -->
-                <DetectChar attribute="Separator Symbol" context="#pop#pop" char=";" />
-                <DetectChar attribute="Separator Symbol" context="#stay" char="," />
-                <DetectChar attribute="Normal Text" context="#pop#pop#pop" char="}" endRegion="ruleset" />
-                <!-- auto-completion only -->
-                <keyword attribute="Normal Text" context="#stay" String="functions" />
-            </context>
-
-            <context name="Function" attribute="Normal Text" lineEndContext="#stay">
-                <DetectChar attribute="Function" context="FunctionParameters" char="(" />
-                <StringDetect attribute="Function" context="FunctionVar" String="var(" />
-                <StringDetect attribute="Function" context="FunctionUrl" String="url(" />
-                <StringDetect attribute="Function" context="FunctionCalc" String="calc(" />
-                <keyword attribute="Function" context="#stay" String="functions" />
-                <RegExpr attribute="Normal Text" context="#stay" String="[-a-zA-Z][-a-zA-Z0-9]*" />
-            </context>
-
-            <context name="FunctionVar" attribute="Variable" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!FunctionParameters">
-                <DetectSpaces />
-                <RegExpr attribute="Variable" context="#pop!FunctionParameters" String="--[^ \t\),]+" />
-            </context>
-
-            <context name="FunctionCalc" attribute="Normal Text" lineEndContext="#stay">
-                <DetectSpaces />
-                <DetectChar attribute="Function" context="#pop#pop" char=")" />
-                <IncludeRules context="Calc" />
-            </context>
-
-            <context name="NestedCalc" attribute="Normal Text" lineEndContext="#stay">
-                <DetectSpaces />
-                <DetectChar attribute="Normal Text" context="#pop" char=")" />
-                <IncludeRules context="Calc" />
-            </context>
-
-            <context name="Calc" attribute="Normal Text" lineEndContext="#stay">
-                <DetectChar attribute="Separator Symbol" context="#stay" char="," />
-                <DetectChar attribute="Normal Text" context="NestedCalc" char="(" />
-                <IncludeRules context="FindComments" />
-                <IncludeRules context="FindStrings" />
-                <IncludeRules context="FindFunctions" />
-                <IncludeRules context="FindValues" />
-                <RegExpr attribute="Operator" context="#stay" String="[-](?=$|[ \t(,;])|[+](?=$|[^0-9)])|[/*]" />
-                <!-- auto-completion only -->
-                <keyword attribute="Normal Text" context="#stay" String="functions" />
-            </context>
-
-            <context name="FunctionUrl" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="UrlValue">
-                <DetectSpaces />
-                <IncludeRules context="FindStrings" />
-                <DetectChar attribute="Function" context="#pop#pop" char=")" />
-            </context>
-
-            <context name="UrlValue" attribute="String" lineEndContext="#stay">
-                <DetectChar attribute="Function" context="#pop#pop#pop" char=")" />
-            </context>
-
-            <context name="FunctionParameters" attribute="Normal Text" lineEndContext="#stay">
-                <DetectSpaces />
-                <DetectChar attribute="Function" context="#pop#pop" char=")" />
-                <IncludeRules context="FindComments" />
-                <IncludeRules context="FindStrings" />
-                <IncludeRules context="FindValues" />
-                <DetectChar attribute="Separator Symbol" context="#stay" char="," />
-            </context>
-
-            <!-- string contexts -->
-            <context name="StringDQ" attribute="String" lineEndContext="#stay">
-                <DetectChar attribute="String" context="#pop" char="&quot;" />
-                <IncludeRules context="InsideString" />
-            </context>
-
-            <context name="StringSQ" attribute="String" lineEndContext="#stay">
-                <DetectChar attribute="String" context="#pop" char="'" />
-                <IncludeRules context="InsideString" />
-            </context>
-
-            <context name="InsideString" attribute="String" lineEndContext="#stay">
-                <RegExpr attribute="SpecialChar" context="#stay" String="\\([0-9A-Fa-f]{1,6}|.?)" />
-                <RegExpr attribute="String" context="#stay" String="\\?[^&quot;'\\]+" />
-            </context>
-
-        </contexts>
-
-        <itemDatas>
-            <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
-            <itemData name="At Rule" defStyleNum="dsImport" spellChecking="false"/>
-            <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
-            <itemData name="Property" defStyleNum="dsKeyword" spellChecking="false"/>
-            <itemData name="Unknown Property" defStyleNum="dsNormal" spellChecking="false"/>
-            <itemData name="String" defStyleNum="dsString"/>
-            <itemData name="SpecialChar" defStyleNum="dsSpecialChar" spellChecking="false"/>
-            <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>
-            <itemData name="Separator Symbol" defStyleNum="dsOperator" spellChecking="false"/>
-            <itemData name="Value" defStyleNum="dsDecVal" spellChecking="false"/>
-            <itemData name="Number" defStyleNum="dsDecVal" spellChecking="false"/>
-            <itemData name="Value Keyword" defStyleNum="dsBuiltIn" spellChecking="false"/>
-            <itemData name="Color" defStyleNum="dsConstant" spellChecking="false"/>
-            <itemData name="Unit" defStyleNum="dsDataType" spellChecking="false"/>
-            <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/>
-            <itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/>
-            <itemData name="Annotation" defStyleNum="dsAttribute" spellChecking="false"/>
-            <itemData name="Selector Id" defStyleNum="dsPreprocessor" bold="1" spellChecking="false"/>
-            <itemData name="Selector Class" defStyleNum="dsFunction" spellChecking="false"/>
-            <itemData name="Selector Attribute" defStyleNum="dsExtension" spellChecking="false"/>
-            <itemData name="Selector Pseudo" defStyleNum="dsInformation" italic="1" spellChecking="false"/>
-            <itemData name="Selector Tag" defStyleNum="dsNormal" spellChecking="false"/>
-            <itemData name="Comment" defStyleNum="dsComment" />
-            <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
-            <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
-        </itemDatas>
-    </highlighting>
-
-    <general>
-        <keywords casesensitive="0" weakDeliminator="-%@" />
-        <comments>
-            <comment name="multiLine" start="/*" end="*/" region="comment" />
+<!DOCTYPE language
+[
+  <!-- https://www.w3.org/TR/CSS22/syndata.html#tokenization -->
+  <!ENTITY escaped "\\([0-9a-fA-F]{1,6}|[^\n\r\f0-9a-fA-F])">
+  <!ENTITY ident   "-?([_a-zA-Z]|&escaped;)([-_a-zA-Z0-9]+|&escaped;)*">
+  <!-- identifiers starting with several - are invalid, but supported by browsers -->
+  <!ENTITY ident2  "([-\w]+|&escaped;)+">
+  <!ENTITY var     "--[-\w]*">
+  <!ENTITY func    "-?[a-zA-Z][-a-zA-Z0-9]*">
+  <!ENTITY propcheck "(?=\s*(/[*].*?[*]/\s*)?:)">
+]>
+
+<!--
+
+Kate CSS syntax highlighting definition
+
+Changelog:
+
+- Version 8, by Jonathan Poelen
+- fix some Operator and Selector Tag highlighting
+
+- Version 7, by Jonathan Poelen
+- fix tag followed by a pseudo-class in a nested rule (@media, ...)
+- fix constraint in a rule
+- fix Kate auto-completion for properties and rules
+- New highlighting categories: Keyword, Operator, Separator Symbol, SpecialChar, Variable, Value Keyword, Color, Number, Unit, Selector Tag
+
+- Version 4, by Guo Yunhe guoyunhebrave@gmail.com
+- Remake for complex CSS syntax, avoid errors
+
+- Version 2.13, by Guo Yunhe
+- Add all W3C Work Draft properties
+
+- Version 2.06, by Mte90:
+- CSS3 tag
+
+- Version 2.03, by Milian Wolff:
+- Make it spelling aware
+
+- Version 2.08, Joseph Wenninger:
+- CSS3 media queries
+
+-->
+
+<language name="CSS" version="17" kateversion="5.79" section="Markup" extensions="*.css" indenter="cstyle" mimetype="text/css" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL" priority="10">
+    <highlighting>
+        <!-- W3C > Work Draft, from https://www.w3.org/Style/CSS/all-properties (exclude FPWD)-->
+        <list name="properties">
+            <item>-webkit-line-clamp</item>
+            <item>-webkit-text-fill-color</item>
+            <item>-webkit-text-stroke</item>
+            <item>-webkit-text-stroke-color</item>
+            <item>-webkit-text-stroke-width</item>
+            <item>accent-color</item>
+            <item>additive-symbols</item>
+            <item>align-content</item>
+            <item>align-items</item>
+            <item>align-self</item>
+            <item>all</item>
+            <item>animation</item>
+            <item>animation-composition</item>
+            <item>animation-delay</item>
+            <item>animation-direction</item>
+            <item>animation-duration</item>
+            <item>animation-fill-mode</item>
+            <item>animation-iteration-count</item>
+            <item>animation-name</item>
+            <item>animation-play-state</item>
+            <item>animation-timing-function</item>
+            <item>appearance</item>
+            <item>ascent-override</item>
+            <item>aspect-ratio</item>
+            <item>backdrop-filter</item>
+            <item>backface-visibility</item>
+            <item>background</item>
+            <item>background-attachment</item>
+            <item>background-blend-mode</item>
+            <item>background-clip</item>
+            <item>background-color</item>
+            <item>background-image</item>
+            <item>background-origin</item>
+            <item>background-position</item>
+            <item>background-position-x</item>
+            <item>background-position-y</item>
+            <item>background-repeat</item>
+            <item>background-size</item>
+            <item>base-palette</item>
+            <item>block-size</item>
+            <item>border</item>
+            <item>border-block</item>
+            <item>border-block-color</item>
+            <item>border-block-end</item>
+            <item>border-block-end-color</item>
+            <item>border-block-end-style</item>
+            <item>border-block-end-width</item>
+            <item>border-block-start</item>
+            <item>border-block-start-color</item>
+            <item>border-block-start-style</item>
+            <item>border-block-start-width</item>
+            <item>border-block-style</item>
+            <item>border-block-width</item>
+            <item>border-bottom</item>
+            <item>border-bottom-color</item>
+            <item>border-bottom-left-radius</item>
+            <item>border-bottom-right-radius</item>
+            <item>border-bottom-style</item>
+            <item>border-bottom-width</item>
+            <item>border-collapse</item>
+            <item>border-color</item>
+            <item>border-end-end-radius</item>
+            <item>border-end-start-radius</item>
+            <item>border-image</item>
+            <item>border-image-outset</item>
+            <item>border-image-repeat</item>
+            <item>border-image-slice</item>
+            <item>border-image-source</item>
+            <item>border-image-width</item>
+            <item>border-inline</item>
+            <item>border-inline-color</item>
+            <item>border-inline-end</item>
+            <item>border-inline-end-color</item>
+            <item>border-inline-end-style</item>
+            <item>border-inline-end-width</item>
+            <item>border-inline-start</item>
+            <item>border-inline-start-color</item>
+            <item>border-inline-start-style</item>
+            <item>border-inline-start-width</item>
+            <item>border-inline-style</item>
+            <item>border-inline-width</item>
+            <item>border-left</item>
+            <item>border-left-color</item>
+            <item>border-left-style</item>
+            <item>border-left-width</item>
+            <item>border-radius</item>
+            <item>border-right</item>
+            <item>border-right-color</item>
+            <item>border-right-style</item>
+            <item>border-right-width</item>
+            <item>border-spacing</item>
+            <item>border-start-end-radius</item>
+            <item>border-start-start-radius</item>
+            <item>border-style</item>
+            <item>border-top</item>
+            <item>border-top-color</item>
+            <item>border-top-left-radius</item>
+            <item>border-top-right-radius</item>
+            <item>border-top-style</item>
+            <item>border-top-width</item>
+            <item>border-width</item>
+            <item>bottom</item>
+            <item>box-decoration-break</item>
+            <item>box-shadow</item>
+            <item>box-sizing</item>
+            <item>break-after</item>
+            <item>break-before</item>
+            <item>break-inside</item>
+            <item>caption-side</item>
+            <item>caret-color</item>
+            <item>clear</item>
+            <item>clip-path</item>
+            <item>color</item>
+            <item>color-scheme</item>
+            <item>column-count</item>
+            <item>column-fill</item>
+            <item>column-gap</item>
+            <item>column-rule</item>
+            <item>column-rule-color</item>
+            <item>column-rule-style</item>
+            <item>column-rule-width</item>
+            <item>column-span</item>
+            <item>column-width</item>
+            <item>columns</item>
+            <item>contain</item>
+            <item>contain-intrinsic-block-size</item>
+            <item>contain-intrinsic-height</item>
+            <item>contain-intrinsic-inline-size</item>
+            <item>contain-intrinsic-size</item>
+            <item>contain-intrinsic-width</item>
+            <item>container</item>
+            <item>container-name</item>
+            <item>container-type</item>
+            <item>content</item>
+            <item>counter-increment</item>
+            <item>counter-reset</item>
+            <item>counter-set</item>
+            <item>cursor</item>
+            <item>descent-override</item>
+            <item>direction</item>
+            <item>display</item>
+            <item>empty-cells</item>
+            <item>fallback</item>
+            <item>filter</item>
+            <item>flex</item>
+            <item>flex-basis</item>
+            <item>flex-direction</item>
+            <item>flex-flow</item>
+            <item>flex-grow</item>
+            <item>flex-shrink</item>
+            <item>flex-wrap</item>
+            <item>float</item>
+            <item>font</item>
+            <item>font-display</item>
+            <item>font-family</item>
+            <item>font-feature-settings</item>
+            <item>font-kerning</item>
+            <item>font-language-override</item>
+            <item>font-optical-sizing</item>
+            <item>font-palette</item>
+            <item>font-size</item>
+            <item>font-size-adjust</item>
+            <item>font-stretch</item>
+            <item>font-style</item>
+            <item>font-synthesis</item>
+            <item>font-synthesis-position</item>
+            <item>font-synthesis-small-caps</item>
+            <item>font-synthesis-style</item>
+            <item>font-synthesis-weight</item>
+            <item>font-variant</item>
+            <item>font-variant-alternates</item>
+            <item>font-variant-caps</item>
+            <item>font-variant-east-asian</item>
+            <item>font-variant-emoji</item>
+            <item>font-variant-ligatures</item>
+            <item>font-variant-numeric</item>
+            <item>font-variant-position</item>
+            <item>font-variation-settings</item>
+            <item>font-weight</item>
+            <item>forced-color-adjust</item>
+            <item>gap</item>
+            <item>grid</item>
+            <item>grid-area</item>
+            <item>grid-auto-columns</item>
+            <item>grid-auto-flow</item>
+            <item>grid-auto-rows</item>
+            <item>grid-column</item>
+            <item>grid-column-end</item>
+            <item>grid-column-start</item>
+            <item>grid-row</item>
+            <item>grid-row-end</item>
+            <item>grid-row-start</item>
+            <item>grid-template</item>
+            <item>grid-template-areas</item>
+            <item>grid-template-columns</item>
+            <item>grid-template-rows</item>
+            <item>hanging-punctuation</item>
+            <item>height</item>
+            <item>hyphenate-character</item>
+            <item>hyphenate-limit-chars</item>
+            <item>hyphens</item>
+            <item>image-orientation</item>
+            <item>image-rendering</item>
+            <item>inherits</item>
+            <item>initial-value</item>
+            <item>inline-size</item>
+            <item>inset</item>
+            <item>inset-block</item>
+            <item>inset-block-end</item>
+            <item>inset-block-start</item>
+            <item>inset-inline</item>
+            <item>inset-inline-end</item>
+            <item>inset-inline-start</item>
+            <item>isolation</item>
+            <item>justify-content</item>
+            <item>justify-items</item>
+            <item>justify-self</item>
+            <item>left</item>
+            <item>letter-spacing</item>
+            <item>line-break</item>
+            <item>line-gap-override</item>
+            <item>line-height</item>
+            <item>list-style</item>
+            <item>list-style-image</item>
+            <item>list-style-position</item>
+            <item>list-style-type</item>
+            <item>margin</item>
+            <item>margin-block</item>
+            <item>margin-block-end</item>
+            <item>margin-block-start</item>
+            <item>margin-bottom</item>
+            <item>margin-inline</item>
+            <item>margin-inline-end</item>
+            <item>margin-inline-start</item>
+            <item>margin-left</item>
+            <item>margin-right</item>
+            <item>margin-top</item>
+            <item>mask</item>
+            <item>mask-border</item>
+            <item>mask-border-mode</item>
+            <item>mask-border-outset</item>
+            <item>mask-border-repeat</item>
+            <item>mask-border-slice</item>
+            <item>mask-border-source</item>
+            <item>mask-border-width</item>
+            <item>mask-clip</item>
+            <item>mask-composite</item>
+            <item>mask-image</item>
+            <item>mask-mode</item>
+            <item>mask-origin</item>
+            <item>mask-position</item>
+            <item>mask-repeat</item>
+            <item>mask-size</item>
+            <item>mask-type</item>
+            <item>math-depth</item>
+            <item>math-style</item>
+            <item>max-block-size</item>
+            <item>max-height</item>
+            <item>max-inline-size</item>
+            <item>max-width</item>
+            <item>min-block-size</item>
+            <item>min-height</item>
+            <item>min-inline-size</item>
+            <item>min-width</item>
+            <item>mix-blend-mode</item>
+            <item>negative</item>
+            <item>object-fit</item>
+            <item>object-position</item>
+            <item>offset</item>
+            <item>offset-anchor</item>
+            <item>offset-distance</item>
+            <item>offset-path</item>
+            <item>offset-rotate</item>
+            <item>opacity</item>
+            <item>order</item>
+            <item>orphans</item>
+            <item>outline</item>
+            <item>outline-color</item>
+            <item>outline-offset</item>
+            <item>outline-style</item>
+            <item>outline-width</item>
+            <item>overflow</item>
+            <item>overflow-anchor</item>
+            <item>overflow-block</item>
+            <item>overflow-clip-margin</item>
+            <item>overflow-inline</item>
+            <item>overflow-wrap</item>
+            <item>overflow-x</item>
+            <item>overflow-y</item>
+            <item>override-colors</item>
+            <item>overscroll-behavior</item>
+            <item>overscroll-behavior-block</item>
+            <item>overscroll-behavior-inline</item>
+            <item>overscroll-behavior-x</item>
+            <item>overscroll-behavior-y</item>
+            <item>pad</item>
+            <item>padding</item>
+            <item>padding-block</item>
+            <item>padding-block-end</item>
+            <item>padding-block-start</item>
+            <item>padding-bottom</item>
+            <item>padding-inline</item>
+            <item>padding-inline-end</item>
+            <item>padding-inline-start</item>
+            <item>padding-left</item>
+            <item>padding-right</item>
+            <item>padding-top</item>
+            <item>page</item>
+            <item>page-break-after</item>
+            <item>page-break-before</item>
+            <item>page-break-inside</item>
+            <item>page-orientation</item>
+            <item>paint-order</item>
+            <item>perspective</item>
+            <item>perspective-origin</item>
+            <item>place-content</item>
+            <item>place-items</item>
+            <item>place-self</item>
+            <item>pointer-events</item>
+            <item>position</item>
+            <item>prefix</item>
+            <item>print-color-adjust</item>
+            <item>quotes</item>
+            <item>range</item>
+            <item>resize</item>
+            <item>right</item>
+            <item>rotate</item>
+            <item>row-gap</item>
+            <item>ruby-position</item>
+            <item>scale</item>
+            <item>scroll-behavior</item>
+            <item>scroll-margin</item>
+            <item>scroll-margin-block</item>
+            <item>scroll-margin-block-end</item>
+            <item>scroll-margin-block-start</item>
+            <item>scroll-margin-bottom</item>
+            <item>scroll-margin-inline</item>
+            <item>scroll-margin-inline-end</item>
+            <item>scroll-margin-inline-start</item>
+            <item>scroll-margin-left</item>
+            <item>scroll-margin-right</item>
+            <item>scroll-margin-top</item>
+            <item>scroll-padding</item>
+            <item>scroll-padding-block</item>
+            <item>scroll-padding-block-end</item>
+            <item>scroll-padding-block-start</item>
+            <item>scroll-padding-bottom</item>
+            <item>scroll-padding-inline</item>
+            <item>scroll-padding-inline-end</item>
+            <item>scroll-padding-inline-start</item>
+            <item>scroll-padding-left</item>
+            <item>scroll-padding-right</item>
+            <item>scroll-padding-top</item>
+            <item>scroll-snap-align</item>
+            <item>scroll-snap-stop</item>
+            <item>scroll-snap-type</item>
+            <item>scrollbar-color</item>
+            <item>scrollbar-gutter</item>
+            <item>scrollbar-width</item>
+            <item>shape-image-threshold</item>
+            <item>shape-margin</item>
+            <item>shape-outside</item>
+            <item>size</item>
+            <item>size-adjust</item>
+            <item>speak-as</item>
+            <item>src</item>
+            <item>suffix</item>
+            <item>symbols</item>
+            <item>syntax</item>
+            <item>system</item>
+            <item>tab-size</item>
+            <item>table-layout</item>
+            <item>text-align</item>
+            <item>text-align-last</item>
+            <item>text-combine-upright</item>
+            <item>text-decoration</item>
+            <item>text-decoration-color</item>
+            <item>text-decoration-line</item>
+            <item>text-decoration-skip-ink</item>
+            <item>text-decoration-style</item>
+            <item>text-decoration-thickness</item>
+            <item>text-emphasis</item>
+            <item>text-emphasis-color</item>
+            <item>text-emphasis-position</item>
+            <item>text-emphasis-style</item>
+            <item>text-indent</item>
+            <item>text-justify</item>
+            <item>text-orientation</item>
+            <item>text-overflow</item>
+            <item>text-rendering</item>
+            <item>text-shadow</item>
+            <item>text-transform</item>
+            <item>text-underline-offset</item>
+            <item>text-underline-position</item>
+            <item>top</item>
+            <item>touch-action</item>
+            <item>transform</item>
+            <item>transform-box</item>
+            <item>transform-origin</item>
+            <item>transform-style</item>
+            <item>transition</item>
+            <item>transition-delay</item>
+            <item>transition-duration</item>
+            <item>transition-property</item>
+            <item>transition-timing-function</item>
+            <item>translate</item>
+            <item>unicode-bidi</item>
+            <item>unicode-range</item>
+            <item>user-select</item>
+            <item>vertical-align</item>
+            <item>visibility</item>
+            <item>white-space</item>
+            <item>widows</item>
+            <item>width</item>
+            <item>will-change</item>
+            <item>word-break</item>
+            <item>word-spacing</item>
+            <item>writing-mode</item>
+            <item>z-index</item>
+
+            <!-- SVG only -->
+
+            <item>alignment-baseline</item>
+            <item>baseline-shift</item>
+            <item>color-interpolation</item>
+            <item>color-interpolation-filters</item>
+            <item>dominant-baseline</item>
+            <item>fill</item>
+            <item>fill-opacity</item>
+            <item>fill-rule</item>
+            <item>flood-color</item>
+            <item>flood-opacity</item>
+            <item>marker-end</item>
+            <item>marker-mid</item>
+            <item>marker-start</item>
+            <item>shape-rendering</item>
+            <item>stop-color</item>
+            <item>stop-opacity</item>
+            <item>stroke</item>
+            <item>stroke-dasharray</item>
+            <item>stroke-dashoffset</item>
+            <item>stroke-linecap</item>
+            <item>stroke-linejoin</item>
+            <item>stroke-miterlimit</item>
+            <item>stroke-opacity</item>
+            <item>text-anchor</item>
+            <item>vector-effect</item>
+        </list>
+
+        <list name="vendor properties">
+            <!-- Gecko rendering engine CSS property extensions -->
+            <item>-moz-box-align</item>
+            <item>-moz-box-direction</item>
+            <item>-moz-box-flex</item>
+            <item>-moz-box-flex-group</item>
+            <item>-moz-box-ordinal-group</item>
+            <item>-moz-box-orient</item>
+            <item>-moz-box-pack</item>
+            <item>-moz-box</item>
+
+            <!-- Opera rendering engine CSS property extensions -->
+            <item>-o-linear-gradient</item>
+
+            <!-- konq specific -->
+            <item>konq_bgpos_x</item>
+            <item>konq_bgpos_y</item>
+
+            <!-- Webkit rendering engine CSS property extensions -->
+            <item>-webkit-box-align</item>
+            <item>-webkit-box-direction</item>
+            <item>-webkit-box-flex</item>
+            <item>-webkit-box-ordinal-group</item>
+            <item>-webkit-box-orient</item>
+            <item>-webkit-box-pack</item>
+            <item>-webkit-box-reflect</item>
+            <item>-webkit-linear-gradient</item>
+            <item>-webkit-gradient</item>
+            <item>-webkit-overflow-scrolling</item>
+            <item>-webkit-text-decoration-skip</item>
+            <item>-webkit-text-size-adjust</item>
+            <item>-webkit-tap-highlight-color</item>
+
+            <!-- Trident (a.k.a., MSHTML) CSS property extensions -->
+            <item>-ms-filter</item>
+            <item>-ms-flex</item>
+            <item>-ms-flex-align</item>
+            <item>-ms-flex-item-align</item>
+            <item>-ms-flex-line-pack</item>
+            <item>-ms-flex-negative</item>
+            <item>-ms-flex-order</item>
+            <item>-ms-flex-pack</item>
+            <item>-ms-flex-positive</item>
+            <item>-ms-flex-position</item>
+            <item>-ms-flex-preferred-size</item>
+            <item>-ms-interpolation-mode</item>
+            <item>-ms-linear-gradient</item>
+            <item>-ms-text-size-adjust</item>
+        </list>
+
+        <list name="value keywords">
+            <item>auto</item>
+            <item>inherit</item>
+            <item>initial</item>
+            <item>revert</item>
+            <item>revert-layer</item>
+            <item>unset</item>
+        </list>
+
+        <list name="values">
+            <item>-moz-arabic-indic</item>
+            <item>-moz-bengali</item>
+            <item>-moz-cjk-earthly-branch</item>
+            <item>-moz-cjk-heavenly-stem</item>
+            <item>-moz-devanagari</item>
+            <item>-moz-gujarati</item>
+            <item>-moz-gurmukhi</item>
+            <item>-moz-kannada</item>
+            <item>-moz-lao</item>
+            <item>-moz-malayalam</item>
+            <item>-moz-myanmar</item>
+            <item>-moz-oriya</item>
+            <item>-moz-persian</item>
+            <item>-moz-tamil</item>
+            <item>-moz-telugu</item>
+            <item>-moz-thai</item>
+            <item>absolute</item>
+            <item>accumulate</item>
+            <item>add</item>
+            <item>additive</item>
+            <item>alias</item>
+            <item>all</item>
+            <item>all-petite-caps</item>
+            <item>all-scroll</item>
+            <item>all-small-caps</item>
+            <item>allow-end</item>
+            <item>alpha</item>
+            <item>alphabetic</item>
+            <item>alternate</item>
+            <item>alternate-reverse</item>
+            <item>always</item>
+            <item>anywhere</item>
+            <item>arabic-indic</item>
+            <item>armenian</item>
+            <item>auto-add</item>
+            <item>auto-fill</item>
+            <item>auto-fit</item>
+            <item>avoid</item>
+            <item>avoid-column</item>
+            <item>avoid-page</item>
+            <item>avoid-region</item>
+            <item>backwards</item>
+            <item>balance</item>
+            <item>balance-all</item>
+            <item>baseline</item>
+            <item>bengali</item>
+            <item>bidi-override</item>
+            <item>bigger</item>
+            <item>block</item>
+            <item>block-end</item>
+            <item>block-start</item>
+            <item>bold</item>
+            <item>bolder</item>
+            <item>border</item>
+            <item>border-box</item>
+            <item>both</item>
+            <item>both-edges</item>
+            <item>bottom</item>
+            <item>break-all</item>
+            <item>break-spaces</item>
+            <item>break-word</item>
+            <item>bullets</item>
+            <item>cambodian</item>
+            <item>cap-height</item>
+            <item>capitalize</item>
+            <item>cell</item>
+            <item>center</item>
+            <item>ch-width</item>
+            <item>circle</item>
+            <item>cjk-decimal</item>
+            <item>cjk-earthly-branch</item>
+            <item>cjk-heavenly-stem</item>
+            <item>cjk-ideographic</item>
+            <item>clip</item>
+            <item>clone</item>
+            <item>close-quote</item>
+            <item>col-resize</item>
+            <item>collapse</item>
+            <item>color</item>
+            <item>color-burn</item>
+            <item>color-dodge</item>
+            <item>column</item>
+            <item>column-reverse</item>
+            <item>common-ligatures</item>
+            <item>compact</item>
+            <item>condensed</item>
+            <item>contain</item>
+            <item>content</item>
+            <item>content-box</item>
+            <item>contents</item>
+            <item>context-menu</item>
+            <item>contextual</item>
+            <item>copy</item>
+            <item>cover</item>
+            <item>crisp-edges</item>
+            <item>crosshair</item>
+            <item>currentcolor</item>
+            <item>cursive</item>
+            <item>cyclic</item>
+            <item>dark</item>
+            <item>darken</item>
+            <item>dashed</item>
+            <item>decimal</item>
+            <item>decimal-leading-zero</item>
+            <item>default</item>
+            <item>dense</item>
+            <item>devanagari</item>
+            <item>diagonal-fractions</item>
+            <item>difference</item>
+            <item>disc</item>
+            <item>disclosure-closed</item>
+            <item>disclosure-open</item>
+            <item>discretionary-ligatures</item>
+            <item>dot</item>
+            <item>dotted</item>
+            <item>double</item>
+            <item>double-circle</item>
+            <item>e-resize</item>
+            <item>each-line</item>
+            <item>ease</item>
+            <item>ease-in</item>
+            <item>ease-in-out</item>
+            <item>ease-out</item>
+            <item>economy</item>
+            <item>ellipsis</item>
+            <item>embed</item>
+            <item>emoji</item>
+            <item>end</item>
+            <item>ethiopic-numeric</item>
+            <item>ew-resize</item>
+            <item>ex-height</item>
+            <item>exact</item>
+            <item>exclude</item>
+            <item>exclusion</item>
+            <item>expanded</item>
+            <item>extends</item>
+            <item>extra-condensed</item>
+            <item>extra-expanded</item>
+            <item>fade</item>
+            <item>fallback</item>
+            <item>false</item>
+            <item>fangsong</item>
+            <item>fantasy</item>
+            <item>fill</item>
+            <item>fill-box</item>
+            <item>filled</item>
+            <item>first</item>
+            <item>fit-content</item>
+            <item>fixed</item>
+            <item>flat</item>
+            <item>flex</item>
+            <item>flex-end</item>
+            <item>flex-start</item>
+            <item>flow</item>
+            <item>flow-root</item>
+            <item>force-end</item>
+            <item>forwards</item>
+            <item>from-font</item>
+            <item>from-image</item>
+            <item>full-size-kana</item>
+            <item>full-width</item>
+            <item>georgian</item>
+            <item>grab</item>
+            <item>grabbing</item>
+            <item>grid</item>
+            <item>groove</item>
+            <item>gujarati</item>
+            <item>gurmukhi</item>
+            <item>hanging</item>
+            <item>hard-light</item>
+            <item>hebrew</item>
+            <item>help</item>
+            <item>hidden</item>
+            <item>hide</item>
+            <item>high-quality</item>
+            <item>hiragana</item>
+            <item>hiragana-iroha</item>
+            <item>historical-forms</item>
+            <item>historical-ligatures</item>
+            <item>horizontal</item>
+            <item>horizontal-tb</item>
+            <item>hue</item>
+            <item>ic-height</item>
+            <item>ic-width</item>
+            <item>infinite</item>
+            <item>inline</item>
+            <item>inline-block</item>
+            <item>inline-end</item>
+            <item>inline-flex</item>
+            <item>inline-grid</item>
+            <item>inline-size</item>
+            <item>inline-start</item>
+            <item>inline-table</item>
+            <item>inset</item>
+            <item>inside</item>
+            <item>inter-character</item>
+            <item>inter-word</item>
+            <item>intersect</item>
+            <item>invert</item>
+            <item>isolate</item>
+            <item>isolate-override</item>
+            <item>italic</item>
+            <item>japanese-formal</item>
+            <item>japanese-informal</item>
+            <item>jump-both</item>
+            <item>jump-end</item>
+            <item>jump-none</item>
+            <item>jump-start</item>
+            <item>justify</item>
+            <item>justify-all</item>
+            <item>kannada</item>
+            <item>katakana</item>
+            <item>katakana-iroha</item>
+            <item>keep-all</item>
+            <item>keyword</item>
+            <item>khmer</item>
+            <item>korean-hangul-formal</item>
+            <item>korean-hanja-formal</item>
+            <item>korean-hanja-informal</item>
+            <item>landscape</item>
+            <item>lao</item>
+            <item>large</item>
+            <item>larger</item>
+            <item>last</item>
+            <item>layout</item>
+            <item>left</item>
+            <item>legacy</item>
+            <item>light</item>
+            <item>lighten</item>
+            <item>lighter</item>
+            <item>line-through</item>
+            <item>linear</item>
+            <item>lining-nums</item>
+            <item>local</item>
+            <item>loose</item>
+            <item>lower-alpha</item>
+            <item>lower-armenian</item>
+            <item>lower-greek</item>
+            <item>lower-latin</item>
+            <item>lower-roman</item>
+            <item>lowercase</item>
+            <item>ltr</item>
+            <item>luminance</item>
+            <item>luminosity</item>
+            <item>malayalam</item>
+            <item>mandatory</item>
+            <item>manipulation</item>
+            <item>manual</item>
+            <item>margin-box</item>
+            <item>match-parent</item>
+            <item>match-source</item>
+            <item>math</item>
+            <item>max-content</item>
+            <item>medium</item>
+            <item>min-content</item>
+            <item>mixed</item>
+            <item>mongolian</item>
+            <item>monospace</item>
+            <item>move</item>
+            <item>multiply</item>
+            <item>myanmar</item>
+            <item>n-resize</item>
+            <item>ne-resize</item>
+            <item>nesw-resize</item>
+            <item>no-clip</item>
+            <item>no-close-quote</item>
+            <item>no-common-ligatures</item>
+            <item>no-contextual</item>
+            <item>no-discretionary-ligatures</item>
+            <item>no-drop</item>
+            <item>no-historical-ligatures</item>
+            <item>no-open-quote</item>
+            <item>no-repeat</item>
+            <item>none</item>
+            <item>normal</item>
+            <item>not-allowed</item>
+            <item>nowrap</item>
+            <item>ns-resize</item>
+            <item>numbers</item>
+            <item>numeric</item>
+            <item>nw-resize</item>
+            <item>nwse-resize</item>
+            <item>oblique</item>
+            <item>oldstyle-nums</item>
+            <item>only</item>
+            <item>open</item>
+            <item>open-quote</item>
+            <item>optional</item>
+            <item>ordinal</item>
+            <item>oriya</item>
+            <item>outset</item>
+            <item>outside</item>
+            <item>over</item>
+            <item>overlay</item>
+            <item>overline</item>
+            <item>padding</item>
+            <item>padding-box</item>
+            <item>paint</item>
+            <item>painted</item>
+            <item>pan-down</item>
+            <item>pan-left</item>
+            <item>pan-right</item>
+            <item>pan-up</item>
+            <item>pan-x</item>
+            <item>pan-y</item>
+            <item>paused</item>
+            <item>persian</item>
+            <item>petite-caps</item>
+            <item>pinch-zoom</item>
+            <item>pixelated</item>
+            <item>plaintext</item>
+            <item>pointer</item>
+            <item>portrait</item>
+            <item>position</item>
+            <item>pre</item>
+            <item>pre-line</item>
+            <item>pre-wrap</item>
+            <item>preserve-3d</item>
+            <item>progress</item>
+            <item>proportional-nums</item>
+            <item>proportional-width</item>
+            <item>proximity</item>
+            <item>recto</item>
+            <item>relative</item>
+            <item>repeat</item>
+            <item>repeat-x</item>
+            <item>repeat-y</item>
+            <item>replace</item>
+            <item>reverse</item>
+            <item>ridge</item>
+            <item>right</item>
+            <item>rotate-left</item>
+            <item>rotate-right</item>
+            <item>round</item>
+            <item>row</item>
+            <item>row-resize</item>
+            <item>row-reverse</item>
+            <item>rtl</item>
+            <item>ruby</item>
+            <item>ruby-base</item>
+            <item>ruby-base-container</item>
+            <item>ruby-text</item>
+            <item>ruby-text-container</item>
+            <item>running</item>
+            <item>s-resize</item>
+            <item>safe</item>
+            <item>sans-serif</item>
+            <item>saturation</item>
+            <item>scale-down</item>
+            <item>screen</item>
+            <item>scroll</item>
+            <item>scroll-position</item>
+            <item>se-resize</item>
+            <item>self-end</item>
+            <item>self-start</item>
+            <item>semi-condensed</item>
+            <item>semi-expanded</item>
+            <item>separate</item>
+            <item>serif</item>
+            <item>sesame</item>
+            <item>show</item>
+            <item>sideways</item>
+            <item>sideways-lr</item>
+            <item>sideways-right</item>
+            <item>sideways-rl</item>
+            <item>simp-chinese-formal</item>
+            <item>simp-chinese-informal</item>
+            <item>size</item>
+            <item>slashed-zero</item>
+            <item>slice</item>
+            <item>small</item>
+            <item>small-caps</item>
+            <item>smaller</item>
+            <item>smooth</item>
+            <item>soft-light</item>
+            <item>solid</item>
+            <item>space</item>
+            <item>space-around</item>
+            <item>space-between</item>
+            <item>space-evenly</item>
+            <item>spell-out</item>
+            <item>square</item>
+            <item>stable</item>
+            <item>stacked-fractions</item>
+            <item>start</item>
+            <item>static</item>
+            <item>step-end</item>
+            <item>step-start</item>
+            <item>sticky</item>
+            <item>stretch</item>
+            <item>strict</item>
+            <item>stroke</item>
+            <item>stroke-box</item>
+            <item>style</item>
+            <item>sub</item>
+            <item>subtract</item>
+            <item>super</item>
+            <item>sw-resize</item>
+            <item>swap</item>
+            <item>symbolic</item>
+            <item>system-ui</item>
+            <item>table</item>
+            <item>table-caption</item>
+            <item>table-cell</item>
+            <item>table-column</item>
+            <item>table-column-group</item>
+            <item>table-footer-group</item>
+            <item>table-header-group</item>
+            <item>table-row</item>
+            <item>table-row-group</item>
+            <item>tabular-nums</item>
+            <item>tamil</item>
+            <item>telugu</item>
+            <item>text</item>
+            <item>thai</item>
+            <item>thick</item>
+            <item>thin</item>
+            <item>tibetan</item>
+            <item>titling-caps</item>
+            <item>top</item>
+            <item>trad-chinese-formal</item>
+            <item>trad-chinese-informal</item>
+            <item>transparent</item>
+            <item>triangle</item>
+            <item>true</item>
+            <item>ui-monospace</item>
+            <item>ui-rounded</item>
+            <item>ui-sans-serif</item>
+            <item>ui-serif</item>
+            <item>ultra-condensed</item>
+            <item>ultra-expanded</item>
+            <item>under</item>
+            <item>underline</item>
+            <item>unicase</item>
+            <item>unicode</item>
+            <item>unsafe</item>
+            <item>upper-alpha</item>
+            <item>upper-armenian</item>
+            <item>upper-latin</item>
+            <item>upper-roman</item>
+            <item>uppercase</item>
+            <item>upright</item>
+            <item>use-glyph-orientation</item>
+            <item>verso</item>
+            <item>vertical</item>
+            <item>vertical-lr</item>
+            <item>vertical-rl</item>
+            <item>vertical-text</item>
+            <item>view-box</item>
+            <item>visible</item>
+            <item>visibleFill</item>
+            <item>visiblePainted</item>
+            <item>visibleStroke</item>
+            <item>w-resize</item>
+            <item>wait</item>
+            <item>weight</item>
+            <item>words</item>
+            <item>wrap</item>
+            <item>wrap-reverse</item>
+            <item>x-large</item>
+            <item>x-small</item>
+            <item>xx-large</item>
+            <item>xx-small</item>
+            <item>xxx-large</item>
+            <item>zoom-in</item>
+            <item>zoom-out</item>
+
+            <!-- SVG only -->
+
+            <item>after-edge</item>
+            <item>arcs</item>
+            <item>before-edge</item>
+            <item>bevel</item>
+            <item>bounding-box</item>
+            <item>butt</item>
+            <item>central</item>
+            <item>crispEdges</item>
+            <item>evenodd</item>
+            <item>fixed-position</item>
+            <item>freeze</item>
+            <item>geometricPrecision</item>
+            <item>ideographic</item>
+            <item>linearRGB</item>
+            <item>mathematical</item>
+            <item>middle</item>
+            <item>miter</item>
+            <item>miter-clip</item>
+            <item>non-rotation</item>
+            <item>non-scaling-size</item>
+            <item>non-scaling-stroke</item>
+            <item>nonzero</item>
+            <item>optimizeLegibility</item>
+            <item>optimizeQuality</item>
+            <item>optimizeSpeed</item>
+            <item>remove</item>
+            <item>sRGB</item>
+            <item>text-after-edge</item>
+            <item>text-before-edge</item>
+            <item>text-bottom</item>
+            <item>text-top</item>
+
+            <!-- manual list -->
+            <item>konq-center</item>
+        </list>
+
+        <list name="colors">
+            <item>aliceblue</item>
+            <item>antiquewhite</item>
+            <item>aqua</item>
+            <item>aquamarine</item>
+            <item>azure</item>
+            <item>beige</item>
+            <item>bisque</item>
+            <item>black</item>
+            <item>blanchedalmond</item>
+            <item>blue</item>
+            <item>blueviolet</item>
+            <item>brown</item>
+            <item>burlywood</item>
+            <item>cadetblue</item>
+            <item>chartreuse</item>
+            <item>chocolate</item>
+            <item>coral</item>
+            <item>cornflowerblue</item>
+            <item>cornsilk</item>
+            <item>crimson</item>
+            <item>cyan</item>
+            <item>darkblue</item>
+            <item>darkcyan</item>
+            <item>darkgoldenrod</item>
+            <item>darkgray</item>
+            <item>darkgreen</item>
+            <item>darkgrey</item>
+            <item>darkkhaki</item>
+            <item>darkmagenta</item>
+            <item>darkolivegreen</item>
+            <item>darkorange</item>
+            <item>darkorchid</item>
+            <item>darkred</item>
+            <item>darksalmon</item>
+            <item>darkseagreen</item>
+            <item>darkslateblue</item>
+            <item>darkslategray</item>
+            <item>darkslategrey</item>
+            <item>darkturquoise</item>
+            <item>darkviolet</item>
+            <item>deeppink</item>
+            <item>deepskyblue</item>
+            <item>dimgray</item>
+            <item>dimgrey</item>
+            <item>dodgerblue</item>
+            <item>firebrick</item>
+            <item>floralwhite</item>
+            <item>forestgreen</item>
+            <item>fuchsia</item>
+            <item>gainsboro</item>
+            <item>ghostwhite</item>
+            <item>gold</item>
+            <item>goldenrod</item>
+            <item>gray</item>
+            <item>green</item>
+            <item>greenyellow</item>
+            <item>grey</item>
+            <item>honeydew</item>
+            <item>hotpink</item>
+            <item>indianred</item>
+            <item>indigo</item>
+            <item>ivory</item>
+            <item>khaki</item>
+            <item>lavender</item>
+            <item>lavenderblush</item>
+            <item>lawngreen</item>
+            <item>lemonchiffon</item>
+            <item>lightblue</item>
+            <item>lightcoral</item>
+            <item>lightcyan</item>
+            <item>lightgoldenrodyellow</item>
+            <item>lightgray</item>
+            <item>lightgreen</item>
+            <item>lightgrey</item>
+            <item>lightpink</item>
+            <item>lightsalmon</item>
+            <item>lightseagreen</item>
+            <item>lightskyblue</item>
+            <item>lightslategray</item>
+            <item>lightslategrey</item>
+            <item>lightsteelblue</item>
+            <item>lightyellow</item>
+            <item>lime</item>
+            <item>limegreen</item>
+            <item>linen</item>
+            <item>magenta</item>
+            <item>maroon</item>
+            <item>mediumaquamarine</item>
+            <item>mediumblue</item>
+            <item>mediumorchid</item>
+            <item>mediumpurple</item>
+            <item>mediumseagreen</item>
+            <item>mediumslateblue</item>
+            <item>mediumspringgreen</item>
+            <item>mediumturquoise</item>
+            <item>mediumvioletred</item>
+            <item>midnightblue</item>
+            <item>mintcream</item>
+            <item>mistyrose</item>
+            <item>moccasin</item>
+            <item>navajowhite</item>
+            <item>navy</item>
+            <item>oldlace</item>
+            <item>olive</item>
+            <item>olivedrab</item>
+            <item>orange</item>
+            <item>orangered</item>
+            <item>orchid</item>
+            <item>palegoldenrod</item>
+            <item>palegreen</item>
+            <item>paleturquoise</item>
+            <item>palevioletred</item>
+            <item>papayawhip</item>
+            <item>peachpuff</item>
+            <item>peru</item>
+            <item>pink</item>
+            <item>plum</item>
+            <item>powderblue</item>
+            <item>purple</item>
+            <item>rebeccapurple</item>
+            <item>red</item>
+            <item>rosybrown</item>
+            <item>royalblue</item>
+            <item>saddlebrown</item>
+            <item>salmon</item>
+            <item>sandybrown</item>
+            <item>seagreen</item>
+            <item>seashell</item>
+            <item>sienna</item>
+            <item>silver</item>
+            <item>skyblue</item>
+            <item>slateblue</item>
+            <item>slategray</item>
+            <item>slategrey</item>
+            <item>snow</item>
+            <item>springgreen</item>
+            <item>steelblue</item>
+            <item>tan</item>
+            <item>teal</item>
+            <item>thistle</item>
+            <item>tomato</item>
+            <item>turquoise</item>
+            <item>violet</item>
+            <item>wheat</item>
+            <item>white</item>
+            <item>whitesmoke</item>
+            <item>yellow</item>
+            <item>yellowgreen</item>
+            
+            <!-- System colors -->
+            <item>AccentColor</item>
+            <item>AccentColorText</item>
+            <item>ActiveText</item>
+            <item>ButtonBorder</item>
+            <item>ButtonFace</item>
+            <item>ButtonText</item>
+            <item>Canvas</item>
+            <item>CanvasText</item>
+            <item>Field</item>
+            <item>FieldText</item>
+            <item>GrayText</item>
+            <item>Highlight</item>
+            <item>HighlightText</item>
+            <item>LinkText</item>
+            <item>Mark</item>
+            <item>MarkText</item>
+            <item>VisitedText</item>
+        </list>
+
+        <!-- https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Functions -->
+        <list name="functions">
+            <item>abs</item>
+            <item>acos</item>
+            <item>annotation</item>
+            <item>asin</item>
+            <item>atan</item>
+            <item>atan2</item>
+            <item>attr</item>
+            <item>blur</item>
+            <item>brightness</item>
+            <item>calc</item>
+            <item>character-variant</item>
+            <item>circle</item>
+            <item>clamp</item>
+            <item>color</item>
+            <item>color-mix</item>
+            <item>conic-gradient</item>
+            <item>contrast</item>
+            <item>cos</item>
+            <item>counter</item>
+            <item>counters</item>
+            <item>cross-fade</item>
+            <item>device-cmyk</item>
+            <item>drop-shadow</item>
+            <item>ellipse</item>
+            <item>env</item>
+            <item>exp</item>
+            <item>fit-content</item>
+            <item>format</item>
+            <item>grayscale</item>
+            <item>hsl</item>
+            <item>hue-rotate</item>
+            <item>hwb</item>
+            <item>hypot</item>
+            <item>image</item>
+            <item>image-set</item>
+            <item>inset</item>
+            <item>invert</item>
+            <item>lab</item>
+            <item>lch</item>
+            <item>linear-gradient</item>
+            <item>local</item>
+            <item>log</item>
+            <item>matrix</item>
+            <item>matrix3d</item>
+            <item>max</item>
+            <item>min</item>
+            <item>minmax</item>
+            <item>mod</item>
+            <item>oklab</item>
+            <item>oklch</item>
+            <item>opacity</item>
+            <item>ornaments</item>
+            <item>paint</item>
+            <item>path</item>
+            <item>perspective</item>
+            <item>polygon</item>
+            <item>pow</item>
+            <item>radial-gradient</item>
+            <item>rem</item>
+            <item>repeat</item>
+            <item>repeating-conic-gradient</item>
+            <item>repeating-linear-gradient</item>
+            <item>repeating-radial-gradient</item>
+            <item>rgb</item>
+            <item>rotate</item>
+            <item>rotate3d</item>
+            <item>rotateX</item>
+            <item>rotateY</item>
+            <item>rotateZ</item>
+            <item>round</item>
+            <item>saturate</item>
+            <item>scale</item>
+            <item>scale3d</item>
+            <item>scaleX</item>
+            <item>scaleY</item>
+            <item>scaleZ</item>
+            <item>sepia</item>
+            <item>sign</item>
+            <item>sin</item>
+            <item>skew</item>
+            <item>skewX</item>
+            <item>skewY</item>
+            <item>sqrt</item>
+            <item>styleset</item>
+            <item>stylistic</item>
+            <item>swash</item>
+            <item>symbols</item>
+            <item>tan</item>
+            <item>tech</item>
+            <item>translate</item>
+            <item>translate3d</item>
+            <item>translateX</item>
+            <item>translateY</item>
+            <item>translateZ</item>
+            <item>url</item>
+            <item>var</item>
+        </list>
+
+        <list name="media types">
+            <item>all</item>
+            <item>print</item>
+            <item>screen</item>
+            <item>speech</item>
+        </list>
+
+        <list name="media features">
+            <item>-webkit-device-pixel-ratio</item>
+            <item>-webkit-transform-3d</item>
+            <item>any-hover</item>
+            <item>any-pointer</item>
+            <item>aspect-ratio</item>
+            <item>color</item>
+            <item>color-gamut</item>
+            <item>color-index</item>
+            <item>display-mode</item>
+            <item>dynamic-range</item>
+            <item>forced-colors</item>
+            <item>grid</item>
+            <item>height</item>
+            <item>hover</item>
+            <item>inverted-colors</item>
+            <item>max-height</item>
+            <item>max-width</item>
+            <item>min-height</item>
+            <item>min-width</item>
+            <item>monochrome</item>
+            <item>orientation</item>
+            <item>overflow-block</item>
+            <item>overflow-inline</item>
+            <item>pointer</item>
+            <item>prefers-color-scheme</item>
+            <item>prefers-contrast</item>
+            <item>prefers-reduced-motion</item>
+            <item>resolution</item>
+            <item>scripting</item>
+            <item>update</item>
+            <item>video-dynamic-range</item>
+            <item>width</item>
+        </list>
+
+        <!-- prefixed by :: -->
+        <list name="pseudo-elements">
+            <item>after</item>
+            <item>backdrop</item>
+            <item>before</item>
+            <item>cue</item>
+            <item>cue-region</item>
+            <item>file-selector-button</item>
+            <item>first-letter</item>
+            <item>first-line</item>
+            <item>marker</item>
+            <item>part</item>
+            <item>placeholder</item>
+            <item>selection</item>
+            <item>slotted</item>
+
+            <!-- manual list -->
+
+            <item>-moz-progress-bar</item>
+            <item>-moz-range-progress</item>
+            <item>-moz-range-thumb</item>
+            <item>-moz-range-track</item>
+            <item>-moz-selection</item>
+            <item>-ms-fill</item>
+            <item>-ms-fill-lower</item>
+            <item>-ms-fill-upper</item>
+            <item>-ms-thumb</item>
+            <item>-ms-track</item>
+            <item>-webkit-progress-bar</item>
+            <item>-webkit-progress-value</item>
+            <item>-webkit-slider-runnable-track</item>
+            <item>-webkit-slider-thumb</item>
+        </list>
+
+        <!-- prefixed by : -->
+        <list name="pseudo-classes">
+            <item>active</item>
+            <item>any-link</item>
+            <item>autofill</item>
+            <item>buffering</item>
+            <item>checked</item>
+            <item>current</item>
+            <item>default</item>
+            <item>defined</item>
+            <item>dir</item>
+            <item>disabled</item>
+            <item>empty</item>
+            <item>enabled</item>
+            <item>first</item>
+            <item>first-child</item>
+            <item>first-of-type</item>
+            <item>focus</item>
+            <item>focus-visible</item>
+            <item>focus-within</item>
+            <item>fullscreen</item>
+            <item>has</item>
+            <item>host</item>
+            <item>host-context</item>
+            <item>hover</item>
+            <item>in-range</item>
+            <item>indeterminate</item>
+            <item>invalid</item>
+            <item>is</item>
+            <item>lang</item>
+            <item>last-child</item>
+            <item>last-of-type</item>
+            <item>left</item>
+            <item>link</item>
+            <item>local-link</item>
+            <item>modal</item>
+            <item>muted</item>
+            <item>not</item>
+            <item>nth-child</item>
+            <item>nth-last-child</item>
+            <item>nth-last-of-type</item>
+            <item>nth-of-type</item>
+            <item>only-child</item>
+            <item>only-of-type</item>
+            <item>optional</item>
+            <item>out-of-range</item>
+            <item>paused</item>
+            <item>picture-in-picture</item>
+            <item>placeholder-shown</item>
+            <item>playing</item>
+            <item>read-only</item>
+            <item>read-write</item>
+            <item>required</item>
+            <item>right</item>
+            <item>root</item>
+            <item>scope</item>
+            <item>seeking</item>
+            <item>stalled</item>
+            <item>target</item>
+            <item>user-invalid</item>
+            <item>user-valid</item>
+            <item>valid</item>
+            <item>visited</item>
+            <item>volume-locked</item>
+            <item>where</item>
+        </list>
+
+        <list name="@page pseudo-classes">
+            <item>blank</item>
+            <item>first</item>
+            <item>left</item>
+            <item>recto</item>
+            <item>right</item>
+            <item>verso</item>
+        </list>
+
+        <list name="at-rules">
+            <item>@charset</item>
+            <item>@container</item>
+            <item>@font-feature-values</item>
+            <item>@import</item>
+            <item>@keyframes</item>
+            <item>@layer</item>
+            <item>@media</item>
+            <item>@namespace</item>
+            <item>@page</item>
+            <item>@supports</item>
+        </list>
+
+        <list name="at-rules definitions">
+            <item>@color-profile</item>
+            <item>@counter-style</item>
+            <item>@font-face</item>
+            <item>@font-palette-values</item>
+            <item>@property</item>
+        </list>
+
+        <list name="media operators">
+            <item>or</item>
+            <item>and</item>
+            <item>only</item>
+            <item>not</item>
+        </list>
+
+        <contexts>
+            <context name="Base" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar attribute="Block Symbol" context="RuleSet" char="{" beginRegion="ruleset"/>
+                <DetectChar context="SelectAtRule" char="@" lookAhead="1"/>
+                <IncludeRules context="FindSelector"/>
+            </context>
+
+            <!-- find selectors // .class #id :hover :nth-child(2n+1) [type="search"] -->
+            <context name="FindSelector" attribute="Normal Text">
+                <DetectChar attribute="Separator Symbol" char=","/>
+                <DetectChar attribute="Selector Pseudo" context="PseudoClassOrElement" char=":"/>
+                <DetectChar attribute="Selector Attribute" context="SelectorAttr" char="["/>
+                <DetectChar attribute="Selector Pseudo" context="PseudoClassSelector" char="("/>
+                <AnyChar attribute="Selector Symbol" String="*>+~|&amp;"/>
+                <IncludeRules context="FindComments"/>
+                <RegExpr attribute="Selector Class" String="\.&ident2;"/>
+                <RegExpr attribute="Selector Id" String="#&ident2;"/>
+                <RegExpr attribute="Selector Tag" String="&ident;"/>
+            </context>
+
+            <!-- find functions // rgba(255,255,255,0.75) -->
+            <context name="FindFunctions" attribute="Normal Text">
+                <RegExpr context="Function" String="(&func;)?\(" lookAhead="1"/>
+            </context>
+            <context name="FindNestedFunctions" attribute="Normal Text">
+                <RegExpr context="NestedFunction" String="(&func;)?\(" lookAhead="1"/>
+            </context>
+
+            <!-- find values //  10px 12pt 2.5em 1rem 75% #ffcc99 red solid -->
+            <context name="FindValues" attribute="Normal Text">
+                <DetectChar attribute="Annotation" context="Annotation" char="!"/>
+                <keyword attribute="Value Keyword" String="value keywords"/>
+                <keyword attribute="Value" String="values"/>
+                <keyword attribute="Named Color" String="colors"/>
+                <RegExpr attribute="Color" String="#([0-9A-Fa-f]{8}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{3,4})"/>
+                <IncludeRules context="FindNumber"/>
+                <IncludeRules context="FindIdentifier"/>
+            </context>
+
+            <context name="FindNumber" attribute="Number" lineEndContext="#pop">
+                <RegExpr attribute="Number" context="FindUnits" String="[-+]?([0-9]+(\.[0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?(?![-+])"/>
+            </context>
+
+            <context name="FindIdentifier" attribute="Number" lineEndContext="#pop">
+                <RegExpr String="&ident2;\s*"/>
+            </context>
+
+            <context name="FindVendorProperty" attribute="Normal Text">
+                <RegExpr attribute="Vendor Property" String="-(webkit|moz|o|ms)-[-_a-zA-Z0-9]*"/>
+            </context>
+
+            <context name="Annotation" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+                <WordDetect attribute="Annotation" context="#pop" String="important"/>
+            </context>
+
+            <context name="FindUnits" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+                <!-- https://drafts.csswg.org/css-values-4/#lengths -->
+                <!-- https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Values_and_Units -->
+                <RegExpr attribute="Unit" String="(%|(em|ex|cap|ch|ic|rem|lh|rlh|vw|vh|vi|vb|vmin|vmax|cqw|cqh|cqi|cqb|cqmin|cqmax|cm|mm|Q|in|pc|pt|px|deg|grad|rad|turn|s|ms|Hz|kHz|fr|dpi|dpcm|dppx|x)\b)(?![-+])"/>
+            </context>
+
+            <!-- find strings // "some words" 'some words' -->
+            <context name="FindStrings" attribute="Normal Text">
+                <DetectChar attribute="String" context="StringDQ" char="&quot;"/>
+                <DetectChar attribute="String" context="StringSQ" char="'"/>
+            </context>
+
+            <!-- find comments // /* comment */ -->
+            <context name="FindComments" attribute="Normal Text">
+                <Detect2Chars attribute="Comment" context="IsComments" char="/" char1="*" lookAhead="1"/>
+                <Detect2Chars attribute="Error" context="Error" char="/" char1="/"/>
+            </context>
+
+            <context name="Error" attribute="Error" lineEndContext="#pop">
+                <RegExpr attribute="Error" context="#pop" String=".*"/>
+            </context>
+
+            <context name="IsComments" attribute="Normal Text">
+                <RegExpr attribute="Region Marker" context="#pop" String="/\*\s*BEGIN\b.*\*/" beginRegion="UserDefined"/>
+                <RegExpr attribute="Region Marker" context="#pop" String="/\*\s*END\b.*\*/" endRegion="UserDefined"/>
+                <Detect2Chars attribute="Comment" context="Comment" char="/" char1="*" beginRegion="comment"/>
+            </context>
+
+            <context name="SelectAtRule" attribute="At Rule" lineEndContext="#pop">
+                <WordDetect attribute="At Rule" context="@keyframes" String="@keyframes"/>
+                <WordDetect attribute="At Rule" context="@layer" String="@layer"/>
+                <WordDetect attribute="At Rule" context="@font-feature-values" String="@font-feature-values"/>
+                <WordDetect attribute="At Rule" context="@page" String="@page"/>
+                <WordDetect attribute="At Rule" context="@supports" String="@supports"/>
+                <keyword attribute="At Rule" context="@property" String="at-rules definitions"/>
+                <RegExpr attribute="At Rule" context="@media" String="@[-a-zA-Z0-9_]*"/>
+            </context>
+
+
+            <context name="AtRuleCommon" attribute="At Rule Text">
+                <DetectChar char=";" context="#pop#pop" attribute="Separator Symbol"/>
+                <DetectChar char="}" context="#pop#pop" lookAhead="1"/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindComments"/>
+            </context>
+            <context name="AtRuleCommon2" attribute="At Rule Text">
+                <DetectChar char="{" context="#pop#pop!NestedRule" attribute="Block Symbol" beginRegion="ruleset"/>
+                <IncludeRules context="AtRuleCommon"/>
+            </context>
+
+
+            <context name="@media" attribute="At Rule Text">
+                <DetectSpaces/>
+                <DetectChar char="(" context="AtRuleMediaCondition" attribute="Condition Open/Close"/>
+                <IncludeRules context="AtRuleCommon2"/>
+                <IncludeRules context="FindFunctions"/>
+                <keyword String="media operators" attribute="Keyword"/>
+                <keyword String="media types" attribute="Media Type"/>
+                <DetectIdentifier/>
+            </context>
+
+            <context name="AtRuleMediaCondition" attribute="At Rule Text">
+                <DetectSpaces/>
+                <DetectChar char=";" context="#pop#pop#pop" attribute="Error"/>
+                <DetectChar char="{" context="#pop#pop#pop!RuleSet" attribute="Error" beginRegion="ruleset"/>
+                <DetectChar char="}" context="#pop#pop#pop" lookAhead="1"/>
+                <IncludeRules context="AtRuleMediaConditionValue"/>
+            </context>
+            <context name="NestedAtRuleMediaCondition" attribute="At Rule Text">
+                <DetectSpaces/>
+                <AnyChar String=";{}" context="#pop" lookAhead="1"/>
+                <IncludeRules context="AtRuleMediaConditionValue"/>
+            </context>
+            <context name="AtRuleMediaConditionValue" attribute="At Rule Text">
+                <AnyChar String="&lt;>=" attribute="Operator"/>
+                <DetectChar char=")" context="#pop" attribute="Condition Open/Close"/>
+                <DetectChar char="(" context="NestedAtRuleMediaCondition" attribute="Condition Open/Close"/>
+                <DetectChar char=":" attribute="Property Separator"/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindComments"/>
+                <IncludeRules context="FindFunctions"/>
+                <IncludeRules context="FindNumber"/>
+                <keyword String="media operators" attribute="Keyword"/>
+                <keyword String="media features" attribute="Condition Property"/>
+                <IncludeRules context="FindIdentifier"/>
+            </context>
+
+            <context name="NestedRule" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar char="}" context="#pop" attribute="Block Symbol" endRegion="ruleset"/>
+                <DetectChar char="{" context="RuleSet" attribute="Block Symbol" beginRegion="ruleset"/>
+                <DetectChar char="@" context="SelectAtRule" lookAhead="1"/>
+                <IncludeRules context="FindSelector"/>
+            </context>
+
+
+            <context name="@supports" attribute="At Rule Text">
+                <DetectSpaces/>
+                <DetectChar char="(" context="AtRuleSupportsCondition" lookAhead="1"/>
+                <IncludeRules context="AtRuleCommon2"/>
+                <keyword String="media operators" attribute="Keyword"/>
+                <WordDetect String="selector(" context="FunctionSelector" attribute="Function"/>
+                <WordDetect String="font-tech(" context="#pop!SupportsProp" lookAhead="1"/>
+                <WordDetect String="font-format(" context="#pop!SupportsProp" lookAhead="1"/>
+                <DetectIdentifier/>
+            </context>
+            <context name="SupportsProp" attribute="At Rule Text">
+                <DetectSpaces/>
+                <DetectChar char="{" context="#pop#pop!RuleSet" attribute="Block Symbol" beginRegion="ruleset"/>
+                <WordDetect String="font-tech(" context="FunctionFont" attribute="Function"/>
+                <WordDetect String="font-format(" context="FunctionFont" attribute="Function"/>
+                <IncludeRules context="AtRuleCommon"/>
+            </context>
+
+            <context name="AtRuleSupportsCondition" attribute="At Rule Text" fallthroughContext="#pop">
+                <DetectChar char="(" context="SupportsCondition" attribute="Condition Open/Close"/>
+                <DetectChar char=";" context="#pop#pop#pop" attribute="Error"/>
+                <DetectChar char="{" context="#pop#pop#pop!NestedRule" attribute="Error" beginRegion="ruleset"/>
+                <DetectChar char="}" context="#pop#pop#pop" lookAhead="1"/>
+            </context>
+            <context name="SupportsCondition" attribute="At Rule Text" fallthroughContext="#pop!SupportsConditionValue">
+                <DetectSpaces/>
+                <DetectChar char="(" context="SupportsCondition" attribute="Condition Open/Close"/>
+                <DetectChar char=":" context="#pop!SupportsConditionValue" attribute="Property Separator"/>
+                <IncludeRules context="FindComments"/>
+                <keyword String="media operators" attribute="Keyword"/>
+                <keyword String="properties" attribute="Condition Property"/>
+                <IncludeRules context="FindVendorProperty"/>
+            </context>
+            <context name="SupportsConditionValue" attribute="At Rule Text">
+                <AnyChar String=";{}" context="#pop" lookAhead="1"/>
+                <DetectChar char=")" context="#pop" attribute="Condition Open/Close"/>
+                <DetectChar char="(" context="SupportsCondition" attribute="Condition Open/Close"/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindComments"/>
+                <IncludeRules context="FindFunctions"/>
+                <IncludeRules context="FindValues"/>
+            </context>
+
+            <context name="FunctionSelector" attribute="At Rule Text">
+                <DetectSpaces/>
+                <AnyChar String=";{}" context="#pop" lookAhead="1"/>
+                <DetectChar char=")" context="#pop" attribute="Function"/>
+                <IncludeRules context="FindSelector"/>
+            </context>
+            <context name="FunctionFont" attribute="At Rule Text">
+                <DetectSpaces/>
+                <DetectIdentifier/>
+                <AnyChar String=";{}" context="#pop" lookAhead="1"/>
+                <DetectChar char=")" context="#pop" attribute="Function"/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindComments"/>
+            </context>
+
+
+            <context name="@layer" attribute="At Rule Text">
+                <DetectSpaces/>
+                <DetectIdentifier/>
+                <DetectChar attribute="Separator Symbol" char=","/>
+                <IncludeRules context="AtRuleCommon2"/>
+            </context>
+
+
+            <context name="@page" attribute="At Rule Text">
+                <DetectSpaces/>
+                <DetectChar attribute="Selector Pseudo" char=":"/>
+                <AnyChar String="{};" context="#pop#pop" lookAhead="1"/>
+                <IncludeRules context="FindComments"/>
+                <keyword attribute="Selector Pseudo" String="@page pseudo-classes"/>
+                <DetectIdentifier/>
+            </context>
+
+
+            <context name="@property" attribute="At Rule Text">
+                <DetectSpaces/>
+                <DetectChar char="-"/>
+                <DetectChar char="{" context="#pop#pop!RuleSet" attribute="Block Symbol" beginRegion="ruleset"/>
+                <IncludeRules context="AtRuleCommon"/>
+                <DetectIdentifier/>
+            </context>
+
+
+            <context name="@font-feature-values" attribute="At Rule Text">
+                <DetectSpaces/>
+                <DetectIdentifier/>
+                <DetectChar char="{" context="#pop#pop!FontFeatureBlock" attribute="Block Symbol" beginRegion="ruleset"/>
+                <IncludeRules context="AtRuleCommon"/>
+            </context>
+            <context name="FontFeatureBlock" attribute="Normal Text" fallthroughContext="#pop!NestedRule">
+                <DetectSpaces/>
+                <DetectChar char="}" context="#pop" attribute="Block Symbol" endRegion="ruleset"/>
+                <DetectChar char="{" context="AtRuleSet" attribute="Block Symbol" beginRegion="ruleset"/>
+                <RegExpr String="@[-a-zA-Z]*" attribute="At Rule"/>
+                <IncludeRules context="FindComments"/>
+            </context>
+
+            <context name="AtRuleSet" attribute="Normal Text" fallthroughContext="#pop!NestedRule">
+                <IncludeRules context="RuleSet"/>
+            </context>
+
+
+            <context name="@keyframes" attribute="At Rule Text">
+                <DetectSpaces/>
+                <DetectChar char="{" context="#pop#pop!KeyFramesBlock" attribute="Block Symbol" beginRegion="ruleset"/>
+                <IncludeRules context="AtRuleCommon"/>
+                <DetectIdentifier/>
+            </context>
+            <context name="KeyFramesBlock" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar char="{" context="RuleSet" attribute="Block Symbol" beginRegion="ruleset"/>
+                <DetectChar char="}" context="#pop" attribute="Block Symbol" endRegion="ruleset"/>
+                <DetectChar char="," attribute="Separator Symbol"/>
+                <IncludeRules context="FindComments"/>
+                <RegExpr attribute="Value" String="\b(from|to)\b|[-+]?[0-9.]+%"/>
+            </context>
+
+
+            <context name="SelectorAttr" attribute="Attribute Name">
+                <DetectChar attribute="Selector Attribute" context="#pop" char="]"/>
+                <IncludeRules context="FindStrings"/>
+                <DetectChar attribute="Attribute Operator" context="SelectorAttrValue" char="="/>
+                <AnyChar attribute="Attribute Operator" String="~^$*|"/>
+                <IncludeRules context="FindComments"/>
+                <DetectIdentifier/>
+                <AnyChar context="#pop" String="{};#.,:>" lookAhead="1"/>
+            </context>
+
+            <context name="SelectorAttrValue" attribute="Normal Text" fallthroughContext="SelectorAttrEnd">
+                <DetectSpaces/>
+                <AnyChar context="SelectorAttrValueQuoted" String="&quot;'" lookAhead="1"/>
+                <RegExpr context="SelectorAttrEnd" attribute="String" String="-?(\w|&escaped;)([-\w]+|&escaped;)*"/>
+                <IncludeRules context="FindComments"/>
+            </context>
+            <context name="SelectorAttrValueQuoted" attribute="String" fallthroughContext="#pop!SelectorAttrEnd">
+                <IncludeRules context="FindStrings"/>
+            </context>
+            <context name="SelectorAttrEnd" attribute="String" fallthroughContext="#pop#pop#pop">
+                <DetectSpaces/>
+                <DetectChar attribute="Selector Attribute" context="#pop#pop#pop" char="]"/>
+                <Detect2Chars context="SelectorAttrValueSensitiveOp" char="i" char1="]" lookAhead="1"/>
+                <Detect2Chars context="SelectorAttrValueSensitiveOp" char="I" char1="]" lookAhead="1"/>
+                <Detect2Chars context="SelectorAttrValueSensitiveOp" char="s" char1="]" lookAhead="1"/>
+                <Detect2Chars context="SelectorAttrValueSensitiveOp" char="S" char1="]" lookAhead="1"/>
+                <IncludeRules context="FindComments"/>
+            </context>
+            <context name="SelectorAttrValueSensitiveOp" attribute="String">
+                <DetectChar attribute="Selector Attribute" context="#pop#pop#pop#pop" char="]"/>
+                <AnyChar attribute="Attribute Operator" String="isIS"/>
+            </context>
+
+            <context name="PseudoClassOrElement" attribute="Selector Pseudo" lineEndContext="#pop" fallthroughContext="#pop">
+                <DetectChar char=":" attribute="Selector Pseudo"/>
+                <WordDetect String="lang" attribute="Selector Pseudo" context="PseudoClassStr"/>
+                <WordDetect String="part" attribute="Selector Pseudo" context="PseudoClassStr"/>
+                <RegExpr String="nth-[-a-zA-Z0-9]*" attribute="Selector Pseudo" context="PseudoClassNth"/>
+                <RegExpr String="[-a-zA-Z]+" attribute="Selector Pseudo" context="#pop"/>
+                <IncludeRules context="FindComments"/>
+            </context>
+
+            <context name="PseudoClassStr" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
+                <DetectChar char="(" context="PseudoClassStrInner" attribute="Selector Pseudo"/>
+                <IncludeRules context="FindComments"/>
+            </context>
+            <context name="PseudoClassStrInner" attribute="Error">
+                <DetectChar char=")" attribute="Selector Pseudo" context="#pop#pop#pop"/>
+                <DetectChar char="{" context="#pop#pop#pop!RuleSet" attribute="Error" beginRegion="ruleset"/>
+                <DetectChar char=":" context="#pop#pop#pop!PseudoClassOrElement" attribute="Error"/>
+                <RegExpr String="\s*&ident;(\s+&ident;|\s+)*" attribute="String"/>
+                <IncludeRules context="FindComments"/>
+            </context>
+
+            <context name="PseudoClassNth" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
+                <DetectChar char="(" context="PseudoClassNthInner" attribute="Selector Pseudo"/>
+                <IncludeRules context="FindComments"/>
+            </context>
+            <context name="PseudoClassNthInner" attribute="Normal Text" fallthroughContext="#pop#pop!PseudoClassSelector">
+                <Int attribute="Number" additionalDeliminator="-"/>
+                <AnyChar String="+-" attribute="Operator"/>
+                <DetectChar char="n" attribute="Unit"/>
+                <DetectChar char=")" attribute="Selector Pseudo" context="#pop#pop#pop"/>
+                <WordDetect String="odd" attribute="Value"/>
+                <WordDetect String="even" attribute="Value"/>
+                <WordDetect String="of" attribute="Keyword" context="#pop#pop!PseudoClassSelector"/>
+                <IncludeRules context="FindComments"/>
+                <DetectSpaces/>
+            </context>
+
+            <context name="PseudoClassSelector" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar char=")" context="#pop" attribute="Selector Pseudo"/>
+                <DetectChar attribute="Selector Pseudo" context="NestedPseudoClassSelector" char="("/>
+                <IncludeRules context="FindSelector"/>
+                <DetectChar char="{" context="#pop!RuleSet" attribute="Error" beginRegion="ruleset"/>
+            </context>
+            <context name="NestedPseudoClassSelector" attribute="Normal Text">
+                <DetectChar char="{" context="#pop" lookAhead="1"/>
+                <IncludeRules context="PseudoClassSelector"/>
+            </context>
+
+            <context name="Comment" attribute="Comment">
+                <DetectSpaces/>
+                <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="comment"/>
+                <IncludeRules context="##Comments"/>
+                <DetectIdentifier/>
+            </context>
+
+            <context name="RuleSet" attribute="Normal Text" fallthroughContext="Rule">
+                <DetectSpaces/>
+                <DetectChar attribute="Block Symbol" context="#pop" char="}" endRegion="ruleset"/>
+                <DetectChar attribute="Block Symbol" context="RuleSet" char="{" beginRegion="ruleset"/>
+                <DetectChar context="SelectAtRule" char="@" lookAhead="1"/>
+                <IncludeRules context="FindComments"/>
+                <AnyChar context="Selector" String=".#:,[*>+~|&amp;" lookAhead="1"/>
+            </context>
+
+            <context name="Selector" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar attribute="Block Symbol" context="#pop!RuleSet" char="{" beginRegion="ruleset"/>
+                <DetectChar attribute="Block Symbol" context="#pop#pop" char="}" endRegion="ruleset"/>
+                <DetectChar context="#pop!SelectAtRule" char="@" lookAhead="1"/>
+                <IncludeRules context="FindComments"/>
+                <IncludeRules context="FindSelector"/>
+            </context>
+
+            <context name="Rule" attribute="Normal Text">
+                <DetectChar attribute="Property Separator" context="RuleParameters" char=":"/>
+                <Detect2Chars attribute="Variable" context="PropertyVariable" char="-" char1="-"/>
+                <IncludeRules context="FindComments"/>
+                <AnyChar context="#pop!Selector" String=".#,[*>+~|&amp;@{}" lookAhead="1"/>
+                <keyword attribute="Property" String="properties"/>
+                <DetectSpaces attribute="Normal Text"/>
+                <IncludeRules context="FindVendorProperty"/>
+                <RegExpr attribute="Unknown Property" String="[-_a-zA-Z]*"/>
+            </context>
+            <context name="PropertyVariable" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+                <RegExpr attribute="Variable" context="#pop" String="[-_a-zA-Z0-9]*"/>
+            </context>
+
+            <context name="RuleParameters" attribute="Normal Text">
+                <DetectSpaces/>
+                <!-- Jump out conditions -->
+                <DetectChar attribute="Separator Symbol" context="#pop#pop" char=";"/>
+                <DetectChar attribute="Block Symbol" context="#pop#pop#pop" char="}" endRegion="ruleset"/>
+                <DetectChar attribute="Separator Symbol" char=","/>
+                <IncludeRules context="FindComments"/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindFunctions"/>
+                <IncludeRules context="FindValues"/>
+            </context>
+
+            <context name="Function" attribute="Normal Text">
+                <IncludeRules context="FunctionInc"/>
+                <DetectChar attribute="Error" context="#pop#pop#pop" char=";"/>
+                <DetectChar attribute="Error" context="#pop#pop#pop" char="}" endRegion="ruleset"/>
+                <DetectChar attribute="Error" context="#pop#pop#pop!RuleSet" char="{" beginRegion="ruleset"/>
+            </context>
+            <context name="NestedFunction" attribute="Normal Text">
+                <IncludeRules context="FunctionInc"/>
+                <AnyChar context="#pop" String="{};" lookAhead="1"/>
+            </context>
+            <context name="FunctionInc" attribute="Normal Text">
+                <DetectChar attribute="Function" context="FunctionParameters" char="("/>
+                <StringDetect attribute="Function" context="FunctionVar" String="var("/>
+                <StringDetect attribute="Function" context="FunctionCalc" String="calc("/>
+                <StringDetect attribute="Function" context="FunctionUrl" String="url("/>
+                <StringDetect attribute="Function" context="FunctionEnv" String="env("/>
+                <keyword attribute="Function" String="functions"/>
+                <!-- Legacy -->
+                <WordDetect attribute="Function" String="rgba"/>
+                <WordDetect attribute="Function" String="hsla"/>
+                <RegExpr attribute="Unknown Function" String="&func;"/>
+            </context>
+
+            <context name="FunctionVar" attribute="Normal Text" fallthroughContext="FunctionVarSep">
+                <RegExpr String="&var;" context="FunctionVarSep" attribute="Variable"/>
+                <DetectSpaces/>
+                <IncludeRules context="FindComments"/>
+            </context>
+            <context name="FunctionVarSep" attribute="Normal Text" fallthroughContext="FunctionVarParam">
+                <DetectChar char=")" context="#pop#pop#pop" attribute="Function"/>
+                <DetectChar char="," context="FunctionVarParam" attribute="Separator Symbol"/>
+            </context>
+            <context name="FunctionVarParam" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar char=")" context="#pop#pop#pop#pop" attribute="Function"/>
+                <AnyChar String=";{}" context="#pop#pop#pop" lookAhead="1"/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindComments"/>
+                <IncludeRules context="FindNestedFunctions"/>
+                <IncludeRules context="FindValues"/>
+            </context>
+
+            <context name="FunctionEnv" attribute="Normal Text" fallthroughContext="FunctionVarSep">
+                <RegExpr String="&ident;" context="FunctionVarSep" attribute="Normal Text"/>
+                <DetectSpaces/>
+                <IncludeRules context="FindComments"/>
+            </context>
+
+            <context name="FunctionCalc" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar attribute="Function" context="#pop#pop" char=")"/>
+                <IncludeRules context="Calc"/>
+            </context>
+            <context name="NestedCalc" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+                <IncludeRules context="Calc"/>
+            </context>
+            <context name="Calc" attribute="Normal Text">
+                <DetectChar attribute="Separator Symbol" char=","/>
+                <DetectChar attribute="Normal Text" context="NestedCalc" char="("/>
+                <AnyChar String=";{}" context="#pop" lookAhead="1"/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindComments"/>
+                <AnyChar attribute="Operator" String="*/%"/>
+                <IncludeRules context="FindNestedFunctions"/>
+                <IncludeRules context="FindNumber"/>
+                <RegExpr String="[-+]?((?i:infinity|e|pi)|NaN)($|[^-\w])|[-+]($|[\s(,;]|/\*)" context="CalcConstantOrOperator" lookAhead="1"/>
+                <IncludeRules context="FindIdentifier"/>
+            </context>
+            <context name="CalcConstantOrOperator" attribute="Normal Text" fallthroughContext="#pop">
+                <DetectIdentifier context="#pop" attribute="Calc Constant"/>
+                <AnyChar String="-+" attribute="Operator"/>
+            </context>
+
+            <context name="FunctionUrl" attribute="Normal Text" fallthroughContext="UrlValue">
+                <DetectSpaces/>
+                <IncludeRules context="FindStrings"/>
+            </context>
+            <context name="UrlValue" attribute="String">
+                <DetectChar attribute="Function" context="#pop#pop#pop" char=")"/>
+                <AnyChar String=";{}" context="#pop#pop" lookAhead="1"/>
+            </context>
+
+            <context name="FunctionParameters" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar attribute="Function" context="#pop#pop" char=")"/>
+                <DetectChar attribute="Separator Symbol" char=","/>
+                <AnyChar String=";{}" context="#pop" lookAhead="1"/>
+                <IncludeRules context="FindComments"/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindNestedFunctions"/>
+                <IncludeRules context="FindValues"/>
+            </context>
+
+            <!-- string contexts -->
+            <context name="StringDQ" attribute="String" lineEndContext="#pop">
+                <DetectChar attribute="String" context="#pop" char="&quot;"/>
+                <IncludeRules context="InsideString"/>
+            </context>
+
+            <context name="StringSQ" attribute="String" lineEndContext="#pop">
+                <DetectChar attribute="String" context="#pop" char="'"/>
+                <IncludeRules context="InsideString"/>
+            </context>
+
+            <context name="InsideString" attribute="String">
+                <RegExpr attribute="SpecialChar" String="\\([0-9A-Fa-f]{1,6}|.?)"/>
+                <RegExpr attribute="String" String="\\?[^&quot;'\\]+"/>
+            </context>
+
+        </contexts>
+
+        <itemDatas>
+            <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="At Rule" defStyleNum="dsImport" spellChecking="false"/>
+            <itemData name="At Rule Text" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="Media Type" defStyleNum="dsAnnotation" spellChecking="false"/>
+            <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
+            <itemData name="Property" defStyleNum="dsKeyword" spellChecking="false"/>
+            <itemData name="Vendor Property" defStyleNum="dsKeyword" spellChecking="false" italic="1"/>
+            <itemData name="Unknown Property" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="Property Separator" defStyleNum="dsChar" spellChecking="false"/>
+            <itemData name="String" defStyleNum="dsString"/>
+            <itemData name="SpecialChar" defStyleNum="dsSpecialChar" spellChecking="false"/>
+            <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>
+            <itemData name="Separator Symbol" defStyleNum="dsOperator" spellChecking="false"/>
+            <itemData name="Block Symbol" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="Value" defStyleNum="dsDecVal" spellChecking="false"/>
+            <itemData name="Number" defStyleNum="dsDecVal" spellChecking="false"/>
+            <itemData name="Value Keyword" defStyleNum="dsBuiltIn" spellChecking="false"/>
+            <itemData name="Named Color" defStyleNum="dsConstant" spellChecking="false"/>
+            <itemData name="Color" defStyleNum="dsConstant" spellChecking="false"/>
+            <itemData name="Unit" defStyleNum="dsDataType" spellChecking="false"/>
+            <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/>
+            <itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/>
+            <itemData name="Unknown Function" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="Calc Constant" defStyleNum="dsDecVal" spellChecking="false"/>
+            <itemData name="Annotation" defStyleNum="dsAttribute" spellChecking="false"/>
+            <itemData name="Condition Open/Close" defStyleNum="dsFunction" spellChecking="false"/>
+            <itemData name="Condition Property" defStyleNum="dsKeyword" spellChecking="false"/>
+            <itemData name="Selector Id" defStyleNum="dsPreprocessor" bold="1" spellChecking="false"/>
+            <itemData name="Selector Class" defStyleNum="dsFunction" spellChecking="false"/>
+            <itemData name="Selector Attribute" defStyleNum="dsExtension" spellChecking="false"/>
+            <itemData name="Selector Pseudo" defStyleNum="dsInformation" italic="1" spellChecking="false"/>
+            <itemData name="Selector Tag" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="Selector Symbol" defStyleNum="dsOperator" spellChecking="false"/>
+            <itemData name="Attribute Name" defStyleNum="dsSpecialString" spellChecking="false"/>
+            <itemData name="Attribute Operator" defStyleNum="dsOperator" spellChecking="false"/>
+            <itemData name="Comment" defStyleNum="dsComment"/>
+            <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
+            <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
+        </itemDatas>
+    </highlighting>
+
+    <general>
+        <keywords casesensitive="0" weakDeliminator="-%@"/>
+        <comments>
+            <comment name="multiLine" start="/*" end="*/" region="comment"/>
         </comments>
     </general>
 
diff --git a/syntax/curry.xml b/syntax/curry.xml
--- a/syntax/curry.xml
+++ b/syntax/curry.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
   <!-- qualification of entities -->
   <!ENTITY qualify     "(?:[A-Z][a-zA-Z0-9_']*\.)*">
diff --git a/syntax/d.xml b/syntax/d.xml
--- a/syntax/d.xml
+++ b/syntax/d.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd" [
+<!DOCTYPE language [
   <!ENTITY hexfloat "0[xX][\da-fA-F_]*(?:\.[\da-fA-F_]*)?[pP][-+]?\d[\d_]*[fFL]?i?">
   <!-- Float starting with a dot is matched in main context -->
   <!-- All floats except integers -->
@@ -105,7 +105,7 @@
    ========================================================================
 -->
 
-<language name="D" version="12" kateversion="5.0" section="Sources" extensions="*.d;*.D;*.di;*.DI;" mimetype="text/x-dsrc" casesensitive="true" author="Diggory Hardy (diggory.hardy@gmail.com), Aziz Köksal (aziz.koeksal@gmail.com), Jari-Matti Mäkelä (jmjm@iki.fi), Simon J Mackenzie (project.katedxml@smackoz.fastmail.fm)" license="LGPL">
+<language name="D" version="13" kateversion="5.0" section="Sources" extensions="*.d;*.D;*.di;*.DI;" mimetype="text/x-dsrc" casesensitive="true" author="Diggory Hardy (diggory.hardy@gmail.com), Aziz Köksal (aziz.koeksal@gmail.com), Jari-Matti Mäkelä (jmjm@iki.fi), Simon J Mackenzie (project.katedxml@smackoz.fastmail.fm)" license="LGPL">
   <highlighting>
     <!-- User-defined keywords (add identifiers you'd like highlighted here) -->
     <list name="userkeywords">
@@ -926,7 +926,7 @@
   </highlighting>
   <general>
     <comments>
-      <comment name="singleLine" start="//"/>
+      <comment name="singleLine" start="//" position="afterwhitespace"/>
       <comment name="multiLine"  start="/+" end="+/" region="CommentNested"/>
     </comments>
     <keywords casesensitive="true"/>
diff --git a/syntax/dart.xml b/syntax/dart.xml
new file mode 100644
--- /dev/null
+++ b/syntax/dart.xml
@@ -0,0 +1,221 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language>
+<language name="Dart" section="Sources" version="4" kateversion="5.0" indenter="cstyle" extensions="*.dart" mimetype="text/x-dart" priority="1" author="Waqar Ahmed (waqar.17a@gmail.com)" license="MIT">
+    <highlighting>
+        <list name="keywords">
+            <item>Function</item>
+            <item>abstract</item>
+            <item>as</item>
+            <item>assert</item>
+            <item>class</item>
+            <item>covariant</item>
+            <item>deferred</item>
+            <item>enum</item>
+            <item>export</item>
+            <item>extends</item>
+            <item>extension</item>
+            <item>external</item>
+            <item>factory</item>
+            <item>get</item>
+            <item>hide</item>
+            <item>implements</item>
+            <item>import</item>
+            <item>in</item>
+            <item>interface</item>
+            <item>is</item>
+            <item>library</item>
+            <item>mixin</item>
+            <item>new</item>
+            <item>on</item>
+            <item>operator</item>
+            <item>part</item>
+            <item>return</item>
+            <item>set</item>
+            <item>show</item>
+            <item>super</item>
+            <item>sync</item>
+            <item>this</item>
+            <item>typedef</item>
+            <item>with</item>
+            <item>yield</item>
+            <item>@pragma</item>
+            <item>@override</item>
+            <item>@deprecated</item>
+        </list>
+        <list name="controlflow">
+            <item>break</item>
+            <item>case</item>
+            <item>catch</item>
+            <item>continue</item>
+            <item>default</item>
+            <item>do</item>
+            <item>else</item>
+            <item>finally</item>
+            <item>for</item>
+            <item>if</item>
+            <item>rethrow</item>
+            <item>switch</item>
+            <item>throw</item>
+            <item>try</item>
+            <item>when</item>
+            <item>while</item>
+        </list>
+        <list name="modifiers">
+            <item>async</item>
+            <item>await</item>
+            <item>const</item>
+            <item>dynamic</item>
+            <item>final</item>
+            <item>late</item>
+            <item>sealed</item>
+            <item>static</item>
+        </list>
+        <list name="types">
+            <item>Future</item>
+            <item>Iterable</item>
+            <item>List</item>
+            <item>Map</item>
+            <item>Never</item>
+            <item>Object</item>
+            <item>Set</item>
+            <item>Stream</item>
+            <item>String</item>
+            <item>bool</item>
+            <item>double</item>
+            <item>int</item>
+            <item>var</item>
+            <item>void</item>
+        </list>
+        <list name="literals">
+            <item>true</item>
+            <item>false</item>
+            <item>null</item>
+        </list>
+        <list name="exceptions">
+            <item>AbstractClassInstantiationError</item>
+            <item>ArgumentError</item>
+            <item>AssertionError</item>
+            <item>CastError</item>
+            <item>ConcurrentModificationError</item>
+            <item>CyclicInitializationError</item>
+            <item>Error</item>
+            <item>Exception</item>
+            <item>FallThroughError</item>
+            <item>FormatException</item>
+            <item>IndexError</item>
+            <item>IntegerDivisionByZeroException</item>
+            <item>JsonCyclicError</item>
+            <item>JsonUnsupportedObjectError</item>
+            <item>NoSuchMethodError</item>
+            <item>NullThrownError</item>
+            <item>OutOfMemoryError</item>
+            <item>RangeError</item>
+            <item>StackOverflowError</item>
+            <item>StateError</item>
+            <item>TypeError</item>
+            <item>UnimplementedError</item>
+            <item>UnsupportedError</item>
+        </list>
+        <list name="thiskeyword">
+            <item>this</item>
+        </list>
+        <contexts>
+            <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+                <DetectSpaces/>
+                <keyword attribute="Control Flow" context="#stay" String="controlflow"/>
+                <keyword attribute="Keyword" context="#stay" String="keywords"/>
+                <keyword attribute="Data Type" context="#stay" String="types"/>
+                <keyword attribute="Modifiers" context="#stay" String="modifiers"/>
+                <keyword attribute="Constant" context="#stay" String="literals"/>
+                <keyword attribute="Exceptions" context="#stay" String="exceptions"/>
+                <WordDetect attribute="This Keyword" context="#stay" String="this"/>
+                <DetectIdentifier/>
+                <Float attribute="Float" context="#stay"/>
+                <Int attribute="Decimal" context="#stay"/>
+                <HlCHex attribute="Hex" context="#stay"/>
+                <HlCOct attribute="Octal" context="#stay"/>
+                <StringDetect attribute="String" String="'''" context="SMultilineString" beginRegion="MultilineStringRegion"/>
+                <StringDetect attribute="String" String="&quot;&quot;&quot;" context="SMultilineString" beginRegion="MultilineStringRegion"/>
+                <DetectChar attribute="String" context="DoubleQuoteString" char="&quot;"/>
+                <DetectChar attribute="String" context="SingleQuoteString" char="'"/>
+                <IncludeRules context="FindComments"/>
+                <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1"/>
+                <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"/>
+                <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;+,-/.*&lt;=&gt;?|~^"/>
+            </context>
+            <!-- Strings -->
+            <context attribute="String" lineEndContext="#pop" name="DoubleQuoteString">
+                <DetectSpaces attribute="String"/>
+                <DetectIdentifier attribute="String"/>
+                <LineContinue attribute="String" context="#stay"/>
+                <HlCStringChar attribute="String Char" context="#stay"/>
+                <DetectChar attribute="String" context="#pop" char="&quot;"/>
+            </context>
+            <context attribute="String" lineEndContext="#pop" name="SingleQuoteString">
+                <DetectSpaces attribute="String"/>
+                <DetectIdentifier attribute="String"/>
+                <HlCStringChar attribute="String Char" context="#stay"/>
+                <DetectChar attribute="String" context="#pop" char="'"/>
+            </context>
+            <!-- Comments -->
+            <context name="FindComments" attribute="Normal Text" lineEndContext="#pop">
+                <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="/" lookAhead="true"/>
+                <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true"/>
+            </context>
+            <context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+                <StringDetect attribute="Region Marker" context="#pop!Region Marker" String="//BEGIN" beginRegion="Region1" firstNonSpace="true"/>
+                <StringDetect attribute="Region Marker" context="#pop!Region Marker" String="//END" endRegion="Region1" firstNonSpace="true"/>
+                <IncludeRules context="##Doxygen"/>
+                <Detect2Chars attribute="Comment" context="#pop!Commentar 1" char="/" char1="/"/>
+                <Detect2Chars attribute="Comment" context="#pop!Commentar 2" char="/" char1="*" beginRegion="Comment"/>
+            </context>
+            <context attribute="Region Marker" lineEndContext="#pop" name="Region Marker">
+            </context>
+            <context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
+                <DetectSpaces attribute="Comment"/>
+                <LineContinue attribute="Comment" context="#stay"/>
+                <IncludeRules context="##Comments"/>
+                <DetectIdentifier attribute="Comment"/>
+            </context>
+            <context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
+                <DetectSpaces attribute="Comment"/>
+                <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+                <IncludeRules context="##Comments"/>
+                <DetectIdentifier attribute="Comment"/>
+            </context>
+            <!-- multiline string -->
+            <context attribute="String" lineEndContext="#stay" name="SMultilineString">
+                <DetectSpaces attribute="String"/>
+                <HlCStringChar attribute="String Char" context="#stay"/>
+                <StringDetect attribute="String" String="'''" context="#pop" endRegion="MultilineStringRegion"/>
+                <StringDetect attribute="String" String="&quot;&quot;&quot;" context="#pop" endRegion="MultilineStringRegion"/>
+            </context>
+        </contexts>
+        <itemDatas>
+            <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="false"/>
+            <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
+            <itemData name="Data Type" defStyleNum="dsDataType" spellChecking="false"/>
+            <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false"/>
+            <itemData name="Exceptions" defStyleNum="dsKeyword" spellChecking="false"/>
+            <itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false"/>
+            <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/>
+            <itemData name="Constant" defStyleNum="dsConstant" spellChecking="false"/>
+            <itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>
+            <itemData name="Modifiers" defStyleNum="dsAttribute" spellChecking="false"/>
+            <itemData name="String" defStyleNum="dsString"/>
+            <itemData name="String Char" defStyleNum="dsSpecialChar"/>
+            <itemData name="Comment" defStyleNum="dsComment"/>
+            <itemData name="Symbol" defStyleNum="dsOperator" spellChecking="false"/>
+            <itemData name="This Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
+            <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
+        </itemDatas>
+    </highlighting>
+    <general>
+        <comments>
+            <comment name="singleLine" start="//" position="afterwhitespace"/>
+            <comment name="multiLine" start="/*" end="*/" region="Comment"/>
+        </comments>
+        <keywords casesensitive="true"/>
+    </general>
+</language>
diff --git a/syntax/debiancontrol.xml b/syntax/debiancontrol.xml
new file mode 100644
--- /dev/null
+++ b/syntax/debiancontrol.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language>
+<language name="Debian Control" version="4" kateversion="5.0" section="Other" extensions="control" mimetype="">
+    <highlighting>
+        <contexts>
+            <context attribute="Normal Text" lineEndContext="#stay" name="INIT">
+                <StringDetect attribute="Keyword" context="DependencyField" String="Depends:"/>
+                <StringDetect attribute="Keyword" context="DependencyField" String="Recommends:"/>
+                <StringDetect attribute="Keyword" context="DependencyField" String="Suggests:"/>
+                <StringDetect attribute="Keyword" context="DependencyField" String="Conflicts:"/>
+                <StringDetect attribute="Keyword" context="DependencyField" String="Provides:"/>
+                <StringDetect attribute="Keyword" context="DependencyField" String="Replaces:"/>
+                <StringDetect attribute="Keyword" context="DependencyField" String="Enhances:"/>
+                <StringDetect attribute="Keyword" context="DependencyField" String="Pre-Depends:"/>
+                <StringDetect attribute="Keyword" context="DependencyField" String="Build-Depends:"/>
+                <StringDetect attribute="Keyword" context="DependencyField" String="Build-Depends-Indep:"/>
+                <StringDetect attribute="Keyword" context="DependencyField" String="Build-Conflicts:"/>
+                <StringDetect attribute="Keyword" context="DependencyField" String="Build-Conflicts-Indep:"/>
+                <StringDetect attribute="Keyword" context="DependencyField" String="Breaks:"/>
+                <RegExpr attribute="Keyword" context="Field" minimal="true" String="^[^ ]*:" column="0"/>
+                <DetectChar attribute="Value" context="Field" char=" " column="0"/>
+            </context>
+
+            <context attribute="Value" lineEndContext="#pop" name="Field">
+                <RegExpr attribute="Email" context="#stay" String="&lt;.*@.*&gt;" minimal="true"/>
+                <Detect2Chars attribute="Keyword" context="Variable" char="$" char1="{"/>
+            </context>
+
+            <context attribute="Variable" lineEndContext="#pop" name="Variable">
+                <DetectChar attribute="Keyword" context="#pop" char="}"/>
+            </context>
+
+            <context attribute="Value" lineEndContext="#pop" name="DependencyField">
+                <RegExpr attribute="Email" context="#stay" String="&lt;.*@.*&gt;" minimal="true"/>
+                <Detect2Chars attribute="Keyword" context="Variable" char="$" char1="{"/>
+                <AnyChar attribute="Keyword" context="#stay" String=",|"/>
+                <AnyChar attribute="Keyword" context="Constrain" String="(["/>
+            </context>
+
+            <context attribute="Version" lineEndContext="#stay" name="Constrain">
+                <Detect2Chars attribute="Keyword" context="Variable" char="$" char1="{"/>
+                <AnyChar attribute="Keyword" context="#stay" String="!&lt;=&gt;"/>
+                <AnyChar attribute="Keyword" context="#pop" String=")]"/>
+            </context>
+        </contexts>
+
+        <itemDatas>
+            <itemData name="Normal Text" defStyleNum="dsNormal"/>
+            <itemData name="Keyword"  defStyleNum="dsKeyword"/>
+            <itemData name="Version"  defStyleNum="dsDecVal"/>
+            <itemData name="Value"  defStyleNum="dsDataType"/>
+            <itemData name="Variable" defStyleNum="dsVariable"/>
+            <itemData name="Email" defStyleNum="dsOthers"/>
+        </itemDatas>
+    </highlighting>
+
+    <general>
+        <keywords casesensitive="1" />
+    </general>
+</language>
+<!-- kate: replace-tabs on; tab-width 4; indent-width 4; -->
diff --git a/syntax/diff.xml b/syntax/diff.xml
--- a/syntax/diff.xml
+++ b/syntax/diff.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
-  <!ENTITY file  "(====|\*\*\*|\-\-\-|diff|Only in .*:).*$">
+  <!ENTITY file  "(====|\*\*\*|\-\-\-|diff|Only in [^:]*:).*$">
 ]>
 <!--
     2006-08-02: 1.10 Matthew Woehlke <mw_triad@sourceforge.net>
@@ -12,7 +12,7 @@
     2008-02-13: 1.11 Eduardo Robles Elvira <edulix AT gmail DOT com>
      Fixed folding.
 -->
-<language name="Diff" version="7" kateversion="5.62" section="Other" extensions="*.diff;*patch;*.rej" mimetype="text/x-patch">
+<language name="Diff" version="9" kateversion="5.62" section="Other" extensions="*.diff;*patch;*.rej" mimetype="text/x-patch">
 
   <highlighting>
 
@@ -22,7 +22,7 @@
         <Detect2Chars attribute="Header" context="AttrHeader_Chunk" char="@" char1="@" beginRegion="chunk" column="0"/>
         <AnyChar attribute="Header" context="AttrHeader_Chunk" String="0123456789" beginRegion="chunk" column="0"/>
         <RegExpr attribute="Header" context="RChunk" String="^\*+$" beginRegion="chunk" column="0"/>
-        <RegExpr attribute="File" context="#stay" String="^Only in .*:.*$" column="0"/>
+        <RegExpr attribute="File" context="#stay" String="^Only in [^:]*:.*$" column="0"/>
         <StringDetect attribute="File" context="AttrFile_RFile" String="diff" beginRegion="chunk" column="0"/>
         <StringDetect attribute="File" context="AttrFile" String="====" column="0"/>
         <StringDetect attribute="File" context="AttrFile_File" String="***" beginRegion="chunk" column="0"/>
@@ -66,7 +66,7 @@
 
       <!-- block contexts (diff -r) -->
       <context attribute="Normal Text" lineEndContext="#stay" name="RFile" fallthroughContext="AttrNormal">
-        <RegExpr attribute="File" context="#pop" String="^(diff|Only in .*:).*$" endRegion="chunk" lookAhead="true" column="0"/>
+        <RegExpr attribute="File" context="#pop" String="^(diff|Only in [^:]*:)" endRegion="chunk" lookAhead="true" column="0"/>
         <RegExpr attribute="Header" context="#stay" String="^&file;" column="0"/>
         <RegExpr attribute="Header" context="RChunkInFile" String="^\*+$" beginRegion="chunk" column="0"/>
         <IncludeRules context="File"/>
@@ -115,13 +115,13 @@
     </contexts>
 
     <itemDatas>
-      <itemData name="Normal Text" defStyleNum="dsNormal"/>
-      <itemData name="File"  defStyleNum="dsKeyword"/>
-      <itemData name="Header"  defStyleNum="dsDataType"/>
-      <itemData name="Removed line"  defStyleNum="dsString" />
-      <itemData name="Added line"  defStyleNum="dsVariable"/>
-      <itemData name="Changed line (old)"  defStyleNum="dsString"/>
-      <itemData name="Changed line (new)"  defStyleNum="dsVariable"/>
+      <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="File"  defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Header"  defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Removed line"  defStyleNum="dsString" spellChecking="false"/>
+      <itemData name="Added line"  defStyleNum="dsVariable" spellChecking="false"/>
+      <itemData name="Changed line (old)"  defStyleNum="dsString" spellChecking="false"/>
+      <itemData name="Changed line (new)"  defStyleNum="dsVariable" spellChecking="false"/>
     </itemDatas>
 
   </highlighting>
diff --git a/syntax/djangotemplate.xml b/syntax/djangotemplate.xml
--- a/syntax/djangotemplate.xml
+++ b/syntax/djangotemplate.xml
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
 	<!ENTITY name    "[A-Za-z_:][\w.:_-]*">
 	<!ENTITY entref  "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);">
 ]>
-<language name="Django HTML Template" version="7" kateversion="5.53" section="Markup" extensions="*.htm;*.html" mimetype="text/html"  author="Matthew Marshall (matthew@matthewmarshall.org)" license="LGPL" priority="9">
+<language name="Django HTML Template" version="8" kateversion="5.79" section="Markup" extensions="*.htm;*.html" mimetype="text/html"  author="Matthew Marshall (matthew@matthewmarshall.org)" license="LGPL" priority="9">
 
 <!--
     Based off of the katepart html syntax highlighting by Wilbert Berendsen.
@@ -131,17 +131,17 @@
     <DetectIdentifier/>
     <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
     <StringDetect attribute="CDATA" context="CDATA" String="&lt;![CDATA[" beginRegion="cdata" />
-    <RegExpr attribute="Doctype" context="Doctype" String="&lt;!DOCTYPE\s+" beginRegion="doctype" />
+    <WordDetect attribute="Doctype" context="Doctype" String="&lt;!DOCTYPE" beginRegion="doctype" />
     <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:-]*" beginRegion="pi" />
-    <RegExpr attribute="Element" context="CSS" String="&lt;style\b" insensitive="true" beginRegion="style" />
-    <RegExpr attribute="Element" context="JS" String="&lt;script\b" insensitive="true" beginRegion="script" />
-    <RegExpr attribute="Element" context="El Open" String="&lt;pre\b" insensitive="true" beginRegion="pre" />
-    <RegExpr attribute="Element" context="El Open" String="&lt;div\b" insensitive="true" beginRegion="div" />
-    <RegExpr attribute="Element" context="El Open" String="&lt;table\b" insensitive="true" beginRegion="table" />
+    <WordDetect attribute="Element" context="CSS" String="&lt;style" insensitive="true" beginRegion="style" />
+    <WordDetect attribute="Element" context="JS" String="&lt;script" insensitive="true" beginRegion="script" />
+    <WordDetect attribute="Element" context="El Open" String="&lt;pre" insensitive="true" beginRegion="pre" />
+    <WordDetect attribute="Element" context="El Open" String="&lt;div" insensitive="true" beginRegion="div" />
+    <WordDetect attribute="Element" context="El Open" String="&lt;table" insensitive="true" beginRegion="table" />
     <RegExpr attribute="Element" context="El Open" String="&lt;&name;" />
-    <RegExpr attribute="Element" context="El Close" String="&lt;/pre\b" insensitive="true" endRegion="pre" />
-    <RegExpr attribute="Element" context="El Close" String="&lt;/div\b" insensitive="true" endRegion="div" />
-    <RegExpr attribute="Element" context="El Close" String="&lt;/table\b" insensitive="true" endRegion="table" />
+    <WordDetect attribute="Element" context="El Close" String="&lt;/pre" insensitive="true" endRegion="pre" />
+    <WordDetect attribute="Element" context="El Close" String="&lt;/div" insensitive="true" endRegion="div" />
+    <WordDetect attribute="Element" context="El Close" String="&lt;/table" insensitive="true" endRegion="table" />
     <RegExpr attribute="Element" context="El Close" String="&lt;/&name;" />
     <!-- as long as kde gives DTDs the text/html mimetype--><IncludeRules context="FindDTDRules" />
     <IncludeRules context="FindEntityRefs" />
@@ -249,7 +249,7 @@
   </context>
 
   <context name="CSS content" attribute="Normal Text" lineEndContext="#stay">
-    <RegExpr attribute="Element" context="El Close 2" String="&lt;/style\b" insensitive="true" endRegion="style" />
+    <WordDetect attribute="Element" context="El Close 2" String="&lt;/style" insensitive="true" endRegion="style" />
     <IncludeRules context="FindTemplate" />
     <IncludeRules context="##CSS" includeAttrib="true"/>
   </context>
@@ -263,25 +263,25 @@
   </context>
 
   <context name="JS content" attribute="Normal Text" lineEndContext="#stay">
-    <RegExpr attribute="Element" context="El Close 2" String="&lt;/script\b" insensitive="true" endRegion="script" />
+    <WordDetect attribute="Element" context="El Close 2" String="&lt;/script" insensitive="true" endRegion="script" />
     <RegExpr attribute="Comment" context="JS comment close" String="//(?=.*&lt;/script\b)" insensitive="true" />
     <IncludeRules context="FindTemplate" />
     <IncludeRules context="Normal##JavaScript" includeAttrib="true"/>
   </context>
 
   <context name="JS comment close" attribute="Comment" lineEndContext="#pop">
-    <RegExpr attribute="Element" context="El Close 3" String="&lt;/script\b" insensitive="true" endRegion="script" />
+    <WordDetect attribute="Element" context="El Close 3" String="&lt;/script" insensitive="true" endRegion="script" />
     <IncludeRules context="FindTemplate" />
     <IncludeRules context="##Comments" />
   </context>
 
-  <context name="Value" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="Value NQ">
+  <context name="Value" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="Value NQ">
     <DetectChar attribute="Value" context="Value DQ" char="&quot;" />
     <DetectChar attribute="Value" context="Value SQ" char="&apos;" />
     <DetectSpaces />
   </context>
 
-  <context name="Value NQ" attribute="Normal Text" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
+  <context name="Value NQ" attribute="Normal Text" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
     <IncludeRules context="FindEntityRefs" />
     <IncludeRules context="FindTemplate" />
     <RegExpr attribute="Value" context="#stay" String="/(?!&gt;)|[^/&gt;&lt;&quot;&apos;\s]" />
diff --git a/syntax/dockerfile.xml b/syntax/dockerfile.xml
--- a/syntax/dockerfile.xml
+++ b/syntax/dockerfile.xml
@@ -1,67 +1,122 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
-<!-- Dockerfile syntaxfile v1.0 by James Turnbull <james@lovedthanlost.net> -->
-<language name="Dockerfile" section="Other" version="9" kateversion="5.0" extensions="Dockerfile" author="James Turnbull (james@lovedthanlost.net)" license="MIT">
+<!DOCTYPE language>
+<!--
+    This file is part of KDE's kate project.
+
+    SPDX-FileCopyrightText: James Turnbull <james@lovedthanlost.net>
+    SPDX-FileCopyrightText: 2020-2021 Alex Turbov <i.zaufi@gmail.com>
+
+    SPDX-License-Identifier: MIT
+ -->
+<language
+    name="Dockerfile"
+    section="Other"
+    version="11"
+    kateversion="5.79"
+    extensions="Dockerfile;Containerfile"
+    author="James Turnbull (james@lovedthanlost.net)"
+    license="MIT"
+  >
   <highlighting>
-    <list name="keywords">
-      <item>ADD</item>
-      <item>ARG</item>
-      <item>CMD</item>
-      <item>COPY</item>
-      <item>ENTRYPOINT</item>
-      <item>ENV</item>
+    <list name="keywords-trivial">
+      <item>AS</item>
       <item>EXPOSE</item>
-      <item>FROM</item>
-      <item>HEALTHCHECK</item>
-      <item>LABEL</item>
       <item>MAINTAINER</item>
       <item>ONBUILD</item>
-      <item>RUN</item>
-      <item>SHELL</item>
       <item>STOPSIGNAL</item>
       <item>USER</item>
-      <item>VOLUME</item>
       <item>WORKDIR</item>
+      <item>VOLUME</item>
+      <item>SHELL</item>
     </list>
-
+    <list name="keywords-options">
+      <item>ADD</item>
+      <item>COPY</item>
+      <item>FROM</item>
+      <item>HEALTHCHECK</item>
+    </list>
+    <list name="keywords-key-value">
+      <item>ARG</item>
+      <item>ENV</item>
+      <item>LABEL</item>
+    </list>
+    <list name="keywords-shell-form">
+      <item>CMD</item>
+      <item>ENTRYPOINT</item>
+    </list>
+    <list name="keywords-shell-form-with-options">
+      <item>RUN</item>
+    </list>
     <contexts>
-      <context name="normal" attribute="Normal" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectChar attribute="Comment" context="Comment" char="#"/>
-        <keyword attribute="Keyword"  context="#stay" String="keywords"/>
-        <DetectIdentifier/>
-        <DetectChar attribute="String" context="string&quot;" char="&quot;"/>
-        <DetectChar attribute="String" context="string'" char="'"/>
+      <context name="normal" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces />
+        <DetectChar attribute="Comment" context="Comment" char="#" />
+        <keyword attribute="Keyword" context="#stay" String="keywords-trivial" />
+        <keyword attribute="Keyword" context="Maybe Option" String="keywords-options" />
+        <keyword attribute="Keyword" context="#stay" String="keywords-key-value" />
+        <keyword attribute="Keyword" context="Maybe Shell Form" String="keywords-shell-form" />
+        <keyword attribute="Keyword" context="Maybe Option for Shell Form" String="keywords-shell-form-with-options" />
+        <DetectIdentifier />
+        <DetectChar attribute="String" context="string&quot;" char="&quot;" />
+        <DetectChar attribute="String" context="string'" char="'" />
+        <LineContinue attribute="Operator" context="#stay" />
       </context>
 
+      <context name="Maybe Option" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+        <DetectSpaces />
+        <Detect2Chars attribute="Option" context="KwOption" char="-" char1="-"/>
+        <LineContinue attribute="Normal Text" context="#stay" />
+      </context>
+
+      <context name="Maybe Shell Form" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="BashOneLine##Bash">
+        <DetectSpaces />
+        <DetectChar attribute="Normal Text" context="#pop" char="[" lookAhead="true" />
+        <LineContinue attribute="Operator" context="#stay" />
+      </context>
+
+      <context name="Maybe Option for Shell Form" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="BashOneLine##Bash">
+        <DetectSpaces />
+        <DetectChar attribute="Normal Text" context="#pop" char="[" lookAhead="true" />
+        <Detect2Chars attribute="Option" context="KwOption" char="-" char1="-"/>
+        <LineContinue attribute="Operator" context="#stay" />
+      </context>
+
+      <context attribute="Option" lineEndContext="#pop#pop" name="KwOption" fallthroughContext="#pop">
+        <RegExpr attribute="Option" context="#pop" String="[a-z\-]+(=[^\s]+)?"/>
+      </context>
+
       <context attribute="Comment" lineEndContext="#pop" name="Comment">
+        <RegExpr attribute="Directive" context="#stay" String="(syntax|escape)=[^\s]+"/>
         <LineContinue attribute="Comment" context="#stay" />
         <IncludeRules context="##Comments" />
       </context>
 
       <context name="string&quot;" attribute="String" lineEndContext="#pop">
-        <LineContinue attribute="Operator" context="#stay"/>
-        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+        <LineContinue attribute="Operator" context="#stay" />
+        <DetectChar attribute="String" context="#pop" char="&quot;" />
       </context>
 
       <context name="string'" attribute="String" lineEndContext="#pop">
-        <LineContinue attribute="String" context="#stay"/>
-        <DetectChar attribute="String" context="#pop" char="'"/>
+        <LineContinue attribute="String" context="#stay" />
+        <DetectChar attribute="String" context="#pop" char="'" />
       </context>
 
     </contexts>
     <itemDatas>
-      <itemData name="Normal"  defStyleNum="dsNormal"  spellChecking="0"/>
+      <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="0" />
       <itemData name="Comment" defStyleNum="dsComment" />
+      <itemData name="Directive" defStyleNum="dsCommentVar" />
       <itemData name="Operator" defStyleNum="dsOperator" />
-      <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="0"/>
-      <itemData name="String"  defStyleNum="dsString"  spellChecking="0"/>
+      <itemData name="Option" defStyleNum="dsOperator" />
+      <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="0" />
+      <itemData name="String"  defStyleNum="dsString" spellChecking="0" />
     </itemDatas>
   </highlighting>
   <general>
     <comments>
-      <comment name = "singleLine" start = "#"/>
+      <comment name = "singleLine" start = "#" />
     </comments>
   </general>
 </language>
+
 <!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
diff --git a/syntax/dosbat.xml b/syntax/dosbat.xml
new file mode 100644
--- /dev/null
+++ b/syntax/dosbat.xml
@@ -0,0 +1,644 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language
+[
+  <!ENTITY label    "[^\s]+">
+  <!ENTITY varname  "[A-Za-z_][A-Za-z0-9_.]*">             <!-- valid character in a variable name -->
+  <!ENTITY varname_set "&varname;(?=(\[(&#37;&#37;)?(&varname;|\d+)\]|!&varname;!)?(=|\s*$))|&#37;~?\d|&#37;&#37;(&varname;|[0-9*#])">   <!-- variable in set cmd -->
+  <!ENTITY eop      "(?=([\s\\;&quot;&#37;]|$))">         <!-- end of path -->
+  <!ENTITY pathpart "[^\s\\&#37;!;/:*?&quot;&gt;&lt;|&amp;]">   <!-- valid character in a file name -->
+]>
+<language name="MS-DOS Batch" version="9" kateversion="5.62" section="Scripts" extensions="*.bat;*.cmd" mimetype="application/x-dos" casesensitive="0" author="Matthew Woehlke (mw_triad@users.sourceforge.net)" license="LGPL">
+
+<!-- (c) 2006, 2009, 2010 Matthew Woehlke (mw_triad@users.sourceforge.net)
+    Released under the LGPL -->
+
+  <highlighting>
+    <list name="builtins">
+      <item>assoc</item>
+      <item>break</item>
+      <item>cd</item>
+      <item>chdir</item>
+      <item>cls</item>
+      <item>color</item>
+      <item>copy</item>
+      <item>date</item>
+      <item>del</item>
+      <item>dir</item>
+      <item>endlocal</item>
+      <item>erase</item>
+      <item>exit</item>
+      <item>ftype</item>
+      <item>md</item>
+      <item>mkdir</item>
+      <item>move</item>
+      <item>path</item>
+      <item>pause</item>
+      <item>popd</item>
+      <item>prompt</item>
+      <item>pushd</item>
+      <item>rd</item>
+      <item>ren</item>
+      <item>rename</item>
+      <item>rmdir</item>
+      <item>runas</item>
+      <item>setlocal</item>
+      <item>shift</item>
+      <item>start</item>
+      <item>time</item>
+      <item>title</item>
+      <item>type</item>
+      <item>ver</item>
+      <item>verify</item>
+      <item>vol</item>
+    </list>
+
+    <!-- these need special handling -->
+    <list name="special commands">
+      <item>call</item>
+      <item>echo</item>
+      <item>else</item>
+      <item>for</item>
+      <item>in</item>
+      <item>do</item>
+      <item>goto</item>
+      <item>if</item>
+      <item>not</item>
+      <item>rem</item>
+      <item>set</item>
+    </list>
+
+    <list name="commands">
+      <!-- the basics -->
+      <item>at</item>
+      <item>attrib</item>
+      <item>break</item>
+      <item>cacls</item>
+      <item>chcp</item>
+      <item>chkdsk</item>
+      <item>chkntfs</item>
+      <item>cmd</item>
+      <item>comp</item>
+      <item>compact</item>
+      <item>convert</item>
+      <item>diskcomp</item>
+      <item>diskcopy</item>
+      <item>doskey</item>
+      <item>fc</item>
+      <item>find</item>
+      <item>findstr</item>
+      <item>format</item>
+      <item>graftabl</item>
+      <item>help</item>
+      <item>label</item>
+      <item>mode</item>
+      <item>more</item>
+      <item>print</item>
+      <item>recover</item>
+      <item>replace</item>
+      <item>sort</item>
+      <item>subst</item>
+      <item>tree</item>
+      <item>xcopy</item>
+    </list>
+
+    <list name="comparators">
+      <item>EQU</item>
+      <item>NEQ</item>
+      <item>LSS</item>
+      <item>LEQ</item>
+      <item>GTR</item>
+      <item>GEQ</item>
+    </list>
+
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Start">
+        <DetectSpaces/>
+        <!-- general syntactical stuff -->
+        <keyword attribute="Builtin" context="Command" String="builtins"/>
+        <keyword attribute="Command" context="Command" String="commands"/>
+        <!-- special built-ins -->
+        <WordDetect attribute="Builtin" context="CmdSet" String="set" insensitive="1"/>
+        <WordDetect attribute="Builtin" context="CmdEcho" String="echo" insensitive="1" lookAhead="1"/>
+        <WordDetect attribute="ControlFlow" context="CmdIf" String="if" insensitive="1"/>
+        <WordDetect attribute="ControlFlow" context="#stay" String="else" insensitive="1"/>
+        <WordDetect attribute="ControlFlow" context="CmdFor" String="for" insensitive="1"/>
+        <WordDetect attribute="ControlFlow" context="CmdGoto" String="goto" insensitive="1"/>
+        <WordDetect attribute="Builtin" context="CmdCall" String="call" insensitive="1"/>
+        <WordDetect attribute="Comment" context="Comment" String="rem" insensitive="1"/>
+        <DetectChar attribute="Keyword" context="#stay" char="@"/>
+        <!-- other syntaxes -->
+        <StringDetect attribute="Comment" context="Comment" String="::"/>
+        <DetectChar attribute="Label" context="Label" char=":" firstNonSpace="true"/>
+        <DetectChar attribute="Keyword" context="NestedStart" char="(" beginRegion="body"/>
+        <IncludeRules context="FindRedirections"/>
+        <RegExpr attribute="Path" context="Command" String="[^\s&#37;!;*?&quot;&gt;&lt;|&amp;]+"/>
+        <StringDetect attribute="Keyword" String="||"/>
+        <StringDetect attribute="Keyword" String="&amp;&amp;"/>
+        <DetectChar attribute="Redirection" char="|"/>
+        <DetectChar attribute="Keyword" char="&amp;"/>
+        <IncludeRules context="FindStrings"/>
+        <IncludeRules context="FindSubstitutions"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="NestedStart">
+        <DetectChar attribute="Keyword" context="#pop" char=")" endRegion="body"/>
+        <IncludeRules context="Start"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindBranches">
+        <StringDetect attribute="Keyword" context="#pop" String="||"/>
+        <StringDetect attribute="Keyword" context="#pop" String="&amp;&amp;"/>
+        <DetectChar attribute="Redirection" context="#pop" char="|"/>
+        <DetectChar attribute="Keyword" context="#pop" char="&amp;"/>
+        <DetectChar attribute="Keyword" context="#pop" char=")" endRegion="body"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindRedirections">
+        <RegExpr attribute="Redirection" context="Redirection" String="[0-9]*(>>?|&lt;)"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Redirection" fallthroughContext="#pop!Path">
+        <DetectSpaces context="#pop!Path"/>
+        <RegExpr attribute="Redirection" context="#pop" String="&amp;[0-9]+|"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindStrings">
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindSubstitutions">
+        <Detect2Chars attribute="Escape" context="Substitution" char="%" char1="%"/>
+        <IncludeRules context="FindVariables"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Substitution" fallthroughContext="#pop">
+        <RegExpr attribute="Variable Expansion" context="#pop!SubstitutionVariable" String="&varname;(\[(%%)?(&varname;|\d+)\])*(:~(%%&varname;|-?[0-9]+)(,(%%&varname;|-?[0-9]+))?|:[^=]+=[^%]*)?%|[0-9*#]|~[fdpnxsatz]*(\$&varname;:)?[0-9#]|" lookAhead="1"/>
+        <DetectIdentifier attribute="Variable" context="#pop"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="SubstitutionVariable" fallthroughContext="#pop!VariableRegular1">
+        <DetectChar attribute="Variable Expansion" char="~" context="#pop!VariableModificator"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindVariables">
+        <!--
+          %var%
+          %var:~N,N%
+          %var:old=new%
+          %~n1
+          %~$var:1
+          %1
+          %*
+          !var!
+          !var:~N,N!
+          !var:old=new!
+          !%...%!
+
+          prefix:
+          [%!]var[...]
+          [%!]var%%
+        -->
+        <RegExpr attribute="Variable Expansion" context="Variable" String="%(&varname;(\[(%%)?(&varname;|\d+)\])*(:~(%%&varname;|-?[0-9]+)(,(%%&varname;|-?[0-9]+))?|:[^=]+=[^%]*)?%|[0-9*#])|%~[fdpnxsatz]*(\$&varname;:)?[0-9#]|!%(&varname;(\[(%%)?(&varname;|\d+)\]|%%&varname;)*%|[0-9*#])!|!&varname;(\[(%%)?(&varname;|\d+)\]|%%&varname;)*(:~(%%&varname;|-?[0-9]+)(,(%%&varname;|-?[0-9]+))?|:[^=]+=[^!]*)?!" lookAhead="1"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Variable">
+        <StringDetect attribute="Variable Expansion" String="%~" context="#pop!VariableModificator"/>
+        <DetectChar attribute="Variable Expansion" char="%" context="#pop!VariableRegular1"/>
+        <DetectChar attribute="Variable Expansion" char="!" context="#pop!VariableRegular2"/>
+      </context>
+      <!-- %~ -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="VariableModificator">
+        <AnyChar attribute="Variable Expansion" String="fdpnxsatz"/>
+        <DetectChar attribute="Variable Expansion" char="$" context="#pop!VariableFind"/>
+        <AnyChar attribute="Variable" String="0123456789#" context="#pop"/>
+      </context>
+      <!-- %~$ -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="VariableFind">
+        <DetectIdentifier attribute="Variable"/>
+        <DetectChar attribute="Variable Expansion" char=":"/>
+        <AnyChar attribute="Variable" String="0123456789#" context="#pop"/>
+        <DetectChar attribute="Variable" char="."/>
+      </context>
+      <!-- % -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="VariableRegular1">
+        <DetectChar attribute="Variable Expansion" char="%" context="#pop"/>
+        <DetectIdentifier attribute="Variable"/>
+        <AnyChar attribute="Variable" String="0123456789*#" context="#pop"/>
+        <StringDetect attribute="Variable Expansion" String=":~" context="#pop!VariableSub"/>
+        <DetectChar attribute="Variable Expansion" char=":" context="#pop!VariableReplace1"/>
+        <IncludeRules context="FindVariableRegularKey"/>
+        <DetectChar attribute="Variable" char="."/>
+      </context>
+      <!-- ! -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="VariableRegular2">
+        <DetectChar attribute="Variable Expansion" char="!" context="#pop"/>
+        <DetectIdentifier attribute="Variable"/>
+        <StringDetect attribute="Variable Expansion" String=":~" context="#pop!VariableSub"/>
+        <DetectChar attribute="Variable Expansion" char=":" context="#pop!VariableReplace2"/>
+        <IncludeRules context="FindVariableRegularKey"/>
+        <IncludeRules context="FindVariableRegularEscaped"/>
+        <DetectChar attribute="Variable Expansion" char="%" context="VariableRegular1"/>
+        <DetectChar attribute="Variable" char="."/>
+      </context>
+      <!-- %% in !var1%%var2! -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindVariableRegularEscaped">
+        <StringDetect attribute="Escape" String="%%" context="VariableRegularEscaped"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="VariableRegularEscaped">
+        <DetectIdentifier attribute="Variable" context="#pop"/>
+      </context>
+      <!-- for [ ... ] -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindVariableRegularKey">
+        <DetectChar attribute="Symbol" char="[" context="VariableRegularKey"/>
+      </context>
+      <!-- [ -->
+      <context attribute="String" lineEndContext="#stay" name="VariableRegularKey">
+        <DetectChar attribute="Symbol" char="]" context="#pop"/>
+        <StringDetect attribute="Escape" String="%%" context="VariableRegularKeyVar"/>
+        <IncludeRules context="FindNumber"/>
+        <DetectIdentifier attribute="String"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="VariableRegularKeyVar" fallthroughContext="#pop">
+        <DetectIdentifier attribute="Variable" context="#pop"/>
+      </context>
+      <!-- %var:~ and !var:~ -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="VariableSub">
+        <StringDetect attribute="Escape" String="%%"/>
+        <AnyChar attribute="Variable Expansion" String="%!" context="#pop"/>
+        <IncludeRules context="FindNumber"/>
+        <DetectIdentifier attribute="Variable"/>
+        <DetectChar attribute="Number" char="-"/>
+        <DetectChar attribute="Variable Expansion" char=","/>
+        <DetectChar attribute="Variable" char="."/>
+      </context>
+      <!-- %var: -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="VariableReplace1">
+        <RegExpr attribute="String" String="[^=]+" context="#pop!VariableReplace1Sep"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="VariableReplace1Sep">
+        <DetectChar attribute="Variable Expansion" char="=" context="#pop!VariableReplace1P2"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="VariableReplace1P2">
+        <DetectChar attribute="Variable Expansion" char="%" context="#pop"/>
+        <RegExpr attribute="String" String="[^%]+"/>
+      </context>
+      <!-- !var: -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="VariableReplace2">
+        <RegExpr attribute="String" String="[^=]+" context="#pop!VariableReplace2Sep"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="VariableReplace2Sep">
+        <DetectChar attribute="Variable Expansion" char="=" context="#pop!VariableReplace2P2"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="VariableReplace2P2">
+        <DetectChar attribute="Variable Expansion" char="!" context="#pop"/>
+        <RegExpr attribute="String" String="[^!]+"/>
+      </context>
+
+      <!-- basic sub-contexts -->
+      <context attribute="Comment" lineEndContext="#pop" name="Comment">
+        <DetectSpaces/>
+        <IncludeRules context="##Comments"/>
+        <DetectIdentifier/>
+        <IncludeRules context="FindUnquotedStringEscape"/>
+        <AnyChar attribute="Error" String="&amp;|^&lt;>()"/>
+      </context>
+
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <DetectSpaces attribute="String"/>
+        <Detect2Chars attribute="Escape" char="\" char1="&quot;"/>
+        <Detect2Chars attribute="Escape" char="\" char1="\"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+        <IncludeRules context="FindSubstitutions"/>
+        <DetectIdentifier attribute="String"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="Command">
+        <DetectSpaces/>
+        <IncludeRules context="FindUnquotedString"/>
+        <IncludeRules context="FindSpecialCommandOption"/>
+        <DetectIdentifier/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="FindSpecialCommandOption">
+        <RegExpr attribute="Option" context="#stay" String="[/-][A-Za-z0-9][A-Za-z0-9_]*:?"/>
+        <RegExpr attribute="Path" context="#stay" String="[.]+&eop;|[A-Za-z][A-Za-z.]*:(\\+&pathpart;*)*|&pathpart;*(\\+&pathpart;*)+"/>
+      </context>
+
+      <context attribute="Error" lineEndContext="#pop" name="Label">
+        <RegExpr attribute="Label" context="Comment" String="&label;"/>
+      </context>
+
+      <context attribute="Path" lineEndContext="#pop" name="Path">
+        <IncludeRules context="FindStrings"/>
+        <IncludeRules context="FindSubstitutions"/>
+        <AnyChar attribute="Normal Text" context="#pop" String=" &#9;\%/:*?&quot;&gt;&lt;|&amp;" lookAhead="true"/>
+        <DetectIdentifier/>
+      </context>
+
+      <context attribute="Error" lineEndContext="#pop" name="Error">
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="FindNumber">
+        <HlCHex attribute="Hex"/>
+        <HlCOct attribute="Octal"/>
+        <Int attribute="Number"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="FindUnquotedStringEscape">
+        <LineContinue attribute="Escape" char="^"/>
+        <RegExpr attribute="Escape" context="#stay" String="\^."/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="FindUnquotedString">
+        <IncludeRules context="FindStrings"/>
+        <IncludeRules context="FindSubstitutions"/>
+        <IncludeRules context="FindUnquotedStringEscape"/>
+        <IncludeRules context="FindRedirections"/>
+        <IncludeRules context="FindBranches"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="UnquotedString">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <IncludeRules context="FindUnquotedString"/>
+      </context>
+
+      <!-- special sub-contexts -->
+      <context attribute="Error" lineEndContext="#pop" name="CmdSet" fallthroughContext="#pop!Error">
+        <IncludeRules context="CmdSetVar"/>
+        <WordDetect attribute="Option" context="#pop!CmdSetVar" String="/p" insensitive="1"/>
+        <WordDetect attribute="Option" context="#pop!CmdSetExpr" String="/a" insensitive="1"/>
+      </context>
+      <context attribute="Error" lineEndContext="#pop" name="CmdSetVar" fallthroughContext="#pop!Error">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar attribute="String" context="#pop!CmdSetQuotedVar" char="&quot;"/>
+        <RegExpr attribute="Variable" context="#pop!CmdSetVar=" String="&varname_set;"/>
+        <DetectChar attribute="Symbol" context="#pop!UnquotedString" char="="/>
+      </context>
+      <!-- set var -->
+      <context attribute="Error" lineEndContext="#pop" name="CmdSetVar=">
+        <DetectChar attribute="Symbol" context="#pop!UnquotedString" char="="/>
+        <IncludeRules context="FindCmdSetVarSuffix"/>
+      </context>
+      <context attribute="Error" lineEndContext="#pop" name="FindCmdSetVarSuffix">
+        <DetectChar attribute="Variable Expansion" char="!"/>
+        <DetectIdentifier attribute="Variable"/>
+        <IncludeRules context="FindVariableRegularKey"/>
+      </context>
+      <!-- set " -->
+      <context attribute="Error" lineEndContext="#pop" name="CmdSetQuotedVar" fallthroughContext="#pop!Error">
+        <RegExpr attribute="Variable" context="#pop!CmdSetQuotedVar=" String="&varname_set;"/>
+        <DetectChar attribute="Symbol" context="#pop!String" char="="/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <!-- set "var -->
+      <context attribute="Error" lineEndContext="#pop" name="CmdSetQuotedVar=">
+        <DetectChar attribute="Symbol" context="#pop!String" char="="/>
+        <IncludeRules context="FindCmdSetVarSuffix"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+
+      <!-- set /a -->
+      <context attribute="Error" lineEndContext="#pop" name="CmdSetExpr" fallthroughContext="#pop!CmdSetUnquotedExpr">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar attribute="String" context="CmdSetQuotedExpr" char="&quot;"/>
+        <DetectIdentifier attribute="Variable" context="CmdSetUnquotedExpr"/>
+        <DetectChar attribute="Keyword" char=","/>
+      </context>
+      <context attribute="Error" lineEndContext="#pop" name="CmdSetQuotedExpr">
+        <IncludeRules context="FindVariables"/>
+        <StringDetect attribute="Operator" String="%%"/>
+        <AnyChar attribute="Operator" String="=*/%+-&amp;^|!~"/>
+        <AnyChar attribute="Symbol" String="()[],"/>
+        <DetectIdentifier attribute="Variable"/>
+        <StringDetect attribute="Operator" String="&lt;&lt;"/>
+        <StringDetect attribute="Operator" String=">>"/>
+        <IncludeRules context="FindNumber"/>
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <context attribute="Error" lineEndContext="#pop" name="CmdSetUnquotedExpr">
+        <AnyChar attribute="Symbol" String="()[]"/>
+        <IncludeRules context="FindUnquotedString"/>
+        <AnyChar attribute="Operator" String="=+-/^*!"/>
+        <DetectChar attribute="Keyword" context="#pop" char=","/>
+        <DetectIdentifier attribute="Variable"/>
+        <IncludeRules context="FindNumber"/>
+        <DetectSpaces attribute="Normal Text"/>
+      </context>
+
+      <!-- echo -->
+      <context attribute="Echoed Text" lineEndContext="#pop" name="CmdEcho">
+        <RegExpr attribute="Builtin" context="#pop" String="echo\s+o(ff|n)\s*(?=[&amp;|]|$)" insensitive="1"/>
+        <StringDetect attribute="Builtin" context="#pop!CmdEcho2" String="echo" insensitive="1"/>
+      </context>
+      <context attribute="Echoed Text" lineEndContext="#pop" name="CmdEcho2">
+        <DetectSpaces/>
+        <IncludeRules context="FindSubstitutions"/>
+        <IncludeRules context="FindUnquotedStringEscape"/>
+        <IncludeRules context="FindRedirections"/>
+        <IncludeRules context="FindBranches"/>
+        <DetectIdentifier/>
+      </context>
+
+      <!-- goto -->
+      <context attribute="Error" lineEndContext="#pop" name="CmdGoto">
+        <DetectSpaces attribute="Normal Text" context="#stay"/>
+        <DetectChar attribute="Label" char=":"/>
+        <RegExpr attribute="Label" context="#pop" String="&label;"/>
+      </context>
+
+      <!-- call -->
+      <context attribute="Error" lineEndContext="#pop" name="CmdCall" fallthroughContext="#pop!Command">
+        <DetectSpaces attribute="Normal Text" context="#stay"/>
+        <DetectChar attribute="Label" char=":"/>
+        <RegExpr attribute="Label" context="#pop!Command" String="&label;"/>
+      </context>
+
+
+      <!-- if -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="CmdIf" fallthroughContext="CmdIfCond">
+        <DetectSpaces/>
+        <StringDetect attribute="Option" String="/i" insensitive="1"/>
+        <WordDetect attribute="Keyword" String="not" insensitive="1"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="CmdIfCond" fallthroughContext="CmdIfCondCmp">
+        <WordDetect attribute="Option" context="CmdIfCondExist" String="exist" insensitive="1"/>
+        <WordDetect attribute="Option" context="CmdIfCondDefined" String="defined" insensitive="1"/>
+        <WordDetect attribute="Option" context="CmdIfCondNum" String="errorlevel" insensitive="1"/>
+        <WordDetect attribute="Option" context="CmdIfCondNum" String="cmdextversion" insensitive="1"/>
+      </context>
+
+      <!-- if exist -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="CmdIfCondExist" fallthroughContext="#pop#pop#pop">
+        <DetectSpaces context="CmdIfCondExistPath"/>
+      </context>
+      <context attribute="Path" lineEndContext="#pop" name="CmdIfCondExistPath" fallthroughContext="#pop#pop#pop#pop">
+        <DetectSpaces context="#pop#pop#pop#pop" attribute="Normal Text"/>
+        <IncludeRules context="FindStrings"/>
+        <IncludeRules context="FindSubstitutions"/>
+        <DetectIdentifier/>
+      </context>
+
+      <!-- if defined -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="CmdIfCondDefined" fallthroughContext="#pop#pop#pop">
+        <DetectSpaces/>
+        <DetectIdentifier context="#pop#pop#pop" attribute="Variable"/>
+      </context>
+
+      <!-- if errorlevel | if cmdextversion -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="CmdIfCondNum" fallthroughContext="#pop#pop#pop">
+        <DetectSpaces/>
+        <Int context="#pop#pop#pop" attribute="Number"/>
+        <IncludeRules context="FindVariables"/>
+      </context>
+
+      <!-- For
+        if xxx op yyy
+        and
+        if xxx==yyy
+      -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="CmdIfCondCmp">
+        <DetectSpaces context="#pop!CmdIfCondCmpOp"/>
+        <IncludeRules context="FindStrings"/>
+        <IncludeRules context="FindSubstitutions"/>
+        <DetectIdentifier/>
+        <StringDetect String="==" attribute="Keyword" context="CmdIfCondCmpOperand2"/>
+      </context>
+      <!-- fallthroughContext for operand as option: if %CasseSensitive% "%a%"=="x" -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="CmdIfCondCmpOp" fallthroughContext="#pop#pop">
+        <keyword context="CmdIfCondCmpOpSpace" String="comparators" attribute="Keyword"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="CmdIfCondCmpOpSpace">
+        <DetectSpaces context="#pop!CmdIfCondCmpOperand2"/>
+        <RegExpr String="[^\s]+" attribute="Error" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="CmdIfCondCmpOperand2">
+        <DetectSpaces context="#pop#pop#pop#pop"/>
+        <IncludeRules context="FindStrings"/>
+        <IncludeRules context="FindSubstitutions"/>
+        <DetectIdentifier/>
+      </context>
+
+
+      <!-- 'for' sub-contexts -->
+      <context attribute="Error" lineEndContext="#pop" name="CmdFor">
+        <DetectSpaces attribute="Normal Text"/>
+        <RegExpr attribute="Variable" context="CmdForIn" String="%%[a-z#$@]" insensitive="1"/>
+        <StringDetect attribute="Option" context="#stay" String="/d" insensitive="1"/>
+        <StringDetect attribute="Option" context="CmdForR" String="/r" insensitive="1"/>
+        <StringDetect attribute="Option" context="CmdForR" String="/f" insensitive="1"/>
+        <StringDetect attribute="Option" context="CmdForL" String="/l" insensitive="1"/>
+      </context>
+
+      <context attribute="Error" lineEndContext="#pop" name="CmdForIn">
+        <DetectSpaces attribute="Normal Text" context="#stay"/>
+        <WordDetect attribute="Keyword" context="CmdForList" String="in" insensitive="1"/>
+      </context>
+
+      <context attribute="Error" lineEndContext="#pop" name="CmdForList">
+        <DetectSpaces attribute="Normal Text" context="#stay"/>
+        <DetectChar attribute="Keyword" context="CmdForListBody" char="("/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="CmdForListBody" fallthroughContext="#pop!CmdForListBodyText">
+        <DetectSpaces/>
+        <AnyChar String="`'" context="#pop!CmdForListBodyStartCmd"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="CmdForListBodyStartCmd" fallthroughContext="#pop!CmdForListBodyText">
+        <DetectSpaces/>
+        <keyword attribute="Builtin" context="#pop!CmdForListBodyCmd" String="builtins"/>
+        <keyword attribute="Command" context="#pop!CmdForListBodyCmd" String="commands"/>
+        <RegExpr attribute="Path" context="#pop!CmdForListBodyCmd" String="[^\s&#37;!;*?&quot;&gt;&lt;|&amp;]+"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="CmdForListBodyCmd">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <IncludeRules context="FindStrings"/>
+        <IncludeRules context="FindSubstitutions"/>
+        <StringDetect attribute="Escape" context="#pop!CmdForListBodyStartCmd" String="^|"/>
+        <StringDetect attribute="Escape" context="#pop!CmdForListBodyStartCmd" String="^&amp;"/>
+        <IncludeRules context="FindUnquotedStringEscape"/>
+        <IncludeRules context="FindRedirections"/>
+        <IncludeRules context="FindSpecialCommandOption"/>
+        <DetectChar attribute="Keyword" context="CmdForDo" char=")"/>
+        <AnyChar attribute="Error" String="&amp;|^&lt;>()"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="CmdForListBodyText">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <IncludeRules context="FindStrings"/>
+        <IncludeRules context="FindSubstitutions"/>
+        <DetectChar attribute="Keyword" context="CmdForDo" char=")"/>
+      </context>
+
+      <context attribute="Error" lineEndContext="#pop" name="CmdForDo">
+        <DetectSpaces attribute="Normal Text" context="#stay"/>
+        <WordDetect attribute="Keyword" context="#pop#pop#pop#pop#pop" String="do" insensitive="1"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="CmdForR">
+        <DetectSpaces attribute="Normal Text"/>
+        <IncludeRules context="FindStrings"/>
+        <IncludeRules context="FindUnquotedStringEscape"/>
+        <RegExpr attribute="Path" String="([a-z][a-z.]*:)?[.]*\\*[^^\s\\&#37;!;/:*?&quot;&gt;&lt;|&amp;%]*&eop;" insensitive="1"/>
+        <DetectIdentifier attribute="Normal Text"/>
+        <RegExpr attribute="Variable" context="#pop!CmdForIn" String="%%[a-z#$@](?=[$\s])" insensitive="1"/>
+        <IncludeRules context="FindSubstitutions"/>
+      </context>
+
+      <!-- 'for /L' sub-contexts -->
+      <context attribute="Error" lineEndContext="#pop" name="CmdForL">
+        <DetectSpaces attribute="Normal Text" context="#stay"/>
+        <RegExpr attribute="Variable" context="CmdForLIn" String="%%[a-z#$@]" insensitive="1"/>
+      </context>
+
+      <context attribute="Error" lineEndContext="#pop" name="CmdForLIn">
+        <DetectSpaces attribute="Normal Text" context="#stay"/>
+        <WordDetect attribute="Keyword" context="CmdForLRange" String="in" insensitive="1"/>
+      </context>
+
+      <context attribute="Error" lineEndContext="#pop" name="CmdForLRange">
+        <DetectSpaces attribute="Normal Text" context="#stay"/>
+        <DetectChar attribute="Keyword" context="CmdForLStart" char="("/>
+      </context>
+
+      <context attribute="Error" lineEndContext="#pop" name="CmdForLStart">
+        <DetectSpaces attribute="Normal Text"/>
+        <AnyChar attribute="Keyword" String=";,="/>
+        <DetectChar attribute="Number" char="-"/>
+        <IncludeRules context="FindNumber"/>
+        <IncludeRules context="FindVariables"/>
+        <DetectChar attribute="Keyword" context="#pop!CmdForDo" char=")"/>
+        <DetectIdentifier attribute="String"/>
+      </context>
+
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text"  defStyleNum="dsNormal"/>
+      <itemData name="Comment"      defStyleNum="dsComment"/>
+      <itemData name="Keyword"      defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="ControlFlow"   defStyleNum="dsControlFlow" spellChecking="false"/>
+      <itemData name="Number"       defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="Label"        defStyleNum="dsOthers"/>
+      <itemData name="Builtin"      defStyleNum="dsBuiltIn"/>
+      <itemData name="Command"      defStyleNum="dsKeyword"/>
+      <itemData name="Redirection"  defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="String"       defStyleNum="dsString"/>
+      <itemData name="Escape"       defStyleNum="dsSpecialChar" spellChecking="false"/>
+      <itemData name="Echoed Text"  defStyleNum="dsNormal"/>
+      <itemData name="Variable"     defStyleNum="dsVariable"/>
+      <itemData name="Variable Expansion"     defStyleNum="dsPreprocessor" spellChecking="false"/>
+      <itemData name="Path"         defStyleNum="dsNormal"/>
+      <itemData name="Option"       defStyleNum="dsAttribute" spellChecking="false"/>
+      <itemData name="Error"        defStyleNum="dsError" spellChecking="false"/>
+			<itemData name="Hex"          defStyleNum="dsBaseN" spellChecking="false"/>
+			<itemData name="Octal"        defStyleNum="dsBaseN" spellChecking="false"/>
+			<itemData name="Symbol"       defStyleNum="dsNormal" spellChecking="false"/>
+			<itemData name="Operator"     defStyleNum="dsOperator" spellChecking="false"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="rem "/>
+    </comments>
+    <keywords casesensitive="0" additionalDeliminator="@"/>
+  </general>
+</language>
+<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
diff --git a/syntax/dot.xml b/syntax/dot.xml
--- a/syntax/dot.xml
+++ b/syntax/dot.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!-- Adapted from the VIM highlighter, by Markus Mottl (markus@oefai.at) -->
 <language name="dot" version="5" kateversion="5.0" section="Scientific" extensions="*.dot" mimetype="text/x-dot" author="Postula Loïs (lois.postula@live.be)" priority="0">
 
diff --git a/syntax/doxygen.xml b/syntax/doxygen.xml
--- a/syntax/doxygen.xml
+++ b/syntax/doxygen.xml
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
     <!ENTITY wordsep "(?:[][,?;()]|\.$|\.?\s|$)">   <!-- things that end a TagWord -->
     <!ENTITY sl_word ".*?(?=&wordsep;)">
     <!ENTITY ml_word ".*?(?=&wordsep;|\*/)">
 ]>
 <language name="Doxygen"
-          version="14"
+          version="15"
           kateversion="5.0"
           section="Markup"
           extensions="*.dox;*.doxygen"
@@ -586,7 +586,7 @@
         <Detect2Chars attribute="Tags" context="#pop!LanguageId" char="@" char1="~" />
         <keyword attribute="Error" context="#pop" String="TagEnd" />
         <RegExpr attribute="Error" context="#pop" String="[@\\]f[]}]" />
-        <RegExpr attribute="Tags" context="#pop" String="[@\\](?:[#$%&amp;&lt;&gt;&quot;@\\.]|::|---?)(?=&wordsep;)" />
+        <RegExpr attribute="Escape sequence" context="#pop" String="[@\\](?:[#$%&amp;&lt;&gt;&quot;@\\.~=|]|::|---?)" />
         <RegExpr attribute="Custom Tags" context="#pop" String="[@\\](?:[^@\\ \t\*]|\*(?!/))+" />
         <AnyChar attribute="Comment" context="#pop" String="\@" />
       </context>
@@ -598,6 +598,7 @@
   </contexts>
     <itemDatas>
       <itemData name="Normal Text"  defStyleNum="dsNormal" />
+      <itemData name="Escape sequence" defStyleNum="dsSpecialChar" />
       <itemData name="Tags"         defStyleNum="dsAnnotation" bold="1" />
       <itemData name="Custom Tags"  defStyleNum="dsAnnotation" />
       <itemData name="Word"         defStyleNum="dsCommentVar" bold="1" italic="0" />
diff --git a/syntax/dtd.xml b/syntax/dtd.xml
--- a/syntax/dtd.xml
+++ b/syntax/dtd.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"[
+<!DOCTYPE language[
   <!ENTITY nmtoken "[\-\w\d\.:_]+">
   <!ENTITY entref  "(#[0-9]+|#[xX][0-9A-Fa-f]+|&nmtoken;);">
 ]>
diff --git a/syntax/eiffel.xml b/syntax/eiffel.xml
--- a/syntax/eiffel.xml
+++ b/syntax/eiffel.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!--
 Eiffel syntax highlighting for Kate and Kwrite editors
 
@@ -10,7 +10,7 @@
 
 Author of version 1.02: Sebastian Vuorinen
 -->
-<language name="Eiffel" version="4" kateversion="5.0" section="Sources" extensions="*.e" mimetype="text/x-eiffel-src" author="Sebastian Vuorinen" license="">
+<language name="Eiffel" version="5" kateversion="5.0" section="Sources" extensions="*.e" mimetype="text/x-eiffel-src" author="Sebastian Vuorinen" license="">
 	<highlighting>
 		<list name="keywords">
 			<item>agent</item>
@@ -81,12 +81,14 @@
 
 		<contexts>
 			<context name = "Normal" attribute = "Normal Text" lineEndContext="#stay">
+				<DetectSpaces attribute = "Normal Text" />
 				<keyword attribute = "Keyword" String = "keywords" context="#stay" />
 				<keyword attribute = "Predefined entities" String = "predefined-entities" context="#stay" />
 				<keyword attribute = "Assertions" String = "assertions" context="#stay" />
+				<DetectIdentifier attribute = "Normal Text" />
 
-				<Int attribute = "Decimal" context="#stay" />
 				<Float attribute = "Float" context="#stay" />
+				<Int attribute = "Decimal" context="#stay" />
 				<HlCChar attribute = "Char" context="#stay" />
 				<DetectChar attribute = "String" char = "&quot;" context="Quoted String" />
 
@@ -100,6 +102,7 @@
 			<context name = "Documentation" attribute="Comment" lineEndContext="#pop">
 				<DetectSpaces />
 				<IncludeRules context="##Comments" />
+				<DetectIdentifier />
 			</context>
 		</contexts>
 
diff --git a/syntax/elixir.xml b/syntax/elixir.xml
--- a/syntax/elixir.xml
+++ b/syntax/elixir.xml
@@ -1,7 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language
-  SYSTEM 'language.dtd' [
-
+<!DOCTYPE language [
   <!ENTITY symbols "(?:@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?">
 ]>
 <!--
@@ -25,7 +23,7 @@
 -->
 <!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". -->
 <language author="Rubén Caro (ruben.caro.estevez@gmail.com), Boris Egorov (egorov@linux.com)"
-          extensions="*.ex;*.exs;*.eex;*.xml.eex;*.js.eex"
+          extensions="*.ex;*.exs;*.eex;*.xml.eex;*.js.eex;*.heex"
           indenter="elixir"
           kateversion="5.79"
           license="LGPLv2+"
@@ -33,7 +31,8 @@
           name="Elixir"
           section="Sources"
           style="elixir"
-          version="11">
+          version="15"
+          priority="2">
   <highlighting>
     <list name="control-flow">
       <item>catch</item>
@@ -47,8 +46,6 @@
       <item>unless</item>
     </list>
     <list name="keywords">
-      <item>do</item>
-      <item>end</item>
       <item>case</item>
       <item>bc</item>
       <item>lc</item>
@@ -74,7 +71,6 @@
       <item>false</item>
     </list>
     <list name="definitions">
-      <item>fn</item>
       <item>defmodule</item>
       <item>def</item>
       <item>defp</item>
@@ -101,6 +97,25 @@
         <!-- "shebang" line -->
         <RegExpr String="^#!\/.*" attribute="Keyword" column="0" context="#stay"/>
 
+        <!-- End terminated blocks -->
+        <!-- can be started by do or fn, but not by do: -->
+        <RegExpr String="\bdo\b(?!:)" attribute="Keyword" beginRegion="doend_block"/>
+        <WordDetect String="fn" attribute="Keyword" beginRegion="doend_block"/>
+        <WordDetect String="end" attribute="Keyword" endRegion="doend_block"/>
+
+        <!-- Lists -->
+        <DetectChar char="[" beginRegion="list" attribute="Separator Array"/>
+        <DetectChar char="]" endRegion="list" attribute="Separator Array"/>
+
+        <!-- Maps and Structs and tuples -->
+        <DetectChar char="{" beginRegion="map_or_struct_or_tuple" attribute="Separator Pair"/>
+        <DetectChar char="}" endRegion="map_or_struct_or_tuple" attribute="Separator Pair"/>
+
+        <!-- Function calls and definitions -->
+        <DetectChar char="(" beginRegion="parameters" attribute="Separator Pair"/>
+        <DetectChar char=")" endRegion="parameters" attribute="Separator Pair"/>
+
+
         <!-- Defined words -->
         <keyword String="keywords" attribute="Keyword" context="#stay"/>
         <keyword String="control-flow" attribute="Control Flow" context="#stay"/>
@@ -135,10 +150,8 @@
         <DetectChar attribute="Raw String" char="'" context="Apostrophed String"/>
         <Detect2Chars char="?" char1="#" attribute="Normal Text" context="#stay"/>
         <DetectChar attribute="Comment" char="#" context="General Comment"/>
-        <AnyChar attribute="Delimiter" String="[]" context="#stay"/>
         <RegExpr String="@[a-zA-Z_0-9]+" attribute="Attribute" context="#stay"/>
         <!-- handle the different regular expression formats -->
-        <DetectChar attribute="Normal Text" char=")" context="#stay"/>
         <DetectIdentifier attribute="Normal Text" context="#stay"/>
       </context>
       <context attribute="DocComment" lineEndContext="#stay" name="Documentation">
@@ -206,8 +219,9 @@
       <itemData defStyleNum="dsOthers" name="Attribute"/>
       <itemData defStyleNum="dsComment" name="Comment"/>
       <itemData defStyleNum="dsComment" name="DocComment"/>
+      <itemData defStyleNum="dsFunction" name="Separator Pair"/>
+      <itemData defStyleNum="dsOthers" name="Separator Array"/>
       <!-- use these to mark errors and alerts things -->
-      <itemData color="#FF9FEC" defStyleNum="dsNormal" name="Delimiter"/>
       <itemData defStyleNum="dsOperator" name="Operator"/>
       <itemData name="MarkdownHead" defStyleNum="dsFunction" bold="true"/>
       <itemData name="MarkdownBullet" defStyleNum="dsFunction"/>
diff --git a/syntax/elm.xml b/syntax/elm.xml
--- a/syntax/elm.xml
+++ b/syntax/elm.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="Elm" version="8" kateversion="5.0" section="Sources" extensions="*.elm" author="Bonghyun Kim (bonghyun.d.kim@gmail.com)" license="MIT" style="elm">
   <highlighting>
     <list name="declarations">
diff --git a/syntax/email.xml b/syntax/email.xml
--- a/syntax/email.xml
+++ b/syntax/email.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="Email" version="7" kateversion="5.0" extensions="*.eml;*.email;*.emlx;*.mbox;*.mbx" section="Other" mimetype="message/rfc822" casesensitive="0" author="Volker Krause (vkrause@kde.org)" license="MIT">
     <highlighting>
         <list name="header-names">
diff --git a/syntax/erlang.xml b/syntax/erlang.xml
--- a/syntax/erlang.xml
+++ b/syntax/erlang.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
           <!ENTITY atomstr    "\b[a-z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$)" >
           <!ENTITY varstr    "\b[_A-Z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$)" >
@@ -36,7 +36,7 @@
                                    - fixed highlighting problem when '@' at end of atom/variable
 -->
 
-<language name="Erlang" version="6" kateversion="5.0" section="Scripts" extensions="*.erl" mimetype="" author="Bill Ross (bill@emailme.net.au)" license="LGPLv2">
+<language name="Erlang" alternativeNames="Erl" version="7" kateversion="5.0" section="Scripts" extensions="*.erl" mimetype="" author="Bill Ross (bill@emailme.net.au)" license="LGPLv2">
   <highlighting>
     <list name="keywords">
       <!-- ====== s3.8 p 24 of erlang spec ===== -->
diff --git a/syntax/fasm.xml b/syntax/fasm.xml
--- a/syntax/fasm.xml
+++ b/syntax/fasm.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
     <!ENTITY float "[0-9]++(?:\.[0-9]*+(?:e[-+]?[0-9]*+)?|(?=f\b)|e[-+]?[0-9]++\b)">
 
diff --git a/syntax/fortran-fixed.xml b/syntax/fortran-fixed.xml
--- a/syntax/fortran-fixed.xml
+++ b/syntax/fortran-fixed.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd" [
+<!DOCTYPE language [
   <!-- Integers with optional kind specifier -->
   <!ENTITY integer "\b[0-9]++(?:[_](?:[0-9]++|[a-zA-Z][\w_]*))?">
   <!-- Integers in binary, octal and hexadecimal notations -->
@@ -9,7 +9,7 @@
   <!ENTITY float2 "\b[0-9]++\.[0-9]*+(?:[de][+-]?[0-9]+)?(?:[_](?:[0-9]++|[a-z][\w_]*))?(?![a-z])">
   <!ENTITY float3 "\b[0-9]++[de][+-]?[0-9]++(?:[_](?:[0-9]++|[a-z][\w_]*))?">
 ]>
-<language name="Fortran (Fixed Format)" version="10" kateversion="5.44" section="Sources" extensions="*.f;*.F;*.for;*.FOR;*.fpp;*.FPP;" mimetype="text/x-fortran-src" casesensitive="0" author="Franchin Matteo (fnch@libero.it)" license="MIT" priority="9">
+<language name="Fortran (Fixed Format)" version="11" kateversion="5.44" section="Sources" extensions="*.f;*.F;*.for;*.FOR;*.fpp;*.FPP;" mimetype="text/x-fortran-src" casesensitive="0" author="Franchin Matteo (fnch@libero.it)" license="MIT" priority="9">
 <!-- by Franchin Matteo, fnch@libero.it -->
 <!-- NOTE: Keep in sync with the "Fortran (Free Format)" highlighter! (fortran-free.xml) -->
   <highlighting>
@@ -411,7 +411,7 @@
         <Detect2Chars attribute="Operator" context="#stay" char="/" char1="="/>
         <Detect2Chars attribute="Operator" context="#stay" char="&lt;" char1="="/>
         <Detect2Chars attribute="Operator" context="#stay" char="&gt;" char1="="/>
-        <AnyChar attribute="Operator" context="#stay" String="&lt;&gt;"/>
+        <AnyChar attribute="Operator" context="#stay" String="&lt;&gt;%"/>
       </context>
 
 <!-- This context highlights comments -->
diff --git a/syntax/fortran-free.xml b/syntax/fortran-free.xml
--- a/syntax/fortran-free.xml
+++ b/syntax/fortran-free.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="Fortran (Free Format)" version="5" kateversion="5.53" section="Sources" extensions="*.f90;*.F90;*.f95;*.F95;*.f03;*.F03;*.f08;*.F08;" mimetype="text/x-fortran-src" casesensitive="0" author="Franchin Matteo (fnch@libero.it), Janus Weil" license="MIT" priority="10">
 <!-- Original author: Franchin Matteo (fnch@libero.it).
      Adaptation to free & fixed format: Janus Weil.
diff --git a/syntax/fsharp.xml b/syntax/fsharp.xml
--- a/syntax/fsharp.xml
+++ b/syntax/fsharp.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Kate syntax highlighting for F# based on the OCAML syntax by Glyn Webster (glyn@wave.co.nz). -->
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
 <!-- Regular expresion constants: -->
 <!ENTITY LETTER "A-Za-z\300-\326\330-\366\370-\377">                <!-- Latin-1 letters. -->
diff --git a/syntax/gap.xml b/syntax/gap.xml
new file mode 100644
--- /dev/null
+++ b/syntax/gap.xml
@@ -0,0 +1,7838 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language>
+<!--
+	====================================================================
+	GAP syntax highlighting file for the KDE editors Kate and Kwrite
+	====================================================================
+
+	The Strings, Two Char Operators, Variable, Number and Operator1
+	(and commentary color) rules were taken from the octave syntax highlighting
+	file by Luis Silvestre and Federico Zenith.
+	Thanks go to them!
+
+	Author: Jose Joao Morais
+	-->
+
+
+<language name="GAP" section="Scientific" extensions="*.gd;*.gi;*.g" mimetype="text/gap" version="5" kateversion="5.0" author="Jose Joao Morais" license="GPL">
+
+	<highlighting>
+
+		<!-- Reserved keywords in GAP -->
+
+		<list name="controlstatements">
+			<item>break</item>
+			<item>continue</item>
+			<item>do</item>
+			<item>elif</item>
+			<item>else</item>
+			<!-- <item>fi</item> -->
+			<!-- <item>for</item> -->
+			<!-- <item>if</item> -->
+			<!-- <item>od</item> -->
+			<!-- <item>repeat</item> -->
+			<item>then</item>
+			<!-- <item>until</item> -->
+			<!-- <item>while</item> -->
+		</list>
+
+		<list name="logicoperators">
+			<item>and</item>
+			<item>fail</item>
+			<item>false</item>
+			<item>not</item>
+			<item>or</item>
+			<item>true</item>
+		</list>
+
+		<list name="gapkeywords">
+			<!-- <item>function</item> -->
+			<!-- <item>end</item> -->
+			<item>in</item>
+			<item>local</item>
+			<item>rec</item>
+			<item>return</item>
+		</list>
+
+		<list name="mathoperators">
+			<item>mod</item>
+		</list>
+
+		<list name="builtinfunctions">
+			<item>AClosVecLib</item>
+			<item>AClosestVectorCombinationsMatFFEVecFFE</item>
+			<item>AClosestVectorCombinationsMatFFEVecFFECoords</item>
+			<item>AClosestVectorDriver</item>
+			<item>ANFAutomorphism</item>
+			<item>ANonReesCongruenceOfSemigroup</item>
+			<item>APolyProd</item>
+			<item>AbelianGroup</item>
+			<item>AbelianGroupCons</item>
+			<item>AbelianInvariants</item>
+			<item>AbelianInvariantsMultiplier</item>
+			<item>AbelianInvariantsNormalClosureFpGroup</item>
+			<item>AbelianInvariantsNormalClosureFpGroupRrs</item>
+			<item>AbelianInvariantsOfList</item>
+			<item>AbelianInvariantsSubgroupFpGroup</item>
+			<item>AbelianInvariantsSubgroupFpGroupMtc</item>
+			<item>AbelianInvariantsSubgroupFpGroupRrs</item>
+			<item>AbelianNumberField</item>
+			<item>AbelianNumberFieldByReducedGaloisStabilizerInfo</item>
+			<item>AbelianPQuotient</item>
+			<item>AbelianSubfactorAction</item>
+			<item>AbsAndIrredModules</item>
+			<item>AbsInt</item>
+			<item>AbsolutIrreducibleModules</item>
+			<item>AbsoluteIrreducibleModules</item>
+			<item>AbsoluteValue</item>
+			<item>AbstractWordTietzeWord</item>
+			<item>AbstractWordTzWord</item>
+			<item>ActingAlgebra</item>
+			<item>ActingDomain</item>
+			<item>Action</item>
+			<item>ActionAbelianCSPG</item>
+			<item>ActionHomomorphism</item>
+			<item>ActionHomomorphismAttr</item>
+			<item>ActionHomomorphismConstructor</item>
+			<item>ActionKernelExternalSet</item>
+			<item>ActionSubspacesElementaryAbelianGroup</item>
+			<item>ActorOfExternalSet</item>
+			<item>Add</item>
+			<item>AddAbelianRelator</item>
+			<item>AddCoeffs</item>
+			<item>AddCosetInfoStabChain</item>
+			<item>AddDictionary</item>
+			<item>AddEquationsSQ</item>
+			<item>AddGenerator</item>
+			<item>AddGenerators</item>
+			<item>AddGeneratorsExtendSchreierTree</item>
+			<item>AddGeneratorsGenimagesExtendSchreierTree</item>
+			<item>AddHashEntry</item>
+			<item>AddImage</item>
+			<item>AddImageNC</item>
+			<item>AddNaturalHomomorphismsPool</item>
+			<item>AddNormalizingElementPcgs</item>
+			<item>AddPageNumbersToSix</item>
+			<item>AddParagraphNumbersGapDocTree</item>
+			<item>AddRefinement</item>
+			<item>AddRelator</item>
+			<item>AddRootParseTree</item>
+			<item>AddRowVector</item>
+			<item>AddRule</item>
+			<item>AddRuleReduced</item>
+			<item>AddSet</item>
+			<item>AddToListEntries</item>
+			<item>AddVectorLTM</item>
+			<item>AddendumSCTable</item>
+			<item>AdditiveCoset</item>
+			<item>AdditiveElementAsMultiplicativeElement</item>
+			<item>AdditiveElementsAsMultiplicativeElementsFamily</item>
+			<item>AdditiveGroup</item>
+			<item>AdditiveGroupByGenerators</item>
+			<item>AdditiveInverse</item>
+			<item>AdditiveInverseAttr</item>
+			<item>AdditiveInverseImmutable</item>
+			<item>AdditiveInverseMutable</item>
+			<item>AdditiveInverseOp</item>
+			<item>AdditiveInverseSM</item>
+			<item>AdditiveInverseSameMutability</item>
+			<item>AdditiveMagma</item>
+			<item>AdditiveMagmaByGenerators</item>
+			<item>AdditiveMagmaWithInverses</item>
+			<item>AdditiveMagmaWithInversesByGenerators</item>
+			<item>AdditiveMagmaWithZero</item>
+			<item>AdditiveMagmaWithZeroByGenerators</item>
+			<item>AdditiveNeutralElement</item>
+			<item>AdditivelyActingDomain</item>
+			<item>AdjointAssociativeAlgebra</item>
+			<item>AdjointBasis</item>
+			<item>AdjointMatrix</item>
+			<item>AdjointModule</item>
+			<item>AffineAction</item>
+			<item>AffineActionByMatrixGroup</item>
+			<item>AffineActionLayer</item>
+			<item>AffineOperation</item>
+			<item>AffineOperationLayer</item>
+			<item>Agemo</item>
+			<item>AgemoAbove</item>
+			<item>AgemoOp</item>
+			<item>AlgExtElm</item>
+			<item>AlgExtEmbeddedPol</item>
+			<item>AlgExtFactSQFree</item>
+			<item>AlgExtSquareHensel</item>
+			<item>AlgFacUPrep</item>
+			<item>Algebra</item>
+			<item>AlgebraByGenerators</item>
+			<item>AlgebraByStructureConstants</item>
+			<item>AlgebraByStructureConstantsArg</item>
+			<item>AlgebraGeneralMappingByImages</item>
+			<item>AlgebraHomomorphismByImages</item>
+			<item>AlgebraHomomorphismByImagesNC</item>
+			<item>AlgebraWithOne</item>
+			<item>AlgebraWithOneByGenerators</item>
+			<item>AlgebraWithOneGeneralMappingByImages</item>
+			<item>AlgebraWithOneHomomorphismByImages</item>
+			<item>AlgebraWithOneHomomorphismByImagesNC</item>
+			<item>AlgebraicElementsFamilies</item>
+			<item>AlgebraicElementsFamily</item>
+			<item>AlgebraicExtension</item>
+			<item>AlgebraicPolynomialModP</item>
+			<item>AllBlocks</item>
+			<item>AllGroups</item>
+			<item>AllIrreducibleMonicPolynomialCoeffsOfDegree</item>
+			<item>AllIrreducibleMonicPolynomials</item>
+			<item>AllIrreducibleSolvableGroups</item>
+			<item>AllLibTomNames</item>
+			<item>AllModulesSQ</item>
+			<item>AllMonicPolynomialCoeffsOfDegree</item>
+			<item>AllPrimitiveGroups</item>
+			<item>AllSmallGroups</item>
+			<item>AllTransitiveGroups</item>
+			<item>AllowableSubgroup</item>
+			<item>Alpha</item>
+			<item>AlternatingDegree</item>
+			<item>AlternatingGroup</item>
+			<item>AlternatingGroupCons</item>
+			<item>AlternatingSubgroup</item>
+			<item>AntiSymmetricParts</item>
+			<item>Append</item>
+			<item>AppendCollectedList</item>
+			<item>AppendTo</item>
+			<item>ApplicableMethod</item>
+			<item>ApplicableMethodTypes</item>
+			<item>Apply</item>
+			<item>ApplyGeneratorsToPoint</item>
+			<item>ApplyGeneratorsToPointsList</item>
+			<item>ApplyRel</item>
+			<item>ApplySimpleReflection</item>
+			<item>ApplyToNodesParseTree</item>
+			<item>ApproxRational</item>
+			<item>ApproxRootBound</item>
+			<item>ApproximateRoot</item>
+			<item>ApproximateSuborbitsStabilizerPermGroup</item>
+			<item>ArithmeticElementCreator</item>
+			<item>Arrangements</item>
+			<item>ArrangementsA</item>
+			<item>ArrangementsK</item>
+			<item>AsAlgebra</item>
+			<item>AsAlgebraWithOne</item>
+			<item>AsBinaryRelationOnPoints</item>
+			<item>AsBlockMatrix</item>
+			<item>AsCharacterMorphismFunction</item>
+			<item>AsDivisionRing</item>
+			<item>AsDuplicateFreeList</item>
+			<item>AsFLMLOR</item>
+			<item>AsFLMLORWithOne</item>
+			<item>AsField</item>
+			<item>AsFreeLeftModule</item>
+			<item>AsGroup</item>
+			<item>AsGroupGeneralMappingByImages</item>
+			<item>AsInducedPcgs</item>
+			<item>AsLeftIdeal</item>
+			<item>AsLeftMagmaIdeal</item>
+			<item>AsLeftModule</item>
+			<item>AsLeftModuleGeneralMappingByImages</item>
+			<item>AsLieAlgebra</item>
+			<item>AsList</item>
+			<item>AsListOfFreeLeftModule</item>
+			<item>AsListSorted</item>
+			<item>AsMagma</item>
+			<item>AsMagmaIdeal</item>
+			<item>AsMonoid</item>
+			<item>AsNearRing</item>
+			<item>AsPerm</item>
+			<item>AsPlist</item>
+			<item>AsPolynomial</item>
+			<item>AsRightIdeal</item>
+			<item>AsRightMagmaIdeal</item>
+			<item>AsRing</item>
+			<item>AsSSortedList</item>
+			<item>AsSSortedListList</item>
+			<item>AsSSortedListNonstored</item>
+			<item>AsSemigroup</item>
+			<item>AsSemiring</item>
+			<item>AsSemiringWithOne</item>
+			<item>AsSemiringWithOneAndZero</item>
+			<item>AsSemiringWithZero</item>
+			<item>AsSet</item>
+			<item>AsSortedList</item>
+			<item>AsSubFLMLOR</item>
+			<item>AsSubFLMLORWithOne</item>
+			<item>AsSubalgebra</item>
+			<item>AsSubalgebraWithOne</item>
+			<item>AsSubgroup</item>
+			<item>AsSubgroupOfWholeGroupByQuotient</item>
+			<item>AsSubmagma</item>
+			<item>AsSubmonoid</item>
+			<item>AsSubsemigroup</item>
+			<item>AsSubspace</item>
+			<item>AsTransformation</item>
+			<item>AsTransformationNC</item>
+			<item>AsTwoSidedIdeal</item>
+			<item>AsVectorSpace</item>
+			<item>AscendingChain</item>
+			<item>AscendingChainOp</item>
+			<item>Assert</item>
+			<item>AssertionLevel</item>
+			<item>AssignGeneratorVariables</item>
+			<item>AssignNiceMonomorphismAutomorphismGroup</item>
+			<item>AssocBWorLetRepPow</item>
+			<item>AssocWWorLetRepPow</item>
+			<item>AssocWord</item>
+			<item>AssocWordByLetterRep</item>
+			<item>AssociatedPartition</item>
+			<item>AssociatedReesMatrixSemigroupOfDClass</item>
+			<item>AssociatedSemigroup</item>
+			<item>Associates</item>
+			<item>AtlasIrrationality</item>
+			<item>AttributeMethodByNiceMonomorphism</item>
+			<item>AttributeMethodByNiceMonomorphismCollColl</item>
+			<item>AttributeMethodByNiceMonomorphismCollElm</item>
+			<item>AttributeMethodByNiceMonomorphismElmColl</item>
+			<item>AttributeValueNotSet</item>
+			<item>AugmentationIdeal</item>
+			<item>AugmentedCosetTableInWholeGroup</item>
+			<item>AugmentedCosetTableMtc</item>
+			<item>AugmentedCosetTableMtcInWholeGroup</item>
+			<item>AugmentedCosetTableNormalClosure</item>
+			<item>AugmentedCosetTableNormalClosureInWholeGroup</item>
+			<item>AugmentedCosetTableRrs</item>
+			<item>AugmentedCosetTableRrsInWholeGroup</item>
+			<item>AutoloadPackages</item>
+			<item>AutomorphismDomain</item>
+			<item>AutomorphismGroup</item>
+			<item>AutomorphismGroupAbelianGroup</item>
+			<item>AutomorphismGroupElAbGroup</item>
+			<item>AutomorphismGroupFrattFreeGroup</item>
+			<item>AutomorphismGroupPermGroup</item>
+			<item>AutomorphismGroupSolvableGroup</item>
+			<item>AutomorphismRepresentingGroup</item>
+			<item>AutomorphismsOfTable</item>
+			<item>AvoidedLayers</item>
+			<item>BPolyProd</item>
+			<item>BagStats</item>
+			<item>BarPartitions</item>
+			<item>BaseFixedSpace</item>
+			<item>BaseImage</item>
+			<item>BaseIntMat</item>
+			<item>BaseIntersectionIntMats</item>
+			<item>BaseMat</item>
+			<item>BaseMatDestructive</item>
+			<item>BaseOfBasicImageGroup</item>
+			<item>BaseOfElt</item>
+			<item>BaseOfGroup</item>
+			<item>BaseOrthogonalSpaceMat</item>
+			<item>BasePoint</item>
+			<item>BasePointOfSchreierTransversal</item>
+			<item>BaseShortVectors</item>
+			<item>BaseStabChain</item>
+			<item>BaseSteinitzVectors</item>
+			<item>BasicImageEltRepFamily</item>
+			<item>BasicImageGroup</item>
+			<item>BasicImageGroupElement</item>
+			<item>BasicWreathProductOrdering</item>
+			<item>BasicWreathProductOrderingNC</item>
+			<item>Basis</item>
+			<item>BasisForFreeModuleByNiceBasis</item>
+			<item>BasisNC</item>
+			<item>BasisNullspaceModN</item>
+			<item>BasisOfAlgebraModule</item>
+			<item>BasisOfHomCosetAddMatrixGroup</item>
+			<item>BasisOfHomCosetAddMatrixGroupFnc</item>
+			<item>BasisOfMonomialSpace</item>
+			<item>BasisOfSparseRowSpace</item>
+			<item>BasisOfWeightRepSpace</item>
+			<item>BasisVectors</item>
+			<item>BasisVectorsForMatrixAction</item>
+			<item>BasisWithReplacedLeftModule</item>
+			<item>BaumClausenInfo</item>
+			<item>BaumClausenInfoDebug</item>
+			<item>BeauzamyBound</item>
+			<item>BeauzamyBoundGcd</item>
+			<item>Bell</item>
+			<item>Bernoulli</item>
+			<item>BestQuoInt</item>
+			<item>BestSplittingMatrix</item>
+			<item>BetaSet</item>
+			<item>BiAlgebraModule</item>
+			<item>BiAlgebraModuleByGenerators</item>
+			<item>BilinearFormMat</item>
+			<item>BinaryRelationByElements</item>
+			<item>BinaryRelationByListOfImages</item>
+			<item>BinaryRelationByListOfImagesNC</item>
+			<item>BinaryRelationOnPoints</item>
+			<item>BinaryRelationOnPointsNC</item>
+			<item>BinaryRelationTransformation</item>
+			<item>BindGlobal</item>
+			<item>Binomial</item>
+			<item>BlistList</item>
+			<item>BlistStringDecode</item>
+			<item>BlockMatrix</item>
+			<item>BlockStabilizer</item>
+			<item>Blocks</item>
+			<item>BlocksAttr</item>
+			<item>BlocksInfo</item>
+			<item>BlocksOp</item>
+			<item>BlowUpCocycleSQ</item>
+			<item>BlowUpIsomorphism</item>
+			<item>BlownUpMat</item>
+			<item>BlownUpMatrix</item>
+			<item>BlownUpModule</item>
+			<item>BlownUpVector</item>
+			<item>BombieriNorm</item>
+			<item>BooleanFamily</item>
+			<item>BrauerCharacterValue</item>
+			<item>BrauerTable</item>
+			<item>BrauerTableOp</item>
+			<item>BravaisGroup</item>
+			<item>BravaisSubgroups</item>
+			<item>BravaisSupergroups</item>
+			<item>BuildIsomorphismReesMatrixSemigroupWithMap</item>
+			<item>CIUnivPols</item>
+			<item>COAffineBlocks</item>
+			<item>COComplements</item>
+			<item>COComplementsMain</item>
+			<item>CONextCentral</item>
+			<item>CONextCentralizer</item>
+			<item>CONextCocycles</item>
+			<item>CONextComplements</item>
+			<item>CalcDoubleCosets</item>
+			<item>CalcOrder</item>
+			<item>CallFuncList</item>
+			<item>CallFuncTrapError</item>
+			<item>CanComputeIndex</item>
+			<item>CanComputeIsSubset</item>
+			<item>CanComputeSize</item>
+			<item>CanComputeSizeAnySubgroup</item>
+			<item>CanEasilyCompareElements</item>
+			<item>CanEasilyCompareElementsFamily</item>
+			<item>CanEasilyComputePcgs</item>
+			<item>CanEasilySortElements</item>
+			<item>CanEasilySortElementsFamily</item>
+			<item>CanEasilyTestMembership</item>
+			<item>CanFindGeneratorOfCyclicGroup</item>
+			<item>CanFindNilpotentClassTwoElement</item>
+			<item>CanonicalBasis</item>
+			<item>CanonicalElt</item>
+			<item>CanonicalGenerators</item>
+			<item>CanonicalNiceMonomorphism</item>
+			<item>CanonicalPcElement</item>
+			<item>CanonicalPcgs</item>
+			<item>CanonicalPcgsByGeneratorsWithImages</item>
+			<item>CanonicalPcgsWrtFamilyPcgs</item>
+			<item>CanonicalPcgsWrtHomePcgs</item>
+			<item>CanonicalPcgsWrtSpecialPcgs</item>
+			<item>CanonicalRelator</item>
+			<item>CanonicalRepresentativeDeterminatorOfExternalSet</item>
+			<item>CanonicalRepresentativeOfExternalSet</item>
+			<item>CanonicalRightCosetElement</item>
+			<item>CanonicalSubgroupRepresentativePcGroup</item>
+			<item>CartanMatrix</item>
+			<item>CartanSubalgebra</item>
+			<item>Cartesian</item>
+			<item>CasesCSPG</item>
+			<item>CategoriesOfObject</item>
+			<item>CategoryCollections</item>
+			<item>CategoryFamily</item>
+			<item>CayleyGraphDualSemigroup</item>
+			<item>CayleyGraphSemigroup</item>
+			<item>Cell</item>
+			<item>CellNoPoint</item>
+			<item>CellNoPoints</item>
+			<item>Cells</item>
+			<item>Center</item>
+			<item>CenterOfCharacter</item>
+			<item>CentralCharacter</item>
+			<item>CentralIdempotentsOfAlgebra</item>
+			<item>CentralIdempotentsOfSemiring</item>
+			<item>CentralNormalSeriesByPcgs</item>
+			<item>CentralProductOfMatrixGroups</item>
+			<item>CentralRelations</item>
+			<item>CentralStelClEANSNonsolv</item>
+			<item>CentralStepClEANS</item>
+			<item>CentralStepConjugatingElement</item>
+			<item>CentralStepRatClPGroup</item>
+			<item>Centralizer</item>
+			<item>CentralizerInAssociativeGaussianMatrixAlgebra</item>
+			<item>CentralizerInFiniteDimensionalAlgebra</item>
+			<item>CentralizerInGLnZ</item>
+			<item>CentralizerInParent</item>
+			<item>CentralizerModulo</item>
+			<item>CentralizerNormalCSPG</item>
+			<item>CentralizerNormalTransCSPG</item>
+			<item>CentralizerOp</item>
+			<item>CentralizerOrder</item>
+			<item>CentralizerSizeLimitConsiderFunction</item>
+			<item>CentralizerSolvableGroup</item>
+			<item>CentralizerTransSymmCSPG</item>
+			<item>CentralizerWreath</item>
+			<item>Centre</item>
+			<item>CentreFromSCTable</item>
+			<item>CentreOfCharacter</item>
+			<item>CentrePcGroup</item>
+			<item>ChaNuPol</item>
+			<item>ChainHomomorphicImage</item>
+			<item>ChainStatistics</item>
+			<item>ChainSubgroup</item>
+			<item>ChainSubgroupByDirectProduct</item>
+			<item>ChainSubgroupByHomomorphism</item>
+			<item>ChainSubgroupByPSubgroupOfAbelian</item>
+			<item>ChainSubgroupByProjectionFunction</item>
+			<item>ChainSubgroupBySiftFunction</item>
+			<item>ChainSubgroupByStabiliser</item>
+			<item>ChainSubgroupByStabilizer</item>
+			<item>ChainSubgroupByTrivialSubgroup</item>
+			<item>ChainSubgroupQuotient</item>
+			<item>ChangeStabChain</item>
+			<item>ChangeTypeObj</item>
+			<item>ChangedBaseGroup</item>
+			<item>CharTableAlternating</item>
+			<item>CharTableDoubleCoverAlternating</item>
+			<item>CharTableDoubleCoverSymmetric</item>
+			<item>CharTableSymmetric</item>
+			<item>CharTableWeylB</item>
+			<item>CharTableWeylD</item>
+			<item>CharValueDoubleCoverSymmetric</item>
+			<item>CharValueSymmetric</item>
+			<item>CharValueWeylB</item>
+			<item>CharValueWreathSymmetric</item>
+			<item>Character</item>
+			<item>CharacterDegreePool</item>
+			<item>CharacterDegrees</item>
+			<item>CharacterMorphismGroup</item>
+			<item>CharacterMorphismOrbits</item>
+			<item>CharacterNames</item>
+			<item>CharacterParameters</item>
+			<item>CharacterString</item>
+			<item>CharacterTable</item>
+			<item>CharacterTableDirectProduct</item>
+			<item>CharacterTableDisplayPrintLegendDefault</item>
+			<item>CharacterTableDisplayStringEntryDataDefault</item>
+			<item>CharacterTableDisplayStringEntryDefault</item>
+			<item>CharacterTableFactorGroup</item>
+			<item>CharacterTableFromLibrary</item>
+			<item>CharacterTableHeadOfFactorGroupByFusion</item>
+			<item>CharacterTableIsoclinic</item>
+			<item>CharacterTableOfNormalSubgroup</item>
+			<item>CharacterTableQuaternionic</item>
+			<item>CharacterTableRegular</item>
+			<item>CharacterTableWithSortedCharacters</item>
+			<item>CharacterTableWithSortedClasses</item>
+			<item>CharacterTableWreathSymmetric</item>
+			<item>Characteristic</item>
+			<item>CharacteristicPolynomial</item>
+			<item>CharacteristicPolynomialMatrixNC</item>
+			<item>CharsFamily</item>
+			<item>CheckAndCleanGapDocTree</item>
+			<item>CheckAuto</item>
+			<item>CheckCompletionFiles</item>
+			<item>CheckConsistencyOfDefinitions</item>
+			<item>CheckCosetTableFpGroup</item>
+			<item>CheckFixedPoints</item>
+			<item>CheckForHandlingByNiceBasis</item>
+			<item>CheckGlobalName</item>
+			<item>CheckPackageLoading</item>
+			<item>CheckPermChar</item>
+			<item>CheckSchreierTreeInternalConsistency</item>
+			<item>ChevalleyBasis</item>
+			<item>ChiefNormalSeriesByPcgs</item>
+			<item>ChiefSeries</item>
+			<item>ChiefSeriesOfGroup</item>
+			<item>ChiefSeriesThrough</item>
+			<item>ChiefSeriesUnderAction</item>
+			<item>ChineseRem</item>
+			<item>Chomp</item>
+			<item>ChooseNextBasePoint</item>
+			<item>ClassComparison</item>
+			<item>ClassElementLargeGroup</item>
+			<item>ClassElementLattice</item>
+			<item>ClassElementSmallGroup</item>
+			<item>ClassFunction</item>
+			<item>ClassFunctionSameType</item>
+			<item>ClassMultiplicationCoefficient</item>
+			<item>ClassNames</item>
+			<item>ClassNamesTom</item>
+			<item>ClassNumbersElements</item>
+			<item>ClassOrbit</item>
+			<item>ClassParameters</item>
+			<item>ClassPermutation</item>
+			<item>ClassPositionsOfAgemo</item>
+			<item>ClassPositionsOfCentre</item>
+			<item>ClassPositionsOfDerivedSubgroup</item>
+			<item>ClassPositionsOfDirectProductDecompositions</item>
+			<item>ClassPositionsOfElementaryAbelianSeries</item>
+			<item>ClassPositionsOfFittingSubgroup</item>
+			<item>ClassPositionsOfKernel</item>
+			<item>ClassPositionsOfLowerCentralSeries</item>
+			<item>ClassPositionsOfMaximalNormalSubgroups</item>
+			<item>ClassPositionsOfNormalClosure</item>
+			<item>ClassPositionsOfNormalSubgroup</item>
+			<item>ClassPositionsOfNormalSubgroups</item>
+			<item>ClassPositionsOfSolvableResiduum</item>
+			<item>ClassPositionsOfSupersolvableResiduum</item>
+			<item>ClassPositionsOfUpperCentralSeries</item>
+			<item>ClassRepsPermutedTuples</item>
+			<item>ClassRoots</item>
+			<item>ClassStructureCharTable</item>
+			<item>ClassTypesTom</item>
+			<item>ClassesSolvableGroup</item>
+			<item>CleanedTailPcElement</item>
+			<item>ClearCacheStats</item>
+			<item>ClearCentralRelations</item>
+			<item>ClearDefinitionNC</item>
+			<item>ClearPQuotientStatistics</item>
+			<item>ClearProfile</item>
+			<item>CloseMutableBasis</item>
+			<item>CloseNaturalHomomorphismsPool</item>
+			<item>CloseStream</item>
+			<item>ClosedStreamType</item>
+			<item>ClosureAdditiveGroup</item>
+			<item>ClosureAdditiveMagmaDefault</item>
+			<item>ClosureAdditiveMagmaWithInverses</item>
+			<item>ClosureAlgebra</item>
+			<item>ClosureDivisionRing</item>
+			<item>ClosureField</item>
+			<item>ClosureGroup</item>
+			<item>ClosureGroupAddElm</item>
+			<item>ClosureGroupCompare</item>
+			<item>ClosureGroupDefault</item>
+			<item>ClosureGroupIntest</item>
+			<item>ClosureLeftModule</item>
+			<item>ClosureLeftOperatorRing</item>
+			<item>ClosureMagmaDefault</item>
+			<item>ClosureNearAdditiveGroup</item>
+			<item>ClosureNearAdditiveMagmaWithInverses</item>
+			<item>ClosureRandomPermGroup</item>
+			<item>ClosureRing</item>
+			<item>ClosureSemiring</item>
+			<item>ClosureSubgroup</item>
+			<item>ClosureSubgroupNC</item>
+			<item>CntOp</item>
+			<item>CoKernel</item>
+			<item>CoKernelGensIterator</item>
+			<item>CoKernelGensPermHom</item>
+			<item>CoKernelOfAdditiveGeneralMapping</item>
+			<item>CoKernelOfMultiplicativeGeneralMapping</item>
+			<item>CoSuFp</item>
+			<item>Coboundaries</item>
+			<item>CocGroup</item>
+			<item>Cochain</item>
+			<item>CochainSpace</item>
+			<item>CocycleSQ</item>
+			<item>CocycleToRelVector</item>
+			<item>Cocycles</item>
+			<item>CodeGenerators</item>
+			<item>CodePcGroup</item>
+			<item>CodePcgs</item>
+			<item>CoefficientTaylorSeries</item>
+			<item>Coefficients</item>
+			<item>CoefficientsAndMagmaElements</item>
+			<item>CoefficientsFamily</item>
+			<item>CoefficientsMultiadic</item>
+			<item>CoefficientsOfLaurentPolynomial</item>
+			<item>CoefficientsOfUnivariateLaurentPolynomial</item>
+			<item>CoefficientsOfUnivariatePolynomial</item>
+			<item>CoefficientsOfUnivariateRationalFunction</item>
+			<item>CoefficientsOfVector</item>
+			<item>CoefficientsQadic</item>
+			<item>CoefficientsRing</item>
+			<item>CoeffsCyc</item>
+			<item>CoeffsMod</item>
+			<item>CollFamRangeEqFamElms</item>
+			<item>CollFamSourceEqFamElms</item>
+			<item>CollapsedMat</item>
+			<item>CollectPolycyclic</item>
+			<item>CollectUEALatticeElement</item>
+			<item>CollectWord</item>
+			<item>CollectWordOrFail</item>
+			<item>Collected</item>
+			<item>CollectedPartition</item>
+			<item>CollectedWordSQ</item>
+			<item>CollectionsFamily</item>
+			<item>CollectorSQ</item>
+			<item>ColorPrompt</item>
+			<item>ColumnIndexOfReesMatrixSemigroupElement</item>
+			<item>ColumnIndexOfReesZeroMatrixSemigroupElement</item>
+			<item>ColumnsOfReesMatrixSemigroup</item>
+			<item>ColumnsOfReesZeroMatrixSemigroup</item>
+			<item>Combinations</item>
+			<item>CombinationsA</item>
+			<item>CombinationsK</item>
+			<item>CombinatorialCollector</item>
+			<item>CombinatorialCollectorByGenerators</item>
+			<item>CombinatoricSplit</item>
+			<item>Comm</item>
+			<item>CommutGenImgs</item>
+			<item>CommutativeDiagram</item>
+			<item>CommutatorFactorGroup</item>
+			<item>CommutatorLength</item>
+			<item>CommutatorSubgroup</item>
+			<item>Compacted</item>
+			<item>CompanionMat</item>
+			<item>CompareVersionNumbers</item>
+			<item>CompatibleConjugacyClasses</item>
+			<item>CompatibleConjugacyClassesDefault</item>
+			<item>CompatiblePairs</item>
+			<item>CompileFunc</item>
+			<item>ComplementIntMat</item>
+			<item>ComplementSystem</item>
+			<item>Complementclasses</item>
+			<item>ComplementclassesEA</item>
+			<item>ComplementclassesSolvableNC</item>
+			<item>ComplementclassesSolvableWBG</item>
+			<item>CompleteChain</item>
+			<item>CompleteGaloisGroupPElement</item>
+			<item>CompleteOrdersOfRws</item>
+			<item>CompleteSchreierTransversal</item>
+			<item>CompletionBar</item>
+			<item>ComplexConjugate</item>
+			<item>ComplexificationQuat</item>
+			<item>ComponentsOfTuplesFamily</item>
+			<item>ComposedXMLString</item>
+			<item>CompositionMapping</item>
+			<item>CompositionMaps</item>
+			<item>CompositionOfStraightLinePrograms</item>
+			<item>CompositionSeries</item>
+			<item>Compress</item>
+			<item>ComputeTails</item>
+			<item>ComputedAgemos</item>
+			<item>ComputedAscendingChains</item>
+			<item>ComputedBrauerTables</item>
+			<item>ComputedClassFusions</item>
+			<item>ComputedCyclicExtensionsTom</item>
+			<item>ComputedHallSubgroups</item>
+			<item>ComputedIndicators</item>
+			<item>ComputedIsPNilpotents</item>
+			<item>ComputedIsPSolvableCharacterTables</item>
+			<item>ComputedIsPSolvables</item>
+			<item>ComputedOmegas</item>
+			<item>ComputedPCentralSeriess</item>
+			<item>ComputedPCores</item>
+			<item>ComputedPRumps</item>
+			<item>ComputedPowerMaps</item>
+			<item>ComputedPrimeBlockss</item>
+			<item>ComputedSylowComplements</item>
+			<item>ComputedSylowSubgroups</item>
+			<item>ConcatSubos</item>
+			<item>Concatenation</item>
+			<item>Conductor</item>
+			<item>ConfluentRws</item>
+			<item>Congruences</item>
+			<item>ConjugacyClass</item>
+			<item>ConjugacyClassSubgroups</item>
+			<item>ConjugacyClasses</item>
+			<item>ConjugacyClassesByOrbits</item>
+			<item>ConjugacyClassesByRandomSearch</item>
+			<item>ConjugacyClassesFittingFreeGroup</item>
+			<item>ConjugacyClassesForSmallGroup</item>
+			<item>ConjugacyClassesMaximalSubgroups</item>
+			<item>ConjugacyClassesOfNaturalGroup</item>
+			<item>ConjugacyClassesPerfectSubgroups</item>
+			<item>ConjugacyClassesSubgroups</item>
+			<item>ConjugacyClassesSubwreath</item>
+			<item>ConjugacyClassesTry</item>
+			<item>ConjugacyClassesViaRadical</item>
+			<item>ConjugateDominantWeight</item>
+			<item>ConjugateDominantWeightWithWord</item>
+			<item>ConjugateGroup</item>
+			<item>ConjugateMatrixActionToLinearAction</item>
+			<item>ConjugateMatrixGroupToLinearAction</item>
+			<item>ConjugateMatrixGroupToLinearGroup</item>
+			<item>ConjugateStabChain</item>
+			<item>ConjugateSubgroup</item>
+			<item>ConjugateSubgroups</item>
+			<item>ConjugatedModule</item>
+			<item>Conjugates</item>
+			<item>ConjugatingElement</item>
+			<item>ConjugatorAutomorphism</item>
+			<item>ConjugatorAutomorphismNC</item>
+			<item>ConjugatorInnerAutomorphism</item>
+			<item>ConjugatorIsomorphism</item>
+			<item>ConjugatorOfConjugatorIsomorphism</item>
+			<item>ConnectGroupAndCharacterTable</item>
+			<item>ConsiderKernels</item>
+			<item>ConsiderSmallerPowerMaps</item>
+			<item>ConsiderStructureConstants</item>
+			<item>ConsiderTableAutomorphisms</item>
+			<item>ConstantInBaseRingPol</item>
+			<item>ConstantTimeAccessList</item>
+			<item>ConstituentsCompositionMapping</item>
+			<item>ConstituentsOfCharacter</item>
+			<item>ConstituentsPolynomial</item>
+			<item>ContainedCharacters</item>
+			<item>ContainedDecomposables</item>
+			<item>ContainedMaps</item>
+			<item>ContainedPossibleCharacters</item>
+			<item>ContainedPossibleVirtualCharacters</item>
+			<item>ContainedSpecialVectors</item>
+			<item>ContainedTom</item>
+			<item>ContainingTom</item>
+			<item>ContinuedFractionApproximationOfRoot</item>
+			<item>ContinuedFractionExpansionOfRoot</item>
+			<item>ConvertBasicImageGroupElement</item>
+			<item>ConvertToCharacterTable</item>
+			<item>ConvertToCharacterTableNC</item>
+			<item>ConvertToLibTom</item>
+			<item>ConvertToLibraryCharacterTableNC</item>
+			<item>ConvertToMatrixRep</item>
+			<item>ConvertToMatrixRepNC</item>
+			<item>ConvertToNormalFormMonomialElement</item>
+			<item>ConvertToRangeRep</item>
+			<item>ConvertToSiftGroup</item>
+			<item>ConvertToStringRep</item>
+			<item>ConvertToTableOfMarks</item>
+			<item>ConvertToVectorRep</item>
+			<item>ConvertToVectorRepNC</item>
+			<item>ConwayCandidates</item>
+			<item>ConwayPol</item>
+			<item>ConwayPolynomial</item>
+			<item>CopiedAugmentedCosetTable</item>
+			<item>CopyMappingAttributes</item>
+			<item>CopyOptionsDefaults</item>
+			<item>CopyRel</item>
+			<item>CopyStabChain</item>
+			<item>Core</item>
+			<item>CoreInParent</item>
+			<item>CoreOp</item>
+			<item>CorestEval</item>
+			<item>CorrectConjugacyClass</item>
+			<item>CorrespondingGeneratorsByModuloPcgs</item>
+			<item>CorrespondingPermutations</item>
+			<item>CosetLeadersInner</item>
+			<item>CosetLeadersMatFFE</item>
+			<item>CosetNumber</item>
+			<item>CosetRepAsWord</item>
+			<item>CosetTable</item>
+			<item>CosetTableBySubgroup</item>
+			<item>CosetTableDefaultLimit</item>
+			<item>CosetTableDefaultMaxLimit</item>
+			<item>CosetTableFpHom</item>
+			<item>CosetTableFromGensAndRels</item>
+			<item>CosetTableInWholeGroup</item>
+			<item>CosetTableNormalClosure</item>
+			<item>CosetTableNormalClosureInWholeGroup</item>
+			<item>CosetTableOfFpSemigroup</item>
+			<item>CosetTableStandard</item>
+			<item>CoveringTriplesCharacters</item>
+			<item>CrcFile</item>
+			<item>CreateAllCycleStructures</item>
+			<item>CreateCompletionFiles</item>
+			<item>CreateKnuthBendixRewritingSystem</item>
+			<item>CreateOrderingByLtFunction</item>
+			<item>CreateOrderingByLteqFunction</item>
+			<item>CrystGroupDefaultAction</item>
+			<item>CurrentAssertionLevel</item>
+			<item>CycList</item>
+			<item>Cycle</item>
+			<item>CycleByPosOp</item>
+			<item>CycleIndex</item>
+			<item>CycleIndexOp</item>
+			<item>CycleLength</item>
+			<item>CycleLengthOp</item>
+			<item>CycleLengthPermInt</item>
+			<item>CycleLengths</item>
+			<item>CycleLengthsOp</item>
+			<item>CycleOp</item>
+			<item>CyclePermInt</item>
+			<item>CycleStructureClass</item>
+			<item>CycleStructurePerm</item>
+			<item>CycleStructuresGroup</item>
+			<item>Cycles</item>
+			<item>CyclesOp</item>
+			<item>CyclicExtensionsTom</item>
+			<item>CyclicExtensionsTomOp</item>
+			<item>CyclicGroup</item>
+			<item>CyclicGroupCons</item>
+			<item>CyclicTopExtensions</item>
+			<item>CyclotomicField</item>
+			<item>CyclotomicPol</item>
+			<item>CyclotomicPolynomial</item>
+			<item>Cyclotomics</item>
+			<item>CyclotomicsFamily</item>
+			<item>DMYDay</item>
+			<item>DMYhmsSeconds</item>
+			<item>DTCommutator</item>
+			<item>DTConjugate</item>
+			<item>DTMultiply</item>
+			<item>DTPower</item>
+			<item>DTQuotient</item>
+			<item>DTSolution</item>
+			<item>DataObj</item>
+			<item>DataType</item>
+			<item>DayDMY</item>
+			<item>DaysInMonth</item>
+			<item>DaysInYear</item>
+			<item>DeclareAttribute</item>
+			<item>DeclareAttributeKernel</item>
+			<item>DeclareAttributeSuppCT</item>
+			<item>DeclareAutoPackage</item>
+			<item>DeclareAutoreadableVariables</item>
+			<item>DeclareCategory</item>
+			<item>DeclareCategoryCollections</item>
+			<item>DeclareCategoryFamily</item>
+			<item>DeclareCategoryKernel</item>
+			<item>DeclareComponent</item>
+			<item>DeclareConstructor</item>
+			<item>DeclareConstructorKernel</item>
+			<item>DeclareFilter</item>
+			<item>DeclareGlobalFunction</item>
+			<item>DeclareGlobalVariable</item>
+			<item>DeclareHandlingByNiceBasis</item>
+			<item>DeclareInfoClass</item>
+			<item>DeclareOperation</item>
+			<item>DeclareOperationKernel</item>
+			<item>DeclarePackage</item>
+			<item>DeclarePackageAutoDocumentation</item>
+			<item>DeclarePackageDocumentation</item>
+			<item>DeclareProperty</item>
+			<item>DeclarePropertyKernel</item>
+			<item>DeclarePropertySuppCT</item>
+			<item>DeclareRepresentation</item>
+			<item>DeclareRepresentationKernel</item>
+			<item>DeclareSynonym</item>
+			<item>DeclareSynonymAttr</item>
+			<item>DecodeTree</item>
+			<item>DecodedTreeEntry</item>
+			<item>DecomposeEltIntoPElts</item>
+			<item>DecomposeTensorProduct</item>
+			<item>DecomposedFixedPointVector</item>
+			<item>DecomposedRationalClass</item>
+			<item>Decomposition</item>
+			<item>DecompositionInt</item>
+			<item>DecompositionMatrix</item>
+			<item>DecompositionTypes</item>
+			<item>DecompositionTypesOfGroup</item>
+			<item>Decreased</item>
+			<item>DeepThoughtCollector</item>
+			<item>DeepThoughtCollectorByGenerators</item>
+			<item>DefaultField</item>
+			<item>DefaultFieldByGenerators</item>
+			<item>DefaultFieldOfMatrix</item>
+			<item>DefaultFieldOfMatrixGroup</item>
+			<item>DefaultHashLength</item>
+			<item>DefaultPackageBannerString</item>
+			<item>DefaultRing</item>
+			<item>DefaultRingByGenerators</item>
+			<item>DefaultSparseHashRepType</item>
+			<item>DefaultSparseHashWithIKRepType</item>
+			<item>DefaultStabChainOptions</item>
+			<item>DefectApproximation</item>
+			<item>DefineNewGenerators</item>
+			<item>DefiningPcgs</item>
+			<item>DefiningPolynomial</item>
+			<item>DefiningQuotientHomomorphism</item>
+			<item>Degree</item>
+			<item>DegreeAction</item>
+			<item>DegreeFFE</item>
+			<item>DegreeIndeterminate</item>
+			<item>DegreeNaturalHomomorphismsPool</item>
+			<item>DegreeOfBinaryRelation</item>
+			<item>DegreeOfCharacter</item>
+			<item>DegreeOfLaurentPolynomial</item>
+			<item>DegreeOfMatrixGroup</item>
+			<item>DegreeOfTransformation</item>
+			<item>DegreeOfTransformationSemigroup</item>
+			<item>DegreeOfUnivariateLaurentPolynomial</item>
+			<item>DegreeOperation</item>
+			<item>DegreeOverPrimeField</item>
+			<item>DeleteImage</item>
+			<item>Delta</item>
+			<item>DenominatorCyc</item>
+			<item>DenominatorOfModuloPcgs</item>
+			<item>DenominatorOfRationalFunction</item>
+			<item>DenominatorRat</item>
+			<item>DenseHashTable</item>
+			<item>DenseIntKey</item>
+			<item>DepthOfPcElement</item>
+			<item>DepthOfUpperTriangularMatrix</item>
+			<item>DepthSchreierTrees</item>
+			<item>Derangements</item>
+			<item>DerangementsK</item>
+			<item>Derivations</item>
+			<item>Derivative</item>
+			<item>DerivedLength</item>
+			<item>DerivedSeries</item>
+			<item>DerivedSeriesOfGroup</item>
+			<item>DerivedSubgroup</item>
+			<item>DerivedSubgroupTom</item>
+			<item>DerivedSubgroupsTom</item>
+			<item>DerivedSubgroupsTomPossible</item>
+			<item>DerivedSubgroupsTomUnique</item>
+			<item>DescendingListWithElementRemoved</item>
+			<item>DescriptionOfNormalizedUEAElement</item>
+			<item>DescriptionOfRootOfUnity</item>
+			<item>Determinant</item>
+			<item>DeterminantIntMat</item>
+			<item>DeterminantMat</item>
+			<item>DeterminantMatDestructive</item>
+			<item>DeterminantMatDivFree</item>
+			<item>DeterminantOfCharacter</item>
+			<item>DiagonalMat</item>
+			<item>DiagonalOfMat</item>
+			<item>DiagonalSocleAction</item>
+			<item>DiagonalizeIntMat</item>
+			<item>DiagonalizeIntMatNormDriven</item>
+			<item>DiagonalizeMat</item>
+			<item>DictionariesFamily</item>
+			<item>DictionaryByList</item>
+			<item>DictionaryByPosition</item>
+			<item>DictionaryBySort</item>
+			<item>DiffCoc</item>
+			<item>Difference</item>
+			<item>DifferenceBlist</item>
+			<item>DifferenceLists</item>
+			<item>DifferenceOfPcElement</item>
+			<item>DigitsNumber</item>
+			<item>DihedralGenerators</item>
+			<item>DihedralGroup</item>
+			<item>DihedralGroupCons</item>
+			<item>Dimension</item>
+			<item>DimensionOfHighestWeightModule</item>
+			<item>DimensionOfMatrixGroup</item>
+			<item>DimensionOfVectors</item>
+			<item>DimensionsLoewyFactors</item>
+			<item>DimensionsMat</item>
+			<item>DirProdTransversal</item>
+			<item>DirectFactorsOfGroup</item>
+			<item>DirectProduct</item>
+			<item>DirectProductDecompositionsLocal</item>
+			<item>DirectProductInfo</item>
+			<item>DirectProductOp</item>
+			<item>DirectSumDecomposition</item>
+			<item>DirectSumMat</item>
+			<item>DirectSumOfAlgebraModules</item>
+			<item>DirectSumOfAlgebras</item>
+			<item>DirectoriesFamily</item>
+			<item>DirectoriesLibrary</item>
+			<item>DirectoriesPackageLibrary</item>
+			<item>DirectoriesPackagePrograms</item>
+			<item>DirectoriesSystemPrograms</item>
+			<item>Directory</item>
+			<item>DirectoryContents</item>
+			<item>DirectoryCurrent</item>
+			<item>DirectoryTemporary</item>
+			<item>DirectoryType</item>
+			<item>DisableAttributeValueStoring</item>
+			<item>Discriminant</item>
+			<item>Display</item>
+			<item>DisplayCacheStats</item>
+			<item>DisplayCompositionSeries</item>
+			<item>DisplayEggBoxOfDClass</item>
+			<item>DisplayImfInvariants</item>
+			<item>DisplayImfReps</item>
+			<item>DisplayInformationPerfectGroups</item>
+			<item>DisplayOptions</item>
+			<item>DisplayOptionsStack</item>
+			<item>DisplayProfile</item>
+			<item>DisplayRevision</item>
+			<item>DisplaySemigroup</item>
+			<item>DisplayXMLStructure</item>
+			<item>DistVecClosVecLib</item>
+			<item>DistanceVecFFE</item>
+			<item>DistancesDistributionMatFFEVecFFE</item>
+			<item>DistancesDistributionVecFFEsVecFFE</item>
+			<item>DivisionRingByGenerators</item>
+			<item>DivisorsInt</item>
+			<item>DivisorsIntCache</item>
+			<item>DixonInit</item>
+			<item>DixonRecord</item>
+			<item>DixonRepChi</item>
+			<item>DixonRepGHchi</item>
+			<item>DixonSplit</item>
+			<item>DixontinI</item>
+			<item>DnLattice</item>
+			<item>DnLatticeIterative</item>
+			<item>DoAlgebraicExt</item>
+			<item>DoCentralSeriesPcgsIfNilpot</item>
+			<item>DoCheapActionImages</item>
+			<item>DoCheapOperationImages</item>
+			<item>DoClosurePrmGp</item>
+			<item>DoEASLS</item>
+			<item>DoExponentsConjLayerFampcgs</item>
+			<item>DoFactorCosetAction</item>
+			<item>DoGaloisType</item>
+			<item>DoImmutableMatrix</item>
+			<item>DoInducedPcgsByPcSequenceNC</item>
+			<item>DoLogModRho</item>
+			<item>DoLowIndexSubgroupsFpGroup</item>
+			<item>DoMulExt</item>
+			<item>DoNFIM</item>
+			<item>DoNormalClosurePermGroup</item>
+			<item>DoNormalizerSA</item>
+			<item>DoPcgsElementaryAbelianSeries</item>
+			<item>DoPcgsOrbitOp</item>
+			<item>DoPrintUnivariateLaurent</item>
+			<item>DoReadPkg</item>
+			<item>DoRereadPkg</item>
+			<item>DoRightTransversalPc</item>
+			<item>DoShortwordBasepoint</item>
+			<item>DoSnAnGiantTest</item>
+			<item>DoSparseActionHomomorphism</item>
+			<item>DoSparseLinearActionOnFaithfulSubset</item>
+			<item>DoTest</item>
+			<item>DoUnivTestRatfun</item>
+			<item>Domain</item>
+			<item>DomainByGenerators</item>
+			<item>DomainForAction</item>
+			<item>DominantCharacter</item>
+			<item>DominantWeights</item>
+			<item>DoubleCentralizerOrbit</item>
+			<item>DoubleCoset</item>
+			<item>DoubleCosetRepsAndSizes</item>
+			<item>DoubleCosets</item>
+			<item>DoubleCosetsNC</item>
+			<item>DoubleCosetsPcGroup</item>
+			<item>DoubleHashArraySize</item>
+			<item>DoubleHashDictSize</item>
+			<item>DownEnv</item>
+			<item>DualGModule</item>
+			<item>DumpWorkspace</item>
+			<item>DuplicateFreeList</item>
+			<item>DxActiveCols</item>
+			<item>DxCalcAllPowerMaps</item>
+			<item>DxCalcPrimeClasses</item>
+			<item>DxDegreeCandidates</item>
+			<item>DxEigenbase</item>
+			<item>DxFrobSchurInd</item>
+			<item>DxGaloisOrbits</item>
+			<item>DxGeneratePrimeCyclotomic</item>
+			<item>DxIncludeIrreducibles</item>
+			<item>DxIsInSpace</item>
+			<item>DxLiftCharacter</item>
+			<item>DxLinearCharacters</item>
+			<item>DxModProduct</item>
+			<item>DxModularValuePol</item>
+			<item>DxNiceBasis</item>
+			<item>DxPreparation</item>
+			<item>DxRegisterModularChar</item>
+			<item>DxSplitDegree</item>
+			<item>EANormalSeriesByPcgs</item>
+			<item>EAPrimeLayerSQ</item>
+			<item>ERepAssWorInv</item>
+			<item>ERepAssWorProd</item>
+			<item>ERepLettWord</item>
+			<item>Earns</item>
+			<item>Edit</item>
+			<item>EggBoxOfDClass</item>
+			<item>EichlerTransformation</item>
+			<item>Eigenspaces</item>
+			<item>Eigenvalues</item>
+			<item>EigenvaluesChar</item>
+			<item>Eigenvectors</item>
+			<item>ElementByRws</item>
+			<item>ElementOfFpAlgebra</item>
+			<item>ElementOfFpGroup</item>
+			<item>ElementOfFpMonoid</item>
+			<item>ElementOfFpSemigroup</item>
+			<item>ElementOfMagmaRing</item>
+			<item>ElementOrdersPowerMap</item>
+			<item>ElementProperty</item>
+			<item>ElementTestFunction</item>
+			<item>ElementaryAbelianGroup</item>
+			<item>ElementaryAbelianGroupCons</item>
+			<item>ElementaryAbelianSeries</item>
+			<item>ElementaryAbelianSeriesLargeSteps</item>
+			<item>ElementaryAbelianSubseries</item>
+			<item>ElementaryDivisorsMat</item>
+			<item>ElementaryDivisorsMatDestructive</item>
+			<item>Elements</item>
+			<item>ElementsFamily</item>
+			<item>ElementsStabChain</item>
+			<item>EliminatedWord</item>
+			<item>EliminationOrdering</item>
+			<item>ElmDivRingElm</item>
+			<item>ElmTimesRingElm</item>
+			<item>ElmWPObj</item>
+			<item>ElsymsPowersums</item>
+			<item>Embedding</item>
+			<item>EmptyBinaryRelation</item>
+			<item>EmptyMatrix</item>
+			<item>EmptyRBase</item>
+			<item>EmptyRowVector</item>
+			<item>EmptySCTable</item>
+			<item>EmptyStabChain</item>
+			<item>EmptyTuplesFamily</item>
+			<item>EnableAttributeValueStoring</item>
+			<item>End</item>
+			<item>EndoMappingByTransformation</item>
+			<item>EnumerateIndependentAbelianProducts</item>
+			<item>Enumerator</item>
+			<item>EnumeratorByBasis</item>
+			<item>EnumeratorByFunctions</item>
+			<item>EnumeratorByPcgs</item>
+			<item>EnumeratorOfAdditiveMagma</item>
+			<item>EnumeratorOfGroup</item>
+			<item>EnumeratorOfIdeal</item>
+			<item>EnumeratorOfMagma</item>
+			<item>EnumeratorOfMagmaIdeal</item>
+			<item>EnumeratorOfNormedRowVectors</item>
+			<item>EnumeratorOfPrimeField</item>
+			<item>EnumeratorOfRing</item>
+			<item>EnumeratorOfSemigroupIdeal</item>
+			<item>EnumeratorOfSubset</item>
+			<item>EnumeratorOfTrivialAdditiveMagmaWithZero</item>
+			<item>EnumeratorOfTrivialMagmaWithOne</item>
+			<item>EnumeratorOfTuples</item>
+			<item>EnumeratorOfZmodnZ</item>
+			<item>EnumeratorSorted</item>
+			<item>EnvelopingAlgebra</item>
+			<item>EpiPcByModpcgs</item>
+			<item>EpimorphismNilpotentQuotient</item>
+			<item>EpimorphismNilpotentQuotientOp</item>
+			<item>EpimorphismPGroup</item>
+			<item>EpimorphismQuotientSystem</item>
+			<item>EpimorphismSchurCover</item>
+			<item>EqualBoxedObj</item>
+			<item>EquivalenceClassOfElement</item>
+			<item>EquivalenceClassOfElementNC</item>
+			<item>EquivalenceClassRelation</item>
+			<item>EquivalenceClasses</item>
+			<item>EquivalenceRelationByPairs</item>
+			<item>EquivalenceRelationByPairsNC</item>
+			<item>EquivalenceRelationByPartition</item>
+			<item>EquivalenceRelationByPartitionNC</item>
+			<item>EquivalenceRelationByProperty</item>
+			<item>EquivalenceRelationByRelation</item>
+			<item>EquivalenceRelationPartition</item>
+			<item>EquivalenceType</item>
+			<item>Error</item>
+			<item>ErrorCount</item>
+			<item>EspaceBasePoints</item>
+			<item>EuclideanDegree</item>
+			<item>EuclideanQuotient</item>
+			<item>EuclideanRemainder</item>
+			<item>EulerianFunction</item>
+			<item>EulerianFunctionByTom</item>
+			<item>EvalF</item>
+			<item>EvalFpCoc</item>
+			<item>EvalStraightLineProgElm</item>
+			<item>EvalString</item>
+			<item>EvaluateConsistency</item>
+			<item>EvaluateOverlapANA</item>
+			<item>EvaluateOverlapBAN</item>
+			<item>EvaluateOverlapBNA</item>
+			<item>EvaluateOverlapCBA</item>
+			<item>EvaluateRelation</item>
+			<item>EvaluateRelators</item>
+			<item>EvectBasePoints</item>
+			<item>ExactSizeConsiderFunction</item>
+			<item>ExcludeFromAutoload</item>
+			<item>ExcludedOrders</item>
+			<item>Exec</item>
+			<item>ExecuteProcess</item>
+			<item>ExpPcElmSortedFun</item>
+			<item>Exponent</item>
+			<item>ExponentOfPcElement</item>
+			<item>ExponentOfPowering</item>
+			<item>ExponentSumWord</item>
+			<item>ExponentSums</item>
+			<item>ExponentSyllable</item>
+			<item>ExponentsConjugateLayer</item>
+			<item>ExponentsOfCommutator</item>
+			<item>ExponentsOfConjugate</item>
+			<item>ExponentsOfPcElement</item>
+			<item>ExponentsOfPcElementPermGroup</item>
+			<item>ExponentsOfRelativePower</item>
+			<item>ExportToKernelFinished</item>
+			<item>ExtOrbStabDom</item>
+			<item>ExtRepByTailVector</item>
+			<item>ExtRepDenominatorRatFun</item>
+			<item>ExtRepNumeratorRatFun</item>
+			<item>ExtRepOfObj</item>
+			<item>ExtRepPolynomialRatFun</item>
+			<item>ExtendRepresentation</item>
+			<item>ExtendSchreierTransversal</item>
+			<item>ExtendSchreierTransversalShortCube</item>
+			<item>ExtendSchreierTransversalShortTree</item>
+			<item>ExtendSeriesPermGroup</item>
+			<item>ExtendStabChain</item>
+			<item>ExtendToBasis</item>
+			<item>ExtendedGroup</item>
+			<item>ExtendedIntersectionSumPcgs</item>
+			<item>ExtendedPcgs</item>
+			<item>ExtendedT</item>
+			<item>ExtendedVectors</item>
+			<item>Extension</item>
+			<item>ExtensionNC</item>
+			<item>ExtensionOnBlocks</item>
+			<item>ExtensionRepresentatives</item>
+			<item>ExtensionSQ</item>
+			<item>Extensions</item>
+			<item>ExtensionsOfModule</item>
+			<item>ExteriorPower</item>
+			<item>ExteriorPowerOfAlgebraModule</item>
+			<item>ExternalOrbit</item>
+			<item>ExternalOrbitOp</item>
+			<item>ExternalOrbits</item>
+			<item>ExternalOrbitsStabilizers</item>
+			<item>ExternalSet</item>
+			<item>ExternalSetByFilterConstructor</item>
+			<item>ExternalSetByTypeConstructor</item>
+			<item>ExternalSubset</item>
+			<item>ExternalSubsetOp</item>
+			<item>Extract</item>
+			<item>ExtraspecialGroup</item>
+			<item>ExtraspecialGroupCons</item>
+			<item>FFEFamily</item>
+			<item>FFPFactors</item>
+			<item>FFPOrderKnownDividend</item>
+			<item>FFPPowerModCheck</item>
+			<item>FFPUpperBoundOrder</item>
+			<item>FLMLORByGenerators</item>
+			<item>FLMLORFromFFE</item>
+			<item>FLMLORWithOne</item>
+			<item>FLMLORWithOneByGenerators</item>
+			<item>FMRRemoveZero</item>
+			<item>FactorCosetAction</item>
+			<item>FactorCosetOperation</item>
+			<item>FactorFreeAlgebraByRelators</item>
+			<item>FactorFreeGroupByRelators</item>
+			<item>FactorFreeMonoidByRelations</item>
+			<item>FactorFreeSemigroupByRelations</item>
+			<item>FactorGroup</item>
+			<item>FactorGroupFpGroupByRels</item>
+			<item>FactorGroupNC</item>
+			<item>FactorGroupNormalSubgroupClasses</item>
+			<item>FactorGroupTom</item>
+			<item>FactorSemigroup</item>
+			<item>FactorSemigroupByClosure</item>
+			<item>Factorial</item>
+			<item>Factorization</item>
+			<item>Factors</item>
+			<item>FactorsCommonDegreePol</item>
+			<item>FactorsInt</item>
+			<item>FactorsOfDirectProduct</item>
+			<item>FactorsRho</item>
+			<item>FactorsSquarefree</item>
+			<item>FaithfulModule</item>
+			<item>FamElmEqFamRange</item>
+			<item>FamElmEqFamSource</item>
+			<item>FamMapFamSourceFamRange</item>
+			<item>FamRangeEqFamElm</item>
+			<item>FamRangeNotEqFamElm</item>
+			<item>FamSourceEqFamElm</item>
+			<item>FamSourceNotEqFamElm</item>
+			<item>FamSourceRgtEqFamsLft</item>
+			<item>FamiliesOfGeneralMappingsAndRanges</item>
+			<item>FamiliesOfRows</item>
+			<item>FamilyForOrdering</item>
+			<item>FamilyForRewritingSystem</item>
+			<item>FamilyObj</item>
+			<item>FamilyOfFamilies</item>
+			<item>FamilyOfTypes</item>
+			<item>FamilyPcgs</item>
+			<item>FamilyRange</item>
+			<item>FamilySource</item>
+			<item>FamilyType</item>
+			<item>FastExtSQ</item>
+			<item>Fibonacci</item>
+			<item>FibonacciGroup</item>
+			<item>Field</item>
+			<item>FieldByGenerators</item>
+			<item>FieldExtension</item>
+			<item>FieldOfMatrixGroup</item>
+			<item>FieldOfMatrixList</item>
+			<item>FieldOverItselfByGenerators</item>
+			<item>FileDescriptorOfStream</item>
+			<item>FileString</item>
+			<item>Filename</item>
+			<item>FilterSGMLMarkup</item>
+			<item>Filtered</item>
+			<item>FilteredOp</item>
+			<item>FinIndexCyclicSubgroupGenerator</item>
+			<item>FindActionKernel</item>
+			<item>FindBag</item>
+			<item>FindLayer</item>
+			<item>FindNewReps</item>
+			<item>FindNormalCSPG</item>
+			<item>FindOperationKernel</item>
+			<item>FindRegularNormalCSPG</item>
+			<item>FindWindowId</item>
+			<item>Fingerprint</item>
+			<item>FingerprintFF</item>
+			<item>FingerprintLarge</item>
+			<item>FingerprintMedium</item>
+			<item>FingerprintPerm</item>
+			<item>FingerprintSmall</item>
+			<item>FiniteField</item>
+			<item>First</item>
+			<item>FirstOp</item>
+			<item>FittingSubgroup</item>
+			<item>FixcellPoint</item>
+			<item>Fixcells</item>
+			<item>FixcellsCell</item>
+			<item>FixedPointSpace</item>
+			<item>FixpointCellNo</item>
+			<item>FlagsFamily</item>
+			<item>FlagsObj</item>
+			<item>FlagsType</item>
+			<item>Flat</item>
+			<item>FlatBlockMat</item>
+			<item>FlatHashParams</item>
+			<item>FloatsFamily</item>
+			<item>FlushCaches</item>
+			<item>ForAll</item>
+			<item>ForAllOp</item>
+			<item>ForAny</item>
+			<item>ForAnyOp</item>
+			<item>FormatParagraph</item>
+			<item>FormattedString</item>
+			<item>FpAlgebraByGeneralizedCartanMatrix</item>
+			<item>FpElmComparisonMethod</item>
+			<item>FpElmEqualityMethod</item>
+			<item>FpElmKBRWS</item>
+			<item>FpGroupPcGroupSQ</item>
+			<item>FpGroupPresentation</item>
+			<item>FpGrpMonSmgOfFpGrpMonSmgElement</item>
+			<item>FpLieAlgebraByCartanMatrix</item>
+			<item>FpLieAlgebraEnumeration</item>
+			<item>FpMonoidOfElementOfFpMonoid</item>
+			<item>FpOfModules</item>
+			<item>FpSemigroupOfElementOfFpSemigroup</item>
+			<item>FptoSCAMorphismImageElm</item>
+			<item>FrattiniSubgroup</item>
+			<item>FrattinifactorId</item>
+			<item>FrattinifactorSize</item>
+			<item>FreeAlgebra</item>
+			<item>FreeAlgebraConstructor</item>
+			<item>FreeAlgebraOfFpAlgebra</item>
+			<item>FreeAlgebraWithOne</item>
+			<item>FreeAssociativeAlgebra</item>
+			<item>FreeAssociativeAlgebraWithOne</item>
+			<item>FreeGeneratorsOfFpAlgebra</item>
+			<item>FreeGeneratorsOfFpGroup</item>
+			<item>FreeGeneratorsOfFpMonoid</item>
+			<item>FreeGeneratorsOfFpSemigroup</item>
+			<item>FreeGeneratorsOfWholeGroup</item>
+			<item>FreeGroup</item>
+			<item>FreeGroupOfBasicImageGroup</item>
+			<item>FreeGroupOfElt</item>
+			<item>FreeGroupOfFpGroup</item>
+			<item>FreeLeftModule</item>
+			<item>FreeLieAlgebra</item>
+			<item>FreeMagma</item>
+			<item>FreeMagmaRing</item>
+			<item>FreeMagmaWithOne</item>
+			<item>FreeMonoid</item>
+			<item>FreeMonoidNatHomByGeneratorsNC</item>
+			<item>FreeMonoidOfFpMonoid</item>
+			<item>FreeMonoidOfRewritingSystem</item>
+			<item>FreeSemigroup</item>
+			<item>FreeSemigroupNatHomByGeneratorsNC</item>
+			<item>FreeSemigroupOfFpSemigroup</item>
+			<item>FreeSemigroupOfRewritingSystem</item>
+			<item>FreeStructureOfRewritingSystem</item>
+			<item>FrobeniusAutomorphism</item>
+			<item>FrobeniusAutomorphismI</item>
+			<item>FrobeniusCharacterValue</item>
+			<item>FullMatrixAlgebra</item>
+			<item>FullMatrixAlgebraCentralizer</item>
+			<item>FullMatrixFLMLOR</item>
+			<item>FullMatrixLieAlgebra</item>
+			<item>FullMatrixLieFLMLOR</item>
+			<item>FullMatrixModule</item>
+			<item>FullMatrixSpace</item>
+			<item>FullRowModule</item>
+			<item>FullRowSpace</item>
+			<item>FullSparseRowSpace</item>
+			<item>FullTransformationSemigroup</item>
+			<item>FunctionAction</item>
+			<item>FunctionsFamily</item>
+			<item>FusionCharTableTom</item>
+			<item>FusionConjugacyClasses</item>
+			<item>FusionConjugacyClassesOp</item>
+			<item>FusionRationalClassesPSubgroup</item>
+			<item>FusionsAllowedByRestrictions</item>
+			<item>FusionsOfLibTom</item>
+			<item>FusionsToLibTom</item>
+			<item>FusionsTom</item>
+			<item>GAPDocManualLab</item>
+			<item>GAPInfo</item>
+			<item>GInverses</item>
+			<item>GLDegree</item>
+			<item>GLUnderlyingField</item>
+			<item>GModuleByMats</item>
+			<item>GPartitions</item>
+			<item>GPartitionsEasy</item>
+			<item>GPartitionsGreatestEQ</item>
+			<item>GPartitionsGreatestEQHelper</item>
+			<item>GPartitionsGreatestLE</item>
+			<item>GPartitionsGreatestLEEasy</item>
+			<item>GPartitionsNrParts</item>
+			<item>GPartitionsNrPartsHelper</item>
+			<item>GQuotients</item>
+			<item>GaloisConjugates</item>
+			<item>GaloisCyc</item>
+			<item>GaloisDiffResolvent</item>
+			<item>GaloisField</item>
+			<item>GaloisGroup</item>
+			<item>GaloisMat</item>
+			<item>GaloisSetResolvent</item>
+			<item>GaloisStabilizer</item>
+			<item>GaloisType</item>
+			<item>GapInputPcGroup</item>
+			<item>GapInputSCTable</item>
+			<item>GasmanLimits</item>
+			<item>GasmanMessageStatus</item>
+			<item>GasmanStatistics</item>
+			<item>GaussianIntegers</item>
+			<item>GaussianRationals</item>
+			<item>Gcd</item>
+			<item>GcdCoeffs</item>
+			<item>GcdInt</item>
+			<item>GcdOp</item>
+			<item>GcdRepresentation</item>
+			<item>GcdRepresentationOp</item>
+			<item>Gcdex</item>
+			<item>GeneralLinearGroup</item>
+			<item>GeneralLinearGroupCons</item>
+			<item>GeneralMappingByElements</item>
+			<item>GeneralMappingsFamily</item>
+			<item>GeneralOrthogonalGroup</item>
+			<item>GeneralOrthogonalGroupCons</item>
+			<item>GeneralStepClEANS</item>
+			<item>GeneralStepClEANSNonsolv</item>
+			<item>GeneralUnitaryGroup</item>
+			<item>GeneralUnitaryGroupCons</item>
+			<item>GeneralisedEigenspaces</item>
+			<item>GeneralisedEigenvalues</item>
+			<item>GeneralizedEigenspaces</item>
+			<item>GeneralizedEigenvalues</item>
+			<item>GeneralizedPcgs</item>
+			<item>GeneratingPairsOfLeftMagmaCongruence</item>
+			<item>GeneratingPairsOfMagmaCongruence</item>
+			<item>GeneratingPairsOfRightMagmaCongruence</item>
+			<item>GeneratingPairsOfSemigroupCongruence</item>
+			<item>GeneratingSetIsComplete</item>
+			<item>GeneratorNumberOfQuotient</item>
+			<item>GeneratorOfCyclicGroup</item>
+			<item>GeneratorSyllable</item>
+			<item>GeneratorTranslationAugmentedCosetTable</item>
+			<item>GeneratorsCenterPGroup</item>
+			<item>GeneratorsCentrePGroup</item>
+			<item>GeneratorsListTom</item>
+			<item>GeneratorsOfAdditiveGroup</item>
+			<item>GeneratorsOfAdditiveMagma</item>
+			<item>GeneratorsOfAdditiveMagmaWithInverses</item>
+			<item>GeneratorsOfAdditiveMagmaWithZero</item>
+			<item>GeneratorsOfAlgebra</item>
+			<item>GeneratorsOfAlgebraModule</item>
+			<item>GeneratorsOfAlgebraWithOne</item>
+			<item>GeneratorsOfDivisionRing</item>
+			<item>GeneratorsOfDomain</item>
+			<item>GeneratorsOfEquivalenceRelationPartition</item>
+			<item>GeneratorsOfExtASet</item>
+			<item>GeneratorsOfExtLSet</item>
+			<item>GeneratorsOfExtRSet</item>
+			<item>GeneratorsOfExtUSet</item>
+			<item>GeneratorsOfFLMLOR</item>
+			<item>GeneratorsOfFLMLORWithOne</item>
+			<item>GeneratorsOfField</item>
+			<item>GeneratorsOfGroup</item>
+			<item>GeneratorsOfIdeal</item>
+			<item>GeneratorsOfLayer</item>
+			<item>GeneratorsOfLeftIdeal</item>
+			<item>GeneratorsOfLeftMagmaIdeal</item>
+			<item>GeneratorsOfLeftModule</item>
+			<item>GeneratorsOfLeftOperatorAdditiveGroup</item>
+			<item>GeneratorsOfLeftOperatorRing</item>
+			<item>GeneratorsOfLeftOperatorRingWithOne</item>
+			<item>GeneratorsOfLeftVectorSpace</item>
+			<item>GeneratorsOfMagma</item>
+			<item>GeneratorsOfMagmaIdeal</item>
+			<item>GeneratorsOfMagmaWithInverses</item>
+			<item>GeneratorsOfMagmaWithOne</item>
+			<item>GeneratorsOfMonoid</item>
+			<item>GeneratorsOfNearAdditiveGroup</item>
+			<item>GeneratorsOfNearAdditiveMagma</item>
+			<item>GeneratorsOfNearAdditiveMagmaWithInverses</item>
+			<item>GeneratorsOfNearAdditiveMagmaWithZero</item>
+			<item>GeneratorsOfPresentation</item>
+			<item>GeneratorsOfRightIdeal</item>
+			<item>GeneratorsOfRightMagmaIdeal</item>
+			<item>GeneratorsOfRightModule</item>
+			<item>GeneratorsOfRightOperatorAdditiveGroup</item>
+			<item>GeneratorsOfRing</item>
+			<item>GeneratorsOfRingForIdeal</item>
+			<item>GeneratorsOfRingWithOne</item>
+			<item>GeneratorsOfRws</item>
+			<item>GeneratorsOfSemigroup</item>
+			<item>GeneratorsOfSemiring</item>
+			<item>GeneratorsOfSemiringWithOne</item>
+			<item>GeneratorsOfSemiringWithOneAndZero</item>
+			<item>GeneratorsOfSemiringWithZero</item>
+			<item>GeneratorsOfTwoSidedIdeal</item>
+			<item>GeneratorsOfVectorSpace</item>
+			<item>GeneratorsOverIntersection</item>
+			<item>GeneratorsPrimeResidues</item>
+			<item>GeneratorsSmallest</item>
+			<item>GeneratorsSmallestStab</item>
+			<item>GeneratorsSubgroupsTom</item>
+			<item>GenericFindActionKernel</item>
+			<item>GetChars</item>
+			<item>GetCommutatorNC</item>
+			<item>GetConjugateNC</item>
+			<item>GetDefinitionNC</item>
+			<item>GetETag</item>
+			<item>GetElement</item>
+			<item>GetEnt</item>
+			<item>GetFusionMap</item>
+			<item>GetHashEntry</item>
+			<item>GetHashEntryAtLastIndex</item>
+			<item>GetHashEntryIndex</item>
+			<item>GetMax</item>
+			<item>GetNaturalHomomorphismsPool</item>
+			<item>GetNumRight</item>
+			<item>GetPols</item>
+			<item>GetPowerNC</item>
+			<item>GetSTag</item>
+			<item>GetWord</item>
+			<item>GiveNumbersNIndeterminates</item>
+			<item>GlasbyCover</item>
+			<item>GlasbyIntersection</item>
+			<item>GlasbyShift</item>
+			<item>GlasbyStabilizer</item>
+			<item>GlobalPartitionOfClasses</item>
+			<item>Grading</item>
+			<item>GreensDClassOfElement</item>
+			<item>GreensDClasses</item>
+			<item>GreensDRelation</item>
+			<item>GreensHClassOfElement</item>
+			<item>GreensHClasses</item>
+			<item>GreensHRelation</item>
+			<item>GreensJClassOfElement</item>
+			<item>GreensJClasses</item>
+			<item>GreensJRelation</item>
+			<item>GreensLClassOfElement</item>
+			<item>GreensLClasses</item>
+			<item>GreensLRelation</item>
+			<item>GreensRClassOfElement</item>
+			<item>GreensRClasses</item>
+			<item>GreensRRelation</item>
+			<item>GroebnerBasis</item>
+			<item>GroebnerBasisNC</item>
+			<item>Group</item>
+			<item>GroupByGenerators</item>
+			<item>GroupByMultiplicationTable</item>
+			<item>GroupByNiceMonomorphism</item>
+			<item>GroupByPcgs</item>
+			<item>GroupByPrimeResidues</item>
+			<item>GroupByQuotientSystem</item>
+			<item>GroupByRws</item>
+			<item>GroupByRwsNC</item>
+			<item>GroupFromAdditiveGroup</item>
+			<item>GroupGeneralMappingByImages</item>
+			<item>GroupHClassOfGreensDClass</item>
+			<item>GroupHomomorphismByFunction</item>
+			<item>GroupHomomorphismByImages</item>
+			<item>GroupHomomorphismByImagesNC</item>
+			<item>GroupMethodByNiceMonomorphism</item>
+			<item>GroupMethodByNiceMonomorphismCollColl</item>
+			<item>GroupMethodByNiceMonomorphismCollElm</item>
+			<item>GroupMethodByNiceMonomorphismCollOther</item>
+			<item>GroupOfPcgs</item>
+			<item>GroupOnSubgroupsOrbit</item>
+			<item>GroupRing</item>
+			<item>GroupSeriesMethodByNiceMonomorphism</item>
+			<item>GroupSeriesMethodByNiceMonomorphismCollColl</item>
+			<item>GroupSeriesMethodByNiceMonomorphismCollElm</item>
+			<item>GroupSeriesMethodByNiceMonomorphismCollOther</item>
+			<item>GroupStabChain</item>
+			<item>GroupString</item>
+			<item>GroupToAdditiveGroupHomomorphismByFunction</item>
+			<item>GroupWithGenerators</item>
+			<item>HMSMSec</item>
+			<item>HallSubgroup</item>
+			<item>HallSubgroupOp</item>
+			<item>HallSystem</item>
+			<item>HasANonReesCongruenceOfSemigroup</item>
+			<item>HasAbelianFactorGroup</item>
+			<item>HasAbelianInvariants</item>
+			<item>HasAbelianInvariantsOfList</item>
+			<item>HasAbsoluteValue</item>
+			<item>HasActingDomain</item>
+			<item>HasActionHomomorphismAttr</item>
+			<item>HasActionKernelExternalSet</item>
+			<item>HasActorOfExternalSet</item>
+			<item>HasAdditiveElementAsMultiplicativeElement</item>
+			<item>HasAdditiveElementsAsMultiplicativeElementsFamily</item>
+			<item>HasAdditiveInverse</item>
+			<item>HasAdditiveInverseAttr</item>
+			<item>HasAdditiveInverseImmutable</item>
+			<item>HasAdditiveNeutralElement</item>
+			<item>HasAdditivelyActingDomain</item>
+			<item>HasAdjointBasis</item>
+			<item>HasAdjointModule</item>
+			<item>HasAlgebraicElementsFamilies</item>
+			<item>HasAllBlocks</item>
+			<item>HasAlpha</item>
+			<item>HasAlternatingDegree</item>
+			<item>HasAlternatingSubgroup</item>
+			<item>HasAsDuplicateFreeList</item>
+			<item>HasAsGroup</item>
+			<item>HasAsGroupGeneralMappingByImages</item>
+			<item>HasAsLeftModuleGeneralMappingByImages</item>
+			<item>HasAsList</item>
+			<item>HasAsMagma</item>
+			<item>HasAsMonoid</item>
+			<item>HasAsNearRing</item>
+			<item>HasAsPolynomial</item>
+			<item>HasAsRing</item>
+			<item>HasAsSSortedList</item>
+			<item>HasAsSemigroup</item>
+			<item>HasAsSemiring</item>
+			<item>HasAsSemiringWithOne</item>
+			<item>HasAsSemiringWithOneAndZero</item>
+			<item>HasAsSemiringWithZero</item>
+			<item>HasAsSortedList</item>
+			<item>HasAsSubgroupOfWholeGroupByQuotient</item>
+			<item>HasAssociatedReesMatrixSemigroupOfDClass</item>
+			<item>HasAssociatedSemigroup</item>
+			<item>HasAugmentationIdeal</item>
+			<item>HasAugmentedCosetTableMtcInWholeGroup</item>
+			<item>HasAugmentedCosetTableNormalClosureInWholeGroup</item>
+			<item>HasAugmentedCosetTableRrsInWholeGroup</item>
+			<item>HasAutomorphismDomain</item>
+			<item>HasAutomorphismGroup</item>
+			<item>HasAutomorphismsOfTable</item>
+			<item>HasBaseIntMat</item>
+			<item>HasBaseMat</item>
+			<item>HasBaseOfBasicImageGroup</item>
+			<item>HasBaseOfGroup</item>
+			<item>HasBaseOrthogonalSpaceMat</item>
+			<item>HasBasis</item>
+			<item>HasBasisOfHomCosetAddMatrixGroup</item>
+			<item>HasBasisVectors</item>
+			<item>HasBaumClausenInfo</item>
+			<item>HasBilinearFormMat</item>
+			<item>HasBlocksAttr</item>
+			<item>HasBlocksInfo</item>
+			<item>HasBrauerCharacterValue</item>
+			<item>HasBravaisGroup</item>
+			<item>HasBravaisSubgroups</item>
+			<item>HasBravaisSupergroups</item>
+			<item>HasCanEasilyCompareElements</item>
+			<item>HasCanEasilySortElements</item>
+			<item>HasCanFindNilpotentClassTwoElement</item>
+			<item>HasCanonicalBasis</item>
+			<item>HasCanonicalElt</item>
+			<item>HasCanonicalGenerators</item>
+			<item>HasCanonicalNiceMonomorphism</item>
+			<item>HasCanonicalPcgs</item>
+			<item>HasCanonicalPcgsWrtFamilyPcgs</item>
+			<item>HasCanonicalPcgsWrtHomePcgs</item>
+			<item>HasCanonicalPcgsWrtSpecialPcgs</item>
+			<item>HasCanonicalRepresentativeDeterminatorOfExternalSet</item>
+			<item>HasCanonicalRepresentativeOfExternalSet</item>
+			<item>HasCartanMatrix</item>
+			<item>HasCartanSubalgebra</item>
+			<item>HasCayleyGraphDualSemigroup</item>
+			<item>HasCayleyGraphSemigroup</item>
+			<item>HasCenter</item>
+			<item>HasCentralCharacter</item>
+			<item>HasCentralIdempotentsOfSemiring</item>
+			<item>HasCentralNormalSeriesByPcgs</item>
+			<item>HasCentralizerInGLnZ</item>
+			<item>HasCentralizerInParent</item>
+			<item>HasCentre</item>
+			<item>HasCentreOfCharacter</item>
+			<item>HasChainHomomorphicImage</item>
+			<item>HasChainSubgroup</item>
+			<item>HasChainSubgroupQuotient</item>
+			<item>HasCharacterDegrees</item>
+			<item>HasCharacterNames</item>
+			<item>HasCharacterParameters</item>
+			<item>HasCharacteristic</item>
+			<item>HasCharacteristicPolynomial</item>
+			<item>HasChevalleyBasis</item>
+			<item>HasChiefNormalSeriesByPcgs</item>
+			<item>HasChiefSeries</item>
+			<item>HasClassNames</item>
+			<item>HasClassNamesTom</item>
+			<item>HasClassParameters</item>
+			<item>HasClassPermutation</item>
+			<item>HasClassPositionsOfCentre</item>
+			<item>HasClassPositionsOfDerivedSubgroup</item>
+			<item>HasClassPositionsOfDirectProductDecompositions</item>
+			<item>HasClassPositionsOfElementaryAbelianSeries</item>
+			<item>HasClassPositionsOfFittingSubgroup</item>
+			<item>HasClassPositionsOfKernel</item>
+			<item>HasClassPositionsOfLowerCentralSeries</item>
+			<item>HasClassPositionsOfMaximalNormalSubgroups</item>
+			<item>HasClassPositionsOfNormalSubgroups</item>
+			<item>HasClassPositionsOfSolvableResiduum</item>
+			<item>HasClassPositionsOfSupersolvableResiduum</item>
+			<item>HasClassPositionsOfUpperCentralSeries</item>
+			<item>HasClassRoots</item>
+			<item>HasClassTypesTom</item>
+			<item>HasCoKernelOfAdditiveGeneralMapping</item>
+			<item>HasCoKernelOfMultiplicativeGeneralMapping</item>
+			<item>HasCoefficientsAndMagmaElements</item>
+			<item>HasCoefficientsFamily</item>
+			<item>HasCoefficientsOfLaurentPolynomial</item>
+			<item>HasCoefficientsOfUnivariatePolynomial</item>
+			<item>HasCoefficientsOfUnivariateRationalFunction</item>
+			<item>HasCoefficientsRing</item>
+			<item>HasCollectionsFamily</item>
+			<item>HasColumnIndexOfReesMatrixSemigroupElement</item>
+			<item>HasColumnIndexOfReesZeroMatrixSemigroupElement</item>
+			<item>HasColumnsOfReesMatrixSemigroup</item>
+			<item>HasColumnsOfReesZeroMatrixSemigroup</item>
+			<item>HasCommutatorFactorGroup</item>
+			<item>HasCommutatorLength</item>
+			<item>HasComplementSystem</item>
+			<item>HasComplexConjugate</item>
+			<item>HasComponentsOfTuplesFamily</item>
+			<item>HasCompositionSeries</item>
+			<item>HasComputedAgemos</item>
+			<item>HasComputedAscendingChains</item>
+			<item>HasComputedBrauerTables</item>
+			<item>HasComputedClassFusions</item>
+			<item>HasComputedCyclicExtensionsTom</item>
+			<item>HasComputedHallSubgroups</item>
+			<item>HasComputedIndicators</item>
+			<item>HasComputedIsPNilpotents</item>
+			<item>HasComputedIsPSolvableCharacterTables</item>
+			<item>HasComputedIsPSolvables</item>
+			<item>HasComputedOmegas</item>
+			<item>HasComputedPCentralSeriess</item>
+			<item>HasComputedPCores</item>
+			<item>HasComputedPRumps</item>
+			<item>HasComputedPowerMaps</item>
+			<item>HasComputedPrimeBlockss</item>
+			<item>HasComputedSylowComplements</item>
+			<item>HasComputedSylowSubgroups</item>
+			<item>HasConductor</item>
+			<item>HasConfluentRws</item>
+			<item>HasConjugacyClasses</item>
+			<item>HasConjugacyClassesMaximalSubgroups</item>
+			<item>HasConjugacyClassesPerfectSubgroups</item>
+			<item>HasConjugacyClassesSubgroups</item>
+			<item>HasConjugates</item>
+			<item>HasConjugatorInnerAutomorphism</item>
+			<item>HasConjugatorOfConjugatorIsomorphism</item>
+			<item>HasConstantTimeAccessList</item>
+			<item>HasConstituentsOfCharacter</item>
+			<item>HasConvertBasicImageGroupElement</item>
+			<item>HasCoreInParent</item>
+			<item>HasCosetTableFpHom</item>
+			<item>HasCosetTableInWholeGroup</item>
+			<item>HasCosetTableNormalClosureInWholeGroup</item>
+			<item>HasCosetTableOfFpSemigroup</item>
+			<item>HasCycleStructurePerm</item>
+			<item>HasCyclicExtensionsTom</item>
+			<item>HasDecompositionMatrix</item>
+			<item>HasDecompositionTypesOfGroup</item>
+			<item>HasDefaultFieldOfMatrix</item>
+			<item>HasDefaultFieldOfMatrixGroup</item>
+			<item>HasDefectApproximation</item>
+			<item>HasDefiningPcgs</item>
+			<item>HasDefiningPolynomial</item>
+			<item>HasDegreeAction</item>
+			<item>HasDegreeOfBinaryRelation</item>
+			<item>HasDegreeOfCharacter</item>
+			<item>HasDegreeOfLaurentPolynomial</item>
+			<item>HasDegreeOfMatrixGroup</item>
+			<item>HasDegreeOfTransformation</item>
+			<item>HasDegreeOfTransformationSemigroup</item>
+			<item>HasDegreeOperation</item>
+			<item>HasDegreeOverPrimeField</item>
+			<item>HasDelta</item>
+			<item>HasDenominatorOfModuloPcgs</item>
+			<item>HasDenominatorOfRationalFunction</item>
+			<item>HasDepthOfUpperTriangularMatrix</item>
+			<item>HasDerivations</item>
+			<item>HasDerivative</item>
+			<item>HasDerivedLength</item>
+			<item>HasDerivedSeriesOfGroup</item>
+			<item>HasDerivedSubgroup</item>
+			<item>HasDerivedSubgroupsTomPossible</item>
+			<item>HasDerivedSubgroupsTomUnique</item>
+			<item>HasDeterminantMat</item>
+			<item>HasDeterminantOfCharacter</item>
+			<item>HasDihedralGenerators</item>
+			<item>HasDimension</item>
+			<item>HasDimensionOfMatrixGroup</item>
+			<item>HasDimensionOfVectors</item>
+			<item>HasDimensionsLoewyFactors</item>
+			<item>HasDimensionsMat</item>
+			<item>HasDirectFactorsOfGroup</item>
+			<item>HasDirectProductInfo</item>
+			<item>HasDirectSumDecomposition</item>
+			<item>HasDisplayOptions</item>
+			<item>HasDixonRecord</item>
+			<item>HasEANormalSeriesByPcgs</item>
+			<item>HasEarns</item>
+			<item>HasEggBoxOfDClass</item>
+			<item>HasElementTestFunction</item>
+			<item>HasElementaryAbelianFactorGroup</item>
+			<item>HasElementaryAbelianSeries</item>
+			<item>HasElementaryAbelianSeriesLargeSteps</item>
+			<item>HasElementaryAbelianSubseries</item>
+			<item>HasElementsFamily</item>
+			<item>HasEmptyRowVector</item>
+			<item>HasEnumerator</item>
+			<item>HasEnumeratorByBasis</item>
+			<item>HasEnumeratorSorted</item>
+			<item>HasEquivalenceClassRelation</item>
+			<item>HasEquivalenceClasses</item>
+			<item>HasEquivalenceRelationPartition</item>
+			<item>HasExponent</item>
+			<item>HasExponentOfPowering</item>
+			<item>HasExtRepDenominatorRatFun</item>
+			<item>HasExtRepNumeratorRatFun</item>
+			<item>HasExtRepPolynomialRatFun</item>
+			<item>HasExternalOrbits</item>
+			<item>HasExternalOrbitsStabilizers</item>
+			<item>HasExternalSet</item>
+			<item>HasFactorsOfDirectProduct</item>
+			<item>HasFaithfulModule</item>
+			<item>HasFamiliesOfGeneralMappingsAndRanges</item>
+			<item>HasFamilyForOrdering</item>
+			<item>HasFamilyForRewritingSystem</item>
+			<item>HasFamilyPcgs</item>
+			<item>HasFamilyRange</item>
+			<item>HasFamilySource</item>
+			<item>HasFieldOfMatrixGroup</item>
+			<item>HasFittingSubgroup</item>
+			<item>HasFpElmComparisonMethod</item>
+			<item>HasFpElmEqualityMethod</item>
+			<item>HasFpElmKBRWS</item>
+			<item>HasFrattiniSubgroup</item>
+			<item>HasFrattinifactorId</item>
+			<item>HasFrattinifactorSize</item>
+			<item>HasFreeAlgebraOfFpAlgebra</item>
+			<item>HasFreeGeneratorsOfFpAlgebra</item>
+			<item>HasFreeGeneratorsOfFpGroup</item>
+			<item>HasFreeGeneratorsOfFpMonoid</item>
+			<item>HasFreeGeneratorsOfFpSemigroup</item>
+			<item>HasFreeGroupOfBasicImageGroup</item>
+			<item>HasFreeGroupOfFpGroup</item>
+			<item>HasFreeMonoidOfFpMonoid</item>
+			<item>HasFreeMonoidOfRewritingSystem</item>
+			<item>HasFreeSemigroupOfFpSemigroup</item>
+			<item>HasFreeSemigroupOfRewritingSystem</item>
+			<item>HasFrobeniusAutomorphism</item>
+			<item>HasFunctionAction</item>
+			<item>HasFusionConjugacyClassesOp</item>
+			<item>HasFusionsOfLibTom</item>
+			<item>HasFusionsToLibTom</item>
+			<item>HasFusionsTom</item>
+			<item>HasGLDegree</item>
+			<item>HasGLUnderlyingField</item>
+			<item>HasGaloisGroup</item>
+			<item>HasGaloisMat</item>
+			<item>HasGaloisStabilizer</item>
+			<item>HasGaloisType</item>
+			<item>HasGeneralizedPcgs</item>
+			<item>HasGeneratingPairsOfLeftMagmaCongruence</item>
+			<item>HasGeneratingPairsOfMagmaCongruence</item>
+			<item>HasGeneratingPairsOfRightMagmaCongruence</item>
+			<item>HasGeneratingSetIsComplete</item>
+			<item>HasGeneratorOfCyclicGroup</item>
+			<item>HasGeneratorsOfAdditiveGroup</item>
+			<item>HasGeneratorsOfAdditiveMagma</item>
+			<item>HasGeneratorsOfAdditiveMagmaWithInverses</item>
+			<item>HasGeneratorsOfAdditiveMagmaWithZero</item>
+			<item>HasGeneratorsOfAlgebra</item>
+			<item>HasGeneratorsOfAlgebraModule</item>
+			<item>HasGeneratorsOfAlgebraWithOne</item>
+			<item>HasGeneratorsOfDivisionRing</item>
+			<item>HasGeneratorsOfDomain</item>
+			<item>HasGeneratorsOfEquivalenceRelationPartition</item>
+			<item>HasGeneratorsOfExtASet</item>
+			<item>HasGeneratorsOfExtLSet</item>
+			<item>HasGeneratorsOfExtRSet</item>
+			<item>HasGeneratorsOfExtUSet</item>
+			<item>HasGeneratorsOfFLMLOR</item>
+			<item>HasGeneratorsOfFLMLORWithOne</item>
+			<item>HasGeneratorsOfField</item>
+			<item>HasGeneratorsOfGroup</item>
+			<item>HasGeneratorsOfIdeal</item>
+			<item>HasGeneratorsOfLeftIdeal</item>
+			<item>HasGeneratorsOfLeftMagmaIdeal</item>
+			<item>HasGeneratorsOfLeftModule</item>
+			<item>HasGeneratorsOfLeftOperatorAdditiveGroup</item>
+			<item>HasGeneratorsOfLeftOperatorRing</item>
+			<item>HasGeneratorsOfLeftOperatorRingWithOne</item>
+			<item>HasGeneratorsOfLeftVectorSpace</item>
+			<item>HasGeneratorsOfMagma</item>
+			<item>HasGeneratorsOfMagmaIdeal</item>
+			<item>HasGeneratorsOfMagmaWithInverses</item>
+			<item>HasGeneratorsOfMagmaWithOne</item>
+			<item>HasGeneratorsOfMonoid</item>
+			<item>HasGeneratorsOfNearAdditiveGroup</item>
+			<item>HasGeneratorsOfNearAdditiveMagma</item>
+			<item>HasGeneratorsOfNearAdditiveMagmaWithInverses</item>
+			<item>HasGeneratorsOfNearAdditiveMagmaWithZero</item>
+			<item>HasGeneratorsOfRightIdeal</item>
+			<item>HasGeneratorsOfRightMagmaIdeal</item>
+			<item>HasGeneratorsOfRightModule</item>
+			<item>HasGeneratorsOfRightOperatorAdditiveGroup</item>
+			<item>HasGeneratorsOfRing</item>
+			<item>HasGeneratorsOfRingWithOne</item>
+			<item>HasGeneratorsOfRws</item>
+			<item>HasGeneratorsOfSemigroup</item>
+			<item>HasGeneratorsOfSemiring</item>
+			<item>HasGeneratorsOfSemiringWithOne</item>
+			<item>HasGeneratorsOfSemiringWithOneAndZero</item>
+			<item>HasGeneratorsOfSemiringWithZero</item>
+			<item>HasGeneratorsOfTwoSidedIdeal</item>
+			<item>HasGeneratorsOfVectorSpace</item>
+			<item>HasGeneratorsSmallest</item>
+			<item>HasGeneratorsSubgroupsTom</item>
+			<item>HasGlobalPartitionOfClasses</item>
+			<item>HasGrading</item>
+			<item>HasGreensDRelation</item>
+			<item>HasGreensHRelation</item>
+			<item>HasGreensJRelation</item>
+			<item>HasGreensLRelation</item>
+			<item>HasGreensRRelation</item>
+			<item>HasGroupByPcgs</item>
+			<item>HasGroupHClassOfGreensDClass</item>
+			<item>HasGroupOfPcgs</item>
+			<item>HasHallSystem</item>
+			<item>HasHirschLength</item>
+			<item>HasHomCosetFamily</item>
+			<item>HasHomFromFreeOfBasicImageGroup</item>
+			<item>HasHomeEnumerator</item>
+			<item>HasHomePcgs</item>
+			<item>HasIBr</item>
+			<item>HasIdGroup</item>
+			<item>HasIdempotents</item>
+			<item>HasIdempotentsTom</item>
+			<item>HasIdempotentsTomInfo</item>
+			<item>HasIdentificationOfConjugacyClasses</item>
+			<item>HasIdentifier</item>
+			<item>HasIdentity</item>
+			<item>HasIdentityMapping</item>
+			<item>HasImageElt</item>
+			<item>HasImageListOfTransformation</item>
+			<item>HasImageSetOfTransformation</item>
+			<item>HasImagesSmallestGenerators</item>
+			<item>HasImagesSource</item>
+			<item>HasImfRecord</item>
+			<item>HasIndependentGeneratorsOfAbelianGroup</item>
+			<item>HasIndependentGeneratorsOfAbelianMatrixGroup</item>
+			<item>HasIndeterminateName</item>
+			<item>HasIndeterminateNumberOfLaurentPolynomial</item>
+			<item>HasIndeterminateNumberOfUnivariateLaurentPolynomial</item>
+			<item>HasIndeterminateNumberOfUnivariateRationalFunction</item>
+			<item>HasIndeterminateOfUnivariateRationalFunction</item>
+			<item>HasIndeterminatesOfPolynomialRing</item>
+			<item>HasIndexInParent</item>
+			<item>HasIndexInWholeGroup</item>
+			<item>HasIndicesCentralNormalSteps</item>
+			<item>HasIndicesChiefNormalSteps</item>
+			<item>HasIndicesEANormalSteps</item>
+			<item>HasIndicesInvolutaryGenerators</item>
+			<item>HasIndicesNormalSteps</item>
+			<item>HasIndicesOfAdjointBasis</item>
+			<item>HasIndicesPCentralNormalStepsPGroup</item>
+			<item>HasInducedPcgsWrtFamilyPcgs</item>
+			<item>HasInducedPcgsWrtHomePcgs</item>
+			<item>HasInducedPcgsWrtSpecialPcgs</item>
+			<item>HasInfoText</item>
+			<item>HasInjectionZeroMagma</item>
+			<item>HasInnerAutomorphismsAutomorphismGroup</item>
+			<item>HasInt</item>
+			<item>HasInternalRepresentative</item>
+			<item>HasInvariantBilinearForm</item>
+			<item>HasInvariantConjugateSubgroup</item>
+			<item>HasInvariantForm</item>
+			<item>HasInvariantLattice</item>
+			<item>HasInvariantQuadraticForm</item>
+			<item>HasInvariantSesquilinearForm</item>
+			<item>HasInverse</item>
+			<item>HasInverseAttr</item>
+			<item>HasInverseClasses</item>
+			<item>HasInverseGeneralMapping</item>
+			<item>HasInverseImmutable</item>
+			<item>HasIrr</item>
+			<item>HasIrrBaumClausen</item>
+			<item>HasIrrConlon</item>
+			<item>HasIrrDixonSchneider</item>
+			<item>HasIrrFacsPol</item>
+			<item>HasIrreducibleRepresentations</item>
+			<item>HasIsAbelian</item>
+			<item>HasIsAbelianNumberField</item>
+			<item>HasIsAbelianTom</item>
+			<item>HasIsAdditiveGroupGeneralMapping</item>
+			<item>HasIsAdditiveGroupHomomorphism</item>
+			<item>HasIsAdditiveGroupToGroupGeneralMapping</item>
+			<item>HasIsAdditiveGroupToGroupHomomorphism</item>
+			<item>HasIsAdditivelyCommutative</item>
+			<item>HasIsAlgebraGeneralMapping</item>
+			<item>HasIsAlgebraHomomorphism</item>
+			<item>HasIsAlgebraModule</item>
+			<item>HasIsAlgebraWithOneGeneralMapping</item>
+			<item>HasIsAlgebraWithOneHomomorphism</item>
+			<item>HasIsAlternatingGroup</item>
+			<item>HasIsAnticommutative</item>
+			<item>HasIsAntisymmetricBinaryRelation</item>
+			<item>HasIsAssociative</item>
+			<item>HasIsAutomorphismGroup</item>
+			<item>HasIsBasicWreathProductOrdering</item>
+			<item>HasIsBergerCondition</item>
+			<item>HasIsBijective</item>
+			<item>HasIsBravaisGroup</item>
+			<item>HasIsBuiltFromAdditiveMagmaWithInverses</item>
+			<item>HasIsBuiltFromGroup</item>
+			<item>HasIsBuiltFromMagma</item>
+			<item>HasIsBuiltFromMagmaWithInverses</item>
+			<item>HasIsBuiltFromMagmaWithOne</item>
+			<item>HasIsBuiltFromMonoid</item>
+			<item>HasIsBuiltFromSemigroup</item>
+			<item>HasIsCanonicalBasis</item>
+			<item>HasIsCanonicalBasisFullMatrixModule</item>
+			<item>HasIsCanonicalBasisFullRowModule</item>
+			<item>HasIsCanonicalBasisFullSCAlgebra</item>
+			<item>HasIsCanonicalNiceMonomorphism</item>
+			<item>HasIsCanonicalPcgs</item>
+			<item>HasIsCanonicalPcgsWrtSpecialPcgs</item>
+			<item>HasIsChainTypeGroup</item>
+			<item>HasIsCharacter</item>
+			<item>HasIsCharacteristicMatrixPGroup</item>
+			<item>HasIsCommutative</item>
+			<item>HasIsCommutativeFamily</item>
+			<item>HasIsConfluent</item>
+			<item>HasIsConjugatorAutomorphism</item>
+			<item>HasIsConjugatorIsomorphism</item>
+			<item>HasIsConstantRationalFunction</item>
+			<item>HasIsConstantTimeAccessGeneralMapping</item>
+			<item>HasIsCycInt</item>
+			<item>HasIsCyclic</item>
+			<item>HasIsCyclicTom</item>
+			<item>HasIsCyclotomicField</item>
+			<item>HasIsDihedralGroup</item>
+			<item>HasIsDistributive</item>
+			<item>HasIsDivisionRing</item>
+			<item>HasIsDuplicateFree</item>
+			<item>HasIsDuplicateFreeList</item>
+			<item>HasIsElementaryAbelian</item>
+			<item>HasIsEmpty</item>
+			<item>HasIsEndoGeneralMapping</item>
+			<item>HasIsEndoMapping</item>
+			<item>HasIsEquivalenceRelation</item>
+			<item>HasIsFFEMatrixGroupOverLargeSpace</item>
+			<item>HasIsFamilyPcgs</item>
+			<item>HasIsField</item>
+			<item>HasIsFieldHomomorphism</item>
+			<item>HasIsFinite</item>
+			<item>HasIsFiniteDimensional</item>
+			<item>HasIsFiniteOrdersPcgs</item>
+			<item>HasIsFiniteSemigroupGreensRelation</item>
+			<item>HasIsFinitelyGeneratedGroup</item>
+			<item>HasIsFrattiniFree</item>
+			<item>HasIsFreeMonoid</item>
+			<item>HasIsFreeSemigroup</item>
+			<item>HasIsFullFpAlgebra</item>
+			<item>HasIsFullHomModule</item>
+			<item>HasIsFullMatrixModule</item>
+			<item>HasIsFullRowModule</item>
+			<item>HasIsFullSCAlgebra</item>
+			<item>HasIsFullSubgroupGLorSLRespectingBilinearForm</item>
+			<item>HasIsFullSubgroupGLorSLRespectingQuadraticForm</item>
+			<item>HasIsFullSubgroupGLorSLRespectingSesquilinearForm</item>
+			<item>HasIsFullTransformationSemigroup</item>
+			<item>HasIsGL</item>
+			<item>HasIsGeneralLinearGroup</item>
+			<item>HasIsGeneralizedCartanMatrix</item>
+			<item>HasIsGeneratorsOfMagmaWithInverses</item>
+			<item>HasIsGreensClass</item>
+			<item>HasIsGreensDClass</item>
+			<item>HasIsGreensDRelation</item>
+			<item>HasIsGreensHClass</item>
+			<item>HasIsGreensHRelation</item>
+			<item>HasIsGreensJClass</item>
+			<item>HasIsGreensJRelation</item>
+			<item>HasIsGreensLClass</item>
+			<item>HasIsGreensLRelation</item>
+			<item>HasIsGreensRClass</item>
+			<item>HasIsGreensRRelation</item>
+			<item>HasIsGreensRelation</item>
+			<item>HasIsGroupGeneralMapping</item>
+			<item>HasIsGroupHClass</item>
+			<item>HasIsGroupHomomorphism</item>
+			<item>HasIsGroupOfAutomorphisms</item>
+			<item>HasIsGroupOfAutomorphismsFiniteGroup</item>
+			<item>HasIsGroupRing</item>
+			<item>HasIsGroupToAdditiveGroupGeneralMapping</item>
+			<item>HasIsGroupToAdditiveGroupHomomorphism</item>
+			<item>HasIsHandledByNiceMonomorphism</item>
+			<item>HasIsHasseDiagram</item>
+			<item>HasIsHomCosetOfAdditiveElt</item>
+			<item>HasIsHomCosetOfFp</item>
+			<item>HasIsHomCosetOfMatrix</item>
+			<item>HasIsHomCosetOfPerm</item>
+			<item>HasIsHomCosetOfTuple</item>
+			<item>HasIsIdealInParent</item>
+			<item>HasIsIdempotent</item>
+			<item>HasIsImpossible</item>
+			<item>HasIsInducedFromNormalSubgroup</item>
+			<item>HasIsInducedPcgsWrtSpecialPcgs</item>
+			<item>HasIsInjective</item>
+			<item>HasIsInnerAutomorphism</item>
+			<item>HasIsIntegerMatrixGroup</item>
+			<item>HasIsIntegralBasis</item>
+			<item>HasIsIntegralCyclotomic</item>
+			<item>HasIsIntegralRing</item>
+			<item>HasIsIrreducibleCharacter</item>
+			<item>HasIsJacobianRing</item>
+			<item>HasIsLDistributive</item>
+			<item>HasIsLatticeOrderBinaryRelation</item>
+			<item>HasIsLaurentPolynomial</item>
+			<item>HasIsLeftActedOnByDivisionRing</item>
+			<item>HasIsLeftAlgebraModule</item>
+			<item>HasIsLeftIdealInParent</item>
+			<item>HasIsLeftModuleGeneralMapping</item>
+			<item>HasIsLeftModuleHomomorphism</item>
+			<item>HasIsLeftSemigroupCongruence</item>
+			<item>HasIsLeftSemigroupIdeal</item>
+			<item>HasIsLieAbelian</item>
+			<item>HasIsLieAlgebra</item>
+			<item>HasIsLieNilpotent</item>
+			<item>HasIsLieSolvable</item>
+			<item>HasIsLinearlyPrimitive</item>
+			<item>HasIsMagmaHomomorphism</item>
+			<item>HasIsMapping</item>
+			<item>HasIsMatrixModule</item>
+			<item>HasIsMinimalNonmonomial</item>
+			<item>HasIsMonoid</item>
+			<item>HasIsMonomialCharacter</item>
+			<item>HasIsMonomialCharacterTable</item>
+			<item>HasIsMonomialGroup</item>
+			<item>HasIsMonomialMatrix</item>
+			<item>HasIsMonomialNumber</item>
+			<item>HasIsNaturalAlternatingGroup</item>
+			<item>HasIsNaturalGL</item>
+			<item>HasIsNaturalSL</item>
+			<item>HasIsNaturalSymmetricGroup</item>
+			<item>HasIsNearRing</item>
+			<item>HasIsNearRingWithOne</item>
+			<item>HasIsNilpQuotientSystem</item>
+			<item>HasIsNilpotentCharacterTable</item>
+			<item>HasIsNilpotentGroup</item>
+			<item>HasIsNilpotentTom</item>
+			<item>HasIsNonTrivial</item>
+			<item>HasIsNoncharacteristicMatrixPGroup</item>
+			<item>HasIsNormalBasis</item>
+			<item>HasIsNormalForm</item>
+			<item>HasIsNormalInParent</item>
+			<item>HasIsNumberField</item>
+			<item>HasIsNumeratorParentPcgsFamilyPcgs</item>
+			<item>HasIsOne</item>
+			<item>HasIsOrderingOnFamilyOfAssocWords</item>
+			<item>HasIsPGroup</item>
+			<item>HasIsPQuotientSystem</item>
+			<item>HasIsPSL</item>
+			<item>HasIsParentPcgsFamilyPcgs</item>
+			<item>HasIsPartialOrderBinaryRelation</item>
+			<item>HasIsPcgsCentralSeries</item>
+			<item>HasIsPcgsChiefSeries</item>
+			<item>HasIsPcgsElementaryAbelianSeries</item>
+			<item>HasIsPcgsPCentralSeriesPGroup</item>
+			<item>HasIsPerfectCharacterTable</item>
+			<item>HasIsPerfectGroup</item>
+			<item>HasIsPerfectTom</item>
+			<item>HasIsPolycyclicGroup</item>
+			<item>HasIsPolynomial</item>
+			<item>HasIsPositionsList</item>
+			<item>HasIsPreOrderBinaryRelation</item>
+			<item>HasIsPrimeField</item>
+			<item>HasIsPrimeOrdersPcgs</item>
+			<item>HasIsPrimitive</item>
+			<item>HasIsPrimitiveAffine</item>
+			<item>HasIsPrimitiveCharacter</item>
+			<item>HasIsPrimitiveMatrixGroup</item>
+			<item>HasIsPseudoCanonicalBasisFullHomModule</item>
+			<item>HasIsQuasiDihedralGroup</item>
+			<item>HasIsQuasiPrimitive</item>
+			<item>HasIsQuaternionGroup</item>
+			<item>HasIsRDistributive</item>
+			<item>HasIsRationalMatrixGroup</item>
+			<item>HasIsRectangularTable</item>
+			<item>HasIsReduced</item>
+			<item>HasIsReesCongruence</item>
+			<item>HasIsReesCongruenceSemigroup</item>
+			<item>HasIsReesMatrixSemigroup</item>
+			<item>HasIsReesZeroMatrixSemigroup</item>
+			<item>HasIsReflexiveBinaryRelation</item>
+			<item>HasIsRegular</item>
+			<item>HasIsRegularDClass</item>
+			<item>HasIsRegularSemigroup</item>
+			<item>HasIsRelativelySM</item>
+			<item>HasIsRestrictedLieAlgebra</item>
+			<item>HasIsRightAlgebraModule</item>
+			<item>HasIsRightIdealInParent</item>
+			<item>HasIsRightSemigroupCongruence</item>
+			<item>HasIsRightSemigroupIdeal</item>
+			<item>HasIsRing</item>
+			<item>HasIsRingGeneralMapping</item>
+			<item>HasIsRingHomomorphism</item>
+			<item>HasIsRingWithOne</item>
+			<item>HasIsRingWithOneGeneralMapping</item>
+			<item>HasIsRingWithOneHomomorphism</item>
+			<item>HasIsRowModule</item>
+			<item>HasIsSL</item>
+			<item>HasIsSSortedList</item>
+			<item>HasIsSemiEchelonized</item>
+			<item>HasIsSemiRegular</item>
+			<item>HasIsSemigroup</item>
+			<item>HasIsSemigroupCongruence</item>
+			<item>HasIsSemigroupIdeal</item>
+			<item>HasIsSemiring</item>
+			<item>HasIsSemiringWithOne</item>
+			<item>HasIsSemiringWithOneAndZero</item>
+			<item>HasIsSemiringWithZero</item>
+			<item>HasIsShortLexOrdering</item>
+			<item>HasIsSimpleAlgebra</item>
+			<item>HasIsSimpleCharacterTable</item>
+			<item>HasIsSimpleGroup</item>
+			<item>HasIsSimpleSemigroup</item>
+			<item>HasIsSingleValued</item>
+			<item>HasIsSkewFieldFamily</item>
+			<item>HasIsSmallList</item>
+			<item>HasIsSolvableCharacterTable</item>
+			<item>HasIsSolvableGroup</item>
+			<item>HasIsSolvableTom</item>
+			<item>HasIsSortedList</item>
+			<item>HasIsSpecialLinearGroup</item>
+			<item>HasIsSpecialPcgs</item>
+			<item>HasIsSporadicSimpleCharacterTable</item>
+			<item>HasIsSporadicSimpleGroup</item>
+			<item>HasIsStabChainViaChainSubgroup</item>
+			<item>HasIsSubgroupSL</item>
+			<item>HasIsSubmonoidFpMonoid</item>
+			<item>HasIsSubnormallyMonomial</item>
+			<item>HasIsSubsemigroupFpSemigroup</item>
+			<item>HasIsSubsemigroupReesMatrixSemigroup</item>
+			<item>HasIsSubsemigroupReesZeroMatrixSemigroup</item>
+			<item>HasIsSubsetLocallyFiniteGroup</item>
+			<item>HasIsSupersolvableCharacterTable</item>
+			<item>HasIsSupersolvableGroup</item>
+			<item>HasIsSurjective</item>
+			<item>HasIsSymmetricBinaryRelation</item>
+			<item>HasIsSymmetricGroup</item>
+			<item>HasIsTotal</item>
+			<item>HasIsTotalOrdering</item>
+			<item>HasIsTransformationMonoid</item>
+			<item>HasIsTransformationSemigroup</item>
+			<item>HasIsTransitive</item>
+			<item>HasIsTransitiveBinaryRelation</item>
+			<item>HasIsTranslationInvariantOrdering</item>
+			<item>HasIsTrivial</item>
+			<item>HasIsTwoSidedIdealInParent</item>
+			<item>HasIsUFDFamily</item>
+			<item>HasIsUniformMatrixGroup</item>
+			<item>HasIsUnivariatePolynomial</item>
+			<item>HasIsUnivariateRationalFunction</item>
+			<item>HasIsVectorSpaceHomomorphism</item>
+			<item>HasIsVirtualCharacter</item>
+			<item>HasIsWeightLexOrdering</item>
+			<item>HasIsWellFoundedOrdering</item>
+			<item>HasIsWeylGroup</item>
+			<item>HasIsWholeFamily</item>
+			<item>HasIsWreathProductOrdering</item>
+			<item>HasIsZero</item>
+			<item>HasIsZeroGroup</item>
+			<item>HasIsZeroMultiplicationRing</item>
+			<item>HasIsZeroRationalFunction</item>
+			<item>HasIsZeroSimpleSemigroup</item>
+			<item>HasIsZeroSquaredRing</item>
+			<item>HasIsomorphismFpAlgebra</item>
+			<item>HasIsomorphismFpFLMLOR</item>
+			<item>HasIsomorphismFpGroup</item>
+			<item>HasIsomorphismFpMonoid</item>
+			<item>HasIsomorphismFpSemigroup</item>
+			<item>HasIsomorphismMatrixAlgebra</item>
+			<item>HasIsomorphismMatrixFLMLOR</item>
+			<item>HasIsomorphismPcGroup</item>
+			<item>HasIsomorphismPermGroup</item>
+			<item>HasIsomorphismReesMatrixSemigroup</item>
+			<item>HasIsomorphismRefinedPcGroup</item>
+			<item>HasIsomorphismSCAlgebra</item>
+			<item>HasIsomorphismSCFLMLOR</item>
+			<item>HasIsomorphismSimplifiedFpGroup</item>
+			<item>HasIsomorphismSpecialPcGroup</item>
+			<item>HasIsomorphismTransformationSemigroup</item>
+			<item>HasJenningsLieAlgebra</item>
+			<item>HasJenningsSeries</item>
+			<item>HasJordanDecomposition</item>
+			<item>HasKernelOfAdditiveGeneralMapping</item>
+			<item>HasKernelOfCharacter</item>
+			<item>HasKernelOfMultiplicativeGeneralMapping</item>
+			<item>HasKernelOfTransformation</item>
+			<item>HasKillingMatrix</item>
+			<item>HasKnowsHowToDecompose</item>
+			<item>HasLClassOfHClass</item>
+			<item>HasLGFirst</item>
+			<item>HasLGHeads</item>
+			<item>HasLGLayers</item>
+			<item>HasLGLength</item>
+			<item>HasLGTails</item>
+			<item>HasLGWeights</item>
+			<item>HasLargestElementGroup</item>
+			<item>HasLargestMovedPoint</item>
+			<item>HasLargestMovedPointPerm</item>
+			<item>HasLatticeGeneratorsInUEA</item>
+			<item>HasLatticeSubgroups</item>
+			<item>HasLeadCoeffsIGS</item>
+			<item>HasLeftActingAlgebra</item>
+			<item>HasLeftActingDomain</item>
+			<item>HasLeftActingGroup</item>
+			<item>HasLeftActingRingOfIdeal</item>
+			<item>HasLeftDerivations</item>
+			<item>HasLength</item>
+			<item>HasLengthsTom</item>
+			<item>HasLessThanFunction</item>
+			<item>HasLessThanOrEqualFunction</item>
+			<item>HasLetterRepWordsLessFunc</item>
+			<item>HasLevelsOfGenerators</item>
+			<item>HasLeviMalcevDecomposition</item>
+			<item>HasLieAlgebraByDomain</item>
+			<item>HasLieCenter</item>
+			<item>HasLieCentralizerInParent</item>
+			<item>HasLieCentre</item>
+			<item>HasLieDerivedSeries</item>
+			<item>HasLieDerivedSubalgebra</item>
+			<item>HasLieFamily</item>
+			<item>HasLieLowerCentralSeries</item>
+			<item>HasLieNilRadical</item>
+			<item>HasLieNormalizerInParent</item>
+			<item>HasLieObject</item>
+			<item>HasLieSolvableRadical</item>
+			<item>HasLieUpperCentralSeries</item>
+			<item>HasLinearActionBasis</item>
+			<item>HasLinearCharacters</item>
+			<item>HasLinesOfStraightLineProgram</item>
+			<item>HasLongestWeylWordPerm</item>
+			<item>HasLowerCentralSeriesOfGroup</item>
+			<item>HasMagmaGeneratorsOfFamily</item>
+			<item>HasMappingGeneratorsImages</item>
+			<item>HasMappingOfWhichItIsAsGGMBI</item>
+			<item>HasMarksTom</item>
+			<item>HasMatTom</item>
+			<item>HasMatrixByBlockMatrix</item>
+			<item>HasMatrixDimension</item>
+			<item>HasMaximalAbelianQuotient</item>
+			<item>HasMaximalBlocksAttr</item>
+			<item>HasMaximalNormalSubgroups</item>
+			<item>HasMaximalSubgroupClassReps</item>
+			<item>HasMaximalSubgroups</item>
+			<item>HasMaximalSubgroupsLattice</item>
+			<item>HasMaximalSubgroupsTom</item>
+			<item>HasMinimalBlockDimension</item>
+			<item>HasMinimalGeneratingSet</item>
+			<item>HasMinimalNormalSubgroups</item>
+			<item>HasMinimalStabChain</item>
+			<item>HasMinimalSupergroupsLattice</item>
+			<item>HasMinimizedBombieriNorm</item>
+			<item>HasModuleOfExtension</item>
+			<item>HasModulusOfZmodnZObj</item>
+			<item>HasMoebiusTom</item>
+			<item>HasMolienSeriesInfo</item>
+			<item>HasMonoidOfRewritingSystem</item>
+			<item>HasMonomialComparisonFunction</item>
+			<item>HasMonomialExtrepComparisonFun</item>
+			<item>HasMovedPoints</item>
+			<item>HasMultiplicationTable</item>
+			<item>HasMultiplicativeNeutralElement</item>
+			<item>HasMultiplicativeZero</item>
+			<item>HasName</item>
+			<item>HasNameIsomorphismClass</item>
+			<item>HasNamesLibTom</item>
+			<item>HasNamesOfFusionSources</item>
+			<item>HasNaturalCharacter</item>
+			<item>HasNaturalHomomorphismByNormalSubgroupNCInParent</item>
+			<item>HasNaturalHomomorphismsPool</item>
+			<item>HasNegativeRootVectors</item>
+			<item>HasNegativeRoots</item>
+			<item>HasNestingDepthA</item>
+			<item>HasNestingDepthM</item>
+			<item>HasNiceAlgebraMonomorphism</item>
+			<item>HasNiceBasis</item>
+			<item>HasNiceFreeLeftModule</item>
+			<item>HasNiceFreeLeftModuleInfo</item>
+			<item>HasNiceMonomorphism</item>
+			<item>HasNiceNormalFormByExtRepFunction</item>
+			<item>HasNiceObject</item>
+			<item>HasNilpotencyClassOfGroup</item>
+			<item>HasNilpotentClassTwoElement</item>
+			<item>HasNonLieNilpotentElement</item>
+			<item>HasNonNilpotentElement</item>
+			<item>HasNorm</item>
+			<item>HasNormalBase</item>
+			<item>HasNormalClosureInParent</item>
+			<item>HasNormalMaximalSubgroups</item>
+			<item>HasNormalSeriesByPcgs</item>
+			<item>HasNormalSubgroupClassesInfo</item>
+			<item>HasNormalSubgroups</item>
+			<item>HasNormalizerInGLnZ</item>
+			<item>HasNormalizerInGLnZBravaisGroup</item>
+			<item>HasNormalizerInHomePcgs</item>
+			<item>HasNormalizerInParent</item>
+			<item>HasNormalizersTom</item>
+			<item>HasNormedRowVector</item>
+			<item>HasNormedRowVectors</item>
+			<item>HasNormedVectors</item>
+			<item>HasNotifiedFusionsOfLibTom</item>
+			<item>HasNotifiedFusionsToLibTom</item>
+			<item>HasNrConjugacyClasses</item>
+			<item>HasNrInputsOfStraightLineProgram</item>
+			<item>HasNrMovedPoints</item>
+			<item>HasNrMovedPointsPerm</item>
+			<item>HasNrSubsTom</item>
+			<item>HasNrSyllables</item>
+			<item>HasNullAlgebra</item>
+			<item>HasNullspaceIntMat</item>
+			<item>HasNullspaceMat</item>
+			<item>HasNumberGeneratorsOfRws</item>
+			<item>HasNumberSyllables</item>
+			<item>HasNumeratorOfModuloPcgs</item>
+			<item>HasNumeratorOfRationalFunction</item>
+			<item>HasONanScottType</item>
+			<item>HasOccuringVariableIndices</item>
+			<item>HasOmegaAndLowerPCentralSeries</item>
+			<item>HasOmegaSeries</item>
+			<item>HasOne</item>
+			<item>HasOneAttr</item>
+			<item>HasOneImmutable</item>
+			<item>HasOneOfPcgs</item>
+			<item>HasOperatorOfExternalSet</item>
+			<item>HasOrbitGeneratorsOfGroup</item>
+			<item>HasOrbitLengths</item>
+			<item>HasOrbitLengthsDomain</item>
+			<item>HasOrbitStabilizingParentGroup</item>
+			<item>HasOrbits</item>
+			<item>HasOrbitsDomain</item>
+			<item>HasOrder</item>
+			<item>HasOrderingOfRewritingSystem</item>
+			<item>HasOrderingOnGenerators</item>
+			<item>HasOrderingsFamily</item>
+			<item>HasOrdersClassRepresentatives</item>
+			<item>HasOrdersTom</item>
+			<item>HasOrdinaryCharacterTable</item>
+			<item>HasOrthogonalSpaceInFullRowSpace</item>
+			<item>HasPCentralLieAlgebra</item>
+			<item>HasPCentralNormalSeriesByPcgsPGroup</item>
+			<item>HasPClassPGroup</item>
+			<item>HasPSLDegree</item>
+			<item>HasPSLUnderlyingField</item>
+			<item>HasParent</item>
+			<item>HasParentAttr</item>
+			<item>HasParentPcgs</item>
+			<item>HasPartialClosureOfCongruence</item>
+			<item>HasPartialOrderOfHasseDiagram</item>
+			<item>HasPcGroupWithPcgs</item>
+			<item>HasPcSeries</item>
+			<item>HasPcgs</item>
+			<item>HasPcgsCentralSeries</item>
+			<item>HasPcgsChiefSeries</item>
+			<item>HasPcgsElementaryAbelianSeries</item>
+			<item>HasPcgsPCentralSeriesPGroup</item>
+			<item>HasPerfectIdentification</item>
+			<item>HasPerfectResiduum</item>
+			<item>HasPermutationTom</item>
+			<item>HasPositiveRootVectors</item>
+			<item>HasPositiveRoots</item>
+			<item>HasPositiveRootsAsWeights</item>
+			<item>HasPowerS</item>
+			<item>HasPowerSubalgebraSeries</item>
+			<item>HasPreBasis</item>
+			<item>HasPreImagesRange</item>
+			<item>HasPreferredGenerators</item>
+			<item>HasPrefrattiniSubgroup</item>
+			<item>HasPresentation</item>
+			<item>HasPrimaryGeneratorWords</item>
+			<item>HasPrimeField</item>
+			<item>HasPrimePGroup</item>
+			<item>HasPrimePowerComponents</item>
+			<item>HasPrimitiveElement</item>
+			<item>HasPrimitiveIdentification</item>
+			<item>HasPrimitiveRoot</item>
+			<item>HasProjectiveOrder</item>
+			<item>HasPseudoRandomSeed</item>
+			<item>HasPthPowerImages</item>
+			<item>HasQuasiDihedralGenerators</item>
+			<item>HasQuaternionGenerators</item>
+			<item>HasQuotientGroup</item>
+			<item>HasQuotientGroupHom</item>
+			<item>HasQuotientSemigroupCongruence</item>
+			<item>HasQuotientSemigroupHomomorphism</item>
+			<item>HasQuotientSemigroupPreimage</item>
+			<item>HasRClassOfHClass</item>
+			<item>HasRadicalGroup</item>
+			<item>HasRadicalOfAlgebra</item>
+			<item>HasRange</item>
+			<item>HasRankAction</item>
+			<item>HasRankMat</item>
+			<item>HasRankOfTransformation</item>
+			<item>HasRankPGroup</item>
+			<item>HasRat</item>
+			<item>HasRationalClasses</item>
+			<item>HasRationalFunctionsFamily</item>
+			<item>HasRationalizedMat</item>
+			<item>HasRealClasses</item>
+			<item>HasRecNames</item>
+			<item>HasReducedConfluentRewritingSystem</item>
+			<item>HasReesCongruenceOfSemigroupIdeal</item>
+			<item>HasReesZeroMatrixSemigroupElementIsZero</item>
+			<item>HasRefinedPcGroup</item>
+			<item>HasRegularActionHomomorphism</item>
+			<item>HasRelationsOfFpMonoid</item>
+			<item>HasRelationsOfFpSemigroup</item>
+			<item>HasRelativeOrders</item>
+			<item>HasRelatorsOfFpAlgebra</item>
+			<item>HasRelatorsOfFpGroup</item>
+			<item>HasRepresentative</item>
+			<item>HasRepresentativeSmallest</item>
+			<item>HasRepresentativesContainedRightCosets</item>
+			<item>HasRepresentativesMinimalBlocksAttr</item>
+			<item>HasRepresentativesPerfectSubgroups</item>
+			<item>HasRepresentativesSimpleSubgroups</item>
+			<item>HasRespectsAddition</item>
+			<item>HasRespectsAdditiveInverses</item>
+			<item>HasRespectsInverses</item>
+			<item>HasRespectsMultiplication</item>
+			<item>HasRespectsOne</item>
+			<item>HasRespectsScalarMultiplication</item>
+			<item>HasRespectsZero</item>
+			<item>HasRightActingAlgebra</item>
+			<item>HasRightActingDomain</item>
+			<item>HasRightActingGroup</item>
+			<item>HasRightActingRingOfIdeal</item>
+			<item>HasRightDerivations</item>
+			<item>HasRightTransversalInParent</item>
+			<item>HasRootOfDefiningPolynomial</item>
+			<item>HasRootSystem</item>
+			<item>HasRowIndexOfReesMatrixSemigroupElement</item>
+			<item>HasRowIndexOfReesZeroMatrixSemigroupElement</item>
+			<item>HasRowsOfReesMatrixSemigroup</item>
+			<item>HasRowsOfReesZeroMatrixSemigroup</item>
+			<item>HasRules</item>
+			<item>HasSLDegree</item>
+			<item>HasSLUnderlyingField</item>
+			<item>HasSandwichMatrixOfReesMatrixSemigroup</item>
+			<item>HasSandwichMatrixOfReesZeroMatrixSemigroup</item>
+			<item>HasSemiEchelonBasis</item>
+			<item>HasSemiEchelonMat</item>
+			<item>HasSemiEchelonMatTransformation</item>
+			<item>HasSemiSimpleType</item>
+			<item>HasSemidirectFactorsOfGroup</item>
+			<item>HasSemidirectProductInfo</item>
+			<item>HasSemigroupOfRewritingSystem</item>
+			<item>HasSiftFunction</item>
+			<item>HasSiftGroup</item>
+			<item>HasSignPerm</item>
+			<item>HasSimpleSystem</item>
+			<item>HasSimsNo</item>
+			<item>HasSize</item>
+			<item>HasSizesCentralizers</item>
+			<item>HasSizesConjugacyClasses</item>
+			<item>HasSmallGeneratingSet</item>
+			<item>HasSmallestGeneratorPerm</item>
+			<item>HasSmallestMovedPoint</item>
+			<item>HasSmallestMovedPointPerm</item>
+			<item>HasSocle</item>
+			<item>HasSocleComplement</item>
+			<item>HasSocleDimensions</item>
+			<item>HasSocleTypePrimitiveGroup</item>
+			<item>HasSortingPerm</item>
+			<item>HasSource</item>
+			<item>HasSparseCartanMatrix</item>
+			<item>HasSpecialPcgs</item>
+			<item>HasSplittingField</item>
+			<item>HasStabChainImmutable</item>
+			<item>HasStabChainMutable</item>
+			<item>HasStabChainOptions</item>
+			<item>HasStabilizerOfExternalSet</item>
+			<item>HasStandardGeneratorsInfo</item>
+			<item>HasStoredExcludedOrders</item>
+			<item>HasStoredGroebnerBasis</item>
+			<item>HasStraightLineProgElmType</item>
+			<item>HasStraightLineProgramsTom</item>
+			<item>HasString</item>
+			<item>HasStructureConstantsTable</item>
+			<item>HasStructureDescription</item>
+			<item>HasSubdirectProductInfo</item>
+			<item>HasSubfields</item>
+			<item>HasSubnormalSeriesInParent</item>
+			<item>HasSubsTom</item>
+			<item>HasSubspaces</item>
+			<item>HasSubspacesAll</item>
+			<item>HasSuccessors</item>
+			<item>HasSupersolvableResiduum</item>
+			<item>HasSurjectiveActionHomomorphismAttr</item>
+			<item>HasSylowSystem</item>
+			<item>HasSymmetricDegree</item>
+			<item>HasSymmetricParentGroup</item>
+			<item>HasTableOfMarks</item>
+			<item>HasTestMonomial</item>
+			<item>HasTestMonomialQuick</item>
+			<item>HasTestQuasiPrimitive</item>
+			<item>HasTestRelativelySM</item>
+			<item>HasTestSubnormallyMonomial</item>
+			<item>HasTietzeOrigin</item>
+			<item>HasTrace</item>
+			<item>HasTranformsOneIntoZero</item>
+			<item>HasTransformationRepresentation</item>
+			<item>HasTransformsAdditionIntoMultiplication</item>
+			<item>HasTransformsAdditiveInversesIntoInverses</item>
+			<item>HasTransformsInversesIntoAdditiveInverses</item>
+			<item>HasTransformsMultiplicationIntoAddition</item>
+			<item>HasTransformsZeroIntoOne</item>
+			<item>HasTransitiveIdentification</item>
+			<item>HasTransitivity</item>
+			<item>HasTransposedMat</item>
+			<item>HasTransposedMatAttr</item>
+			<item>HasTransposedMatImmutable</item>
+			<item>HasTransposedMatrixGroup</item>
+			<item>HasTransversal</item>
+			<item>HasTriangulizedNullspaceMat</item>
+			<item>HasTrivialCharacter</item>
+			<item>HasTrivialSubFLMLOR</item>
+			<item>HasTrivialSubadditiveMagmaWithZero</item>
+			<item>HasTrivialSubalgebra</item>
+			<item>HasTrivialSubgroup</item>
+			<item>HasTrivialSubmagmaWithOne</item>
+			<item>HasTrivialSubmodule</item>
+			<item>HasTrivialSubmonoid</item>
+			<item>HasTrivialSubnearAdditiveMagmaWithZero</item>
+			<item>HasTrivialSubspace</item>
+			<item>HasTwoClosure</item>
+			<item>HasTzOptions</item>
+			<item>HasTzRules</item>
+			<item>HasUnderlyingCharacterTable</item>
+			<item>HasUnderlyingCharacteristic</item>
+			<item>HasUnderlyingCollection</item>
+			<item>HasUnderlyingElementOfReesMatrixSemigroupElement</item>
+			<item>HasUnderlyingElementOfReesZeroMatrixSemigroupElement</item>
+			<item>HasUnderlyingExternalSet</item>
+			<item>HasUnderlyingFamily</item>
+			<item>HasUnderlyingField</item>
+			<item>HasUnderlyingGeneralMapping</item>
+			<item>HasUnderlyingGroup</item>
+			<item>HasUnderlyingLeftModule</item>
+			<item>HasUnderlyingLieAlgebra</item>
+			<item>HasUnderlyingMagma</item>
+			<item>HasUnderlyingRelation</item>
+			<item>HasUnderlyingSemigroupOfReesMatrixSemigroup</item>
+			<item>HasUnderlyingSemigroupOfReesZeroMatrixSemigroup</item>
+			<item>HasUnderlyingVectorSpace</item>
+			<item>HasUnits</item>
+			<item>HasUniversalEnvelopingAlgebra</item>
+			<item>HasUpperActingDomain</item>
+			<item>HasUpperCentralSeriesOfGroup</item>
+			<item>HasValuesOfClassFunction</item>
+			<item>HasWeightOfGenerators</item>
+			<item>HasWeightsTom</item>
+			<item>HasWeylGroup</item>
+			<item>HasWreathProductInfo</item>
+			<item>HasZClassRepsQClass</item>
+			<item>HasZero</item>
+			<item>HasZeroAttr</item>
+			<item>HasZeroCoefficient</item>
+			<item>HasZeroImmutable</item>
+			<item>HasZuppos</item>
+			<item>HashDictAddDictionary</item>
+			<item>HashFunct</item>
+			<item>HashKeyBag</item>
+			<item>HashKeyEnumerator</item>
+			<item>HashTable</item>
+			<item>HasnpeGL</item>
+			<item>HasnpePSL</item>
+			<item>HasnpeSL</item>
+			<item>HasseDiagramBinaryRelation</item>
+			<item>HeadPcElementByNumber</item>
+			<item>HeadsInfoOfSemiEchelonizedMat</item>
+			<item>HeadsInfoOfSemiEchelonizedMats</item>
+			<item>HenselBound</item>
+			<item>HermiteNormalFormIntegerMat</item>
+			<item>HermiteNormalFormIntegerMatTransform</item>
+			<item>HermiteNormalFormIntegerMatTransforms</item>
+			<item>HeuGcdIntPolsCoeffs</item>
+			<item>HeuGcdIntPolsExtRep</item>
+			<item>HeuristicCancelPolynomialsExtRep</item>
+			<item>HexBlistSetup</item>
+			<item>HexStringBlist</item>
+			<item>HexStringBlistEncode</item>
+			<item>HexStringInt</item>
+			<item>HideGlobalVariables</item>
+			<item>HighestWeightModule</item>
+			<item>HirschLength</item>
+			<item>Hom</item>
+			<item>HomCoset</item>
+			<item>HomCosetFamily</item>
+			<item>HomCosetWithImage</item>
+			<item>HomFromFree</item>
+			<item>HomFromFreeOfBasicImageGroup</item>
+			<item>HomTransversal</item>
+			<item>HomeEnumerator</item>
+			<item>HomePcgs</item>
+			<item>HomomorphicCanonicalPcgs</item>
+			<item>HomomorphicInducedPcgs</item>
+			<item>Homomorphism</item>
+			<item>HomomorphismFactorSemigroup</item>
+			<item>HomomorphismFactorSemigroupByClosure</item>
+			<item>HomomorphismQuotientSemigroup</item>
+			<item>HomomorphismTransformationSemigroup</item>
+			<item>HomomorphismsSeries</item>
+			<item>HumanReadableDefinition</item>
+			<item>IBr</item>
+			<item>IMFList</item>
+			<item>IMFLoad</item>
+			<item>IMFRec</item>
+			<item>IdFunc</item>
+			<item>IdGroup</item>
+			<item>IdSmallGroup</item>
+			<item>Ideal</item>
+			<item>IdealByGenerators</item>
+			<item>IdealByGeneratorsForLieAlgebra</item>
+			<item>IdealNC</item>
+			<item>Idempotents</item>
+			<item>IdempotentsTom</item>
+			<item>IdempotentsTomInfo</item>
+			<item>IdentificationGenericGroup</item>
+			<item>IdentificationOfConjugacyClasses</item>
+			<item>IdentificationPermGroup</item>
+			<item>IdentificationSolvableGroup</item>
+			<item>Identifier</item>
+			<item>IdentifierLetters</item>
+			<item>Identity</item>
+			<item>IdentityBinaryRelation</item>
+			<item>IdentityFromSCTable</item>
+			<item>IdentityMapping</item>
+			<item>IdentityMat</item>
+			<item>IdentityTransformation</item>
+			<item>IdsOfAllGroups</item>
+			<item>IdsOfAllSmallGroups</item>
+			<item>Ignore</item>
+			<item>Image</item>
+			<item>ImageElm</item>
+			<item>ImageElmActionHomomorphism</item>
+			<item>ImageElt</item>
+			<item>ImageGroup</item>
+			<item>ImageInWord</item>
+			<item>ImageKernelBlocksHomomorphism</item>
+			<item>ImageListOfTransformation</item>
+			<item>ImageMat</item>
+			<item>ImageOnAbelianCSPG</item>
+			<item>ImageSetOfTransformation</item>
+			<item>ImageSiftedBaseImage</item>
+			<item>ImageUnderWord</item>
+			<item>Images</item>
+			<item>ImagesElm</item>
+			<item>ImagesListOfBinaryRelation</item>
+			<item>ImagesRepresentative</item>
+			<item>ImagesRepresentativeGMBIByElementsList</item>
+			<item>ImagesSet</item>
+			<item>ImagesSmallestGenerators</item>
+			<item>ImagesSource</item>
+			<item>ImfInvariants</item>
+			<item>ImfMatrixGroup</item>
+			<item>ImfNumberQClasses</item>
+			<item>ImfNumberQQClasses</item>
+			<item>ImfNumberZClasses</item>
+			<item>ImfPositionNumber</item>
+			<item>ImfRecord</item>
+			<item>ImgElmSLP</item>
+			<item>ImgElmSLPNonrecursive</item>
+			<item>ImmediateImplicationsIdentityMapping</item>
+			<item>ImmediateImplicationsZeroMapping</item>
+			<item>Immutable</item>
+			<item>ImmutableBasis</item>
+			<item>ImmutableMatrix</item>
+			<item>ImproveActionDegreeByBlocks</item>
+			<item>ImproveMaps</item>
+			<item>ImproveOperationDegreeByBlocks</item>
+			<item>InParentFOA</item>
+			<item>IncorporateCentralRelations</item>
+			<item>IncreaseCounter</item>
+			<item>IndPcgsWrtSpecFromFamOrHome</item>
+			<item>IndependentGeneratorsAbelianPPermGroup</item>
+			<item>IndependentGeneratorsOfAbelianGroup</item>
+			<item>IndependentGeneratorsOfAbelianMatrixGroup</item>
+			<item>Indeterminate</item>
+			<item>IndeterminateName</item>
+			<item>IndeterminateNumberOfLaurentPolynomial</item>
+			<item>IndeterminateNumberOfUnivariateLaurentPolynomial</item>
+			<item>IndeterminateNumberOfUnivariateRationalFunction</item>
+			<item>IndeterminateOfLaurentPolynomial</item>
+			<item>IndeterminateOfUnivariateRationalFunction</item>
+			<item>Indeterminateness</item>
+			<item>IndeterminatenessInfo</item>
+			<item>IndeterminatesOfPolynomialRing</item>
+			<item>Index</item>
+			<item>IndexCosetTab</item>
+			<item>IndexInParent</item>
+			<item>IndexInWholeGroup</item>
+			<item>IndexNC</item>
+			<item>IndexOp</item>
+			<item>Indicator</item>
+			<item>IndicatorOp</item>
+			<item>IndicesCentralNormalSteps</item>
+			<item>IndicesChiefNormalSteps</item>
+			<item>IndicesEANormalSteps</item>
+			<item>IndicesInvolutaryGenerators</item>
+			<item>IndicesNormalSteps</item>
+			<item>IndicesOfAdjointBasis</item>
+			<item>IndicesPCentralNormalStepsPGroup</item>
+			<item>IndicesStabChain</item>
+			<item>Indirected</item>
+			<item>Induced</item>
+			<item>InducedActionAutGroup</item>
+			<item>InducedActionFactor</item>
+			<item>InducedAutomorphism</item>
+			<item>InducedClassFunction</item>
+			<item>InducedClassFunctions</item>
+			<item>InducedClassFunctionsByFusionMap</item>
+			<item>InducedCyclic</item>
+			<item>InducedGModule</item>
+			<item>InducedLinearAction</item>
+			<item>InducedModule</item>
+			<item>InducedModuleByFieldReduction</item>
+			<item>InducedPcgs</item>
+			<item>InducedPcgsByGenerators</item>
+			<item>InducedPcgsByGeneratorsNC</item>
+			<item>InducedPcgsByGeneratorsWithImages</item>
+			<item>InducedPcgsByPcSequence</item>
+			<item>InducedPcgsByPcSequenceAndGenerators</item>
+			<item>InducedPcgsByPcSequenceNC</item>
+			<item>InducedPcgsWrtFamilyPcgs</item>
+			<item>InducedPcgsWrtHomePcgs</item>
+			<item>InducedPcgsWrtSpecialPcgs</item>
+			<item>InducedRepFpGroup</item>
+			<item>InducedRepresentation</item>
+			<item>InducedRepresentationImagesRepresentative</item>
+			<item>InduciblePairs</item>
+			<item>InductionScheme</item>
+			<item>Inequalities</item>
+			<item>InertiaSubgroup</item>
+			<item>InfiniteListOfGenerators</item>
+			<item>InfiniteListOfNames</item>
+			<item>Inflated</item>
+			<item>Info</item>
+			<item>InfoAction</item>
+			<item>InfoAlgebra</item>
+			<item>InfoAttributes</item>
+			<item>InfoAutGrp</item>
+			<item>InfoBasicImage</item>
+			<item>InfoBckt</item>
+			<item>InfoChain</item>
+			<item>InfoCharacterTable</item>
+			<item>InfoClassFamily</item>
+			<item>InfoClasses</item>
+			<item>InfoCoh</item>
+			<item>InfoCompPairs</item>
+			<item>InfoComplement</item>
+			<item>InfoConfluence</item>
+			<item>InfoCoset</item>
+			<item>InfoData</item>
+			<item>InfoDebug</item>
+			<item>InfoDecision</item>
+			<item>InfoDoPrint</item>
+			<item>InfoExtReps</item>
+			<item>InfoFactor</item>
+			<item>InfoFpGroup</item>
+			<item>InfoGalois</item>
+			<item>InfoGlobal</item>
+			<item>InfoGroebner</item>
+			<item>InfoGroup</item>
+			<item>InfoHash</item>
+			<item>InfoHashTables</item>
+			<item>InfoHomClass</item>
+			<item>InfoIdgroup</item>
+			<item>InfoImf</item>
+			<item>InfoKnuthBendix</item>
+			<item>InfoLattice</item>
+			<item>InfoLevel</item>
+			<item>InfoMatInt</item>
+			<item>InfoMatOrb</item>
+			<item>InfoMatrix</item>
+			<item>InfoMeatAxe</item>
+			<item>InfoMethodSelection</item>
+			<item>InfoMonomial</item>
+			<item>InfoMorph</item>
+			<item>InfoNumtheor</item>
+			<item>InfoOperation</item>
+			<item>InfoOptions</item>
+			<item>InfoOverGr</item>
+			<item>InfoPcGroup</item>
+			<item>InfoPcNormalizer</item>
+			<item>InfoPcSubgroup</item>
+			<item>InfoPerformance</item>
+			<item>InfoPoly</item>
+			<item>InfoPrimeInt</item>
+			<item>InfoQuotientGroup</item>
+			<item>InfoQuotientSystem</item>
+			<item>InfoRSS</item>
+			<item>InfoRandIso</item>
+			<item>InfoSQ</item>
+			<item>InfoSchur</item>
+			<item>InfoSearchTable</item>
+			<item>InfoSpecPcgs</item>
+			<item>InfoTeaching</item>
+			<item>InfoText</item>
+			<item>InfoTiming</item>
+			<item>InfoTom</item>
+			<item>InfoTransversal</item>
+			<item>InfoTuples</item>
+			<item>InfoWarning</item>
+			<item>InfoZLattice</item>
+			<item>InitAbsAndIrredModules</item>
+			<item>InitEpimorphismSQ</item>
+			<item>InitFusion</item>
+			<item>InitPowerMap</item>
+			<item>InitialiseCentralRelations</item>
+			<item>InitializePackagesInfoRecords</item>
+			<item>InitializeSchreierTree</item>
+			<item>Injection</item>
+			<item>InjectionZeroMagma</item>
+			<item>InnerAutomorphism</item>
+			<item>InnerAutomorphismNC</item>
+			<item>InnerAutomorphismsAutomorphismGroup</item>
+			<item>InnerSubdirectProducts</item>
+			<item>InputLogTo</item>
+			<item>InputOutputLocalProcess</item>
+			<item>InputOutputStreamByPtyDefaultType</item>
+			<item>InputTextFile</item>
+			<item>InputTextFileStillOpen</item>
+			<item>InputTextFileType</item>
+			<item>InputTextNone</item>
+			<item>InputTextNoneType</item>
+			<item>InputTextString</item>
+			<item>InputTextStringType</item>
+			<item>InputTextUser</item>
+			<item>Insert</item>
+			<item>InsertElmList</item>
+			<item>InsertTrivialStabilizer</item>
+			<item>InstallAccessToGenerators</item>
+			<item>InstallAtExit</item>
+			<item>InstallAttributeFunction</item>
+			<item>InstallAttributeMethodByGroupGeneralMappingByImages</item>
+			<item>InstallCharReadHookFunc</item>
+			<item>InstallEqMethodForMappingsFromGenerators</item>
+			<item>InstallFactorMaintenance</item>
+			<item>InstallFlushableValue</item>
+			<item>InstallGlobalFunction</item>
+			<item>InstallHandlingByNiceBasis</item>
+			<item>InstallHiddenTrueMethod</item>
+			<item>InstallImmediateMethod</item>
+			<item>InstallIsomorphismMaintenance</item>
+			<item>InstallIsomorphismMaintenanceFunction</item>
+			<item>InstallMethod</item>
+			<item>InstallMonomialOrdering</item>
+			<item>InstallOtherMethod</item>
+			<item>InstallPcgsSeriesFromIndices</item>
+			<item>InstallSubsetMaintenance</item>
+			<item>InstallTrueMethod</item>
+			<item>InstallTrueMethodNewFilter</item>
+			<item>InstallValue</item>
+			<item>InstalledPackageVersion</item>
+			<item>Int</item>
+			<item>IntFFE</item>
+			<item>IntFFESymm</item>
+			<item>IntHexString</item>
+			<item>IntScalarProducts</item>
+			<item>IntVecFFE</item>
+			<item>Integers</item>
+			<item>IntegralizedMat</item>
+			<item>IntegratedStraightLineProgram</item>
+			<item>IntermediateGroup</item>
+			<item>IntermediateSubgroups</item>
+			<item>InternalRepresentative</item>
+			<item>InterpolatedPolynomial</item>
+			<item>IntersectBlist</item>
+			<item>IntersectSet</item>
+			<item>Intersection</item>
+			<item>IntersectionBlist</item>
+			<item>IntersectionNormalClosurePermGroup</item>
+			<item>IntersectionSet</item>
+			<item>IntersectionSumPcgs</item>
+			<item>IntersectionsTom</item>
+			<item>InvariantBilinearForm</item>
+			<item>InvariantElementaryAbelianSeries</item>
+			<item>InvariantForm</item>
+			<item>InvariantLattice</item>
+			<item>InvariantQuadraticForm</item>
+			<item>InvariantSesquilinearForm</item>
+			<item>InvariantSubgroupsElementaryAbelianGroup</item>
+			<item>InvariantSubspaceOrCyclicGroup</item>
+			<item>InvariantSubspaceOrUniformCyclicPGroup</item>
+			<item>Inverse</item>
+			<item>InverseAsWord</item>
+			<item>InverseAttr</item>
+			<item>InverseClasses</item>
+			<item>InverseGeneralMapping</item>
+			<item>InverseImmutable</item>
+			<item>InverseMap</item>
+			<item>InverseMatMod</item>
+			<item>InverseMutable</item>
+			<item>InverseOp</item>
+			<item>InversePcgs</item>
+			<item>InverseRepresentative</item>
+			<item>InverseRepresentativeWord</item>
+			<item>InverseSLPElm</item>
+			<item>InverseSM</item>
+			<item>InverseSameMutability</item>
+			<item>Irr</item>
+			<item>IrrBaumClausen</item>
+			<item>IrrConlon</item>
+			<item>IrrDixonSchneider</item>
+			<item>IrrFacsPol</item>
+			<item>IrredSolGroupList</item>
+			<item>IrredSolJSGens</item>
+			<item>IrreducibleDifferences</item>
+			<item>IrreducibleModules</item>
+			<item>IrreducibleRepresentations</item>
+			<item>IrreducibleRepresentationsByBaumClausen</item>
+			<item>IrreducibleRepresentationsDixon</item>
+			<item>IrreducibleSolvableGroup</item>
+			<item>IrreducibleSolvableGroupMS</item>
+			<item>IsANFAutomorphism</item>
+			<item>IsANFAutomorphismRep</item>
+			<item>IsAbelian</item>
+			<item>IsAbelianNumberField</item>
+			<item>IsAbelianNumberFieldPolynomialRing</item>
+			<item>IsAbelianTom</item>
+			<item>IsActionHomomorphism</item>
+			<item>IsActionHomomorphismAutomGroup</item>
+			<item>IsActionHomomorphismByActors</item>
+			<item>IsActionHomomorphismByBase</item>
+			<item>IsActionHomomorphismSubset</item>
+			<item>IsAdditiveCoset</item>
+			<item>IsAdditiveCosetDefaultRep</item>
+			<item>IsAdditiveElement</item>
+			<item>IsAdditiveElementAsMultiplicativeElementRep</item>
+			<item>IsAdditiveElementCollColl</item>
+			<item>IsAdditiveElementCollCollColl</item>
+			<item>IsAdditiveElementCollection</item>
+			<item>IsAdditiveElementList</item>
+			<item>IsAdditiveElementTable</item>
+			<item>IsAdditiveElementWithInverse</item>
+			<item>IsAdditiveElementWithInverseCollColl</item>
+			<item>IsAdditiveElementWithInverseCollCollColl</item>
+			<item>IsAdditiveElementWithInverseCollection</item>
+			<item>IsAdditiveElementWithInverseList</item>
+			<item>IsAdditiveElementWithInverseTable</item>
+			<item>IsAdditiveElementWithZero</item>
+			<item>IsAdditiveElementWithZeroCollColl</item>
+			<item>IsAdditiveElementWithZeroCollCollColl</item>
+			<item>IsAdditiveElementWithZeroCollection</item>
+			<item>IsAdditiveElementWithZeroList</item>
+			<item>IsAdditiveElementWithZeroTable</item>
+			<item>IsAdditiveGroup</item>
+			<item>IsAdditiveGroupGeneralMapping</item>
+			<item>IsAdditiveGroupHomomorphism</item>
+			<item>IsAdditiveGroupToGroupGeneralMapping</item>
+			<item>IsAdditiveGroupToGroupHomomorphism</item>
+			<item>IsAdditiveMagma</item>
+			<item>IsAdditiveMagmaWithInverses</item>
+			<item>IsAdditiveMagmaWithZero</item>
+			<item>IsAdditivelyCommutative</item>
+			<item>IsAdditivelyCommutativeElement</item>
+			<item>IsAdditivelyCommutativeElementCollColl</item>
+			<item>IsAdditivelyCommutativeElementCollection</item>
+			<item>IsAdditivelyCommutativeElementFamily</item>
+			<item>IsAlgBFRep</item>
+			<item>IsAlgExtRep</item>
+			<item>IsAlgebra</item>
+			<item>IsAlgebraGeneralMapping</item>
+			<item>IsAlgebraGeneralMappingByImagesDefaultRep</item>
+			<item>IsAlgebraHomomorphism</item>
+			<item>IsAlgebraHomomorphismFromFpRep</item>
+			<item>IsAlgebraModule</item>
+			<item>IsAlgebraModuleElement</item>
+			<item>IsAlgebraModuleElementCollection</item>
+			<item>IsAlgebraModuleElementFamily</item>
+			<item>IsAlgebraWithOne</item>
+			<item>IsAlgebraWithOneGeneralMapping</item>
+			<item>IsAlgebraWithOneHomomorphism</item>
+			<item>IsAlgebraicElement</item>
+			<item>IsAlgebraicElementCollColl</item>
+			<item>IsAlgebraicElementCollCollColl</item>
+			<item>IsAlgebraicElementCollection</item>
+			<item>IsAlgebraicElementFamily</item>
+			<item>IsAlgebraicExtension</item>
+			<item>IsAlgebraicExtensionDefaultRep</item>
+			<item>IsAlgebraicExtensionPolynomialRing</item>
+			<item>IsAlphaChar</item>
+			<item>IsAlternatingGroup</item>
+			<item>IsAnticommutative</item>
+			<item>IsAntisymmetricBinaryRelation</item>
+			<item>IsAssocWord</item>
+			<item>IsAssocWordCollection</item>
+			<item>IsAssocWordFamily</item>
+			<item>IsAssocWordWithInverse</item>
+			<item>IsAssocWordWithInverseCollection</item>
+			<item>IsAssocWordWithInverseFamily</item>
+			<item>IsAssocWordWithOne</item>
+			<item>IsAssocWordWithOneCollection</item>
+			<item>IsAssocWordWithOneFamily</item>
+			<item>IsAssociated</item>
+			<item>IsAssociative</item>
+			<item>IsAssociativeAOpDSum</item>
+			<item>IsAssociativeAOpESum</item>
+			<item>IsAssociativeElement</item>
+			<item>IsAssociativeElementCollColl</item>
+			<item>IsAssociativeElementCollection</item>
+			<item>IsAssociativeLOpDProd</item>
+			<item>IsAssociativeLOpEProd</item>
+			<item>IsAssociativeROpDProd</item>
+			<item>IsAssociativeROpEProd</item>
+			<item>IsAssociativeUOpDProd</item>
+			<item>IsAssociativeUOpEProd</item>
+			<item>IsAttributeStoringRep</item>
+			<item>IsAttributeStoringRepFlags</item>
+			<item>IsAutomorphismGroup</item>
+			<item>IsBLetterAssocWordRep</item>
+			<item>IsBLetterWordsFamily</item>
+			<item>IsBasicImageEltRep</item>
+			<item>IsBasicImageEltRepCollection</item>
+			<item>IsBasicImageGroup</item>
+			<item>IsBasicWreathLessThanOrEqual</item>
+			<item>IsBasicWreathProductOrdering</item>
+			<item>IsBasis</item>
+			<item>IsBasisByNiceBasis</item>
+			<item>IsBasisFiniteFieldRep</item>
+			<item>IsBasisOfAlgebraModuleElementSpace</item>
+			<item>IsBasisOfMonomialSpaceRep</item>
+			<item>IsBasisOfSparseRowSpaceRep</item>
+			<item>IsBasisOfWeightRepElementSpace</item>
+			<item>IsBasisWithReplacedLeftModuleRep</item>
+			<item>IsBergerCondition</item>
+			<item>IsBijective</item>
+			<item>IsBinaryRelation</item>
+			<item>IsBinaryRelationDefaultRep</item>
+			<item>IsBinaryRelationOnPointsRep</item>
+			<item>IsBlist</item>
+			<item>IsBlistRep</item>
+			<item>IsBlockMatrixRep</item>
+			<item>IsBlocksHomomorphism</item>
+			<item>IsBlocksOfActionHomomorphism</item>
+			<item>IsBlowUpIsomorphism</item>
+			<item>IsBool</item>
+			<item>IsBound</item>
+			<item>IsBoundElmWPObj</item>
+			<item>IsBoundGlobal</item>
+			<item>IsBracketRep</item>
+			<item>IsBrauerTable</item>
+			<item>IsBravaisGroup</item>
+			<item>IsBuiltFromAdditiveMagmaWithInverses</item>
+			<item>IsBuiltFromGroup</item>
+			<item>IsBuiltFromMagma</item>
+			<item>IsBuiltFromMagmaWithInverses</item>
+			<item>IsBuiltFromMagmaWithOne</item>
+			<item>IsBuiltFromMonoid</item>
+			<item>IsBuiltFromSemigroup</item>
+			<item>IsCanonicalBasis</item>
+			<item>IsCanonicalBasisAbelianNumberFieldRep</item>
+			<item>IsCanonicalBasisAlgebraicExtension</item>
+			<item>IsCanonicalBasisCyclotomicFieldRep</item>
+			<item>IsCanonicalBasisFreeMagmaRingRep</item>
+			<item>IsCanonicalBasisFullMatrixModule</item>
+			<item>IsCanonicalBasisFullRowModule</item>
+			<item>IsCanonicalBasisFullSCAlgebra</item>
+			<item>IsCanonicalBasisGaussianIntegersRep</item>
+			<item>IsCanonicalBasisIntegersRep</item>
+			<item>IsCanonicalBasisRationals</item>
+			<item>IsCanonicalNiceMonomorphism</item>
+			<item>IsCanonicalPcgs</item>
+			<item>IsCanonicalPcgsWrtSpecialPcgs</item>
+			<item>IsCentral</item>
+			<item>IsCentralFromGenerators</item>
+			<item>IsChainTypeGroup</item>
+			<item>IsChar</item>
+			<item>IsCharCollection</item>
+			<item>IsCharacter</item>
+			<item>IsCharacterTable</item>
+			<item>IsCharacterTableInProgress</item>
+			<item>IsCharacteristicMatrixPGroup</item>
+			<item>IsCharacteristicSubgroup</item>
+			<item>IsCheapConwayPolynomial</item>
+			<item>IsClassFunction</item>
+			<item>IsClassFunctionsSpace</item>
+			<item>IsClassFusionOfNormalSubgroup</item>
+			<item>IsClosedStream</item>
+			<item>IsCochain</item>
+			<item>IsCochainCollection</item>
+			<item>IsCochainsSpace</item>
+			<item>IsCocycle</item>
+			<item>IsCoeffsElms</item>
+			<item>IsCollCollsElms</item>
+			<item>IsCollCollsElmsElms</item>
+			<item>IsCollCollsElmsElmsX</item>
+			<item>IsCollLieCollsElms</item>
+			<item>IsCollection</item>
+			<item>IsCollectionFamily</item>
+			<item>IsCollsCollsElms</item>
+			<item>IsCollsCollsElmsX</item>
+			<item>IsCollsCollsElmsXX</item>
+			<item>IsCollsElms</item>
+			<item>IsCollsElmsColls</item>
+			<item>IsCollsElmsElms</item>
+			<item>IsCollsElmsElmsElms</item>
+			<item>IsCollsElmsElmsX</item>
+			<item>IsCollsElmsX</item>
+			<item>IsCollsElmsXElms</item>
+			<item>IsCollsElmsXX</item>
+			<item>IsCollsXElms</item>
+			<item>IsCollsXElmsX</item>
+			<item>IsCombinatorialCollectorRep</item>
+			<item>IsCommutative</item>
+			<item>IsCommutativeElement</item>
+			<item>IsCommutativeElementCollColl</item>
+			<item>IsCommutativeElementCollection</item>
+			<item>IsCommutativeFamily</item>
+			<item>IsCommutativeFromGenerators</item>
+			<item>IsCompatiblePair</item>
+			<item>IsComponentObjectRep</item>
+			<item>IsCompositionMappingRep</item>
+			<item>IsConfluent</item>
+			<item>IsCongruenceClass</item>
+			<item>IsConjugacyClassGroupRep</item>
+			<item>IsConjugacyClassPermGroupRep</item>
+			<item>IsConjugacyClassSubgroupsByStabilizerRep</item>
+			<item>IsConjugacyClassSubgroupsRep</item>
+			<item>IsConjugate</item>
+			<item>IsConjugatorAutomorphism</item>
+			<item>IsConjugatorIsomorphism</item>
+			<item>IsConsistentPolynomial</item>
+			<item>IsConstantRationalFunction</item>
+			<item>IsConstantTimeAccessGeneralMapping</item>
+			<item>IsConstantTimeAccessList</item>
+			<item>IsConstituentHomomorphism</item>
+			<item>IsContainedInSpan</item>
+			<item>IsCopyable</item>
+			<item>IsCyc</item>
+			<item>IsCycInt</item>
+			<item>IsCyclic</item>
+			<item>IsCyclicTom</item>
+			<item>IsCyclotomic</item>
+			<item>IsCyclotomicCollColl</item>
+			<item>IsCyclotomicCollCollColl</item>
+			<item>IsCyclotomicCollection</item>
+			<item>IsCyclotomicField</item>
+			<item>IsCyclotomicMatrixGroup</item>
+			<item>IsDataObjectRep</item>
+			<item>IsDeepThoughtCollectorRep</item>
+			<item>IsDefaultGeneralMappingRep</item>
+			<item>IsDefaultRhsTypeSingleCollector</item>
+			<item>IsDefaultTupleRep</item>
+			<item>IsDenseCoeffVectorRep</item>
+			<item>IsDenseHashRep</item>
+			<item>IsDenseList</item>
+			<item>IsDiagonalMat</item>
+			<item>IsDictionary</item>
+			<item>IsDictionaryDefaultRep</item>
+			<item>IsDigitChar</item>
+			<item>IsDihedralGroup</item>
+			<item>IsDirectSumElement</item>
+			<item>IsDirectSumElementCollection</item>
+			<item>IsDirectSumElementFamily</item>
+			<item>IsDirectSumElementsSpace</item>
+			<item>IsDirectory</item>
+			<item>IsDirectoryPath</item>
+			<item>IsDirectoryRep</item>
+			<item>IsDistributive</item>
+			<item>IsDistributiveLOpDProd</item>
+			<item>IsDistributiveLOpDSum</item>
+			<item>IsDistributiveLOpEProd</item>
+			<item>IsDistributiveLOpESum</item>
+			<item>IsDistributiveROpDProd</item>
+			<item>IsDistributiveROpDSum</item>
+			<item>IsDistributiveROpEProd</item>
+			<item>IsDistributiveROpESum</item>
+			<item>IsDistributiveUOpDProd</item>
+			<item>IsDistributiveUOpDSum</item>
+			<item>IsDistributiveUOpEProd</item>
+			<item>IsDistributiveUOpESum</item>
+			<item>IsDivisionRing</item>
+			<item>IsDocumentedVariable</item>
+			<item>IsDomain</item>
+			<item>IsDoneIterator</item>
+			<item>IsDoubleCoset</item>
+			<item>IsDoubleCosetDefaultRep</item>
+			<item>IsDuplicateFree</item>
+			<item>IsDuplicateFreeCollection</item>
+			<item>IsDuplicateFreeList</item>
+			<item>IsDxLargeGroup</item>
+			<item>IsElementFinitePolycyclicGroup</item>
+			<item>IsElementFinitePolycyclicGroupCollection</item>
+			<item>IsElementOfFpAlgebra</item>
+			<item>IsElementOfFpAlgebraCollection</item>
+			<item>IsElementOfFpAlgebraFamily</item>
+			<item>IsElementOfFpGroup</item>
+			<item>IsElementOfFpGroupCollection</item>
+			<item>IsElementOfFpGroupFamily</item>
+			<item>IsElementOfFpMonoid</item>
+			<item>IsElementOfFpMonoidCollection</item>
+			<item>IsElementOfFpMonoidFamily</item>
+			<item>IsElementOfFpSemigroup</item>
+			<item>IsElementOfFpSemigroupCollection</item>
+			<item>IsElementOfFpSemigroupFamily</item>
+			<item>IsElementOfFreeGroup</item>
+			<item>IsElementOfFreeGroupFamily</item>
+			<item>IsElementOfFreeMagmaRing</item>
+			<item>IsElementOfFreeMagmaRingCollection</item>
+			<item>IsElementOfFreeMagmaRingFamily</item>
+			<item>IsElementOfMagmaRingModuloRelations</item>
+			<item>IsElementOfMagmaRingModuloRelationsCollection</item>
+			<item>IsElementOfMagmaRingModuloRelationsFamily</item>
+			<item>IsElementOfMagmaRingModuloSpanOfZeroFamily</item>
+			<item>IsElementaryAbelian</item>
+			<item>IsElementsFamilyByRws</item>
+			<item>IsElmsCoeffs</item>
+			<item>IsElmsCollColls</item>
+			<item>IsElmsCollCollsX</item>
+			<item>IsElmsCollLieColls</item>
+			<item>IsElmsColls</item>
+			<item>IsElmsCollsX</item>
+			<item>IsElmsCollsXX</item>
+			<item>IsElmsLieColls</item>
+			<item>IsEmbeddingDirectProductPermGroup</item>
+			<item>IsEmbeddingImprimitiveWreathProductPermGroup</item>
+			<item>IsEmbeddingMagmaMagmaRing</item>
+			<item>IsEmbeddingProductActionWreathProductPermGroup</item>
+			<item>IsEmbeddingRingMagmaRing</item>
+			<item>IsEmbeddingWreathProductPermGroup</item>
+			<item>IsEmpty</item>
+			<item>IsEmptyRowVectorRep</item>
+			<item>IsEmptyString</item>
+			<item>IsEndOfStream</item>
+			<item>IsEndoGeneralMapping</item>
+			<item>IsEndoMapping</item>
+			<item>IsEnumeratorByFunctions</item>
+			<item>IsEnumeratorByFunctionsRep</item>
+			<item>IsEnumeratorByPcgsRep</item>
+			<item>IsEqualSet</item>
+			<item>IsEquivalenceClass</item>
+			<item>IsEquivalenceClassDefaultRep</item>
+			<item>IsEquivalenceRelation</item>
+			<item>IsEquivalenceRelationDefaultRep</item>
+			<item>IsEquivalentByFp</item>
+			<item>IsEuclideanRing</item>
+			<item>IsEvenInt</item>
+			<item>IsExecutableFile</item>
+			<item>IsExistingFile</item>
+			<item>IsExtAElement</item>
+			<item>IsExtAElementCollColl</item>
+			<item>IsExtAElementCollection</item>
+			<item>IsExtAElementList</item>
+			<item>IsExtAElementTable</item>
+			<item>IsExtASet</item>
+			<item>IsExtLElement</item>
+			<item>IsExtLElementCollColl</item>
+			<item>IsExtLElementCollection</item>
+			<item>IsExtLElementList</item>
+			<item>IsExtLElementTable</item>
+			<item>IsExtLSet</item>
+			<item>IsExtRElement</item>
+			<item>IsExtRElementCollColl</item>
+			<item>IsExtRElementCollection</item>
+			<item>IsExtRElementList</item>
+			<item>IsExtRElementTable</item>
+			<item>IsExtRSet</item>
+			<item>IsExtUSet</item>
+			<item>IsExtensibleGeneralMapping</item>
+			<item>IsExtensiblePartialMapping</item>
+			<item>IsExternalOrbit</item>
+			<item>IsExternalOrbitByStabilizerRep</item>
+			<item>IsExternalSet</item>
+			<item>IsExternalSetByActorsRep</item>
+			<item>IsExternalSetByOperatorsRep</item>
+			<item>IsExternalSetByPcgs</item>
+			<item>IsExternalSetDefaultRep</item>
+			<item>IsExternalSubset</item>
+			<item>IsFFE</item>
+			<item>IsFFECollColl</item>
+			<item>IsFFECollCollColl</item>
+			<item>IsFFECollection</item>
+			<item>IsFFEFamily</item>
+			<item>IsFFEMatrixGroup</item>
+			<item>IsFFEMatrixGroupOverLargeSpace</item>
+			<item>IsFLMLOR</item>
+			<item>IsFLMLORWithOne</item>
+			<item>IsFamFamFam</item>
+			<item>IsFamFamFamX</item>
+			<item>IsFamFamX</item>
+			<item>IsFamFamXY</item>
+			<item>IsFamLieFam</item>
+			<item>IsFamXFam</item>
+			<item>IsFamXFamY</item>
+			<item>IsFamXYFamZ</item>
+			<item>IsFamily</item>
+			<item>IsFamilyDefaultRep</item>
+			<item>IsFamilyElementOfFreeLieAlgebra</item>
+			<item>IsFamilyOfFamilies</item>
+			<item>IsFamilyOfTypes</item>
+			<item>IsFamilyOverFullCoefficientsFamily</item>
+			<item>IsFamilyPcgs</item>
+			<item>IsField</item>
+			<item>IsFieldControlledByGaloisGroup</item>
+			<item>IsFieldElementsSpace</item>
+			<item>IsFieldHomomorphism</item>
+			<item>IsFilter</item>
+			<item>IsFinite</item>
+			<item>IsFiniteBasisDefault</item>
+			<item>IsFiniteDimensional</item>
+			<item>IsFiniteFieldPolynomialRing</item>
+			<item>IsFiniteOrderElement</item>
+			<item>IsFiniteOrderElementCollColl</item>
+			<item>IsFiniteOrderElementCollection</item>
+			<item>IsFiniteOrdersPcgs</item>
+			<item>IsFiniteSemigroupGreensRelation</item>
+			<item>IsFinitelyGeneratedGroup</item>
+			<item>IsFixedStabilizer</item>
+			<item>IsFlatHashTable</item>
+			<item>IsFlexibleGeneralMapping</item>
+			<item>IsFlexiblePartialMapping</item>
+			<item>IsFpAlgebraElementsSpace</item>
+			<item>IsFpGroup</item>
+			<item>IsFpMonoid</item>
+			<item>IsFpSemigroup</item>
+			<item>IsFptoSCAMorphism</item>
+			<item>IsFrattiniFree</item>
+			<item>IsFreeGroup</item>
+			<item>IsFreeLeftModule</item>
+			<item>IsFreeMagma</item>
+			<item>IsFreeMagmaRing</item>
+			<item>IsFreeMagmaRingWithOne</item>
+			<item>IsFreeMonoid</item>
+			<item>IsFreeSemigroup</item>
+			<item>IsFrobeniusAutomorphism</item>
+			<item>IsFromFpGroupGeneralMapping</item>
+			<item>IsFromFpGroupGeneralMappingByImages</item>
+			<item>IsFromFpGroupHomomorphism</item>
+			<item>IsFromFpGroupHomomorphismByImages</item>
+			<item>IsFromFpGroupStdGensGeneralMappingByImages</item>
+			<item>IsFromFpGroupStdGensHomomorphismByImages</item>
+			<item>IsFullFpAlgebra</item>
+			<item>IsFullHomModule</item>
+			<item>IsFullMatrixModule</item>
+			<item>IsFullRowModule</item>
+			<item>IsFullSCAlgebra</item>
+			<item>IsFullSubgroupGLorSLRespectingBilinearForm</item>
+			<item>IsFullSubgroupGLorSLRespectingQuadraticForm</item>
+			<item>IsFullSubgroupGLorSLRespectingSesquilinearForm</item>
+			<item>IsFullTransformationSemigroup</item>
+			<item>IsFunction</item>
+			<item>IsGL</item>
+			<item>IsGaussInt</item>
+			<item>IsGaussRat</item>
+			<item>IsGaussianIntegers</item>
+			<item>IsGaussianMatrixSpace</item>
+			<item>IsGaussianRationals</item>
+			<item>IsGaussianRowSpace</item>
+			<item>IsGaussianSpace</item>
+			<item>IsGeneralLinearGroup</item>
+			<item>IsGeneralMapping</item>
+			<item>IsGeneralMappingCollection</item>
+			<item>IsGeneralMappingFamily</item>
+			<item>IsGeneralPcgs</item>
+			<item>IsGeneralizedCartanMatrix</item>
+			<item>IsGeneralizedDomain</item>
+			<item>IsGeneralizedRowVector</item>
+			<item>IsGeneratorsOfMagmaWithInverses</item>
+			<item>IsGenericCharacterTableRep</item>
+			<item>IsGenericFiniteSpace</item>
+			<item>IsGreensClass</item>
+			<item>IsGreensDClass</item>
+			<item>IsGreensDRelation</item>
+			<item>IsGreensHClass</item>
+			<item>IsGreensHRelation</item>
+			<item>IsGreensJClass</item>
+			<item>IsGreensJRelation</item>
+			<item>IsGreensLClass</item>
+			<item>IsGreensLRelation</item>
+			<item>IsGreensLessThanOrEqual</item>
+			<item>IsGreensRClass</item>
+			<item>IsGreensRRelation</item>
+			<item>IsGreensRelation</item>
+			<item>IsGroup</item>
+			<item>IsGroupGeneralMapping</item>
+			<item>IsGroupGeneralMappingByAsGroupGeneralMappingByImages</item>
+			<item>IsGroupGeneralMappingByImages</item>
+			<item>IsGroupGeneralMappingByPcgs</item>
+			<item>IsGroupHClass</item>
+			<item>IsGroupHomomorphism</item>
+			<item>IsGroupOfAutomorphisms</item>
+			<item>IsGroupOfAutomorphismsFiniteGroup</item>
+			<item>IsGroupOfFamily</item>
+			<item>IsGroupRing</item>
+			<item>IsGroupToAdditiveGroupGeneralMapping</item>
+			<item>IsGroupToAdditiveGroupHomomorphism</item>
+			<item>IsHandledByNiceBasis</item>
+			<item>IsHandledByNiceMonomorphism</item>
+			<item>IsHash</item>
+			<item>IsHashTable</item>
+			<item>IsHasseDiagram</item>
+			<item>IsHomCoset</item>
+			<item>IsHomCosetCollection</item>
+			<item>IsHomCosetOfAdditiveElt</item>
+			<item>IsHomCosetOfFp</item>
+			<item>IsHomCosetOfMatrix</item>
+			<item>IsHomCosetOfPerm</item>
+			<item>IsHomCosetOfTuple</item>
+			<item>IsHomCosetToAdditiveElt</item>
+			<item>IsHomCosetToAdditiveEltCollection</item>
+			<item>IsHomCosetToAdditiveEltRep</item>
+			<item>IsHomCosetToFp</item>
+			<item>IsHomCosetToFpCollection</item>
+			<item>IsHomCosetToFpRep</item>
+			<item>IsHomCosetToMatrix</item>
+			<item>IsHomCosetToMatrixCollection</item>
+			<item>IsHomCosetToMatrixRep</item>
+			<item>IsHomCosetToObjectRep</item>
+			<item>IsHomCosetToPerm</item>
+			<item>IsHomCosetToPermCollection</item>
+			<item>IsHomCosetToPermRep</item>
+			<item>IsHomCosetToTuple</item>
+			<item>IsHomCosetToTupleCollection</item>
+			<item>IsHomCosetToTupleRep</item>
+			<item>IsHomQuotientGroup</item>
+			<item>IsHomogeneousList</item>
+			<item>IsIdeal</item>
+			<item>IsIdealInParent</item>
+			<item>IsIdealOp</item>
+			<item>IsIdempotent</item>
+			<item>IsIdenticalObj</item>
+			<item>IsIdenticalObjFamiliesColObjObj</item>
+			<item>IsIdenticalObjFamiliesColObjObjObj</item>
+			<item>IsIdenticalObjFamiliesColXXXObj</item>
+			<item>IsIdenticalObjFamiliesColXXXXXXObj</item>
+			<item>IsIdenticalObjFamiliesRwsObj</item>
+			<item>IsIdenticalObjFamiliesRwsObjObj</item>
+			<item>IsIdenticalObjFamiliesRwsObjXXX</item>
+			<item>IsIdenticalObjObjObjX</item>
+			<item>IsIdenticalObjObjXObj</item>
+			<item>IsImfMatrixGroup</item>
+			<item>IsImpossible</item>
+			<item>IsInBasicOrbit</item>
+			<item>IsInCenter</item>
+			<item>IsInCentre</item>
+			<item>IsInChain</item>
+			<item>IsIncomparableUnder</item>
+			<item>IsInducedFromNormalSubgroup</item>
+			<item>IsInducedPcgs</item>
+			<item>IsInducedPcgsRep</item>
+			<item>IsInducedPcgsWrtSpecialPcgs</item>
+			<item>IsInfBitsAssocWord</item>
+			<item>IsInfBitsFamily</item>
+			<item>IsInfiniteListOfGeneratorsRep</item>
+			<item>IsInfiniteListOfNamesRep</item>
+			<item>IsInfinity</item>
+			<item>IsInfoClass</item>
+			<item>IsInfoClassCollection</item>
+			<item>IsInfoClassListRep</item>
+			<item>IsInfoSelector</item>
+			<item>IsInjective</item>
+			<item>IsInnerAutomorphism</item>
+			<item>IsInputOutputStream</item>
+			<item>IsInputOutputStreamByPtyRep</item>
+			<item>IsInputStream</item>
+			<item>IsInputTextFileRep</item>
+			<item>IsInputTextNone</item>
+			<item>IsInputTextNoneRep</item>
+			<item>IsInputTextStream</item>
+			<item>IsInputTextStringRep</item>
+			<item>IsInt</item>
+			<item>IsIntegerMatrixGroup</item>
+			<item>IsIntegers</item>
+			<item>IsIntegralBasis</item>
+			<item>IsIntegralCyclotomic</item>
+			<item>IsIntegralRing</item>
+			<item>IsInternalRep</item>
+			<item>IsInternallyConsistent</item>
+			<item>IsInverseGeneralMappingRep</item>
+			<item>IsIrreducible</item>
+			<item>IsIrreducibleCharacter</item>
+			<item>IsIrreducibleRingElement</item>
+			<item>IsIterator</item>
+			<item>IsIteratorByFunctions</item>
+			<item>IsIteratorByFunctionsRep</item>
+			<item>IsJacobianElement</item>
+			<item>IsJacobianElementCollColl</item>
+			<item>IsJacobianElementCollection</item>
+			<item>IsJacobianRing</item>
+			<item>IsKernelPcWord</item>
+			<item>IsKnuthBendixRewritingSystem</item>
+			<item>IsKnuthBendixRewritingSystemRep</item>
+			<item>IsLDistributive</item>
+			<item>IsLatticeOrderBinaryRelation</item>
+			<item>IsLatticeSubgroupsRep</item>
+			<item>IsLaurentPolynomial</item>
+			<item>IsLaurentPolynomialDefaultRep</item>
+			<item>IsLaurentPolynomialsFamily</item>
+			<item>IsLaurentPolynomialsFamilyElement</item>
+			<item>IsLeftActedOnByDivisionRing</item>
+			<item>IsLeftActedOnByRing</item>
+			<item>IsLeftActedOnBySuperset</item>
+			<item>IsLeftAlgebraModule</item>
+			<item>IsLeftAlgebraModuleElement</item>
+			<item>IsLeftAlgebraModuleElementCollection</item>
+			<item>IsLeftIdeal</item>
+			<item>IsLeftIdealFromGenerators</item>
+			<item>IsLeftIdealInParent</item>
+			<item>IsLeftIdealOp</item>
+			<item>IsLeftMagmaCongruence</item>
+			<item>IsLeftMagmaIdeal</item>
+			<item>IsLeftModule</item>
+			<item>IsLeftModuleGeneralMapping</item>
+			<item>IsLeftModuleHomomorphism</item>
+			<item>IsLeftOperatorAdditiveGroup</item>
+			<item>IsLeftOperatorRing</item>
+			<item>IsLeftOperatorRingWithOne</item>
+			<item>IsLeftSemigroupCongruence</item>
+			<item>IsLeftSemigroupIdeal</item>
+			<item>IsLeftVectorSpace</item>
+			<item>IsLessThanOrEqualUnder</item>
+			<item>IsLessThanUnder</item>
+			<item>IsLetterAssocWordRep</item>
+			<item>IsLetterWordsFamily</item>
+			<item>IsLexicographicallyLess</item>
+			<item>IsLibTomRep</item>
+			<item>IsLibraryCharacterTableRep</item>
+			<item>IsLieAbelian</item>
+			<item>IsLieAlgebra</item>
+			<item>IsLieEmbeddingRep</item>
+			<item>IsLieFamFam</item>
+			<item>IsLieMatrix</item>
+			<item>IsLieNilpotent</item>
+			<item>IsLieNilpotentElement</item>
+			<item>IsLieObject</item>
+			<item>IsLieObjectCollection</item>
+			<item>IsLieObjectsModule</item>
+			<item>IsLieSolvable</item>
+			<item>IsLinearActionHomomorphism</item>
+			<item>IsLinearGeneralMappingByImagesDefaultRep</item>
+			<item>IsLinearMapping</item>
+			<item>IsLinearMappingByMatrixDefaultRep</item>
+			<item>IsLinearMappingsModule</item>
+			<item>IsLinearlyIndependent</item>
+			<item>IsLinearlyPrimitive</item>
+			<item>IsList</item>
+			<item>IsListDefault</item>
+			<item>IsListDictionary</item>
+			<item>IsListHashTable</item>
+			<item>IsListLookupDictionary</item>
+			<item>IsListOrCollection</item>
+			<item>IsLockedRepresentationVector</item>
+			<item>IsLookupDictionary</item>
+			<item>IsLowerAlphaChar</item>
+			<item>IsLowerTriangularMat</item>
+			<item>IsMagma</item>
+			<item>IsMagmaByMultiplicationTableObj</item>
+			<item>IsMagmaCollsMagmaRingColls</item>
+			<item>IsMagmaCongruence</item>
+			<item>IsMagmaHomomorphism</item>
+			<item>IsMagmaIdeal</item>
+			<item>IsMagmaRingModuloRelations</item>
+			<item>IsMagmaRingModuloSpanOfZero</item>
+			<item>IsMagmaRingObjDefaultRep</item>
+			<item>IsMagmaRingsMagmas</item>
+			<item>IsMagmaRingsRings</item>
+			<item>IsMagmaWithInverses</item>
+			<item>IsMagmaWithInversesIfNonzero</item>
+			<item>IsMagmaWithMultiplicativeZeroAdjoinedElementRep</item>
+			<item>IsMagmaWithOne</item>
+			<item>IsMagmasMagmaRings</item>
+			<item>IsMapping</item>
+			<item>IsMappingByFunctionRep</item>
+			<item>IsMappingByFunctionWithInverseRep</item>
+			<item>IsMatchingSublist</item>
+			<item>IsMatrix</item>
+			<item>IsMatrixCollection</item>
+			<item>IsMatrixFLMLOR</item>
+			<item>IsMatrixGroup</item>
+			<item>IsMatrixModule</item>
+			<item>IsMatrixSpace</item>
+			<item>IsMemberPcSeriesPermGroup</item>
+			<item>IsMinimalNonmonomial</item>
+			<item>IsModuloPcgs</item>
+			<item>IsModuloPcgsFpGroupRep</item>
+			<item>IsModuloPcgsPermGroupRep</item>
+			<item>IsModuloPcgsRep</item>
+			<item>IsModuloTailPcgsByListRep</item>
+			<item>IsModuloTailPcgsRep</item>
+			<item>IsModulusRep</item>
+			<item>IsMonoid</item>
+			<item>IsMonomial</item>
+			<item>IsMonomialCharacter</item>
+			<item>IsMonomialCharacterTable</item>
+			<item>IsMonomialElement</item>
+			<item>IsMonomialElementCollection</item>
+			<item>IsMonomialElementFamily</item>
+			<item>IsMonomialElementRep</item>
+			<item>IsMonomialGroup</item>
+			<item>IsMonomialMatrix</item>
+			<item>IsMonomialNumber</item>
+			<item>IsMonomialOrdering</item>
+			<item>IsMonomialOrderingDefaultRep</item>
+			<item>IsMultiplicativeElement</item>
+			<item>IsMultiplicativeElementCollColl</item>
+			<item>IsMultiplicativeElementCollCollColl</item>
+			<item>IsMultiplicativeElementCollection</item>
+			<item>IsMultiplicativeElementList</item>
+			<item>IsMultiplicativeElementTable</item>
+			<item>IsMultiplicativeElementWithInverse</item>
+			<item>IsMultiplicativeElementWithInverseByPolycyclicCollector</item>
+			<item>IsMultiplicativeElementWithInverseByPolycyclicCollectorCollection</item>
+			<item>IsMultiplicativeElementWithInverseByRws</item>
+			<item>IsMultiplicativeElementWithInverseCollColl</item>
+			<item>IsMultiplicativeElementWithInverseCollCollColl</item>
+			<item>IsMultiplicativeElementWithInverseCollection</item>
+			<item>IsMultiplicativeElementWithInverseList</item>
+			<item>IsMultiplicativeElementWithInverseTable</item>
+			<item>IsMultiplicativeElementWithOne</item>
+			<item>IsMultiplicativeElementWithOneCollColl</item>
+			<item>IsMultiplicativeElementWithOneCollCollColl</item>
+			<item>IsMultiplicativeElementWithOneCollection</item>
+			<item>IsMultiplicativeElementWithOneList</item>
+			<item>IsMultiplicativeElementWithOneTable</item>
+			<item>IsMultiplicativeElementWithZero</item>
+			<item>IsMultiplicativeElementWithZeroCollection</item>
+			<item>IsMultiplicativeGeneralizedRowVector</item>
+			<item>IsMultiplicativeZero</item>
+			<item>IsMutable</item>
+			<item>IsMutableBasis</item>
+			<item>IsMutableBasisByImmutableBasisRep</item>
+			<item>IsMutableBasisOfGaussianMatrixSpaceRep</item>
+			<item>IsMutableBasisOfGaussianRowSpaceRep</item>
+			<item>IsMutableBasisViaNiceMutableBasisRep</item>
+			<item>IsMutableBasisViaUnderlyingMutableBasisRep</item>
+			<item>IsNBitsPcWordRep</item>
+			<item>IsNameOfNoninstalledTableOfMarks</item>
+			<item>IsNaturalAlternatingGroup</item>
+			<item>IsNaturalGL</item>
+			<item>IsNaturalGLnZ</item>
+			<item>IsNaturalHomomorphismPcGroupRep</item>
+			<item>IsNaturalSL</item>
+			<item>IsNaturalSLnZ</item>
+			<item>IsNaturalSymmetricGroup</item>
+			<item>IsNearAdditiveElement</item>
+			<item>IsNearAdditiveElementCollColl</item>
+			<item>IsNearAdditiveElementCollCollColl</item>
+			<item>IsNearAdditiveElementCollection</item>
+			<item>IsNearAdditiveElementList</item>
+			<item>IsNearAdditiveElementTable</item>
+			<item>IsNearAdditiveElementWithInverse</item>
+			<item>IsNearAdditiveElementWithInverseCollColl</item>
+			<item>IsNearAdditiveElementWithInverseCollCollColl</item>
+			<item>IsNearAdditiveElementWithInverseCollection</item>
+			<item>IsNearAdditiveElementWithInverseList</item>
+			<item>IsNearAdditiveElementWithInverseTable</item>
+			<item>IsNearAdditiveElementWithZero</item>
+			<item>IsNearAdditiveElementWithZeroCollColl</item>
+			<item>IsNearAdditiveElementWithZeroCollCollColl</item>
+			<item>IsNearAdditiveElementWithZeroCollection</item>
+			<item>IsNearAdditiveElementWithZeroList</item>
+			<item>IsNearAdditiveElementWithZeroTable</item>
+			<item>IsNearAdditiveGroup</item>
+			<item>IsNearAdditiveMagma</item>
+			<item>IsNearAdditiveMagmaWithInverses</item>
+			<item>IsNearAdditiveMagmaWithZero</item>
+			<item>IsNearRing</item>
+			<item>IsNearRingElement</item>
+			<item>IsNearRingElementCollColl</item>
+			<item>IsNearRingElementCollCollColl</item>
+			<item>IsNearRingElementCollection</item>
+			<item>IsNearRingElementFamily</item>
+			<item>IsNearRingElementList</item>
+			<item>IsNearRingElementTable</item>
+			<item>IsNearRingElementWithInverse</item>
+			<item>IsNearRingElementWithInverseCollColl</item>
+			<item>IsNearRingElementWithInverseCollCollColl</item>
+			<item>IsNearRingElementWithInverseCollection</item>
+			<item>IsNearRingElementWithInverseList</item>
+			<item>IsNearRingElementWithInverseTable</item>
+			<item>IsNearRingElementWithOne</item>
+			<item>IsNearRingElementWithOneCollColl</item>
+			<item>IsNearRingElementWithOneCollCollColl</item>
+			<item>IsNearRingElementWithOneCollection</item>
+			<item>IsNearRingElementWithOneList</item>
+			<item>IsNearRingElementWithOneTable</item>
+			<item>IsNearRingWithOne</item>
+			<item>IsNearlyCharacterTable</item>
+			<item>IsNegInt</item>
+			<item>IsNegRat</item>
+			<item>IsNiceMonomorphism</item>
+			<item>IsNilpQuotientSystem</item>
+			<item>IsNilpotent</item>
+			<item>IsNilpotentCharacterTable</item>
+			<item>IsNilpotentElement</item>
+			<item>IsNilpotentGroup</item>
+			<item>IsNilpotentTom</item>
+			<item>IsNoImmediateMethodsObject</item>
+			<item>IsNonGaussianMatrixSpace</item>
+			<item>IsNonGaussianRowSpace</item>
+			<item>IsNonSPGeneralMapping</item>
+			<item>IsNonSPMappingByFunctionRep</item>
+			<item>IsNonSPMappingByFunctionWithInverseRep</item>
+			<item>IsNonTrivial</item>
+			<item>IsNonassocWord</item>
+			<item>IsNonassocWordCollection</item>
+			<item>IsNonassocWordFamily</item>
+			<item>IsNonassocWordWithOne</item>
+			<item>IsNonassocWordWithOneCollection</item>
+			<item>IsNonassocWordWithOneFamily</item>
+			<item>IsNoncharacteristicMatrixPGroup</item>
+			<item>IsNonnegativeIntegers</item>
+			<item>IsNormal</item>
+			<item>IsNormalBasis</item>
+			<item>IsNormalForm</item>
+			<item>IsNormalInParent</item>
+			<item>IsNormalOp</item>
+			<item>IsNotElmsColls</item>
+			<item>IsNotIdenticalObj</item>
+			<item>IsNullMapMatrix</item>
+			<item>IsNumberField</item>
+			<item>IsNumeratorParentForExponentsRep</item>
+			<item>IsNumeratorParentPcgsFamilyPcgs</item>
+			<item>IsObjToBePrinted</item>
+			<item>IsObject</item>
+			<item>IsOddAdditiveNestingDepthFamily</item>
+			<item>IsOddAdditiveNestingDepthObject</item>
+			<item>IsOddInt</item>
+			<item>IsOne</item>
+			<item>IsOperation</item>
+			<item>IsOperationAlgebraHomomorphismDefaultRep</item>
+			<item>IsOrdering</item>
+			<item>IsOrderingOnFamilyOfAssocWords</item>
+			<item>IsOrdinaryMatrix</item>
+			<item>IsOrdinaryMatrixCollection</item>
+			<item>IsOrdinaryTable</item>
+			<item>IsOutputStream</item>
+			<item>IsOutputTextFileRep</item>
+			<item>IsOutputTextNone</item>
+			<item>IsOutputTextNoneRep</item>
+			<item>IsOutputTextStream</item>
+			<item>IsOutputTextStringRep</item>
+			<item>IsPGroup</item>
+			<item>IsPNilpotent</item>
+			<item>IsPNilpotentOp</item>
+			<item>IsPQuotientSystem</item>
+			<item>IsPSL</item>
+			<item>IsPSolvable</item>
+			<item>IsPSolvableCharacterTable</item>
+			<item>IsPSolvableCharacterTableOp</item>
+			<item>IsPSolvableOp</item>
+			<item>IsPackedElementDefaultRep</item>
+			<item>IsPadicExtensionNumber</item>
+			<item>IsPadicExtensionNumberFamily</item>
+			<item>IsPadicNumber</item>
+			<item>IsPadicNumberCollColl</item>
+			<item>IsPadicNumberCollection</item>
+			<item>IsPadicNumberFamily</item>
+			<item>IsPadicNumberList</item>
+			<item>IsPadicNumberTable</item>
+			<item>IsParentPcgsFamilyPcgs</item>
+			<item>IsPartialOrderBinaryRelation</item>
+			<item>IsPartition</item>
+			<item>IsPcGroup</item>
+			<item>IsPcGroupGeneralMappingByImages</item>
+			<item>IsPcGroupHomomorphismByImages</item>
+			<item>IsPcgs</item>
+			<item>IsPcgsCentralSeries</item>
+			<item>IsPcgsChiefSeries</item>
+			<item>IsPcgsDefaultRep</item>
+			<item>IsPcgsElementaryAbelianSeries</item>
+			<item>IsPcgsFamily</item>
+			<item>IsPcgsPCentralSeriesPGroup</item>
+			<item>IsPcgsPermGroupRep</item>
+			<item>IsPcgsToPcgsGeneralMappingByImages</item>
+			<item>IsPcgsToPcgsHomomorphism</item>
+			<item>IsPerfect</item>
+			<item>IsPerfectCharacterTable</item>
+			<item>IsPerfectGroup</item>
+			<item>IsPerfectLibraryGroup</item>
+			<item>IsPerfectTom</item>
+			<item>IsPerm</item>
+			<item>IsPermCollColl</item>
+			<item>IsPermCollection</item>
+			<item>IsPermGroup</item>
+			<item>IsPermGroupGeneralMappingByImages</item>
+			<item>IsPermGroupHomomorphismByImages</item>
+			<item>IsPermOnEnumerator</item>
+			<item>IsPlistRep</item>
+			<item>IsPolycyclicCollector</item>
+			<item>IsPolycyclicGroup</item>
+			<item>IsPolynomial</item>
+			<item>IsPolynomialDefaultRep</item>
+			<item>IsPolynomialFunction</item>
+			<item>IsPolynomialFunctionCollection</item>
+			<item>IsPolynomialFunctionsFamily</item>
+			<item>IsPolynomialFunctionsFamilyElement</item>
+			<item>IsPolynomialRing</item>
+			<item>IsPolynomialRingIdeal</item>
+			<item>IsPosInt</item>
+			<item>IsPosRat</item>
+			<item>IsPositionDictionary</item>
+			<item>IsPositionLookupDictionary</item>
+			<item>IsPositionalObjectRep</item>
+			<item>IsPositionsList</item>
+			<item>IsPositiveIntegers</item>
+			<item>IsPowerCommutatorCollector</item>
+			<item>IsPowerConjugateCollector</item>
+			<item>IsPreOrderBinaryRelation</item>
+			<item>IsPreimagesByAsGroupGeneralMappingByImages</item>
+			<item>IsPresentation</item>
+			<item>IsPresentationDefaultRep</item>
+			<item>IsPrimGrpIterRep</item>
+			<item>IsPrime</item>
+			<item>IsPrimeField</item>
+			<item>IsPrimeInt</item>
+			<item>IsPrimeOrdersPcgs</item>
+			<item>IsPrimePowerInt</item>
+			<item>IsPrimitive</item>
+			<item>IsPrimitiveAffine</item>
+			<item>IsPrimitiveCharacter</item>
+			<item>IsPrimitiveMatrixGroup</item>
+			<item>IsPrimitivePolynomial</item>
+			<item>IsPrimitiveRootMod</item>
+			<item>IsProbablyPrimeInt</item>
+			<item>IsProbablyPrimeIntWithFail</item>
+			<item>IsProjectionDirectProductPermGroup</item>
+			<item>IsProjectionSubdirectProductPermGroup</item>
+			<item>IsPseudoCanonicalBasisFullHomModule</item>
+			<item>IsPurePadicNumber</item>
+			<item>IsPurePadicNumberFamily</item>
+			<item>IsQuasiDihedralGroup</item>
+			<item>IsQuasiPrimitive</item>
+			<item>IsQuaternion</item>
+			<item>IsQuaternionCollColl</item>
+			<item>IsQuaternionCollection</item>
+			<item>IsQuaternionGroup</item>
+			<item>IsQuickPositionList</item>
+			<item>IsQuotientSemigroup</item>
+			<item>IsQuotientSystem</item>
+			<item>IsQuotientToAdditiveGroup</item>
+			<item>IsQuotientToFpGroup</item>
+			<item>IsQuotientToMatrixGroup</item>
+			<item>IsQuotientToPermGroup</item>
+			<item>IsQuotientToTupleGroup</item>
+			<item>IsRDistributive</item>
+			<item>IsRange</item>
+			<item>IsRangeRep</item>
+			<item>IsRat</item>
+			<item>IsRationalClassGroupRep</item>
+			<item>IsRationalClassPermGroupRep</item>
+			<item>IsRationalFunction</item>
+			<item>IsRationalFunctionCollection</item>
+			<item>IsRationalFunctionDefaultRep</item>
+			<item>IsRationalFunctionOverField</item>
+			<item>IsRationalFunctionsFamily</item>
+			<item>IsRationalFunctionsFamilyElement</item>
+			<item>IsRationalMatrixGroup</item>
+			<item>IsRationals</item>
+			<item>IsRationalsPolynomialRing</item>
+			<item>IsReadOnlyGVar</item>
+			<item>IsReadOnlyGlobal</item>
+			<item>IsReadableFile</item>
+			<item>IsRecord</item>
+			<item>IsRecordCollColl</item>
+			<item>IsRecordCollection</item>
+			<item>IsRectangularTable</item>
+			<item>IsRectangularTablePlist</item>
+			<item>IsReduced</item>
+			<item>IsReducedConfluentRewritingSystem</item>
+			<item>IsReducedForm</item>
+			<item>IsReductionOrdering</item>
+			<item>IsReesCongruence</item>
+			<item>IsReesCongruenceSemigroup</item>
+			<item>IsReesMatrixSemigroup</item>
+			<item>IsReesMatrixSemigroupElement</item>
+			<item>IsReesMatrixSemigroupElementCollection</item>
+			<item>IsReesMatrixSemigroupElementRep</item>
+			<item>IsReesZeroMatrixSemigroup</item>
+			<item>IsReesZeroMatrixSemigroupElement</item>
+			<item>IsReesZeroMatrixSemigroupElementCollection</item>
+			<item>IsReflexiveBinaryRelation</item>
+			<item>IsRegular</item>
+			<item>IsRegularDClass</item>
+			<item>IsRegularSemigroup</item>
+			<item>IsRegularSemigroupElement</item>
+			<item>IsRelativeBasisDefaultRep</item>
+			<item>IsRelativelySM</item>
+			<item>IsRestrictedLieAlgebra</item>
+			<item>IsRewritingSystem</item>
+			<item>IsRightActedOnByDivisionRing</item>
+			<item>IsRightActedOnByRing</item>
+			<item>IsRightActedOnBySuperset</item>
+			<item>IsRightAlgebraModule</item>
+			<item>IsRightAlgebraModuleElement</item>
+			<item>IsRightAlgebraModuleElementCollection</item>
+			<item>IsRightCoset</item>
+			<item>IsRightCosetDefaultRep</item>
+			<item>IsRightIdeal</item>
+			<item>IsRightIdealFromGenerators</item>
+			<item>IsRightIdealInParent</item>
+			<item>IsRightIdealOp</item>
+			<item>IsRightMagmaCongruence</item>
+			<item>IsRightMagmaIdeal</item>
+			<item>IsRightModule</item>
+			<item>IsRightOperatorAdditiveGroup</item>
+			<item>IsRightSemigroupCongruence</item>
+			<item>IsRightSemigroupIdeal</item>
+			<item>IsRightTransversal</item>
+			<item>IsRightTransversalCollection</item>
+			<item>IsRightTransversalFpGroupRep</item>
+			<item>IsRightTransversalPcGroupRep</item>
+			<item>IsRightTransversalPermGroupRep</item>
+			<item>IsRightTransversalRep</item>
+			<item>IsRightTransversalViaCosetsRep</item>
+			<item>IsRing</item>
+			<item>IsRingCollsMagmaRingColls</item>
+			<item>IsRingElement</item>
+			<item>IsRingElementCollColl</item>
+			<item>IsRingElementCollCollColl</item>
+			<item>IsRingElementCollection</item>
+			<item>IsRingElementFamily</item>
+			<item>IsRingElementList</item>
+			<item>IsRingElementTable</item>
+			<item>IsRingElementWithInverse</item>
+			<item>IsRingElementWithInverseCollColl</item>
+			<item>IsRingElementWithInverseCollCollColl</item>
+			<item>IsRingElementWithInverseCollection</item>
+			<item>IsRingElementWithInverseList</item>
+			<item>IsRingElementWithInverseTable</item>
+			<item>IsRingElementWithOne</item>
+			<item>IsRingElementWithOneCollColl</item>
+			<item>IsRingElementWithOneCollCollColl</item>
+			<item>IsRingElementWithOneCollection</item>
+			<item>IsRingElementWithOneList</item>
+			<item>IsRingElementWithOneTable</item>
+			<item>IsRingGeneralMapping</item>
+			<item>IsRingHomomorphism</item>
+			<item>IsRingWithOne</item>
+			<item>IsRingWithOneGeneralMapping</item>
+			<item>IsRingWithOneHomomorphism</item>
+			<item>IsRingsMagmaRings</item>
+			<item>IsRootSystem</item>
+			<item>IsRootSystemFromLieAlgebra</item>
+			<item>IsRowModule</item>
+			<item>IsRowSpace</item>
+			<item>IsRowVector</item>
+			<item>IsSCAlgebraObj</item>
+			<item>IsSCAlgebraObjCollColl</item>
+			<item>IsSCAlgebraObjCollCollColl</item>
+			<item>IsSCAlgebraObjCollection</item>
+			<item>IsSCAlgebraObjFamily</item>
+			<item>IsSCAlgebraObjSpace</item>
+			<item>IsSL</item>
+			<item>IsSPGeneralMapping</item>
+			<item>IsSPMappingByFunctionRep</item>
+			<item>IsSPMappingByFunctionWithInverseRep</item>
+			<item>IsSSortedList</item>
+			<item>IsScalar</item>
+			<item>IsScalarCollColl</item>
+			<item>IsScalarCollection</item>
+			<item>IsScalarList</item>
+			<item>IsScalarTable</item>
+			<item>IsSearchTable</item>
+			<item>IsSemiEchelonBasisOfGaussianMatrixSpaceRep</item>
+			<item>IsSemiEchelonBasisOfGaussianRowSpaceRep</item>
+			<item>IsSemiEchelonized</item>
+			<item>IsSemiRegular</item>
+			<item>IsSemigroup</item>
+			<item>IsSemigroupCongruence</item>
+			<item>IsSemigroupIdeal</item>
+			<item>IsSemiring</item>
+			<item>IsSemiringWithOne</item>
+			<item>IsSemiringWithOneAndZero</item>
+			<item>IsSemiringWithZero</item>
+			<item>IsSet</item>
+			<item>IsShortLexLessThanOrEqual</item>
+			<item>IsShortLexOrdering</item>
+			<item>IsSimple</item>
+			<item>IsSimpleAlgebra</item>
+			<item>IsSimpleCharacterTable</item>
+			<item>IsSimpleGroup</item>
+			<item>IsSimpleSemigroup</item>
+			<item>IsSingleCollectorRep</item>
+			<item>IsSingleValued</item>
+			<item>IsSkewFieldFamily</item>
+			<item>IsSlicedPerm</item>
+			<item>IsSlicedPermInv</item>
+			<item>IsSmallIntRep</item>
+			<item>IsSmallList</item>
+			<item>IsSolvable</item>
+			<item>IsSolvableCharacterTable</item>
+			<item>IsSolvableGroup</item>
+			<item>IsSolvableTom</item>
+			<item>IsSortDictionary</item>
+			<item>IsSortLookupDictionary</item>
+			<item>IsSortedList</item>
+			<item>IsSortedPcgsRep</item>
+			<item>IsSpaceOfElementsOfMagmaRing</item>
+			<item>IsSpaceOfRationalFunctions</item>
+			<item>IsSpaceOfUEAElements</item>
+			<item>IsSparseHashRep</item>
+			<item>IsSparseRowSpaceElement</item>
+			<item>IsSparseRowSpaceElementCollection</item>
+			<item>IsSparseRowSpaceElementFamily</item>
+			<item>IsSpecialLinearGroup</item>
+			<item>IsSpecialPcgs</item>
+			<item>IsSporadicSimple</item>
+			<item>IsSporadicSimpleCharacterTable</item>
+			<item>IsSporadicSimpleGroup</item>
+			<item>IsStabChainViaChainSubgroup</item>
+			<item>IsStandardGeneratorsOfGroup</item>
+			<item>IsStandardized</item>
+			<item>IsStraightLineProgElm</item>
+			<item>IsStraightLineProgram</item>
+			<item>IsStream</item>
+			<item>IsString</item>
+			<item>IsStringRep</item>
+			<item>IsSubalgebraFpAlgebra</item>
+			<item>IsSubgroup</item>
+			<item>IsSubgroupFgGroup</item>
+			<item>IsSubgroupFpGroup</item>
+			<item>IsSubgroupOfWholeGroupByQuotientRep</item>
+			<item>IsSubgroupSL</item>
+			<item>IsSubmonoidFpMonoid</item>
+			<item>IsSubnormal</item>
+			<item>IsSubnormallyMonomial</item>
+			<item>IsSubsemigroupFpSemigroup</item>
+			<item>IsSubsemigroupReesMatrixSemigroup</item>
+			<item>IsSubsemigroupReesZeroMatrixSemigroup</item>
+			<item>IsSubset</item>
+			<item>IsSubsetBlist</item>
+			<item>IsSubsetInducedNumeratorModuloTailPcgsRep</item>
+			<item>IsSubsetInducedPcgsRep</item>
+			<item>IsSubsetLocallyFiniteGroup</item>
+			<item>IsSubsetSet</item>
+			<item>IsSubspace</item>
+			<item>IsSubspacesFullRowSpaceDefaultRep</item>
+			<item>IsSubspacesVectorSpace</item>
+			<item>IsSubspacesVectorSpaceDefaultRep</item>
+			<item>IsSupersolvable</item>
+			<item>IsSupersolvableCharacterTable</item>
+			<item>IsSupersolvableGroup</item>
+			<item>IsSurjective</item>
+			<item>IsSyllableAssocWordRep</item>
+			<item>IsSyllableWordsFamily</item>
+			<item>IsSymmetricBinaryRelation</item>
+			<item>IsSymmetricGroup</item>
+			<item>IsSymmetricPowerElement</item>
+			<item>IsSymmetricPowerElementCollection</item>
+			<item>IsTable</item>
+			<item>IsTableOfMarks</item>
+			<item>IsTableOfMarksWithGens</item>
+			<item>IsTailInducedPcgsRep</item>
+			<item>IsTensorElement</item>
+			<item>IsTensorElementCollection</item>
+			<item>IsToBeDefinedObj</item>
+			<item>IsToFpGroupGeneralMappingByImages</item>
+			<item>IsToFpGroupHomomorphismByImages</item>
+			<item>IsToPcGroupGeneralMappingByImages</item>
+			<item>IsToPcGroupHomomorphismByImages</item>
+			<item>IsToPermGroupGeneralMappingByImages</item>
+			<item>IsToPermGroupHomomorphismByImages</item>
+			<item>IsTotal</item>
+			<item>IsTotalOrdering</item>
+			<item>IsTransformation</item>
+			<item>IsTransformationCollection</item>
+			<item>IsTransformationMonoid</item>
+			<item>IsTransformationRep</item>
+			<item>IsTransformationRepOfEndo</item>
+			<item>IsTransformationSemigroup</item>
+			<item>IsTransitive</item>
+			<item>IsTransitiveBinaryRelation</item>
+			<item>IsTranslationInvariantOrdering</item>
+			<item>IsTransvByDirProd</item>
+			<item>IsTransvByDirProdCollection</item>
+			<item>IsTransvByHomomorphism</item>
+			<item>IsTransvByHomomorphismCollection</item>
+			<item>IsTransvBySchreierTree</item>
+			<item>IsTransvBySchreierTreeCollection</item>
+			<item>IsTransvBySiftFunct</item>
+			<item>IsTransvBySiftFunctCollection</item>
+			<item>IsTransvByTrivSubgrp</item>
+			<item>IsTransvByTrivSubgrpCollection</item>
+			<item>IsTrivial</item>
+			<item>IsTrivialAOpEZero</item>
+			<item>IsTrivialHomCoset</item>
+			<item>IsTrivialLOpEOne</item>
+			<item>IsTrivialLOpEZero</item>
+			<item>IsTrivialRBase</item>
+			<item>IsTrivialROpEOne</item>
+			<item>IsTrivialROpEZero</item>
+			<item>IsTrivialUOpEOne</item>
+			<item>IsTrivialUOpEZero</item>
+			<item>IsTuple</item>
+			<item>IsTupleCollection</item>
+			<item>IsTupleFamily</item>
+			<item>IsTwoSidedIdeal</item>
+			<item>IsTwoSidedIdealInParent</item>
+			<item>IsTwoSidedIdealOp</item>
+			<item>IsType</item>
+			<item>IsTypeDefaultRep</item>
+			<item>IsUEALatticeElement</item>
+			<item>IsUEALatticeElementCollection</item>
+			<item>IsUEALatticeElementFamily</item>
+			<item>IsUFDFamily</item>
+			<item>IsUniformMatrixGroup</item>
+			<item>IsUniqueFactorizationRing</item>
+			<item>IsUnit</item>
+			<item>IsUnivariatePolynomial</item>
+			<item>IsUnivariatePolynomialRing</item>
+			<item>IsUnivariatePolynomialsFamily</item>
+			<item>IsUnivariatePolynomialsFamilyElement</item>
+			<item>IsUnivariateRationalFunction</item>
+			<item>IsUnivariateRationalFunctionDefaultRep</item>
+			<item>IsUnknown</item>
+			<item>IsUnknownDefaultRep</item>
+			<item>IsUnsortedPcgsRep</item>
+			<item>IsUpToDatePolycyclicCollector</item>
+			<item>IsUpperActedOnByGroup</item>
+			<item>IsUpperActedOnBySuperset</item>
+			<item>IsUpperAlphaChar</item>
+			<item>IsUpperTriangularMat</item>
+			<item>IsValidIdentifier</item>
+			<item>IsVector</item>
+			<item>IsVectorCollColl</item>
+			<item>IsVectorCollection</item>
+			<item>IsVectorList</item>
+			<item>IsVectorSearchTable</item>
+			<item>IsVectorSearchTableDefaultRep</item>
+			<item>IsVectorSpace</item>
+			<item>IsVectorSpaceHomomorphism</item>
+			<item>IsVectorTable</item>
+			<item>IsVirtualCharacter</item>
+			<item>IsWLetterAssocWordRep</item>
+			<item>IsWLetterWordsFamily</item>
+			<item>IsWPObj</item>
+			<item>IsWeakPointerObject</item>
+			<item>IsWedgeElement</item>
+			<item>IsWedgeElementCollection</item>
+			<item>IsWeightLexOrdering</item>
+			<item>IsWeightRepElement</item>
+			<item>IsWeightRepElementCollection</item>
+			<item>IsWeightRepElementFamily</item>
+			<item>IsWellFoundedOrdering</item>
+			<item>IsWeylGroup</item>
+			<item>IsWholeFamily</item>
+			<item>IsWord</item>
+			<item>IsWordCollection</item>
+			<item>IsWordWithInverse</item>
+			<item>IsWordWithOne</item>
+			<item>IsWreathProductElement</item>
+			<item>IsWreathProductElementCollection</item>
+			<item>IsWreathProductElementDefaultRep</item>
+			<item>IsWreathProductOrdering</item>
+			<item>IsWritableFile</item>
+			<item>IsZDFRE</item>
+			<item>IsZDFRECollColl</item>
+			<item>IsZDFRECollection</item>
+			<item>IsZero</item>
+			<item>IsZeroCochainRep</item>
+			<item>IsZeroCyc</item>
+			<item>IsZeroGroup</item>
+			<item>IsZeroMultiplicationRing</item>
+			<item>IsZeroRationalFunction</item>
+			<item>IsZeroSimpleSemigroup</item>
+			<item>IsZeroSquaredElement</item>
+			<item>IsZeroSquaredElementCollColl</item>
+			<item>IsZeroSquaredElementCollection</item>
+			<item>IsZeroSquaredRing</item>
+			<item>IsZmodnZObj</item>
+			<item>IsZmodnZObjNonprime</item>
+			<item>IsZmodnZObjNonprimeCollColl</item>
+			<item>IsZmodnZObjNonprimeCollCollColl</item>
+			<item>IsZmodnZObjNonprimeCollection</item>
+			<item>IsZmodnZObjNonprimeFamily</item>
+			<item>IsZmodpZObj</item>
+			<item>IsZmodpZObjLarge</item>
+			<item>IsZmodpZObjSmall</item>
+			<item>IsolatePoint</item>
+			<item>IsomorphicSubgroups</item>
+			<item>IsomorphismAbelianGroups</item>
+			<item>IsomorphismFpAlgebra</item>
+			<item>IsomorphismFpFLMLOR</item>
+			<item>IsomorphismFpGroup</item>
+			<item>IsomorphismFpGroupByCompositionSeries</item>
+			<item>IsomorphismFpGroupByGenerators</item>
+			<item>IsomorphismFpGroupByGeneratorsNC</item>
+			<item>IsomorphismFpGroupByPcgs</item>
+			<item>IsomorphismFpGroupBySubnormalSeries</item>
+			<item>IsomorphismFpMonoid</item>
+			<item>IsomorphismFpSemigroup</item>
+			<item>IsomorphismGroups</item>
+			<item>IsomorphismMatrixAlgebra</item>
+			<item>IsomorphismMatrixFLMLOR</item>
+			<item>IsomorphismPcGroup</item>
+			<item>IsomorphismPermGroup</item>
+			<item>IsomorphismPermGroupImfGroup</item>
+			<item>IsomorphismPermGroupOrFailFpGroup</item>
+			<item>IsomorphismPermGroups</item>
+			<item>IsomorphismReesMatrixSemigroup</item>
+			<item>IsomorphismRefinedPcGroup</item>
+			<item>IsomorphismSCAlgebra</item>
+			<item>IsomorphismSCFLMLOR</item>
+			<item>IsomorphismSimplifiedFpGroup</item>
+			<item>IsomorphismSolvableSmallGroups</item>
+			<item>IsomorphismSpecialPcGroup</item>
+			<item>IsomorphismToFullRowSpace</item>
+			<item>IsomorphismTransformationSemigroup</item>
+			<item>IsomorphismTypeInfoFiniteSimpleGroup</item>
+			<item>Iterated</item>
+			<item>Iterator</item>
+			<item>IteratorByBasis</item>
+			<item>IteratorByFunctions</item>
+			<item>IteratorList</item>
+			<item>IteratorSorted</item>
+			<item>IteratorsFamily</item>
+			<item>Jacobi</item>
+			<item>JenningsLieAlgebra</item>
+			<item>JenningsSeries</item>
+			<item>JoinEquivalenceRelations</item>
+			<item>JoinMagmaCongruences</item>
+			<item>JoinSemigroupCongruences</item>
+			<item>JoinStringsWithSeparator</item>
+			<item>JordanDecomposition</item>
+			<item>KBOverlaps</item>
+			<item>KappaPerp</item>
+			<item>Kernel</item>
+			<item>KernelHcommaC</item>
+			<item>KernelOfAdditiveGeneralMapping</item>
+			<item>KernelOfCharacter</item>
+			<item>KernelOfHomQuotientGroup</item>
+			<item>KernelOfMultiplicativeGeneralMapping</item>
+			<item>KernelOfTransformation</item>
+			<item>KernelUnderDualAction</item>
+			<item>KeyDependentOperation</item>
+			<item>KillingMatrix</item>
+			<item>KnownAttributesOfObject</item>
+			<item>KnownNaturalHomomorphismsPool</item>
+			<item>KnownPropertiesOfObject</item>
+			<item>KnownTruePropertiesOfObject</item>
+			<item>KnowsDictionary</item>
+			<item>KnowsHowToDecompose</item>
+			<item>KnuthBendixRewritingSystem</item>
+			<item>KroneckerProduct</item>
+			<item>KuKGenerators</item>
+			<item>LClassOfHClass</item>
+			<item>LGFirst</item>
+			<item>LGHeads</item>
+			<item>LGLayers</item>
+			<item>LGLength</item>
+			<item>LGTails</item>
+			<item>LGWeights</item>
+			<item>LLLReducedBasis</item>
+			<item>LLLReducedGramMat</item>
+			<item>LLLint</item>
+			<item>LMPSLPSeed</item>
+			<item>LaTeX</item>
+			<item>LaTeXObj</item>
+			<item>LaTeXStringDecompositionMatrix</item>
+			<item>LaTeXToHTMLString</item>
+			<item>LabsLims</item>
+			<item>Lambda</item>
+			<item>LargeGaloisField</item>
+			<item>LargestElementGroup</item>
+			<item>LargestElementStabChain</item>
+			<item>LargestMovedPoint</item>
+			<item>LargestMovedPointPerm</item>
+			<item>LargestMovedPointPerms</item>
+			<item>LargestUnknown</item>
+			<item>LastHashIndex</item>
+			<item>LastReadValue</item>
+			<item>LastSystemError</item>
+			<item>LatticeByCyclicExtension</item>
+			<item>LatticeGeneratorsInUEA</item>
+			<item>LatticeSubgroups</item>
+			<item>LatticeSubgroupsByTom</item>
+			<item>LaurentPolynomialByCoefficients</item>
+			<item>LaurentPolynomialByExtRep</item>
+			<item>Lcm</item>
+			<item>LcmInt</item>
+			<item>LcmOp</item>
+			<item>LcmPP</item>
+			<item>LeadCoeffsIGS</item>
+			<item>LeadingCoefficient</item>
+			<item>LeadingCoefficientOfPolynomial</item>
+			<item>LeadingExponentOfPcElement</item>
+			<item>LeadingMonomial</item>
+			<item>LeadingMonomialOfPolynomial</item>
+			<item>LeadingMonomialPosExtRep</item>
+			<item>LeadingTermOfPolynomial</item>
+			<item>LeadingUEALatticeMonomial</item>
+			<item>LeastBadComplementLayer</item>
+			<item>LeastBadHallLayer</item>
+			<item>LeftActingAlgebra</item>
+			<item>LeftActingDomain</item>
+			<item>LeftActingGroup</item>
+			<item>LeftActingRingOfIdeal</item>
+			<item>LeftAction</item>
+			<item>LeftAlgebraModule</item>
+			<item>LeftAlgebraModuleByGenerators</item>
+			<item>LeftDerivations</item>
+			<item>LeftIdeal</item>
+			<item>LeftIdealByGenerators</item>
+			<item>LeftIdealNC</item>
+			<item>LeftMagmaCongruence</item>
+			<item>LeftMagmaCongruenceByGeneratingPairs</item>
+			<item>LeftMagmaIdeal</item>
+			<item>LeftMagmaIdealByGenerators</item>
+			<item>LeftModuleByGenerators</item>
+			<item>LeftModuleByHomomorphismToMatAlg</item>
+			<item>LeftModuleGeneralMappingByImages</item>
+			<item>LeftModuleGeneratorsForIdealFromGenerators</item>
+			<item>LeftModuleHomomorphismByImages</item>
+			<item>LeftModuleHomomorphismByImagesNC</item>
+			<item>LeftModuleHomomorphismByMatrix</item>
+			<item>LeftNormedComm</item>
+			<item>LeftQuotient</item>
+			<item>LeftQuotientPowerPcgsElement</item>
+			<item>LeftReduceUEALatticeElement</item>
+			<item>LeftSemigroupCongruenceByGeneratingPairs</item>
+			<item>LeftSemigroupIdealEnumeratorDataGetElement</item>
+			<item>LeftShiftRowVector</item>
+			<item>Legendre</item>
+			<item>Length</item>
+			<item>LengthOfDescendingSeries</item>
+			<item>LengthOfLongestCommonPrefixOfTwoAssocWords</item>
+			<item>LengthWPObj</item>
+			<item>LengthsTom</item>
+			<item>LenstraBase</item>
+			<item>LessBoxedObj</item>
+			<item>LessThanFunction</item>
+			<item>LessThanOrEqualFunction</item>
+			<item>LetterRepAssocWord</item>
+			<item>LetterRepWordsLessFunc</item>
+			<item>LevelsOfGenerators</item>
+			<item>LeviMalcevDecomposition</item>
+			<item>LexicographicOrdering</item>
+			<item>LexicographicOrderingNC</item>
+			<item>LieAlgebra</item>
+			<item>LieAlgebraByDomain</item>
+			<item>LieAlgebraByStructureConstants</item>
+			<item>LieBracket</item>
+			<item>LieCenter</item>
+			<item>LieCentralizer</item>
+			<item>LieCentralizerInParent</item>
+			<item>LieCentre</item>
+			<item>LieCoboundaryOperator</item>
+			<item>LieDerivedSeries</item>
+			<item>LieDerivedSubalgebra</item>
+			<item>LieFamily</item>
+			<item>LieLowerCentralSeries</item>
+			<item>LieNilRadical</item>
+			<item>LieNormalizer</item>
+			<item>LieNormalizerInParent</item>
+			<item>LieObject</item>
+			<item>LieSolvableRadical</item>
+			<item>LieUpperCentralSeries</item>
+			<item>LiftAbsAndIrredModules</item>
+			<item>LiftEpimorphism</item>
+			<item>LiftEpimorphismSQ</item>
+			<item>LiftInduciblePair</item>
+			<item>LiftedInducedPcgs</item>
+			<item>LiftedPcElement</item>
+			<item>LineNumberStringPosition</item>
+			<item>LinearAction</item>
+			<item>LinearActionBasis</item>
+			<item>LinearActionLayer</item>
+			<item>LinearCharacters</item>
+			<item>LinearCombination</item>
+			<item>LinearCombinationPcgs</item>
+			<item>LinearCombinationVecs</item>
+			<item>LinearGroupParameters</item>
+			<item>LinearIndependentColumns</item>
+			<item>LinearOperation</item>
+			<item>LinearOperationLayer</item>
+			<item>LinesOfStraightLineProgram</item>
+			<item>List</item>
+			<item>ListBlist</item>
+			<item>ListHashParams</item>
+			<item>ListN</item>
+			<item>ListOp</item>
+			<item>ListPerm</item>
+			<item>ListSorted</item>
+			<item>ListStabChain</item>
+			<item>ListWithIdenticalEntries</item>
+			<item>ListX</item>
+			<item>ListXHelp</item>
+			<item>ListsFamily</item>
+			<item>LoadAllPackages</item>
+			<item>LoadDynamicModule</item>
+			<item>LoadPackage</item>
+			<item>LoadPackageDocumentation</item>
+			<item>LoadStaticModule</item>
+			<item>LoadedModules</item>
+			<item>LockNaturalHomomorphismsPool</item>
+			<item>Log</item>
+			<item>LogFFE</item>
+			<item>LogInputTo</item>
+			<item>LogInt</item>
+			<item>LogMod</item>
+			<item>LogModRhoIterate</item>
+			<item>LogModShanks</item>
+			<item>LogOutputTo</item>
+			<item>LogTo</item>
+			<item>LongestWeylWordPerm</item>
+			<item>LookupDictionary</item>
+			<item>LowIndexSubgroupsFpGroup</item>
+			<item>LowerCentralSeries</item>
+			<item>LowerCentralSeriesOfGroup</item>
+			<item>LowerTriangularMatrix</item>
+			<item>LowercaseString</item>
+			<item>Lucas</item>
+			<item>MATINTbezout</item>
+			<item>MATINTmgcdex</item>
+			<item>MATINTrgcd</item>
+			<item>MATINTsplit</item>
+			<item>Magma</item>
+			<item>MagmaByGenerators</item>
+			<item>MagmaByMultiplicationTable</item>
+			<item>MagmaByMultiplicationTableCreator</item>
+			<item>MagmaCongruenceByGeneratingPairs</item>
+			<item>MagmaCongruencePartition</item>
+			<item>MagmaElement</item>
+			<item>MagmaGeneratorsOfFamily</item>
+			<item>MagmaHomomorphismByFunctionNC</item>
+			<item>MagmaIdeal</item>
+			<item>MagmaIdealByGenerators</item>
+			<item>MagmaInputString</item>
+			<item>MagmaIsomorphismByFunctionsNC</item>
+			<item>MagmaRingModuloSpanOfZero</item>
+			<item>MagmaWithInverses</item>
+			<item>MagmaWithInversesByGenerators</item>
+			<item>MagmaWithInversesByMultiplicationTable</item>
+			<item>MagmaWithOne</item>
+			<item>MagmaWithOneByGenerators</item>
+			<item>MagmaWithOneByMultiplicationTable</item>
+			<item>MakeCanonical</item>
+			<item>MakeConfluent</item>
+			<item>MakeConsequences</item>
+			<item>MakeConsequencesPres</item>
+			<item>MakeFormulaVector</item>
+			<item>MakeGAPDocDoc</item>
+			<item>MakeHomChain</item>
+			<item>MakeImagesInfoLinearGeneralMappingByImages</item>
+			<item>MakeImmutable</item>
+			<item>MakeKnuthBendixRewritingSystemConfluent</item>
+			<item>MakeLIBTOMLIST</item>
+			<item>MakeMagmaWithInversesByFiniteGenerators</item>
+			<item>MakeMapping</item>
+			<item>MakeMonomialOrdering</item>
+			<item>MakePreImagesInfoLinearGeneralMappingByImages</item>
+			<item>MakePreImagesInfoLinearMappingByMatrix</item>
+			<item>MakePreImagesInfoOperationAlgebraHomomorphism</item>
+			<item>MakeReadOnlyGVar</item>
+			<item>MakeReadOnlyGlobal</item>
+			<item>MakeReadWriteGVar</item>
+			<item>MakeReadWriteGlobal</item>
+			<item>MakeStabChainLong</item>
+			<item>ManageableQuotientOfAbelianPGroup</item>
+			<item>ManageableQuotientOfNilpotentGroup</item>
+			<item>MappedExpression</item>
+			<item>MappedExpressionForElementOfFreeAssociativeAlgebra</item>
+			<item>MappedPcElement</item>
+			<item>MappedVector</item>
+			<item>MappedWord</item>
+			<item>MappedWordSyllableAssocWord</item>
+			<item>MappingByFunction</item>
+			<item>MappingGeneratorsImages</item>
+			<item>MappingOfWhichItIsAsGGMBI</item>
+			<item>MappingPermListList</item>
+			<item>MarksTom</item>
+			<item>MatAlgebra</item>
+			<item>MatAutomorphismsFamily</item>
+			<item>MatCharsWreathSymmetric</item>
+			<item>MatClassMultCoeffsCharTable</item>
+			<item>MatLieAlgebra</item>
+			<item>MatOrbs</item>
+			<item>MatOrbsApprox</item>
+			<item>MatScalarProducts</item>
+			<item>MatSpace</item>
+			<item>MatTom</item>
+			<item>MathieuGroup</item>
+			<item>MathieuGroupCons</item>
+			<item>MatricesOfRelator</item>
+			<item>MatrixAlgebra</item>
+			<item>MatrixAutomorphisms</item>
+			<item>MatrixByBlockMatrix</item>
+			<item>MatrixDimension</item>
+			<item>MatrixLieAlgebra</item>
+			<item>MatrixNewBasePoint</item>
+			<item>MatrixOfAction</item>
+			<item>MatrixOperationOfCP</item>
+			<item>MatrixOperationOfCPGroup</item>
+			<item>MatrixSpace</item>
+			<item>MatrixSpinCharsSn</item>
+			<item>MaxHashViewSize</item>
+			<item>MaxNumeratorCoeffAlgElm</item>
+			<item>MaximalAbelianQuotient</item>
+			<item>MaximalBlocks</item>
+			<item>MaximalBlocksAttr</item>
+			<item>MaximalBlocksOp</item>
+			<item>MaximalNormalSubgroups</item>
+			<item>MaximalSubgroupClassReps</item>
+			<item>MaximalSubgroupClassesRepsLayer</item>
+			<item>MaximalSubgroups</item>
+			<item>MaximalSubgroupsLattice</item>
+			<item>MaximalSubgroupsSymmAlt</item>
+			<item>MaximalSubgroupsTom</item>
+			<item>Maximum</item>
+			<item>MaximumList</item>
+			<item>MeetEquivalenceRelations</item>
+			<item>MeetMagmaCongruences</item>
+			<item>MeetMaps</item>
+			<item>MeetPartitionStrat</item>
+			<item>MeetPartitionStratCell</item>
+			<item>MeetSemigroupCongruences</item>
+			<item>MembershipTestKnownBase</item>
+			<item>MinimalBlockDimension</item>
+			<item>MinimalElementCosetStabChain</item>
+			<item>MinimalGeneratingSet</item>
+			<item>MinimalGensLayer</item>
+			<item>MinimalNonmonomialGroup</item>
+			<item>MinimalNormalSubgroups</item>
+			<item>MinimalPolynomial</item>
+			<item>MinimalPolynomialMatrixNC</item>
+			<item>MinimalStabChain</item>
+			<item>MinimalSupergroupsLattice</item>
+			<item>MinimalSupergroupsTom</item>
+			<item>MinimizeExplicitTransversal</item>
+			<item>MinimizedBombieriNorm</item>
+			<item>Minimum</item>
+			<item>MinimumGroupOnSubgroupsOrbit</item>
+			<item>MinimumList</item>
+			<item>MinusCharacter</item>
+			<item>ModGauss</item>
+			<item>ModifyMinGens</item>
+			<item>ModifyPcgs</item>
+			<item>ModularCharacterDegree</item>
+			<item>ModuleByRestriction</item>
+			<item>ModuleOfExtension</item>
+			<item>ModuloPcgs</item>
+			<item>ModuloPcgsByPcSequence</item>
+			<item>ModuloPcgsByPcSequenceNC</item>
+			<item>ModuloTailPcgsByList</item>
+			<item>ModulusOfZmodnZObj</item>
+			<item>MoebiusMu</item>
+			<item>MoebiusTom</item>
+			<item>MolienSeries</item>
+			<item>MolienSeriesInfo</item>
+			<item>MolienSeriesWithGivenDenominator</item>
+			<item>Monoid</item>
+			<item>MonoidByGenerators</item>
+			<item>MonoidByMultiplicationTable</item>
+			<item>MonoidOfRewritingSystem</item>
+			<item>MonomialComparisonFunction</item>
+			<item>MonomialExtGrlexLess</item>
+			<item>MonomialExtrepComparisonFun</item>
+			<item>MonomialGrevlexOrdering</item>
+			<item>MonomialGrlexOrdering</item>
+			<item>MonomialLexOrdering</item>
+			<item>MonomialOrderingsFamily</item>
+			<item>MonomialTotalDegreeLess</item>
+			<item>MorClassLoop</item>
+			<item>MorClassOrbs</item>
+			<item>MorFindGeneratingSystem</item>
+			<item>MorFroWords</item>
+			<item>MorMaxFusClasses</item>
+			<item>MorRatClasses</item>
+			<item>Morphium</item>
+			<item>MorrisRecursion</item>
+			<item>MostFrequentGeneratorFpGroup</item>
+			<item>MovedPoints</item>
+			<item>MovedPointsPerms</item>
+			<item>MulExt</item>
+			<item>MultCoeffs</item>
+			<item>MultMatrixPadicNumbersByCoefficientsList</item>
+			<item>MultRowVector</item>
+			<item>MultiplicationTable</item>
+			<item>MultiplicativeElementsWithInversesFamilyByRws</item>
+			<item>MultiplicativeNeutralElement</item>
+			<item>MultiplicativeZero</item>
+			<item>MultiplicativeZeroOp</item>
+			<item>Multiply</item>
+			<item>MutableBasis</item>
+			<item>MutableBasisOfClosureUnderAction</item>
+			<item>MutableBasisOfIdealInNonassociativeAlgebra</item>
+			<item>MutableBasisOfNonassociativeAlgebra</item>
+			<item>MutableBasisOfProductSpace</item>
+			<item>MutableCopyMat</item>
+			<item>MutableIdentityMat</item>
+			<item>MutableNullMat</item>
+			<item>MutableTransposedMat</item>
+			<item>MutableTransposedMatDestructive</item>
+			<item>MyFingerprint</item>
+			<item>MyIntCoefficients</item>
+			<item>Naive</item>
+			<item>Name</item>
+			<item>NameFunction</item>
+			<item>NameIsomorphismClass</item>
+			<item>NameMonth</item>
+			<item>NameRNam</item>
+			<item>NameWeekDay</item>
+			<item>NamesFilter</item>
+			<item>NamesGVars</item>
+			<item>NamesLibTom</item>
+			<item>NamesLocalVariablesFunction</item>
+			<item>NamesOfComponents</item>
+			<item>NamesOfFusionSources</item>
+			<item>NamesSystemGVars</item>
+			<item>NamesUserGVars</item>
+			<item>NaturalActedSpace</item>
+			<item>NaturalCharacter</item>
+			<item>NaturalHomomorphismByFixedPointSubspace</item>
+			<item>NaturalHomomorphismByGenerators</item>
+			<item>NaturalHomomorphismByHomVW</item>
+			<item>NaturalHomomorphismByIdeal</item>
+			<item>NaturalHomomorphismByInvariantSubspace</item>
+			<item>NaturalHomomorphismByNilpotentClassTwoElement</item>
+			<item>NaturalHomomorphismByNormalSubgroup</item>
+			<item>NaturalHomomorphismByNormalSubgroupInParent</item>
+			<item>NaturalHomomorphismByNormalSubgroupNC</item>
+			<item>NaturalHomomorphismByNormalSubgroupNCInParent</item>
+			<item>NaturalHomomorphismByNormalSubgroupNCOp</item>
+			<item>NaturalHomomorphismByNormalSubgroupNCOrig</item>
+			<item>NaturalHomomorphismByNormalSubgroupOp</item>
+			<item>NaturalHomomorphismBySubAlgebraModule</item>
+			<item>NaturalHomomorphismBySubspace</item>
+			<item>NaturalHomomorphismBySubspaceOntoFullRowSpace</item>
+			<item>NaturalHomomorphismsPool</item>
+			<item>NaturalIsomorphismByPcgs</item>
+			<item>NearAdditiveGroup</item>
+			<item>NearAdditiveGroupByGenerators</item>
+			<item>NearAdditiveMagma</item>
+			<item>NearAdditiveMagmaByGenerators</item>
+			<item>NearAdditiveMagmaWithInverses</item>
+			<item>NearAdditiveMagmaWithInversesByGenerators</item>
+			<item>NearAdditiveMagmaWithZero</item>
+			<item>NearAdditiveMagmaWithZeroByGenerators</item>
+			<item>NearlyCharacterTablesFamily</item>
+			<item>NegativeRootVectors</item>
+			<item>NegativeRoots</item>
+			<item>NestingDepthA</item>
+			<item>NestingDepthM</item>
+			<item>NewAttribute</item>
+			<item>NewCategory</item>
+			<item>NewConstructor</item>
+			<item>NewDictionary</item>
+			<item>NewFamily</item>
+			<item>NewFilter</item>
+			<item>NewInfoClass</item>
+			<item>NewOperation</item>
+			<item>NewProperty</item>
+			<item>NewRepresentation</item>
+			<item>NewToBeDefinedObj</item>
+			<item>NewType</item>
+			<item>NewmanInfinityCriterion</item>
+			<item>NextIterator</item>
+			<item>NextLevelRegularGroups</item>
+			<item>NextPrimeInt</item>
+			<item>NextRBasePoint</item>
+			<item>NextStepCentralizer</item>
+			<item>NiceAlgebraMonomorphism</item>
+			<item>NiceBasis</item>
+			<item>NiceBasisFiltersInfo</item>
+			<item>NiceBasisNC</item>
+			<item>NiceFreeLeftModule</item>
+			<item>NiceFreeLeftModuleForFLMLOR</item>
+			<item>NiceFreeLeftModuleInfo</item>
+			<item>NiceMonomorphism</item>
+			<item>NiceMonomorphismAutomGroup</item>
+			<item>NiceNormalFormByExtRepFunction</item>
+			<item>NiceObject</item>
+			<item>NiceVector</item>
+			<item>NicomorphismOfFFEMatrixGroup</item>
+			<item>NicomorphismOfGeneralMatrixGroup</item>
+			<item>NilpotencyClassOfGroup</item>
+			<item>NilpotentClassTwoElement</item>
+			<item>NilpotentQuotientOfFpLieAlgebra</item>
+			<item>NinKernelCSPG</item>
+			<item>NonLieNilpotentElement</item>
+			<item>NonNilpotentElement</item>
+			<item>NonPerfectCSPG</item>
+			<item>NonSplitExtensions</item>
+			<item>NonTrivialRightHandSides</item>
+			<item>NonassocWord</item>
+			<item>NonnegIntScalarProducts</item>
+			<item>NonnegativeIntegers</item>
+			<item>NorSerPermPcgs</item>
+			<item>Norm</item>
+			<item>NormalBase</item>
+			<item>NormalClosure</item>
+			<item>NormalClosureByChain</item>
+			<item>NormalClosureInParent</item>
+			<item>NormalClosureOp</item>
+			<item>NormalFormIntMat</item>
+			<item>NormalIntersection</item>
+			<item>NormalIntersectionPcgs</item>
+			<item>NormalMaximalSubgroups</item>
+			<item>NormalSeriesByPcgs</item>
+			<item>NormalSubgroupClasses</item>
+			<item>NormalSubgroupClassesInfo</item>
+			<item>NormalSubgroups</item>
+			<item>NormalSubgroupsAbove</item>
+			<item>NormalSubgroupsCalc</item>
+			<item>NormalizeNameAndKey</item>
+			<item>NormalizeWhitespace</item>
+			<item>NormalizedArgList</item>
+			<item>NormalizedElementOfMagmaRingModuloRelations</item>
+			<item>NormalizedNameAndKey</item>
+			<item>NormalizedWhitespace</item>
+			<item>Normalizer</item>
+			<item>NormalizerInGLnZ</item>
+			<item>NormalizerInGLnZBravaisGroup</item>
+			<item>NormalizerInHomePcgs</item>
+			<item>NormalizerInParent</item>
+			<item>NormalizerOp</item>
+			<item>NormalizerParentSA</item>
+			<item>NormalizerStabCSPG</item>
+			<item>NormalizerTom</item>
+			<item>NormalizersTom</item>
+			<item>NormalizingReducedGL</item>
+			<item>NormedRowVector</item>
+			<item>NormedRowVectors</item>
+			<item>NormedVectors</item>
+			<item>NotifiedFusionsOfLibTom</item>
+			<item>NotifiedFusionsToLibTom</item>
+			<item>NrAffinePrimitiveGroups</item>
+			<item>NrArrangements</item>
+			<item>NrArrangementsMSetA</item>
+			<item>NrArrangementsMSetK</item>
+			<item>NrArrangementsSetA</item>
+			<item>NrArrangementsSetK</item>
+			<item>NrArrangementsX</item>
+			<item>NrBasisVectors</item>
+			<item>NrBitsInt</item>
+			<item>NrCombinations</item>
+			<item>NrCombinationsMSetA</item>
+			<item>NrCombinationsMSetK</item>
+			<item>NrCombinationsSetA</item>
+			<item>NrCombinationsSetK</item>
+			<item>NrCombinationsX</item>
+			<item>NrCompatiblePolynomials</item>
+			<item>NrConjugacyClasses</item>
+			<item>NrConjugacyClassesGL</item>
+			<item>NrConjugacyClassesGU</item>
+			<item>NrConjugacyClassesInSupergroup</item>
+			<item>NrConjugacyClassesPGL</item>
+			<item>NrConjugacyClassesPGU</item>
+			<item>NrConjugacyClassesPSL</item>
+			<item>NrConjugacyClassesPSU</item>
+			<item>NrConjugacyClassesSL</item>
+			<item>NrConjugacyClassesSLIsogeneous</item>
+			<item>NrConjugacyClassesSU</item>
+			<item>NrConjugacyClassesSUIsogeneous</item>
+			<item>NrDerangements</item>
+			<item>NrDerangementsK</item>
+			<item>NrInputsOfStraightLineProgram</item>
+			<item>NrIrreducibleSolvableGroups</item>
+			<item>NrMovedPoints</item>
+			<item>NrMovedPointsPerm</item>
+			<item>NrMovedPointsPerms</item>
+			<item>NrOrderedPartitions</item>
+			<item>NrPartitionTuples</item>
+			<item>NrPartitions</item>
+			<item>NrPartitionsSet</item>
+			<item>NrPerfectGroups</item>
+			<item>NrPerfectLibraryGroups</item>
+			<item>NrPermutationsList</item>
+			<item>NrPolyhedralSubgroups</item>
+			<item>NrPrimitiveGroups</item>
+			<item>NrRestrictedPartitions</item>
+			<item>NrRestrictedPartitionsK</item>
+			<item>NrSmallGroups</item>
+			<item>NrSolvableAffinePrimitiveGroups</item>
+			<item>NrSubsTom</item>
+			<item>NrSyllables</item>
+			<item>NrTransitiveGroups</item>
+			<item>NrTuples</item>
+			<item>NrUnorderedTuples</item>
+			<item>NthChainSubgroup</item>
+			<item>NthFundamentalOrbit</item>
+			<item>NthRoot</item>
+			<item>NthSchreierTransversalOfChainSubgroup</item>
+			<item>NthSiftOneLevel</item>
+			<item>Nucleus</item>
+			<item>NullAlgebra</item>
+			<item>NullMapMatrix</item>
+			<item>NullMat</item>
+			<item>NullspaceIntMat</item>
+			<item>NullspaceMat</item>
+			<item>NullspaceMatDestructive</item>
+			<item>NullspaceModQ</item>
+			<item>NumBol</item>
+			<item>Number</item>
+			<item>NumberArgumentsFunction</item>
+			<item>NumberCells</item>
+			<item>NumberCoset</item>
+			<item>NumberDigits</item>
+			<item>NumberFFVector</item>
+			<item>NumberField</item>
+			<item>NumberGeneratorsOfRws</item>
+			<item>NumberIrreducibleSolvableGroups</item>
+			<item>NumberOfCommutators</item>
+			<item>NumberOfNewGenerators</item>
+			<item>NumberOp</item>
+			<item>NumberPerfectGroups</item>
+			<item>NumberPerfectLibraryGroups</item>
+			<item>NumberSmallGroups</item>
+			<item>NumberSyllables</item>
+			<item>NumeratorOfModuloPcgs</item>
+			<item>NumeratorOfRationalFunction</item>
+			<item>NumeratorRat</item>
+			<item>OCAddBigMatrices</item>
+			<item>OCAddCentralizer</item>
+			<item>OCAddComplement</item>
+			<item>OCAddGenerators</item>
+			<item>OCAddGeneratorsGeneral</item>
+			<item>OCAddGeneratorsPcgs</item>
+			<item>OCAddMatrices</item>
+			<item>OCAddRelations</item>
+			<item>OCAddSumMatrices</item>
+			<item>OCAddToFunctions</item>
+			<item>OCConjugatingWord</item>
+			<item>OCCoprimeComplement</item>
+			<item>OCEquationMatrix</item>
+			<item>OCEquationVector</item>
+			<item>OCNormalRelations</item>
+			<item>OCOneCoboundaries</item>
+			<item>OCOneCocycles</item>
+			<item>OCSmallEquationMatrix</item>
+			<item>OCSmallEquationVector</item>
+			<item>OCTestRelations</item>
+			<item>OCTestRelators</item>
+			<item>ONanScottType</item>
+			<item>ObjByExponents</item>
+			<item>ObjByExtRep</item>
+			<item>ObjByVector</item>
+			<item>Objectify</item>
+			<item>ObjectifyWithAttributes</item>
+			<item>OccuringVariableIndices</item>
+			<item>OctaveAlgebra</item>
+			<item>OddSpinVals</item>
+			<item>OldGeneratorsOfPresentation</item>
+			<item>OldKernelHcommaC</item>
+			<item>OldSubspaceVectorSpaceGroup</item>
+			<item>Omega</item>
+			<item>OmegaAndLowerPCentralSeries</item>
+			<item>OmegaOp</item>
+			<item>OmegaSeries</item>
+			<item>OminusEven</item>
+			<item>OnBreak</item>
+			<item>OnBreakMessage</item>
+			<item>OnCharReadHookExcFds</item>
+			<item>OnCharReadHookExcFuncs</item>
+			<item>OnCharReadHookExcStreams</item>
+			<item>OnCharReadHookInFds</item>
+			<item>OnCharReadHookInFuncs</item>
+			<item>OnCharReadHookInStreams</item>
+			<item>OnCharReadHookOutFds</item>
+			<item>OnCharReadHookOutFuncs</item>
+			<item>OnCharReadHookOutStreams</item>
+			<item>OnCocycle</item>
+			<item>OnIndeterminates</item>
+			<item>OnLeftAntiOperation</item>
+			<item>OnLeftInverse</item>
+			<item>OnLines</item>
+			<item>OnPairs</item>
+			<item>OnPoints</item>
+			<item>OnQuit</item>
+			<item>OnRelVector</item>
+			<item>OnRight</item>
+			<item>OnSets</item>
+			<item>OnSetsDisjointSets</item>
+			<item>OnSetsSets</item>
+			<item>OnSetsTuples</item>
+			<item>OnSubspacesByCanonicalBasis</item>
+			<item>OnTuples</item>
+			<item>OnTuplesSets</item>
+			<item>OnTuplesTuples</item>
+			<item>One</item>
+			<item>OneAttr</item>
+			<item>OneCoboundaries</item>
+			<item>OneCocycles</item>
+			<item>OneFactorBound</item>
+			<item>OneGroup</item>
+			<item>OneImmutable</item>
+			<item>OneIrreducibleSolvableGroup</item>
+			<item>OneMutable</item>
+			<item>OneNormalizerfixedBlockSystem</item>
+			<item>OneOfPcgs</item>
+			<item>OneOp</item>
+			<item>OnePrimitiveGroup</item>
+			<item>OneSM</item>
+			<item>OneSameMutability</item>
+			<item>OneSmallGroup</item>
+			<item>OneTransitiveGroup</item>
+			<item>OperationAlgebraHomomorphism</item>
+			<item>OperatorOfExternalSet</item>
+			<item>OplusEven</item>
+			<item>OpmOdd</item>
+			<item>OpmSmall</item>
+			<item>OptionsStack</item>
+			<item>Orbit</item>
+			<item>OrbitByPosOp</item>
+			<item>OrbitChar</item>
+			<item>OrbitFusions</item>
+			<item>OrbitGenerators</item>
+			<item>OrbitGeneratorsInv</item>
+			<item>OrbitGeneratorsOfGroup</item>
+			<item>OrbitLength</item>
+			<item>OrbitLengthOp</item>
+			<item>OrbitLengths</item>
+			<item>OrbitLengthsDomain</item>
+			<item>OrbitOp</item>
+			<item>OrbitPerms</item>
+			<item>OrbitPowerMaps</item>
+			<item>OrbitRepresentativesCharacters</item>
+			<item>OrbitShortVectors</item>
+			<item>OrbitSplit</item>
+			<item>OrbitStabChain</item>
+			<item>OrbitStabilizer</item>
+			<item>OrbitStabilizerAlgorithm</item>
+			<item>OrbitStabilizerOp</item>
+			<item>OrbitStabilizingParentGroup</item>
+			<item>OrbitalPartition</item>
+			<item>OrbitishFO</item>
+			<item>OrbitishReq</item>
+			<item>Orbits</item>
+			<item>OrbitsByPosOp</item>
+			<item>OrbitsCharacters</item>
+			<item>OrbitsDomain</item>
+			<item>OrbitsPartition</item>
+			<item>OrbitsPerms</item>
+			<item>OrbitsishOperation</item>
+			<item>OrbitsishReq</item>
+			<item>Order</item>
+			<item>OrderKnownDividendList</item>
+			<item>OrderMatLimit</item>
+			<item>OrderMatTrial</item>
+			<item>OrderMod</item>
+			<item>OrderModK</item>
+			<item>OrderOfRewritingSystem</item>
+			<item>OrderOfSchurLift</item>
+			<item>OrderPerm</item>
+			<item>OrderedPartitions</item>
+			<item>OrderedPartitionsA</item>
+			<item>OrderedPartitionsK</item>
+			<item>OrderingByLessThanFunctionNC</item>
+			<item>OrderingByLessThanOrEqualFunctionNC</item>
+			<item>OrderingOfRewritingSystem</item>
+			<item>OrderingOnGenerators</item>
+			<item>OrderingsFamily</item>
+			<item>OrdersClassRepresentatives</item>
+			<item>OrdersTom</item>
+			<item>Ordinal</item>
+			<item>OrdinaryCharacterTable</item>
+			<item>OrthogonalComponents</item>
+			<item>OrthogonalEmbeddings</item>
+			<item>OrthogonalEmbeddingsSpecialDimension</item>
+			<item>OrthogonalSpaceInFullRowSpace</item>
+			<item>OrthogonalityDefectEuclideanLattice</item>
+			<item>OutdatePolycyclicCollector</item>
+			<item>OutputLogTo</item>
+			<item>OutputTextFile</item>
+			<item>OutputTextFileStillOpen</item>
+			<item>OutputTextFileType</item>
+			<item>OutputTextNone</item>
+			<item>OutputTextNoneType</item>
+			<item>OutputTextString</item>
+			<item>OutputTextStringType</item>
+			<item>OutputTextUser</item>
+			<item>OzeroEven</item>
+			<item>OzeroOdd</item>
+			<item>PBIsMinimal</item>
+			<item>PCentralLieAlgebra</item>
+			<item>PCentralNormalSeriesByPcgsPGroup</item>
+			<item>PCentralSeries</item>
+			<item>PCentralSeriesOp</item>
+			<item>PClassPGroup</item>
+			<item>PCore</item>
+			<item>PCoreOp</item>
+			<item>PCover</item>
+			<item>PERFRec</item>
+			<item>PGroupGeneratorsOfAbelianGroup</item>
+			<item>PMultiplicator</item>
+			<item>PQStatistics</item>
+			<item>PQuotient</item>
+			<item>PRIMGrp</item>
+			<item>PRump</item>
+			<item>PRumpOp</item>
+			<item>PSLDegree</item>
+			<item>PSLUnderlyingField</item>
+			<item>PSp</item>
+			<item>PackageInfo</item>
+			<item>PackageVariablesInfo</item>
+			<item>PadicCoefficients</item>
+			<item>PadicExpansionByRat</item>
+			<item>PadicExtensionNumberFamily</item>
+			<item>PadicNumber</item>
+			<item>Page</item>
+			<item>PageDisplay</item>
+			<item>Pager</item>
+			<item>Parametrized</item>
+			<item>Parent</item>
+			<item>ParentAttr</item>
+			<item>ParentPcgs</item>
+			<item>ParityPol</item>
+			<item>ParseArguments</item>
+			<item>ParseBibFiles</item>
+			<item>ParseError</item>
+			<item>ParseTreeXMLString</item>
+			<item>PartialClosureOfCongruence</item>
+			<item>PartialOrderByOrderingFunction</item>
+			<item>PartialOrderOfHasseDiagram</item>
+			<item>Partition</item>
+			<item>PartitionBacktrack</item>
+			<item>PartitionSortedPoints</item>
+			<item>PartitionStabilizerPermGroup</item>
+			<item>PartitionTuples</item>
+			<item>Partitions</item>
+			<item>PartitionsA</item>
+			<item>PartitionsGreatestEQ</item>
+			<item>PartitionsGreatestLE</item>
+			<item>PartitionsK</item>
+			<item>PartitionsRecursively</item>
+			<item>PartitionsSet</item>
+			<item>PartitionsSetA</item>
+			<item>PartitionsSetK</item>
+			<item>PartitionsTest</item>
+			<item>PcElementByExponents</item>
+			<item>PcElementByExponentsNC</item>
+			<item>PcGroupClassMatrixColumn</item>
+			<item>PcGroupCode</item>
+			<item>PcGroupCodeRec</item>
+			<item>PcGroupFpGroup</item>
+			<item>PcGroupFpGroupNC</item>
+			<item>PcGroupWithPcgs</item>
+			<item>PcSeries</item>
+			<item>Pcgs</item>
+			<item>PcgsByIndependentGeneratorsOfAbelianGroup</item>
+			<item>PcgsByPcSequence</item>
+			<item>PcgsByPcSequenceCons</item>
+			<item>PcgsByPcSequenceNC</item>
+			<item>PcgsCentralSeries</item>
+			<item>PcgsChiefSeries</item>
+			<item>PcgsElAbSerFromSpecPcgs</item>
+			<item>PcgsElementaryAbelianSeries</item>
+			<item>PcgsHomSoImPow</item>
+			<item>PcgsMemberPcSeriesPermGroup</item>
+			<item>PcgsPCentralSeriesPGroup</item>
+			<item>PcgsStabChainSeries</item>
+			<item>PcgsSystemLGSeries</item>
+			<item>PcgsSystemWithComplementSystem</item>
+			<item>PcgsSystemWithHallSystem</item>
+			<item>PcgsSystemWithWf</item>
+			<item>PerfGrpConst</item>
+			<item>PerfGrpLoad</item>
+			<item>PerfectCSPG</item>
+			<item>PerfectCentralProduct</item>
+			<item>PerfectGroup</item>
+			<item>PerfectIdentification</item>
+			<item>PerfectResiduum</item>
+			<item>PerfectSubdirectProduct</item>
+			<item>PerfectSubgroupsAlternatingGroup</item>
+			<item>Perform</item>
+			<item>PermBounds</item>
+			<item>PermCandidates</item>
+			<item>PermCandidatesFaithful</item>
+			<item>PermCharInfo</item>
+			<item>PermCharInfoRelative</item>
+			<item>PermChars</item>
+			<item>PermCharsTom</item>
+			<item>PermComb</item>
+			<item>PermLeftQuoTransformation</item>
+			<item>PermList</item>
+			<item>PermListList</item>
+			<item>PermMatrixGroup</item>
+			<item>PermNatAnTestDetect</item>
+			<item>PermNewBasePoint</item>
+			<item>PermOnEnumerator</item>
+			<item>Permanent</item>
+			<item>PermgpContainsAn</item>
+			<item>PermpcgsPcGroupPcgs</item>
+			<item>Permut</item>
+			<item>Permutation</item>
+			<item>PermutationCharacter</item>
+			<item>PermutationCycle</item>
+			<item>PermutationCycleOp</item>
+			<item>PermutationGModule</item>
+			<item>PermutationMat</item>
+			<item>PermutationOp</item>
+			<item>PermutationToSortCharacters</item>
+			<item>PermutationToSortClasses</item>
+			<item>PermutationTom</item>
+			<item>PermutationsFamily</item>
+			<item>PermutationsList</item>
+			<item>PermutationsListK</item>
+			<item>Permuted</item>
+			<item>Phi</item>
+			<item>PlainListCopy</item>
+			<item>PlainListCopyOp</item>
+			<item>PointInCellNo</item>
+			<item>PolycyclicFactorGroup</item>
+			<item>PolycyclicFactorGroupByRelators</item>
+			<item>PolycyclicFactorGroupByRelatorsNC</item>
+			<item>PolycyclicFactorGroupNC</item>
+			<item>PolynomialByExtRep</item>
+			<item>PolynomialByExtRepNC</item>
+			<item>PolynomialCoefficientsOfPolynomial</item>
+			<item>PolynomialDivisionAlgorithm</item>
+			<item>PolynomialModP</item>
+			<item>PolynomialReducedRemainder</item>
+			<item>PolynomialReduction</item>
+			<item>PolynomialRing</item>
+			<item>PopOptions</item>
+			<item>PosSublOdd</item>
+			<item>PosVecEnumFF</item>
+			<item>Position</item>
+			<item>PositionBound</item>
+			<item>PositionCanonical</item>
+			<item>PositionFirstComponent</item>
+			<item>PositionMatchingDelimiter</item>
+			<item>PositionNonZero</item>
+			<item>PositionNot</item>
+			<item>PositionNthOccurrence</item>
+			<item>PositionNthTrueBlist</item>
+			<item>PositionProperty</item>
+			<item>PositionSet</item>
+			<item>PositionSorted</item>
+			<item>PositionStream</item>
+			<item>PositionSublist</item>
+			<item>PositionWord</item>
+			<item>PositionsTrueBlist</item>
+			<item>PositiveExponentsPresentationFpHom</item>
+			<item>PositiveIntegers</item>
+			<item>PositiveRootVectors</item>
+			<item>PositiveRoots</item>
+			<item>PositiveRootsAsWeights</item>
+			<item>PossibleClassFusions</item>
+			<item>PossibleFusionsCharTableTom</item>
+			<item>PossiblePowerMaps</item>
+			<item>PostMakeImmutable</item>
+			<item>Pover</item>
+			<item>PowerDecompositions</item>
+			<item>PowerMap</item>
+			<item>PowerMapByComposition</item>
+			<item>PowerMapOfGroup</item>
+			<item>PowerMapOfGroupWithInvariants</item>
+			<item>PowerMapOp</item>
+			<item>PowerMapsAllowedBySymmetrisations</item>
+			<item>PowerMapsAllowedBySymmetrizations</item>
+			<item>PowerMod</item>
+			<item>PowerModCoeffs</item>
+			<item>PowerModEvalPol</item>
+			<item>PowerModInt</item>
+			<item>PowerPartition</item>
+			<item>PowerPcgsElement</item>
+			<item>PowerS</item>
+			<item>PowerSi</item>
+			<item>PowerSubalgebraSeries</item>
+			<item>PowerWreath</item>
+			<item>PowersumsElsyms</item>
+			<item>PreBasis</item>
+			<item>PreImage</item>
+			<item>PreImageElm</item>
+			<item>PreImageSetStabBlocksHomomorphism</item>
+			<item>PreImageWord</item>
+			<item>PreImages</item>
+			<item>PreImagesElm</item>
+			<item>PreImagesRange</item>
+			<item>PreImagesRepresentative</item>
+			<item>PreImagesRepresentativeOperationAlgebraHomomorphism</item>
+			<item>PreImagesSet</item>
+			<item>PreOrbishProcessing</item>
+			<item>PreferredGenerators</item>
+			<item>PrefrattiniSubgroup</item>
+			<item>PreimagesOfTransformation</item>
+			<item>Presentation</item>
+			<item>PresentationAugmentedCosetTable</item>
+			<item>PresentationFpGroup</item>
+			<item>PresentationNormalClosure</item>
+			<item>PresentationNormalClosureRrs</item>
+			<item>PresentationRegularPermutationGroup</item>
+			<item>PresentationRegularPermutationGroupNC</item>
+			<item>PresentationSubgroup</item>
+			<item>PresentationSubgroupMtc</item>
+			<item>PresentationSubgroupRrs</item>
+			<item>PresentationViaCosetTable</item>
+			<item>PresentationsFamily</item>
+			<item>PrevPrimeInt</item>
+			<item>PriGroItNext</item>
+			<item>PrimGrpLoad</item>
+			<item>PrimaryGeneratorWords</item>
+			<item>PrimeBlocks</item>
+			<item>PrimeBlocksOp</item>
+			<item>PrimeField</item>
+			<item>PrimeOfPGroup</item>
+			<item>PrimePGroup</item>
+			<item>PrimePowerComponent</item>
+			<item>PrimePowerComponents</item>
+			<item>PrimePowerPcSequence</item>
+			<item>PrimePowersInt</item>
+			<item>PrimeResidues</item>
+			<item>PrimeResiduesCache</item>
+			<item>Primes</item>
+			<item>PrimitiveElement</item>
+			<item>PrimitiveFacExtRepRatPol</item>
+			<item>PrimitiveGroup</item>
+			<item>PrimitiveGroupSims</item>
+			<item>PrimitiveGroupsIterator</item>
+			<item>PrimitiveIdentification</item>
+			<item>PrimitiveIndexIrreducibleSolvableGroup</item>
+			<item>PrimitivePolynomial</item>
+			<item>PrimitiveRoot</item>
+			<item>PrimitiveRootMod</item>
+			<item>Print</item>
+			<item>PrintAmbiguity</item>
+			<item>PrintArray</item>
+			<item>PrintBibAsBib</item>
+			<item>PrintBibAsHTML</item>
+			<item>PrintBibAsText</item>
+			<item>PrintCharacterTable</item>
+			<item>PrintCounters</item>
+			<item>PrintFactorsInt</item>
+			<item>PrintFormattedString</item>
+			<item>PrintFormattingStatus</item>
+			<item>PrintGAPDocElementTemplates</item>
+			<item>PrintHashWithNames</item>
+			<item>PrintObj</item>
+			<item>PrintPadicExpansion</item>
+			<item>PrintRecIndent</item>
+			<item>PrintSixFile</item>
+			<item>PrintTo</item>
+			<item>ProbabilityShapes</item>
+			<item>Process</item>
+			<item>ProcessFixpoint</item>
+			<item>ProdCoefRatfun</item>
+			<item>ProdCoeffLaurpol</item>
+			<item>ProdCoeffUnivfunc</item>
+			<item>Product</item>
+			<item>ProductCoeffs</item>
+			<item>ProductMod</item>
+			<item>ProductOp</item>
+			<item>ProductPP</item>
+			<item>ProductPol</item>
+			<item>ProductRootsPol</item>
+			<item>ProductSpace</item>
+			<item>ProductX</item>
+			<item>ProductXHelp</item>
+			<item>ProfileFunctions</item>
+			<item>ProfileFunctionsInGlobalVariables</item>
+			<item>ProfileGlobalFunctions</item>
+			<item>ProfileMethods</item>
+			<item>ProfileOperations</item>
+			<item>ProfileOperationsAndMethods</item>
+			<item>ProfileOperationsAndMethodsOff</item>
+			<item>ProfileOperationsAndMethodsOn</item>
+			<item>ProfileOperationsOff</item>
+			<item>ProfileOperationsOn</item>
+			<item>ProjectedInducedPcgs</item>
+			<item>ProjectedPcElement</item>
+			<item>Projection</item>
+			<item>ProjectionMap</item>
+			<item>ProjectionOntoFullRowSpace</item>
+			<item>ProjectionOntoVectorSubspace</item>
+			<item>ProjectiveActionHomomorphismMatrixGroup</item>
+			<item>ProjectiveActionOnFullSpace</item>
+			<item>ProjectiveCharDeg</item>
+			<item>ProjectiveGeneralLinearGroup</item>
+			<item>ProjectiveGeneralLinearGroupCons</item>
+			<item>ProjectiveGeneralUnitaryGroup</item>
+			<item>ProjectiveGeneralUnitaryGroupCons</item>
+			<item>ProjectiveOrder</item>
+			<item>ProjectiveSpecialLinearGroup</item>
+			<item>ProjectiveSpecialLinearGroupCons</item>
+			<item>ProjectiveSpecialUnitaryGroup</item>
+			<item>ProjectiveSpecialUnitaryGroupCons</item>
+			<item>ProjectiveSymplecticGroup</item>
+			<item>ProjectiveSymplecticGroupCons</item>
+			<item>PropertyMethodByNiceMonomorphism</item>
+			<item>PropertyMethodByNiceMonomorphismCollColl</item>
+			<item>PropertyMethodByNiceMonomorphismCollElm</item>
+			<item>PropertyMethodByNiceMonomorphismElmColl</item>
+			<item>PseudoRandom</item>
+			<item>PseudoRandomSeed</item>
+			<item>PthPowerImage</item>
+			<item>PthPowerImages</item>
+			<item>PullBack</item>
+			<item>PullbackCSPG</item>
+			<item>PullbackKernelCSPG</item>
+			<item>PurePadicNumberFamily</item>
+			<item>PushOptions</item>
+			<item>Quadratic</item>
+			<item>QuasiDihedralGenerators</item>
+			<item>QuaternionAlgebra</item>
+			<item>QuaternionGenerators</item>
+			<item>QuickInverseRepresentative</item>
+			<item>QuoInt</item>
+			<item>QuotRemLaurpols</item>
+			<item>QuotRemPolList</item>
+			<item>QuotSysDefinitionByIndex</item>
+			<item>QuotSysIndexByDefinition</item>
+			<item>Quotient</item>
+			<item>QuotientFromSCTable</item>
+			<item>QuotientGroup</item>
+			<item>QuotientGroupByChainHomomorphicImage</item>
+			<item>QuotientGroupByHomomorphism</item>
+			<item>QuotientGroupByImages</item>
+			<item>QuotientGroupByImagesNC</item>
+			<item>QuotientGroupHom</item>
+			<item>QuotientMod</item>
+			<item>QuotientPolynomialsExtRep</item>
+			<item>QuotientRemainder</item>
+			<item>QuotientSemigroupCongruence</item>
+			<item>QuotientSemigroupHomomorphism</item>
+			<item>QuotientSemigroupPreimage</item>
+			<item>QuotientSystem</item>
+			<item>RBaseGroupsBloxPermGroup</item>
+			<item>RClassOfHClass</item>
+			<item>RNamObj</item>
+			<item>RPFactorsModPrime</item>
+			<item>RPGcdCRT</item>
+			<item>RPGcdModPrime</item>
+			<item>RPGcdRepresentationModPrime</item>
+			<item>RPIFactors</item>
+			<item>RPIGcd</item>
+			<item>RPQuotientModPrime</item>
+			<item>RPSquareHensel</item>
+			<item>RRefine</item>
+			<item>RSSDefaultOptions</item>
+			<item>RadicalGroup</item>
+			<item>RadicalOfAlgebra</item>
+			<item>RanImgSrcSurjBloho</item>
+			<item>RanImgSrcSurjTraho</item>
+			<item>Random</item>
+			<item>RandomBinaryRelationOnPoints</item>
+			<item>RandomByPcs</item>
+			<item>RandomCommutatorSubproduct</item>
+			<item>RandomElmAsWord</item>
+			<item>RandomHashKey</item>
+			<item>RandomInvertibleMat</item>
+			<item>RandomIsomorphismTest</item>
+			<item>RandomList</item>
+			<item>RandomMat</item>
+			<item>RandomNormalSubproduct</item>
+			<item>RandomPcgsSylowSubgroup</item>
+			<item>RandomPol</item>
+			<item>RandomPrimitivePolynomial</item>
+			<item>RandomSchreierSims</item>
+			<item>RandomSpecialPcgsCoded</item>
+			<item>RandomSubprod</item>
+			<item>RandomTransformation</item>
+			<item>RandomUnimodularMat</item>
+			<item>Range</item>
+			<item>Rank</item>
+			<item>RankAction</item>
+			<item>RankFilter</item>
+			<item>RankMat</item>
+			<item>RankMatDestructive</item>
+			<item>RankOfTransformation</item>
+			<item>RankPGroup</item>
+			<item>RanksOfDescendingSeries</item>
+			<item>Rat</item>
+			<item>RatClasPElmArrangeClasses</item>
+			<item>RatPairString</item>
+			<item>RationalClass</item>
+			<item>RationalClasses</item>
+			<item>RationalClassesInEANS</item>
+			<item>RationalClassesPElements</item>
+			<item>RationalClassesPermGroup</item>
+			<item>RationalClassesSolvableGroup</item>
+			<item>RationalClassesTry</item>
+			<item>RationalFunctionByExtRep</item>
+			<item>RationalFunctionByExtRepWithCancellation</item>
+			<item>RationalFunctionsFamily</item>
+			<item>RationalIdentificationPermGroup</item>
+			<item>RationalizedMat</item>
+			<item>Rationals</item>
+			<item>ReObjectify</item>
+			<item>Read</item>
+			<item>ReadAll</item>
+			<item>ReadAllIoStreamByPty</item>
+			<item>ReadAllLine</item>
+			<item>ReadAndCheckFunc</item>
+			<item>ReadAsFunction</item>
+			<item>ReadByte</item>
+			<item>ReadGapRoot</item>
+			<item>ReadGrp</item>
+			<item>ReadLib</item>
+			<item>ReadLine</item>
+			<item>ReadOrComplete</item>
+			<item>ReadPackage</item>
+			<item>ReadPkg</item>
+			<item>ReadPrim</item>
+			<item>ReadSmall</item>
+			<item>ReadSmallLib</item>
+			<item>ReadTest</item>
+			<item>ReadTom</item>
+			<item>ReadTrans</item>
+			<item>RealClasses</item>
+			<item>RealizableBrauerCharacters</item>
+			<item>RecFields</item>
+			<item>RecNames</item>
+			<item>RecordsFamily</item>
+			<item>RecurseSchreierTree</item>
+			<item>RedispatchOnCondition</item>
+			<item>ReduceCoefficientsOfRws</item>
+			<item>ReduceCoeffs</item>
+			<item>ReduceCoeffsMod</item>
+			<item>ReduceLetterRepWordsRewSys</item>
+			<item>ReduceRules</item>
+			<item>ReduceStabChain</item>
+			<item>ReduceWordUsingRewritingSystem</item>
+			<item>Reduced</item>
+			<item>ReducedAdditiveInverse</item>
+			<item>ReducedByIsomorphisms</item>
+			<item>ReducedCharacters</item>
+			<item>ReducedClassFunctions</item>
+			<item>ReducedComm</item>
+			<item>ReducedConfluentRewritingSystem</item>
+			<item>ReducedConfluentRwsFromKbrwsNC</item>
+			<item>ReducedConjugate</item>
+			<item>ReducedDifference</item>
+			<item>ReducedForm</item>
+			<item>ReducedGaloisStabilizerInfo</item>
+			<item>ReducedGroebnerBasis</item>
+			<item>ReducedInverse</item>
+			<item>ReducedLeftQuotient</item>
+			<item>ReducedOne</item>
+			<item>ReducedOrdinary</item>
+			<item>ReducedPcElement</item>
+			<item>ReducedPower</item>
+			<item>ReducedProduct</item>
+			<item>ReducedQuotient</item>
+			<item>ReducedRrsWord</item>
+			<item>ReducedSCTable</item>
+			<item>ReducedScalarProduct</item>
+			<item>ReducedSum</item>
+			<item>ReducedVectorLTM</item>
+			<item>ReducedZero</item>
+			<item>Ree</item>
+			<item>ReeGroup</item>
+			<item>ReeGroupCons</item>
+			<item>ReesCongruenceOfSemigroupIdeal</item>
+			<item>ReesMatrixSemigroup</item>
+			<item>ReesMatrixSemigroupElement</item>
+			<item>ReesMatrixSemigroupEnumeratorGetElement</item>
+			<item>ReesZeroMatrixSemigroup</item>
+			<item>ReesZeroMatrixSemigroupElement</item>
+			<item>ReesZeroMatrixSemigroupElementIsZero</item>
+			<item>ReesZeroMatrixSemigroupEnumeratorGetElement</item>
+			<item>RefinedChain</item>
+			<item>RefinedPcGroup</item>
+			<item>RefinedSymmetrisations</item>
+			<item>RefinedSymmetrizations</item>
+			<item>Refinements</item>
+			<item>ReflectionMat</item>
+			<item>ReflexiveClosureBinaryRelation</item>
+			<item>RegisterRBasePoint</item>
+			<item>RegularActionHomomorphism</item>
+			<item>RegularModule</item>
+			<item>RegularModuleByGens</item>
+			<item>RegularNinKernelCSPG</item>
+			<item>RelVectorToCocycle</item>
+			<item>RelationsOfFpMonoid</item>
+			<item>RelationsOfFpSemigroup</item>
+			<item>RelativeBasis</item>
+			<item>RelativeBasisNC</item>
+			<item>RelativeOrderOfPcElement</item>
+			<item>RelativeOrders</item>
+			<item>RelatorFixedMultiplier</item>
+			<item>RelatorMatrixAbelianizedNormalClosure</item>
+			<item>RelatorMatrixAbelianizedNormalClosureRrs</item>
+			<item>RelatorMatrixAbelianizedSubgroup</item>
+			<item>RelatorMatrixAbelianizedSubgroupMtc</item>
+			<item>RelatorMatrixAbelianizedSubgroupRrs</item>
+			<item>RelatorRepresentatives</item>
+			<item>RelatorsCode</item>
+			<item>RelatorsOfFpAlgebra</item>
+			<item>RelatorsOfFpGroup</item>
+			<item>RelatorsPermGroupHom</item>
+			<item>RelsSortedByStartGen</item>
+			<item>RelsViaCosetTable</item>
+			<item>RemInt</item>
+			<item>RemoveCharacters</item>
+			<item>RemoveElmList</item>
+			<item>RemoveFile</item>
+			<item>RemoveOuterCoeffs</item>
+			<item>RemoveRelator</item>
+			<item>RemoveRootParseTree</item>
+			<item>RemoveSet</item>
+			<item>RemoveStabChain</item>
+			<item>RenumberHighestWeightGenerators</item>
+			<item>RenumberTree</item>
+			<item>RenumberedWord</item>
+			<item>RepOpElmTuplesPermGroup</item>
+			<item>RepOpSetsPermGroup</item>
+			<item>RepeatedString</item>
+			<item>ReplacedString</item>
+			<item>RepresentationsOfMatrix</item>
+			<item>RepresentationsOfObject</item>
+			<item>Representative</item>
+			<item>RepresentativeAction</item>
+			<item>RepresentativeActionOp</item>
+			<item>RepresentativeFromGenerators</item>
+			<item>RepresentativeLinearOperation</item>
+			<item>RepresentativeSmallest</item>
+			<item>RepresentativeTom</item>
+			<item>RepresentativeTomByGenerators</item>
+			<item>RepresentativeTomByGeneratorsNC</item>
+			<item>RepresentativesContainedRightCosets</item>
+			<item>RepresentativesFusions</item>
+			<item>RepresentativesMinimalBlocks</item>
+			<item>RepresentativesMinimalBlocksAttr</item>
+			<item>RepresentativesMinimalBlocksOp</item>
+			<item>RepresentativesPerfectSubgroups</item>
+			<item>RepresentativesPowerMaps</item>
+			<item>RepresentativesSimpleSubgroups</item>
+			<item>RepsPerfSimpSub</item>
+			<item>RequirePackage</item>
+			<item>Reread</item>
+			<item>RereadAndCheckFunc</item>
+			<item>RereadGrp</item>
+			<item>RereadLib</item>
+			<item>RereadPackage</item>
+			<item>RereadPkg</item>
+			<item>RereadPrim</item>
+			<item>RereadSmall</item>
+			<item>RereadTrans</item>
+			<item>ResetFilterObj</item>
+			<item>ResetOptionsStack</item>
+			<item>ResizeFlatHashTable</item>
+			<item>ResizeListHashTable</item>
+			<item>RespectsAddition</item>
+			<item>RespectsAdditiveInverses</item>
+			<item>RespectsInverses</item>
+			<item>RespectsMultiplication</item>
+			<item>RespectsOne</item>
+			<item>RespectsScalarMultiplication</item>
+			<item>RespectsZero</item>
+			<item>RestoreStateRandom</item>
+			<item>Restricted</item>
+			<item>RestrictedClassFunction</item>
+			<item>RestrictedClassFunctions</item>
+			<item>RestrictedExternalSet</item>
+			<item>RestrictedMapping</item>
+			<item>RestrictedNiceMonomorphism</item>
+			<item>RestrictedPartitions</item>
+			<item>RestrictedPartitionsA</item>
+			<item>RestrictedPartitionsK</item>
+			<item>RestrictedPerm</item>
+			<item>RestrictedTransformation</item>
+			<item>ResultOfLineOfStraightLineProgram</item>
+			<item>ResultOfStraightLineProgram</item>
+			<item>Resultant</item>
+			<item>ReturnFail</item>
+			<item>ReturnFalse</item>
+			<item>ReturnNextBasePoint</item>
+			<item>ReturnPopOptions</item>
+			<item>ReturnTrue</item>
+			<item>Reversed</item>
+			<item>ReversedOp</item>
+			<item>Revision</item>
+			<item>RewindStream</item>
+			<item>RewriteAbelianizedSubgroupRelators</item>
+			<item>RewriteSubgroupRelators</item>
+			<item>RewriteWord</item>
+			<item>RightActingAlgebra</item>
+			<item>RightActingDomain</item>
+			<item>RightActingGroup</item>
+			<item>RightActingRingOfIdeal</item>
+			<item>RightAction</item>
+			<item>RightAlgebraModule</item>
+			<item>RightAlgebraModuleByGenerators</item>
+			<item>RightCoset</item>
+			<item>RightCosetCanonicalRepresentativeDeterminator</item>
+			<item>RightCosets</item>
+			<item>RightCosetsNC</item>
+			<item>RightDerivations</item>
+			<item>RightIdeal</item>
+			<item>RightIdealByGenerators</item>
+			<item>RightIdealNC</item>
+			<item>RightMagmaCongruence</item>
+			<item>RightMagmaCongruenceByGeneratingPairs</item>
+			<item>RightMagmaIdeal</item>
+			<item>RightMagmaIdealByGenerators</item>
+			<item>RightModuleByHomomorphismToMatAlg</item>
+			<item>RightSemigroupCongruenceByGeneratingPairs</item>
+			<item>RightSemigroupIdealEnumeratorDataGetElement</item>
+			<item>RightShiftRowVector</item>
+			<item>RightTransversal</item>
+			<item>RightTransversalInParent</item>
+			<item>RightTransversalOp</item>
+			<item>RightTransversalPermGroupConstructor</item>
+			<item>Ring</item>
+			<item>RingByGenerators</item>
+			<item>RingElmTimesElm</item>
+			<item>RingFromFFE</item>
+			<item>RingWithOne</item>
+			<item>RingWithOneByGenerators</item>
+			<item>Root</item>
+			<item>RootBound</item>
+			<item>RootInt</item>
+			<item>RootMod</item>
+			<item>RootModPrime</item>
+			<item>RootModPrimePower</item>
+			<item>RootOfDefiningPolynomial</item>
+			<item>RootSystem</item>
+			<item>RootsMod</item>
+			<item>RootsModPrime</item>
+			<item>RootsModPrimePower</item>
+			<item>RootsOfUPol</item>
+			<item>RootsRepresentativeFFPol</item>
+			<item>RootsUnityMod</item>
+			<item>RootsUnityModPrime</item>
+			<item>RootsUnityModPrimePower</item>
+			<item>RoundCyc</item>
+			<item>RoundCycDown</item>
+			<item>RowEchelonFormLTM</item>
+			<item>RowIndexOfReesMatrixSemigroupElement</item>
+			<item>RowIndexOfReesZeroMatrixSemigroupElement</item>
+			<item>RowSpace</item>
+			<item>RowsOfReesMatrixSemigroup</item>
+			<item>RowsOfReesZeroMatrixSemigroup</item>
+			<item>Rules</item>
+			<item>RunImmediateMethods</item>
+			<item>Runtime</item>
+			<item>Runtimes</item>
+			<item>SCMinSmaGens</item>
+			<item>SCRExtend</item>
+			<item>SCRExtendRecord</item>
+			<item>SCRMakeStabStrong</item>
+			<item>SCRNotice</item>
+			<item>SCRRandomPerm</item>
+			<item>SCRRandomString</item>
+			<item>SCRRandomSubproduct</item>
+			<item>SCRRestoredRecord</item>
+			<item>SCRSchTree</item>
+			<item>SCRSift</item>
+			<item>SCRStrongGenTest</item>
+			<item>SCTableEntry</item>
+			<item>SCTableProduct</item>
+			<item>SLDegree</item>
+			<item>SLUnderlyingField</item>
+			<item>SNFofREF</item>
+			<item>SPolynomial</item>
+			<item>SSortedList</item>
+			<item>SSortedListList</item>
+			<item>STDOut</item>
+			<item>STGSelFunc</item>
+			<item>SameBlock</item>
+			<item>SandwichMatrixOfReesMatrixSemigroup</item>
+			<item>SandwichMatrixOfReesZeroMatrixSemigroup</item>
+			<item>SaveWorkspace</item>
+			<item>ScalarProduct</item>
+			<item>SchreierTransversal</item>
+			<item>SchreierTreeDepth</item>
+			<item>SchreierTreeInternalConsistencyCheck</item>
+			<item>SchuMu</item>
+			<item>SchurCover</item>
+			<item>SchurCoverFP</item>
+			<item>ScriptFromString</item>
+			<item>Search</item>
+			<item>SecHMSM</item>
+			<item>SecondaryGeneratorWordsAugmentedCosetTable</item>
+			<item>SecondaryImagesAugmentedCosetTable</item>
+			<item>SecondsDMYhms</item>
+			<item>SeekPositionStream</item>
+			<item>SelectSmallGroups</item>
+			<item>SelectTransitiveGroups</item>
+			<item>SemiEchelonBasis</item>
+			<item>SemiEchelonBasisNC</item>
+			<item>SemiEchelonMat</item>
+			<item>SemiEchelonMatDestructive</item>
+			<item>SemiEchelonMatTransformation</item>
+			<item>SemiEchelonMatTransformationDestructive</item>
+			<item>SemiEchelonMats</item>
+			<item>SemiEchelonMatsDestructive</item>
+			<item>SemiEchelonMatsNoCo</item>
+			<item>SemiSimpleType</item>
+			<item>SemidirectFactorsOfGroup</item>
+			<item>SemidirectProduct</item>
+			<item>SemidirectProductInfo</item>
+			<item>Semigroup</item>
+			<item>SemigroupByGenerators</item>
+			<item>SemigroupByMultiplicationTable</item>
+			<item>SemigroupCongruenceByGeneratingPairs</item>
+			<item>SemigroupIdealByGenerators</item>
+			<item>SemigroupIdealEnumeratorDataGetElement</item>
+			<item>SemigroupOfRewritingSystem</item>
+			<item>SemigroupTCInitialTableSize</item>
+			<item>SemigroupToddCoxeterInfo</item>
+			<item>Semiring</item>
+			<item>SemiringByGenerators</item>
+			<item>SemiringWithOne</item>
+			<item>SemiringWithOneAndZero</item>
+			<item>SemiringWithOneAndZeroByGenerators</item>
+			<item>SemiringWithOneByGenerators</item>
+			<item>SemiringWithZero</item>
+			<item>SemiringWithZeroByGenerators</item>
+			<item>SeqsOrbits</item>
+			<item>Set</item>
+			<item>SetANonReesCongruenceOfSemigroup</item>
+			<item>SetAbelianInvariants</item>
+			<item>SetAbelianInvariantsOfList</item>
+			<item>SetAbsoluteValue</item>
+			<item>SetActingDomain</item>
+			<item>SetActionHomomorphismAttr</item>
+			<item>SetActionKernelExternalSet</item>
+			<item>SetActorOfExternalSet</item>
+			<item>SetActualLibFileName</item>
+			<item>SetAdditiveElementAsMultiplicativeElement</item>
+			<item>SetAdditiveElementsAsMultiplicativeElementsFamily</item>
+			<item>SetAdditiveInverse</item>
+			<item>SetAdditiveInverseAttr</item>
+			<item>SetAdditiveInverseImmutable</item>
+			<item>SetAdditiveNeutralElement</item>
+			<item>SetAdditivelyActingDomain</item>
+			<item>SetAdjointBasis</item>
+			<item>SetAdjointModule</item>
+			<item>SetAlgebraicElementsFamilies</item>
+			<item>SetAllBlocks</item>
+			<item>SetAllInfoLevels</item>
+			<item>SetAlpha</item>
+			<item>SetAlternatingDegree</item>
+			<item>SetAlternatingSubgroup</item>
+			<item>SetAsDuplicateFreeList</item>
+			<item>SetAsGroup</item>
+			<item>SetAsGroupGeneralMappingByImages</item>
+			<item>SetAsLeftModuleGeneralMappingByImages</item>
+			<item>SetAsList</item>
+			<item>SetAsMagma</item>
+			<item>SetAsMonoid</item>
+			<item>SetAsNearRing</item>
+			<item>SetAsPolynomial</item>
+			<item>SetAsRing</item>
+			<item>SetAsSSortedList</item>
+			<item>SetAsSemigroup</item>
+			<item>SetAsSemiring</item>
+			<item>SetAsSemiringWithOne</item>
+			<item>SetAsSemiringWithOneAndZero</item>
+			<item>SetAsSemiringWithZero</item>
+			<item>SetAsSortedList</item>
+			<item>SetAsSubgroupOfWholeGroupByQuotient</item>
+			<item>SetAssertionLevel</item>
+			<item>SetAssociatedReesMatrixSemigroupOfDClass</item>
+			<item>SetAssociatedSemigroup</item>
+			<item>SetAugmentationIdeal</item>
+			<item>SetAugmentedCosetTableMtcInWholeGroup</item>
+			<item>SetAugmentedCosetTableNormalClosureInWholeGroup</item>
+			<item>SetAugmentedCosetTableRrsInWholeGroup</item>
+			<item>SetAutomorphismDomain</item>
+			<item>SetAutomorphismGroup</item>
+			<item>SetAutomorphismsOfTable</item>
+			<item>SetBaseIntMat</item>
+			<item>SetBaseMat</item>
+			<item>SetBaseOfBasicImageGroup</item>
+			<item>SetBaseOfGroup</item>
+			<item>SetBaseOrthogonalSpaceMat</item>
+			<item>SetBasis</item>
+			<item>SetBasisOfHomCosetAddMatrixGroup</item>
+			<item>SetBasisVectors</item>
+			<item>SetBaumClausenInfo</item>
+			<item>SetBilinearFormMat</item>
+			<item>SetBlocksAttr</item>
+			<item>SetBlocksInfo</item>
+			<item>SetBrauerCharacterValue</item>
+			<item>SetBravaisGroup</item>
+			<item>SetBravaisSubgroups</item>
+			<item>SetBravaisSupergroups</item>
+			<item>SetCanEasilyCompareElements</item>
+			<item>SetCanEasilySortElements</item>
+			<item>SetCanFindNilpotentClassTwoElement</item>
+			<item>SetCanonicalBasis</item>
+			<item>SetCanonicalElt</item>
+			<item>SetCanonicalGenerators</item>
+			<item>SetCanonicalNiceMonomorphism</item>
+			<item>SetCanonicalPcgs</item>
+			<item>SetCanonicalPcgsWrtFamilyPcgs</item>
+			<item>SetCanonicalPcgsWrtHomePcgs</item>
+			<item>SetCanonicalPcgsWrtSpecialPcgs</item>
+			<item>SetCanonicalRepresentativeDeterminatorOfExternalSet</item>
+			<item>SetCanonicalRepresentativeOfExternalOrbitByPcgs</item>
+			<item>SetCanonicalRepresentativeOfExternalSet</item>
+			<item>SetCartanMatrix</item>
+			<item>SetCartanSubalgebra</item>
+			<item>SetCayleyGraphDualSemigroup</item>
+			<item>SetCayleyGraphSemigroup</item>
+			<item>SetCenter</item>
+			<item>SetCentralCharacter</item>
+			<item>SetCentralIdempotentsOfSemiring</item>
+			<item>SetCentralNormalSeriesByPcgs</item>
+			<item>SetCentralizerInGLnZ</item>
+			<item>SetCentralizerInParent</item>
+			<item>SetCentre</item>
+			<item>SetCentreOfCharacter</item>
+			<item>SetChainSubgroup</item>
+			<item>SetChainSubgroupQuotient</item>
+			<item>SetCharacterDegrees</item>
+			<item>SetCharacterNames</item>
+			<item>SetCharacterParameters</item>
+			<item>SetCharacteristic</item>
+			<item>SetCharacteristicPolynomial</item>
+			<item>SetChevalleyBasis</item>
+			<item>SetChiefNormalSeriesByPcgs</item>
+			<item>SetChiefSeries</item>
+			<item>SetClassNames</item>
+			<item>SetClassNamesTom</item>
+			<item>SetClassParameters</item>
+			<item>SetClassPermutation</item>
+			<item>SetClassPositionsOfCentre</item>
+			<item>SetClassPositionsOfDerivedSubgroup</item>
+			<item>SetClassPositionsOfDirectProductDecompositions</item>
+			<item>SetClassPositionsOfElementaryAbelianSeries</item>
+			<item>SetClassPositionsOfFittingSubgroup</item>
+			<item>SetClassPositionsOfKernel</item>
+			<item>SetClassPositionsOfLowerCentralSeries</item>
+			<item>SetClassPositionsOfMaximalNormalSubgroups</item>
+			<item>SetClassPositionsOfNormalSubgroups</item>
+			<item>SetClassPositionsOfSolvableResiduum</item>
+			<item>SetClassPositionsOfSupersolvableResiduum</item>
+			<item>SetClassPositionsOfUpperCentralSeries</item>
+			<item>SetClassRoots</item>
+			<item>SetClassTypesTom</item>
+			<item>SetCoKernelOfAdditiveGeneralMapping</item>
+			<item>SetCoKernelOfMultiplicativeGeneralMapping</item>
+			<item>SetCoefficientsAndMagmaElements</item>
+			<item>SetCoefficientsFamily</item>
+			<item>SetCoefficientsOfLaurentPolynomial</item>
+			<item>SetCoefficientsOfUnivariatePolynomial</item>
+			<item>SetCoefficientsOfUnivariateRationalFunction</item>
+			<item>SetCoefficientsRing</item>
+			<item>SetCollectionsFamily</item>
+			<item>SetColumnIndexOfReesMatrixSemigroupElement</item>
+			<item>SetColumnIndexOfReesZeroMatrixSemigroupElement</item>
+			<item>SetColumnsOfReesMatrixSemigroup</item>
+			<item>SetColumnsOfReesZeroMatrixSemigroup</item>
+			<item>SetCommutator</item>
+			<item>SetCommutatorANC</item>
+			<item>SetCommutatorFactorGroup</item>
+			<item>SetCommutatorLength</item>
+			<item>SetCommutatorNC</item>
+			<item>SetComplementSystem</item>
+			<item>SetComplexConjugate</item>
+			<item>SetComponentsOfTuplesFamily</item>
+			<item>SetCompositionSeries</item>
+			<item>SetComputedAgemos</item>
+			<item>SetComputedAscendingChains</item>
+			<item>SetComputedBrauerTables</item>
+			<item>SetComputedClassFusions</item>
+			<item>SetComputedCyclicExtensionsTom</item>
+			<item>SetComputedHallSubgroups</item>
+			<item>SetComputedIndicators</item>
+			<item>SetComputedIsPNilpotents</item>
+			<item>SetComputedIsPSolvableCharacterTables</item>
+			<item>SetComputedIsPSolvables</item>
+			<item>SetComputedOmegas</item>
+			<item>SetComputedPCentralSeriess</item>
+			<item>SetComputedPCores</item>
+			<item>SetComputedPRumps</item>
+			<item>SetComputedPowerMaps</item>
+			<item>SetComputedPrimeBlockss</item>
+			<item>SetComputedSylowComplements</item>
+			<item>SetComputedSylowSubgroups</item>
+			<item>SetConductor</item>
+			<item>SetConfluentRws</item>
+			<item>SetConjugacyClasses</item>
+			<item>SetConjugacyClassesMaximalSubgroups</item>
+			<item>SetConjugacyClassesPerfectSubgroups</item>
+			<item>SetConjugacyClassesSubgroups</item>
+			<item>SetConjugate</item>
+			<item>SetConjugateANC</item>
+			<item>SetConjugateNC</item>
+			<item>SetConjugates</item>
+			<item>SetConjugatorInnerAutomorphism</item>
+			<item>SetConjugatorOfConjugatorIsomorphism</item>
+			<item>SetConstantTimeAccessList</item>
+			<item>SetConstituentsOfCharacter</item>
+			<item>SetConvertBasicImageGroupElement</item>
+			<item>SetCoreInParent</item>
+			<item>SetCosetTableFpHom</item>
+			<item>SetCosetTableInWholeGroup</item>
+			<item>SetCosetTableNormalClosureInWholeGroup</item>
+			<item>SetCosetTableOfFpSemigroup</item>
+			<item>SetCrystGroupDefaultAction</item>
+			<item>SetCycleStructurePerm</item>
+			<item>SetCyclicExtensionsTom</item>
+			<item>SetDataType</item>
+			<item>SetDecompositionMatrix</item>
+			<item>SetDecompositionTypesOfGroup</item>
+			<item>SetDefaultFieldOfMatrix</item>
+			<item>SetDefaultFieldOfMatrixGroup</item>
+			<item>SetDefectApproximation</item>
+			<item>SetDefiningPcgs</item>
+			<item>SetDefiningPolynomial</item>
+			<item>SetDefinitionNC</item>
+			<item>SetDegreeAction</item>
+			<item>SetDegreeOfBinaryRelation</item>
+			<item>SetDegreeOfCharacter</item>
+			<item>SetDegreeOfLaurentPolynomial</item>
+			<item>SetDegreeOfMatrixGroup</item>
+			<item>SetDegreeOfTransformation</item>
+			<item>SetDegreeOfTransformationSemigroup</item>
+			<item>SetDegreeOperation</item>
+			<item>SetDegreeOverPrimeField</item>
+			<item>SetDelta</item>
+			<item>SetDenominatorOfModuloPcgs</item>
+			<item>SetDenominatorOfRationalFunction</item>
+			<item>SetDepthOfUpperTriangularMatrix</item>
+			<item>SetDerivations</item>
+			<item>SetDerivative</item>
+			<item>SetDerivedLength</item>
+			<item>SetDerivedSeriesOfGroup</item>
+			<item>SetDerivedSubgroup</item>
+			<item>SetDerivedSubgroupsTomPossible</item>
+			<item>SetDerivedSubgroupsTomUnique</item>
+			<item>SetDeterminantMat</item>
+			<item>SetDeterminantOfCharacter</item>
+			<item>SetDihedralGenerators</item>
+			<item>SetDimension</item>
+			<item>SetDimensionOfMatrixGroup</item>
+			<item>SetDimensionOfVectors</item>
+			<item>SetDimensionsLoewyFactors</item>
+			<item>SetDimensionsMat</item>
+			<item>SetDirectFactorsOfGroup</item>
+			<item>SetDirectProductInfo</item>
+			<item>SetDirectSumDecomposition</item>
+			<item>SetDisplayOptions</item>
+			<item>SetDixonRecord</item>
+			<item>SetEANormalSeriesByPcgs</item>
+			<item>SetEarns</item>
+			<item>SetEggBoxOfDClass</item>
+			<item>SetElementTestFunction</item>
+			<item>SetElementaryAbelianSeries</item>
+			<item>SetElementaryAbelianSeriesLargeSteps</item>
+			<item>SetElementaryAbelianSubseries</item>
+			<item>SetElementsFamily</item>
+			<item>SetElmWPObj</item>
+			<item>SetEmptyRowVector</item>
+			<item>SetEntrySCTable</item>
+			<item>SetEnumerator</item>
+			<item>SetEnumeratorByBasis</item>
+			<item>SetEnumeratorSorted</item>
+			<item>SetEquivalenceClassRelation</item>
+			<item>SetEquivalenceClasses</item>
+			<item>SetEquivalenceRelationPartition</item>
+			<item>SetErrorHandler</item>
+			<item>SetExponent</item>
+			<item>SetExponentOfPowering</item>
+			<item>SetExtRepDenominatorRatFun</item>
+			<item>SetExtRepNumeratorRatFun</item>
+			<item>SetExtRepPolynomialRatFun</item>
+			<item>SetExternalOrbits</item>
+			<item>SetExternalOrbitsStabilizers</item>
+			<item>SetExternalSet</item>
+			<item>SetFactorsOfDirectProduct</item>
+			<item>SetFaithfulModule</item>
+			<item>SetFamiliesOfGeneralMappingsAndRanges</item>
+			<item>SetFamilyForOrdering</item>
+			<item>SetFamilyForRewritingSystem</item>
+			<item>SetFamilyPcgs</item>
+			<item>SetFamilyRange</item>
+			<item>SetFamilySource</item>
+			<item>SetFeatureObj</item>
+			<item>SetFieldOfMatrixGroup</item>
+			<item>SetFilterObj</item>
+			<item>SetFittingSubgroup</item>
+			<item>SetFpElmComparisonMethod</item>
+			<item>SetFpElmEqualityMethod</item>
+			<item>SetFpElmKBRWS</item>
+			<item>SetFrattiniSubgroup</item>
+			<item>SetFrattinifactorId</item>
+			<item>SetFrattinifactorSize</item>
+			<item>SetFreeAlgebraOfFpAlgebra</item>
+			<item>SetFreeGeneratorsOfFpAlgebra</item>
+			<item>SetFreeGeneratorsOfFpGroup</item>
+			<item>SetFreeGeneratorsOfFpMonoid</item>
+			<item>SetFreeGeneratorsOfFpSemigroup</item>
+			<item>SetFreeGroupOfBasicImageGroup</item>
+			<item>SetFreeGroupOfFpGroup</item>
+			<item>SetFreeMonoidOfFpMonoid</item>
+			<item>SetFreeMonoidOfRewritingSystem</item>
+			<item>SetFreeSemigroupOfFpSemigroup</item>
+			<item>SetFreeSemigroupOfRewritingSystem</item>
+			<item>SetFrobeniusAutomorphism</item>
+			<item>SetFunctionAction</item>
+			<item>SetFusionConjugacyClassesOp</item>
+			<item>SetFusionsOfLibTom</item>
+			<item>SetFusionsToLibTom</item>
+			<item>SetFusionsTom</item>
+			<item>SetGLDegree</item>
+			<item>SetGLUnderlyingField</item>
+			<item>SetGaloisGroup</item>
+			<item>SetGaloisMat</item>
+			<item>SetGaloisStabilizer</item>
+			<item>SetGaloisType</item>
+			<item>SetGapDocHTMLOptions</item>
+			<item>SetGapDocLaTeXOptions</item>
+			<item>SetGapDocTxtOptions</item>
+			<item>SetGasmanMessageStatus</item>
+			<item>SetGeneralizedPcgs</item>
+			<item>SetGeneratingPairsOfLeftMagmaCongruence</item>
+			<item>SetGeneratingPairsOfMagmaCongruence</item>
+			<item>SetGeneratingPairsOfRightMagmaCongruence</item>
+			<item>SetGeneratingSetIsComplete</item>
+			<item>SetGeneratorOfCyclicGroup</item>
+			<item>SetGeneratorsOfAdditiveGroup</item>
+			<item>SetGeneratorsOfAdditiveMagma</item>
+			<item>SetGeneratorsOfAdditiveMagmaWithInverses</item>
+			<item>SetGeneratorsOfAdditiveMagmaWithZero</item>
+			<item>SetGeneratorsOfAlgebra</item>
+			<item>SetGeneratorsOfAlgebraModule</item>
+			<item>SetGeneratorsOfAlgebraWithOne</item>
+			<item>SetGeneratorsOfDivisionRing</item>
+			<item>SetGeneratorsOfDomain</item>
+			<item>SetGeneratorsOfEquivalenceRelationPartition</item>
+			<item>SetGeneratorsOfExtASet</item>
+			<item>SetGeneratorsOfExtLSet</item>
+			<item>SetGeneratorsOfExtRSet</item>
+			<item>SetGeneratorsOfExtUSet</item>
+			<item>SetGeneratorsOfFLMLOR</item>
+			<item>SetGeneratorsOfFLMLORWithOne</item>
+			<item>SetGeneratorsOfField</item>
+			<item>SetGeneratorsOfGroup</item>
+			<item>SetGeneratorsOfIdeal</item>
+			<item>SetGeneratorsOfLeftIdeal</item>
+			<item>SetGeneratorsOfLeftMagmaIdeal</item>
+			<item>SetGeneratorsOfLeftModule</item>
+			<item>SetGeneratorsOfLeftOperatorAdditiveGroup</item>
+			<item>SetGeneratorsOfLeftOperatorRing</item>
+			<item>SetGeneratorsOfLeftOperatorRingWithOne</item>
+			<item>SetGeneratorsOfLeftVectorSpace</item>
+			<item>SetGeneratorsOfMagma</item>
+			<item>SetGeneratorsOfMagmaIdeal</item>
+			<item>SetGeneratorsOfMagmaWithInverses</item>
+			<item>SetGeneratorsOfMagmaWithOne</item>
+			<item>SetGeneratorsOfMonoid</item>
+			<item>SetGeneratorsOfNearAdditiveGroup</item>
+			<item>SetGeneratorsOfNearAdditiveMagma</item>
+			<item>SetGeneratorsOfNearAdditiveMagmaWithInverses</item>
+			<item>SetGeneratorsOfNearAdditiveMagmaWithZero</item>
+			<item>SetGeneratorsOfRightIdeal</item>
+			<item>SetGeneratorsOfRightMagmaIdeal</item>
+			<item>SetGeneratorsOfRightModule</item>
+			<item>SetGeneratorsOfRightOperatorAdditiveGroup</item>
+			<item>SetGeneratorsOfRing</item>
+			<item>SetGeneratorsOfRingWithOne</item>
+			<item>SetGeneratorsOfRws</item>
+			<item>SetGeneratorsOfSemigroup</item>
+			<item>SetGeneratorsOfSemiring</item>
+			<item>SetGeneratorsOfSemiringWithOne</item>
+			<item>SetGeneratorsOfSemiringWithOneAndZero</item>
+			<item>SetGeneratorsOfSemiringWithZero</item>
+			<item>SetGeneratorsOfTwoSidedIdeal</item>
+			<item>SetGeneratorsOfVectorSpace</item>
+			<item>SetGeneratorsSmallest</item>
+			<item>SetGeneratorsSubgroupsTom</item>
+			<item>SetGlobalPartitionOfClasses</item>
+			<item>SetGrading</item>
+			<item>SetGreensDRelation</item>
+			<item>SetGreensHRelation</item>
+			<item>SetGreensJRelation</item>
+			<item>SetGreensLRelation</item>
+			<item>SetGreensRRelation</item>
+			<item>SetGroupByPcgs</item>
+			<item>SetGroupHClassOfGreensDClass</item>
+			<item>SetGroupOfPcgs</item>
+			<item>SetHallSystem</item>
+			<item>SetHashEntry</item>
+			<item>SetHashEntryAtLastIndex</item>
+			<item>SetHelpViewer</item>
+			<item>SetHirschLength</item>
+			<item>SetHomCosetFamily</item>
+			<item>SetHomFromFreeOfBasicImageGroup</item>
+			<item>SetHomeEnumerator</item>
+			<item>SetHomePcgs</item>
+			<item>SetIBr</item>
+			<item>SetIdGroup</item>
+			<item>SetIdempotents</item>
+			<item>SetIdempotentsTom</item>
+			<item>SetIdempotentsTomInfo</item>
+			<item>SetIdentificationOfConjugacyClasses</item>
+			<item>SetIdentifier</item>
+			<item>SetIdentity</item>
+			<item>SetIdentityMapping</item>
+			<item>SetImage</item>
+			<item>SetImageElt</item>
+			<item>SetImageListOfTransformation</item>
+			<item>SetImageSetOfTransformation</item>
+			<item>SetImagesSmallestGenerators</item>
+			<item>SetImagesSource</item>
+			<item>SetImfRecord</item>
+			<item>SetIndependentGeneratorsOfAbelianGroup</item>
+			<item>SetIndependentGeneratorsOfAbelianMatrixGroup</item>
+			<item>SetIndeterminateName</item>
+			<item>SetIndeterminateNumberOfLaurentPolynomial</item>
+			<item>SetIndeterminateNumberOfUnivariateLaurentPolynomial</item>
+			<item>SetIndeterminateNumberOfUnivariateRationalFunction</item>
+			<item>SetIndeterminateOfUnivariateRationalFunction</item>
+			<item>SetIndeterminatesOfPolynomialRing</item>
+			<item>SetIndexInParent</item>
+			<item>SetIndexInWholeGroup</item>
+			<item>SetIndicesCentralNormalSteps</item>
+			<item>SetIndicesChiefNormalSteps</item>
+			<item>SetIndicesEANormalSteps</item>
+			<item>SetIndicesInvolutaryGenerators</item>
+			<item>SetIndicesNormalSteps</item>
+			<item>SetIndicesOfAdjointBasis</item>
+			<item>SetIndicesPCentralNormalStepsPGroup</item>
+			<item>SetInducedPcgs</item>
+			<item>SetInducedPcgsWrtFamilyPcgs</item>
+			<item>SetInducedPcgsWrtHomePcgs</item>
+			<item>SetInducedPcgsWrtSpecialPcgs</item>
+			<item>SetInfoLevel</item>
+			<item>SetInfoText</item>
+			<item>SetInjectionZeroMagma</item>
+			<item>SetInnerAutomorphismsAutomorphismGroup</item>
+			<item>SetInt</item>
+			<item>SetInternalRepresentative</item>
+			<item>SetInvariantBilinearForm</item>
+			<item>SetInvariantForm</item>
+			<item>SetInvariantLattice</item>
+			<item>SetInvariantQuadraticForm</item>
+			<item>SetInvariantSesquilinearForm</item>
+			<item>SetInverse</item>
+			<item>SetInverseAttr</item>
+			<item>SetInverseClasses</item>
+			<item>SetInverseGeneralMapping</item>
+			<item>SetInverseImmutable</item>
+			<item>SetIrr</item>
+			<item>SetIrrBaumClausen</item>
+			<item>SetIrrConlon</item>
+			<item>SetIrrDixonSchneider</item>
+			<item>SetIrrFacsPol</item>
+			<item>SetIrreducibleRepresentations</item>
+			<item>SetIsAbelian</item>
+			<item>SetIsAbelianNumberField</item>
+			<item>SetIsAbelianTom</item>
+			<item>SetIsAdditiveGroupGeneralMapping</item>
+			<item>SetIsAdditiveGroupHomomorphism</item>
+			<item>SetIsAdditiveGroupToGroupGeneralMapping</item>
+			<item>SetIsAdditiveGroupToGroupHomomorphism</item>
+			<item>SetIsAdditivelyCommutative</item>
+			<item>SetIsAlgebraGeneralMapping</item>
+			<item>SetIsAlgebraHomomorphism</item>
+			<item>SetIsAlgebraModule</item>
+			<item>SetIsAlgebraWithOneGeneralMapping</item>
+			<item>SetIsAlgebraWithOneHomomorphism</item>
+			<item>SetIsAlternatingGroup</item>
+			<item>SetIsAnticommutative</item>
+			<item>SetIsAntisymmetricBinaryRelation</item>
+			<item>SetIsAssociative</item>
+			<item>SetIsAutomorphismGroup</item>
+			<item>SetIsBasicWreathProductOrdering</item>
+			<item>SetIsBergerCondition</item>
+			<item>SetIsBijective</item>
+			<item>SetIsBravaisGroup</item>
+			<item>SetIsBuiltFromAdditiveMagmaWithInverses</item>
+			<item>SetIsBuiltFromGroup</item>
+			<item>SetIsBuiltFromMagma</item>
+			<item>SetIsBuiltFromMagmaWithInverses</item>
+			<item>SetIsBuiltFromMagmaWithOne</item>
+			<item>SetIsBuiltFromMonoid</item>
+			<item>SetIsBuiltFromSemigroup</item>
+			<item>SetIsCanonicalBasis</item>
+			<item>SetIsCanonicalBasisFullMatrixModule</item>
+			<item>SetIsCanonicalBasisFullRowModule</item>
+			<item>SetIsCanonicalBasisFullSCAlgebra</item>
+			<item>SetIsCanonicalNiceMonomorphism</item>
+			<item>SetIsCanonicalPcgs</item>
+			<item>SetIsCanonicalPcgsWrtSpecialPcgs</item>
+			<item>SetIsChainTypeGroup</item>
+			<item>SetIsCharacter</item>
+			<item>SetIsCharacteristicMatrixPGroup</item>
+			<item>SetIsCommutative</item>
+			<item>SetIsCommutativeFamily</item>
+			<item>SetIsConfluent</item>
+			<item>SetIsConjugatorAutomorphism</item>
+			<item>SetIsConjugatorIsomorphism</item>
+			<item>SetIsConstantRationalFunction</item>
+			<item>SetIsConstantTimeAccessGeneralMapping</item>
+			<item>SetIsCycInt</item>
+			<item>SetIsCyclic</item>
+			<item>SetIsCyclicTom</item>
+			<item>SetIsCyclicWithSize</item>
+			<item>SetIsCyclotomicField</item>
+			<item>SetIsDihedralGroup</item>
+			<item>SetIsDistributive</item>
+			<item>SetIsDivisionRing</item>
+			<item>SetIsDuplicateFree</item>
+			<item>SetIsDuplicateFreeList</item>
+			<item>SetIsElementaryAbelian</item>
+			<item>SetIsEmpty</item>
+			<item>SetIsEndoGeneralMapping</item>
+			<item>SetIsEndoMapping</item>
+			<item>SetIsEquivalenceRelation</item>
+			<item>SetIsFFEMatrixGroupOverLargeSpace</item>
+			<item>SetIsFamilyPcgs</item>
+			<item>SetIsField</item>
+			<item>SetIsFieldHomomorphism</item>
+			<item>SetIsFinite</item>
+			<item>SetIsFiniteDimensional</item>
+			<item>SetIsFiniteOrdersPcgs</item>
+			<item>SetIsFiniteSemigroupGreensRelation</item>
+			<item>SetIsFinitelyGeneratedGroup</item>
+			<item>SetIsFrattiniFree</item>
+			<item>SetIsFreeMonoid</item>
+			<item>SetIsFreeSemigroup</item>
+			<item>SetIsFullFpAlgebra</item>
+			<item>SetIsFullHomModule</item>
+			<item>SetIsFullMatrixModule</item>
+			<item>SetIsFullRowModule</item>
+			<item>SetIsFullSCAlgebra</item>
+			<item>SetIsFullSubgroupGLorSLRespectingBilinearForm</item>
+			<item>SetIsFullSubgroupGLorSLRespectingQuadraticForm</item>
+			<item>SetIsFullSubgroupGLorSLRespectingSesquilinearForm</item>
+			<item>SetIsFullTransformationSemigroup</item>
+			<item>SetIsGL</item>
+			<item>SetIsGeneralLinearGroup</item>
+			<item>SetIsGeneralizedCartanMatrix</item>
+			<item>SetIsGeneratorsOfMagmaWithInverses</item>
+			<item>SetIsGreensClass</item>
+			<item>SetIsGreensDClass</item>
+			<item>SetIsGreensDRelation</item>
+			<item>SetIsGreensHClass</item>
+			<item>SetIsGreensHRelation</item>
+			<item>SetIsGreensJClass</item>
+			<item>SetIsGreensJRelation</item>
+			<item>SetIsGreensLClass</item>
+			<item>SetIsGreensLRelation</item>
+			<item>SetIsGreensRClass</item>
+			<item>SetIsGreensRRelation</item>
+			<item>SetIsGreensRelation</item>
+			<item>SetIsGroupGeneralMapping</item>
+			<item>SetIsGroupHClass</item>
+			<item>SetIsGroupHomomorphism</item>
+			<item>SetIsGroupOfAutomorphisms</item>
+			<item>SetIsGroupOfAutomorphismsFiniteGroup</item>
+			<item>SetIsGroupRing</item>
+			<item>SetIsGroupToAdditiveGroupGeneralMapping</item>
+			<item>SetIsGroupToAdditiveGroupHomomorphism</item>
+			<item>SetIsHandledByNiceMonomorphism</item>
+			<item>SetIsHasseDiagram</item>
+			<item>SetIsHomCosetOfAdditiveElt</item>
+			<item>SetIsHomCosetOfFp</item>
+			<item>SetIsHomCosetOfMatrix</item>
+			<item>SetIsHomCosetOfPerm</item>
+			<item>SetIsHomCosetOfTuple</item>
+			<item>SetIsIdealInParent</item>
+			<item>SetIsIdempotent</item>
+			<item>SetIsImpossible</item>
+			<item>SetIsInducedFromNormalSubgroup</item>
+			<item>SetIsInducedPcgsWrtSpecialPcgs</item>
+			<item>SetIsInjective</item>
+			<item>SetIsInnerAutomorphism</item>
+			<item>SetIsIntegerMatrixGroup</item>
+			<item>SetIsIntegralBasis</item>
+			<item>SetIsIntegralCyclotomic</item>
+			<item>SetIsIntegralRing</item>
+			<item>SetIsIrreducibleCharacter</item>
+			<item>SetIsJacobianRing</item>
+			<item>SetIsLDistributive</item>
+			<item>SetIsLatticeOrderBinaryRelation</item>
+			<item>SetIsLaurentPolynomial</item>
+			<item>SetIsLeftActedOnByDivisionRing</item>
+			<item>SetIsLeftAlgebraModule</item>
+			<item>SetIsLeftIdealInParent</item>
+			<item>SetIsLeftModuleGeneralMapping</item>
+			<item>SetIsLeftModuleHomomorphism</item>
+			<item>SetIsLeftSemigroupCongruence</item>
+			<item>SetIsLeftSemigroupIdeal</item>
+			<item>SetIsLieAbelian</item>
+			<item>SetIsLieAlgebra</item>
+			<item>SetIsLieNilpotent</item>
+			<item>SetIsLieSolvable</item>
+			<item>SetIsLinearlyPrimitive</item>
+			<item>SetIsMagmaHomomorphism</item>
+			<item>SetIsMapping</item>
+			<item>SetIsMatrixModule</item>
+			<item>SetIsMinimalNonmonomial</item>
+			<item>SetIsMonoid</item>
+			<item>SetIsMonomialCharacter</item>
+			<item>SetIsMonomialCharacterTable</item>
+			<item>SetIsMonomialGroup</item>
+			<item>SetIsMonomialMatrix</item>
+			<item>SetIsMonomialNumber</item>
+			<item>SetIsNaturalAlternatingGroup</item>
+			<item>SetIsNaturalGL</item>
+			<item>SetIsNaturalSL</item>
+			<item>SetIsNaturalSymmetricGroup</item>
+			<item>SetIsNearRing</item>
+			<item>SetIsNearRingWithOne</item>
+			<item>SetIsNilpQuotientSystem</item>
+			<item>SetIsNilpotentCharacterTable</item>
+			<item>SetIsNilpotentGroup</item>
+			<item>SetIsNilpotentTom</item>
+			<item>SetIsNonTrivial</item>
+			<item>SetIsNoncharacteristicMatrixPGroup</item>
+			<item>SetIsNormalBasis</item>
+			<item>SetIsNormalForm</item>
+			<item>SetIsNormalInParent</item>
+			<item>SetIsNumberField</item>
+			<item>SetIsNumeratorParentPcgsFamilyPcgs</item>
+			<item>SetIsOne</item>
+			<item>SetIsOrderingOnFamilyOfAssocWords</item>
+			<item>SetIsPGroup</item>
+			<item>SetIsPQuotientSystem</item>
+			<item>SetIsPSL</item>
+			<item>SetIsParentPcgsFamilyPcgs</item>
+			<item>SetIsPartialOrderBinaryRelation</item>
+			<item>SetIsPcgsCentralSeries</item>
+			<item>SetIsPcgsChiefSeries</item>
+			<item>SetIsPcgsElementaryAbelianSeries</item>
+			<item>SetIsPcgsPCentralSeriesPGroup</item>
+			<item>SetIsPerfectCharacterTable</item>
+			<item>SetIsPerfectGroup</item>
+			<item>SetIsPerfectTom</item>
+			<item>SetIsPolycyclicGroup</item>
+			<item>SetIsPolynomial</item>
+			<item>SetIsPositionsList</item>
+			<item>SetIsPreOrderBinaryRelation</item>
+			<item>SetIsPrimeField</item>
+			<item>SetIsPrimeOrdersPcgs</item>
+			<item>SetIsPrimitive</item>
+			<item>SetIsPrimitiveAffine</item>
+			<item>SetIsPrimitiveCharacter</item>
+			<item>SetIsPrimitiveMatrixGroup</item>
+			<item>SetIsPseudoCanonicalBasisFullHomModule</item>
+			<item>SetIsQuasiDihedralGroup</item>
+			<item>SetIsQuasiPrimitive</item>
+			<item>SetIsQuaternionGroup</item>
+			<item>SetIsRDistributive</item>
+			<item>SetIsRationalMatrixGroup</item>
+			<item>SetIsRectangularTable</item>
+			<item>SetIsReduced</item>
+			<item>SetIsReesCongruence</item>
+			<item>SetIsReesCongruenceSemigroup</item>
+			<item>SetIsReesMatrixSemigroup</item>
+			<item>SetIsReesZeroMatrixSemigroup</item>
+			<item>SetIsReflexiveBinaryRelation</item>
+			<item>SetIsRegular</item>
+			<item>SetIsRegularDClass</item>
+			<item>SetIsRegularSemigroup</item>
+			<item>SetIsRelativelySM</item>
+			<item>SetIsRestrictedLieAlgebra</item>
+			<item>SetIsRightAlgebraModule</item>
+			<item>SetIsRightIdealInParent</item>
+			<item>SetIsRightSemigroupCongruence</item>
+			<item>SetIsRightSemigroupIdeal</item>
+			<item>SetIsRing</item>
+			<item>SetIsRingGeneralMapping</item>
+			<item>SetIsRingHomomorphism</item>
+			<item>SetIsRingWithOne</item>
+			<item>SetIsRingWithOneGeneralMapping</item>
+			<item>SetIsRingWithOneHomomorphism</item>
+			<item>SetIsRowModule</item>
+			<item>SetIsSL</item>
+			<item>SetIsSSortedList</item>
+			<item>SetIsSemiEchelonized</item>
+			<item>SetIsSemiRegular</item>
+			<item>SetIsSemigroup</item>
+			<item>SetIsSemigroupCongruence</item>
+			<item>SetIsSemigroupIdeal</item>
+			<item>SetIsSemiring</item>
+			<item>SetIsSemiringWithOne</item>
+			<item>SetIsSemiringWithOneAndZero</item>
+			<item>SetIsSemiringWithZero</item>
+			<item>SetIsShortLexOrdering</item>
+			<item>SetIsSimpleAlgebra</item>
+			<item>SetIsSimpleCharacterTable</item>
+			<item>SetIsSimpleGroup</item>
+			<item>SetIsSimpleSemigroup</item>
+			<item>SetIsSingleValued</item>
+			<item>SetIsSkewFieldFamily</item>
+			<item>SetIsSmallList</item>
+			<item>SetIsSolvableCharacterTable</item>
+			<item>SetIsSolvableGroup</item>
+			<item>SetIsSolvableTom</item>
+			<item>SetIsSortedList</item>
+			<item>SetIsSpecialLinearGroup</item>
+			<item>SetIsSpecialPcgs</item>
+			<item>SetIsSporadicSimpleCharacterTable</item>
+			<item>SetIsSporadicSimpleGroup</item>
+			<item>SetIsStabChainViaChainSubgroup</item>
+			<item>SetIsSubgroupSL</item>
+			<item>SetIsSubmonoidFpMonoid</item>
+			<item>SetIsSubnormallyMonomial</item>
+			<item>SetIsSubsemigroupFpSemigroup</item>
+			<item>SetIsSubsemigroupReesMatrixSemigroup</item>
+			<item>SetIsSubsemigroupReesZeroMatrixSemigroup</item>
+			<item>SetIsSubsetLocallyFiniteGroup</item>
+			<item>SetIsSupersolvableCharacterTable</item>
+			<item>SetIsSupersolvableGroup</item>
+			<item>SetIsSurjective</item>
+			<item>SetIsSymmetricBinaryRelation</item>
+			<item>SetIsSymmetricGroup</item>
+			<item>SetIsTotal</item>
+			<item>SetIsTotalOrdering</item>
+			<item>SetIsTransformationMonoid</item>
+			<item>SetIsTransformationSemigroup</item>
+			<item>SetIsTransitive</item>
+			<item>SetIsTransitiveBinaryRelation</item>
+			<item>SetIsTranslationInvariantOrdering</item>
+			<item>SetIsTrivial</item>
+			<item>SetIsTwoSidedIdealInParent</item>
+			<item>SetIsUFDFamily</item>
+			<item>SetIsUniformMatrixGroup</item>
+			<item>SetIsUnivariatePolynomial</item>
+			<item>SetIsUnivariateRationalFunction</item>
+			<item>SetIsVectorSpaceHomomorphism</item>
+			<item>SetIsVirtualCharacter</item>
+			<item>SetIsWeightLexOrdering</item>
+			<item>SetIsWellFoundedOrdering</item>
+			<item>SetIsWeylGroup</item>
+			<item>SetIsWholeFamily</item>
+			<item>SetIsWreathProductOrdering</item>
+			<item>SetIsZero</item>
+			<item>SetIsZeroGroup</item>
+			<item>SetIsZeroMultiplicationRing</item>
+			<item>SetIsZeroRationalFunction</item>
+			<item>SetIsZeroSimpleSemigroup</item>
+			<item>SetIsZeroSquaredRing</item>
+			<item>SetIsomorphismFpAlgebra</item>
+			<item>SetIsomorphismFpFLMLOR</item>
+			<item>SetIsomorphismFpGroup</item>
+			<item>SetIsomorphismFpMonoid</item>
+			<item>SetIsomorphismFpSemigroup</item>
+			<item>SetIsomorphismMatrixAlgebra</item>
+			<item>SetIsomorphismMatrixFLMLOR</item>
+			<item>SetIsomorphismPcGroup</item>
+			<item>SetIsomorphismPermGroup</item>
+			<item>SetIsomorphismReesMatrixSemigroup</item>
+			<item>SetIsomorphismRefinedPcGroup</item>
+			<item>SetIsomorphismSCAlgebra</item>
+			<item>SetIsomorphismSCFLMLOR</item>
+			<item>SetIsomorphismSimplifiedFpGroup</item>
+			<item>SetIsomorphismSpecialPcGroup</item>
+			<item>SetIsomorphismTransformationSemigroup</item>
+			<item>SetJenningsLieAlgebra</item>
+			<item>SetJenningsSeries</item>
+			<item>SetJordanDecomposition</item>
+			<item>SetKernelOfAdditiveGeneralMapping</item>
+			<item>SetKernelOfCharacter</item>
+			<item>SetKernelOfMultiplicativeGeneralMapping</item>
+			<item>SetKernelOfTransformation</item>
+			<item>SetKillingMatrix</item>
+			<item>SetKnowsHowToDecompose</item>
+			<item>SetLClassOfHClass</item>
+			<item>SetLGFirst</item>
+			<item>SetLGHeads</item>
+			<item>SetLGLayers</item>
+			<item>SetLGLength</item>
+			<item>SetLGTails</item>
+			<item>SetLGWeights</item>
+			<item>SetLargestElementGroup</item>
+			<item>SetLargestMovedPoint</item>
+			<item>SetLargestMovedPointPerm</item>
+			<item>SetLatticeGeneratorsInUEA</item>
+			<item>SetLatticeSubgroups</item>
+			<item>SetLeadCoeffsIGS</item>
+			<item>SetLeftActingAlgebra</item>
+			<item>SetLeftActingDomain</item>
+			<item>SetLeftActingGroup</item>
+			<item>SetLeftActingRingOfIdeal</item>
+			<item>SetLeftDerivations</item>
+			<item>SetLength</item>
+			<item>SetLengthsTom</item>
+			<item>SetLessThanFunction</item>
+			<item>SetLessThanOrEqualFunction</item>
+			<item>SetLetterRepWordsLessFunc</item>
+			<item>SetLevelsOfGenerators</item>
+			<item>SetLeviMalcevDecomposition</item>
+			<item>SetLieAlgebraByDomain</item>
+			<item>SetLieCenter</item>
+			<item>SetLieCentralizerInParent</item>
+			<item>SetLieCentre</item>
+			<item>SetLieDerivedSeries</item>
+			<item>SetLieDerivedSubalgebra</item>
+			<item>SetLieFamily</item>
+			<item>SetLieLowerCentralSeries</item>
+			<item>SetLieNilRadical</item>
+			<item>SetLieNormalizerInParent</item>
+			<item>SetLieObject</item>
+			<item>SetLieSolvableRadical</item>
+			<item>SetLieUpperCentralSeries</item>
+			<item>SetLinearActionBasis</item>
+			<item>SetLinearCharacters</item>
+			<item>SetLinesOfStraightLineProgram</item>
+			<item>SetLongestWeylWordPerm</item>
+			<item>SetLowerCentralSeriesOfGroup</item>
+			<item>SetMagmaGeneratorsOfFamily</item>
+			<item>SetMappingGeneratorsImages</item>
+			<item>SetMappingOfWhichItIsAsGGMBI</item>
+			<item>SetMarksTom</item>
+			<item>SetMatTom</item>
+			<item>SetMatrixByBlockMatrix</item>
+			<item>SetMatrixDimension</item>
+			<item>SetMaximalAbelianQuotient</item>
+			<item>SetMaximalBlocksAttr</item>
+			<item>SetMaximalNormalSubgroups</item>
+			<item>SetMaximalSubgroupClassReps</item>
+			<item>SetMaximalSubgroups</item>
+			<item>SetMaximalSubgroupsLattice</item>
+			<item>SetMaximalSubgroupsTom</item>
+			<item>SetMinimalBlockDimension</item>
+			<item>SetMinimalGeneratingSet</item>
+			<item>SetMinimalNormalSubgroups</item>
+			<item>SetMinimalStabChain</item>
+			<item>SetMinimalSupergroupsLattice</item>
+			<item>SetMinimizedBombieriNorm</item>
+			<item>SetModuleOfExtension</item>
+			<item>SetModulusOfZmodnZObj</item>
+			<item>SetMoebiusTom</item>
+			<item>SetMolienSeriesInfo</item>
+			<item>SetMonoidOfRewritingSystem</item>
+			<item>SetMonomialComparisonFunction</item>
+			<item>SetMonomialExtrepComparisonFun</item>
+			<item>SetMovedPoints</item>
+			<item>SetMultipleAttributes</item>
+			<item>SetMultiplicationTable</item>
+			<item>SetMultiplicativeNeutralElement</item>
+			<item>SetMultiplicativeZero</item>
+			<item>SetName</item>
+			<item>SetNameIsomorphismClass</item>
+			<item>SetNamesLibTom</item>
+			<item>SetNamesOfFusionSources</item>
+			<item>SetNaturalCharacter</item>
+			<item>SetNaturalHomomorphismByNormalSubgroupNCInParent</item>
+			<item>SetNaturalHomomorphismsPool</item>
+			<item>SetNegativeRootVectors</item>
+			<item>SetNegativeRoots</item>
+			<item>SetNestingDepthA</item>
+			<item>SetNestingDepthM</item>
+			<item>SetNiceAlgebraMonomorphism</item>
+			<item>SetNiceBasis</item>
+			<item>SetNiceFreeLeftModule</item>
+			<item>SetNiceFreeLeftModuleInfo</item>
+			<item>SetNiceMonomorphism</item>
+			<item>SetNiceNormalFormByExtRepFunction</item>
+			<item>SetNiceObject</item>
+			<item>SetNilpotencyClassOfGroup</item>
+			<item>SetNilpotentClassTwoElement</item>
+			<item>SetNonLieNilpotentElement</item>
+			<item>SetNonNilpotentElement</item>
+			<item>SetNorm</item>
+			<item>SetNormalBase</item>
+			<item>SetNormalClosureInParent</item>
+			<item>SetNormalMaximalSubgroups</item>
+			<item>SetNormalSeriesByPcgs</item>
+			<item>SetNormalSubgroupClassesInfo</item>
+			<item>SetNormalSubgroups</item>
+			<item>SetNormalizerInGLnZ</item>
+			<item>SetNormalizerInGLnZBravaisGroup</item>
+			<item>SetNormalizerInHomePcgs</item>
+			<item>SetNormalizerInParent</item>
+			<item>SetNormalizersTom</item>
+			<item>SetNormedRowVector</item>
+			<item>SetNormedRowVectors</item>
+			<item>SetNormedVectors</item>
+			<item>SetNotifiedFusionsOfLibTom</item>
+			<item>SetNotifiedFusionsToLibTom</item>
+			<item>SetNrConjugacyClasses</item>
+			<item>SetNrInputsOfStraightLineProgram</item>
+			<item>SetNrMovedPoints</item>
+			<item>SetNrMovedPointsPerm</item>
+			<item>SetNrSubsTom</item>
+			<item>SetNrSyllables</item>
+			<item>SetNullAlgebra</item>
+			<item>SetNullspaceIntMat</item>
+			<item>SetNullspaceMat</item>
+			<item>SetNumberGeneratorsOfRws</item>
+			<item>SetNumberSyllables</item>
+			<item>SetNumeratorOfModuloPcgs</item>
+			<item>SetNumeratorOfRationalFunction</item>
+			<item>SetONanScottType</item>
+			<item>SetOccuringVariableIndices</item>
+			<item>SetOmegaAndLowerPCentralSeries</item>
+			<item>SetOmegaSeries</item>
+			<item>SetOne</item>
+			<item>SetOneAttr</item>
+			<item>SetOneImmutable</item>
+			<item>SetOneOfPcgs</item>
+			<item>SetOperatorOfExternalSet</item>
+			<item>SetOrbitGeneratorsOfGroup</item>
+			<item>SetOrbitLengths</item>
+			<item>SetOrbitLengthsDomain</item>
+			<item>SetOrbitStabilizingParentGroup</item>
+			<item>SetOrbits</item>
+			<item>SetOrbitsDomain</item>
+			<item>SetOrder</item>
+			<item>SetOrderingOfRewritingSystem</item>
+			<item>SetOrderingOnGenerators</item>
+			<item>SetOrderingsFamily</item>
+			<item>SetOrdersClassRepresentatives</item>
+			<item>SetOrdersTom</item>
+			<item>SetOrdinaryCharacterTable</item>
+			<item>SetOrthogonalSpaceInFullRowSpace</item>
+			<item>SetPCentralLieAlgebra</item>
+			<item>SetPCentralNormalSeriesByPcgsPGroup</item>
+			<item>SetPClassPGroup</item>
+			<item>SetPSLDegree</item>
+			<item>SetPSLUnderlyingField</item>
+			<item>SetPackageInfo</item>
+			<item>SetParent</item>
+			<item>SetParentAttr</item>
+			<item>SetParentPcgs</item>
+			<item>SetPartialClosureOfCongruence</item>
+			<item>SetPartialOrderOfHasseDiagram</item>
+			<item>SetPcGroupWithPcgs</item>
+			<item>SetPcSeries</item>
+			<item>SetPcgs</item>
+			<item>SetPcgsCentralSeries</item>
+			<item>SetPcgsChiefSeries</item>
+			<item>SetPcgsElementaryAbelianSeries</item>
+			<item>SetPcgsPCentralSeriesPGroup</item>
+			<item>SetPerfectIdentification</item>
+			<item>SetPerfectResiduum</item>
+			<item>SetPermutationTom</item>
+			<item>SetPositiveRootVectors</item>
+			<item>SetPositiveRoots</item>
+			<item>SetPositiveRootsAsWeights</item>
+			<item>SetPower</item>
+			<item>SetPowerANC</item>
+			<item>SetPowerNC</item>
+			<item>SetPowerS</item>
+			<item>SetPowerSubalgebraSeries</item>
+			<item>SetPreBasis</item>
+			<item>SetPreImagesRange</item>
+			<item>SetPreferredGenerators</item>
+			<item>SetPrefrattiniSubgroup</item>
+			<item>SetPresentation</item>
+			<item>SetPrimaryGeneratorWords</item>
+			<item>SetPrimeField</item>
+			<item>SetPrimePGroup</item>
+			<item>SetPrimePowerComponents</item>
+			<item>SetPrimitiveElement</item>
+			<item>SetPrimitiveIdentification</item>
+			<item>SetPrimitiveRoot</item>
+			<item>SetPrintFormattingStatus</item>
+			<item>SetProjectiveOrder</item>
+			<item>SetPseudoRandomSeed</item>
+			<item>SetPthPowerImages</item>
+			<item>SetQuasiDihedralGenerators</item>
+			<item>SetQuaternionGenerators</item>
+			<item>SetQuotientGroup</item>
+			<item>SetQuotientGroupHom</item>
+			<item>SetQuotientSemigroupCongruence</item>
+			<item>SetQuotientSemigroupHomomorphism</item>
+			<item>SetQuotientSemigroupPreimage</item>
+			<item>SetRClassOfHClass</item>
+			<item>SetRadicalGroup</item>
+			<item>SetRadicalOfAlgebra</item>
+			<item>SetRange</item>
+			<item>SetRankAction</item>
+			<item>SetRankMat</item>
+			<item>SetRankOfTransformation</item>
+			<item>SetRankPGroup</item>
+			<item>SetRat</item>
+			<item>SetRationalClasses</item>
+			<item>SetRationalFunctionsFamily</item>
+			<item>SetRationalizedMat</item>
+			<item>SetRealClasses</item>
+			<item>SetRecNames</item>
+			<item>SetRecursionTrapInterval</item>
+			<item>SetReducedConfluentRewritingSystem</item>
+			<item>SetReducedMultiplication</item>
+			<item>SetReesCongruenceOfSemigroupIdeal</item>
+			<item>SetReesZeroMatrixSemigroupElementIsZero</item>
+			<item>SetRefinedPcGroup</item>
+			<item>SetRegularActionHomomorphism</item>
+			<item>SetRelationsOfFpMonoid</item>
+			<item>SetRelationsOfFpSemigroup</item>
+			<item>SetRelativeOrder</item>
+			<item>SetRelativeOrderNC</item>
+			<item>SetRelativeOrders</item>
+			<item>SetRelatorsOfFpAlgebra</item>
+			<item>SetRelatorsOfFpGroup</item>
+			<item>SetRepresentative</item>
+			<item>SetRepresentativeSmallest</item>
+			<item>SetRepresentativesContainedRightCosets</item>
+			<item>SetRepresentativesMinimalBlocksAttr</item>
+			<item>SetRepresentativesPerfectSubgroups</item>
+			<item>SetRepresentativesSimpleSubgroups</item>
+			<item>SetRespectsAddition</item>
+			<item>SetRespectsAdditiveInverses</item>
+			<item>SetRespectsInverses</item>
+			<item>SetRespectsMultiplication</item>
+			<item>SetRespectsOne</item>
+			<item>SetRespectsScalarMultiplication</item>
+			<item>SetRespectsZero</item>
+			<item>SetRightActingAlgebra</item>
+			<item>SetRightActingDomain</item>
+			<item>SetRightActingGroup</item>
+			<item>SetRightActingRingOfIdeal</item>
+			<item>SetRightDerivations</item>
+			<item>SetRightTransversalInParent</item>
+			<item>SetRootOfDefiningPolynomial</item>
+			<item>SetRootSystem</item>
+			<item>SetRowIndexOfReesMatrixSemigroupElement</item>
+			<item>SetRowIndexOfReesZeroMatrixSemigroupElement</item>
+			<item>SetRowsOfReesMatrixSemigroup</item>
+			<item>SetRowsOfReesZeroMatrixSemigroup</item>
+			<item>SetRules</item>
+			<item>SetSLDegree</item>
+			<item>SetSLUnderlyingField</item>
+			<item>SetSandwichMatrixOfReesMatrixSemigroup</item>
+			<item>SetSandwichMatrixOfReesZeroMatrixSemigroup</item>
+			<item>SetSemiEchelonBasis</item>
+			<item>SetSemiEchelonMat</item>
+			<item>SetSemiEchelonMatTransformation</item>
+			<item>SetSemiSimpleType</item>
+			<item>SetSemidirectFactorsOfGroup</item>
+			<item>SetSemidirectProductInfo</item>
+			<item>SetSemigroupOfRewritingSystem</item>
+			<item>SetSiftFunction</item>
+			<item>SetSiftGroup</item>
+			<item>SetSignPerm</item>
+			<item>SetSimpleSystem</item>
+			<item>SetSimsNo</item>
+			<item>SetSize</item>
+			<item>SetSizesCentralizers</item>
+			<item>SetSizesConjugacyClasses</item>
+			<item>SetSmallGeneratingSet</item>
+			<item>SetSmallestGeneratorPerm</item>
+			<item>SetSmallestMovedPoint</item>
+			<item>SetSmallestMovedPointPerm</item>
+			<item>SetSocle</item>
+			<item>SetSocleComplement</item>
+			<item>SetSocleDimensions</item>
+			<item>SetSocleTypePrimitiveGroup</item>
+			<item>SetSortingPerm</item>
+			<item>SetSource</item>
+			<item>SetSparseCartanMatrix</item>
+			<item>SetSpecialPcgs</item>
+			<item>SetSplittingField</item>
+			<item>SetStabChainImmutable</item>
+			<item>SetStabChainMutable</item>
+			<item>SetStabChainOptions</item>
+			<item>SetStabilizerOfExternalSet</item>
+			<item>SetStandardGeneratorsInfo</item>
+			<item>SetStoredExcludedOrders</item>
+			<item>SetStoredGroebnerBasis</item>
+			<item>SetStraightLineProgElmType</item>
+			<item>SetStraightLineProgramsTom</item>
+			<item>SetString</item>
+			<item>SetStructureConstantsTable</item>
+			<item>SetStructureDescription</item>
+			<item>SetSubdirectProductInfo</item>
+			<item>SetSubfields</item>
+			<item>SetSubnormalSeriesInParent</item>
+			<item>SetSubsTom</item>
+			<item>SetSubspaces</item>
+			<item>SetSubspacesAll</item>
+			<item>SetSuccessors</item>
+			<item>SetSupersolvableResiduum</item>
+			<item>SetSurjectiveActionHomomorphismAttr</item>
+			<item>SetSylowSystem</item>
+			<item>SetSymmetricDegree</item>
+			<item>SetSymmetricParentGroup</item>
+			<item>SetTableOfMarks</item>
+			<item>SetTestMonomial</item>
+			<item>SetTestMonomialQuick</item>
+			<item>SetTestQuasiPrimitive</item>
+			<item>SetTestRelativelySM</item>
+			<item>SetTestSubnormallyMonomial</item>
+			<item>SetTietzeOrigin</item>
+			<item>SetTrace</item>
+			<item>SetTranformsOneIntoZero</item>
+			<item>SetTransformationRepresentation</item>
+			<item>SetTransformsAdditionIntoMultiplication</item>
+			<item>SetTransformsAdditiveInversesIntoInverses</item>
+			<item>SetTransformsInversesIntoAdditiveInverses</item>
+			<item>SetTransformsMultiplicationIntoAddition</item>
+			<item>SetTransformsZeroIntoOne</item>
+			<item>SetTransitiveIdentification</item>
+			<item>SetTransitivity</item>
+			<item>SetTransposedMat</item>
+			<item>SetTransposedMatAttr</item>
+			<item>SetTransposedMatImmutable</item>
+			<item>SetTransposedMatrixGroup</item>
+			<item>SetTransversal</item>
+			<item>SetTriangulizedNullspaceMat</item>
+			<item>SetTrivialCharacter</item>
+			<item>SetTrivialSubFLMLOR</item>
+			<item>SetTrivialSubadditiveMagmaWithZero</item>
+			<item>SetTrivialSubalgebra</item>
+			<item>SetTrivialSubgroup</item>
+			<item>SetTrivialSubmagmaWithOne</item>
+			<item>SetTrivialSubmodule</item>
+			<item>SetTrivialSubmonoid</item>
+			<item>SetTrivialSubnearAdditiveMagmaWithZero</item>
+			<item>SetTrivialSubspace</item>
+			<item>SetTwoClosure</item>
+			<item>SetTypeObj</item>
+			<item>SetTzOptions</item>
+			<item>SetTzRules</item>
+			<item>SetUnderlyingCharacterTable</item>
+			<item>SetUnderlyingCharacteristic</item>
+			<item>SetUnderlyingCollection</item>
+			<item>SetUnderlyingElementOfReesMatrixSemigroupElement</item>
+			<item>SetUnderlyingElementOfReesZeroMatrixSemigroupElement</item>
+			<item>SetUnderlyingExternalSet</item>
+			<item>SetUnderlyingFamily</item>
+			<item>SetUnderlyingField</item>
+			<item>SetUnderlyingGeneralMapping</item>
+			<item>SetUnderlyingGroup</item>
+			<item>SetUnderlyingLeftModule</item>
+			<item>SetUnderlyingLieAlgebra</item>
+			<item>SetUnderlyingMagma</item>
+			<item>SetUnderlyingRelation</item>
+			<item>SetUnderlyingSemigroupOfReesMatrixSemigroup</item>
+			<item>SetUnderlyingSemigroupOfReesZeroMatrixSemigroup</item>
+			<item>SetUnderlyingVectorSpace</item>
+			<item>SetUnits</item>
+			<item>SetUniversalEnvelopingAlgebra</item>
+			<item>SetUpperActingDomain</item>
+			<item>SetUpperCentralSeriesOfGroup</item>
+			<item>SetValueOption</item>
+			<item>SetValuesOfClassFunction</item>
+			<item>SetWeightOfGenerators</item>
+			<item>SetWeightsTom</item>
+			<item>SetWeylGroup</item>
+			<item>SetWreathProductInfo</item>
+			<item>SetX</item>
+			<item>SetXHelp</item>
+			<item>SetZClassRepsQClass</item>
+			<item>SetZero</item>
+			<item>SetZeroAttr</item>
+			<item>SetZeroCoefficient</item>
+			<item>SetZeroImmutable</item>
+			<item>SetZuppos</item>
+			<item>SetnpeGL</item>
+			<item>SetnpePSL</item>
+			<item>SetnpeSL</item>
+			<item>SetsOrbits</item>
+			<item>Setter</item>
+			<item>ShallowCopy</item>
+			<item>ShapeFrequencies</item>
+			<item>SharedObj</item>
+			<item>SharedType</item>
+			<item>ShiftedCoeffs</item>
+			<item>ShiftedPadicNumber</item>
+			<item>ShortLexOrdering</item>
+			<item>ShortLexOrderingNC</item>
+			<item>ShortestVectors</item>
+			<item>ShowArgument</item>
+			<item>ShowArguments</item>
+			<item>ShowDetails</item>
+			<item>ShowImpliedFilters</item>
+			<item>ShowMethods</item>
+			<item>ShowOtherMethods</item>
+			<item>ShowPackageVariables</item>
+			<item>ShrinkCoeffs</item>
+			<item>ShrinkRowVector</item>
+			<item>ShrinkableHashTable</item>
+			<item>ShrinkableSingleValuedHashTable</item>
+			<item>Sift</item>
+			<item>SiftAsWord</item>
+			<item>SiftForStrongGenerator</item>
+			<item>SiftFunction</item>
+			<item>SiftGroup</item>
+			<item>SiftOneLevel</item>
+			<item>SiftVector</item>
+			<item>SiftedPcElement</item>
+			<item>SiftedPermutation</item>
+			<item>SiftedVector</item>
+			<item>SiftedVectorForGaussianMatrixSpace</item>
+			<item>SiftedVectorForGaussianRowSpace</item>
+			<item>SiftedWord</item>
+			<item>Sigma</item>
+			<item>SignInt</item>
+			<item>SignPartition</item>
+			<item>SignPerm</item>
+			<item>SignPermGroup</item>
+			<item>SimpleLieAlgebra</item>
+			<item>SimpleLieAlgebraTypeH</item>
+			<item>SimpleLieAlgebraTypeK</item>
+			<item>SimpleLieAlgebraTypeS</item>
+			<item>SimpleLieAlgebraTypeW</item>
+			<item>SimpleSystem</item>
+			<item>SimplifiedFpGroup</item>
+			<item>SimplifyPresentation</item>
+			<item>SimsName</item>
+			<item>SimsNo</item>
+			<item>SimultaneousEigenvalues</item>
+			<item>SingleCollector</item>
+			<item>SingleCollectorByGenerators</item>
+			<item>SingleCollectorByRelators</item>
+			<item>SingleValuedHashTable</item>
+			<item>Size</item>
+			<item>SizeBlist</item>
+			<item>SizeConsiderFunction</item>
+			<item>SizeGL</item>
+			<item>SizeNumbersPerfectGroups</item>
+			<item>SizeOfChainOfGroup</item>
+			<item>SizeOfFieldOfDefinition</item>
+			<item>SizeOfGLdZmodmZ</item>
+			<item>SizePSL</item>
+			<item>SizePolynomialUnipotentClassGL</item>
+			<item>SizeSL</item>
+			<item>SizeScreen</item>
+			<item>SizeStabChain</item>
+			<item>SizeUpperBound</item>
+			<item>SizesCentralizers</item>
+			<item>SizesConjugacyClasses</item>
+			<item>SizesPerfectGroups</item>
+			<item>Sleep</item>
+			<item>SmallGeneratingSet</item>
+			<item>SmallGroup</item>
+			<item>SmallGroupsInformation</item>
+			<item>SmallSpaceCutoff</item>
+			<item>SmallerDegreePermutationRepresentation</item>
+			<item>SmallestGeneratorPerm</item>
+			<item>SmallestMovedPoint</item>
+			<item>SmallestMovedPointPerm</item>
+			<item>SmallestMovedPointPerms</item>
+			<item>SmallestPrimeDivisor</item>
+			<item>SmallestRootInt</item>
+			<item>SmithNormalFormIntegerMat</item>
+			<item>SmithNormalFormIntegerMatTransforms</item>
+			<item>SmithNormalFormSQ</item>
+			<item>Socle</item>
+			<item>SocleComplement</item>
+			<item>SocleDimensions</item>
+			<item>SocleTypePrimitiveGroup</item>
+			<item>SolutionIntMat</item>
+			<item>SolutionMat</item>
+			<item>SolutionMatDestructive</item>
+			<item>SolutionMatNoCo</item>
+			<item>SolutionNullspaceIntMat</item>
+			<item>SolutionSQ</item>
+			<item>SolvableNormalClosurePermGroup</item>
+			<item>SolvableQuotient</item>
+			<item>SomeVerbalSubgroups</item>
+			<item>Sort</item>
+			<item>SortParallel</item>
+			<item>SortRationalClasses</item>
+			<item>SortRelsSortedByStartGen</item>
+			<item>SortedCharacterTable</item>
+			<item>SortedCharacters</item>
+			<item>SortedList</item>
+			<item>SortedSparseActionHomomorphism</item>
+			<item>SortedSparseActionHomomorphismOp</item>
+			<item>SortedTom</item>
+			<item>Sortex</item>
+			<item>SortingPerm</item>
+			<item>Source</item>
+			<item>SourceElt</item>
+			<item>Sp</item>
+			<item>SpanOfMatrixGroup</item>
+			<item>SpanningTree</item>
+			<item>SparseActionHomomorphism</item>
+			<item>SparseActionHomomorphismOp</item>
+			<item>SparseCartanMatrix</item>
+			<item>SparseHashTable</item>
+			<item>SparseIntKey</item>
+			<item>SpecialLinearGroup</item>
+			<item>SpecialLinearGroupCons</item>
+			<item>SpecialOrthogonalGroup</item>
+			<item>SpecialOrthogonalGroupCons</item>
+			<item>SpecialPcgs</item>
+			<item>SpecialPcgsFactor</item>
+			<item>SpecialPcgsSubgroup</item>
+			<item>SpecialUnitaryGroup</item>
+			<item>SpecialUnitaryGroupCons</item>
+			<item>SpecializedExtRepPol</item>
+			<item>SpinInductionScheme</item>
+			<item>SpinorNorm</item>
+			<item>SplitCell</item>
+			<item>SplitCharacters</item>
+			<item>SplitExtension</item>
+			<item>SplitStep</item>
+			<item>SplitString</item>
+			<item>SplitStringInternal</item>
+			<item>SplitTwoSpace</item>
+			<item>SplitUpSublistsByFpFunc</item>
+			<item>SplitWordTail</item>
+			<item>SplittingField</item>
+			<item>Sqrt</item>
+			<item>SquareRoots</item>
+			<item>StabChain</item>
+			<item>StabChainBaseStrongGenerators</item>
+			<item>StabChainForcePoint</item>
+			<item>StabChainImmutable</item>
+			<item>StabChainMutable</item>
+			<item>StabChainOp</item>
+			<item>StabChainOptions</item>
+			<item>StabChainPermGroupToPermGroupGeneralMappingByImages</item>
+			<item>StabChainRandomPermGroup</item>
+			<item>StabChainStrong</item>
+			<item>StabChainSwap</item>
+			<item>Stabilizer</item>
+			<item>StabilizerByMatrixOperation</item>
+			<item>StabilizerFunc</item>
+			<item>StabilizerFuncOp</item>
+			<item>StabilizerOfBlockNC</item>
+			<item>StabilizerOfExternalSet</item>
+			<item>StabilizerOp</item>
+			<item>StabilizerPcgs</item>
+			<item>StandardAssociate</item>
+			<item>StandardClassMatrixColumn</item>
+			<item>StandardGeneratorsFunctions</item>
+			<item>StandardGeneratorsInfo</item>
+			<item>StandardGeneratorsOfFullHomModule</item>
+			<item>StandardGeneratorsOfFullMatrixModule</item>
+			<item>StandardGeneratorsOfGroup</item>
+			<item>StandardScalarProduct</item>
+			<item>StandardizeTable</item>
+			<item>StandardizeTableC</item>
+			<item>StarCyc</item>
+			<item>StateRandom</item>
+			<item>StatusRandom</item>
+			<item>StepModGauss</item>
+			<item>StopNumConsecSiftToOne</item>
+			<item>StopNumSift</item>
+			<item>StopSize</item>
+			<item>StoreAlgExtFam</item>
+			<item>StoreFactorsPol</item>
+			<item>StoreFusion</item>
+			<item>StoreInfoFreeMagma</item>
+			<item>StoredExcludedOrders</item>
+			<item>StoredGroebnerBasis</item>
+			<item>StraightLineProgElm</item>
+			<item>StraightLineProgElmType</item>
+			<item>StraightLineProgGens</item>
+			<item>StraightLineProgram</item>
+			<item>StraightLineProgramElmRankFilter</item>
+			<item>StraightLineProgramNC</item>
+			<item>StraightLineProgramsDefaultType</item>
+			<item>StraightLineProgramsFamily</item>
+			<item>StraightLineProgramsTom</item>
+			<item>StratMeetPartition</item>
+			<item>StreamsFamily</item>
+			<item>StretchImportantSLPElement</item>
+			<item>String</item>
+			<item>StringDate</item>
+			<item>StringFamily</item>
+			<item>StringFile</item>
+			<item>StringImType</item>
+			<item>StringOfResultOfLineOfStraightLineProgram</item>
+			<item>StringOfResultOfStraightLineProgram</item>
+			<item>StringOfUnivariateRationalPolynomialByCoefficients</item>
+			<item>StringPP</item>
+			<item>StringPrint</item>
+			<item>StringStreamInputTextFile</item>
+			<item>StringTime</item>
+			<item>StringToStraightLineProgram</item>
+			<item>StringUnivariateLaurent</item>
+			<item>StringView</item>
+			<item>StripBeginEnd</item>
+			<item>StripEscapeSequences</item>
+			<item>StrongGeneratorsStabChain</item>
+			<item>StrongGens</item>
+			<item>StronglyConnectedComponents</item>
+			<item>StructuralCopy</item>
+			<item>StructureConstantsPadicNumbers</item>
+			<item>StructureConstantsTable</item>
+			<item>StructureDescription</item>
+			<item>SuPeRfail</item>
+			<item>SubAlgebraModule</item>
+			<item>SubFLMLOR</item>
+			<item>SubFLMLORNC</item>
+			<item>SubFLMLORWithOne</item>
+			<item>SubFLMLORWithOneNC</item>
+			<item>SubGModLeadPos</item>
+			<item>SubSyllables</item>
+			<item>SubadditiveGroup</item>
+			<item>SubadditiveGroupNC</item>
+			<item>SubadditiveMagma</item>
+			<item>SubadditiveMagmaNC</item>
+			<item>SubadditiveMagmaWithInverses</item>
+			<item>SubadditiveMagmaWithInversesNC</item>
+			<item>SubadditiveMagmaWithZero</item>
+			<item>SubadditiveMagmaWithZeroNC</item>
+			<item>Subalgebra</item>
+			<item>SubalgebraNC</item>
+			<item>SubalgebraWithOne</item>
+			<item>SubalgebraWithOneNC</item>
+			<item>SubdirProdPcGroups</item>
+			<item>SubdirectDiagonalPerms</item>
+			<item>SubdirectProduct</item>
+			<item>SubdirectProductInfo</item>
+			<item>SubdirectProductOp</item>
+			<item>SubdirectProducts</item>
+			<item>Subfield</item>
+			<item>SubfieldNC</item>
+			<item>Subfields</item>
+			<item>SubgpConjSymmgp</item>
+			<item>Subgroup</item>
+			<item>SubgroupByPcgs</item>
+			<item>SubgroupByProperty</item>
+			<item>SubgroupGeneratorsCosetTable</item>
+			<item>SubgroupMethodByNiceMonomorphism</item>
+			<item>SubgroupMethodByNiceMonomorphismCollColl</item>
+			<item>SubgroupMethodByNiceMonomorphismCollElm</item>
+			<item>SubgroupMethodByNiceMonomorphismCollOther</item>
+			<item>SubgroupNC</item>
+			<item>SubgroupOfWholeGroupByCosetTable</item>
+			<item>SubgroupOfWholeGroupByQuotientSubgroup</item>
+			<item>SubgroupProperty</item>
+			<item>SubgroupShell</item>
+			<item>SubgroupsMethodByNiceMonomorphism</item>
+			<item>SubgroupsOrbitsAndNormalizers</item>
+			<item>SubgroupsSolvableGroup</item>
+			<item>Submagma</item>
+			<item>SubmagmaNC</item>
+			<item>SubmagmaWithInverses</item>
+			<item>SubmagmaWithInversesNC</item>
+			<item>SubmagmaWithOne</item>
+			<item>SubmagmaWithOneNC</item>
+			<item>Submodule</item>
+			<item>SubmoduleNC</item>
+			<item>Submonoid</item>
+			<item>SubmonoidNC</item>
+			<item>SubnearAdditiveGroup</item>
+			<item>SubnearAdditiveGroupNC</item>
+			<item>SubnearAdditiveMagma</item>
+			<item>SubnearAdditiveMagmaNC</item>
+			<item>SubnearAdditiveMagmaWithInverses</item>
+			<item>SubnearAdditiveMagmaWithInversesNC</item>
+			<item>SubnearAdditiveMagmaWithZero</item>
+			<item>SubnearAdditiveMagmaWithZeroNC</item>
+			<item>SubnormalSeries</item>
+			<item>SubnormalSeriesInParent</item>
+			<item>SubnormalSeriesOp</item>
+			<item>SuboLiBli</item>
+			<item>SuboSiBli</item>
+			<item>SuboTruePos</item>
+			<item>SuboUniteBlist</item>
+			<item>Suborbits</item>
+			<item>Subring</item>
+			<item>SubringNC</item>
+			<item>SubringWithOne</item>
+			<item>SubringWithOneNC</item>
+			<item>SubsTom</item>
+			<item>Subsemigroup</item>
+			<item>SubsemigroupNC</item>
+			<item>Subsemiring</item>
+			<item>SubsemiringNC</item>
+			<item>SubsemiringWithOne</item>
+			<item>SubsemiringWithOneAndZero</item>
+			<item>SubsemiringWithOneAndZeroNC</item>
+			<item>SubsemiringWithOneNC</item>
+			<item>SubsemiringWithZero</item>
+			<item>SubsemiringWithZeroNC</item>
+			<item>Subspace</item>
+			<item>SubspaceNC</item>
+			<item>SubspaceVectorSpaceGroup</item>
+			<item>Subspaces</item>
+			<item>SubspacesAll</item>
+			<item>SubspacesDim</item>
+			<item>SubstitutedWord</item>
+			<item>SubstitutionSublist</item>
+			<item>SubtractBlist</item>
+			<item>SubtractBlistOrbitStabChain</item>
+			<item>SubtractSet</item>
+			<item>Subtype</item>
+			<item>Subword</item>
+			<item>Successors</item>
+			<item>SuggestUpgrades</item>
+			<item>Sum</item>
+			<item>SumCoefPolynomial</item>
+			<item>SumCoefRatfun</item>
+			<item>SumCoeffLaurpol</item>
+			<item>SumCoeffUnivfunc</item>
+			<item>SumFactorizationFunctionPcgs</item>
+			<item>SumIntersectionMat</item>
+			<item>SumOfMBMAndMapping</item>
+			<item>SumOfMappingAndMBM</item>
+			<item>SumOfPcElement</item>
+			<item>SumOp</item>
+			<item>SumPcgs</item>
+			<item>SumRootsPol</item>
+			<item>SumRootsPolComp</item>
+			<item>SumX</item>
+			<item>SumXHelp</item>
+			<item>SummandMolienSeries</item>
+			<item>SupType</item>
+			<item>SupersolvableResiduum</item>
+			<item>SupersolvableResiduumDefault</item>
+			<item>SupportedCharacterTableInfo</item>
+			<item>SupportedLibraryTableComponents</item>
+			<item>SurjectiveActionHomomorphismAttr</item>
+			<item>SuzukiGroup</item>
+			<item>SuzukiGroupCons</item>
+			<item>SyllableRepAssocWord</item>
+			<item>SyllableWordObjByExtRep</item>
+			<item>SylowComplement</item>
+			<item>SylowComplementOp</item>
+			<item>SylowSubgroup</item>
+			<item>SylowSubgroupOp</item>
+			<item>SylowSubgroupPermGroup</item>
+			<item>SylowSystem</item>
+			<item>SymAdic</item>
+			<item>SymmetricClosureBinaryRelation</item>
+			<item>SymmetricDegree</item>
+			<item>SymmetricGroup</item>
+			<item>SymmetricGroupCons</item>
+			<item>SymmetricParentGroup</item>
+			<item>SymmetricParts</item>
+			<item>SymmetricPower</item>
+			<item>SymmetricPowerOfAlgebraModule</item>
+			<item>Symmetrisations</item>
+			<item>Symmetrizations</item>
+			<item>SymplecticComponents</item>
+			<item>SymplecticGroup</item>
+			<item>SymplecticGroupCons</item>
+			<item>SyzygyCriterion</item>
+			<item>Sz</item>
+			<item>TRANSGrp</item>
+			<item>TRANSProperties</item>
+			<item>TableAutomorphisms</item>
+			<item>TableHasIntKeyFun</item>
+			<item>TableOfMarks</item>
+			<item>TableOfMarksByLattice</item>
+			<item>TableOfMarksComponents</item>
+			<item>TableOfMarksCyclic</item>
+			<item>TableOfMarksDihedral</item>
+			<item>TableOfMarksFamily</item>
+			<item>TableOfMarksFrobenius</item>
+			<item>TableOfMarksFromLibrary</item>
+			<item>TailOfPcgsPermGroup</item>
+			<item>TailsInverses</item>
+			<item>Tau</item>
+			<item>TeX</item>
+			<item>TeXObj</item>
+			<item>TemporaryGlobalVarName</item>
+			<item>TensorProduct</item>
+			<item>TensorProductGModule</item>
+			<item>TensorProductOfAlgebraModules</item>
+			<item>TensorWreathProductOfMatrixGroup</item>
+			<item>Tensored</item>
+			<item>TestConsistencyMaps</item>
+			<item>TestHomogeneous</item>
+			<item>TestInducedFromNormalSubgroup</item>
+			<item>TestJacobi</item>
+			<item>TestMonomial</item>
+			<item>TestMonomialFromLattice</item>
+			<item>TestMonomialQuick</item>
+			<item>TestMonomialUseLattice</item>
+			<item>TestPackageAvailability</item>
+			<item>TestQuasiPrimitive</item>
+			<item>TestRelativelySM</item>
+			<item>TestRelativelySMFun</item>
+			<item>TestRow</item>
+			<item>TestSubnormallyMonomial</item>
+			<item>Tester</item>
+			<item>TextAttr</item>
+			<item>TextM</item>
+			<item>TietzeOrigin</item>
+			<item>TietzeWordAbstractWord</item>
+			<item>TmpDirectory</item>
+			<item>TmpName</item>
+			<item>ToBeDefinedObjFamily</item>
+			<item>ToBeDefinedObjType</item>
+			<item>ToggleEcho</item>
+			<item>TopExtensionsByAutomorphism</item>
+			<item>Trace</item>
+			<item>TraceDefinition</item>
+			<item>TraceImmediateMethods</item>
+			<item>TraceMat</item>
+			<item>TraceMethods</item>
+			<item>TraceModQF</item>
+			<item>TracePolynomial</item>
+			<item>TracedCosetFpGroup</item>
+			<item>TrailingEntriesLTM</item>
+			<item>TranformsOneIntoZero</item>
+			<item>TransArrange</item>
+			<item>TransCombinat</item>
+			<item>TransGrpLoad</item>
+			<item>TransStabCSPG</item>
+			<item>TransferDiagram</item>
+			<item>TransferPcgsInfo</item>
+			<item>TransferedExtensionPol</item>
+			<item>Transformation</item>
+			<item>TransformationData</item>
+			<item>TransformationFamily</item>
+			<item>TransformationNC</item>
+			<item>TransformationRelation</item>
+			<item>TransformationRepresentation</item>
+			<item>TransformationType</item>
+			<item>TransformingPermutationFamily</item>
+			<item>TransformingPermutations</item>
+			<item>TransformingPermutationsCharacterTables</item>
+			<item>TransformsAdditionIntoMultiplication</item>
+			<item>TransformsAdditiveInversesIntoInverses</item>
+			<item>TransformsInversesIntoAdditiveInverses</item>
+			<item>TransformsMultiplicationIntoAddition</item>
+			<item>TransformsZeroIntoOne</item>
+			<item>TransitiveClosureBinaryRelation</item>
+			<item>TransitiveGroup</item>
+			<item>TransitiveIdentification</item>
+			<item>Transitivity</item>
+			<item>TranslateString</item>
+			<item>TranslatorSubalgebra</item>
+			<item>TransposedMat</item>
+			<item>TransposedMatAttr</item>
+			<item>TransposedMatDestructive</item>
+			<item>TransposedMatImmutable</item>
+			<item>TransposedMatMutable</item>
+			<item>TransposedMatOp</item>
+			<item>TransposedMatrixGroup</item>
+			<item>TransvByDirProdFamily</item>
+			<item>TransvByHomomorphismFamily</item>
+			<item>TransvBySchreierTreeFamily</item>
+			<item>TransvBySiftFunctFamily</item>
+			<item>TransvByTrivSubgrpFamily</item>
+			<item>Transversal</item>
+			<item>TransversalBySiftFunction</item>
+			<item>TransversalByTrivial</item>
+			<item>TransversalElt</item>
+			<item>TransversalOfChainSubgroup</item>
+			<item>TreeEntry</item>
+			<item>TreeRepresentedWord</item>
+			<item>TrialQuotientRPF</item>
+			<item>TriangulizeIntegerMat</item>
+			<item>TriangulizeMat</item>
+			<item>TriangulizeMonomialElementList</item>
+			<item>TriangulizeWeightRepElementList</item>
+			<item>TriangulizedGeneratorsByMatrix</item>
+			<item>TriangulizedIntegerMat</item>
+			<item>TriangulizedIntegerMatTransform</item>
+			<item>TriangulizedIntegerMatTransforms</item>
+			<item>TriangulizedNullspaceMat</item>
+			<item>TriangulizedNullspaceMatDestructive</item>
+			<item>TriangulizedNullspaceMatNT</item>
+			<item>TrivialCharacter</item>
+			<item>TrivialGModule</item>
+			<item>TrivialGroup</item>
+			<item>TrivialGroupCons</item>
+			<item>TrivialIterator</item>
+			<item>TrivialModule</item>
+			<item>TrivialPartition</item>
+			<item>TrivialQuotientSubgroup</item>
+			<item>TrivialSubFLMLOR</item>
+			<item>TrivialSubadditiveMagmaWithZero</item>
+			<item>TrivialSubalgebra</item>
+			<item>TrivialSubgroup</item>
+			<item>TrivialSubmagmaWithOne</item>
+			<item>TrivialSubmodule</item>
+			<item>TrivialSubmonoid</item>
+			<item>TrivialSubnearAdditiveMagmaWithZero</item>
+			<item>TrivialSubspace</item>
+			<item>TryCombinations</item>
+			<item>TryConwayPolynomialForFrobeniusCharacterValue</item>
+			<item>TryCosetTableInWholeGroup</item>
+			<item>TryGcdCancelExtRepPolynomials</item>
+			<item>TryLayerSQ</item>
+			<item>TryModuleSQ</item>
+			<item>TryNextMethod</item>
+			<item>TryPcgsPermGroup</item>
+			<item>TrySecondaryImages</item>
+			<item>Tschirnhausen</item>
+			<item>Tuple</item>
+			<item>TupleNC</item>
+			<item>Tuples</item>
+			<item>TuplesFamily</item>
+			<item>TuplesK</item>
+			<item>TwoClosure</item>
+			<item>TwoClosurePermGroup</item>
+			<item>TwoCoboundaries</item>
+			<item>TwoCoboundariesSQ</item>
+			<item>TwoCocycles</item>
+			<item>TwoCocyclesSQ</item>
+			<item>TwoCohomology</item>
+			<item>TwoCohomologySQ</item>
+			<item>TwoSeqPol</item>
+			<item>TwoSidedIdeal</item>
+			<item>TwoSidedIdealByGenerators</item>
+			<item>TwoSidedIdealNC</item>
+			<item>TwoSquares</item>
+			<item>TypeObj</item>
+			<item>TypeOfDefaultGeneralMapping</item>
+			<item>TypeOfFamilies</item>
+			<item>TypeOfFamilyOfFamilies</item>
+			<item>TypeOfFamilyOfTypes</item>
+			<item>TypeOfTypes</item>
+			<item>TzCheckRecord</item>
+			<item>TzEliminate</item>
+			<item>TzEliminateFromTree</item>
+			<item>TzEliminateGen</item>
+			<item>TzEliminateGens</item>
+			<item>TzFindCyclicJoins</item>
+			<item>TzGeneratorExponents</item>
+			<item>TzGo</item>
+			<item>TzGoGo</item>
+			<item>TzImagesOldGens</item>
+			<item>TzInitGeneratorImages</item>
+			<item>TzMostFrequentPairs</item>
+			<item>TzNewGenerator</item>
+			<item>TzOccurrences</item>
+			<item>TzOccurrencesPairs</item>
+			<item>TzOptionNames</item>
+			<item>TzOptions</item>
+			<item>TzPreImagesNewGens</item>
+			<item>TzPrint</item>
+			<item>TzPrintGeneratorImages</item>
+			<item>TzPrintGenerators</item>
+			<item>TzPrintLengths</item>
+			<item>TzPrintOptions</item>
+			<item>TzPrintPairs</item>
+			<item>TzPrintPresentation</item>
+			<item>TzPrintRelators</item>
+			<item>TzPrintStatus</item>
+			<item>TzRelator</item>
+			<item>TzRemoveGenerators</item>
+			<item>TzRenumberGens</item>
+			<item>TzReplaceGens</item>
+			<item>TzRules</item>
+			<item>TzSearch</item>
+			<item>TzSearchC</item>
+			<item>TzSearchEqual</item>
+			<item>TzSort</item>
+			<item>TzSortC</item>
+			<item>TzSubstitute</item>
+			<item>TzSubstituteCyclicJoins</item>
+			<item>TzSubstituteGen</item>
+			<item>TzSubstituteWord</item>
+			<item>TzTestInitialSetup</item>
+			<item>TzUpdateGeneratorImages</item>
+			<item>TzWordAbstractWord</item>
+			<item>UNIXSelect</item>
+			<item>UglyVector</item>
+			<item>UnInstallCharReadHookFunc</item>
+			<item>UnSetImage</item>
+			<item>Unbind</item>
+			<item>UnbindElmWPObj</item>
+			<item>UnbindGlobal</item>
+			<item>UnderlyingCharacterTable</item>
+			<item>UnderlyingCharacteristic</item>
+			<item>UnderlyingCollection</item>
+			<item>UnderlyingDomainOfBinaryRelation</item>
+			<item>UnderlyingElement</item>
+			<item>UnderlyingElementOfReesMatrixSemigroupElement</item>
+			<item>UnderlyingElementOfReesZeroMatrixSemigroupElement</item>
+			<item>UnderlyingExternalSet</item>
+			<item>UnderlyingFamily</item>
+			<item>UnderlyingField</item>
+			<item>UnderlyingGeneralMapping</item>
+			<item>UnderlyingGroup</item>
+			<item>UnderlyingLeftModule</item>
+			<item>UnderlyingLieAlgebra</item>
+			<item>UnderlyingMagma</item>
+			<item>UnderlyingRelation</item>
+			<item>UnderlyingSemigroupOfReesMatrixSemigroup</item>
+			<item>UnderlyingSemigroupOfReesZeroMatrixSemigroup</item>
+			<item>UnderlyingVectorSpace</item>
+			<item>UndoRefinement</item>
+			<item>UnhideGlobalVariables</item>
+			<item>Union</item>
+			<item>UnionBlist</item>
+			<item>UnionSet</item>
+			<item>UnipotentSubgroup</item>
+			<item>Unique</item>
+			<item>UniteBlist</item>
+			<item>UniteBlistList</item>
+			<item>UniteSet</item>
+			<item>Units</item>
+			<item>UnivariateLaurentPolynomialByCoefficients</item>
+			<item>UnivariatePolynomial</item>
+			<item>UnivariatePolynomialByCoefficients</item>
+			<item>UnivariatePolynomialRing</item>
+			<item>UnivariateRationalFunctionByCoefficients</item>
+			<item>UnivariateRationalFunctionByExtRep</item>
+			<item>UnivariatenessTestRationalFunction</item>
+			<item>UniversalEnvelopingAlgebra</item>
+			<item>Unknown</item>
+			<item>UnknownsType</item>
+			<item>UnloadSmallGroupsData</item>
+			<item>UnlockNaturalHomomorphismsPool</item>
+			<item>UnmarkTree</item>
+			<item>UnorderedTuples</item>
+			<item>UnorderedTuplesK</item>
+			<item>UnprofileFunctions</item>
+			<item>UnprofileMethods</item>
+			<item>UntraceMethods</item>
+			<item>UpEnv</item>
+			<item>UpdateMap</item>
+			<item>UpdatePolycyclicCollector</item>
+			<item>UpdateWeightInfo</item>
+			<item>UpperActingDomain</item>
+			<item>UpperCentralSeries</item>
+			<item>UpperCentralSeriesOfGroup</item>
+			<item>UpperSubdiagonal</item>
+			<item>UseBasis</item>
+			<item>UseFactorRelation</item>
+			<item>UseIsomorphismRelation</item>
+			<item>UseMatrixChainSubgroups</item>
+			<item>UsePermChainSubgroups</item>
+			<item>UseStabChainViaChainSubgroup</item>
+			<item>UseSubsetRelation</item>
+			<item>UseSubsetRelationNC</item>
+			<item>VPActionHom</item>
+			<item>VSTInsertToLeft</item>
+			<item>VSTNode</item>
+			<item>ValidatePackageInfo</item>
+			<item>Valuation</item>
+			<item>Value</item>
+			<item>ValueCochain</item>
+			<item>ValueGlobal</item>
+			<item>ValueMolienSeries</item>
+			<item>ValueOption</item>
+			<item>ValuePol</item>
+			<item>ValuesOfClassFunction</item>
+			<item>VectorOfRelator</item>
+			<item>VectorSearchTable</item>
+			<item>VectorSpace</item>
+			<item>VectorSpaceByPcgsOfElementaryAbelianGroup</item>
+			<item>VerifySGS</item>
+			<item>VerifyStabilizer</item>
+			<item>View</item>
+			<item>ViewFullHomModule</item>
+			<item>ViewLength</item>
+			<item>ViewMolienSeries</item>
+			<item>ViewObj</item>
+			<item>VirtualCharacter</item>
+			<item>WallForm</item>
+			<item>WeakPointerObj</item>
+			<item>WedgeGModule</item>
+			<item>WeekDay</item>
+			<item>WeightLexOrdering</item>
+			<item>WeightLexOrderingNC</item>
+			<item>WeightOfGenerators</item>
+			<item>WeightVecFFE</item>
+			<item>WeightsTom</item>
+			<item>WeylGroup</item>
+			<item>WeylOrbitIterator</item>
+			<item>Where</item>
+			<item>WindowCmd</item>
+			<item>Word</item>
+			<item>WordAlp</item>
+			<item>WordsString</item>
+			<item>WreathElm</item>
+			<item>WreathProduct</item>
+			<item>WreathProductImprimitiveAction</item>
+			<item>WreathProductInfo</item>
+			<item>WreathProductOfMatrixGroup</item>
+			<item>WreathProductOrdering</item>
+			<item>WreathProductProductAction</item>
+			<item>WriteAll</item>
+			<item>WriteBibFile</item>
+			<item>WriteByte</item>
+			<item>WriteLine</item>
+			<item>ZClassRepsQClass</item>
+			<item>ZOp</item>
+			<item>ZassenhausIntersection</item>
+			<item>Zero</item>
+			<item>ZeroAttr</item>
+			<item>ZeroCoefficient</item>
+			<item>ZeroCoefficientRatFun</item>
+			<item>ZeroImmutable</item>
+			<item>ZeroMapping</item>
+			<item>ZeroMutable</item>
+			<item>ZeroOp</item>
+			<item>ZeroSM</item>
+			<item>ZeroSameMutability</item>
+			<item>ZevData</item>
+			<item>ZevDataValue</item>
+			<item>ZippedListQuotient</item>
+			<item>ZippedProduct</item>
+			<item>ZippedSum</item>
+			<item>ZmodnZ</item>
+			<item>ZmodnZObj</item>
+			<item>ZmodpZ</item>
+			<item>ZmodpZNC</item>
+			<item>ZumbroichBase</item>
+			<item>Zuppos</item>
+		</list>
+
+
+		<contexts>
+
+			<context name="Top_Level" attribute="Normal Text" lineEndContext="#stay">
+				<DetectSpaces />
+
+				<IncludeRules context="Strings" />
+				<IncludeRules context="Code_Folding" />
+				<IncludeRules context="Two Char Operators" />
+
+				<DetectChar   context="Commentary"   char="#" />
+
+				<AnyChar      context="#stay"        attribute="Operator1"          String="!%*+,/;=>|;-:&lt;&gt;\^" />
+
+
+
+				<keyword      context="#stay"        attribute="Builtin Functions"  String="builtinfunctions" />
+				<keyword      context="#stay"        attribute="Control Statements" String="controlstatements" />
+				<keyword      context="#stay"        attribute="GAP Keywords"       String="gapkeywords" />
+				<keyword      context="#stay"        attribute="Logic Operators"    String="logicoperators" />
+				<keyword      context="#stay"        attribute="Math Operators"    String="mathoperators" />
+
+				<RegExpr      context="#stay"        attribute="Number"             String="(\d+(\.\d+)?|\.\d+)([eE][+-]?\d+)?[ij]?" />
+				<RegExpr      context="#stay"        attribute="Variable"           String="[a-zA-Z]\w*" />
+			</context>
+
+
+			<context name="Commentary" attribute="Commentary" lineEndContext="#pop">
+				<DetectSpaces />
+				<IncludeRules context="##Comments" />
+			</context>
+
+
+			<context name="Code_Folding" attribute="Normal Text" lineEndContext="Top_Level">
+				<WordDetect context="#stay" attribute="Control Statements" String="for" beginRegion="do_block" />
+				<WordDetect context="#stay" attribute="Control Statements" String="while" beginRegion="do_block" />
+				<WordDetect context="#stay" attribute="Control Statements" String="od" endRegion="do_block" />
+
+				<WordDetect context="#stay" attribute="Control Statements" String="repeat" beginRegion="repeat_block" />
+				<WordDetect context="#stay" attribute="Control Statements" String="until" endRegion="repeat_block" />
+
+				<WordDetect context="#stay" attribute="Control Statements" String="if" beginRegion="if_block" />
+				<WordDetect context="#stay" attribute="Control Statements" String="fi" endRegion="if_block" />
+
+				<WordDetect context="#stay" attribute="Function" String="function" beginRegion="func_block" />
+				<WordDetect context="#stay" attribute="Function" String="end" endRegion="func_block" />
+			</context>
+
+
+
+			<context name="Two Char Operators" attribute="Normal Text" lineEndContext="#stay">
+				<Detect2Chars context="#stay" attribute="Operator2" char="." char1="."/>
+				<Detect2Chars context="#stay" attribute="Operator2" char="!" char1="."/>
+				<Detect2Chars context="#stay" attribute="Operator2" char=":" char1="="/>
+				<Detect2Chars context="#stay" attribute="Operator2" char="-" char1="&gt;"/>
+				<Detect2Chars context="#stay" attribute="Operator2" char="&lt;" char1="="/>
+				<Detect2Chars context="#stay" attribute="Operator2" char="&gt;" char1="="/>
+				<Detect2Chars context="#stay" attribute="Operator2" char="&lt;" char1="&gt;"/>
+			</context>
+
+
+			<context name="Strings"    attribute="String" lineEndContext="#stay">
+				<RegExpr context="#stay" attribute="String" String="'([^'\\]|''|\\'|\\[^'])*'(?=[^']|$)" />
+				<RegExpr context="#stay" attribute="Incomplete String" String="'([^']|''|\\')*" />
+				<RegExpr context="#stay" attribute="String" String="&quot;([^&quot;\\]|&quot;&quot;|\\&quot;|\\[^&quot;])*&quot;(?=[^&quot;]|$)" />
+				<RegExpr context="#stay" attribute="Incomplete String" String="&quot;([^&quot;]|&quot;&quot;|\\&quot;)*" />
+			</context>
+		</contexts>
+
+
+		<!-- ======== Item Data ======== -->
+		<itemDatas>
+			<itemData name="Builtin Functions"   defStyleNum="dsBuiltIn" italic="1" bold="1" />
+			<itemData name="Commentary"          defStyleNum="dsComment" italic="1" />
+			<itemData name="Control Statements"  defStyleNum="dsControlFlow" />
+			<itemData name="Function"            defStyleNum="dsFunction"/>
+			<itemData name="GAP Keywords"        defStyleNum="dsExtension"/>
+			<itemData name="Incomplete String"   defStyleNum="dsSpecialString"/>
+			<itemData name="Logic Operators"     defStyleNum="dsConstant"/>
+			<itemData name="Math Operators"      defStyleNum="dsOthers"  />
+			<itemData name="Normal Text"         defStyleNum="dsNormal"  />
+			<itemData name="Number"              defStyleNum="dsFloat"   />
+			<itemData name="Operator1"           defStyleNum="dsOperator"/>
+			<itemData name="Operator2"           defStyleNum="dsOperator" bold="1" />
+			<itemData name="String"              defStyleNum="dsString"  />
+			<itemData name="Variable"            defStyleNum="dsVariable"/>
+		</itemDatas>
+
+	</highlighting>
+
+	<general>
+		<comments>
+			<comment name="singleLine" start="#" />
+		</comments>
+		<keywords casesensitive="true" />
+	</general>
+
+</language>
+<!-- kate: replace-tabs off; -->
diff --git a/syntax/gcc.xml b/syntax/gcc.xml
--- a/syntax/gcc.xml
+++ b/syntax/gcc.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
     <!ENTITY space " ">
     <!ENTITY separators ",&#59;">
@@ -13,7 +13,7 @@
   -->
 <language
     name="GCCExtensions"
-    version="4"
+    version="5"
     kateversion="5.0"
     section="Sources"
     extensions="*.c++;*.cxx;*.cpp;*.cc;*.C;*.h;*.hh;*.H;*.h++;*.hxx;*.hpp;*.hcc;"
@@ -528,23 +528,27 @@
   </list>
   <contexts>
     <context name="DetectGccExtensions" attribute="Normal Text" lineEndContext="#stay">
-      <keyword attribute="GNU Macros" context="#stay" String="GNUMacros" />
-      <keyword attribute="GNU Functions" context="#stay" String="GNUFunctions" />
-      <keyword attribute="GNU Types" context="#stay" String="GNUTypes" />
+      <IncludeRules context="DetectGccExtensionsCommon"/>
       <WordDetect attribute="GNU Extensions" context="AttrArgs" String="__attribute__" />
       <WordDetect attribute="GNU Extensions" context="AttrArgs" String="__declspec" />
-      <keyword attribute="GNU Extensions" context="#stay" String="GNUKeywords" />
-      <RegExpr attribute="GNU Functions" context="#stay" String="__builtin_[a-zA-Z0-9_]+" />
     </context>
 
     <context name="DetectGccExtensionsInPP" attribute="Normal Text" lineEndContext="#stay">
+      <IncludeRules context="DetectGccExtensionsCommon"/>
+      <WordDetect attribute="GNU Extensions" context="AttrArgsInPP" String="__attribute__" />
+      <WordDetect attribute="GNU Extensions" context="AttrArgsInPP" String="__declspec" />
+    </context>
+
+    <context name="DetectGccExtensionsCommon" attribute="Normal Text" lineEndContext="#stay">
       <keyword attribute="GNU Macros" context="#stay" String="GNUMacros" />
       <keyword attribute="GNU Functions" context="#stay" String="GNUFunctions" />
       <keyword attribute="GNU Types" context="#stay" String="GNUTypes" />
-      <WordDetect attribute="GNU Extensions" context="AttrArgsInPP" String="__attribute__" />
-      <WordDetect attribute="GNU Extensions" context="AttrArgsInPP" String="__declspec" />
       <keyword attribute="GNU Extensions" context="#stay" String="GNUKeywords" />
-      <RegExpr attribute="GNU Functions" context="#stay" String="__builtin_[a-zA-Z0-9_]+" />
+      <StringDetect attribute="GNU Functions" context="GNUFunctions" String="__builtin_" />
+    </context>
+
+    <context name="GNUFunctions" attribute="Normal Text" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">
+      <DetectIdentifier attribute="GNU Functions" context="#pop"/>
     </context>
 
     <context name="GNUMacros" attribute="Normal Text" lineEndContext="#stay">
diff --git a/syntax/glsl.xml b/syntax/glsl.xml
--- a/syntax/glsl.xml
+++ b/syntax/glsl.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
-<language name="GLSL" section="3D" extensions="*.glsl;*.vert;*.vs;*.frag;*.fs;*.geom;*.gs;*.tcs;*.tes" mimetype="text/x-glslsrc" version="10" kateversion="5.0" author="Oliver Richers (o.richers@tu-bs.de)" license="LGPL">
+<!DOCTYPE language>
+<language name="GLSL" section="3D" extensions="*.glsl;*.vert;*.vs;*.frag;*.fs;*.geom;*.gs;*.tcs;*.tes" mimetype="text/x-glslsrc" version="11" kateversion="5.0" author="Oliver Richers (o.richers@tu-bs.de)" license="LGPL" indenter="cstyle">
 	<!--
 		Based on GLSLangSpec.4.60.pdf
 		https://www.khronos.org/registry/OpenGL/specs/gl/
diff --git a/syntax/gnuassembler.xml b/syntax/gnuassembler.xml
--- a/syntax/gnuassembler.xml
+++ b/syntax/gnuassembler.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!--
 
 *************************************************************************
@@ -48,7 +48,7 @@
 
 -->
 
-<language name="GNU Assembler" version="8" kateversion="5.0" section="Assembler" extensions="*.s;*.S" mimetype="text/x-asm" author="John Zaitseff (J.Zaitseff@zap.org.au), Roland Pabel (roland@pabel.name), Miquel Sabaté (mikisabate@gmail.com) Waqar Ahmed (waqar.17a@gmail.com)" license="GPLv2+">
+<language name="GNU Assembler" version="9" kateversion="5.0" section="Assembler" extensions="*.s;*.S" mimetype="text/x-asm" author="John Zaitseff (J.Zaitseff@zap.org.au), Roland Pabel (roland@pabel.name), Miquel Sabaté (mikisabate@gmail.com) Waqar Ahmed (waqar.17a@gmail.com)" license="GPLv2+">
   <highlighting>
     <list name="registers">
       <!-- General purpose registers -->
@@ -297,6 +297,11 @@
       <item>cli</item>
       <item>clts</item>
       <item>cltd</item>
+      <item>cbtw</item>
+      <item>cwtl</item>
+      <item>cwtd</item>
+      <item>cltq</item>
+      <item>cqto</item>
       <item>cmc</item>
       <item>cmpb</item>
       <item>cmpw</item>
@@ -319,6 +324,8 @@
       <item>daa</item>
       <item>das</item>
       <item>dec</item>
+      <item>decl</item>
+      <item>decq</item>
       <item>div</item>
       <item>divb</item>
       <item>divw</item>
@@ -444,6 +451,8 @@
       <item>imulq</item>
       <item>in</item>
       <item>inc</item>
+      <item>incl</item>
+      <item>incq</item>
       <item>incbin</item>
       <item>insb</item>
       <item>insd</item>
@@ -506,6 +515,22 @@
       <item>movsx</item>
       <item>movsxd</item>
       <item>movzx</item>
+      <item>movsbw</item>
+      <item>movsxb</item>
+      <item>movsbl</item>
+      <item>movsbq</item>
+      <item>movswl</item>
+      <item>movsxw</item>
+      <item>movswq</item>
+      <item>movslq</item>
+      <item>movsxl</item>
+      <item>movzbw</item>
+      <item>movzxb</item>
+      <item>movzbl</item>
+      <item>movzbq</item>
+      <item>movzwl</item>
+      <item>movzxw</item>
+      <item>movzwq</item>
       <item>mul</item>
       <item>mulb</item>
       <item>mulw</item>
@@ -705,6 +730,8 @@
       <item>xlatb</item>
       <item>xlat</item>
       <item>xor</item>
+      <item>xorl</item>
+      <item>xorq</item>
       <item>cmove</item>
       <item>cmovz</item>
       <item>cmovne</item>
@@ -2258,6 +2285,7 @@
         <HlCHex       attribute="Hex" context="#stay" />
         <RegExpr      attribute="Binary" context="#stay" String="0[bB][01]+" />
         <Int          attribute="Decimal" context="#stay" />
+        <RegExpr      attribute="Decimal" context="#stay" String="\$[0-9]+" />
         <RegExpr      attribute="Float" context="#stay" String="0[fFeEdD][-+]?[0-9]*\.?[0-9]*[eE]?[-+]?[0-9]+" />
         <RegExpr      attribute="Normal Text" context="#stay" String="[A-Za-z_.$][A-Za-z0-9_.$]*" />
         <HlCChar      attribute="Char" context="#stay" />
diff --git a/syntax/go.xml b/syntax/go.xml
--- a/syntax/go.xml
+++ b/syntax/go.xml
@@ -1,5 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language [
+  <!ENTITY hex "[0-9a-fA-F]">
+  <!ENTITY int "(?:[0-9](?:_?[0-9]++)*+)">
+  <!ENTITY hex_int "(?:[0-9A-Fa-f](?:_?[0-9A-Fa-f]++)*+)">
+  <!ENTITY exp_float "(?:[eE][+-]?&int;)">
+  <!ENTITY exp_hexfloat "(?:[pP][-+]?&int;)">
+]>
 
 <!--
 This file is part of KDE's Kate project
@@ -25,37 +31,42 @@
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 -->
 
+<language name="Go" version="10" kateversion="5.79" section="Sources" indenter="cstyle" extensions="*.go" author="Miquel Sabaté (mikisabate@gmail.com)" license="GPLv2+">
+  <!-- https://go.dev/ref/spec -->
+  <highlighting>
 
-<language name="Go" version="7" kateversion="5.0" section="Sources" indenter="cstyle" extensions="*.go" author="Miquel Sabaté (mikisabate@gmail.com)" license="GPLv2+">
-    <highlighting>
+    <!-- https://go.dev/ref/spec#Keywords -->
     <list name="keywords">
-<!-- Keywords have been taken from The Go Programming Language Specification -> Keywords section -->
-      <item>break</item>
-      <item>case</item>
       <item>chan</item>
       <item>const</item>
+      <item>func</item>
+      <item>import</item>
+      <item>interface</item>
+      <item>map</item>
+      <item>package</item>
+      <item>range</item>
+      <item>struct</item>
+      <item>type</item>
+      <item>var</item>
+    </list>
+    <list name="controlflow">
+      <item>break</item>
+      <item>case</item>
       <item>continue</item>
       <item>default</item>
       <item>defer</item>
       <item>else</item>
       <item>fallthrough</item>
       <item>for</item>
-      <item>func</item>
       <item>go</item>
       <item>goto</item>
       <item>if</item>
-      <item>import</item>
-      <item>interface</item>
-      <item>map</item>
-      <item>package</item>
-      <item>range</item>
       <item>return</item>
       <item>select</item>
-      <item>struct</item>
       <item>switch</item>
-      <item>type</item>
-      <item>var</item>
     </list>
+
+    <!-- https://go.dev/ref/spec#Types -->
     <list name="types">
       <item>bool</item>
       <item>byte</item>
@@ -77,7 +88,11 @@
       <item>uint16</item>
       <item>uint32</item>
       <item>uint64</item>
+      <!-- Go 1.18 -->
+      <item>any</item>
+      <item>comparable</item>
     </list>
+
     <list name="builtin">
       <item>append</item>
       <item>cap</item>
@@ -95,35 +110,35 @@
       <item>real</item>
       <item>recover</item>
     </list>
+
     <list name="predeclared">
       <item>false</item>
       <item>nil</item>
       <item>true</item>
       <item>iota</item>
     </list>
+
     <contexts>
       <context name="normal" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces />
         <keyword attribute="Keyword" context="#stay" String="keywords" />
-        <keyword attribute="Predeclared Identifier" context="#stay" String="predeclared"  />
-        <keyword attribute="Data Type" context="#stay" String="types"       />
-        <keyword attribute="Builtin Function" context="#stay" String="builtin"  />
+        <keyword attribute="Control Flow" context="#stay" String="controlflow" />
+        <keyword attribute="Predeclared Identifier" context="#stay" String="predeclared" />
+        <keyword attribute="Data Type" context="#stay" String="types" />
+        <keyword attribute="Builtin Function" context="#stay" String="builtin" />
         <DetectIdentifier />
         <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
         <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"   />
         <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"   />
         <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment" />
-        <Int attribute="Decimal" context="#stay" />
-        <Float attribute="Float" context="#stay" />
-        <HlCOct attribute="Octal" context="#stay"/>
-        <HlCHex attribute="Hex" context="#stay"/>
-        <HlCChar attribute="Char" context="#stay" />
+        <RegExpr context="Number" String="\.?[0-9]" lookAhead="true" />
+        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^;"/>
         <DetectChar attribute="String" context="String" char="&quot;" />
+        <DetectChar attribute="Char" context="Char" char="'" />
         <DetectChar attribute="String" context="Multiline String" char="`"/>
-        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>
       </context>
 
       <context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
-        <LineContinue attribute="Comment" context="#stay"/>
         <DetectSpaces />
         <IncludeRules context="##Comments" />
         <DetectIdentifier />
@@ -136,38 +151,78 @@
         <DetectIdentifier />
       </context>
 
+      <!-- https://go.dev/ref/spec#Integer_literals -->
+      <!-- https://go.dev/ref/spec#Floating-point_literals -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="Number">
+        <WordDetect attribute="Decimal" context="NumberSuffix" String="0" weakDeliminator="."/>
+        <RegExpr attribute="Float" context="NumberSuffix" String="\.&int;&exp_float;?|0[xX](?:\.&hex_int;&exp_hexfloat;?|_?&hex_int;(?:&exp_hexfloat;|\.&hex_int;?&exp_hexfloat;?))|&int;(?:&exp_float;|\.&int;?&exp_float;?)" />
+        <DetectChar context="#pop!IntStartsWith0" char="0" lookAhead="1"/>
+        <RegExpr attribute="Decimal" context="NumberSuffix" String="&int;" />
+      </context>
+      <context name="IntStartsWith0" attribute="Normal Text" lineEndContext="#pop">
+        <RegExpr attribute="Hex" context="NumberSuffix" String="0[xX](?:_?[0-9A-Fa-f]++)*+" />
+        <RegExpr attribute="Binary" context="NumberSuffix" String="0[Bb](?:_?[01]++)*+" />
+        <RegExpr attribute="Octal" context="NumberSuffix" String="0[Oo]?(?:_?[0-7]++)*+" />
+        <DetectChar attribute="Decimal" context="NumberSuffix" char="0"/>
+      </context>
+
+      <context name="NumberSuffix" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="NumericSuffixError">
+        <DetectChar attribute="Suffix" context="NumericSuffixError" char="i" />
+        <DetectChar attribute="Error" context="#stay" char="_" />
+      </context>
+      <context name="NumericSuffixError" attribute="Error" lineEndContext="#pop#pop#pop" fallthroughContext="#pop#pop#pop">
+        <RegExpr attribute="Error" context="#pop#pop#pop" String="[._0-9A-Za-z]+" />
+      </context>
+
+      <!-- https://go.dev/ref/spec#String_literals -->
       <context attribute="String" lineEndContext="#pop" name="String">
-        <LineContinue  attribute="String" context="#stay" />
-        <HlCStringChar attribute="String Char" context="#stay" />
-        <DetectChar    attribute="String" context="#pop" char="&quot;" />
+        <DetectChar attribute="String" context="#pop" char="&quot;" />
+        <IncludeRules context="FindEscape" />
       </context>
 
+      <context attribute="String" lineEndContext="#pop" name="FindEscape">
+        <DetectChar context="EscapedChar" char="\" lookAhead="1"/>
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="EscapedChar">
+        <RegExpr attribute="String Char" context="#pop" String="\\[abfnrtv\\'&quot;]|\\x&hex;{2}|\\u&hex;{4}|\\U&hex;{8}|\\[0-3][0-7]{2}" />
+        <RegExpr attribute="Error" context="#pop" String="\\[xuU]&hex;*|\\[0-7]{1,3}|\\" />
+      </context>
+
       <context attribute="String" lineEndContext="#stay" name="Multiline String">
-        <LineContinue attribute="String" context="#stay"/>
-        <HlCStringChar attribute="String Char" context="#stay"/>
         <DetectChar attribute="String" context="#pop" char="`"/>
       </context>
+
+      <context attribute="Char" lineEndContext="#pop" name="Char">
+        <DetectChar attribute="Char" context="#pop" char="'" />
+        <IncludeRules context="FindEscape" />
+      </context>
+
     </contexts>
+
     <itemDatas>
       <itemData name="Normal Text"  defStyleNum="dsNormal"   spellChecking="false"/>
       <itemData name="Keyword"      defStyleNum="dsKeyword"  spellChecking="false"/>
-      <itemData name="Predeclared Identifier" defStyleNum="dsOthers"   spellChecking="false" />
+      <itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="false"/>
+      <itemData name="Predeclared Identifier" defStyleNum="dsOthers"  spellChecking="false" />
       <itemData name="Builtin Function"       defStyleNum="dsBuiltIn" spellChecking="false" />
       <itemData name="Data Type"    defStyleNum="dsDataType" spellChecking="false"/>
-      <itemData name="String Char"  defStyleNum="dsChar"    />
+      <itemData name="String Char"  defStyleNum="dsChar"     spellChecking="false"/>
       <itemData name="String"       defStyleNum="dsString"  />
       <itemData name="Comment"      defStyleNum="dsComment" />
-      <itemData name="Decimal"      defStyleNum="dsDecVal" spellChecking="false"/>
-      <itemData name="Octal"        defStyleNum="dsBaseN" spellChecking="false"/>
-      <itemData name="Hex"          defStyleNum="dsBaseN" spellChecking="false"/>
-      <itemData name="Float"        defStyleNum="dsFloat" spellChecking="false"/>
-      <itemData name="Char"         defStyleNum="dsChar"   spellChecking="false"/>
+      <itemData name="Decimal"      defStyleNum="dsDecVal"   spellChecking="false"/>
+      <itemData name="Binary"       defStyleNum="dsBaseN"    spellChecking="false"/>
+      <itemData name="Octal"        defStyleNum="dsBaseN"    spellChecking="false"/>
+      <itemData name="Hex"          defStyleNum="dsBaseN"    spellChecking="false"/>
+      <itemData name="Float"        defStyleNum="dsFloat"    spellChecking="false"/>
+      <itemData name="Suffix"       defStyleNum="dsBuiltIn"  spellChecking="false"/>
+      <itemData name="Char"         defStyleNum="dsChar"     spellChecking="false"/>
       <itemData name="Symbol"       defStyleNum="dsOperator" spellChecking="false"/>
+      <itemData name="Error"        defStyleNum="dsError"    spellChecking="false"/>
     </itemDatas>
     </highlighting>
   <general>
     <comments>
-      <comment name="singleLine" start="//" />
+      <comment name="singleLine" start="//" position="afterwhitespace" />
       <comment name="multiLine" start="/*" end="*/" region="Comment"/>
     </comments>
     <keywords casesensitive="1" additionalDeliminator="'&quot;" />
diff --git a/syntax/gpr.xml b/syntax/gpr.xml
new file mode 100644
--- /dev/null
+++ b/syntax/gpr.xml
@@ -0,0 +1,390 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language>
+<language name="GPRBuild"
+          version="1"
+          kateversion="5.79"
+          section="Sources"
+          extensions="*.gpr"
+          indenter="ada"
+          mimetype="text/x-adasrc"
+          author="Léo Germond (germond@adacore.com)"
+          license="MIT">
+  <highlighting>
+    <!-- https://github.com/AdaCore/gprbuild/blob/master/gpr/src/gpr-snames.adb -->
+    
+    <list name="keywords">
+      <item>c</item>
+      <item>abort</item>
+      <item>abs</item>
+      <item>accept</item>
+      <item>and</item>
+      <item>all</item>
+      <item>array</item>
+      <item>at</item>
+      <item>begin</item>
+      <item>body</item>
+      <item>case</item>
+      <item>constant</item>
+      <item>declare</item>
+      <item>delay</item>
+      <item>do</item>
+      <item>else</item>
+      <item>elsif</item>
+      <item>end</item>
+      <item>entry</item>
+      <item>exception</item>
+      <item>exit</item>
+      <item>for</item>
+      <item>function</item>
+      <item>generic</item>
+      <item>goto</item>
+      <item>if</item>
+      <item>in</item>
+      <item>is</item>
+      <item>limited</item>
+      <item>loop</item>
+      <item>new</item>
+      <item>not</item>
+      <item>null</item>
+      <item>of</item>
+      <item>or</item>
+      <item>others</item>
+      <item>out</item>
+      <item>package</item>
+      <item>pragma</item>
+      <item>private</item>
+      <item>procedure</item>
+      <item>raise</item>
+      <item>record</item>
+      <item>rem</item>
+      <item>renames</item>
+      <item>return</item>
+      <item>reverse</item>
+      <item>select</item>
+      <item>separate</item>
+      <item>subtype</item>
+      <item>task</item>
+      <item>terminate</item>
+      <item>then</item>
+      <item>type</item>
+      <item>use</item>
+      <item>when</item>
+      <item>while</item>
+      <item>with</item>
+      <item>xor</item>
+      <item>access</item>
+      <item>delta</item>
+      <item>digits</item>
+      <item>mod</item>
+      <item>range</item>
+      <item>abstract</item>
+      <item>aliased</item>
+      <item>protected</item>
+      <item>until</item>
+      <item>requeue</item>
+      <item>tagged</item>
+      <item>project</item>
+      <item>extends</item>
+      <item>external</item>
+      <item>external_as_list</item>
+      <item>interface</item>
+      <item>overriding</item>
+      <item>synchronized</item>
+      <item>some</item>
+      <item>active</item>
+      <item>aggregate</item>
+      <item>archive_builder</item>
+      <item>archive_builder_append_option</item>
+      <item>archive_indexer</item>
+      <item>archive_suffix</item>
+      <item>artifacts</item>
+      <item>artifacts_in_exec_dir</item>
+      <item>artifacts_in_object_dir</item>
+      <item>binder</item>
+      <item>bindfile_option_substitution</item>
+      <item>body_suffix</item>
+      <item>builder</item>
+      <item>clean</item>
+      <item>compiler</item>
+      <item>compiler_command</item>
+      <item>config_body_file_name</item>
+      <item>config_body_file_name_index</item>
+      <item>config_body_file_name_pattern</item>
+      <item>config_file_dependency_support</item>
+      <item>config_file_switches</item>
+      <item>config_file_unique</item>
+      <item>config_spec_file_name</item>
+      <item>config_spec_file_name_index</item>
+      <item>config_spec_file_name_pattern</item>
+      <item>configuration</item>
+      <item>cross_reference</item>
+      <item>def</item>
+      <item>default_language</item>
+      <item>default_switches</item>
+      <item>dependency_driver</item>
+      <item>dependency_kind</item>
+      <item>dependency_switches</item>
+      <item>driver</item>
+      <item>excluded_source_dirs</item>
+      <item>excluded_source_files</item>
+      <item>excluded_source_list_file</item>
+      <item>exec_dir</item>
+      <item>exec_subdir</item>
+      <item>excluded_patterns</item>
+      <item>executable</item>
+      <item>executable_suffix</item>
+      <item>externally_built</item>
+      <item>finder</item>
+      <item>flat</item>
+      <item>gcc</item>
+      <item>gcc_gnu</item>
+      <item>gcc_option_list</item>
+      <item>gcc_object_list</item>
+      <item>global_compilation_switches</item>
+      <item>global_configuration_pragmas</item>
+      <item>global_config_file</item>
+      <item>gnatls</item>
+      <item>gnatstub</item>
+      <item>gnu</item>
+      <item>ide</item>
+      <item>ignore_source_sub_dirs</item>
+      <item>implementation</item>
+      <item>implementation_exceptions</item>
+      <item>implementation_suffix</item>
+      <item>included_artifact_patterns</item>
+      <item>included_patterns</item>
+      <item>include_switches</item>
+      <item>include_path</item>
+      <item>include_path_file</item>
+      <item>inherit_source_path</item>
+      <item>install</item>
+      <item>install_project</item>
+      <item>languages</item>
+      <item>language_kind</item>
+      <item>leading_library_options</item>
+      <item>leading_required_switches</item>
+      <item>leading_switches</item>
+      <item>ali_subdir</item>
+      <item>lib_subdir</item>
+      <item>link_lib_subdir</item>
+      <item>library</item>
+      <item>library_ali_dir</item>
+      <item>library_auto_init</item>
+      <item>library_auto_init_supported</item>
+      <item>library_builder</item>
+      <item>library_dir</item>
+      <item>library_gcc</item>
+      <item>library_install_name_option</item>
+      <item>library_interface</item>
+      <item>library_kind</item>
+      <item>library_name</item>
+      <item>library_major_minor_id_supported</item>
+      <item>library_options</item>
+      <item>library_partial_linker</item>
+      <item>library_rpath_options</item>
+      <item>library_standalone</item>
+      <item>library_encapsulated_options</item>
+      <item>library_encapsulated_supported</item>
+      <item>library_src_dir</item>
+      <item>library_support</item>
+      <item>library_symbol_file</item>
+      <item>library_symbol_policy</item>
+      <item>library_version</item>
+      <item>library_version_switches</item>
+      <item>linker</item>
+      <item>linker_executable_option</item>
+      <item>linker_lib_dir_option</item>
+      <item>linker_lib_name_option</item>
+      <item>local_config_file</item>
+      <item>local_configuration_pragmas</item>
+      <item>locally_removed_files</item>
+      <item>map_file_option</item>
+      <item>mapping_file_switches</item>
+      <item>mapping_spec_suffix</item>
+      <item>mapping_body_suffix</item>
+      <item>max_command_line_length</item>
+      <item>metrics</item>
+      <item>multi_unit_object_separator</item>
+      <item>multi_unit_switches</item>
+      <item>naming</item>
+      <item>none</item>
+      <item>object_artifact_extensions</item>
+      <item>object_file_suffix</item>
+      <item>object_file_switches</item>
+      <item>object_generated</item>
+      <item>object_list</item>
+      <item>object_path_switches</item>
+      <item>objects_linked</item>
+      <item>objects_path</item>
+      <item>objects_path_file</item>
+      <item>object_dir</item>
+      <item>option_list</item>
+      <item>pic_option</item>
+      <item>pretty_printer</item>
+      <item>prefix</item>
+      <item>project_dir</item>
+      <item>project_files</item>
+      <item>project_path</item>
+      <item>project_subdir</item>
+      <item>remote</item>
+      <item>response_file_format</item>
+      <item>response_file_switches</item>
+      <item>root_dir</item>
+      <item>roots</item>
+      <item>required_artifacts</item>
+      <item>required_switches</item>
+      <item>run_path_option</item>
+      <item>run_path_origin</item>
+      <item>separate_run_path_options</item>
+      <item>shared_library_minimum_switches</item>
+      <item>shared_library_prefix</item>
+      <item>shared_library_suffix</item>
+      <item>separate_suffix</item>
+      <item>side_debug</item>
+      <item>source_artifact_extensions</item>
+      <item>source_dirs</item>
+      <item>source_file_switches</item>
+      <item>source_files</item>
+      <item>source_list_file</item>
+      <item>sources_subdir</item>
+      <item>spec</item>
+      <item>spec_suffix</item>
+      <item>specification</item>
+      <item>specification_exceptions</item>
+      <item>specification_suffix</item>
+      <item>stack</item>
+      <item>switches</item>
+      <item>symbolic_link_supported</item>
+      <item>toolchain_description</item>
+      <item>toolchain_version</item>
+      <item>trailing_required_switches</item>
+      <item>trailing_switches</item>
+      <item>runtime_library_dir</item>
+      <item>runtime_library_dirs</item>
+      <item>runtime_source_dir</item>
+      <item>ada</item>
+      <item>interfaces</item>
+      <item>main</item>
+      <item>target</item>
+      <item>casing</item>
+      <item>dot_replacement</item>
+      <item>standard</item>
+      <item>name</item>
+      <item>linker_options</item>
+      <item>runtime</item>
+      <item>mode</item>
+      <item>install_name</item>
+      <item>object_lister</item>
+      <item>object_lister_matcher</item>
+      <item>export_file_format</item>
+      <item>export_file_switch</item>
+      <item>runtime_source_dirs</item>
+      <item>runtime_dir</item>
+      <item>runtime_library_version</item>
+      <item>split</item>
+      <item>create_missing_dirs</item>
+      <item>canonical_target</item>
+      <item>warning_message</item>
+      <item>only_dirs_with_sources</item>
+      <item>include_switches_via_spec</item>
+      <item>required_toolchain_version</item>
+      <item>toolchain_name</item>
+      <item>check</item>
+      <item>eliminate</item>
+      <item>remote_host</item>
+      <item>program_host</item>
+      <item>communication_protocol</item>
+      <item>debugger_command</item>
+      <item>gnatlist</item>
+      <item>vcs_kind</item>
+      <item>vcs_file_check</item>
+      <item>vcs_log_check</item>
+      <item>documentation_dir</item>
+      <item>codepeer</item>
+      <item>output_directory</item>
+      <item>database_directory</item>
+      <item>message_patterns</item>
+      <item>additional_patterns</item>
+      <item>origin_project</item>
+      <item>library_reference_symbol_file</item>
+      <item>unconditional_linking</item>
+      <item>toolchain_path</item>
+    </list>
+
+    <list name="pragmas">
+    </list>
+
+    <list name="types">
+    </list>
+
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Default">
+        <DetectSpaces />
+
+        <StringDetect attribute="Region Marker" context="Region Marker" String="--  BEGIN" beginRegion="RegionMarker" firstNonSpace="true" />
+        <StringDetect attribute="Region Marker" context="Region Marker" String="--  END" endRegion="RegionMarker" firstNonSpace="true" />
+        <Detect2Chars attribute="Comment" context="Comment" char="-" char1="-"/>
+        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;|"/>
+        <DetectChar context="String" char="&quot;" lookAhead="1"/>
+
+        <WordDetect attribute="Keyword" context="#stay" String="record" insensitive="true" beginRegion="RecordRegion"/>
+        <WordDetect attribute="Keyword" context="#stay" String="case"   insensitive="true" beginRegion="CaseRegion"/>
+        <WordDetect attribute="Keyword" context="#stay" String="if"     insensitive="true" beginRegion="IfRegion"/>
+        <WordDetect attribute="Keyword" context="#stay" String="loop"   insensitive="true" beginRegion="LoopRegion"/>
+        <WordDetect attribute="Keyword" context="#stay" String="select" insensitive="true" beginRegion="SelectRegion"/>
+        <WordDetect attribute="Keyword" context="#stay" String="begin"  insensitive="true" beginRegion="BeginRegion"/>
+
+        <WordDetect attribute="Keyword" context="End"   String="end"    insensitive="true" lookAhead="1"/>
+        <WordDetect attribute="Keyword" context="Null"  String="null"   insensitive="true"/>
+
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+       
+        <DetectIdentifier />
+      </context>
+
+      <context attribute="Keyword" lineEndContext="#pop" name="End">
+        <RegExpr    attribute="Keyword" context="#pop" String="end\s+record\b" insensitive="true"   endRegion="RecordRegion"/>
+        <RegExpr    attribute="Keyword" context="#pop" String="end\s+case\b"   insensitive="true"   endRegion="CaseRegion"/>
+        <RegExpr    attribute="Keyword" context="#pop" String="end\s+if\b"     insensitive="true"   endRegion="IfRegion"/>
+        <RegExpr    attribute="Keyword" context="#pop" String="end\s+loop\b"   insensitive="true"   endRegion="LoopRegion"/>
+        <RegExpr    attribute="Keyword" context="#pop" String="end\s+select\b" insensitive="true"   endRegion="SelectRegion"/>
+        <DetectIdentifier attribute="Keyword" context="#pop" endRegion="BeginRegion"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="Null" fallthroughContext="#pop">
+        <DetectSpaces attribute="Normal Text"/>
+        <WordDetect attribute="Keyword" context="#pop" String="record" insensitive="true"/>
+      </context>
+
+      <context attribute="Region Marker" lineEndContext="#pop" name="Region Marker">
+      </context>
+
+      <context attribute="String" lineEndContext="#pop" name="String" fallthroughContext="PartialString">
+        <RangeDetect attribute="String" context="#pop" char="&quot;" char1="&quot;"/>
+      </context>
+      <context attribute="String" lineEndContext="#pop#pop" name="PartialString">
+      </context>
+
+      <context attribute="Comment" lineEndContext="#pop" name="Comment">
+        <DetectSpaces attribute="Comment"/>
+        <IncludeRules context="##Comments" />
+        <DetectIdentifier attribute="Comment"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" />
+      <itemData name="Keyword"     defStyleNum="dsKeyword" />
+      <itemData name="String"      defStyleNum="dsString" />
+      <itemData name="Comment"     defStyleNum="dsComment" />
+      <itemData name="Symbol"      defStyleNum="dsOperator"/>
+      <itemData name="Region Marker" defStyleNum="dsRegionMarker" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="--" position="afterwhitespace" />
+    </comments>
+    <keywords casesensitive="0" />
+  </general>
+</language>
+<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
diff --git a/syntax/graphql.xml b/syntax/graphql.xml
--- a/syntax/graphql.xml
+++ b/syntax/graphql.xml
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!--
   GraphQL: https://graphql.org/
   Synatx: https://github.com/graphql/graphql-spec/blob/master/spec/Section%202%20- -%20Language.md
      and: https://github.com/graphql/graphql-spec/blob/master/spec/Appendix%20B%20- -%20Grammar%20Summary.md
 -->
-<language name="GraphQL" section="Other" version="3" kateversion="5.0" extensions="*.graphql" author="Volker Krause (vkrause@kde.org)" license="MIT">
+<language name="GraphQL" alternativeNames="GQL" section="Other" version="4" kateversion="5.0" extensions="*.graphql" author="Volker Krause (vkrause@kde.org)" license="MIT">
   <highlighting>
     <list name="listKeywords">
       <item>enum</item>
diff --git a/syntax/groovy.xml b/syntax/groovy.xml
--- a/syntax/groovy.xml
+++ b/syntax/groovy.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
 	<!ENTITY int "(?:[0-9]++(_++[0-9]++)*+)">
 	<!ENTITY hex "(?:[0-9a-fA-F]++(_++[0-9a-fA-F]++)*+)">
@@ -10,7 +10,7 @@
 <!--
     Based on the java syntax file 1.19 by Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)
 -->
-<language name="Groovy" version="11" kateversion="5.62" section="Sources" extensions="*.groovy;*.gradle;*.gvy;Jenkinsfile" license="LGPL" author="Chris Reeves (chris@ev-soft.net)">
+<language name="Groovy" version="12" kateversion="5.79" section="Sources" extensions="*.groovy;*.gradle;*.gvy;Jenkinsfile" license="LGPL" author="Chris Reeves (chris@ev-soft.net)">
 	<highlighting>
 		<list name="java15">
 			<include>java15##Java</include>
diff --git a/syntax/hamlet.xml b/syntax/hamlet.xml
--- a/syntax/hamlet.xml
+++ b/syntax/hamlet.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
   <!-- names must start with a letter, ideogram or underscore. \w matches any
   word character *or* a number, hence the lookahead -->
diff --git a/syntax/haskell.xml b/syntax/haskell.xml
--- a/syntax/haskell.xml
+++ b/syntax/haskell.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd" [
+<!DOCTYPE language [
   <!ENTITY symbolops "\-!#\$&#37;&amp;\*\+/&lt;=&gt;\?&#92;@\^\|~\.:">
 ]>
-<language name="Haskell" version="20" kateversion="5.53" section="Sources" extensions="*.hs;*.chs;*.hs-boot" mimetype="text/x-haskell" author="Nicolas Wu (zenzike@gmail.com)" license="LGPL" indenter="haskell" style="haskell">
+<language name="Haskell" alternativeNames="HS" version="21" kateversion="5.53" section="Sources" extensions="*.hs;*.chs;*.hs-boot" mimetype="text/x-haskell" author="Nicolas Wu (zenzike@gmail.com)" license="LGPL" indenter="haskell" style="haskell">
   <highlighting>
   <list name="keywords">
     <item>case</item>
diff --git a/syntax/haxe.xml b/syntax/haxe.xml
--- a/syntax/haxe.xml
+++ b/syntax/haxe.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!--
   ========================================================================
 
@@ -12,7 +12,7 @@
   ========================================================================
 -->
 
-<language name="Haxe" section="Sources" extensions="*.hx;*.Hx;*.hX;*.HX;" mimetype="text/x-hxsrc" version="5" kateversion="5.0" casesensitive="true" author="Chad Joan" license="MIT">
+<language name="Haxe" section="Sources" extensions="*.hx;*.Hx;*.hX;*.HX;" mimetype="text/x-hxsrc" version="6" kateversion="5.0" casesensitive="true" author="Chad Joan" license="MIT">
   <highlighting>
     <list name="keywords">
     
@@ -133,7 +133,10 @@
       <!-- Strings -->
       <!-- '...' -->
       <context attribute="RawString" lineEndContext="#stay" name="RawString">
+        <Detect2Chars attribute="RawString" context="#stay" char="\" char1="'"/>
         <DetectChar attribute="RawString" context="#pop" char="'"/>
+        <HlCStringChar attribute="EscapeSequence"/>
+        <RegExpr attribute="EscapeSequence" context="#stay" String="\\(u[\da-fA-F]{4}|U[\da-fA-F]{8}|&amp;[a-zA-Z]\w+;)" />
       </context>
       <!-- "..." -->
       <context attribute="String" lineEndContext="#stay" name="String">
diff --git a/syntax/html.xml b/syntax/html.xml
--- a/syntax/html.xml
+++ b/syntax/html.xml
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
 	<!ENTITY name          "[A-Za-z_:][\w.:_-]*">
 	<!ENTITY attributeName "[A-Za-z_:*#\(\[][\)\]\w.:_-]*">
 	<!ENTITY entref        "&amp;(?:#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);">
 ]>
-<language name="HTML" version="14" kateversion="5.53" section="Markup" extensions="*.htm;*.html;*.shtml;*.shtm" mimetype="text/html"  author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL" priority="10">
+<language name="HTML" version="18" kateversion="5.79" section="Markup" extensions="*.htm;*.html;*.shtml;*.shtm;*.aspx" mimetype="text/html"  author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL" priority="10">
 
 <highlighting>
 <contexts>
@@ -18,55 +18,72 @@
     <DetectIdentifier/>
     <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
     <StringDetect attribute="CDATA" context="CDATA" String="&lt;![CDATA[" beginRegion="cdata" />
-    <RegExpr attribute="Doctype" context="Doctype" String="&lt;!DOCTYPE\s+" insensitive="true" beginRegion="doctype"  />
+    <WordDetect attribute="Doctype" context="Doctype" String="&lt;!DOCTYPE" insensitive="true" beginRegion="doctype" />
+    <IncludeRules context="FindElements" />
     <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:-]*" beginRegion="pi" />
-    <IncludeRules context="FindSpecialHTMLTags" />
-    <IncludeRules context="FindHTMLTags" />
+
     <!-- as long as kde gives DTDs the text/html mimetype--><IncludeRules context="FindDTDRules" />
     <IncludeRules context="FindEntityRefs" />
   </context>
 
+  <context name="FindElements" attribute="Other Text" lineEndContext="#pop">
+    <RegExpr attribute="Element Symbols" context="ElementTagName" String="&lt;(?=(&name;))" />
+    <RegExpr attribute="Element Symbols" context="ElementTagNameClose" String="&lt;/(?=(&name;))" />
+  </context>
+
+  <context name="ElementTagName" attribute="Other Text" lineEndContext="#pop">
+    <IncludeRules context="FindHTMLTags" />
+    <IncludeRules context="FindSpecialHTMLTags" />
+    <StringDetect attribute="Element" context="#pop!El Open" String="%1" dynamic="true" />
+  </context>
+
+  <context name="ElementTagNameClose" attribute="Other Text" lineEndContext="#pop">
+    <IncludeRules context="FindHTMLTagsClose" />
+    <StringDetect attribute="Element" context="#pop!El Close" String="%1" dynamic="true" />
+  </context>
+
   <!-- This allows you to insert HTML tags in other syntax definitions -->
   <context name="FindSpecialHTMLTags" attribute="Normal Text" lineEndContext="#stay">
-    <RegExpr attribute="Element" context="CSS" String="&lt;style\b" insensitive="true" beginRegion="style" />
-    <RegExpr attribute="Element" context="JS" String="&lt;script\b" insensitive="true" beginRegion="script" />
+    <WordDetect attribute="Element" context="#pop!CSS" String="style" insensitive="true" beginRegion="style" />
+    <WordDetect attribute="Element" context="#pop!JS" String="script" insensitive="true" beginRegion="script" />
   </context>
 
   <context name="FindHTMLTags" attribute="Normal Text" lineEndContext="#stay">
-    <WordDetect attribute="Element" context="El Open" String="&lt;pre" insensitive="true" beginRegion="pre" />
-    <WordDetect attribute="Element" context="El Open" String="&lt;div" insensitive="true" beginRegion="div" />
-    <WordDetect attribute="Element" context="El Open" String="&lt;table" insensitive="true" beginRegion="table" />
-    <WordDetect attribute="Element" context="El Open" String="&lt;ul" insensitive="true" beginRegion="ul" />
-    <WordDetect attribute="Element" context="El Open" String="&lt;ol" insensitive="true" beginRegion="ol" />
-    <WordDetect attribute="Element" context="El Open" String="&lt;dl" insensitive="true" beginRegion="dl" />
-    <WordDetect attribute="Element" context="El Open" String="&lt;article" insensitive="true" beginRegion="article" />
-    <WordDetect attribute="Element" context="El Open" String="&lt;aside" insensitive="true" beginRegion="aside" />
-    <WordDetect attribute="Element" context="El Open" String="&lt;details" insensitive="true" beginRegion="details" />
-    <WordDetect attribute="Element" context="El Open" String="&lt;figure" insensitive="true" beginRegion="figure" />
-    <WordDetect attribute="Element" context="El Open" String="&lt;footer" insensitive="true" beginRegion="footer" />
-    <WordDetect attribute="Element" context="El Open" String="&lt;header" insensitive="true" beginRegion="header" />
-    <WordDetect attribute="Element" context="El Open" String="&lt;main" insensitive="true" beginRegion="main" />
-    <WordDetect attribute="Element" context="El Open" String="&lt;nav" insensitive="true" beginRegion="nav" />
-    <WordDetect attribute="Element" context="El Open" String="&lt;section" insensitive="true" beginRegion="section" />
-    <RegExpr attribute="Element" context="El Open" String="&lt;&name;" />
-    <WordDetect attribute="Element" context="El Close" String="&lt;/pre" insensitive="true" endRegion="pre" />
-    <WordDetect attribute="Element" context="El Close" String="&lt;/div" insensitive="true" endRegion="div" />
-    <WordDetect attribute="Element" context="El Close" String="&lt;/table" insensitive="true" endRegion="table" />
-    <WordDetect attribute="Element" context="El Close" String="&lt;/ul" insensitive="true" endRegion="ul" />
-    <WordDetect attribute="Element" context="El Close" String="&lt;/ol" insensitive="true" endRegion="ol" />
-    <WordDetect attribute="Element" context="El Close" String="&lt;/dl" insensitive="true" endRegion="dl" />
-    <WordDetect attribute="Element" context="El Close" String="&lt;/article" insensitive="true" endRegion="article" />
-    <WordDetect attribute="Element" context="El Close" String="&lt;/aside" insensitive="true" endRegion="aside" />
-    <WordDetect attribute="Element" context="El Close" String="&lt;/details" insensitive="true" endRegion="details" />
-    <WordDetect attribute="Element" context="El Close" String="&lt;/figure" insensitive="true" endRegion="figure" />
-    <WordDetect attribute="Element" context="El Close" String="&lt;/footer" insensitive="true" endRegion="footer" />
-    <WordDetect attribute="Element" context="El Close" String="&lt;/header" insensitive="true" endRegion="header" />
-    <WordDetect attribute="Element" context="El Close" String="&lt;/main" insensitive="true" endRegion="main" />
-    <WordDetect attribute="Element" context="El Close" String="&lt;/nav" insensitive="true" endRegion="nav" />
-    <WordDetect attribute="Element" context="El Close" String="&lt;/section" insensitive="true" endRegion="section" />
-    <RegExpr attribute="Element" context="El Close" String="&lt;/&name;" />
+    <WordDetect attribute="Element" context="#pop!El Open" String="pre" insensitive="true" beginRegion="pre" />
+    <WordDetect attribute="Element" context="#pop!El Open" String="div" insensitive="true" beginRegion="div" />
+    <WordDetect attribute="Element" context="#pop!El Open" String="table" insensitive="true" beginRegion="table" />
+    <WordDetect attribute="Element" context="#pop!El Open" String="ul" insensitive="true" beginRegion="ul" />
+    <WordDetect attribute="Element" context="#pop!El Open" String="ol" insensitive="true" beginRegion="ol" />
+    <WordDetect attribute="Element" context="#pop!El Open" String="dl" insensitive="true" beginRegion="dl" />
+    <WordDetect attribute="Element" context="#pop!El Open" String="article" insensitive="true" beginRegion="article" />
+    <WordDetect attribute="Element" context="#pop!El Open" String="aside" insensitive="true" beginRegion="aside" />
+    <WordDetect attribute="Element" context="#pop!El Open" String="details" insensitive="true" beginRegion="details" />
+    <WordDetect attribute="Element" context="#pop!El Open" String="figure" insensitive="true" beginRegion="figure" />
+    <WordDetect attribute="Element" context="#pop!El Open" String="footer" insensitive="true" beginRegion="footer" />
+    <WordDetect attribute="Element" context="#pop!El Open" String="header" insensitive="true" beginRegion="header" />
+    <WordDetect attribute="Element" context="#pop!El Open" String="main" insensitive="true" beginRegion="main" />
+    <WordDetect attribute="Element" context="#pop!El Open" String="nav" insensitive="true" beginRegion="nav" />
+    <WordDetect attribute="Element" context="#pop!El Open" String="section" insensitive="true" beginRegion="section" />
   </context>
 
+  <context name="FindHTMLTagsClose" attribute="Normal Text" lineEndContext="#stay">
+    <WordDetect attribute="Element" context="#pop!El Close" String="pre" insensitive="true" endRegion="pre" />
+    <WordDetect attribute="Element" context="#pop!El Close" String="div" insensitive="true" endRegion="div" />
+    <WordDetect attribute="Element" context="#pop!El Close" String="table" insensitive="true" endRegion="table" />
+    <WordDetect attribute="Element" context="#pop!El Close" String="ul" insensitive="true" endRegion="ul" />
+    <WordDetect attribute="Element" context="#pop!El Close" String="ol" insensitive="true" endRegion="ol" />
+    <WordDetect attribute="Element" context="#pop!El Close" String="dl" insensitive="true" endRegion="dl" />
+    <WordDetect attribute="Element" context="#pop!El Close" String="article" insensitive="true" endRegion="article" />
+    <WordDetect attribute="Element" context="#pop!El Close" String="aside" insensitive="true" endRegion="aside" />
+    <WordDetect attribute="Element" context="#pop!El Close" String="details" insensitive="true" endRegion="details" />
+    <WordDetect attribute="Element" context="#pop!El Close" String="figure" insensitive="true" endRegion="figure" />
+    <WordDetect attribute="Element" context="#pop!El Close" String="footer" insensitive="true" endRegion="footer" />
+    <WordDetect attribute="Element" context="#pop!El Close" String="header" insensitive="true" endRegion="header" />
+    <WordDetect attribute="Element" context="#pop!El Close" String="main" insensitive="true" endRegion="main" />
+    <WordDetect attribute="Element" context="#pop!El Close" String="nav" insensitive="true" endRegion="nav" />
+    <WordDetect attribute="Element" context="#pop!El Close" String="section" insensitive="true" endRegion="section" />
+  </context>
+
   <context name="FindEntityRefs" attribute="Other Text" lineEndContext="#stay">
     <RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
     <AnyChar attribute="Error" context="#stay" String="&amp;&lt;" />
@@ -79,8 +96,8 @@
   </context>
 
   <context name="FindAttributes" attribute="Other Text" lineEndContext="#stay">
-    <RegExpr attribute="Attribute" context="#stay" String="^&attributeName;|\s+&attributeName;" />
-    <DetectChar attribute="Attribute" context="Value" char="=" />
+    <DetectChar attribute="Attribute Separator" context="Value" char="=" />
+    <RegExpr attribute="Attribute" context="#stay" String="(^|\s+)&attributeName;(\s+&attributeName;)*\s*|\s+" />
   </context>
 
   <context name="FindDTDRules" attribute="Other Text" lineEndContext="#stay">
@@ -136,49 +153,40 @@
     <IncludeRules context="FindPEntityRefs" />
   </context>
 
-  <context name="El Open" attribute="Other Text" lineEndContext="#stay">
-    <Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" />
-    <DetectChar attribute="Element" context="#pop" char="&gt;" />
+  <context name="El Open" attribute="Error" lineEndContext="#stay">
+    <Detect2Chars attribute="Element Symbols" context="#pop" char="/" char1="&gt;" />
+    <DetectChar attribute="Element Symbols" context="#pop" char="&gt;" />
     <IncludeRules context="FindAttributes" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
   </context>
 
   <context name="El Close" attribute="Other Text" lineEndContext="#stay">
-    <DetectChar attribute="Element" context="#pop" char="&gt;" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
-  </context>
-
-  <context name="El Close 2" attribute="Other Text" lineEndContext="#stay">
-    <DetectChar attribute="Element" context="#pop#pop#pop" char="&gt;" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
-  </context>
-
-  <context name="El Close 3" attribute="Other Text" lineEndContext="#stay">
-    <DetectChar attribute="Element" context="#pop#pop#pop#pop" char="&gt;" />
+    <DetectChar attribute="Element Symbols" context="#pop" char="&gt;" />
     <RegExpr attribute="Error" context="#stay" String="\S" />
   </context>
 
-  <context name="CSS" attribute="Other Text" lineEndContext="#stay">
-    <Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="style" />
-    <DetectChar attribute="Element" context="CSS content" char="&gt;" />
+  <context name="CSS" attribute="Error" lineEndContext="#stay">
+    <Detect2Chars attribute="Element Symbols" context="#pop" char="/" char1="&gt;" endRegion="style" />
+    <DetectChar attribute="Element Symbols" context="CSS content" char="&gt;" />
     <IncludeRules context="FindAttributes" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
   </context>
 
   <context name="CSS content" attribute="Other Text" lineEndContext="#stay">
-    <RegExpr attribute="Element" context="El Close 2" String="&lt;/style\b" insensitive="true" endRegion="style" />
+    <RegExpr attribute="Element Symbols" context="CSS content Close" String="&lt;/(?=style\b)" insensitive="true" />
     <IncludeRules context="##CSS" includeAttrib="true"/>
   </context>
+  <context name="CSS content Close" attribute="Other Text" lineEndContext="#stay">
+    <DetectIdentifier attribute="Element" context="#pop#pop#pop!El Close" endRegion="style" />
+  </context>
 
-  <context name="JS" attribute="Other Text" lineEndContext="#stay">
+  <context name="JS" attribute="Error" lineEndContext="#stay">
     <RegExpr attribute="Attribute" context="Script-Type" String="(?:\s+|^)type(?=\=|\s|$)" insensitive="true"/>
-    <DetectChar attribute="Element" context="JS content" char="&gt;" />
+    <DetectChar attribute="Element Symbols" context="JS content" char="&gt;" />
     <IncludeRules context="DefaultJS" />
   </context>
   <context name="DefaultJS" attribute="Other Text" lineEndContext="#stay">
-    <Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="script" />
-    <IncludeRules context="FindAttributes" />
-    <RegExpr attribute="Error" context="#stay" String="\S" />
+    <Detect2Chars attribute="Element Symbols" context="#pop" char="/" char1="&gt;" endRegion="script" />
+    <DetectChar attribute="Attribute Separator" context="Value" char="=" />
+    <RegExpr attribute="Attribute" context="#stay" String="(^|\s+)&attributeName;|\s+" />
   </context>
 
   <context name="JS content" attribute="Other Text" lineEndContext="#stay">
@@ -186,25 +194,35 @@
     <IncludeRules context="Normal##JavaScript" includeAttrib="true"/>
   </context>
   <context name="Default JS content" attribute="Other Text" lineEndContext="#stay">
-    <RegExpr attribute="Element" context="El Close 2" String="&lt;/script\b" insensitive="true" endRegion="script" />
+    <IncludeRules context="FindScriptTagClose" />
     <RegExpr attribute="Comment" context="JS comment close" String="//(?=.*&lt;/script\b)" insensitive="true" />
   </context>
 
+  <context name="FindScriptTagClose" attribute="Other Text" lineEndContext="#stay">
+    <RegExpr attribute="Element Symbols" context="ScriptTagClose" String="&lt;/(?=script\b)" insensitive="true" />
+  </context>
+  <context name="ScriptTagClose" attribute="Other Text" lineEndContext="#stay">
+    <DetectIdentifier attribute="Element" context="#pop#pop#pop!El Close" endRegion="script" />
+  </context>
+
   <context name="JS comment close" attribute="Comment" lineEndContext="#pop">
-    <RegExpr attribute="Element" context="El Close 3" String="&lt;/script\b" insensitive="true" endRegion="script" />
+    <RegExpr attribute="Element Symbols" context="#pop!ScriptTagClose" String="&lt;/(?=script\b)" insensitive="true" />
     <DetectSpaces />
     <IncludeRules context="##Comments" />
   </context>
 
-  <context name="Value" attribute="Other Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="Value NQ">
+  <context name="Value" attribute="Other Text" lineEndContext="#stay" fallthroughContext="Value NQ">
     <DetectChar attribute="Value" context="Value DQ" char="&quot;" />
     <DetectChar attribute="Value" context="Value SQ" char="&apos;" />
     <DetectSpaces />
   </context>
 
-  <context name="Value NQ" attribute="Other Text" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
+  <context name="Value NQ" attribute="Other Text" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
+    <!-- '{' and '}' are valid, but used with twig -->
+    <RegExpr attribute="Value" String="[^&gt;&lt;&quot;&apos;&amp;\s=`{}]+" />
     <IncludeRules context="FindEntityRefs" />
-    <RegExpr attribute="Value" context="#stay" String="/(?!&gt;)|[^/&gt;&lt;&quot;&apos;\s]" />
+    <AnyChar attribute="Error" String="&quot;&apos;`=" />
+    <AnyChar attribute="Value" String="{}" />
   </context>
 
   <context name="Value DQ" attribute="Value" lineEndContext="#stay">
@@ -220,11 +238,11 @@
   <!-- Read content from the "type" attribute to change the language to
        highlight in the <script> tag. The default language is JavaScript. -->
 
-  <context name="Script-Type" attribute="Other Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
+  <context name="Script-Type" attribute="Other Text" lineEndContext="#stay" fallthroughContext="#pop">
     <DetectSpaces />
     <DetectChar attribute="Attribute" context="#pop!Script-Type Value" char="=" />
   </context>
-  <context name="Script-Type Value" attribute="Other Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!Value">
+  <context name="Script-Type Value" attribute="Other Text" lineEndContext="#stay" fallthroughContext="#pop!Value">
     <DetectSpaces />
     <!-- TypeScript -->
     <StringDetect attribute="Value" context="#pop#pop!TypeScript" String="&quot;text/typescript&quot;"/>
@@ -250,8 +268,8 @@
     <StringDetect attribute="Value" context="#pop#pop!Script HTML template" String="&apos;text/html&apos;"/>
   </context>
 
-  <context name="JSX" attribute="Other Text" lineEndContext="#stay">
-    <DetectChar attribute="Element" context="JSX content" char="&gt;" />
+  <context name="JSX" attribute="Error" lineEndContext="#stay">
+    <DetectChar attribute="Element Symbols" context="JSX content" char="&gt;" />
     <IncludeRules context="DefaultJS" />
   </context>
   <context name="JSX content" attribute="Other Text" lineEndContext="#stay">
@@ -259,8 +277,8 @@
     <IncludeRules context="Normal##JavaScript React (JSX)" includeAttrib="true"/>
   </context>
 
-  <context name="TypeScript" attribute="Other Text" lineEndContext="#stay">
-    <DetectChar attribute="Element" context="TypeScript content" char="&gt;" />
+  <context name="TypeScript" attribute="Error" lineEndContext="#stay">
+    <DetectChar attribute="Element Symbols" context="TypeScript content" char="&gt;" />
     <IncludeRules context="DefaultJS" />
   </context>
   <context name="TypeScript content" attribute="Other Text" lineEndContext="#stay">
@@ -268,25 +286,25 @@
     <IncludeRules context="Normal##TypeScript" includeAttrib="true"/>
   </context>
 
-  <context name="MustacheJS" attribute="Other Text" lineEndContext="#stay">
-    <DetectChar attribute="Element" context="MustacheJS content" char="&gt;" />
+  <context name="MustacheJS" attribute="Error" lineEndContext="#stay">
+    <DetectChar attribute="Element Symbols" context="MustacheJS content" char="&gt;" />
     <IncludeRules context="DefaultJS" />
   </context>
   <context name="MustacheJS content" attribute="Other Text" lineEndContext="#stay">
-    <RegExpr attribute="Element" context="El Close 2" String="&lt;/script\b" insensitive="true" endRegion="script" />
+    <IncludeRules context="FindScriptTagClose" />
     <StringDetect attribute="Error" context="#stay" String="&lt;script&gt;" insensitive="true" />
-    <RegExpr attribute="Error" context="#stay" String="&lt;script\b" insensitive="true" />
+    <WordDetect attribute="Error" context="#stay" String="&lt;script" insensitive="true" />
     <IncludeRules context="Base##Mustache/Handlebars (HTML)" includeAttrib="true"/>
   </context>
 
-  <context name="Script HTML template" attribute="Other Text" lineEndContext="#stay">
-    <DetectChar attribute="Element" context="Script HTML template content" char="&gt;" />
+  <context name="Script HTML template" attribute="Error" lineEndContext="#stay">
+    <DetectChar attribute="Element Symbols" context="Script HTML template content" char="&gt;" />
     <IncludeRules context="DefaultJS" />
   </context>
   <context name="Script HTML template content" attribute="Other Text" lineEndContext="#stay">
-    <RegExpr attribute="Element" context="El Close 2" String="&lt;/script\b" insensitive="true" endRegion="script" />
+    <IncludeRules context="FindScriptTagClose" />
     <StringDetect attribute="Error" context="#stay" String="&lt;script&gt;" insensitive="true" />
-    <RegExpr attribute="Error" context="#stay" String="&lt;script\b" insensitive="true" />
+    <WordDetect attribute="Error" context="#stay" String="&lt;script" insensitive="true" />
     <IncludeRules context="FindHTML" />
   </context>
 
@@ -299,7 +317,9 @@
   <itemData name="Processing Instruction" defStyleNum="dsKeyword" spellChecking="false" />
   <itemData name="Doctype" defStyleNum="dsDataType" bold="1" spellChecking="false" />
   <itemData name="Element" defStyleNum="dsKeyword" spellChecking="false" />
+  <itemData name="Element Symbols" defStyleNum="dsDataType" spellChecking="false" />
   <itemData name="Attribute" defStyleNum="dsOthers" spellChecking="false" />
+  <itemData name="Attribute Separator" defStyleNum="dsOperator" spellChecking="false" />
   <itemData name="Value" defStyleNum="dsString" spellChecking="false" />
   <itemData name="EntityRef" defStyleNum="dsDecVal" spellChecking="false" />
   <itemData name="PEntityRef" defStyleNum="dsDecVal" spellChecking="false" />
diff --git a/syntax/idris.xml b/syntax/idris.xml
--- a/syntax/idris.xml
+++ b/syntax/idris.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!-- Based on haskell.xml and idris.vim (https://github.com/idris-hackers/idris-vim/blob/6bdb44b85406b75e3b3a4fa265deab1dbe8c6ff1/syntax/idris.vim) -->
 <language name="Idris" version="7" kateversion="5.0" section="Sources" extensions="*.idr" author="Alexander Shabalin" license="LGPL">
   <highlighting>
diff --git a/syntax/ini.xml b/syntax/ini.xml
--- a/syntax/ini.xml
+++ b/syntax/ini.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
-<language name="INI Files" section="Configuration" extensions="*.ini;*.pls;*.kcfgc" mimetype="" version="10" kateversion="5.0" author="Jan Janssen (medhefgo@web.de)" license="LGPL">
+<!DOCTYPE language>
+<language name="INI Files" section="Configuration" extensions="*.ini;*.cfg;*.pls;*.kcfgc;.gitattributes*;.gitconfig*;.gitmodules*;.editorconfig*" mimetype="" version="13" kateversion="5.0" author="Jan Janssen (medhefgo@web.de)" license="LGPL" priority="1">
 
 <highlighting>
 <list name="keywords">
@@ -65,14 +65,14 @@
 
 
 <itemDatas>
- <itemData name="Normal Text" defStyleNum="dsDataType" />
- <itemData name="Section" defStyleNum="dsKeyword" />
- <itemData name="Comment" defStyleNum="dsComment" />
- <itemData name="Assignment" defStyleNum="dsOthers" />
- <itemData name="Value" defStyleNum="dsString" />
- <itemData name="Float" defStyleNum="dsFloat" />
- <itemData name="Int" defStyleNum="dsDecVal" />
- <itemData name="Keyword" defStyleNum="dsKeyword" />
+ <itemData name="Normal Text" defStyleNum="dsDataType" spellChecking="false"/>
+ <itemData name="Section" defStyleNum="dsKeyword" spellChecking="false"/>
+ <itemData name="Comment" defStyleNum="dsComment"/>
+ <itemData name="Assignment" defStyleNum="dsOthers" spellChecking="false"/>
+ <itemData name="Value" defStyleNum="dsString" spellChecking="false"/>
+ <itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>
+ <itemData name="Int" defStyleNum="dsDecVal" spellChecking="false"/>
+ <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
 </itemDatas>
 </highlighting>
 
diff --git a/syntax/isocpp.xml b/syntax/isocpp.xml
--- a/syntax/isocpp.xml
+++ b/syntax/isocpp.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
     <!ENTITY int "(?:[0-9](?:'?[0-9]++)*+)">
     <!ENTITY hex_int "(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f]++)*+)">
@@ -11,7 +11,7 @@
     <!ENTITY punctuators ":&ns_punctuators;">
 
     <!-- printf-like format strings conversion specifiers -->
-    <!ENTITY printf_like "&#37;[-+ #0]*(?:[0-9]+|\*)?(?:\.(?:[0-9]+|\*))?(?:(?:hh|ll|[hljzt])?[dioxXun]|[lL]?[fFeEaAgG]|l?[cs]|[p&#37;])">
+    <!ENTITY printf_like "&#37;[-+ #0]*+(?:[0-9]++|\*)?(?:\.(?:[0-9]++|\*))?(?:(?:hh|ll|[hljzt]|wf?(?:8|16|32|64))?[dioxXubn]|(?:DD|[lLHD])?[fFeEaAgG]|l?[cs]|[p&#37;])">
     <!-- https://en.cppreference.com/w/cpp/utility/format/formatter#Standard_format_specification -->
     <!ENTITY format_like "\{\{|\}\}|\{[0-9]*(?::(?:[^{}]?[&lt;&gt;^])?[-+ #0]*(?:[0-9]+|\{[0-9]*\})?(?:\.(?:[0-9]+|\{[0-9]*\}))?L?[sbBcdoxXaAeEfFgGp]?)?\}">
 
@@ -20,16 +20,27 @@
     <!ENTITY ppemptypp "($|(?=(/\*([^*]|\*[^/])*\*/\s*)?(//.*)?$))">
     <!ENTITY ppcond0 "\s+(?:0|false)\s*&ppemptypp;">
     <!ENTITY ppcond1 "\s+(?:1|true)\s*(\|\|([^/]|/[^*/])+)?&ppemptypp;">
+
+    <!ENTITY ident_internal1  "_[a-zA-Z0-9_]+">
+    <!ENTITY ident_internal2  "[a-zA-Z][a-zA-Z0-9_]*__\b">
+    <!ENTITY ident_internal   "(?:&ident_internal1;|&ident_internal2;)">
+    <!ENTITY ident_member1    "m_[a-zA-Z0-9_]+">
+    <!ENTITY ident_member2    "[a-z][a-zA-Z0-9_]*_\b">
+    <!ENTITY ident_member     "(?:&ident_member1;|&ident_member2;)">
+    <!ENTITY ident_CONST      "[A-Z][A-Z0-9_]{2,}\b">
+    <!ENTITY ident_type       "[a-zA-Z][a-zA-Z0-9_]*_t(?:ype)?\b">
+    <!ENTITY ident_global     "g_[a-zA-Z0-9_]+">
+    <!ENTITY ident_static_prefix  "s_[a-zA-Z0-9_]">
 ]>
 <language
     name="ISO C++"
     section="Sources"
-    version="25"
-    kateversion="5.0"
+    version="31"
+    kateversion="5.79"
     indenter="cstyle"
     style="C++"
     mimetype="text/x-c++src;text/x-c++hdr;text/x-chdr"
-    extensions="*.c++;*.cxx;*.cpp;*.cc;*.C;*.h;*.hh;*.H;*.h++;*.hxx;*.hpp;*.hcc;*.moc"
+    extensions="*.c++;*.cxx;*.cpp;*.cc;*.C;*.cu;*.h;*.hh;*.H;*.h++;*.hxx;*.hpp;*.hcc;*.cuh;*.inl;*.ino;*.pde;*.moc;*.mpp;*.ixx;*.cppm;*.cxxm;*.c++m;*.ccm"
     author="Alex Turbov (i.zaufi@gmail.com)"
     license="LGPL"
     priority="6"
@@ -152,6 +163,8 @@
       <item>likely</item>
       <item>unlikely</item>
       <item>no_unique_address</item>
+      <!-- C++23 -->
+      <item>assume</item>
       <!-- TM TS -->
       <!-- <item>optimize_for_synchronized</item> -->
     </list>
@@ -252,6 +265,8 @@
       <item>ifdef</item>
       <item>ifndef</item>
       <item>elif</item>
+      <item>elifdef</item> <!--C++23-->
+      <item>elifndef</item> <!--C++23-->
       <item>else</item>
       <item>endif</item>
       <item>cmakedefine01</item>
@@ -264,26 +279,25 @@
       <item>undef</item>
       <item>warning</item>
     </list>
-    <list name="preprocessorIfDef">
-      <item>ifdef</item>
-      <item>ifndef</item>
-    </list>
     <list name="preprocessorDefine">
       <item>cmakedefine01</item>
       <item>cmakedefine</item>
       <item>define</item>
+      <item>undef</item>
     </list>
     <list name="preprocessorOther">
       <item>error</item>
       <item>line</item>
       <item>pragma</item>
-      <item>undef</item>
       <item>warning</item>
     </list>
 
     <contexts>
       <context name="Main" attribute="Normal Text" lineEndContext="#stay">
         <DetectSpaces/>
+        <!-- Match punctuators (partial for fast path) -->
+        <AnyChar attribute="Symbol" context="#stay" String=":()]+-*=&gt;!|&amp;~^" />
+        <AnyChar attribute="Separator Symbol" context="#stay" String="&separators;" />
         <!-- Match scope regions -->
         <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
         <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
@@ -292,30 +306,27 @@
         <!-- Detect attributes -->
         <Detect2Chars attribute="Symbol" context="Attribute" char="[" char1="[" />
         <StringDetect attribute="Symbol" context="Attribute" String="&lt;:&lt;:" /> <!-- Digraph: [[ -->
+
+        <!-- Match preprocessor directives -->
+        <DetectChar attribute="Preprocessor" context="AfterHash" char="#" lookAhead="1"/>
+        <Detect2Chars attribute="Preprocessor" context="AfterHash" char="%" char1=":" lookAhead="1"/> <!-- Digraph: # -->
+        <StringDetect attribute="Preprocessor" context="AfterHash" String="??=" lookAhead="1"/> <!-- Trigraph: # -->
+
         <!-- Match numbers -->
-        <RegExpr context="Number" String="\.?\d" lookAhead="true" />
+        <RegExpr context="Number" String="\.?[0-9]" lookAhead="true" />
         <!-- Match comments -->
         <IncludeRules context="match comments and region markers" />
+        <!-- Match punctuators -->
+        <AnyChar attribute="Symbol" context="#stay" String="&punctuators;" />
         <!-- Match keywords -->
         <IncludeRules context="match keywords" />
         <!-- Match string literals -->
-        <IncludeRules context="match string" />
+        <AnyChar context="SelectString" String="UuLR&quot;'" lookAhead="1"/>
         <!-- Match GCC extensions -->
         <IncludeRules context="DetectGccExtensions##GCCExtensions" />
         <!-- Match most used namespaces and styles -->
-        <StringDetect attribute="Standard Classes" context="Standard Classes" String="std::" />
-        <StringDetect attribute="Boost Stuff" context="Boost Stuff" String="boost::" />
-        <StringDetect attribute="Boost Stuff" context="Boost Stuff" String="BOOST_" />
-        <StringDetect attribute="Internals" context="InternalsNS" String="detail::" />
-        <StringDetect attribute="Internals" context="InternalsNS" String="details::" />
-        <StringDetect attribute="Internals" context="InternalsNS" String="aux::" />
-        <StringDetect attribute="Internals" context="InternalsNS" String="internals::" />
+        <RegExpr context="DispatchNamespace" String="(std::)|(boost::|BOOST_)|details?::|aux::|internals::" lookAhead="1"/>
         <IncludeRules context="match identifier" />
-        <!-- Match preprocessor directives -->
-        <RegExpr attribute="Preprocessor" context="AfterHash" String="&ispphash;" lookAhead="true" />
-        <!-- Match punctuators -->
-        <AnyChar attribute="Separator Symbol" context="#stay" String="&separators;" />
-        <AnyChar attribute="Symbol" context="#stay" String="&punctuators;" />
         <!-- Match invalid symbols -->
         <AnyChar attribute="Error" context="#stay" String="$@`" />
       </context>
@@ -325,7 +336,7 @@
         <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true" />
       </context>
 
-      <context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+      <context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
         <IncludeRules context="##Doxygen" />
         <Detect2Chars attribute="Comment" context="#pop!Comment 1" char="/" char1="/" />
         <Detect2Chars attribute="Comment" context="#pop!Comment 2" char="/" char1="*" beginRegion="Comment" />
@@ -336,7 +347,7 @@
         <Detect2Chars attribute="Comment" context="MatchCommentAndRegionMarkers" char="/" char1="*" lookAhead="true" />
       </context>
 
-      <context name="MatchCommentAndRegionMarkers" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+      <context name="MatchCommentAndRegionMarkers" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
         <StringDetect attribute="Region Marker" context="#pop!Region Marker" String="//BEGIN" beginRegion="Region1" firstNonSpace="true" />
         <StringDetect attribute="Region Marker" context="#pop!Region Marker" String="//END" endRegion="Region1" firstNonSpace="true" />
         <IncludeRules context="MatchComment" />
@@ -348,67 +359,133 @@
         <keyword attribute="Keyword" context="#stay" String="keywords" />
       </context>
 
-      <context name="match string" attribute="Normal Text" lineEndContext="#pop">
-        <DetectChar attribute="String" context="String" char="&quot;" />
-        <Detect2Chars attribute="String" context="String" char="U" char1="&quot;" />
-        <Detect2Chars attribute="String" context="String16" char="u" char1="&quot;" />
-        <Detect2Chars attribute="String" context="String16" char="L" char1="&quot;" />
-        <StringDetect attribute="String" context="String8" String="u8&quot;" />
-        <Detect2Chars attribute="Raw String Delimiter" context="RawString" char="R" char1="&quot;" />
-        <StringDetect attribute="Raw String Delimiter" context="RawString" String="uR&quot;" />
-        <StringDetect attribute="Raw String Delimiter" context="RawString" String="UR&quot;" />
-        <StringDetect attribute="Raw String Delimiter" context="RawString" String="LR&quot;" />
-        <StringDetect attribute="Raw String Delimiter" context="RawString" String="u8R&quot;" />
-        <DetectChar attribute="Char" context="Char8 Literal" char="'" />
-        <Detect2Chars attribute="Char" context="Char16 Literal" char="L" char1="'" />
-        <Detect2Chars attribute="Char" context="Char16 Literal" char="u" char1="'" />
-        <Detect2Chars attribute="Char" context="Char32 Literal" char="U" char1="'" />
-        <StringDetect attribute="Char" context="Char8 Literal" String="u8'" />
+
+      <context name="SelectStringPP" attribute="Preprocessor" lineEndContext="#pop">
+        <IncludeRules context="SelectString"/>
       </context>
+      <context name="SelectString" attribute="Normal Text" lineEndContext="#pop">
+        <DetectChar attribute="String" context="#pop!String8" char="&quot;"/>
+        <DetectChar attribute="Char" context="#pop!Char8" char="'"/>
+        <Detect2Chars context="#pop!SelectStringPrefix" char="U" char1="&quot;" lookAhead="1"/>
+        <Detect2Chars context="#pop!SelectStringPrefix" char="u" char1="&quot;" lookAhead="1"/>
+        <Detect2Chars context="#pop!SelectStringPrefix" char="L" char1="&quot;" lookAhead="1"/>
+        <StringDetect context="#pop!SelectStringPrefix" String="u8&quot;" lookAhead="1"/>
+        <StringDetect context="#pop!RawString" String="R&quot;" lookAhead="1"/>
+        <StringDetect context="#pop!RawString" String="uR&quot;" lookAhead="1"/>
+        <StringDetect context="#pop!RawString" String="UR&quot;" lookAhead="1"/>
+        <StringDetect context="#pop!RawString" String="LR&quot;" lookAhead="1"/>
+        <StringDetect context="#pop!RawString" String="u8R&quot;" lookAhead="1"/>
+        <Detect2Chars context="#pop!SelectCharPrefix" char="U" char1="'" lookAhead="1"/>
+        <Detect2Chars context="#pop!SelectCharPrefix" char="u" char1="'" lookAhead="1"/>
+        <Detect2Chars context="#pop!SelectCharPrefix" char="L" char1="'" lookAhead="1"/>
+        <StringDetect context="#pop!SelectCharPrefix" String="u8'" lookAhead="1"/>
 
+        <!-- match identifier -->
+        <keyword attribute="Data Type" context="#pop" String="types"/>
+        <RegExpr context="#pop!DispatchIdentifier" String="(&ident_internal2;)|(&ident_member2;)|(&ident_CONST;)|(&ident_type;)" lookAhead="1"/>
+        <DetectIdentifier context="#pop"/>
+      </context>
+
+      <context name="SelectStringPrefix" attribute="String" lineEndContext="#pop">
+        <Detect2Chars attribute="String Literal Prefix" context="#pop!StringPrefix8" char="u" char1="8"/>
+        <AnyChar attribute="String Literal Prefix" context="#pop!StringPrefix16" String="uL"/>
+        <DetectChar attribute="String Literal Prefix" context="#pop!StringPrefix32" char="U"/>
+      </context>
+      <context name="StringPrefix8" attribute="String" lineEndContext="#pop">
+        <DetectChar attribute="String" context="#pop!String8" char="&quot;"/>
+      </context>
+      <context name="StringPrefix16" attribute="String" lineEndContext="#pop">
+        <DetectChar attribute="String" context="#pop!String16" char="&quot;"/>
+      </context>
+      <context name="StringPrefix32" attribute="String" lineEndContext="#pop">
+        <DetectChar attribute="String" context="#pop!String32" char="&quot;"/>
+      </context>
+
+      <context name="SelectCharPrefix" attribute="String" lineEndContext="#pop">
+        <Detect2Chars attribute="Char Literal Prefix" context="#pop!CharPrefix8" char="u" char1="8"/>
+        <AnyChar attribute="Char Literal Prefix" context="#pop!CharPrefix16" String="uL"/>
+        <DetectChar attribute="Char Literal Prefix" context="#pop!CharPrefix32" char="U"/>
+      </context>
+      <context name="CharPrefix8" attribute="Char" lineEndContext="#pop">
+        <DetectChar attribute="Char" context="#pop!Char8" char="'"/>
+      </context>
+      <context name="CharPrefix16" attribute="Char" lineEndContext="#pop">
+        <DetectChar attribute="Char" context="#pop!Char16" char="'"/>
+      </context>
+      <context name="CharPrefix32" attribute="Char" lineEndContext="#pop">
+        <DetectChar attribute="Char" context="#pop!Char32" char="'"/>
+      </context>
+
       <context name="match identifier" attribute="Normal Text" lineEndContext="#pop">
         <keyword attribute="Data Type" context="#stay" String="types" />
         <keyword attribute="Type Modifiers" context="#stay" String="modifiers" />
         <keyword attribute="Standard Macros" context="#stay" String="StdMacros" />
-        <RegExpr attribute="Internals" context="#stay" String="_[a-zA-Z0-9_]+|[a-zA-Z][a-zA-Z0-9_]*__\b" />
-        <RegExpr attribute="Data Members (m_*)" context="#stay" String="m_[a-zA-Z0-9_]+|[a-z][a-zA-Z0-9_]*_\b" />
-        <RegExpr attribute="Globals (g_*)" context="#stay" String="g_[a-zA-Z0-9_]+" />
-        <RegExpr attribute="Statics (s_*)" context="#stay" String="s_[a-zA-Z0-9_]+" />
-        <RegExpr attribute="CONSTS/MACROS" context="#stay" String="[A-Z][A-Z0-9_]{2,}\b" />
-        <RegExpr attribute="Types (*_t/*_type)" context="#stay" String="[a-zA-Z][a-zA-Z0-9_]*_t(ype)?\b" />
+        <RegExpr context="DispatchIdentifier" String="(&ident_internal;)|(&ident_member;)|(&ident_CONST;)|(&ident_type;)|(&ident_global;)|&ident_static_prefix;" lookAhead="1"/>
         <DetectIdentifier />
       </context>
+      <context name="DispatchIdentifier" attribute="Normal Text" lineEndContext="#pop">
+        <StringDetect context="#pop" String="%2" dynamic="1" attribute="Data Members (m_*)"/>
+        <StringDetect context="#pop" String="%4" dynamic="1" attribute="Types (*_t/*_type)"/>
+        <StringDetect context="#pop" String="%3" dynamic="1" attribute="CONSTS/MACROS"/>
+        <StringDetect context="#pop" String="%1" dynamic="1" attribute="Internals"/>
+        <StringDetect context="#pop" String="%5" dynamic="1" attribute="Globals (g_*)"/>
+        <DetectIdentifier context="#pop" attribute="Statics (s_*)"/>
+      </context>
 
-      <context name="Number" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+      <context name="DispatchNamespace" attribute="Normal Text" lineEndContext="#pop">
+        <StringDetect context="#pop!Standard Classes" String="%1" dynamic="1" attribute="Standard Classes"/>
+        <StringDetect context="#pop!Boost Stuff" String="%2" dynamic="1" attribute="Boost Stuff"/>
+        <DetectIdentifier context="#pop!InternalsNS" attribute="Internals"/>
+      </context>
+
+      <context name="DispatchNamespacePP" attribute="Preprocessor" lineEndContext="#pop">
+        <StringDetect context="#pop!Standard Classes In PP" String="%1" dynamic="1" attribute="Standard Classes"/>
+        <StringDetect context="#pop!Boost Stuff In PP" String="%2" dynamic="1" attribute="Boost Stuff"/>
+        <DetectIdentifier context="#pop!InternalsNS In PP" attribute="Internals"/>
+      </context>
+
+      <context name="Number" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
         <RegExpr attribute="Float" context="FloatSuffix" String="\.&int;&exp_float;?|0[xX](?:\.&hex_int;&exp_hexfloat;?|&hex_int;(?:&exp_hexfloat;|\.&hex_int;?&exp_hexfloat;?))|&int;(?:&exp_float;|\.&int;?&exp_float;?)" />
+        <WordDetect attribute="Decimal" context="IntSuffix" String="0" weakDeliminator="."/>
         <IncludeRules context="Integer" />
       </context>
 
-      <context name="Integer" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+      <context name="Integer" attribute="Normal Text" lineEndContext="#pop">
+        <DetectChar context="#pop!IntStartsWith0" char="0" lookAhead="1"/>
+        <RegExpr attribute="Decimal" context="IntSuffix" String="&int;" />
+        <RegExpr attribute="Error" context="#pop" String="[._0-9A-Za-z']++" />
+      </context>
+      <context name="IntStartsWith0" attribute="Normal Text" lineEndContext="#pop">
         <RegExpr attribute="Hex" context="IntSuffix" String="0[xX]&hex_int;" />
         <RegExpr attribute="Binary" context="IntSuffix" String="0[Bb][01](?:'?[01]++)*+" />
         <RegExpr attribute="Octal" context="IntSuffix" String="0(?:'?[0-7]++)++" />
-        <RegExpr attribute="Decimal" context="IntSuffix" String="0(?![xXbB0-9])|[1-9](?:'?[0-9]++)*+" />
-        <RegExpr attribute="Error" context="#pop" String="[._0-9A-Za-z']++" />
+        <DetectChar attribute="Decimal" context="IntSuffix" char="0"/>
       </context>
 
-      <context name="IntSuffix" attribute="Error" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="NumericSuffixError">
+      <context name="IntSuffix" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="NumericSuffixError">
         <DetectChar attribute="Error" context="#stay" char="'" />
-        <AnyChar attribute="Error" context="#pop!IntSuffixPattern" String="uUlLimunshyd_" lookAhead="true" />
+        <AnyChar context="#pop!IntSuffixPattern" String="uUlLzZimunshyd_" lookAhead="1"/>
       </context>
 
-      <context name="IntSuffixPattern" attribute="Error" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="NumericSuffixError">
-        <RegExpr attribute="Standard Suffix" context="NumericSuffixError" String="([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?)\b" />
+      <context name="IntSuffixPattern" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="NumericSuffixError">
+        <!-- https://en.cppreference.com/w/cpp/language/integer_literal#The_type_of_the_literal -->
+        <RegExpr attribute="Standard Suffix" context="NumericSuffixError" String="([Uu](LL?|ll?|[Zz])?|(LL?|ll?|[Zz])[Uu]?)\b"/>
         <!-- https://en.cppreference.com/w/cpp/language/user_literal#Standard_library -->
-        <RegExpr attribute="Standard Classes" context="NumericSuffixError" String="(?:i[fl]?|min|[mun]?s|[hyd])\b" />
-        <DetectChar attribute="Error" context="#pop!NumericUserSuffixPattern" char="_" lookAhead="true" />
+        <RegExpr attribute="Standard Classes" context="NumericSuffixError" String="(?:i[fl]?|min|[mun]?s|[hyd])\b"/>
+        <DetectChar context="#pop!NumericUserSuffixPattern" char="_" lookAhead="1"/>
       </context>
 
-      <context name="FloatSuffix" attribute="Error" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="NumericSuffixError">
+      <context name="FloatSuffix" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="NumericSuffixError">
+        <DetectChar attribute="Error" context="#stay" char="'" />
+        <AnyChar context="#pop!FloatSuffixPattern" String="fFlLimsh_" lookAhead="1"/>
+      </context>
+
+      <context name="FloatSuffixPattern" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="NumericSuffixError">
+        <!-- https://en.cppreference.com/w/cpp/language/floating_literal#Syntax -->
         <AnyChar attribute="Standard Suffix" context="NumericSuffixError" String="fFlL" />
         <!-- https://en.cppreference.com/w/cpp/language/user_literal#Standard_library -->
         <RegExpr attribute="Standard Classes" context="NumericSuffixError" String="(?:i[fl]?|min|[mun]?s|h)\b" />
-        <DetectChar attribute="Error" context="#pop!NumericUserSuffixPattern" char="_" lookAhead="true" />
+        <DetectChar context="#pop!NumericUserSuffixPattern" char="_" lookAhead="1" />
       </context>
 
       <context name="NumericUserSuffixPattern" attribute="Error" lineEndContext="#pop#pop">
@@ -419,87 +496,109 @@
         must be separated from the operator with whitespace or parentheses in the source
         -->
         <RegExpr attribute="Error" context="#pop#pop" String="_[eEpP][+-]" />
-        <RegExpr attribute="UDL Numeric Suffix" context="NumericSuffixError" String="_[_[:alnum:]]*" />
+        <DetectIdentifier attribute="UDL Numeric Suffix" context="NumericSuffixError"/>
       </context>
 
-      <context name="NumericSuffixError" attribute="Error" lineEndContext="#pop#pop#pop" fallthrough="true" fallthroughContext="#pop#pop#pop">
-        <RegExpr attribute="Error" context="#pop#pop#pop" String="\.[_0-9A-Za-z]*|[_0-9A-Za-z]+" />
+      <context name="NumericSuffixError" attribute="Error" lineEndContext="#pop#pop#pop" fallthroughContext="#pop#pop#pop">
+        <AnyChar attribute="Error" String=".'0123456789"/>
+        <DetectIdentifier attribute="Error"/>
       </context>
 
-      <context name="CheckUDLOperator" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+      <context name="CheckUDLOperator" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
         <DetectSpaces />
         <Detect2Chars attribute="String" context="UDLOperatorName" char="&quot;" char1="&quot;" />
       </context>
 
-      <context name="UDLOperatorName" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!IdentifierError">
+      <context name="UDLOperatorName" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!IdentifierError">
         <DetectSpaces />
         <RegExpr attribute="Normal Text" context="#pop#pop" String="_[_[:alnum:]]*\b" />
       </context>
 
-      <context name="IdentifierError" attribute="Error" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop">
+      <context name="IdentifierError" attribute="Error" lineEndContext="#stay" fallthroughContext="#pop#pop">
         <RegExpr attribute="Error" context="#pop#pop" String=".[^\s()]*" />
       </context>
 
 
-      <context name="Char8 Literal" attribute="Char" lineEndContext="#pop" fallthrough="true" fallthroughContext="Char Literal Close">
-        <RegExpr attribute="String Char" context="Char Literal Close" String="\\(?:[tnvbrfa'&quot;\\?]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2})" />
-        <DetectChar attribute="Error" context="#pop" char="'" />
-        <RegExpr attribute="Char" context="Char Literal Close" String="." />
+      <context name="Char8" attribute="Char" lineEndContext="#pop" fallthroughContext="CharClose">
+        <HlCStringChar attribute="String Char" context="CharClose"/>
+        <IncludeRules context="FindSingleChar"/>
       </context>
 
-      <context name="Char16 Literal" attribute="Char" lineEndContext="#pop" fallthrough="true" fallthroughContext="Char Literal Close">
-        <RegExpr attribute="String Char" context="Char Literal Close" String="\\(?:[tnvbrfa'&quot;\\?]|[0-7]{1,3}|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4})" />
-        <DetectChar attribute="Error" context="#pop" char="'" />
-        <RegExpr attribute="Char" context="Char Literal Close" String="." />
+      <context name="Char16" attribute="Char" lineEndContext="#pop" fallthroughContext="CharClose">
+        <RegExpr attribute="String Char" context="CharClose" String="\\(?:[tnvbrfa'&quot;\\?]|[0-7]{1,3}|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4})|" />
+        <IncludeRules context="FindSingleChar"/>
       </context>
 
-      <context name="Char32 Literal" attribute="Char" lineEndContext="#pop" fallthrough="true" fallthroughContext="Char Literal Close">
-        <RegExpr attribute="String Char" context="Char Literal Close" String="\\(?:[tnvbrfa'&quot;\\?]|[0-7]{1,3}|x[0-9A-Fa-f]{1,8}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})" />
+      <context name="Char32" attribute="Char" lineEndContext="#pop" fallthroughContext="CharClose">
+        <RegExpr attribute="String Char" context="CharClose" String="\\(?:[tnvbrfa'&quot;\\?]|[0-7]{1,3}|x[0-9A-Fa-f]{1,8}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})|" />
+        <IncludeRules context="FindSingleChar"/>
+      </context>
+
+      <context name="FindSingleChar" attribute="Char" lineEndContext="#pop">
         <DetectChar attribute="Error" context="#pop" char="'" />
-        <RegExpr attribute="Char" context="Char Literal Close" String="." />
+        <RegExpr attribute="Char" context="CharClose" String="." />
       </context>
 
-      <context name="Char Literal Close" attribute="Error" lineEndContext="#pop#pop">
+      <context name="CharClose" attribute="Error" lineEndContext="#pop#pop">
         <DetectChar attribute="Char" context="#pop#pop" char="'" />
       </context>
 
 
-      <context name="String" attribute="String" lineEndContext="#pop">
+      <context name="String8" attribute="String" lineEndContext="#pop">
         <IncludeRules context="string normal char" />
-        <RegExpr attribute="String Char" context="StringNoHex" String="\\x[0-9A-Fa-f]{1,8}" />
+        <Detect2Chars context="String8EscapeX" char="\" char1="x" lookAhead="1"/>
         <IncludeRules context="string special char" />
       </context>
+      <context name="String8EscapeX" attribute="String" lineEndContext="#pop">
+        <HlCStringChar attribute="String Char" context="#pop!StringNoHex"/>
+        <IncludeRules context="string special char x" />
+      </context>
 
-      <context name="String8" attribute="String" lineEndContext="#pop">
+      <context name="String16" attribute="String" lineEndContext="#pop">
         <IncludeRules context="string normal char" />
-        <RegExpr attribute="String Char" context="StringNoHex" String="\\x[0-9A-Fa-f]{1,2}" />
+        <Detect2Chars context="String16EscapeX" char="\" char1="x" lookAhead="1"/>
         <IncludeRules context="string special char" />
       </context>
+      <context name="String16EscapeX" attribute="String" lineEndContext="#pop">
+        <RegExpr attribute="String Char" context="#pop!StringNoHex" String="\\x[0-9A-Fa-f]{1,4}" />
+        <IncludeRules context="string special char x" />
+      </context>
 
-      <context name="String16" attribute="String" lineEndContext="#pop">
+      <context name="String32" attribute="String" lineEndContext="#pop">
         <IncludeRules context="string normal char" />
-        <RegExpr attribute="String Char" context="StringNoHex" String="\\x[0-9A-Fa-f]{1,4}" />
+        <Detect2Chars context="String32EscapeX" char="\" char1="x" lookAhead="1"/>
         <IncludeRules context="string special char" />
       </context>
+      <context name="String32EscapeX" attribute="String" lineEndContext="#pop">
+        <RegExpr attribute="String Char" context="#pop!StringNoHex" String="\\x[0-9A-Fa-f]{1,8}" />
+        <IncludeRules context="string special char x" />
+      </context>
 
-      <context name="StringNoHex" attribute="Error" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+      <context name="StringNoHex" attribute="Error" lineEndContext="#pop" fallthroughContext="#pop">
         <RegExpr attribute="Error" context="#pop" String="[0-9A-Fa-f]{1,}" />
       </context>
 
       <context name="string special char" attribute="String" lineEndContext="#pop">
-        <RegExpr attribute="String Char" context="#stay" String="\\(?:[tnvbrfa'&quot;\\?]|[0-7]{1,3}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})|&printf_like;|&format_like;" />
-        <RegExpr attribute="Error" context="#stay" String="\\(?:u[^&quot;]{0,3}|U[^&quot;]{0,7}|.)" />
-        <LineContinue attribute="String" context="#stay" />
+        <HlCStringChar attribute="String Char"/>
+        <!-- \x{n...} is defined in "string special char x" -->
+        <RegExpr attribute="String Char" String="\\(?:u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|u{[0-9A-Fa-f]+}|o{[0-7]+}|N{[- A-Z0-9]+})|&printf_like;|&format_like;"/>
+        <AnyChar attribute="String" String="%{}"/>
+        <RegExpr attribute="Error" String="\\(?:u{([0-9A-Fa-f]+|})?|u[0-9A-Fa-f]{0,3}|U[0-9A-Fa-f]{0,7}|o{([0-7]+|})?|N{([- A-Z0-9]+|})?|.)"/>
+        <LineContinue attribute="Separator Symbol"/>
       </context>
+      <context name="string special char x" attribute="String" lineEndContext="#pop">
+        <RegExpr attribute="String Char" String="\\x{[0-9A-Fa-f]+}" context="#pop"/>
+        <RegExpr attribute="Error" String="\\x({([0-9A-Fa-f]+|})?)?" context="#pop"/>
+      </context>
 
       <context name="string normal char" attribute="String" lineEndContext="#pop">
+        <DetectChar attribute="String" context="UDLStringSuffix" char="&quot;" />
         <!-- fast way, can be replaced by a `UntilChars` rule if it exists -->
         <!-- % -> printf format ; {} -> std::format -->
         <RegExpr attribute="String" context="#stay" String="[^%\\&quot;{}]+" />
-        <DetectChar attribute="String" context="UDLStringSuffix" char="&quot;" />
       </context>
 
-      <context name="UDLStringSuffix" attribute="String" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">
+      <context name="UDLStringSuffix" attribute="String" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">
         <WordDetect attribute="Standard Classes" context="#pop#pop" String="sv" />
         <WordDetect attribute="Standard Classes" context="#pop#pop" String="s" />
         <RegExpr attribute="UDL String Suffix" context="#pop#pop" String="_[_0-9A-Za-z]*\b" />
@@ -512,9 +611,10 @@
         <Detect2Chars attribute="Symbol" context="#pop" char="]" char1="]" />
         <StringDetect attribute="Symbol" context="#pop" String=":&gt;:&gt;" /> <!-- Digraph: ]] -->
         <DetectChar attribute="Separator Symbol" context="#stay" char="," />
-        <AnyChar attribute="Symbol" context="#stay" String="&punctuators;" />
+        <IncludeRules context="match comments" />
+        <AnyChar attribute="Symbol" context="#stay" String="&punctuators;#" />
         <!-- Attributes may contain some text: [[deprecated("Reason text")]] -->
-        <DetectChar attribute="String" context="String" char="&quot;" />
+        <DetectChar attribute="String" context="String8" char="&quot;" />
         <AnyChar attribute="Decimal" context="Integer" String="0123456789" lookAhead="true" />
         <!-- This keyword may appear in Attribute context. For example in code:
         [[using CC: opt(1), debug]]
@@ -531,19 +631,23 @@
         <IncludeRules context="Attribute" />
       </context>
 
-      <context name="AttributeNamespace" attribute="Attribute" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
+      <context name="AttributeNamespace" attribute="Attribute" lineEndContext="#stay" fallthroughContext="#pop">
         <DetectSpaces />
         <IncludeRules context="DetectNamespaceGccAttributes##GCCExtensions" />
         <DetectIdentifier />
       </context>
 
-      <context name="RawString" attribute="String" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!LineError">
-        <RegExpr attribute="Raw String Delimiter" context="#pop!InRawString" String="([^\(]{0,16})\(" beginRegion="Raw String" />
+      <context name="RawString" attribute="String" lineEndContext="#stay">
+        <AnyChar attribute="Raw String Literal Prefix" String="uUL8R"/>
+        <!-- A sequence of one or more basic character set, except parentheses, backslash and spaces,
+             at most 16 characters long -->
+        <RegExpr attribute="Raw String Delimiter" context="#pop!InRawString" String="&quot;([\x21-\x27\x2A-\x5B\x5D-\x7E]{0,16})\(" beginRegion="Raw String"/>
+        <RegExpr attribute="Error" context="#pop" String="&quot;(\s+|\w+\s*|&quot;|[^\s\w]+)?"/>
       </context>
 
       <context name="InRawString" attribute="Raw String" lineEndContext="#stay" dynamic="true">
         <!-- fast way, can be replaced by a `UntilChars` rule if it exists -->
-        <RegExpr attribute="Raw String" context="#stay" String="[^%)]+" />
+        <RegExpr attribute="Raw String" context="#stay" String="[^%){}]+" />
         <RegExpr attribute="String Char" context="#stay" String="&printf_like;|&format_like;" />
         <StringDetect attribute="Raw String Delimiter" context="#pop" String=")%1&quot;" dynamic="true" endRegion="Raw String" />
       </context>
@@ -551,40 +655,44 @@
       <context name="Region Marker" attribute="Region Marker" lineEndContext="#pop" />
 
       <context name="DetectNSEnd" attribute="Normal Text" lineEndContext="#stay">
+        <Detect2Chars char=":" char1=":"/>
+        <IncludeRules context="match comments and region markers" />
+        <AnyChar context="#pop" String="&ns_punctuators;&separators; &#9;#:" lookAhead="1"/>
         <!-- This keyword may appear in InternalsNS context. For example in code:
           details::some_class::template some_templated_static();
           and it should be displayed as keyword, not like part of details namespace...
           -->
-        <WordDetect attribute="Keyword" context="#stay" String="template" />
-        <DetectIdentifier context="#stay" />
-        <AnyChar attribute="Separator Symbol" context="#pop" String="&separators;" />
-        <AnyChar attribute="Symbol" context="#pop" String="&ns_punctuators; &#9;" />
+        <WordDetect attribute="Keyword" context="#pop" String="template" />
+        <DetectIdentifier context="#stay"/>
       </context>
 
-      <context name="Standard Classes" attribute="Standard Classes" lineEndContext="#stay">
+      <context name="Standard Classes" attribute="Standard Classes" lineEndContext="#stay" fallthroughContext="#pop">
         <IncludeRules context="DetectNSEnd" />
       </context>
 
-      <context name="Boost Stuff" attribute="Boost Stuff" lineEndContext="#stay">
+      <context name="Boost Stuff" attribute="Boost Stuff" lineEndContext="#stay" fallthroughContext="#pop">
         <IncludeRules context="DetectNSEnd" />
       </context>
 
-      <context name="InternalsNS" attribute="Internals" lineEndContext="#stay">
+      <context name="InternalsNS" attribute="Internals" lineEndContext="#stay" fallthroughContext="#pop">
         <IncludeRules context="DetectNSEnd" />
       </context>
 
-      <context name="Standard Classes In PP" attribute="Standard Classes" lineEndContext="#pop">
+      <context name="Standard Classes In PP" attribute="Standard Classes" lineEndContext="#pop" fallthroughContext="#pop">
         <IncludeRules context="InPreprocessor" />
+        <Detect2Chars attribute="Symbol" char="#" char1="#"/>
         <IncludeRules context="DetectNSEnd" />
       </context>
 
-      <context name="Boost Stuff In PP" attribute="Boost Stuff" lineEndContext="#pop">
+      <context name="Boost Stuff In PP" attribute="Boost Stuff" lineEndContext="#pop" fallthroughContext="#pop">
         <IncludeRules context="InPreprocessor" />
+        <Detect2Chars attribute="Symbol" char="#" char1="#"/>
         <IncludeRules context="DetectNSEnd" />
       </context>
 
-      <context name="InternalsNS In PP" attribute="Internals" lineEndContext="#pop">
+      <context name="InternalsNS In PP" attribute="Internals" lineEndContext="#pop" fallthroughContext="#pop">
         <IncludeRules context="InPreprocessor" />
+        <Detect2Chars attribute="Symbol" char="#" char1="#"/>
         <IncludeRules context="DetectNSEnd" />
       </context>
 
@@ -603,51 +711,52 @@
         <DetectIdentifier />
       </context>
 
-      <context name="AfterHash" attribute="Error" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!AfterHashLineError">
-        <RegExpr attribute="Preprocessor" context="#pop!PreprocessorCmd" String="&pphash;(?=.)" firstNonSpace="true" />
-      </context>
-
-      <context name="AfterHashLineError" attribute="Region Marker" lineEndContext="#pop">
-        <LineContinue attribute="Error" context="#stay" />
-        <RegExpr attribute="Error" context="#pop!LineError" String="[^\\]+" />
+      <context name="AfterHash" attribute="Error" lineEndContext="#pop" fallthroughContext="#pop!LineError">
+        <RegExpr attribute="Preprocessor" context="#pop!PreprocessorCmd" String="&pphash;(?=.)|" firstNonSpace="true" />
       </context>
 
       <context name="LineError" attribute="Error" lineEndContext="#pop">
         <LineContinue attribute="Error" context="#stay" />
+        <RegExpr attribute="Error" context="#stay" String="[^\\]+" />
       </context>
 
-      <context name="PreprocessorCmd" attribute="Error" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!AfterHashLineError">
+
+      <context name="PreprocessorCmd" attribute="Error" lineEndContext="#pop" fallthroughContext="#pop!LineError">
         <WordDetect attribute="Preprocessor" context="#pop!Include" String="include" />
-        <keyword attribute="Preprocessor" context="#pop!PreprocessorIfDef" String="preprocessorIfDef" beginRegion="PP" lookAhead="true" />
+        <WordDetect attribute="Preprocessor" context="#pop!PreprocessorIfDef" String="ifdef" beginRegion="PP" lookAhead="true" />
+        <WordDetect attribute="Preprocessor" context="#pop!PreprocessorIfDef" String="ifndef" beginRegion="PP" lookAhead="true" />
         <WordDetect attribute="Preprocessor" context="#pop!PreprocessorIf" String="if" beginRegion="PP" lookAhead="true" />
         <WordDetect attribute="Preprocessor" context="#pop!PreprocessorIf" String="elif" endRegion="PP" beginRegion="PP" lookAhead="true" />
         <WordDetect attribute="Preprocessor" context="PreprocessorEndOfLineSpace" String="else" endRegion="PP" beginRegion="PP" />
         <WordDetect attribute="Preprocessor" context="PreprocessorEndOfLineSpace" String="endif" endRegion="PP" />
-        <keyword attribute="Preprocessor" context="#pop!Preprocessor" String="preprocessorOther" />
+        <WordDetect attribute="Preprocessor" context="#pop!PreprocessorIfDef" String="elifdef" endRegion="PP" beginRegion="PP" lookAhead="true" />
+        <WordDetect attribute="Preprocessor" context="#pop!PreprocessorIfDef" String="elifndef" endRegion="PP" beginRegion="PP" lookAhead="true" />
         <keyword attribute="Preprocessor" context="#pop!Define" String="preprocessorDefine" />
+        <keyword attribute="Preprocessor" context="#pop!Preprocessor" String="preprocessorOther" />
         <!-- GCC extension -->
         <WordDetect attribute="Preprocessor" context="#pop!Include" String="include_next" />
         <Int attribute="Preprocessor" context="#pop!Preprocessor"/>
       </context>
 
-      <context name="Include" attribute="Preprocessor" lineEndContext="#pop" >
-        <LineContinue attribute="Preprocessor" context="#stay" />
+      <context name="Include" attribute="Preprocessor" lineEndContext="#pop">
+        <DetectSpaces/>
         <RangeDetect attribute="Prep. Lib" context="PreprocessorEndOfLineSpace" char="&quot;" char1="&quot;" />
         <RangeDetect attribute="Prep. Lib" context="PreprocessorEndOfLineSpace" char="&lt;" char1="&gt;" />
         <IncludeRules context="Preprocessor" />
+        <DetectIdentifier/>
       </context>
 
-      <context name="PreprocessorIfDef" attribute="Preprocessor" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!LineError">
+      <context name="PreprocessorIfDef" attribute="Preprocessor" lineEndContext="#pop" fallthroughContext="#pop!LineError">
         <RegExpr attribute="Preprocessor" context="#pop!Preprocessor" String="\w+\s+([_A-Za-z][A-Za-z0-9]*\s*|(?=//|/\*))" />
       </context>
 
-      <context name="PreprocessorIf" attribute="Preprocessor" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!LineError">
+      <context name="PreprocessorIf" attribute="Preprocessor" lineEndContext="#pop" fallthroughContext="#pop!LineError">
         <RegExpr attribute="Preprocessor" context="#pop!Inscoped" String="\w+&ppcond1;" />
         <RegExpr attribute="Preprocessor" context="#pop!Outscoped" String="\w+&ppcond0;" />
         <RegExpr attribute="Preprocessor" context="#pop!Preprocessor" String="\w+\s+(?=[^\s])" />
       </context>
 
-      <context name="PreprocessorEndOfLineSpace" attribute="Preprocessor" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop!LineError">
+      <context name="PreprocessorEndOfLineSpace" attribute="Preprocessor" lineEndContext="#pop#pop" fallthroughContext="#pop#pop!LineError">
         <DetectSpaces />
         <IncludeRules context="match comments" />
       </context>
@@ -679,9 +788,9 @@
 
       <context name="In Define" attribute="Preprocessor" lineEndContext="#pop">
         <DetectSpaces/>
-        <IncludeRules context="InPreprocessor" />
-        <!-- Match scope regions -->
-        <AnyChar attribute="Symbol" context="#stay" String="{}" />
+        <LineContinue attribute="Separator Symbol" context="#stay" />
+        <!-- Match scope regions and punctuators (partial for fast path) -->
+        <AnyChar attribute="Symbol" context="#stay" String="#:(){}]+-*%=&gt;!|&amp;~^" />
         <!-- Detect attributes -->
         <Detect2Chars attribute="Symbol" context="Attribute In PP" char="[" char1="[" />
         <StringDetect attribute="Symbol" context="Attribute In PP" String="&lt;:&lt;:" /> <!-- Digraph: [[ -->
@@ -695,23 +804,15 @@
         <!-- Match keywords -->
         <IncludeRules context="match keywords" />
         <!-- Match string literals -->
-        <IncludeRules context="match string" />
+        <AnyChar context="SelectStringPP" String="UuLR&quot;'" lookAhead="1"/>
         <!-- Match GCC extensions -->
         <IncludeRules context="DetectGccExtensionsInPP##GCCExtensions" />
         <!-- Match most used namespaces and styles -->
-        <StringDetect attribute="Standard Classes" context="Standard Classes In PP" String="std::" />
-        <StringDetect attribute="Boost Stuff" context="Boost Stuff In PP" String="boost::" />
-        <StringDetect attribute="Boost Stuff" context="Boost Stuff In PP" String="BOOST_" />
-        <StringDetect attribute="Internals" context="InternalsNS In PP" String="detail::" />
-        <StringDetect attribute="Internals" context="InternalsNS In PP" String="details::" />
-        <StringDetect attribute="Internals" context="InternalsNS In PP" String="aux::" />
-        <StringDetect attribute="Internals" context="InternalsNS In PP" String="internals::" />
+        <RegExpr context="DispatchNamespacePP" String="(std::)|(boost::|BOOST_)|details?::|aux::|internals::" lookAhead="1"/>
         <keyword attribute="Standard Macros" context="#stay" String="InMacro" />
         <IncludeRules context="match identifier" />
-        <!-- Match preprocessor directives -->
-        <DetectChar attribute="Preprocessor" context="#stay" char="#" />
         <!-- Match invalid symbols -->
-        <AnyChar attribute="Error" context="#stay" String="$@`" />
+        <AnyChar attribute="Error" context="#stay" String="$@`\" />
       </context>
 
       <context name="InPreprocessor" attribute="Normal Text" lineEndContext="#pop">
@@ -726,13 +827,13 @@
         <!-- prevent incorrect highlighting in case of not closed properly comment block -->
         <Detect2Chars attribute="Comment" context="#stay" char="*" char1="/" />
         <IncludeRules context="match comments" />
-        <RegExpr attribute="Comment" context="Outscoped intern" String="&pphash;if" beginRegion="PP" firstNonSpace="true" />
+        <RegExpr attribute="Comment" context="Outscoped intern" String="&pphash;if|" beginRegion="PP" firstNonSpace="true" />
         <LineContinue context="#stay" />
       </context>
 
       <context name="Outscoped" attribute="Comment" lineEndContext="#stay">
         <DetectSpaces />
-        <RegExpr attribute="Preprocessor" context="Outscoped AfterHash" String="&ispphash;" firstNonSpace="true" lookAhead="true" />
+        <RegExpr attribute="Preprocessor" context="Outscoped AfterHash" String="&ispphash;|" firstNonSpace="true" lookAhead="true" />
         <IncludeRules context="Outscoped Common" />
       </context>
 
@@ -748,18 +849,18 @@
 
       <context name="Outscoped 2" attribute="Comment" lineEndContext="#stay">
         <IncludeRules context="Outscoped Common" />
-        <RegExpr attribute="Preprocessor" context="#pop!PreprocessorEndOfLineSpace" String="&pphash;endif" endRegion="PP" firstNonSpace="true" />
+        <RegExpr attribute="Preprocessor" context="#pop!PreprocessorEndOfLineSpace" String="&pphash;endif|" endRegion="PP" firstNonSpace="true" />
       </context>
 
       <context name="Inscoped" attribute="Normal Text" lineEndContext="#stay">
         <DetectSpaces />
-        <RegExpr attribute="Preprocessor" context="Inscoped AfterHash" String="&ispphash;" firstNonSpace="true" lookAhead="true" />
+        <RegExpr attribute="Preprocessor" context="Inscoped AfterHash" String="&ispphash;|" firstNonSpace="true" lookAhead="true" />
         <IncludeRules context="Main" />
       </context>
 
-      <context name="Inscoped AfterHash" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop!AfterHash">
+      <context name="Inscoped AfterHash" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!AfterHash">
         <DetectSpaces />
-        <RegExpr attribute="Preprocessor" context="#pop!Outscoped 2" String="&pphash;el(?:se|if)" endRegion="PP" beginRegion="PP"/>
+        <RegExpr attribute="Preprocessor" context="#pop!Outscoped 2" String="&pphash;el(?:se|if(n?def)?)" endRegion="PP" beginRegion="PP"/>
         <RegExpr attribute="Preprocessor" context="#pop#pop!PreprocessorEndOfLineSpace" String="&pphash;endif\b" endRegion="PP" />
       </context>
 
@@ -770,9 +871,9 @@
         <!-- prevent incorrect highlighting in case of not closed properly comment block -->
         <Detect2Chars attribute="Comment" context="#stay" char="*" char1="/" />
         <IncludeRules context="match comments" />
-        <RegExpr attribute="Comment" context="Outscoped intern" String="&pphash;if" beginRegion="PP" firstNonSpace="true" />
-        <RegExpr attribute="Comment" context="#stay" String="&pphash;el(se|if)" beginRegion="PP" endRegion="PP" firstNonSpace="true" />
-        <RegExpr attribute="Comment" context="PreprocessorEndOfLineSpace" String="&pphash;endif" endRegion="PP" firstNonSpace="true" />
+        <RegExpr attribute="Comment" context="Outscoped intern" String="&pphash;if|" beginRegion="PP" firstNonSpace="true" />
+        <RegExpr attribute="Comment" context="#stay" String="&pphash;el(se|if(n?def)?)|" beginRegion="PP" endRegion="PP" firstNonSpace="true" />
+        <RegExpr attribute="Comment" context="PreprocessorEndOfLineSpace" String="&pphash;endif|" endRegion="PP" firstNonSpace="true" />
       </context>
     </contexts>
 
@@ -790,10 +891,13 @@
       <itemData name="Binary"             defStyleNum="dsBaseN"     spellChecking="false" />
       <itemData name="Float"              defStyleNum="dsFloat"     spellChecking="false" />
       <itemData name="Char"               defStyleNum="dsChar"      spellChecking="false" />
+      <itemData name="Char Literal Prefix" defStyleNum="dsChar"     spellChecking="false" />
       <itemData name="String"             defStyleNum="dsString"    spellChecking="true"  />
       <itemData name="String Char"        defStyleNum="dsSpecialChar" spellChecking="false" />
-      <itemData name="Raw String"         defStyleNum="dsVerbatimString" spellChecking="true"  />
-      <itemData name="Raw String Delimiter" defStyleNum="dsString"  spellChecking="false"  />
+      <itemData name="String Literal Prefix" defStyleNum="dsString" spellChecking="true" />
+      <itemData name="Raw String"         defStyleNum="dsVerbatimString" spellChecking="true" />
+      <itemData name="Raw String Delimiter" defStyleNum="dsString"  spellChecking="false" />
+      <itemData name="Raw String Literal Prefix" defStyleNum="dsString" spellChecking="false" />
       <itemData name="Comment"            defStyleNum="dsComment"   spellChecking="true"  />
       <itemData name="Symbol"             defStyleNum="dsOperator"  spellChecking="false" />
       <itemData name="Separator Symbol"   defStyleNum="dsOperator"  spellChecking="false" />
@@ -809,15 +913,15 @@
       <itemData name="Boost Stuff"        defStyleNum="dsExtension" spellChecking="false" />
       <itemData name="Internals"          defStyleNum="dsNormal"    spellChecking="false" color="#808080" selColor="#808080" />
       <itemData name="Region Marker"      defStyleNum="dsRegionMarker" spellChecking="false" />
-      <itemData name="UDL Numeric Suffix" defStyleNum="dsDecVal"    spellChecking="false" />
-      <itemData name="UDL String Suffix"  defStyleNum="dsString"    spellChecking="false" />
+      <itemData name="UDL Numeric Suffix" defStyleNum="dsOperator"  spellChecking="false" />
+      <itemData name="UDL String Suffix"  defStyleNum="dsOperator"  spellChecking="false" />
       <itemData name="Standard Suffix"    defStyleNum="dsBuiltIn"   spellChecking="false" />
       <itemData name="Error"              defStyleNum="dsError"     spellChecking="false" />
     </itemDatas>
   </highlighting>
   <general>
     <comments>
-      <comment name="singleLine" start="//" />
+      <comment name="singleLine" start="//" position="afterwhitespace"/>
       <comment name="multiLine" start="/*" end="*/" region="Comment" />
     </comments>
     <keywords casesensitive="1" additionalDeliminator="#&quot;" />
diff --git a/syntax/j.xml b/syntax/j.xml
--- a/syntax/j.xml
+++ b/syntax/j.xml
@@ -35,7 +35,7 @@
 - initial release
 
 -->
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
   <!ENTITY unum "\d+">                                 <!-- Unsigned integer number -->
   <!ENTITY anum "[a-z\d]+">                            <!-- Non-10-based unsigned integer number, e.g. 1a -->
diff --git a/syntax/java.xml b/syntax/java.xml
--- a/syntax/java.xml
+++ b/syntax/java.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
 	<!ENTITY int "(?:[0-9]++(_++[0-9]++)*+)">
 	<!ENTITY hex "(?:[0-9a-fA-F]++(_++[0-9a-fA-F]++)*+)">
@@ -7,7 +7,7 @@
 	<!ENTITY float "(\b&int;(\.((&int;&exp;?+|&exp;)[fFdD]?\b|[fFdD]\b)?|&exp;[fFdD]?\b|[fFdD]\b)|\.&int;&exp;?[fFdD]?\b)">
 	<!ENTITY hexfloat "\b0[xX](&hex;\.?+&hex;?+|\.&hex;?)[pP][-+]?&int;[fFdD]?\b">
 ]>
-<language name="Java" version="10" kateversion="5.62" section="Sources" extensions="*.java" mimetype="text/x-java" license="LGPL" author="Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)">
+<language name="Java" version="13" kateversion="5.79" section="Sources" extensions="*.java" mimetype="text/x-java" license="LGPL" author="Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)">
 	<highlighting>
 		<list name="java15">
 			<item>ACTIVE</item>
@@ -3705,6 +3705,8 @@
 			
 <!-- 			end new classes -->
 		</list>
+
+		<!-- https://docs.oracle.com/javase/specs/jls/se20/html/jls-3.html#jls-Keyword -->
 		<list name="keywords">
 			<item>abstract</item>
 			<item>class</item>
@@ -3714,7 +3716,6 @@
 			<item>false</item>
 			<item>implements</item>
 			<item>instanceof</item>
-			<item>@interface</item>
 			<item>interface</item>
 			<item>native</item>
 			<item>new</item>
@@ -3730,6 +3731,11 @@
 			<item>transient</item>
 			<item>true</item>
 			<item>volatile</item>
+			<!-- contextual -->
+			<item>non-sealed</item>
+			<item>permits</item>
+			<item>record</item>
+			<item>sealed</item>
 		</list>
 		<list name="control flow">
 			<item>assert</item>
@@ -3748,6 +3754,7 @@
 			<item>throw</item>
 			<item>try</item>
 			<item>while</item>
+			<item>yield</item>
 		</list>
 		<list name="types">
 			<item>boolean</item>
@@ -3764,6 +3771,25 @@
 			<item>var</item>
 			<item>void</item>
 		</list>
+
+		<list name="annotations">
+			<!-- builtin -->
+			<item>@Override</item>
+			<item>@Deprecated</item>
+			<item>@SuppressWarnings</item>
+			<item>@SafeVarargs</item>
+			<item>@FunctionalInterface</item>
+			<item>@interface</item>
+			<!-- java.lang.annotation -->
+			<item>@Retention</item>
+			<item>@Documented</item>
+			<item>@Target</item>
+			<item>@Inherited</item>
+			<item>@Repeatable</item>
+		</list>
+
+		<!-- https://docs.oracle.com/javase/specs/jls/se20/html/jls-3.html -->
+
 		<contexts>
 			<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
 				<DetectSpaces context="#stay"/>
@@ -3783,6 +3809,7 @@
 
 				<AnyChar context="Number" String="0123456789" lookAhead="1"/>
 
+				<StringDetect attribute="Text Block" context="TextBlock" String="&quot;&quot;&quot;"/>
 				<DetectChar attribute="String" context="String" char="&quot;"/>
 				<DetectChar context="Char" char="'" lookAhead="1"/>
 
@@ -3795,6 +3822,7 @@
 				<WordDetect attribute="Keyword" context="ImportsOrStaticImports" String="import" />
 
 				<RegExpr attribute="Function" context="#stay" String="\b[_a-zA-Z]\w*(?=[\s]*(/\*\s*\d+\s*\*/\s*)?[(])" />
+				<WordDetect attribute="Keyword" context="ImportsOrStaticImports" String="non-sealed" />
 				<DetectIdentifier attribute="Normal Text"/>
 			</context>
 
@@ -3831,6 +3859,11 @@
 				<RegExpr attribute="Error" context="#pop" String="\\(u+[0-9a-fA-F]*|.)?"/>
 			</context>
 
+			<context attribute="Text Block" lineEndContext="#stay" name="TextBlock">
+				<DetectChar context="StringEscapedChar" char="\" lookAhead="1"/>
+				<StringDetect attribute="Text Block" context="#pop" String="&quot;&quot;&quot;"/>
+			</context>
+
 			<context attribute="Normal Text" lineEndContext="#stay" name="Printf" fallthroughContext="#pop">
 				<DetectChar attribute="Symbol" context="#pop!InPrintf" char="("/>
 				<DetectSpaces attribute="Normal Text" context="#stay"/>
@@ -3898,6 +3931,7 @@
 			<itemData name="Binary"       defStyleNum="dsBaseN" spellChecking="false"/>
 			<itemData name="Float"        defStyleNum="dsFloat" spellChecking="false"/>
 			<itemData name="Char"         defStyleNum="dsChar" spellChecking="false"/>
+			<itemData name="Text Block"   defStyleNum="dsString"/>
 			<itemData name="String"       defStyleNum="dsString"/>
 			<itemData name="String Char"  defStyleNum="dsSpecialChar" spellChecking="false"/>
 			<itemData name="PrintfString" defStyleNum="dsString"/>
@@ -3909,7 +3943,7 @@
 	</highlighting>
 	<general>
 		<comments>
-			<comment name="singleLine" start="//"/>
+			<comment name="singleLine" start="//" position="afterwhitespace"/>
 			<comment name="multiLine" start="/*" end="*/" region="Comment"/>
 		</comments>
 		<keywords casesensitive="1"/>
diff --git a/syntax/javadoc.xml b/syntax/javadoc.xml
--- a/syntax/javadoc.xml
+++ b/syntax/javadoc.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
-<language name="Javadoc" version="6" kateversion="5.62" section="Markup" extensions="" license="LGPL" author="Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)">
+<!DOCTYPE language>
+<language name="Javadoc" version="7" kateversion="5.79" section="Markup" extensions="" license="LGPL" author="Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)">
 	<highlighting>
 		<contexts>
 			<context name="Start" attribute="Normal Text" lineEndContext="#stay">
diff --git a/syntax/javascript-react.xml b/syntax/javascript-react.xml
--- a/syntax/javascript-react.xml
+++ b/syntax/javascript-react.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
 	<!ENTITY simpleName "(?:[a-z][a-z\d]*:)?[a-z][a-z\d]*">
 	<!ENTITY baseName   "[a-zA-Z_\$[:^ascii:]](?:[\w\$\-\.[:^ascii:]]*[\w\$[:^ascii:]])?">
diff --git a/syntax/javascript.xml b/syntax/javascript.xml
--- a/syntax/javascript.xml
+++ b/syntax/javascript.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
   <!ENTITY identifier "[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*">
 
@@ -7,7 +7,7 @@
   <!ENTITY DecimalIntegerLiteral "(0|[1-9][0-9]*+(_[0-9]++)*+)">
   <!ENTITY DecimalDigits "([0-9]++(_[0-9]++)*+)">
   <!ENTITY ExponentPart "([eE][+-]?&DecimalDigits;)">
-  <!ENTITY float "&DecimalIntegerLiteral;(\.&DecimalDigits;?&ExponentPart;?|&ExponentPart;)|\.&DecimalDigits;&ExponentPart;?">
+  <!ENTITY float "\b&DecimalIntegerLiteral;(\.&DecimalDigits;?&ExponentPart;?|&ExponentPart;)|\.&DecimalDigits;&ExponentPart;?">
 ]>
 
 <!--
@@ -23,7 +23,7 @@
    * QML
    * CoffeeScript (embedded)
 -->
-<language name="JavaScript" version="20" kateversion="5.53" section="Scripts" extensions="*.js;*.kwinscript;*.julius"
+<language name="JavaScript" alternativeNames="JS" version="26" kateversion="5.53" section="Scripts" extensions="*.js;*.mjs;*.cjs;*.kwinscript;*.julius"
           mimetype="text/x-javascript;application/x-javascript;application/javascript;text/javascript" indenter="cstyle"
           author="Anders Lund (anders@alweb.dk), Joseph Wenninger (jowenn@kde.org), Whitehawk Stormchaser (zerokode@gmx.net)" license="">
 
@@ -60,6 +60,8 @@
       <item>typeof</item>
       <item>var</item>
       <item>void</item>
+      <item>set</item>
+      <item>get</item>
     </list>
     <list name="reserved">
       <item>async</item>
@@ -1075,7 +1077,6 @@
       <item>port</item>
       <item>prefix</item>
       <item>previous</item>
-      <item>previousDibling</item>
       <item>product</item>
       <item>productSub</item>
       <item>profile</item>
@@ -1649,38 +1650,42 @@
       <context name="Shebang Line" attribute="Comment" lineEndContext="#pop!Normal" />
 
       <!-- Normal Syntax of JavaScript. -->
-      <!-- NOTE: These IncludeRules rules, except BuiltInClasses and FindBrackets are included in qml.xml -->
+      <!-- NOTE: These IncludeRules rules, except BuiltInClasses, FindBrackets, FindPrivateOperator, FindE4X are included in qml.xml -->
       <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
         <DetectSpaces/>
+        <IncludeRules context="FindSomeSymbols" />
+        <IncludeRules context="FindBrackets" />
+        <IncludeRules context="FindPrivateOperator" />
+        <IncludeRules context="FindComments" />
         <IncludeRules context="FindNumbers" />
+        <IncludeRules context="FindMembers" />
         <IncludeRules context="FindKeywords" />
         <IncludeRules context="FindStrings" />
         <IncludeRules context="BuiltInClasses" />
         <IncludeRules context="FindObjectMembersAndFunctions" />
-        <IncludeRules context="FindBrackets" />
-        <IncludeRules context="JSBase" />
+        <IncludeRules context="FindIdentifier" />
+        <IncludeRules context="FindE4X" />
+        <IncludeRules context="FindRegex" />
       </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindSomeSymbols">
+        <IncludeRules context="FindArrowFunction" />
+        <!-- symbol that is not used in any other context (fast path) -->
+        <AnyChar attribute="Symbol" String=":!%&amp;+,-*=&gt;?|~^;" />
+      </context>
 
       <!-- Base Syntax. Used by the TypeScript highlighter. -->
       <context attribute="Normal Text" lineEndContext="#stay" name="JSBase">
-        <AnyChar context="NoRegExp" String="])" />
-        <!--DetectIdentifier-->
-        <!-- Do not start RegExp after non-ASCII characters (see bug #393633) -->
-        <RegExpr context="NoRegExp" String="&identifier;" />
-
+        <DetectChar attribute="Symbol" char="?" />
+        <IncludeRules context="FindIdentifier" />
+        <IncludeRules context="FindE4X" />
         <IncludeRules context="FindComments" />
-
-        <!-- E4X extension (=xml inside JavaScript), see bug #373713 -->
-        <RegExpr attribute="Symbol" context="#stay" String="&lt;(?=/\*|//)" />
-        <Detect2Chars attribute="Symbol" context="NoRegExp" char="&lt;" char1="/" />
-        <Detect2Chars attribute="Symbol" context="NoRegExp" char="/" char1="&gt;" />
-
-        <DetectChar attribute="Regular Expression" context="(regex caret first check)" char="/" />
-
-        <!-- NOTE: The brackets {}()[] are highlighted as Normal Text. -->
-        <Detect2Chars attribute="Special Operators" context="#stay" char="=" char1="&gt;" />
-        <AnyChar attribute="Symbol" String=":!%&amp;+,-/.*&lt;=&gt;?|~^&#59;" />
+        <IncludeRules context="FindRegex" />
       </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="JSBaseSomeSymboles">
+        <IncludeRules context="FindArrowFunction" />
+        <!-- symbol that is not used in any other context (fast path) -->
+        <AnyChar attribute="Symbol" String="!%&amp;+,-*=&gt;|~^;" />
+      </context>
 
 
       <!-- Content Contexts -->
@@ -1703,8 +1708,27 @@
         <DetectChar attribute="Symbol" context="#pop#pop" char="/" />
       </context>
 
+      <!-- E4X extension (=xml inside JavaScript), see bug #373713 -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindE4X">
+        <RegExpr attribute="Symbol" context="#stay" String="&lt;(?=[^/]|/\*|//|$)" />
+        <Detect2Chars attribute="Symbol" context="NoRegExp" char="&lt;" char1="/" />
+        <Detect2Chars attribute="Symbol" context="NoRegExp" char="/" char1="&gt;" />
+      </context>
+
+      <!--DetectIdentifier-->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindIdentifier">
+        <!-- Do not start RegExp after non-ASCII characters (see bug #393633) -->
+        <RegExpr context="NoRegExp" String="&identifier;" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindRegex">
+        <DetectChar attribute="Regular Expression" context="(regex caret first check)" char="/" />
+      </context>
+
       <!-- Object, within { ... } -->
       <context attribute="Normal Text" lineEndContext="#stay" name="FindBrackets">
+        <DetectChar attribute="Normal Text" context="#stay" char="(" />
+        <DetectChar attribute="Normal Text" context="NoRegExp" char=")" />
         <DetectChar attribute="Normal Text" context="Object" char="{" beginRegion="Brace" />
         <DetectChar attribute="Normal Text" context="#stay" char="[" beginRegion="List" />
         <DetectChar attribute="Normal Text" context="NoRegExp" char="]" endRegion="List" />
@@ -1731,6 +1755,11 @@
         <IncludeRules context="Normal" />
       </context>
 
+      <!-- '#' in "#identifier" -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindPrivateOperator">
+        <DetectChar attribute="Private Member Operator" char="#" />
+      </context>
+
       <!-- Keywords -->
       <context attribute="Normal Text" lineEndContext="#stay" name="FindKeywords">
         <WordDetect attribute="Keyword" context="FunctionDeclaration" String="function" />
@@ -1742,24 +1771,42 @@
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="FunctionDeclaration" fallthrough="true" fallthroughContext="#pop">
         <DetectSpaces />
+        <IncludeRules context="FindPrivateOperator" />
         <RegExpr attribute="Function Declaration" context="#pop" String="&identifier;(?=\s*\()" /> <!-- NoRegExp -->
         <IncludeRules context="FindComments" />
       </context>
 
       <!-- Numbers -->
       <context attribute="Normal Text" lineEndContext="#stay" name="FindNumbers">
-        <RegExpr attribute="Float" context="NoRegExp" String="\b&float;" />
-        <RegExpr attribute="Hex" context="NumericSufix" String="\b0[xX][0-9a-fA-F]++(_[0-9a-fA-F]++)*+"/>
+        <RegExpr attribute="Float" context="NoRegExp" String="&float;" />
+        <AnyChar context="Integer" String="0123456789" lookAhead="1"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Integer">
+        <RegExpr attribute="Hex" context="#pop!NumericSufix" String="\b0[xX][0-9a-fA-F]++(_[0-9a-fA-F]++)*+"/>
         <!-- 07 is octal, 08 is decimal -->
-        <RegExpr attribute="Octal" context="NumericSufix" String="\b0([oO][0-7]++(_[0-7]++)*+|0*+[1-7][0-7]*+(_[0-7]++)*+(?!_?[89]))" />
-        <RegExpr attribute="Binary" context="NumericSufix" String="\b0[bB][01]++(_[01]++)*+" />
-        <RegExpr attribute="Decimal" context="NumericSufix" String="\b0*+([1-9][0-9]*+(_[0-9]++)*+)?"/>
+        <RegExpr attribute="Octal" context="#pop!NumericSufix" String="\b0([oO][0-7]++(_[0-7]++)*+|0*+[1-7][0-7]*+(_[0-7]++)*+(?!_?[89]))" />
+        <RegExpr attribute="Binary" context="#pop!NumericSufix" String="\b0[bB][01]++(_[01]++)*+" />
+        <!-- 0000_8 is invalid -->
+        <RegExpr attribute="Decimal" context="#pop!NumericSufix" String="\b0*+([1-9][0-9]*+(_[0-9]++)*+)?"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="NumericSufix" fallthrough="true" fallthroughContext="#pop!NoRegExp">
         <DetectChar attribute="Normal Text" context="#pop!NoRegExp" char="n" />
+        <IncludeRules context="NumericSufixError" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="NumericSufixError">
         <RegExpr attribute="Error" context="#pop!NoRegExp" String="[0-9]*(&identifier;)?"/>
       </context>
 
+      <!-- Find => -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindArrowFunction">
+        <Detect2Chars attribute="Special Operators" context="#stay" char="=" char1="&gt;" />
+      </context>
+
+      <!-- Find Objects Member -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindMembers">
+        <DetectChar attribute="Symbol" context="Object Member" char="." lookAhead="true" />
+      </context>
+
       <!-- Find Objects Member and Functions -->
       <context attribute="Normal Text" lineEndContext="#stay" name="FindObjectMembersAndFunctions">
         <!-- Tagged Template Literals -->
@@ -1768,7 +1815,6 @@
         <RegExpr attribute="Function Name" context="Function" String="(&identifier;)(?=\s*\()" lookAhead="true" />
         <IncludeRules context="BuiltInConstants" />
         <RegExpr attribute="Objects" context="Object Member" String="&identifier;(?=\s*\.)" />
-        <DetectChar attribute="Symbol" context="Object Member" char="." lookAhead="true" />
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="Function">
         <keyword attribute="Function (Built-in)" context="#pop" String="functions" />
@@ -1777,6 +1823,7 @@
       </context>
 
       <context attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" name="Object Member">
+        <IncludeRules context="FindPrivateOperator" />
         <IncludeRules context="DefaultMemberObject" />
         <!-- Common functions and properties, only for autocomplete keywords -->
         <keyword attribute="Object Member" context="#pop!NoRegExp" String="dom_property" />
@@ -2030,6 +2077,7 @@
       <itemData name="Comment"      defStyleNum="dsComment" />
       <itemData name="Symbol"       defStyleNum="dsOperator" spellChecking="false" />
       <itemData name="Special Operators" defStyleNum="dsKeyword" spellChecking="false" />
+      <itemData name="Private Member Operator" defStyleNum="dsNormal" spellChecking="false" />
       <itemData name="Regular Expression" defStyleNum="dsSpecialString" spellChecking="false" />
       <itemData name="Pattern Internal Operator" defStyleNum="dsSpecialChar" spellChecking="false" />
       <itemData name="Pattern Character Class" defStyleNum="dsSpecialChar" spellChecking="false" />
@@ -2042,7 +2090,7 @@
 
   <general>
     <comments>
-      <comment name="singleLine" start="//" />
+      <comment name="singleLine" start="//" position="afterwhitespace"/>
       <comment name="multiLine" start="/*" end="*/" region="Comment" />
     </comments>
     <keywords casesensitive="1" />
diff --git a/syntax/json.xml b/syntax/json.xml
--- a/syntax/json.xml
+++ b/syntax/json.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!--
  ***************************************************************************
  ** Writing a Kate Highlighting XML File
@@ -10,9 +10,10 @@
  **
  ** The application/json Media Type for JavaScript Object Notation (JSON)
  ** http://tools.ietf.org/html/rfc4627
+ ** https://www.json.org/json-en.html
  ***************************************************************************
 -->
-<language name="JSON" section="Markup" version="6" kateversion="2.4" extensions="*.json;.kateproject;.arcconfig;*.geojson;*.gltf;*.theme" mimetype="application/json" author="Sebastian Pipping (sebastian@pipping.org)" license="GPL">
+<language name="JSON" section="Markup" version="8" kateversion="2.4" extensions="*.json;.kateproject;.arcconfig;*.geojson;*.gltf;*.theme" mimetype="application/json" author="Sebastian Pipping (sebastian@pipping.org)" license="GPL">
   <highlighting>
     <list name="Constants">
       <item>null</item>
@@ -39,42 +40,47 @@
 
       <context name="String_Key" lineEndContext="#stay" attribute="Style_String_Key">
         <DetectChar char="&quot;"  context="#pop" attribute="Style_String_Key" />
-        <RegExpr String="\\(?:[&quot;\\/bfnrt]|u[0-9a-fA-f]{4})" context="#stay" insensitive="false" minimal="false" attribute="Style_String_Key_Char" />
+        <DetectChar char="\"       context="String_Key_Char" lookAhead="1"/>
       </context>
 
+      <context name="String_Key_Char" lineEndContext="#stay" attribute="Style_Normal">
+        <RegExpr String="\\(?:[&quot;\\/bfnrt]|u[0-9a-fA-f]{4})" context="#pop" attribute="Style_String_Key_Char" />
+        <RegExpr String="\\(u[0-9a-fA-f]+|.)?" context="#pop" attribute="Style_Error" />
+      </context>
+
       <context name="Value" lineEndContext="#stay" attribute="Style_Error" >
+        <AnyChar String="},"       context="#pop" lookAhead="true" />
+        <IncludeRules context="JsonValue"/>
+      </context>
+
+      <context name="JsonValue" lineEndContext="#stay" attribute="Style_Error" >
         <DetectChar char="&quot;"  context="String_Value" attribute="Style_String_Value" />
         <DetectChar char="{"       context="Pair" beginRegion="Region_Object" attribute="Style_Seperator_Pair" />
         <DetectChar char="["       context="Array" beginRegion="Region_Array" attribute="Style_Seperator_Array" />
-        <AnyChar String="},"       context="#pop" lookAhead="true" />
 
         <DetectSpaces context="#stay" attribute="Style_Normal" />
 
         <keyword String="Constants" context="#stay" attribute="Style_Keyword" />
 
-        <RegExpr String="-?(?:[0-9]|[1-9][0-9]+)\.[0-9]+(?:[eE][+-]?[0-9]+)?" context="#stay" insensitive="false" minimal="false" attribute="Style_Float" />
-        <RegExpr String="-?(?:[0-9]|[1-9][0-9]+)(?:[eE][+-]?[0-9]+)?" context="#stay" insensitive="false" minimal="false" attribute="Style_Decimal" />
+        <RegExpr String="-?\b([1-9][0-9]*\.[0-9]+(?:[eE][+-]?[0-9]+)?)" context="#stay" attribute="Style_Float" />
+        <RegExpr String="-?\b(0\b|[1-9][0-9]*(?:[eE][+-]?[0-9]+)?)" context="#stay" attribute="Style_Decimal" />
       </context>
 
       <context name="String_Value" lineEndContext="#stay" attribute="Style_String_Value">
         <DetectChar char="&quot;"  context="#pop" attribute="Style_String_Value" />
-        <RegExpr String="\\(?:[&quot;\\/bfnrt]|u[0-9a-fA-f]{4})" context="#stay" insensitive="false" minimal="false" attribute="Style_String_Value_Char" />
+        <DetectChar char="\"       context="String_Key_Value" lookAhead="1" />
       </context>
 
+      <context name="String_Key_Value" lineEndContext="#stay" attribute="Style_Normal">
+        <RegExpr String="\\(?:[&quot;\\/bfnrt]|u[0-9a-fA-f]{4})" context="#pop"  attribute="Style_String_Value_Char" />
+        <RegExpr String="\\(u[0-9a-fA-f]+|.)?" context="#pop" attribute="Style_Error" />
+      </context>
+
       <context name="Array" lineEndContext="#stay" attribute="Style_Error">
         <DetectChar char=","       context="#stay" attribute="Style_Seperator_Array" />
         <DetectChar char="]"       context="#pop" endRegion="Region_Array" attribute="Style_Seperator_Array" />
 
-        <DetectChar char="{"       context="Pair" beginRegion="Region_Object" attribute="Style_Seperator_Pair" />
-        <DetectChar char="["       context="Array" beginRegion="Region_Array" attribute="Style_Seperator_Array" />
-        <DetectChar char="&quot;"  context="String_Value" attribute="Style_String_Value" />
-
-        <DetectSpaces context="#stay" attribute="Style_Normal" />
-
-        <keyword String="Constants" context="#stay" attribute="Style_Keyword" />
-
-        <RegExpr String="-?(?:[0-9]|[1-9][0-9]+)\.[0-9]+(?:[eE][+-]?[0-9]+)?" context="#stay" insensitive="false" minimal="false" attribute="Style_Float" />
-        <RegExpr String="-?(?:[0-9]|[1-9][0-9]+)(?:[eE][+-]?[0-9]+)?" context="#stay" insensitive="false" minimal="false" attribute="Style_Decimal" />
+        <IncludeRules context="JsonValue"/>
       </context>
     </contexts>
 
diff --git a/syntax/jsp.xml b/syntax/jsp.xml
--- a/syntax/jsp.xml
+++ b/syntax/jsp.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
-<language version="9" kateversion="5.62" name="JSP" section="Markup" extensions="*.jsp;*.JSP" mimetype="text/html" casesensitive="false" author="Rob Martin (rob@gamepimp.com)" license="LGPL">
+<!DOCTYPE language>
+<language version="11" kateversion="5.79" name="JSP" section="Markup" extensions="*.jsp;*.JSP" mimetype="text/html" casesensitive="false" author="Rob Martin (rob@gamepimp.com)" license="LGPL">
   <highlighting>
 
     <list name="jsp-reserved-words">
@@ -27,15 +27,13 @@
         <RegExpr String="&lt;%@\s*[a-zA-Z0-9_\.]*" attribute="Jsp Directive" context="Jsp Standard Directive"/>
         <RegExpr String="&lt;\s*jsp:(declaration|expression|scriptlet)\s*&gt;" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
         <RegExpr String="&lt;\s*\/?s*jsp:[a-zA-Z0-9_\.]*" attribute="Jsp Directive" context="Jsp Xml Directive"/>
-        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment" beginRegion="JspComment"/>
-        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet" beginRegion="JspScriptlet"/>
+        <IncludeRules context="FindJspScriptlet"/>
         <StringDetect String="&lt;!--" attribute="Html Comment" context="Html Comment" beginRegion="HtmlComment"/>
-        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
-        <RegExpr String="&lt;\s*\/?\s*\$?[a-zA-Z0-9_]*:\$?[a-zA-Z0-9_]*" attribute="Keyword" context="Jsp Custom Tag"/>
+        <IncludeRules context="FindJspCustomTag"/>
         <StringDetect String="&lt;![CDATA[" attribute="Normal Text" context="#stay"/>
         <StringDetect String="]]&gt;" attribute="Normal Text" context="#stay"/>
-        <RegExpr String="&lt;script\b" attribute="Normal Text" context="JS" beginRegion="script" />
-        <RegExpr String="&lt;style\b" attribute="Normal Text" context="CSS" beginRegion="style" />
+        <WordDetect String="&lt;script" attribute="Normal Text" context="JS" beginRegion="script" />
+        <WordDetect String="&lt;style" attribute="Normal Text" context="CSS" beginRegion="style" />
         <RegExpr String="&lt;\s*\/?\s*[a-zA-Z0-9_]*" attribute="Normal Text" context="Html Attribute"/>
       </context>
 
@@ -57,7 +55,7 @@
       </context>
 
       <context name="JS content" attribute="Normal Text" lineEndContext="#stay">
-        <RegExpr attribute="Normal Text" context="#pop#pop!Html Attribute" String="&lt;/script\b" endRegion="script" />
+        <WordDetect attribute="Normal Text" context="#pop#pop!Html Attribute" String="&lt;/script" endRegion="script" />
         <RegExpr attribute="Jsp Comment" context="JS comment close" String="//(?=.*&lt;/script)" />
         <IncludeRules context="Normal##JavaScript" includeAttrib="true"/>
       </context>
@@ -71,18 +69,14 @@
       <context name="Jsp Standard Directive" attribute="Jsp Param Name" lineEndContext="#stay">
         <Detect2Chars char="%" char1="&gt;" attribute="Jsp Directive" context="#pop"/>
         <RegExpr String="\s*=\s*" attribute="Normal Text" context="Jsp Standard Directive Value"/>
-        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment" beginRegion="JspComment"/>
-        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet" beginRegion="JspScriptlet"/>
-        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
-        <RegExpr String="&lt;\s*\/?\s*\$?\w*:\$?\w*" attribute="Keyword" context="Jsp Custom Tag"/>
+        <IncludeRules context="FindJspScriptlet"/>
+        <IncludeRules context="FindJspCustomTag"/>
       </context>
 
       <context name="Jsp Xml Directive" attribute="Jsp Param Name" lineEndContext="#stay">
         <RegExpr String="\s*\/?\s*&gt;" attribute="Jsp Directive" context="#pop"/>
         <RegExpr String="\s*=\s*" attribute="Normal Text" context="Jsp Xml Directive Value"/>
-        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment" beginRegion="JspComment"/>
-        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet" beginRegion="JspScriptlet"/>
-        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <IncludeRules context="FindJspScriptlet"/>
       </context>
 
       <context name="Jsp Comment" attribute="Jsp Comment" lineEndContext="#stay">
@@ -94,33 +88,25 @@
       <context name="Jsp Custom Tag" attribute="Identifier" lineEndContext="#stay">
         <RegExpr String="\/?&gt;" attribute="Keyword" context="#pop"/>
         <RegExpr String="\s*=\s*" attribute="Normal Text" context="Jsp Custom Tag Value"/>
-        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment" beginRegion="JspComment"/>
-        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet" beginRegion="JspScriptlet"/>
-        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <IncludeRules context="FindJspScriptlet"/>
       </context>
 
       <context name="Jsp Standard Directive Value" attribute="Jsp Param Value" lineEndContext="#stay">
-        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment" beginRegion="JspComment"/>
-        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet" beginRegion="JspScriptlet"/>
-        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <IncludeRules context="FindJspScriptlet"/>
         <DetectChar char="&quot;" attribute="Jsp Param Value" context="Jsp Double Quoted Param Value"/>
         <DetectChar char="'" attribute="Jsp Param Value" context="Jsp Single Quoted Param Value"/>
         <Detect2Chars char="%" char1="&gt;" attribute="Jsp Directive" context="#pop#pop"/>
       </context>
 
       <context name="Jsp Xml Directive Value" attribute="Jsp Param Value" lineEndContext="#stay">
-        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment" beginRegion="JspComment"/>
-        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet" beginRegion="JspScriptlet"/>
-        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <IncludeRules context="FindJspScriptlet"/>
         <DetectChar char="&quot;" attribute="Jsp Param Value" context="Jsp Double Quoted Param Value"/>
         <DetectChar char="'" attribute="Jsp Param Value" context="Jsp Single Quoted Param Value"/>
         <RegExpr String="\s*\/?\s*&gt;" attribute="Jsp Directive" context="#pop#pop"/>
       </context>
 
       <context name="Jsp Custom Tag Value" attribute="Normal Text" lineEndContext="#stay">
-        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment" beginRegion="JspComment"/>
-        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet" beginRegion="JspScriptlet"/>
-        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <IncludeRules context="FindJspScriptlet"/>
         <DetectChar char="&quot;" attribute="Types" context="Jsp Double Quoted Custom Tag Value"/>
         <DetectChar char="'" attribute="Types" context="Jsp Single Quoted Custom Tag Value"/>
         <RegExpr String="\/?&gt;" attribute="Normal Text" context="#pop#pop"/>
@@ -128,30 +114,22 @@
 
       <context name="Jsp Double Quoted Param Value" attribute="Jsp Param Value" lineEndContext="#stay">
         <DetectChar char="&quot;" attribute="Jsp Param Value" context="#pop#pop"/>
-        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment" beginRegion="JspComment"/>
-        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet" beginRegion="JspScriptlet"/>
-        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <IncludeRules context="FindJspScriptlet"/>
       </context>
 
       <context name="Jsp Single Quoted Param Value" attribute="Jsp Param Value" lineEndContext="#stay">
         <DetectChar char="'" attribute="Jsp Param Value" context="#pop#pop"/>
-        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment" beginRegion="JspComment"/>
-        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet" beginRegion="JspScriptlet"/>
-        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <IncludeRules context="FindJspScriptlet"/>
       </context>
 
       <context name="Jsp Double Quoted Custom Tag Value" attribute="Types" lineEndContext="#stay">
         <DetectChar char="&quot;" attribute="Types" context="#pop#pop"/>
-        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment" beginRegion="JspComment"/>
-        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet" beginRegion="JspScriptlet"/>
-        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <IncludeRules context="FindJspScriptlet"/>
       </context>
 
       <context name="Jsp Single Quoted Custom Tag Value" attribute="Types" lineEndContext="#stay">
         <DetectChar char="'" attribute="Types" context="#pop#pop"/>
-        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment" beginRegion="JspComment"/>
-        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet" beginRegion="JspScriptlet"/>
-        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <IncludeRules context="FindJspScriptlet"/>
       </context>
 
       <context name="Jsp Scriptlet" attribute="Normal Text" lineEndContext="#stay">
@@ -170,16 +148,12 @@
       <context name="Html Attribute" attribute="Identifier" lineEndContext="#stay">
         <RegExpr String="\/?&gt;" attribute="Normal Text" context="#pop"/>
         <RegExpr String="\s*=\s*" attribute="Normal Text" context="Html Value"/>
-        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment" beginRegion="JspComment"/>
-        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet" beginRegion="JspScriptlet"/>
-        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <IncludeRules context="FindJspScriptlet"/>
       </context>
 
       <context name="Html Value" attribute="Types" lineEndContext="#stay">
-        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment" beginRegion="JspComment"/>
-        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet" beginRegion="JspScriptlet"/>
-        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
-        <RegExpr String="&lt;\s*\/?\s*\$?\w*:\$?\w*" attribute="Keyword" context="Jsp Custom Tag"/>
+        <IncludeRules context="FindJspScriptlet"/>
+        <IncludeRules context="FindJspCustomTag"/>
         <RegExpr String="(&quot;|&amp;quot;|&amp;#34;)" attribute="Types" context="Html Double Quoted Value"/>
         <RegExpr String="('|&amp;#39;)" attribute="Types" context="Html Single Quoted Value"/>
         <RegExpr String="\s*#?-?_?\.?[a-zA-Z0-9]*" attribute="Types" context="Html Unquoted Value"/>
@@ -187,36 +161,38 @@
       </context>
 
       <context name="Html Double Quoted Value" attribute="Types" lineEndContext="#stay">
-        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment" beginRegion="JspComment"/>
-        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet" beginRegion="JspScriptlet"/>
-        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
-        <RegExpr String="&lt;\s*\/?\s*\$?\w*:\$?\w*" attribute="Keyword" context="Jsp Custom Tag"/>
+        <IncludeRules context="FindJspScriptlet"/>
+        <IncludeRules context="FindJspCustomTag"/>
         <RegExpr String="(&quot;|&amp;quot;|&amp;#34;)" attribute="Types" context="#pop#pop"/>
       </context>
 
       <context name="Html Single Quoted Value" attribute="Types" lineEndContext="#stay">
-        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment" beginRegion="JspComment"/>
-        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet" beginRegion="JspScriptlet"/>
-        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
-        <RegExpr String="&lt;\s*\/?\s*\$?\w*:\$?\w*" attribute="Keyword" context="Jsp Custom Tag"/>
+        <IncludeRules context="FindJspScriptlet"/>
+        <IncludeRules context="FindJspCustomTag"/>
         <RegExpr String="('|&amp;#39;)" attribute="Types" context="#pop#pop"/>
       </context>
 
       <context name="Html Unquoted Value" attribute="Types" lineEndContext="#stay">
-        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment" beginRegion="JspComment"/>
-        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet" beginRegion="JspScriptlet"/>
-        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
-        <RegExpr String="&lt;\s*\/?\s*\$?\w*:\$?\w*" attribute="Keyword" context="Jsp Custom Tag"/>
+        <IncludeRules context="FindJspScriptlet"/>
+        <IncludeRules context="FindJspCustomTag"/>
         <RegExpr String="\/?&gt;" attribute="Normal Text" context="#pop#pop#pop"/>
         <DetectSpaces attribute="Types" context="#pop#pop"/>
       </context>
 
       <context name="Html Comment" attribute="Html Comment" lineEndContext="#stay">
-        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment" beginRegion="JspComment"/>
-        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet" beginRegion="JspScriptlet"/>
-        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <IncludeRules context="FindJspScriptlet"/>
         <RegExpr String="\/*--&gt;" attribute="Html Comment" context="#pop" endRegion="HtmlComment"/>
         <IncludeRules context="##Comments" />
+      </context>
+
+      <context name="FindJspScriptlet" attribute="Normal Text" lineEndContext="#stay">
+        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment" beginRegion="JspComment"/>
+        <RegExpr String="&lt;%[!=]?" attribute="Jsp Scriptlet" context="Jsp Scriptlet" beginRegion="JspScriptlet"/>
+      </context>
+
+      <context name="FindJspCustomTag" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr String="&lt;\s*\/?\s*\$?\w*:\$?\w*" attribute="Keyword" context="Jsp Custom Tag"/>
       </context>
 
     </contexts>
diff --git a/syntax/julia.xml b/syntax/julia.xml
--- a/syntax/julia.xml
+++ b/syntax/julia.xml
@@ -27,16 +27,16 @@
   Author: Timothy E. Holy, Washington University in St. Louis
 -->
 
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
-  <!ENTITY int "[0-9]([0-9_]*[0-9])?">
-  <!ENTITY hex "[0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?">
+  <!ENTITY int "[0-9]+(_[0-9]+)*">
+  <!ENTITY hex "[0-9a-fA-F]+(_[0-9a-fA-F]+)*">
   <!ENTITY function_disallowed_chars "\s.,(){}\[\];:&#37;'&quot;&amp;$=/?\|^#@">
   <!ENTITY function_disallowed_first_char "0-9!&function_disallowed_chars;">
   <!ENTITY function_begin_boundary "(?:(?&lt;=[&function_disallowed_chars;!]|^)(?=[^&function_disallowed_first_char;]))">
 ]>
 
-<language name="Julia" style="julia" indenter="julia" section="Sources" version="13" kateversion="5.0" extensions="*.jl" casesensitive="1" priority="5" license="MIT">
+<language name="Julia" alternativeNames="JL" style="julia" indenter="julia" section="Sources" version="15" kateversion="5.62" extensions="*.jl" casesensitive="1" priority="5" license="MIT">
 
   <highlighting>
     <list name="cflow_begin">
@@ -493,14 +493,15 @@
         <keyword context="controlflow-block" attribute="Control Flow" String="cflow_begin"
                  beginRegion="block" />
         <keyword context="#stay" attribute="Control Flow" String="cflow"/>
-        <keyword context="#stay" attribute="Keyword" String="block_end"
-                 endRegion="block" />
+        <WordDetect context="#stay" attribute="Keyword" String="end"
+                    endRegion="block" />
 
         <IncludeRules context="coderoot"/>
       </context>
 
       <context name="subsetting" attribute="Normal Text" lineEndContext="#stay">
-        <keyword context="#stay" attribute="Keyword" String="block_end"/>
+        <DetectSpaces attribute="Normal Text"/>
+        <WordDetect context="#stay" attribute="Keyword" String="end"/>
         <IncludeRules context="coderoot"/>
         <DetectChar attribute="Normal Text" context="#pop" char="]"/>
       </context>
@@ -543,718 +544,32 @@
         <StringDetect attribute="Command String" context="Block-Backtick-String" String="```" beginRegion="block-string"/>
         <DetectChar attribute="Command String" context="Backtick-String" char="`"/>
 
-        <!-- Multi-character operators
-        this was generated semi-automatically using operators in https://github.com/JuliaLang/julia/blob/master/src/julia-parser.scm -->
-        <StringDetect context="#stay" attribute="Operator" String="..."/>
+        <!-- Subsetting. This is needed because the `end` keyword has a special meaning in subsetting operations and should not be used for folding -->
+        <DetectChar attribute="Normal Text" context="subsetting" char="["/>
+
         <Detect2Chars context="type-annotation" attribute="Operator" char=":" char1=":"/>
-        <StringDetect context="#stay" attribute="Operator" String=".&gt;&gt;&gt;=" />
-        <StringDetect context="#stay" attribute="Operator" String="&gt;&gt;&gt;=" />
-        <StringDetect context="#stay" attribute="Operator" String=".&lt;--&gt;" />
-        <StringDetect context="#stay" attribute="Operator" String="&lt;--&gt;" />
-        <StringDetect context="#stay" attribute="Operator" String=".//=" />
-        <StringDetect context="#stay" attribute="Operator" String="//=" />
-        <StringDetect context="#stay" attribute="Operator" String=".&lt;&lt;=" />
-        <StringDetect context="#stay" attribute="Operator" String="&lt;&lt;=" />
-        <StringDetect context="#stay" attribute="Operator" String=".&gt;&gt;=" />
-        <StringDetect context="#stay" attribute="Operator" String="&gt;&gt;=" />
-        <StringDetect context="#stay" attribute="Operator" String=".--&gt;" />
-        <StringDetect context="#stay" attribute="Operator" String="--&gt;" />
-        <StringDetect context="#stay" attribute="Operator" String=".&lt;--" />
-        <StringDetect context="#stay" attribute="Operator" String="&lt;--" />
-        <StringDetect context="#stay" attribute="Operator" String=".===" />
-        <StringDetect context="#stay" attribute="Operator" String="===" />
-        <StringDetect context="#stay" attribute="Operator" String=".!==" />
-        <StringDetect context="#stay" attribute="Operator" String="!==" />
-        <StringDetect context="#stay" attribute="Operator" String=".&gt;&gt;&gt;" />
-        <StringDetect context="#stay" attribute="Operator" String="&gt;&gt;&gt;" />
-        <StringDetect context="#stay" attribute="Operator" String=".+=" />
-        <Detect2Chars context="#stay" attribute="Operator" char="+" char1="="/>
-        <StringDetect context="#stay" attribute="Operator" String=".-=" />
-        <Detect2Chars context="#stay" attribute="Operator" char="-" char1="="/>
-        <StringDetect context="#stay" attribute="Operator" String=".−=" />
-        <Detect2Chars context="#stay" attribute="Operator" char="−" char1="="/>
-        <StringDetect context="#stay" attribute="Operator" String=".*=" />
-        <Detect2Chars context="#stay" attribute="Operator" char="*" char1="="/>
-        <StringDetect context="#stay" attribute="Operator" String="./=" />
-        <Detect2Chars context="#stay" attribute="Operator" char="/" char1="="/>
-        <StringDetect context="#stay" attribute="Operator" String=".\=" />
-        <Detect2Chars context="#stay" attribute="Operator" char="\" char1="="/>
-        <StringDetect context="#stay" attribute="Operator" String=".^=" />
-        <Detect2Chars context="#stay" attribute="Operator" char="^" char1="="/>
-        <StringDetect context="#stay" attribute="Operator" String=".÷=" />
-        <Detect2Chars context="#stay" attribute="Operator" char="÷" char1="="/>
-        <StringDetect context="#stay" attribute="Operator" String=".%=" />
-        <Detect2Chars context="#stay" attribute="Operator" char="%" char1="="/>
-        <StringDetect context="#stay" attribute="Operator" String=".|=" />
-        <Detect2Chars context="#stay" attribute="Operator" char="|" char1="="/>
-        <StringDetect context="#stay" attribute="Operator" String=".&amp;=" />
-        <Detect2Chars context="#stay" attribute="Operator" char="&amp;" char1="="/>
-        <StringDetect context="#stay" attribute="Operator" String=".⊻=" />
-        <Detect2Chars context="#stay" attribute="Operator" char="⊻" char1="="/>
-        <StringDetect context="#stay" attribute="Operator" String=".:=" />
-        <Detect2Chars context="#stay" attribute="Operator" char=":" char1="="/>
-        <StringDetect context="#stay" attribute="Operator" String=".$=" />
-        <Detect2Chars context="#stay" attribute="Operator" char="$" char1="="/>
-        <StringDetect context="#stay" attribute="Operator" String=".=&gt;" />
-        <Detect2Chars context="#stay" attribute="Operator" char="=" char1="&gt;"/>
-        <StringDetect context="#stay" attribute="Operator" String=".&amp;&amp;" />
-        <Detect2Chars context="#stay" attribute="Operator" char="&amp;" char1="&amp;"/>
-        <StringDetect context="#stay" attribute="Operator" String=".||" />
-        <Detect2Chars context="#stay" attribute="Operator" char="|" char1="|"/>
-        <StringDetect context="#stay" attribute="Operator" String=".&gt;=" />
-        <Detect2Chars context="#stay" attribute="Operator" char="&gt;" char1="="/>
-        <StringDetect context="#stay" attribute="Operator" String=".&lt;=" />
-        <Detect2Chars context="#stay" attribute="Operator" char="&lt;" char1="="/>
-        <StringDetect context="#stay" attribute="Operator" String=".==" />
-        <Detect2Chars context="#stay" attribute="Operator" char="=" char1="="/>
-        <StringDetect context="#stay" attribute="Operator" String=".!=" />
-        <Detect2Chars context="#stay" attribute="Operator" char="!" char1="="/>
-        <StringDetect context="#stay" attribute="Operator" String=".&lt;|" />
-        <Detect2Chars context="#stay" attribute="Operator" char="&lt;" char1="|"/>
-        <StringDetect context="#stay" attribute="Operator" String=".|&gt;" />
-        <Detect2Chars context="#stay" attribute="Operator" char="|" char1="&gt;"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="."/>
-        <StringDetect context="#stay" attribute="Operator" String=".++" />
-        <Detect2Chars context="#stay" attribute="Operator" char="+" char1="+"/>
-        <StringDetect context="#stay" attribute="Operator" String=".//" />
-        <Detect2Chars context="#stay" attribute="Operator" char="/" char1="/"/>
-        <StringDetect context="#stay" attribute="Operator" String=".&lt;&lt;" />
-        <Detect2Chars context="#stay" attribute="Operator" char="&lt;" char1="&lt;"/>
-        <StringDetect context="#stay" attribute="Operator" String=".&gt;&gt;" />
-        <Detect2Chars context="#stay" attribute="Operator" char="&gt;" char1="&gt;"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="="/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≔"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩴"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≕"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="~"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="←"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="→"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↔"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↚"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↛"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↞"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↠"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↢"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↣"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↦"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↤"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↮"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇎"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇍"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇏"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇐"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇒"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇔"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇴"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇶"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇷"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇸"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇹"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇺"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇻"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇼"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇽"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇾"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇿"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟵"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟶"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟷"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟹"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟺"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟻"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟼"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟽"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟾"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟿"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤀"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤁"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤂"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤃"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤄"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤅"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤆"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤇"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤌"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤍"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤎"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤏"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤐"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤑"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤔"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤕"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤖"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤗"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤘"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤝"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤞"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤟"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤠"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥄"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥅"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥆"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥇"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥈"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥊"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥋"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥎"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥐"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥒"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥓"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥖"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥗"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥚"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥛"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥞"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥟"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥢"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥤"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥦"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥧"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥨"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥩"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥪"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥫"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥬"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥭"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥰"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⧴"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⬱"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⬰"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⬲"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⬳"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⬴"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⬵"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⬶"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⬷"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⬸"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⬹"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⬺"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⬻"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⬼"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⬽"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⬾"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⬿"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⭀"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⭁"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⭂"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⭃"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⭄"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⭇"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⭈"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⭉"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⭊"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⭋"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⭌"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="￩"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="￫"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇜"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇝"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↜"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↝"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↩"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↪"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↫"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↬"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↼"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↽"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇀"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇁"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇄"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇆"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇇"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇉"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇋"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇌"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇚"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇛"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇠"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇢"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↷"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↶"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↺"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↻"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="&gt;"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="&lt;"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≥"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≤"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≡"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≠"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≢"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∈"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∉"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∋"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∌"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊆"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊈"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊂"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊄"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊊"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∝"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∊"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∍"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∥"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∦"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∷"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∺"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∻"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∽"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∾"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≁"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≃"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≂"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≄"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≅"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≆"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≇"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≈"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≉"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≊"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≋"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≌"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≍"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≎"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≐"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≑"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≒"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≓"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≖"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≗"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≘"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≙"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≚"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≛"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≜"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≝"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≞"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≟"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≣"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≦"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≧"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≨"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≩"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≪"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≫"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≬"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≭"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≮"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≯"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≰"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≱"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≲"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≳"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≴"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≵"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≶"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≷"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≸"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≹"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≺"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≻"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≼"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≽"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≾"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≿"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊀"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊁"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊃"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊅"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊇"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊉"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊋"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊏"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊐"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊑"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊒"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊜"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊩"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊬"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊮"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊰"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊱"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊲"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊳"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊴"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊵"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊶"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊷"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋍"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋐"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋑"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋕"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋖"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋗"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋘"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋙"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋚"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋛"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋜"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋝"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋞"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋟"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋠"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋡"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋢"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋣"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋤"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋥"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋦"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋧"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋨"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋩"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋪"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋫"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋬"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋭"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋲"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋳"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋴"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋵"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋶"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋷"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋸"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋹"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋺"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋻"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋼"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋽"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋾"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋿"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟈"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟉"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟒"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⦷"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⧀"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⧁"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⧡"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⧣"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⧤"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⧥"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩦"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩧"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩪"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩫"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩬"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩭"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩮"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩯"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩰"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩱"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩲"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩳"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩵"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩶"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩷"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩸"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩹"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩺"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩻"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩼"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩽"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩾"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩿"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪀"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪁"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪂"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪃"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪄"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪅"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪆"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪇"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪈"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪉"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪊"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪋"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪌"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪍"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪎"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪏"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪐"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪑"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪒"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪓"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪔"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪕"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪖"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪗"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪘"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪙"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪚"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪛"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪜"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪝"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪞"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪟"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪠"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪡"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪢"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪣"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪤"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪥"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪦"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪧"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪨"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪩"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪪"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪫"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪬"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪭"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪮"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪯"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪰"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪱"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪲"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪳"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪴"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪵"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪶"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪷"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪸"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪹"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪺"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪻"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪼"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪽"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪾"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⪿"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫀"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫁"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫂"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫃"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫄"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫅"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫆"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫇"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫈"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫉"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫊"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫋"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫌"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫍"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫎"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫏"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫐"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫑"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫒"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫓"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫔"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫕"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫖"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫗"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫘"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫙"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫷"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫸"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫹"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫺"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊢"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊣"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟂"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫪"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫫"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="…"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⁝"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋮"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋱"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋰"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋯"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="$"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="+"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="-"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="−"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="¦"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="|"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊕"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊖"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊞"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊟"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∪"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∨"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊔"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="±"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∓"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∔"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∸"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≏"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊎"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊻"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊽"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋎"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋓"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⧺"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⧻"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨈"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨢"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨣"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨤"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨥"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨦"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨧"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨨"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨩"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨪"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨫"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨬"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨭"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨮"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨹"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨺"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩁"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩂"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩅"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩊"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩌"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩏"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩐"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩒"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩔"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩖"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩗"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩛"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩝"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩡"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩢"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩣"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="*"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="/"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⌿"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="÷"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="%"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="&amp;"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="·"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="·"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋅"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∘"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="×"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="\"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∩"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∧"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊗"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊘"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊙"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊚"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊛"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊠"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊡"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊓"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∗"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∙"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="∤"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⅋"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="≀"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊼"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋄"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋆"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋇"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋉"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋊"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋋"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋌"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋏"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⋒"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟑"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⦸"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⦼"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⦾"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⦿"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⧶"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⧷"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨇"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨰"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨱"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨲"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨳"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨴"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨵"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨶"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨷"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨸"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨻"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨼"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨽"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩀"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩃"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩄"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩋"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩍"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩎"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩑"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩓"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩕"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩘"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩚"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩜"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩞"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩟"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⩠"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⫛"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⊍"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="▷"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨝"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟕"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟖"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟗"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⨟"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="^"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↑"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="↓"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⇵"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟰"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⟱"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤈"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤉"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤊"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤋"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤒"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⤓"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥉"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥌"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥍"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥏"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥑"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥔"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥕"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥘"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥙"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥜"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥝"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥠"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥡"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥣"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥥"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥮"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="⥯"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="￪"/>
-        <Detect2Chars context="#stay" attribute="Operator" char="." char1="￬"/>
 
         <!-- subtype operator -->
         <Detect2Chars context="type-annotation" attribute="Operator" char="&lt;" char1=":"/>
 
-        <!-- Look-ahead for adjoint ' after variable, number literal, closing braces and .' -->
-        <RegExpr context="_adjoint" attribute="Variable" String="[a-zA-Z]\w*(?=')" />
-        <RegExpr context="_adjoint" attribute="Float" String="(&int;(\.&int;)?|\.&int;)([eEfF][+-]?\d+)?(im)?(?=')" />
-        <!-- <RegExpr context="_adjoint" attribute="Operator" String="\.'(?=')" /> -->
+        <!-- Character operators
+        this was generated semi-automatically using operators in https://github.com/JuliaLang/julia/blob/master/src/julia-parser.scm -->
+        <RegExpr context="#stay" attribute="Operator" String="\.\.\.?|[:$]=?|\.?(?:&gt;&gt;&gt;=|&lt;--&gt;|//=|&lt;&lt;=|&gt;&gt;=|--&gt;|&lt;--|===|!==|&gt;&gt;&gt;|[-+*/\\^÷%|&amp;⊻]=|=&gt;|&amp;&amp;|\|\|?|&gt;=|&lt;=|==|!=|&lt;\||\|&gt;|\+\+|//|&lt;&lt;|&gt;&gt;|&lt;:|&gt;:|[\Q=≔⩴≕~←→↔↚↛↞↠↢↣↦↤↮⇎⇍⇏⇐⇒⇔⇴⇶⇷⇸⇹⇺⇻⇼⇽⇾⇿⟵⟶⟷⟹⟺⟻⟼⟽⟾⟿⤀⤁⤂⤃⤄⤅⤆⤇⤌⤍⤎⤏⤐⤑⤔⤕⤖⤗⤘⤝⤞⤟⤠⥄⥅⥆⥇⥈⥊⥋⥎⥐⥒⥓⥖⥗⥚⥛⥞⥟⥢⥤⥦⥧⥨⥩⥪⥫⥬⥭⥰⧴⬱⬰⬲⬳⬴⬵⬶⬷⬸⬹⬺⬻⬼⬽⬾⬿⭀⭁⭂⭃⭄⭇⭈⭉⭊⭋⭌￩￫⇜⇝↜↝↩↪↫↬↼↽⇀⇁⇄⇆⇇⇉⇋⇌⇚⇛⇠⇢↷↶↺↻&gt;&lt;≥≤≡≠≢∈∉∋∌⊆⊈⊂⊄⊊∝∊∍∥∦∷∺∻∽∾≁≃≂≄≅≆≇≈≉≊≋≌≍≎≐≑≒≓≖≗≘≙≚≛≜≝≞≟≣≦≧≨≩≪≫≬≭≮≯≰≱≲≳≴≵≶≷≸≹≺≻≼≽≾≿⊀⊁⊃⊅⊇⊉⊋⊏⊐⊑⊒⊜⊩⊬⊮⊰⊱⊲⊳⊴⊵⊶⊷⋍⋐⋑⋕⋖⋗⋘⋙⋚⋛⋜⋝⋞⋟⋠⋡⋢⋣⋤⋥⋦⋧⋨⋩⋪⋫⋬⋭⋲⋳⋴⋵⋶⋷⋸⋹⋺⋻⋼⋽⋾⋿⟈⟉⟒⦷⧀⧁⧡⧣⧤⧥⩦⩧⩪⩫⩬⩭⩮⩯⩰⩱⩲⩳⩵⩶⩷⩸⩹⩺⩻⩼⩽⩾⩿⪀⪁⪂⪃⪄⪅⪆⪇⪈⪉⪊⪋⪌⪍⪎⪏⪐⪑⪒⪓⪔⪕⪖⪗⪘⪙⪚⪛⪜⪝⪞⪟⪠⪡⪢⪣⪤⪥⪦⪧⪨⪩⪪⪫⪬⪭⪮⪯⪰⪱⪲⪳⪴⪵⪶⪷⪸⪹⪺⪻⪼⪽⪾⪿⫀⫁⫂⫃⫄⫅⫆⫇⫈⫉⫊⫋⫌⫍⫎⫏⫐⫑⫒⫓⫔⫕⫖⫗⫘⫙⫷⫸⫹⫺⊢⊣⟂⫪⫫…⁝⋮⋱⋰⋯+-−¦|⊕⊖⊞⊟∪∨⊔±∓∔∸≏⊎⊻⊽⋎⋓⧺⧻⨈⨢⨣⨤⨥⨦⨧⨨⨩⨪⨫⨬⨭⨮⨹⨺⩁⩂⩅⩊⩌⩏⩐⩒⩔⩖⩗⩛⩝⩡⩢⩣*/⌿÷%&amp;··⋅∘×\∩∧⊗⊘⊙⊚⊛⊠⊡⊓∗∙∤⅋≀⊼⋄⋆⋇⋉⋊⋋⋌⋏⋒⟑⦸⦼⦾⦿⧶⧷⨇⨰⨱⨲⨳⨴⨵⨶⨷⨸⨻⨼⨽⩀⩃⩄⩋⩍⩎⩑⩓⩕⩘⩚⩜⩞⩟⩠⫛⊍▷⨝⟕⟖⟗⨟^↑↓⇵⟰⟱⤈⤉⤊⤋⤒⤓⥉⥌⥍⥏⥑⥔⥕⥘⥙⥜⥝⥠⥡⥣⥥⥮⥯￪￬\E])" />
 
+        <!-- Identifiers, numbers -->
+        <!-- We can't use HlCHex, Int, and Float because we need to allow the "im" at the end of complex numbers -->
+        <DetectIdentifier context="_adjoint" attribute="Variable" />
+        <RegExpr context="_adjoint" attribute="Float" String="0x(&hex;\.?|(&hex;)?\.&hex;)[pP][+-]?[0-9]+(im)?"/>
+        <RegExpr context="_adjoint" attribute="Hex" String="0x&hex;(im)?" />
+        <RegExpr context="_adjoint" attribute="Octal" String="0o[0-7]+(_[0-7]+)*(im)?" />
+        <RegExpr context="_adjoint" attribute="Binary" String="0b[01]+(_[01]+)*(im)?" />
+        <RegExpr context="_adjoint" attribute="Float" String="(&int;(\.&int;)?|\.&int;)([eEfF][+-]?\d+)?(im)?" />
+
         <!-- If ' is not the adjoint operator, it starts a character or an unterminated char -->
         <RegExpr context="#stay" attribute="Char" String="'[^']*(''[^']*)*'(?=[^']|$)" />
         <RegExpr context="#stay" attribute="Incomplete Char" String="'[^']*(''[^']*)*" />
 
         <RegExpr context="#stay" attribute="Macro" String="@[a-zA-Z_]\w*" />
-
-        <!-- Identifiers, numbers and braces -->
-        <!-- We can't use HlCHex, Int, and Float because we need to allow the "im" at the end of complex numbers -->
-        <DetectIdentifier context="#stay" attribute="Variable" />
-        <RegExpr context="#stay" attribute="Float" String="0x(&hex;\.?|(&hex;)?\.&hex;)[pP][+-]?\d+(im)?"/>
-        <RegExpr context="#stay" attribute="Hex" String="0x&hex;(im)?" />
-        <RegExpr context="#stay" attribute="Octal" String="0o[0-7]([0-7_]*[0-7])?(im)?" />
-        <RegExpr context="#stay" attribute="Binary" String="0b[01]([01_]*[01])?(im)?" />
-        <RegExpr context="#stay" attribute="Float" String="(&int;(\.&int;)?|\.&int;)([eEfF][+-]?\d+)?(im)?" />
-
-        <!-- Single-character operators
-        this was generated semi-automatically using operators in https://github.com/JuliaLang/julia/blob/master/src/julia-parser.scm -->
-        <AnyChar context="#stay" attribute="Operator" String="=≔⩴≕~←→↔↚↛↞↠↢↣↦↤↮⇎⇍⇏⇐⇒⇔⇴⇶⇷⇸⇹⇺⇻⇼⇽⇾⇿⟵⟶⟷⟹⟺⟻⟼⟽⟾⟿⤀⤁⤂⤃⤄⤅⤆⤇⤌⤍⤎⤏⤐⤑⤔⤕⤖⤗⤘⤝⤞⤟⤠⥄⥅⥆⥇⥈⥊⥋⥎⥐⥒⥓⥖⥗⥚⥛⥞⥟⥢⥤⥦⥧⥨⥩⥪⥫⥬⥭⥰⧴⬱⬰⬲⬳⬴⬵⬶⬷⬸⬹⬺⬻⬼⬽⬾⬿⭀⭁⭂⭃⭄⭇⭈⭉⭊⭋⭌￩￫⇜⇝↜↝↩↪↫↬↼↽⇀⇁⇄⇆⇇⇉⇋⇌⇚⇛⇠⇢↷↶↺↻&gt;&lt;≥≤≡≠≢∈∉∋∌⊆⊈⊂⊄⊊∝∊∍∥∦∷∺∻∽∾≁≃≂≄≅≆≇≈≉≊≋≌≍≎≐≑≒≓≖≗≘≙≚≛≜≝≞≟≣≦≧≨≩≪≫≬≭≮≯≰≱≲≳≴≵≶≷≸≹≺≻≼≽≾≿⊀⊁⊃⊅⊇⊉⊋⊏⊐⊑⊒⊜⊩⊬⊮⊰⊱⊲⊳⊴⊵⊶⊷⋍⋐⋑⋕⋖⋗⋘⋙⋚⋛⋜⋝⋞⋟⋠⋡⋢⋣⋤⋥⋦⋧⋨⋩⋪⋫⋬⋭⋲⋳⋴⋵⋶⋷⋸⋹⋺⋻⋼⋽⋾⋿⟈⟉⟒⦷⧀⧁⧡⧣⧤⧥⩦⩧⩪⩫⩬⩭⩮⩯⩰⩱⩲⩳⩵⩶⩷⩸⩹⩺⩻⩼⩽⩾⩿⪀⪁⪂⪃⪄⪅⪆⪇⪈⪉⪊⪋⪌⪍⪎⪏⪐⪑⪒⪓⪔⪕⪖⪗⪘⪙⪚⪛⪜⪝⪞⪟⪠⪡⪢⪣⪤⪥⪦⪧⪨⪩⪪⪫⪬⪭⪮⪯⪰⪱⪲⪳⪴⪵⪶⪷⪸⪹⪺⪻⪼⪽⪾⪿⫀⫁⫂⫃⫄⫅⫆⫇⫈⫉⫊⫋⫌⫍⫎⫏⫐⫑⫒⫓⫔⫕⫖⫗⫘⫙⫷⫸⫹⫺⊢⊣⟂⫪⫫…⁝⋮⋱⋰⋯:$+-−¦|⊕⊖⊞⊟∪∨⊔±∓∔∸≏⊎⊻⊽⋎⋓⧺⧻⨈⨢⨣⨤⨥⨦⨧⨨⨩⨪⨫⨬⨭⨮⨹⨺⩁⩂⩅⩊⩌⩏⩐⩒⩔⩖⩗⩛⩝⩡⩢⩣*/⌿÷%&amp;··⋅∘×\∩∧⊗⊘⊙⊚⊛⊠⊡⊓∗∙∤⅋≀⊼⋄⋆⋇⋉⋊⋋⋌⋏⋒⟑⦸⦼⦾⦿⧶⧷⨇⨰⨱⨲⨳⨴⨵⨶⨷⨸⨻⨼⨽⩀⩃⩄⩋⩍⩎⩑⩓⩕⩘⩚⩜⩞⩟⩠⫛⊍▷⨝⟕⟖⟗⨟^↑↓⇵⟰⟱⤈⤉⤊⤋⤒⤓⥉⥌⥍⥏⥑⥔⥕⥘⥙⥜⥝⥠⥡⥣⥥⥮⥯￪￬"/>
-
-        <!-- Subsetting. This is needed because the `end` keyword has a special meaning in subsetting operations and should not be used for folding -->
-        <DetectChar attribute="Normal Text" context="subsetting" char="["/>
       </context>
 
       <!-- Context for user block (#BEGIN...#END) -->
@@ -1262,9 +577,9 @@
         <IncludeRules context="1-comment" />
       </context>
 
-      <!-- Context entered after encountering an ' adjoint operator -->
-      <context name="_adjoint" attribute="Operator" lineEndContext="#pop">
-        <RegExpr context="#pop" attribute="Operator" String="'+" />
+      <!-- Context entered after encountering an identifier or a number -->
+      <context name="_adjoint" attribute="Operator" lineEndContext="#pop" fallthroughContext="#pop">
+        <DetectChar attribute="Operator" char="'" />
       </context>
 
       <!-- Context entered after encountering an " (string) -->
@@ -1361,16 +676,18 @@
 
       <!-- 1-line comment: #pop@EOL  -->
       <context name="1-comment" lineEndContext="#pop" attribute="Comment">
-        <DetectSpaces />
+        <DetectSpaces/>
+        <IncludeRules context="##Comments"/>
+        <DetectIdentifier/>
       </context>
 
       <context name="block-comment" lineEndContext="#stay" attribute="Comment">
-        <DetectSpaces />
         <Detect2Chars char="=" char1="#" context="#pop" attribute="Comment" endRegion="block-comment"/>
+        <IncludeRules context="1-comment" />
       </context>
       <context name="controlflow-block" lineEndContext="#stay" attribute="Normal Text">
         <keyword context="#stay" attribute="Control Flow" String="cflow_eb" endRegion="block" beginRegion="block" />
-        <keyword context="#pop" attribute="Control Flow" String="block_end" endRegion="block" />
+        <WordDetect context="#pop" attribute="Control Flow" String="end" endRegion="block" />
         <IncludeRules context="_normal" />
       </context>
       <context name="parametric-type" lineEndContext="#stay" attribute="Data Type">
@@ -1401,13 +718,19 @@
       </context>
 
       <!-- context for imports -->
-      <context name="import" lineEndContext="#stay" lineEmptyContext="#stay"  attribute="Normal Text">
+      <context name="import" lineEndContext="#stay" lineEmptyContext="#stay" attribute="Normal Text">
+        <DetectSpaces attribute="Normal Text"/>
         <IncludeRules context="comment-rules"/>
-        <RegExpr attribute="Module" context="#stay" String="[^:,\s]+\s*(?=,)"/>
-        <RegExpr attribute="Module" context="import_vars" String="[^:,\s]+\s*(?=:)"/>
-        <RegExpr attribute="Module" context="#pop" String="[^:,\s]+\s*(?![,:])"/>
+        <RegExpr attribute="Module" context="import_list" String="[^:,\s]+"/>
       </context>
+      <context name="import_list" lineEndContext="#pop#pop" attribute="Normal Text">
+        <DetectSpaces attribute="Normal Text"/>
+        <IncludeRules context="comment-rules"/>
+        <DetectChar attribute="Normal Text" context="#pop" char=","/>
+        <DetectChar attribute="Normal Text" context="#pop!import_vars" char=":"/>
+      </context>
       <context name="import_vars" lineEndContext="#stay" lineEmptyContext="#stay" attribute="Normal Text">
+        <DetectSpaces attribute="Normal Text"/>
         <IncludeRules context="comment-rules"/>
         <!-- we don't know if these are types, variables, or functions,
         so no highlighting here -->
diff --git a/syntax/kotlin.xml b/syntax/kotlin.xml
--- a/syntax/kotlin.xml
+++ b/syntax/kotlin.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
     <!ENTITY int "(?:[0-9]++(_++[0-9]++)*+)">
     <!ENTITY hex "(?:[0-9a-fA-F]++(_++[0-9a-fA-F]++)*+)">
@@ -8,7 +8,7 @@
     <!ENTITY hexfloat "\b0[xX](&hex;\.?+&hex;?+|\.&hex;?)[pP][-+]?&int;[fF]?\b">
 ]>
 <!-- kotlin language syntax http://kotlinlang.org -->
-<language name="Kotlin" version="10" kateversion="5.62" section="Sources" extensions="*.kt;*.kts" license="LGPLv2+" author="Sergey Mashkov (sergey.mashkov@jetbrains.com)" style="cstyle" indenter="cstyle">
+<language name="Kotlin" alternativeNames="KT" version="12" kateversion="5.62" section="Sources" extensions="*.kt;*.kts" license="LGPLv2+" author="Sergey Mashkov (sergey.mashkov@jetbrains.com)" style="cstyle" indenter="cstyle">
     <highlighting>
         <list name="keywords">
             <item>package</item>
@@ -58,8 +58,16 @@
             <item>typealias</item>
             <item>typeof</item>
             <item>override</item>
+            <item>abstract</item>
             <item>infix</item>
             <item>operator</item>
+
+            <item>annotation</item>
+            <item>const</item>
+            <item>lateinit</item>
+            <item>inner</item>
+            <item>external</item>
+            <item>noinline</item>
         </list>
         <list name="controlFlowKeyword">
             <item>if</item>
@@ -100,6 +108,8 @@
             <item>Double</item>
 
             <item>Boolean</item>
+
+            <item>dynamic</item>
         </list>
 
         <contexts>
@@ -117,8 +127,7 @@
                 <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"/>
                 <DetectChar attribute="Annotation" context="Annotation" char="@" />
 
-                <Detect2Chars attribute="Comment" context="CommentSingleLine" char="/" char1="/"/>
-                <Detect2Chars attribute="Comment" context="CommentMultiline" char="/" char1="*" beginRegion="Comment"/>
+                <IncludeRules context="Comment"/>
 
                 <AnyChar attribute="Symbol" context="#stay" String="()[]&amp;|+,-/*&lt;=&gt;;!%?:~^"/>
 
@@ -147,6 +156,11 @@
                 <DetectIdentifier attribute="Normal Text"/>
             </context>
 
+            <context attribute="Normal Text" lineEndContext="#stay" name="Comment">
+                <Detect2Chars attribute="Comment" context="CommentSingleLine" char="/" char1="/"/>
+                <Detect2Chars attribute="Comment" context="CommentMultiline" char="/" char1="*" beginRegion="Comment"/>
+            </context>
+
             <context attribute="Normal Text" lineEndContext="#stay" name="Number">
                 <IncludeRules context="FindFloat"/>
                 <RegExpr attribute="Hex" context="#pop" String="\b0[xX]&hex;[lL]?\b"/>
@@ -164,7 +178,10 @@
             </context>
 
             <context attribute="Normal Text" lineEndContext="#pop" name="Annotation" fallthroughContext="#pop">
-                <DetectIdentifier attribute="Annotation" context="#pop"/>
+                <DetectIdentifier attribute="Annotation"/>
+                <DetectChar attribute="Symbol" char=":"/>
+                <RangeDetect attribute="Annotation" context="#pop" char="[" char1="]"/>
+                <IncludeRules context="Comment"/>
             </context>
 
             <context attribute="Normal Text" lineEndContext="#stay" name="Char">
@@ -220,10 +237,12 @@
                 <WordDetect attribute="Keyword" context="TypeName" String="as" />
                 <DetectIdentifier attribute="Imports" context="#stay"/>
                 <DetectChar attribute="Symbol" context="#pop" char=";"/>
+                <IncludeRules context="Comment"/>
             </context>
 
             <context name="VariableDeclaration" lineEndContext="#stay" attribute="Normal Text">
                 <DetectIdentifier attribute="Variable" context="#pop" />
+                <IncludeRules context="Comment"/>
             </context>
 
             <context name="TypeDeclaration" lineEndContext="#stay" attribute="Normal Text">
@@ -233,6 +252,8 @@
                 <DetectChar attribute="Symbol" context="Parameters" char="(" />
                 <DetectChar attribute="Symbol" context="SuperTypes" char=":" />
                 <DetectChar attribute="Symbol" context="#pop" char="{" lookAhead="true" />
+
+                <IncludeRules context="Comment"/>
             </context>
 
             <context name="SuperTypes" lineEndContext="#stay" attribute="Normal Text">
@@ -244,10 +265,13 @@
                 <DetectChar attribute="Symbol" context="TypeParameters" char="&lt;" />
 
                 <DetectIdentifier attribute="Data Type" context="#stay"/>
+
+                <IncludeRules context="Comment"/>
             </context>
 
             <context name="FunctionDeclaration" lineEndContext="#stay" attribute="Normal Text">
                 <keyword attribute="Keyword" context="#stay" String="keywords"/>
+                <DetectChar attribute="Annotation" context="Annotation" char="@" />
                 <DetectChar attribute="Symbol" context="#stay" char="." />
                 <DetectChar attribute="Symbol" context="Parameters" char="(" />
                 <DetectChar attribute="Symbol" context="TypeParameters" char="&lt;" />
@@ -256,6 +280,8 @@
                 <AnyChar attribute="Symbol" context="#pop" String="{=" lookAhead="true" />
 
                 <DetectIdentifier attribute="Function" context="#stay"/>
+
+                <IncludeRules context="Comment"/>
             </context>
 
             <context name="TypeParameters" lineEndContext="#stay" attribute="Normal Text">
@@ -268,9 +294,13 @@
                 <DetectChar attribute="Symbol" context="TypeParameters" char="&lt;" />
 
                 <DetectIdentifier attribute="Data Type" context="DataTypeSuffix"/>
+
+                <IncludeRules context="Comment"/>
             </context>
             <context name="DataTypeSuffix" lineEndContext="#pop" attribute="Normal Text" fallthroughContext="#pop">
                 <DetectChar attribute="Symbol" context="#pop" char="?"/>
+
+                <IncludeRules context="Comment"/>
             </context>
 
             <context name="Parameters" lineEndContext="#stay" attribute="Normal Text">
@@ -280,6 +310,7 @@
                 <DetectChar attribute="Symbol" context="Expression" char="=" />
                 <DetectIdentifier attribute="Variable" context="#stay"/>
                 <DetectChar attribute="Symbol" context="#stay" char=","/>
+                <IncludeRules context="Comment"/>
             </context>
 
             <context name="TypeName" lineEndContext="#stay" attribute="Normal Text">
@@ -287,6 +318,7 @@
                 <DetectChar attribute="Symbol" context="FunctionType" char="(" />
                 <Detect2Chars attribute="Symbol" context="#stay" char="-" char1="&gt;" />
                 <DetectIdentifier attribute="Data Type" context="#pop!DataTypeSuffix"/>
+                <IncludeRules context="Comment"/>
             </context>
 
             <context name="FunctionType" lineEndContext="#stay" attribute="Normal Text">
@@ -294,6 +326,7 @@
                 <DetectIdentifier attribute="Data Type" context="DataTypeSuffix"/>
                 <Detect2Chars attribute="Symbol" context="#stay" char="-" char1="&gt;" />
                 <DetectChar attribute="Symbol" context="#stay" char="," />
+                <IncludeRules context="Comment"/>
             </context>
 
             <context name="Expression" lineEndContext="#stay" attribute="Normal Text">
@@ -314,14 +347,14 @@
                 <DetectChar context="String" char="&quot;" lookAhead="1"/>
                 <DetectChar context="Char" char="'" lookAhead="1"/>
 
-                <Detect2Chars attribute="Comment" context="CommentSingleLine" char="/" char1="/"/>
-                <Detect2Chars attribute="Comment" context="CommentMultiline" char="/" char1="*" beginRegion="Comment"/>
+                <IncludeRules context="Comment"/>
 
                 <DetectIdentifier attribute="Normal Text"/>
             </context>
             <context name="MaybeTypeParameters" lineEndContext="#pop" attribute="Normal Text">
                 <RegExpr context="#pop!TypeParameters" String="&lt;\w" lookAhead="1" />
                 <DetectChar attribute="Symbol" context="#pop" char="&lt;"/>
+                <IncludeRules context="Comment"/>
             </context>
 
             <context name="ExpressionInner" lineEndContext="#stay" attribute="Normal Text">
diff --git a/syntax/latex.xml b/syntax/latex.xml
--- a/syntax/latex.xml
+++ b/syntax/latex.xml
@@ -1,973 +1,6349 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
-[
-    <!ENTITY bullet "&#xd7;">
-    <!ENTITY envname "[a-zA-Z]+\*?">
-]>
-<language name="LaTeX" version="19" section="Markup" kateversion="5.0" priority="10" extensions="*.tex;*.ltx;*.dtx;*.sty;*.cls;*.bbx;*.cbx;*.lbx;*.tikz;*.pgf" mimetype="text/x-tex" casesensitive="1" author="Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Holger Danielsson (holger.danielsson@versanet.de)+Michel Ludwig (michel.ludwig@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)" license="LGPL" >
-  <highlighting>
-    <!-- NOTE: Keywords of kind "\something" do not need a delimiter before "\".
-         Using a DetectChar rule with lookAhead to detect "\" at the beginning
-         avoids the requirement of the delimiter in the keyword. -->
-    <list name="beginEnv">
-      <item>\begin</item>
-    </list>
-
-    <list name="endEnv">
-      <item>\end</item>
-    </list>
-
-    <list name="Label">
-      <item>\Autocite</item>
-      <item>\autocite</item>
-      <item>\autoref</item>
-      <item>\Cite</item>
-      <item>\cite</item>
-      <item>\Citeauthor</item>
-      <item>\citeauthor</item>
-      <item>\citep</item>
-      <item>\citet</item>
-      <item>\citetitle</item>
-      <item>\citeurl</item>
-      <item>\citeyear</item>
-      <item>\cref</item>
-      <item>\Cref</item>
-      <item>\cref*</item>
-      <item>\Cref*</item>
-      <item>\eqref</item>
-      <item>\Footcite</item>
-      <item>\footcite</item>
-      <item>\footfullcite</item>
-      <item>\fullcite</item>
-      <item>\label</item>
-      <item>\nocite</item>
-      <item>\pagecite</item>
-      <item>\pageref</item>
-      <item>\Parencite</item>
-      <item>\parencite</item>
-      <item>\ref</item>
-      <item>\subref</item>
-      <item>\subref*</item>
-      <item>\supercite</item>
-      <item>\Textcite</item>
-      <item>\textcite</item>
-      <item>\vpageref</item>
-      <item>\vref</item>
-    </list>
-
-    <list name="macroFancyLabel">
-      <item>\documentclass</item>
-      <item>\includegraphics</item>
-      <item>\include</item>
-      <item>\usepackage</item>
-      <item>\bibliography</item>
-      <item>\bibliographystyle</item>
-    </list>
-
-    <list name="FancyLabel">
-      <item>\cites</item>
-      <item>\Cites</item>
-      <item>\parencites</item>
-      <item>\Parencites</item>
-      <item>\autocites</item>
-      <item>\Autocites</item>
-      <item>\supercites</item>
-      <item>\footcites</item>
-      <item>\Footcites</item>
-    </list>
-
-    <list name="Sectioning">
-      <item>\part*</item>
-      <item>\part</item>
-      <item>\chapter*</item>
-      <item>\chapter</item>
-      <item>\section*</item>
-      <item>\section</item>
-      <item>\subsection*</item>
-      <item>\subsection</item>
-      <item>\subsubsection*</item>
-      <item>\subsubsection</item>
-      <item>\paragraph*</item>
-      <item>\paragraph</item>
-      <item>\subparagraph*</item>
-      <item>\subparagraph</item>
-    </list>
-
-    <list name="SpecialCommand">
-      <item>\column</item>
-      <item>\definecolor</item>
-      <item>\geometry</item>
-      <item>\hspace*</item>
-      <item>\hspace</item>
-      <item>\input</item>
-      <item>\newboolean</item>
-      <item>\rule</item>
-      <item>\setboolean</item>
-      <item>\setcounter</item>
-      <item>\setlength</item>
-      <item>\special</item>
-      <item>\textcolor</item>
-      <item>\vspace*</item>
-      <item>\vspace</item>
-    </list>
-
-    <list name="Footnoting">
-      <item>\footnote*</item>
-      <item>\footnote</item>
-    </list>
-
-    <list name="NewCommand">
-      <item>\renewcommand*</item>
-      <item>\renewcommand</item>
-      <item>\providecommand*</item>
-      <item>\providecommand</item>
-      <item>\newcommand*</item>
-      <item>\newcommand</item>
-    </list>
-
-    <list name="DefCommand">
-      <item>\edef</item>
-      <item>\gdef</item>
-      <item>\xdef</item>
-    </list>
-
-    <list name="MathModeEnsure">
-      <item>\ensuremath</item>
-    </list>
-
-    <list name="iffalse">
-      <item>\iffalse</item>
-    </list>
-
-    <list name="iffalseend">
-      <item>\fi</item>
-      <item>\else</item>
-    </list>
-
-    <list name="Verb">
-      <item>verb*</item>
-      <item>verb</item>
-      <item>Verb</item>
-    </list>
-
-    <list name="Lstinline">
-      <item>lstinline</item>
-    </list>
-
-    <list name="MintParam">
-      <item>mint</item>
-    </list>
-
-    <list name="ListingsEnv">
-      <item>lstlisting*</item>
-      <item>lstlisting</item>
-    </list>
-
-    <list name="MintedEnv">
-      <item>minted*</item>
-      <item>minted</item>
-    </list>
-
-    <list name="VerbatimEnv">
-      <item>Verbatim*</item>
-      <item>Verbatim</item>
-      <item>BVerbatim*</item>
-      <item>BVerbatim</item>
-      <item>LVerbatim*</item>
-      <item>LVerbatim</item>
-      <item>verbatim*</item>
-      <item>verbatim</item>
-      <item>boxedverbatim*</item>
-      <item>boxedverbatim</item>
-    </list>
-
-    <list name="CommentEnv">
-      <item>comment*</item>
-      <item>comment</item>
-    </list>
-
-    <list name="MathEnvParam">
-      <item>alignat*</item>
-      <item>alignat</item>
-      <item>xalignat*</item>
-      <item>xalignat</item>
-      <item>xxalignat*</item>
-      <item>xxalignat</item>
-    </list>
-
-    <list name="MathEnv">
-      <item>Bmatrix*</item>
-      <item>Bmatrix</item>
-      <item>IEEEeqnarray*</item>
-      <item>IEEEeqnarray</item>
-      <item>IEEEeqnarraybox*</item>
-      <item>IEEEeqnarraybox</item>
-      <item>Vmatrix*</item>
-      <item>Vmatrix</item>
-      <item>align*</item>
-      <item>align</item>
-      <item>bmatrix*</item>
-      <item>bmatrix</item>
-      <item>cases*</item>
-      <item>cases</item>
-      <item>displaymath*</item>
-      <item>displaymath</item>
-      <item>eqnarray*</item>
-      <item>eqnarray</item>
-      <item>equation*</item>
-      <item>equation</item>
-      <item>flalign*</item>
-      <item>flalign</item>
-      <item>gather*</item>
-      <item>gather</item>
-      <item>math*</item>
-      <item>math</item>
-      <item>multline*</item>
-      <item>multline</item>
-      <item>pmatrix*</item>
-      <item>pmatrix</item>
-      <item>smallmatrix*</item>
-      <item>smallmatrix</item>
-      <item>subeqnarray*</item>
-      <item>subeqnarray</item>
-      <item>vmatrix*</item>
-      <item>vmatrix</item>
-    </list>
-
-    <list name="TabEnv">
-      <item>tabularx*</item>
-      <item>tabularx</item>
-      <item>tabular*</item>
-      <item>tabular</item>
-      <item>supertabular*</item>
-      <item>supertabular</item>
-      <item>mpsupertabular*</item>
-      <item>mpsupertabular</item>
-      <item>xtabular*</item>
-      <item>xtabular</item>
-      <item>mpxtabular*</item>
-      <item>mpxtabular</item>
-      <item>longtable*</item>
-      <item>longtable</item>
-    </list>
-
-    <list name="MathModeText">
-      <item>\text</item>
-      <item>\textit</item>
-      <item>\textbf</item>
-      <item>\textmd</item>
-      <item>\textsl</item>
-      <item>\textsc</item>
-      <item>\textrm</item>
-      <item>\textsf</item>
-      <item>\texttt</item>
-      <item>\textup</item>
-      <item>\textlf</item>
-      <item>\textnormal</item>
-      <item>\shortintertext</item>
-      <item>\intertext</item>
-      <item>\mbox</item>
-      <item>\emph</item>
-    </list>
-
-    <list name="ResetHL">
-      <item>\KileResetHL</item>
-      <item>\KateResetHL</item>
-    </list>
-
-    <contexts>
-      <!-- Normal text -->
-      <context name="Normal Text" attribute="Normal Text" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectIdentifier/>
-        <DetectChar char="\" attribute="Normal Text" context="LatexMacro" lookAhead="true"/>
-        <DetectChar char="$" attribute="Math" context="MathModeTex"/>
-        <RegExpr String="^&lt;&lt;.*&gt;&gt;=" attribute="Normal Text" context="NoWeb" column="0"/>
-        <IncludeRules context="FindComments"/>
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-      </context>
-
-      <context name="LatexMacro" attribute="Normal Text" lineEndContext="#pop">
-        <keyword String="beginEnv" attribute="Structure" context="#pop!FindBeginEnvironment" beginRegion="block"/>
-        <keyword String="endEnv" attribute="Structure" context="#pop!FindEndEnvironment"/>
-        <keyword String="Label" attribute="Structure" context="#pop!Label"/>
-        <keyword String="macroFancyLabel" attribute="Builtin Macro" context="#pop!FancyLabel"/>
-        <keyword String="FancyLabel" attribute="Structure" context="#pop!FancyLabel"/>
-        <keyword String="Sectioning" attribute="Structure" context="#pop!Sectioning"/>
-        <keyword String="SpecialCommand" attribute="Macro" context="#pop!SpecialCommand"/>
-        <keyword String="Footnoting" attribute="Macro" context="#pop!Footnoting"/>
-        <keyword String="NewCommand" attribute="Macro" context="#pop!NewCommand"/>
-        <keyword String="DefCommand" attribute="Macro" context="#pop!DefCommand"/>
-        <Detect2Chars char="\" char1="(" attribute="Math" context="#pop!MathModeLatex"/>
-        <Detect2Chars char="\" char1="[" attribute="Math" context="#pop!MathModeLatexEquation" beginRegion="mathMode"/>
-        <keyword String="MathModeEnsure" attribute="Math" context="#pop!MathModeEnsure"/>
-        <keyword String="iffalse" attribute="Comment" context="#pop!Multiline Comment"/>
-        <DetectChar char="\" attribute="Macro" context="#pop!ContrSeq"/>
-      </context>
-
-      <!-- NoWeb -->
-      <context name="NoWeb" attribute="Normal Text" lineEndContext="#stay">
-        <RegExpr String="^@\s*$" attribute="Normal Text" context="#pop" column="0"/>
-      </context>
-
-      <!-- LaTeX sectioning commands -->
-      <context name="Sectioning" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
-        <DetectSpaces/>
-        <RangeDetect char="[" char1="]" attribute="Normal Text" context="#stay"/>
-        <DetectChar char="{" attribute="Normal Text" context="SectioningInside"/>
-        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
-        <IncludeRules context="FindComments"/>
-      </context>
-      <context name="SectioningInside" attribute="Sectioning Text" lineEndContext="#stay">
-        <DetectChar char="{" attribute="Normal Text" context="SectioningInside"/>
-        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
-        <Detect2Chars char="\" char1="(" attribute="Sectioning Math" context="SectioningMathMode" />
-        <DetectChar char="\" attribute="Sectioning Macro" context="SectioningContrSeq"/>
-        <DetectChar char="$" attribute="Sectioning Math" context="SectioningMathMode" />
-        <IncludeRules context="FindComments"/>
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-      </context>
-      <context name="SectioningContrSeq" attribute="Macro" lineEndContext="#pop">
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-        <RegExpr String="[a-zA-Z]+(?:\+?|\*{0,3})|." attribute="Sectioning Macro" context="#pop" />
-      </context>
-      <context name="SectioningMathMode" attribute="Sectioning Math" lineEndContext="#stay">
-        <Detect2Chars char="$" char1="$" attribute="Error" context="#stay" />
-        <DetectChar char="$" attribute="Sectioning Math" context="#pop" />
-        <Detect2Chars char="\" char1=")" attribute="Sectioning Math" context="#pop" />
-        <Detect2Chars char="\" char1="]" attribute="Error" context="#stay" />
-        <DetectChar char="\" attribute="Sectioning Macro Mathmode" context="SectioningMathContrSeq"/>
-        <IncludeRules context="FindComments"/>
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-      </context>
-      <context name="SectioningMathContrSeq" attribute="Sectioning Macro Mathmode" lineEndContext="#pop">
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-        <RegExpr String="&envname;|." attribute="Sectioning Macro Mathmode" context="#pop" />
-      </context>
-
-      <!-- LaTeX Footnote commands -->
-      <context name="Footnoting" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
-        <DetectSpaces/>
-        <RangeDetect char="[" char1="]" attribute="Normal Text" context="#stay"/>
-        <DetectChar char="{" attribute="Normal Text" context="FootnotingInside"/>
-        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
-        <IncludeRules context="FindComments"/>
-      </context>
-      <context name="FootnotingInside" attribute="Normal Text" lineEndContext="#stay">
-        <DetectChar char="{" attribute="Normal Text" context="FootnotingInside"/>
-        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
-        <IncludeRules context="Normal Text"/>
-      </context>
-
-      <!-- LaTeX commands \newcommand and \renewcommand -->
-      <context name="NewCommand" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
-        <DetectSpaces/>
-        <DetectChar char="{" attribute="Normal Text" context="LabelParameter"/>
-        <RegExpr String="(?:\[\d\](?:\[[^\]]*\])?)?\{" attribute="Normal Text" context="LabelParameter"/>
-        <DetectChar char="}" attribute="Error" context="#pop"/>
-      </context>
-
-      <!-- LaTeX command \def -->
-      <context name="DefCommand" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
-        <DetectSpaces/>
-        <RegExpr String="\\[a-zA-Z]+[^\{]*\{" attribute="Normal Text" context="#pop!CommandParameter"/>
-        <DetectChar char="}" attribute="Error" context="#pop"/>
-      </context>
-
-      <!-- parse command argument -->
-      <context name="CommandParameter" attribute="Normal Text" lineEndContext="#stay">
-        <DetectChar char="{" attribute="Normal Text" context="CommandParameter"/>
-        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
-        <RegExpr String="\\." attribute="Normal Text" context="#stay"/>
-        <IncludeRules context="FindComments"/>
-      </context>
-
-      <!-- LaTeX command in text mode -->
-      <context name="ContrSeq" attribute="Macro" lineEndContext="#pop">
-        <keyword String="Verb" attribute="Macro" context="Verb"/>
-        <keyword String="Lstinline" attribute="Macro" context="Lstinline"/>
-        <keyword String="MintParam" attribute="Macro" context="MintParam"/>
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-        <RegExpr String="[a-zA-Z@]+(?:\+?|\*{0,3})|." attribute="Macro" context="#pop" />
-      </context>
-
-      <!-- \mint command with parameter-->
-      <context name="MintParam" attribute="Normal Text" lineEndContext="#stay">
-        <Detect2Chars char="}" char1="[" attribute="Normal Text" context="#stay"/>
-        <AnyChar String="}]" attribute="Normal Text" context="Verb"/>
-      </context>
-
-      <!-- verb command -->
-      <context name="Verb" attribute="Verbatim" lineEndContext="#pop#pop" >
-        <RegExpr String="(.)" attribute="Normal Text" context="VerbEnd" />
-      </context>
-      <context name="VerbEnd" attribute="Verbatim" lineEndContext="#pop#pop#pop" dynamic="true" >
-        <StringDetect String="%1" attribute="Normal Text" context="#pop#pop#pop" dynamic="true" />
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-        <RegExpr String="[^%1\xd7]*" attribute="Verbatim" context="#stay" dynamic="true" />
-      </context>
-
-      <!-- lstinline command, different from verb as it takes options -->
-      <context name="Lstinline" attribute="Verbatim" lineEndContext="#pop#pop" >
-        <DetectSpaces/>
-        <DetectChar char="[" attribute="Normal Text" context="FancyLabelOption"/>
-        <DetectChar char="{" attribute="Normal Text" context="LstinlineParameter"/>
-        <RegExpr String="(.)" attribute="Normal Text" context="LstinlineEnd" />
-      </context>
-      <context name="LstinlineEnd" attribute="Verbatim" lineEndContext="#pop#pop#pop" dynamic="true" >
-        <!-- TODO DetectChar segfault -->
-        <StringDetect String="%1" attribute="Normal Text" context="#pop#pop#pop" dynamic="true" />
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-        <RegExpr String="[^%1\xd7]*" attribute="Verbatim" context="#stay" dynamic="true" />
-      </context>
-      <context name="LstinlineParameter" attribute="Verbatim" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop"/>
-      </context>
-
-      <!-- label -->
-      <context name="Label" attribute="Normal Text" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectChar char="{" attribute="Normal Text" context="LabelParameter"/>
-        <DetectChar char="[" attribute="Normal Text" context="LabelOption"/>
-      </context>
-
-      <context name="LabelOption" attribute="Normal Text" lineEndContext="#stay">
-        <DetectSpaces/>
-        <Detect2Chars char="\" char1="(" attribute="Math" context="MathModeLatex"/>
-        <DetectChar char="\" attribute="Macro" context="ContrSeq"/>
-        <DetectChar char="$" attribute="Math" context="MathModeTex" />
-        <IncludeRules context="FindComments"/>
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-        <DetectChar char="]" attribute="Normal Text" context="#pop"/>
-      </context>
-
-      <context name="LabelParameter" attribute="Reference" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-        <DetectChar char="}" attribute="Normal Text" context="#pop#pop"/>
-      </context>
-
-      <!-- labels from biblatex commands -->
-      <context name="FancyLabel" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
-        <DetectSpaces/>
-        <DetectChar char="{" attribute="Normal Text" context="FancyLabelParameter"/>
-        <DetectChar char="[" attribute="Normal Text" context="FancyLabelOption"/>
-        <DetectChar char="(" attribute="Normal Text" context="FancyLabelRoundBrackets"/>
-      </context>
-
-      <context name="FancyLabelParameter" attribute="Environment" lineEndContext="#stay">
-        <DetectSpaces/>
-        <Detect2Chars char="\" char1="(" attribute="Math" context="MathModeLatex"/>
-        <DetectChar char="\" attribute="Macro" context="ContrSeq"/>
-        <DetectChar char="$" attribute="Math" context="MathModeTex" />
-        <IncludeRules context="FindComments"/>
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
-        <DetectChar char="{" attribute="Normal Text" context="FancyLabelParameter"/>
-      </context>
-
-      <context name="FancyLabelOption" attribute="Option Text" lineEndContext="#stay">
-        <IncludeRules context="LabelOption"/>
-      </context>
-
-      <context name="FancyLabelRoundBrackets" attribute="Normal Text" lineEndContext="#stay">
-        <DetectSpaces/>
-        <Detect2Chars char="\" char1="(" attribute="Math" context="MathModeLatex" />
-        <DetectChar char="\" attribute="Macro" context="ContrSeq"/>
-        <DetectChar char="$" attribute="Math" context="MathModeTex" />
-        <IncludeRules context="FindComments"/>
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-        <DetectChar char=")" attribute="Normal Text" context="#pop"/>
-      </context>
-
-      <!-- Special commands -->
-      <context name="SpecialCommand" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
-        <DetectSpaces/>
-        <DetectChar char="{" attribute="Normal Text" context="SpecialCommandParameterOption"/>
-      </context>
-
-      <context name="SpecialCommandParameterOption" attribute="Option Text" lineEndContext="#stay">
-        <DetectSpaces/>
-        <Detect2Chars char="\" char1="(" attribute="Math" context="MathModeLatex" />
-        <DetectChar char="\" attribute="Macro" context="ContrSeq"/>
-        <DetectChar char="$" attribute="Math" context="MathModeTex" />
-        <IncludeRules context="FindComments"/>
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
-        <DetectChar char="{" attribute="Normal Text" context="SpecialCommandParameterOption"/>
-      </context>
-
-      <!-- end of an environment -->
-      <context name="FindEndEnvironment" attribute="Normal Text" lineEndContext="#stay">
-        <DetectChar char="{" attribute="Normal Text" context="EndEnvironment"/>
-        <RegExpr String="\S" attribute="Normal Text" context="#pop"/>
-      </context>
-
-      <context name="EndEnvironment" attribute="Environment" lineEndContext="#stay">
-        <RegExpr String="&envname;" attribute="Environment" context="LatexEnvEnd"/>
-        <RegExpr String="." attribute="Error" context="#pop#pop"/>
-      </context>
-
-      <context name="LatexEnvEnd" attribute="Environment" lineEndContext="#stay">
-        <DetectChar char="}" attribute="Normal Text" endRegion="block" context="#pop#pop#pop"/>
-        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
-      </context>
-
-      <!-- start of an environment -->
-      <context name="FindBeginEnvironment" attribute="Normal Text" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectChar char="{" attribute="Normal Text" context="BeginEnvironment"/>
-        <RegExpr String="." attribute="Normal Text" context="#pop"/>
-      </context>
-
-      <!-- filter the environment name and check the type -->
-      <context name="BeginEnvironment" attribute="Environment" lineEndContext="#stay">
-        <keyword String="ListingsEnv" attribute="Environment" context="ListingsEnv"/>
-        <keyword String="MintedEnv" attribute="Environment" context="MintedEnv"/>
-        <keyword String="VerbatimEnv" attribute="Environment" context="VerbatimEnv" lookAhead="true"/>
-        <keyword String="CommentEnv" attribute="Environment" context="CommentEnv"/>
-        <keyword String="MathEnvParam" attribute="Environment" context="MathEnvWithParam"/>
-        <keyword String="MathEnv" attribute="Environment" context="MathEnv"/>
-        <keyword String="TabEnv" attribute="Environment" context="TabEnv"/>
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-        <RegExpr String="&envname;" attribute="Environment" context="LatexEnv"/>
-        <RegExpr String="." attribute="Error" context="#pop"/>
-      </context>
-
-      <!-- environment type 1: normal -->
-      <context name="LatexEnv" attribute="Error" lineEndContext="#stay">
-        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop"/>
-      </context>
-
-      <context name="VerbatimEnv" attribute="Environment" lineEndContext="#stay">
-        <WordDetect String="verbatim*" attribute="Environment" context="VerbatimEnv1"/>
-        <WordDetect String="verbatim" attribute="Environment" context="VerbatimEnv1"/>
-        <WordDetect String="boxedverbatim*" attribute="Environment" context="VerbatimEnv2"/>
-        <WordDetect String="boxedverbatim" attribute="Environment" context="VerbatimEnv2"/>
-
-        <WordDetect String="Verbatim*" attribute="Environment" context="VerbatimEnv3"/>
-        <WordDetect String="Verbatim" attribute="Environment" context="VerbatimEnv3"/>
-        <WordDetect String="BVerbatim*" attribute="Environment" context="VerbatimEnv4"/>
-        <WordDetect String="BVerbatim" attribute="Environment" context="VerbatimEnv4"/>
-        <WordDetect String="LVerbatim*" attribute="Environment" context="VerbatimEnv5"/>
-        <WordDetect String="LVerbatim" attribute="Environment" context="VerbatimEnv5"/>
-      </context>
-
-      <!-- environment type 2: verbatim without parameter -->
-      <context name="VerbatimEnv1" attribute="Error" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop#pop#pop">
-        <DetectChar char="}" attribute="Normal Text" context="Verbatim1"/>
-      </context>
-      <context name="Verbatim1" attribute="Verbatim" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectIdentifier/>
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-        <RegExpr String="\\end(?=\s*\{verbatim\*?\})" attribute="Structure" context="VerbFindEnd"/>
-      </context>
-
-      <context name="VerbatimEnv2" attribute="Error" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop#pop#pop">
-        <DetectChar char="}" attribute="Normal Text" context="Verbatim2"/>
-      </context>
-      <context name="Verbatim2" attribute="Verbatim" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectIdentifier/>
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-        <RegExpr String="\\end(?=\s*\{boxedverbatim\*?\})" attribute="Structure" context="VerbFindEnd"/>
-      </context>
-
-      <!-- environment type 3: verbatim with optional parameter -->
-      <context name="VerbatimEnv3" attribute="Error" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop#pop#pop">
-        <DetectChar char="}" attribute="Normal Text" context="VerbatimEnv3Param"/>
-      </context>
-      <context name="VerbatimEnv3Param" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!Verbatim3">
-        <DetectSpaces/>
-        <RangeDetect char="[" char1="]" attribute="Normal Text" context="#pop!Verbatim3"/>
-      </context>
-      <context name="Verbatim3" attribute="Verbatim" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectIdentifier/>
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-        <RegExpr String="\\end(?=\s*\{Verbatim\*?\})" attribute="Structure" context="VerbFindEnd"/>
-      </context>
-
-      <context name="VerbatimEnv4" attribute="Error" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop#pop#pop">
-        <DetectChar char="}" attribute="Normal Text" context="VerbatimEnv4Param"/>
-      </context>
-      <context name="VerbatimEnv4Param" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!Verbatim4">
-        <DetectSpaces/>
-        <RangeDetect char="[" char1="]" attribute="Normal Text" context="#pop!Verbatim4"/>
-      </context>
-      <context name="Verbatim4" attribute="Verbatim" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectIdentifier/>
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-        <RegExpr String="\\end(?=\s*\{BVerbatim\*?\})" attribute="Structure" context="VerbFindEnd"/>
-      </context>
-
-      <context name="VerbatimEnv5" attribute="Error" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop#pop#pop">
-        <DetectChar char="}" attribute="Normal Text" context="VerbatimEnv5Param"/>
-      </context>
-      <context name="VerbatimEnv5Param" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!Verbatim5">
-        <DetectSpaces/>
-        <RangeDetect char="[" char1="]" attribute="Normal Text" context="#pop!Verbatim5"/>
-      </context>
-      <context name="Verbatim5" attribute="Verbatim" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectIdentifier/>
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-        <RegExpr String="\\end(?=\s*\{LVerbatim\*?\})" attribute="Structure" context="VerbFindEnd"/>
-      </context>
-
-      <!-- environment type 4: listings environment with optional parameter and HL switching-->
-      <context name="ListingsEnv" attribute="Environment" lineEndContext="#stay">
-        <DetectChar char="}" attribute="Normal Text" context="#pop!ListingsEnvParam"/>
-        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
-      </context>
-      <context name="ListingsEnvParam" attribute="Normal Text" lineEndContext="#pop!UnknownHighlighting" fallthrough="true" fallthroughContext="#pop!UnknownHighlighting">
-        <DetectSpaces/>
-        <DetectChar char="[" attribute="Normal Text" context="#pop!ListingsEnvParamInside"/>
-        <IncludeRules context="FindComments"/>
-      </context>
-      <context name="ListingsEnvParamInside" attribute="Normal Text" lineEndContext="#stay">
-        <DetectIdentifier/>
-        <RegExpr String="\s*language\s*=\s*(?=[^],])" attribute="Normal Text" context="HighlightingSelector"/>
-        <DetectChar char="]" attribute="Normal Text" context="ListingsEnvParamEnd"/>
-        <IncludeRules context="FindComments"/>
-      </context>
-      <context name="ListingsEnvParamEnd" attribute="Normal Text" lineEndContext="#pop#pop!UnknownHighlighting" fallthrough="true" fallthroughContext="#pop#pop!UnknownHighlighting">
-        <DetectSpaces/>
-        <IncludeRules context="FindComments"/>
-      </context>
-
-      <!-- environment type 5: minted environment with optional and HL switching -->
-      <context name="MintedEnv" attribute="Environment" lineEndContext="#stay">
-        <DetectChar char="}" attribute="Normal Text" context="#pop!MintedEnvParam"/>
-        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
-      </context>
-      <context name="MintedEnvParam" attribute="Normal Text" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectChar char="[" attribute="Normal Text" context="#pop!MintedEnvParamInside"/>
-        <DetectChar char="{" attribute="Normal Text" context="HighlightingSelector"/>
-        <IncludeRules context="FindComments"/>
-      </context>
-      <context name="MintedEnvParamInside" attribute="Normal Text" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectIdentifier/>
-        <DetectChar char="]" attribute="Normal Text" context="#pop!MintedEnvLang"/>
-        <IncludeRules context="FindComments"/>
-        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
-      </context>
-      <context name="MintedEnvLang" attribute="Normal Text" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectChar char="{" attribute="Normal Text" context="HighlightingSelector"/>
-        <IncludeRules context="FindComments"/>
-      </context>
-
-      <!-- parse verbatim text for lstinline and minted -->
-      <context name="UnknownHighlighting" attribute="Verbatim" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectIdentifier/>
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-        <RegExpr String="\\end(?=\s*\{(?:lstlisting|minted)\*?\})" attribute="Structure" context="UnknownHighlightingEnd"/>
-      </context>
-      <context name="UnknownHighlightingEnd" attribute="Environment" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectChar char="{" attribute="Normal Text" context="#stay"/>
-        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop#pop#pop#pop#pop" endRegion="block"/>
-        <DetectIdentifier/>
-      </context>
-
-
-      <!-- Selector for different highlightning schemes, in case the language is not implemented we pop and thus fallback to verbatim -->
-      <context name="HighlightingSelector" attribute="Normal Text" lineEndContext="#stay">
-        <WordDetect String="C++" insensitive="true" context="HighlightingBeginC++"/>
-        <WordDetect String="Python" insensitive="true" context="HighlightingBeginPython"/>
-        <AnyChar String="}]" context="#pop!UnknownHighlighting"/>
-        <RegExpr String="[^]}]*" context="#stay"/>
-      </context>
-
-      <context name="HighlightingCommon" attribute="Normal Text" lineEndContext="#stay">
-        <RegExpr String="\\end\s*\{(?:lstlisting|minted)\*?\}" attribute="Structure" lookAhead="true" context="#pop#pop#pop#pop#pop#pop"/>
-      </context>
-
-      <context name="HighlightingBeginC++" attribute="Normal Text" lineEndContext="#stay">
-        <AnyChar String="}]" context="HighlightingC++"/>
-        <!-- Eat the trailing characters including } or ] after the language specification -->
-        <RegExpr String="[^]}]*" context="#stay"/>
-      </context>
-
-      <context name="HighlightingC++" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="HighlightingCommon"/>
-        <IncludeRules context="##C++" includeAttrib="true"/>
-      </context>
-
-      <context name="HighlightingBeginPython" attribute="Normal Text" lineEndContext="#stay">
-        <AnyChar String="}]" context="HighlightingPython"/>
-        <RegExpr String="[^]}]*" context="#stay"/>
-      </context>
-
-      <context name="HighlightingPython" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="HighlightingCommon"/>
-        <IncludeRules context="##Python"/>
-      </context>
-
-      <!-- end of verbatim environment -->
-      <context name="VerbFindEnd" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
-        <DetectSpaces/>
-        <DetectChar char="{" attribute="Normal Text" context="#stay"/>
-        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop#pop#pop#pop" endRegion="block"/>
-        <keyword String="VerbatimEnv" attribute="Environment"/>
-      </context>
-
-      <!-- begin comment environment -->
-      <context name="CommentEnv" attribute="Environment" lineEndContext="#stay">
-        <DetectChar char="}" attribute="Normal Text" context="BlockComment"/>
-        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
-       </context>
-
-      <!-- parse comment text -->
-      <context name="BlockComment" attribute="Comment" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectIdentifier/>
-        <RegExpr String="\\end(?=\s*\{comment\*?\})" attribute="Structure" context="CommFindEnd"/>
-      </context>
-
-      <!-- end of comment environment -->
-      <context name="CommFindEnd" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
-        <DetectSpaces/>
-        <DetectChar char="{" attribute="Normal Text" context="#stay"/>
-        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop#pop#pop" endRegion="block"/>
-        <keyword String="CommentEnv" attribute="Environment"/>
-      </context>
-
-      <!-- environment type 4: math environment with its own mathmode -->
-      <context name="MathEnv" attribute="Environment" lineEndContext="#stay">
-        <DetectChar char="}" attribute="Normal Text" context="MathModeEnv"/>
-        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
-      </context>
-
-      <!-- environment type 5: math environment with its own mathmode and parameter -->
-      <context name="MathEnvWithParam" attribute="Environment" lineEndContext="#stay">
-        <DetectChar char="}" attribute="Normal Text" context="MathEnvWithParamInside"/>
-        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
-      </context>
-      <context name="MathEnvWithParamInside" attribute="Normal Text" lineEndContext="#stay">
-        <DetectSpaces/>
-        <RangeDetect char="[" char1="]" attribute="Normal Text" context="#stay"/>
-        <DetectChar char="{" attribute="Normal Text" context="MathEnvParamInside"/>
-      </context>
-      <context name="MathEnvParamInside" attribute="Normal Text" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectChar char="}" attribute="Normal Text" context="#pop#pop!MathModeEnv"/>
-      </context>
-
-      <!-- parse math environment -->
-      <context name="MathModeEnv" attribute="Math" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectIdentifier/>
-        <DetectChar char="\" attribute="Math" context="BackslashMathModeEnv" lookAhead="true"/>
-        <DetectChar char="$" attribute="Error" context="#stay"/>
-        <IncludeRules context="FindComments"/>
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-      </context>
-      <context name="BackslashMathModeEnv" attribute="Math" lineEndContext="#pop">
-        <keyword String="beginEnv" attribute="Structure" context="#pop!FindBeginEnvironment" beginRegion="block"/>
-        <keyword String="endEnv" attribute="Structure" context="#pop!MathFindEnd"/>
-        <keyword String="MathModeText" attribute="Macro Mathmode" context="#pop!MathModeText"/>
-        <Detect2Chars char="\" char1="(" attribute="Error" context="#pop"/>
-        <Detect2Chars char="\" char1=")" attribute="Error" context="#pop"/>
-        <Detect2Chars char="\" char1="[" attribute="Error" context="#pop"/>
-        <Detect2Chars char="\" char1="]" attribute="Error" context="#pop"/>
-        <DetectChar char="\" attribute="Macro Mathmode" context="#pop!MathContrSeq"/>
-      </context>
-
-      <!-- end of math environment -->
-      <context name="MathFindEnd" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
-        <DetectSpaces/>
-        <DetectChar char="{" attribute="Normal Text" context="#stay"/>
-        <keyword String="MathEnvParam" attribute="Environment" context="MathFindEndInside"/>
-        <keyword String="MathEnv" attribute="Environment" context="MathFindEndInside"/>
-        <RegExpr String="&envname;" attribute="Environment" context="NoMathFindEndInside"/>
-        <RegExpr String="." attribute="Error" context="#pop"/>
-      </context>
-      <context name="MathFindEndInside" attribute="Normal Text" lineEndContext="#pop#pop">
-        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop#pop#pop#pop" endRegion="block"/>
-        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
-      </context>
-      <context name="NoMathFindEndInside" attribute="Normal Text" lineEndContext="#pop#pop">
-        <DetectChar char="}" attribute="Normal Text" context="#pop#pop" endRegion="block"/>
-        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
-      </context>
-
-      <!-- environment type 9: tabular -->
-      <context name="TabEnv" attribute="Environment" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop#pop">
-        <DetectChar char="}" attribute="Normal Text" context="Tab"/>
-        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
-      </context>
-
-      <!-- parse tabular text -->
-      <context name="Tab" attribute="Normal Text" lineEndContext="#stay">
-        <DetectChar char="&amp;" attribute="Ampersand" context="#stay"/>
-        <Detect2Chars char="@" char1="{" attribute="Column Separator" context="Column Separator"/>
-        <RegExpr String="\\end\b" attribute="Structure" context="TabFindEnd"/> <!-- endEnv -->
-        <IncludeRules context="Normal Text" />
-      </context>
-
-      <context name="Column Separator" attribute="Column Separator" lineEndContext="#stay">
-        <DetectChar char="{" attribute="Column Separator" context="Column Separator"/>
-        <DetectChar char="}" attribute="Column Separator" context="#pop"/>
-      </context>
-
-      <!-- end of tabular environment -->
-      <context name="TabFindEnd" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
-        <DetectSpaces/>
-        <DetectChar char="{" attribute="Normal Text" context="#stay"/>
-        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop#pop#pop" endRegion="block"/>
-        <keyword String="TabEnv" attribute="Environment" context="#stay"/>
-      </context>
-
-      <!-- math mode: starting with $ -->
-      <context name="MathModeTex" attribute="Math" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!MathMode">
-        <DetectChar char="$" attribute="Math" context="#pop!MathModeDisplay" beginRegion="mathMode"/>
-      </context>
-      <context name="MathMode" attribute="Math" lineEndContext="#stay">
-        <DetectChar char="$" attribute="Math" context="#pop"/>
-        <IncludeRules context="MathModeCommon"/>
-      </context>
-
-      <!-- math mode: starting with $$ -->
-      <context name="MathModeDisplay" attribute="Math" lineEndContext="#stay">
-        <Detect2Chars char="$" char1="$" attribute="Math" context="#pop" endRegion="mathMode"/>
-        <DetectChar char="$" attribute="Error" context="#stay"/>
-        <IncludeRules context="MathModeCommon"/>
-      </context>
-
-      <!-- math mode: starting with \( -->
-      <context name="MathModeLatex" attribute="Math" lineEndContext="#stay">
-        <Detect2Chars char="\" char1=")" attribute="Math" context="#pop"/>
-        <IncludeRules context="MathModeCommon"/>
-      </context>
-
-      <!-- math mode: starting with \[ -->
-      <context name="MathModeLatexEquation" attribute="Math" lineEndContext="#stay">
-        <Detect2Chars char="\" char1="]" attribute="Math" context="#pop" endRegion="mathMode"/>
-        <IncludeRules context="MathModeCommon"/>
-      </context>
-
-      <!-- math mode: \ensuremath{...} -->
-      <context name="MathModeEnsure" attribute="Math" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectChar char="{" attribute="Math" context="#pop!MathModeEnsureInside"/>
-        <RegExpr String="." attribute="Error" context="#pop"/>
-      </context>
-      <context name="MathModeEnsureInside" attribute="Math" lineEndContext="#stay">
-        <DetectChar char="{" attribute="Math" context="MathModeEnsureInside" />
-        <DetectChar char="}" attribute="Math" context="#pop" />
-        <IncludeRules context="MathModeCommon"/>
-      </context>
-
-      <!-- math mode common -->
-      <context name="MathModeCommon" attribute="Math" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectIdentifier/>
-        <DetectChar char="\" attribute="Math" context="BackslashMathModeCommon" lookAhead="true"/>
-        <IncludeRules context="FindComments"/>
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-      </context>
-      <context name="BackslashMathModeCommon" attribute="Math" lineEndContext="#pop">
-        <keyword String="beginEnv" attribute="Structure" context="#pop!MathEnvironment" beginRegion="block"/>
-        <keyword String="endEnv" attribute="Structure" context="#pop!MathEnvironmentEnd"/>
-        <keyword String="MathModeText" attribute="Macro Mathmode" context="#pop!MathModeText" />
-        <DetectChar char="\" attribute="Macro Mathmode" context="#pop!MathContrSeq"/>
-      </context>
-      <context name="MathEnvironment" attribute="Math" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectChar char="{" attribute="Normal Text" context="MathEnvironmentInside"/>
-        <RegExpr String="." attribute="Error" context="#pop"/>
-      </context>
-      <context name="MathEnvironmentInside" attribute="Environment" lineEndContext="#stay">
-        <DetectChar char="}" attribute="Normal Text" context="#pop#pop"/>
-        <RegExpr String="&envname;" attribute="Environment" context="#stay"/>
-        <RegExpr String="[^}a-zA-Z]+|." attribute="Error" context="#stay"/>
-      </context>
-      <context name="MathEnvironmentEnd" attribute="Math" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectChar char="{" attribute="Normal Text" context="MathEnvironmentEndInside"/>
-        <RegExpr String="." attribute="Error" context="#pop"/>
-      </context>
-      <context name="MathEnvironmentEndInside" attribute="Environment" lineEndContext="#stay">
-        <DetectChar char="}" attribute="Normal Text" context="#pop#pop" endRegion="block"/>
-        <WordDetect String="ensuremath" attribute="Environment" context="#pop!LatexEnvEnd"/>
-        <RegExpr String="&envname;" attribute="Environment" context="#stay"/>
-        <RegExpr String="[^}a-zA-Z]+|." attribute="Error" context="#pop#pop"/>
-      </context>
-
-      <!-- command in mathmode -->
-      <context name="MathContrSeq" attribute="Macro Mathmode" lineEndContext="#pop">
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-        <RegExpr String="&envname;|." attribute="Macro Mathmode" context="#pop" />
-      </context>
-
-      <!-- text in mathmode -->
-      <context name="MathModeText" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="MathContrSeq">
-        <DetectSpaces/>
-        <DetectChar char="{" attribute="Normal Text" context="MathModeTextParameterStart"/>
-      </context>
-      <context name="MathModeTextInside" attribute="Normal Text" lineEndContext="#stay" >
-        <DetectChar char="{" attribute="Normal Text" context="MathModeTextParameterStart"/>
-      </context>
-
-      <context name="MathModeTextParameterStart" attribute="Normal Text" lineEndContext="#stay" >
-        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
-        <RangeDetect char="$" char1="$" attribute="Math" context="#stay"/>
-        <DetectChar char="{" attribute="Normal Text" context="MathModeTextInside" lookAhead="true"/>
-        <DetectChar char="}" attribute="Normal Text" context="#pop#pop"/>
-        <IncludeRules context="FindComments"/>
-        <DetectChar char="\" attribute="Macro Mathmode" context="MathContrSeq"/>
-      </context>
-
-      <!-- iffalse aka multiline comment -->
-      <context name="Multiline Comment" attribute="Comment" lineEndContext="#stay">
-        <DetectChar char="\" attribute="Comment" context="BackslashMultilineComment" lookAhead="true"/>
-      </context>
-      <context name="BackslashMultilineComment" attribute="Comment" lineEndContext="#pop">
-        <keyword String="iffalseend" attribute="Comment" context="#pop#pop"/>
-        <DetectChar char="\" attribute="Comment" context="#pop"/>
-      </context>
-
-      <!-- comment -->
-      <context name="FindComments" attribute="Normal Text" lineEndContext="#stay">
-        <RegExpr String="&#037;+\s*BEGIN\b" attribute="Region Marker" context="RegionComment" firstNonSpace="true" beginRegion="region-marker"/>
-        <RegExpr String="&#037;+\s*END\b" attribute="Region Marker" context="RegionComment" firstNonSpace="true" endRegion="region-marker"/>
-        <DetectChar char="%" attribute="Comment" context="Comment"/>
-      </context>
-      <context name="RegionComment" attribute="Region Marker" lineEndContext="#pop"/>
-      <context name="Comment" attribute="Comment" lineEndContext="#pop">
-        <DetectSpaces/>
-        <IncludeRules context="##Comments" />
-        <DetectIdentifier/>
-        <DetectChar char="\" attribute="Comment" context="BackslashComment" lookAhead="true"/>
-      </context>
-      <context name="BackslashComment" attribute="Comment" lineEndContext="#pop">
-        <keyword String="ResetHL" attribute="Comment" context="#pop!Normal Text"/>
-        <DetectChar char="\" attribute="Comment" context="#pop"/>
-      </context>
-    </contexts>
-
-    <itemDatas>
-      <itemData name="Normal Text" defStyleNum="dsNormal"/>
-      <itemData name="Option Text" defStyleNum="dsNormal" spellChecking="false"/>
-      <itemData name="Macro" defStyleNum="dsFunction" spellChecking="false"/>
-      <itemData name="Comment" defStyleNum="dsComment" spellChecking="false"/>
-      <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
-      <itemData name="Math" defStyleNum="dsSpecialString" spellChecking="false"/>
-      <!-- begin/end -->
-      <itemData name="Structure" defStyleNum="dsKeyword" spellChecking="false"/>
-      <itemData name="Builtin Macro" defStyleNum="dsBuiltIn" spellChecking="false"/>
-      <itemData name="Macro Mathmode" defStyleNum="dsSpecialChar" spellChecking="false"/>
-      <itemData name="Environment" defStyleNum="dsExtension" spellChecking="false"/>
-      <itemData name="Reference" defStyleNum="dsExtension" spellChecking="false"/>
-      <itemData name="Verbatim" defStyleNum="dsVerbatimString" spellChecking="false"/>
+<!DOCTYPE language
+[
+    <!ENTITY bullet "&#xd7;">
+    <!ENTITY envname "[a-zA-Z]+\*?">
+]>
+<language name="LaTeX" version="23" section="Markup" kateversion="5.79" priority="10" extensions="*.tex;*.ltx;*.dtx;*.sty;*.cls;*.bbx;*.cbx;*.lbx;*.tikz;*.pgf" mimetype="text/x-tex" casesensitive="1" author="Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Holger Danielsson (holger.danielsson@versanet.de)+Michel Ludwig (michel.ludwig@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)" license="LGPL" >
+  <highlighting>
+    <!-- NOTE: Keywords of kind "\something" do not need a delimiter before "\".
+         Using a DetectChar rule with lookAhead to detect "\" at the beginning
+         avoids the requirement of the delimiter in the keyword. -->
+    <list name="beginEnv">
+      <item>\begin</item>
+    </list>
+
+    <list name="endEnv">
+      <item>\end</item>
+    </list>
+
+    <list name="Label">
+      <item>\Autocite</item>
+      <item>\autocite</item>
+      <item>\autoref</item>
+      <item>\Cite</item>
+      <item>\cite</item>
+      <item>\Citeauthor</item>
+      <item>\citeauthor</item>
+      <item>\citep</item>
+      <item>\citet</item>
+      <item>\citetitle</item>
+      <item>\citeurl</item>
+      <item>\citeyear</item>
+      <item>\cref</item>
+      <item>\Cref</item>
+      <item>\cref*</item>
+      <item>\Cref*</item>
+      <item>\eqref</item>
+      <item>\Footcite</item>
+      <item>\footcite</item>
+      <item>\footfullcite</item>
+      <item>\fullcite</item>
+      <item>\label</item>
+      <item>\nocite</item>
+      <item>\pagecite</item>
+      <item>\pageref</item>
+      <item>\Parencite</item>
+      <item>\parencite</item>
+      <item>\ref</item>
+      <item>\subref</item>
+      <item>\subref*</item>
+      <item>\supercite</item>
+      <item>\Textcite</item>
+      <item>\textcite</item>
+      <item>\vpageref</item>
+      <item>\vref</item>
+    </list>
+
+    <list name="macroFancyLabel">
+      <item>\documentclass</item>
+      <item>\includegraphics</item>
+      <item>\include</item>
+      <item>\usepackage</item>
+      <item>\bibliography</item>
+      <item>\bibliographystyle</item>
+    </list>
+
+    <list name="FancyLabel">
+      <item>\cites</item>
+      <item>\Cites</item>
+      <item>\parencites</item>
+      <item>\Parencites</item>
+      <item>\autocites</item>
+      <item>\Autocites</item>
+      <item>\supercites</item>
+      <item>\footcites</item>
+      <item>\Footcites</item>
+    </list>
+
+    <list name="Sectioning">
+      <item>\part*</item>
+      <item>\part</item>
+      <item>\chapter*</item>
+      <item>\chapter</item>
+      <item>\section*</item>
+      <item>\section</item>
+      <item>\subsection*</item>
+      <item>\subsection</item>
+      <item>\subsubsection*</item>
+      <item>\subsubsection</item>
+      <item>\paragraph*</item>
+      <item>\paragraph</item>
+      <item>\subparagraph*</item>
+      <item>\subparagraph</item>
+    </list>
+
+    <list name="SpecialCommand">
+      <item>\column</item>
+      <item>\definecolor</item>
+      <item>\geometry</item>
+      <item>\hspace*</item>
+      <item>\hspace</item>
+      <item>\input</item>
+      <item>\newboolean</item>
+      <item>\rule</item>
+      <item>\setboolean</item>
+      <item>\setcounter</item>
+      <item>\setlength</item>
+      <item>\special</item>
+      <item>\textcolor</item>
+      <item>\vspace*</item>
+      <item>\vspace</item>
+    </list>
+
+    <list name="Footnoting">
+      <item>\footnote*</item>
+      <item>\footnote</item>
+    </list>
+
+    <list name="NewCommand">
+      <item>\renewcommand*</item>
+      <item>\renewcommand</item>
+      <item>\providecommand*</item>
+      <item>\providecommand</item>
+      <item>\newcommand*</item>
+      <item>\newcommand</item>
+    </list>
+
+    <list name="DefCommand">
+      <item>\edef</item>
+      <item>\gdef</item>
+      <item>\xdef</item>
+    </list>
+
+    <list name="MathModeEnsure">
+      <item>\ensuremath</item>
+    </list>
+
+    <list name="iffalse">
+      <item>\iffalse</item>
+    </list>
+
+    <list name="iffalseend">
+      <item>\fi</item>
+      <item>\else</item>
+    </list>
+
+    <list name="Verb">
+      <item>verb*</item>
+      <item>verb</item>
+      <item>Verb</item>
+    </list>
+
+    <list name="Lstinline">
+      <item>lstinline</item>
+    </list>
+
+    <list name="MintParam">
+      <item>mint</item>
+    </list>
+
+    <list name="ListingsEnv">
+      <item>lstlisting*</item>
+      <item>lstlisting</item>
+    </list>
+
+    <list name="MintedEnv">
+      <item>minted*</item>
+      <item>minted</item>
+    </list>
+
+    <list name="MintedCodeLang">
+      <!-- ABAP lexers -->
+      <item>abapcode*</item>
+      <item>abapcode</item>
+      <!-- ActionScript 2.0 lexers -->
+      <item>actionscriptcode*</item>
+      <item>actionscriptcode</item>
+      <item>ascode*</item>
+      <item>ascode</item>
+      <!-- Ada lexers -->
+      <item>adacode*</item>
+      <item>adacode</item>
+      <!-- Agda lexers -->
+      <item>agdacode*</item>
+      <item>agdacode</item>
+      <!-- Apache Configuration lexers -->
+      <item>apacheconfcode*</item>
+      <item>apacheconfcode</item>
+      <item>aconfcode*</item>
+      <item>aconfcode</item>
+      <item>apachecode*</item>
+      <item>apachecode</item>
+      <!-- AutoHotKey lexers -->
+      <item>autohotkeycode*</item>
+      <item>autohotkeycode</item>
+      <item>ahkcode*</item>
+      <item>ahkcode</item>
+      <!-- AWK lexers -->
+      <item>awkcode*</item>
+      <item>awkcode</item>
+      <item>gawkcode*</item>
+      <item>gawkcode</item>
+      <item>mawkcode*</item>
+      <item>mawkcode</item>
+      <item>nawkcode*</item>
+      <item>nawkcode</item>
+      <!-- Bash lexers -->
+      <item>bashcode*</item>
+      <item>bashcode</item>
+      <item>shcode*</item>
+      <item>shcode</item>
+      <item>kshcode*</item>
+      <item>kshcode</item>
+      <item>zshcode*</item>
+      <item>zshcode</item>
+      <item>shellcode*</item>
+      <item>shellcode</item>
+      <!-- BibTeX lexers -->
+      <item>bibtexcode*</item>
+      <item>bibtexcode</item>
+      <item>bibcode*</item>
+      <item>bibcode</item>
+      <!-- Boo lexers -->
+      <item>boocode*</item>
+      <item>boocode</item>
+      <!-- C lexers -->
+      <item>ccode*</item>
+      <item>ccode</item>
+      <!-- CMake lexers -->
+      <item>cmakecode*</item>
+      <item>cmakecode</item>
+      <!-- C# lexers -->
+      <item>csharpcode*</item>
+      <item>csharpcode</item>
+      <item>cscode*</item>
+      <item>cscode</item>
+      <!-- Clojure lexers -->
+      <item>clojurecode*</item>
+      <item>clojurecode</item>
+      <item>cljcode*</item>
+      <item>cljcode</item>
+      <!-- CoffeeScript lexers -->
+      <item>coffeecode*</item>
+      <item>coffeecode</item>
+      <!-- Common Lisp lexers -->
+      <item>commonlispcode*</item>
+      <item>commonlispcode</item>
+      <item>clcode*</item>
+      <item>clcode</item>
+      <item>lispcode*</item>
+      <item>lispcode</item>
+      <!-- C++ lexers -->
+      <item>cppcode*</item>
+      <item>cppcode</item>
+      <!-- CSS lexers -->
+      <item>csscode*</item>
+      <item>csscode</item>
+      <!-- D lexers -->
+      <item>dcode*</item>
+      <item>dcode</item>
+      <!-- Dart lexers -->
+      <item>dartcode*</item>
+      <item>dartcode</item>
+      <!-- Pascal lexers -->
+      <item>delphicode*</item>
+      <item>delphicode</item>
+      <item>pascode*</item>
+      <item>pascode</item>
+      <item>pascalcode*</item>
+      <item>pascalcode</item>
+      <item>objectpascalcode*</item>
+      <item>objectpascalcode</item>
+      <!-- Diff lexers -->
+      <item>diffcode*</item>
+      <item>diffcode</item>
+      <item>udiffcode*</item>
+      <item>udiffcode</item>
+      <!-- DTD lexers -->
+      <item>dtdcode*</item>
+      <item>dtdcode</item>
+      <!-- Eiffel lexers -->
+      <item>eiffelcode*</item>
+      <item>eiffelcode</item>
+      <!-- Elixir lexers -->
+      <item>elixircode*</item>
+      <item>elixircode</item>
+      <item>excode*</item>
+      <item>excode</item>
+      <item>exscode*</item>
+      <item>exscode</item>
+      <!-- Elm lexers -->
+      <item>elmcode*</item>
+      <item>elmcode</item>
+      <!-- Email lexers -->
+      <item>emailcode*</item>
+      <item>emailcode</item>
+      <item>emlcode*</item>
+      <item>emlcode</item>
+      <!-- Erlang lexers -->
+      <item>erlangcode*</item>
+      <item>erlangcode</item>
+      <!-- Fish lexers -->
+      <item>fishcode*</item>
+      <item>fishcode</item>
+      <item>fishshellcode*</item>
+      <item>fishshellcode</item>
+      <!-- ANS-Forth94 lexers -->
+      <item>forthcode*</item>
+      <item>forthcode</item>
+      <!-- Fortran (Fixed Format) lexers -->
+      <item>fortranfixedcode*</item>
+      <item>fortranfixedcode</item>
+      <!-- Fortran (Free Format) lexers -->
+      <item>fortrancode*</item>
+      <item>fortrancode</item>
+      <item>fcode*</item>
+      <item>fcode</item>
+      <!-- GAP lexers -->
+      <item>gapcode*</item>
+      <item>gapcode</item>
+      <!-- Godot lexers -->
+      <item>gdscriptcode*</item>
+      <item>gdscriptcode</item>
+      <item>gdcode*</item>
+      <item>gdcode</item>
+      <!-- GLSL lexers -->
+      <item>glslcode*</item>
+      <item>glslcode</item>
+      <!-- G-Code lexers -->
+      <item>gcodecode*</item>
+      <item>gcodecode</item>
+      <!-- Gnuplot lexers -->
+      <item>gnuplotcode*</item>
+      <item>gnuplotcode</item>
+      <!-- Go lexers -->
+      <item>gocode*</item>
+      <item>gocode</item>
+      <item>golangcode*</item>
+      <item>golangcode</item>
+      <!-- Groovy lexers -->
+      <item>groovycode*</item>
+      <item>groovycode</item>
+      <!-- Haml lexers -->
+      <item>hamlcode*</item>
+      <item>hamlcode</item>
+      <!-- Haskell lexers -->
+      <item>haskellcode*</item>
+      <item>haskellcode</item>
+      <item>hscode*</item>
+      <item>hscode</item>
+      <!-- Haxe lexers -->
+      <item>haxecode*</item>
+      <item>haxecode</item>
+      <item>hxslcode*</item>
+      <item>hxslcode</item>
+      <item>hxcode*</item>
+      <item>hxcode</item>
+      <!-- HTML lexers -->
+      <item>htmlcode*</item>
+      <item>htmlcode</item>
+      <!-- IDL lexers -->
+      <item>idlcode*</item>
+      <item>idlcode</item>
+      <!-- Idris lexers -->
+      <item>idriscode*</item>
+      <item>idriscode</item>
+      <item>idrcode*</item>
+      <item>idrcode</item>
+      <!-- Inform lexers -->
+      <item>informcode*</item>
+      <item>informcode</item>
+      <item>icode*</item>
+      <item>icode</item>
+      <!-- INI Files lexers -->
+      <item>inicode*</item>
+      <item>inicode</item>
+      <item>cfgcode*</item>
+      <item>cfgcode</item>
+      <item>dosinicode*</item>
+      <item>dosinicode</item>
+      <!-- J lexers -->
+      <item>jcode*</item>
+      <item>jcode</item>
+      <!-- Java lexers -->
+      <item>javacode*</item>
+      <item>javacode</item>
+      <!-- JavaScript lexers -->
+      <item>javascriptcode*</item>
+      <item>javascriptcode</item>
+      <item>jscode*</item>
+      <item>jscode</item>
+      <!-- JCL lexers -->
+      <item>jclcode*</item>
+      <item>jclcode</item>
+      <!-- JSON lexers -->
+      <item>jsoncode*</item>
+      <item>jsoncode</item>
+      <item>jsonobjectcode*</item>
+      <item>jsonobjectcode</item>
+      <!-- Julia lexers -->
+      <item>juliacode*</item>
+      <item>juliacode</item>
+      <item>jlcode*</item>
+      <item>jlcode</item>
+      <!-- Kconfig lexers -->
+      <item>kconfigcode*</item>
+      <item>kconfigcode</item>
+      <item>menuconfigcode*</item>
+      <item>menuconfigcode</item>
+      <item>linuxconfigcode*</item>
+      <item>linuxconfigcode</item>
+      <item>kernelconfigcode*</item>
+      <item>kernelconfigcode</item>
+      <!-- Kotlin lexers -->
+      <item>kotlincode*</item>
+      <item>kotlincode</item>
+      <!-- LSL lexers -->
+      <item>lslcode*</item>
+      <item>lslcode</item>
+      <!-- LESSCSS lexers -->
+      <item>lesscode*</item>
+      <item>lesscode</item>
+      <!-- LilyPond lexers -->
+      <item>lilypondcode*</item>
+      <item>lilypondcode</item>
+      <!-- Literate Haskell lexers -->
+      <item>literatehaskellcode*</item>
+      <item>literatehaskellcode</item>
+      <item>lhaskellcode*</item>
+      <item>lhaskellcode</item>
+      <item>lhscode*</item>
+      <item>lhscode</item>
+      <!-- LLVM lexers -->
+      <item>llvmcode*</item>
+      <item>llvmcode</item>
+      <!-- Logtalk lexers -->
+      <item>logtalkcode*</item>
+      <item>logtalkcode</item>
+      <!-- Lua lexers -->
+      <item>luacode*</item>
+      <item>luacode</item>
+      <!-- Makefile lexers -->
+      <item>makecode*</item>
+      <item>makecode</item>
+      <item>makefilecode*</item>
+      <item>makefilecode</item>
+      <item>mfcode*</item>
+      <item>mfcode</item>
+      <item>bsdmakecode*</item>
+      <item>bsdmakecode</item>
+      <!-- Mako lexers -->
+      <item>makocode*</item>
+      <item>makocode</item>
+      <!-- Markdown lexers -->
+      <item>markdowncode*</item>
+      <item>markdowncode</item>
+      <item>mdcode*</item>
+      <item>mdcode</item>
+      <!-- Mason lexers -->
+      <item>masoncode*</item>
+      <item>masoncode</item>
+      <!-- Mathematica lexers -->
+      <item>mathematicacode*</item>
+      <item>mathematicacode</item>
+      <item>mmacode*</item>
+      <item>mmacode</item>
+      <item>nbcode*</item>
+      <item>nbcode</item>
+      <!-- Matlab lexers -->
+      <item>matlabcode*</item>
+      <item>matlabcode</item>
+      <!-- Maxima lexers -->
+      <item>maximacode*</item>
+      <item>maximacode</item>
+      <item>macsymacode*</item>
+      <item>macsymacode</item>
+      <!-- Meson lexers -->
+      <item>mesoncode*</item>
+      <item>mesoncode</item>
+      <item>mesonbuildcode*</item>
+      <item>mesonbuildcode</item>
+      <!-- Modelica lexers -->
+      <item>modelicacode*</item>
+      <item>modelicacode</item>
+      <!-- Modula-2 lexers -->
+      <item>modulacode*</item>
+      <item>modulacode</item>
+      <item>mcode*</item>
+      <item>mcode</item>
+      <!-- SQL (MySQL) lexers -->
+      <item>mysqlcode*</item>
+      <item>mysqlcode</item>
+      <!-- NSIS lexers -->
+      <item>nsiscode*</item>
+      <item>nsiscode</item>
+      <item>nsicode*</item>
+      <item>nsicode</item>
+      <item>nshcode*</item>
+      <item>nshcode</item>
+      <!-- Intel x86 (NASM) lexers -->
+      <item>nasmcode*</item>
+      <item>nasmcode</item>
+      <!-- Nemerle lexers -->
+      <item>nemerlecode*</item>
+      <item>nemerlecode</item>
+      <!-- nesC lexers -->
+      <item>nesccode*</item>
+      <item>nesccode</item>
+      <!-- Nim lexers -->
+      <item>nimrodcode*</item>
+      <item>nimrodcode</item>
+      <item>nimcode*</item>
+      <item>nimcode</item>
+      <!-- Nix lexers -->
+      <item>nixoscode*</item>
+      <item>nixoscode</item>
+      <item>nixcode*</item>
+      <item>nixcode</item>
+      <!-- Objective-C lexers -->
+      <item>objectiveccode*</item>
+      <item>objectiveccode</item>
+      <item>objccode*</item>
+      <item>objccode</item>
+      <!-- Objective-C++ lexers -->
+      <item>objectivecppcode*</item>
+      <item>objectivecppcode</item>
+      <item>objcppcode*</item>
+      <item>objcppcode</item>
+      <!-- Objective Caml lexers -->
+      <item>ocamlcode*</item>
+      <item>ocamlcode</item>
+      <!-- Octave lexers -->
+      <item>octavecode*</item>
+      <item>octavecode</item>
+      <!-- Perl lexers -->
+      <item>perlcode*</item>
+      <item>perlcode</item>
+      <item>plcode*</item>
+      <item>plcode</item>
+      <!-- PHP/PHP lexers -->
+      <item>phpcode*</item>
+      <item>phpcode</item>
+      <!-- Pig lexers -->
+      <item>pigcode*</item>
+      <item>pigcode</item>
+      <!-- Pike lexers -->
+      <item>pikecode*</item>
+      <item>pikecode</item>
+      <!-- Pony lexers -->
+      <item>ponycode*</item>
+      <item>ponycode</item>
+      <!-- PostScript lexers -->
+      <item>postscriptcode*</item>
+      <item>postscriptcode</item>
+      <item>postscrcode*</item>
+      <item>postscrcode</item>
+      <!-- POV-Ray lexers -->
+      <item>povcode*</item>
+      <item>povcode</item>
+      <!-- PowerShell lexers -->
+      <item>powershellcode*</item>
+      <item>powershellcode</item>
+      <item>pwshcode*</item>
+      <item>pwshcode</item>
+      <item>poshcode*</item>
+      <item>poshcode</item>
+      <item>pscode*</item>
+      <item>pscode</item>
+      <item>psmcode*</item>
+      <item>psmcode</item>
+      <!-- Praat lexers -->
+      <item>praatcode*</item>
+      <item>praatcode</item>
+      <!-- Prolog lexers -->
+      <item>prologcode*</item>
+      <item>prologcode</item>
+      <!-- Protobuf lexers -->
+      <item>protobufcode*</item>
+      <item>protobufcode</item>
+      <item>protocode*</item>
+      <item>protocode</item>
+      <!-- Pug lexers -->
+      <item>pugcode*</item>
+      <item>pugcode</item>
+      <item>jadecode*</item>
+      <item>jadecode</item>
+      <!-- Puppet lexers -->
+      <item>puppetcode*</item>
+      <item>puppetcode</item>
+      <!-- Python lexers -->
+      <item>pythoncode*</item>
+      <item>pythoncode</item>
+      <item>pycode*</item>
+      <item>pycode</item>
+      <item>sagecode*</item>
+      <item>sagecode</item>
+      <!-- QML lexers -->
+      <item>qmlcode*</item>
+      <item>qmlcode</item>
+      <item>qbscode*</item>
+      <item>qbscode</item>
+      <!-- RelaxNG-Compact lexers -->
+      <item>rngcompactcode*</item>
+      <item>rngcompactcode</item>
+      <item>rnccode*</item>
+      <item>rnccode</item>
+      <!-- RPM Spec lexers -->
+      <item>speccode*</item>
+      <item>speccode</item>
+      <!-- Racket lexers -->
+      <item>racketcode*</item>
+      <item>racketcode</item>
+      <item>rktcode*</item>
+      <item>rktcode</item>
+      <!-- REXX lexers -->
+      <item>rexxcode*</item>
+      <item>rexxcode</item>
+      <item>arexxcode*</item>
+      <item>arexxcode</item>
+      <!-- Ruby/Rails/RHTML lexers -->
+      <item>rhtmlcode*</item>
+      <item>rhtmlcode</item>
+      <item>htmlerbcode*</item>
+      <item>htmlerbcode</item>
+      <item>htmlrubycode*</item>
+      <item>htmlrubycode</item>
+      <!-- reStructuredText lexers -->
+      <item>rstcode*</item>
+      <item>rstcode</item>
+      <item>restcode*</item>
+      <item>restcode</item>
+      <!-- Ruby lexers -->
+      <item>rubycode*</item>
+      <item>rubycode</item>
+      <item>rbcode*</item>
+      <item>rbcode</item>
+      <item>dubycode*</item>
+      <item>dubycode</item>
+      <!-- Rust lexers -->
+      <item>rustcode*</item>
+      <item>rustcode</item>
+      <item>rscode*</item>
+      <item>rscode</item>
+      <!-- SML lexers -->
+      <item>smlcode*</item>
+      <item>smlcode</item>
+      <!-- SASS lexers -->
+      <item>sasscode*</item>
+      <item>sasscode</item>
+      <!-- Scala lexers -->
+      <item>scalacode*</item>
+      <item>scalacode</item>
+      <!-- Scheme lexers -->
+      <item>schemecode*</item>
+      <item>schemecode</item>
+      <item>scmcode*</item>
+      <item>scmcode</item>
+      <!-- scilab lexers -->
+      <item>scilabcode*</item>
+      <item>scilabcode</item>
+      <!-- SCSS lexers -->
+      <item>scsscode*</item>
+      <item>scsscode</item>
+      <!-- sed lexers -->
+      <item>sedcode*</item>
+      <item>sedcode</item>
+      <item>gsedcode*</item>
+      <item>gsedcode</item>
+      <item>ssedcode*</item>
+      <item>ssedcode</item>
+      <!-- Sieve lexers -->
+      <item>sievecode*</item>
+      <item>sievecode</item>
+      <!-- Smali lexers -->
+      <item>smalicode*</item>
+      <item>smalicode</item>
+      <!-- Solidity lexers -->
+      <item>soliditycode*</item>
+      <item>soliditycode</item>
+      <!-- Spice lexers -->
+      <item>spicecode*</item>
+      <item>spicecode</item>
+      <item>spicelangcode*</item>
+      <item>spicelangcode</item>
+      <!-- SQL lexers -->
+      <item>sqlcode*</item>
+      <item>sqlcode</item>
+      <!-- Stan lexers -->
+      <item>stancode*</item>
+      <item>stancode</item>
+      <!-- Stata lexers -->
+      <item>statacode*</item>
+      <item>statacode</item>
+      <item>docode*</item>
+      <item>docode</item>
+      <!-- Swift lexers -->
+      <item>swiftcode*</item>
+      <item>swiftcode</item>
+      <!-- SystemVerilog lexers -->
+      <item>systemverilogcode*</item>
+      <item>systemverilogcode</item>
+      <item>svcode*</item>
+      <item>svcode</item>
+      <!-- TOML lexers -->
+      <item>tomlcode*</item>
+      <item>tomlcode</item>
+      <!-- TADS 3 lexers -->
+      <item>tadscode*</item>
+      <item>tadscode</item>
+      <!-- Tcl/Tk lexers -->
+      <item>tclcode*</item>
+      <item>tclcode</item>
+      <!-- Tcsh lexers -->
+      <item>tcshcode*</item>
+      <item>tcshcode</item>
+      <item>cshcode*</item>
+      <item>cshcode</item>
+      <!-- Terraform lexers -->
+      <item>terraformcode*</item>
+      <item>terraformcode</item>
+      <item>tfcode*</item>
+      <item>tfcode</item>
+      <!-- LaTeX lexers -->
+      <item>texcode*</item>
+      <item>texcode</item>
+      <item>latexcode*</item>
+      <item>latexcode</item>
+      <!-- Todo.txt lexers -->
+      <item>todotxtcode*</item>
+      <item>todotxtcode</item>
+      <!-- TypeScript lexers -->
+      <item>typescriptcode*</item>
+      <item>typescriptcode</item>
+      <item>tscode*</item>
+      <item>tscode</item>
+      <!-- Vala lexers -->
+      <item>valacode*</item>
+      <item>valacode</item>
+      <item>vapicode*</item>
+      <item>vapicode</item>
+      <!-- Velocity lexers -->
+      <item>velocitycode*</item>
+      <item>velocitycode</item>
+      <!-- Verilog lexers -->
+      <item>verilogcode*</item>
+      <item>verilogcode</item>
+      <item>vcode*</item>
+      <item>vcode</item>
+      <!-- VHDL lexers -->
+      <item>vhdlcode*</item>
+      <item>vhdlcode</item>
+      <!-- XML lexers -->
+      <item>xmlcode*</item>
+      <item>xmlcode</item>
+      <!-- x.org Configuration lexers -->
+      <item>xorgconfcode*</item>
+      <item>xorgconfcode</item>
+      <!-- xslt lexers -->
+      <item>xsltcode*</item>
+      <item>xsltcode</item>
+      <!-- YAML lexers -->
+      <item>yamlcode*</item>
+      <item>yamlcode</item>
+      <!-- YANG lexers -->
+      <item>yangcode*</item>
+      <item>yangcode</item>
+      <!-- Mako lexers -->
+    </list>
+
+    <list name="VerbatimEnv">
+      <item>Verbatim*</item>
+      <item>Verbatim</item>
+      <item>BVerbatim*</item>
+      <item>BVerbatim</item>
+      <item>LVerbatim*</item>
+      <item>LVerbatim</item>
+      <item>verbatim*</item>
+      <item>verbatim</item>
+      <item>boxedverbatim*</item>
+      <item>boxedverbatim</item>
+    </list>
+
+    <list name="CommentEnv">
+      <item>comment*</item>
+      <item>comment</item>
+    </list>
+
+    <list name="MathEnvParam">
+      <item>alignat*</item>
+      <item>alignat</item>
+      <item>xalignat*</item>
+      <item>xalignat</item>
+      <item>xxalignat*</item>
+      <item>xxalignat</item>
+    </list>
+
+    <list name="MathEnv">
+      <item>Bmatrix*</item>
+      <item>Bmatrix</item>
+      <item>IEEEeqnarray*</item>
+      <item>IEEEeqnarray</item>
+      <item>IEEEeqnarraybox*</item>
+      <item>IEEEeqnarraybox</item>
+      <item>Vmatrix*</item>
+      <item>Vmatrix</item>
+      <item>align*</item>
+      <item>align</item>
+      <item>bmatrix*</item>
+      <item>bmatrix</item>
+      <item>cases*</item>
+      <item>cases</item>
+      <item>displaymath*</item>
+      <item>displaymath</item>
+      <item>eqnarray*</item>
+      <item>eqnarray</item>
+      <item>equation*</item>
+      <item>equation</item>
+      <item>flalign*</item>
+      <item>flalign</item>
+      <item>gather*</item>
+      <item>gather</item>
+      <item>math*</item>
+      <item>math</item>
+      <item>multline*</item>
+      <item>multline</item>
+      <item>pmatrix*</item>
+      <item>pmatrix</item>
+      <item>smallmatrix*</item>
+      <item>smallmatrix</item>
+      <item>subeqnarray*</item>
+      <item>subeqnarray</item>
+      <item>vmatrix*</item>
+      <item>vmatrix</item>
+    </list>
+
+    <list name="TabEnv">
+      <item>tabularx*</item>
+      <item>tabularx</item>
+      <item>tabular*</item>
+      <item>tabular</item>
+      <item>supertabular*</item>
+      <item>supertabular</item>
+      <item>mpsupertabular*</item>
+      <item>mpsupertabular</item>
+      <item>xtabular*</item>
+      <item>xtabular</item>
+      <item>mpxtabular*</item>
+      <item>mpxtabular</item>
+      <item>longtable*</item>
+      <item>longtable</item>
+    </list>
+
+    <list name="TabuEnv">
+      <item>tabu*</item>
+      <item>tabu</item>
+      <item>longtabu*</item>
+      <item>longtabu</item>
+    </list>
+
+    <list name="MathModeText">
+      <item>\text</item>
+      <item>\textit</item>
+      <item>\textbf</item>
+      <item>\textmd</item>
+      <item>\textsl</item>
+      <item>\textsc</item>
+      <item>\textrm</item>
+      <item>\textsf</item>
+      <item>\texttt</item>
+      <item>\textup</item>
+      <item>\textlf</item>
+      <item>\textnormal</item>
+      <item>\shortintertext</item>
+      <item>\intertext</item>
+      <item>\mbox</item>
+      <item>\emph</item>
+    </list>
+
+    <list name="ResetHL">
+      <item>\KileResetHL</item>
+      <item>\KateResetHL</item>
+    </list>
+
+    <contexts>
+      <!-- Normal text -->
+      <context name="Normal Text" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="\" attribute="Normal Text" context="LatexMacro" lookAhead="true"/>
+        <DetectChar char="$" attribute="Math" context="MathModeTex"/>
+        <RegExpr String="^&lt;&lt;.*&gt;&gt;=" attribute="Normal Text" context="NoWeb" column="0"/>
+        <IncludeRules context="FindComments"/>
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+      </context>
+
+      <context name="LatexMacro" attribute="Normal Text" lineEndContext="#pop">
+        <WordDetect String="\begin" attribute="Structure" context="#pop!FindBeginEnvironment" beginRegion="block" additionalDeliminator="\"/>
+        <WordDetect String="\end" attribute="Structure" context="#pop!FindEndEnvironment" additionalDeliminator="\"/>
+        <keyword String="Label" attribute="Structure" context="#pop!Label"/>
+        <keyword String="macroFancyLabel" attribute="Builtin Macro" context="#pop!FancyLabel"/>
+        <keyword String="FancyLabel" attribute="Structure" context="#pop!FancyLabel"/>
+        <keyword String="Sectioning" attribute="Structure" context="#pop!Sectioning"/>
+        <keyword String="SpecialCommand" attribute="Macro" context="#pop!SpecialCommand"/>
+        <keyword String="Footnoting" attribute="Macro" context="#pop!Footnoting"/>
+        <keyword String="NewCommand" attribute="Macro" context="#pop!NewCommand"/>
+        <keyword String="DefCommand" attribute="Macro" context="#pop!DefCommand"/>
+        <Detect2Chars char="\" char1="(" attribute="Math" context="#pop!MathModeLatex"/>
+        <Detect2Chars char="\" char1="[" attribute="Math" context="#pop!MathModeLatexEquation" beginRegion="mathMode"/>
+        <keyword String="MathModeEnsure" attribute="Math" context="#pop!MathModeEnsure"/>
+        <keyword String="iffalse" attribute="Comment" context="#pop!Multiline Comment"/>
+        <DetectChar char="\" attribute="Macro" context="#pop!ContrSeq"/>
+      </context>
+
+      <!-- NoWeb -->
+      <context name="NoWeb" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr String="^@\s*$" attribute="Normal Text" context="#pop" column="0"/>
+      </context>
+
+      <!-- LaTeX sectioning commands -->
+      <context name="Sectioning" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <RangeDetect char="[" char1="]" attribute="Normal Text" context="#stay"/>
+        <DetectChar char="{" attribute="Normal Text" context="#pop!SectioningInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="SectioningInside" attribute="Sectioning Text" lineEndContext="#stay">
+        <DetectChar char="{" attribute="Normal Text" context="SectioningInside"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
+        <Detect2Chars char="\" char1="(" attribute="Sectioning Math" context="SectioningMathMode" />
+        <DetectChar char="\" attribute="Sectioning Macro" context="SectioningContrSeq"/>
+        <DetectChar char="$" attribute="Sectioning Math" context="SectioningMathMode" />
+        <IncludeRules context="FindComments"/>
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+      </context>
+      <context name="SectioningContrSeq" attribute="Macro" lineEndContext="#pop">
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="[a-zA-Z]+(?:\+?|\*{0,3})|." attribute="Sectioning Macro" context="#pop" />
+      </context>
+      <context name="SectioningMathMode" attribute="Sectioning Math" lineEndContext="#stay">
+        <Detect2Chars char="$" char1="$" attribute="Error" context="#stay" />
+        <DetectChar char="$" attribute="Sectioning Math" context="#pop" />
+        <Detect2Chars char="\" char1=")" attribute="Sectioning Math" context="#pop" />
+        <Detect2Chars char="\" char1="]" attribute="Error" context="#stay" />
+        <DetectChar char="\" attribute="Sectioning Macro Mathmode" context="SectioningMathContrSeq"/>
+        <IncludeRules context="FindComments"/>
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+      </context>
+      <context name="SectioningMathContrSeq" attribute="Sectioning Macro Mathmode" lineEndContext="#pop">
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="&envname;|." attribute="Sectioning Macro Mathmode" context="#pop" />
+      </context>
+
+      <!-- LaTeX Footnote commands -->
+      <context name="Footnoting" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <RangeDetect char="[" char1="]" attribute="Normal Text" context="#stay"/>
+        <DetectChar char="{" attribute="Normal Text" context="FootnotingInside"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="FootnotingInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="{" attribute="Normal Text" context="FootnotingInside"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
+        <IncludeRules context="Normal Text"/>
+      </context>
+
+      <!-- LaTeX commands \newcommand and \renewcommand -->
+      <context name="NewCommand" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <DetectChar char="{" attribute="Normal Text" context="LabelParameter"/>
+        <RegExpr String="(?:\[\d\](?:\[[^\]]*\])?)?\{" attribute="Normal Text" context="LabelParameter"/>
+        <DetectChar char="}" attribute="Error" context="#pop"/>
+      </context>
+
+      <!-- LaTeX command \def -->
+      <context name="DefCommand" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <RegExpr String="\\[a-zA-Z]+[^\{]*\{" attribute="Normal Text" context="#pop!CommandParameter"/>
+        <DetectChar char="}" attribute="Error" context="#pop"/>
+      </context>
+
+      <!-- parse command argument -->
+      <context name="CommandParameter" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="{" attribute="Normal Text" context="CommandParameter"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
+        <RegExpr String="\\." attribute="Normal Text" context="#stay"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+
+      <!-- LaTeX command in text mode -->
+      <context name="ContrSeq" attribute="Macro" lineEndContext="#pop">
+        <keyword String="Verb" attribute="Macro" context="Verb"/>
+        <keyword String="Lstinline" attribute="Macro" context="Lstinline"/>
+        <keyword String="MintParam" attribute="Macro" context="MintParam"/>
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="[a-zA-Z@]+(?:\+?|\*{0,3})|." attribute="Macro" context="#pop" />
+      </context>
+
+      <!-- \mint command with parameter-->
+      <context name="MintParam" attribute="Normal Text" lineEndContext="#stay">
+        <Detect2Chars char="}" char1="[" attribute="Normal Text" context="#stay"/>
+        <AnyChar String="}]" attribute="Normal Text" context="Verb"/>
+      </context>
+
+      <!-- verb command -->
+      <context name="Verb" attribute="Verbatim" lineEndContext="#pop#pop" >
+        <RegExpr String="(.)" attribute="Normal Text" context="VerbEnd" />
+      </context>
+      <context name="VerbEnd" attribute="Verbatim" lineEndContext="#pop#pop#pop" dynamic="true" >
+        <StringDetect String="%1" attribute="Normal Text" context="#pop#pop#pop" dynamic="true" />
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="[^%1\xd7]*" attribute="Verbatim" context="#stay" dynamic="true" />
+      </context>
+
+      <!-- lstinline command, different from verb as it takes options -->
+      <context name="Lstinline" attribute="Verbatim" lineEndContext="#pop#pop" >
+        <DetectSpaces/>
+        <DetectChar char="[" attribute="Normal Text" context="FancyLabelOption"/>
+        <DetectChar char="{" attribute="Normal Text" context="LstinlineParameter"/>
+        <RegExpr String="(.)" attribute="Normal Text" context="LstinlineEnd" />
+      </context>
+      <context name="LstinlineEnd" attribute="Verbatim" lineEndContext="#pop#pop#pop" dynamic="true" >
+        <!-- TODO DetectChar segfault -->
+        <StringDetect String="%1" attribute="Normal Text" context="#pop#pop#pop" dynamic="true" />
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="[^%1\xd7]*" attribute="Verbatim" context="#stay" dynamic="true" />
+      </context>
+      <context name="LstinlineParameter" attribute="Verbatim" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop"/>
+      </context>
+
+      <!-- label -->
+      <context name="Label" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="{" attribute="Normal Text" context="LabelParameter"/>
+        <DetectChar char="[" attribute="Normal Text" context="LabelOption"/>
+      </context>
+
+      <context name="LabelOption" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <Detect2Chars char="\" char1="(" attribute="Math" context="MathModeLatex"/>
+        <DetectChar char="\" attribute="Macro" context="ContrSeq"/>
+        <DetectChar char="$" attribute="Math" context="MathModeTex" />
+        <IncludeRules context="FindComments"/>
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+        <DetectChar char="]" attribute="Normal Text" context="#pop"/>
+      </context>
+
+      <context name="LabelParameter" attribute="Reference" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop"/>
+      </context>
+
+      <!-- labels from biblatex commands -->
+      <context name="FancyLabel" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <DetectChar char="{" attribute="Normal Text" context="FancyLabelParameter"/>
+        <DetectChar char="[" attribute="Normal Text" context="FancyLabelOption"/>
+        <DetectChar char="(" attribute="Normal Text" context="FancyLabelRoundBrackets"/>
+      </context>
+
+      <context name="FancyLabelParameter" attribute="Environment" lineEndContext="#stay">
+        <DetectSpaces/>
+        <Detect2Chars char="\" char1="(" attribute="Math" context="MathModeLatex"/>
+        <DetectChar char="\" attribute="Macro" context="ContrSeq"/>
+        <DetectChar char="$" attribute="Math" context="MathModeTex" />
+        <IncludeRules context="FindComments"/>
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
+        <DetectChar char="{" attribute="Normal Text" context="FancyLabelParameter"/>
+      </context>
+
+      <context name="FancyLabelOption" attribute="Option Text" lineEndContext="#stay">
+        <IncludeRules context="LabelOption"/>
+      </context>
+
+      <context name="FancyLabelRoundBrackets" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <Detect2Chars char="\" char1="(" attribute="Math" context="MathModeLatex" />
+        <DetectChar char="\" attribute="Macro" context="ContrSeq"/>
+        <DetectChar char="$" attribute="Math" context="MathModeTex" />
+        <IncludeRules context="FindComments"/>
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+        <DetectChar char=")" attribute="Normal Text" context="#pop"/>
+      </context>
+
+      <!-- Special commands -->
+      <context name="SpecialCommand" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <DetectChar char="{" attribute="Normal Text" context="SpecialCommandParameterOption"/>
+      </context>
+
+      <context name="SpecialCommandParameterOption" attribute="Option Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <Detect2Chars char="\" char1="(" attribute="Math" context="MathModeLatex" />
+        <DetectChar char="\" attribute="Macro" context="ContrSeq"/>
+        <DetectChar char="$" attribute="Math" context="MathModeTex" />
+        <IncludeRules context="FindComments"/>
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
+        <DetectChar char="{" attribute="Normal Text" context="SpecialCommandParameterOption"/>
+      </context>
+
+      <!-- end of an environment -->
+      <context name="FindEndEnvironment" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="{" attribute="Normal Text" context="EndEnvironment"/>
+        <RegExpr String="\S" attribute="Normal Text" context="#pop"/>
+      </context>
+
+      <context name="EndEnvironment" attribute="Environment" lineEndContext="#stay">
+        <RegExpr String="&envname;" attribute="Environment" context="LatexEnvEnd"/>
+        <RegExpr String="." attribute="Error" context="#pop#pop"/>
+      </context>
+
+      <context name="LatexEnvEnd" attribute="Environment" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Normal Text" endRegion="block" context="#pop#pop#pop"/>
+        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
+      </context>
+
+      <!-- start of an environment -->
+      <context name="FindBeginEnvironment" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="{" attribute="Normal Text" context="BeginEnvironment"/>
+        <RegExpr String="." attribute="Normal Text" context="#pop"/>
+      </context>
+
+      <!-- filter the environment name and check the type -->
+      <context name="BeginEnvironment" attribute="Environment" lineEndContext="#stay">
+        <keyword String="ListingsEnv" attribute="Environment" context="ListingsEnv"/>
+        <keyword String="MintedEnv" attribute="Environment" context="MintedEnv"/>
+        <keyword String="VerbatimEnv" attribute="Environment" context="VerbatimEnv" lookAhead="true"/>
+        <keyword String="CommentEnv" attribute="Environment" context="CommentEnv"/>
+        <keyword String="MathEnvParam" attribute="Environment" context="MathEnvWithParam"/>
+        <keyword String="MathEnv" attribute="Environment" context="MathEnv"/>
+        <keyword String="TabEnv" attribute="Environment" context="TabEnv"/>
+        <keyword String="TabuEnv" attribute="Environment" context="TabuEnv"/>
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="(\w+)code\b" attribute="Environment" context="MintedCodeEnv" lookAhead="true"/>
+        <RegExpr String="&envname;" attribute="Environment" context="LatexEnv"/>
+        <RegExpr String="." attribute="Error" context="#pop"/>
+      </context>
+
+      <!-- environment type 1: normal -->
+      <context name="LatexEnv" attribute="Error" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop"/>
+      </context>
+
+      <context name="VerbatimEnv" attribute="Environment" lineEndContext="#stay">
+        <WordDetect String="verbatim*" attribute="Environment" context="VerbatimEnv1"/>
+        <WordDetect String="verbatim" attribute="Environment" context="VerbatimEnv1"/>
+        <WordDetect String="boxedverbatim*" attribute="Environment" context="VerbatimEnv2"/>
+        <WordDetect String="boxedverbatim" attribute="Environment" context="VerbatimEnv2"/>
+
+        <WordDetect String="Verbatim*" attribute="Environment" context="VerbatimEnv3"/>
+        <WordDetect String="Verbatim" attribute="Environment" context="VerbatimEnv3"/>
+        <WordDetect String="BVerbatim*" attribute="Environment" context="VerbatimEnv4"/>
+        <WordDetect String="BVerbatim" attribute="Environment" context="VerbatimEnv4"/>
+        <WordDetect String="LVerbatim*" attribute="Environment" context="VerbatimEnv5"/>
+        <WordDetect String="LVerbatim" attribute="Environment" context="VerbatimEnv5"/>
+      </context>
+
+      <!-- environment type 2: verbatim without parameter -->
+      <context name="VerbatimEnv1" attribute="Error" lineEndContext="#stay" fallthroughContext="#pop#pop#pop#pop">
+        <DetectChar char="}" attribute="Normal Text" context="Verbatim1"/>
+      </context>
+      <context name="Verbatim1" attribute="Verbatim" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="\\end(?=\s*\{verbatim\*?\})" attribute="Structure" context="VerbFindEnd"/>
+      </context>
+
+      <context name="VerbatimEnv2" attribute="Error" lineEndContext="#stay" fallthroughContext="#pop#pop#pop#pop">
+        <DetectChar char="}" attribute="Normal Text" context="Verbatim2"/>
+      </context>
+      <context name="Verbatim2" attribute="Verbatim" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="\\end(?=\s*\{boxedverbatim\*?\})" attribute="Structure" context="VerbFindEnd"/>
+      </context>
+
+      <!-- environment type 3: verbatim with optional parameter -->
+      <context name="VerbatimEnv3" attribute="Error" lineEndContext="#stay" fallthroughContext="#pop#pop#pop#pop">
+        <DetectChar char="}" attribute="Normal Text" context="VerbatimEnv3Param"/>
+      </context>
+      <context name="VerbatimEnv3Param" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!Verbatim3">
+        <DetectSpaces/>
+        <RangeDetect char="[" char1="]" attribute="Normal Text" context="#pop!Verbatim3"/>
+      </context>
+      <context name="Verbatim3" attribute="Verbatim" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="\\end(?=\s*\{Verbatim\*?\})" attribute="Structure" context="VerbFindEnd"/>
+      </context>
+
+      <context name="VerbatimEnv4" attribute="Error" lineEndContext="#stay" fallthroughContext="#pop#pop#pop#pop">
+        <DetectChar char="}" attribute="Normal Text" context="VerbatimEnv4Param"/>
+      </context>
+      <context name="VerbatimEnv4Param" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!Verbatim4">
+        <DetectSpaces/>
+        <RangeDetect char="[" char1="]" attribute="Normal Text" context="#pop!Verbatim4"/>
+      </context>
+      <context name="Verbatim4" attribute="Verbatim" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="\\end(?=\s*\{BVerbatim\*?\})" attribute="Structure" context="VerbFindEnd"/>
+      </context>
+
+      <context name="VerbatimEnv5" attribute="Error" lineEndContext="#stay" fallthroughContext="#pop#pop#pop#pop">
+        <DetectChar char="}" attribute="Normal Text" context="VerbatimEnv5Param"/>
+      </context>
+      <context name="VerbatimEnv5Param" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!Verbatim5">
+        <DetectSpaces/>
+        <RangeDetect char="[" char1="]" attribute="Normal Text" context="#pop!Verbatim5"/>
+      </context>
+      <context name="Verbatim5" attribute="Verbatim" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="\\end(?=\s*\{LVerbatim\*?\})" attribute="Structure" context="VerbFindEnd"/>
+      </context>
+
+      <!-- environment type 4: listings environment with optional parameter and HL switching-->
+      <context name="ListingsEnv" attribute="Environment" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Normal Text" context="#pop!ListingsEnvParam"/>
+        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
+      </context>
+      <context name="ListingsEnvParam" attribute="Normal Text" lineEndContext="#pop!UnknownHighlighting" fallthroughContext="#pop!UnknownHighlighting">
+        <DetectSpaces/>
+        <DetectChar char="[" attribute="Normal Text" context="#pop!ListingsEnvParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="ListingsEnvParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr String="\s*language\s*=\s*(?=[^],])" attribute="Normal Text" context="HighlightingSelector"/>
+        <DetectChar char="]" attribute="Normal Text" context="ListingsEnvParamEnd"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="ListingsEnvParamEnd" attribute="Normal Text" lineEndContext="#pop#pop!UnknownHighlighting" fallthroughContext="#pop#pop!UnknownHighlighting">
+        <DetectSpaces/>
+        <IncludeRules context="FindComments"/>
+      </context>
+
+      <!-- environment type 5: minted environment with optional and HL switching -->
+      <context name="MintedEnv" attribute="Environment" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Normal Text" context="#pop!MintedEnvParam"/>
+        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
+      </context>
+      <context name="MintedEnvParam" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="[" attribute="Normal Text" context="#pop!MintedEnvParamInside"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingSelector"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="MintedEnvParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="]" attribute="Normal Text" context="#pop!MintedEnvLang"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="MintedEnvLang" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingSelector"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+
+      <!-- environment type 5: minted environment created with newminted -->
+      <context name="MintedCodeEnv" attribute="Environment" lineEndContext="#stay" fallthroughContext="#pop#pop#pop#pop">
+        <WordDetect String="abapcode*" attribute="Environment" context="HighlightingABAPCodeEnvS"/>
+        <WordDetect String="abapcode" attribute="Environment" context="HighlightingABAPCodeEnv"/>
+        <WordDetect String="actionscriptcode*" attribute="Environment" context="HighlightingActionScript 2.0CodeEnvS"/>
+        <WordDetect String="actionscriptcode" attribute="Environment" context="HighlightingActionScript 2.0CodeEnv"/>
+        <WordDetect String="ascode*" attribute="Environment" context="HighlightingActionScript 2.0CodeEnvS"/>
+        <WordDetect String="ascode" attribute="Environment" context="HighlightingActionScript 2.0CodeEnv"/>
+        <WordDetect String="adacode*" attribute="Environment" context="HighlightingAdaCodeEnvS"/>
+        <WordDetect String="adacode" attribute="Environment" context="HighlightingAdaCodeEnv"/>
+        <WordDetect String="agdacode*" attribute="Environment" context="HighlightingAgdaCodeEnvS"/>
+        <WordDetect String="agdacode" attribute="Environment" context="HighlightingAgdaCodeEnv"/>
+        <WordDetect String="apacheconfcode*" attribute="Environment" context="HighlightingApache ConfigurationCodeEnvS"/>
+        <WordDetect String="apacheconfcode" attribute="Environment" context="HighlightingApache ConfigurationCodeEnv"/>
+        <WordDetect String="aconfcode*" attribute="Environment" context="HighlightingApache ConfigurationCodeEnvS"/>
+        <WordDetect String="aconfcode" attribute="Environment" context="HighlightingApache ConfigurationCodeEnv"/>
+        <WordDetect String="apachecode*" attribute="Environment" context="HighlightingApache ConfigurationCodeEnvS"/>
+        <WordDetect String="apachecode" attribute="Environment" context="HighlightingApache ConfigurationCodeEnv"/>
+        <WordDetect String="autohotkeycode*" attribute="Environment" context="HighlightingAutoHotKeyCodeEnvS"/>
+        <WordDetect String="autohotkeycode" attribute="Environment" context="HighlightingAutoHotKeyCodeEnv"/>
+        <WordDetect String="ahkcode*" attribute="Environment" context="HighlightingAutoHotKeyCodeEnvS"/>
+        <WordDetect String="ahkcode" attribute="Environment" context="HighlightingAutoHotKeyCodeEnv"/>
+        <WordDetect String="awkcode*" attribute="Environment" context="HighlightingAWKCodeEnvS"/>
+        <WordDetect String="awkcode" attribute="Environment" context="HighlightingAWKCodeEnv"/>
+        <WordDetect String="gawkcode*" attribute="Environment" context="HighlightingAWKCodeEnvS"/>
+        <WordDetect String="gawkcode" attribute="Environment" context="HighlightingAWKCodeEnv"/>
+        <WordDetect String="mawkcode*" attribute="Environment" context="HighlightingAWKCodeEnvS"/>
+        <WordDetect String="mawkcode" attribute="Environment" context="HighlightingAWKCodeEnv"/>
+        <WordDetect String="nawkcode*" attribute="Environment" context="HighlightingAWKCodeEnvS"/>
+        <WordDetect String="nawkcode" attribute="Environment" context="HighlightingAWKCodeEnv"/>
+        <WordDetect String="bashcode*" attribute="Environment" context="HighlightingBashCodeEnvS"/>
+        <WordDetect String="bashcode" attribute="Environment" context="HighlightingBashCodeEnv"/>
+        <WordDetect String="shcode*" attribute="Environment" context="HighlightingBashCodeEnvS"/>
+        <WordDetect String="shcode" attribute="Environment" context="HighlightingBashCodeEnv"/>
+        <WordDetect String="kshcode*" attribute="Environment" context="HighlightingBashCodeEnvS"/>
+        <WordDetect String="kshcode" attribute="Environment" context="HighlightingBashCodeEnv"/>
+        <WordDetect String="zshcode*" attribute="Environment" context="HighlightingBashCodeEnvS"/>
+        <WordDetect String="zshcode" attribute="Environment" context="HighlightingBashCodeEnv"/>
+        <WordDetect String="shellcode*" attribute="Environment" context="HighlightingBashCodeEnvS"/>
+        <WordDetect String="shellcode" attribute="Environment" context="HighlightingBashCodeEnv"/>
+        <WordDetect String="bibtexcode*" attribute="Environment" context="HighlightingBibTeXCodeEnvS"/>
+        <WordDetect String="bibtexcode" attribute="Environment" context="HighlightingBibTeXCodeEnv"/>
+        <WordDetect String="bibcode*" attribute="Environment" context="HighlightingBibTeXCodeEnvS"/>
+        <WordDetect String="bibcode" attribute="Environment" context="HighlightingBibTeXCodeEnv"/>
+        <WordDetect String="boocode*" attribute="Environment" context="HighlightingBooCodeEnvS"/>
+        <WordDetect String="boocode" attribute="Environment" context="HighlightingBooCodeEnv"/>
+        <WordDetect String="ccode*" attribute="Environment" context="HighlightingCCodeEnvS"/>
+        <WordDetect String="ccode" attribute="Environment" context="HighlightingCCodeEnv"/>
+        <WordDetect String="cmakecode*" attribute="Environment" context="HighlightingCMakeCodeEnvS"/>
+        <WordDetect String="cmakecode" attribute="Environment" context="HighlightingCMakeCodeEnv"/>
+        <WordDetect String="csharpcode*" attribute="Environment" context="HighlightingC#CodeEnvS"/>
+        <WordDetect String="csharpcode" attribute="Environment" context="HighlightingC#CodeEnv"/>
+        <WordDetect String="cscode*" attribute="Environment" context="HighlightingC#CodeEnvS"/>
+        <WordDetect String="cscode" attribute="Environment" context="HighlightingC#CodeEnv"/>
+        <WordDetect String="clojurecode*" attribute="Environment" context="HighlightingClojureCodeEnvS"/>
+        <WordDetect String="clojurecode" attribute="Environment" context="HighlightingClojureCodeEnv"/>
+        <WordDetect String="cljcode*" attribute="Environment" context="HighlightingClojureCodeEnvS"/>
+        <WordDetect String="cljcode" attribute="Environment" context="HighlightingClojureCodeEnv"/>
+        <WordDetect String="coffeecode*" attribute="Environment" context="HighlightingCoffeeScriptCodeEnvS"/>
+        <WordDetect String="coffeecode" attribute="Environment" context="HighlightingCoffeeScriptCodeEnv"/>
+        <WordDetect String="commonlispcode*" attribute="Environment" context="HighlightingCommon LispCodeEnvS"/>
+        <WordDetect String="commonlispcode" attribute="Environment" context="HighlightingCommon LispCodeEnv"/>
+        <WordDetect String="clcode*" attribute="Environment" context="HighlightingCommon LispCodeEnvS"/>
+        <WordDetect String="clcode" attribute="Environment" context="HighlightingCommon LispCodeEnv"/>
+        <WordDetect String="lispcode*" attribute="Environment" context="HighlightingCommon LispCodeEnvS"/>
+        <WordDetect String="lispcode" attribute="Environment" context="HighlightingCommon LispCodeEnv"/>
+        <WordDetect String="cppcode*" attribute="Environment" context="HighlightingC++CodeEnvS"/>
+        <WordDetect String="cppcode" attribute="Environment" context="HighlightingC++CodeEnv"/>
+        <WordDetect String="csscode*" attribute="Environment" context="HighlightingCSSCodeEnvS"/>
+        <WordDetect String="csscode" attribute="Environment" context="HighlightingCSSCodeEnv"/>
+        <WordDetect String="dcode*" attribute="Environment" context="HighlightingDCodeEnvS"/>
+        <WordDetect String="dcode" attribute="Environment" context="HighlightingDCodeEnv"/>
+        <WordDetect String="dartcode*" attribute="Environment" context="HighlightingDartCodeEnvS"/>
+        <WordDetect String="dartcode" attribute="Environment" context="HighlightingDartCodeEnv"/>
+        <WordDetect String="delphicode*" attribute="Environment" context="HighlightingPascalCodeEnvS"/>
+        <WordDetect String="delphicode" attribute="Environment" context="HighlightingPascalCodeEnv"/>
+        <WordDetect String="pascode*" attribute="Environment" context="HighlightingPascalCodeEnvS"/>
+        <WordDetect String="pascode" attribute="Environment" context="HighlightingPascalCodeEnv"/>
+        <WordDetect String="pascalcode*" attribute="Environment" context="HighlightingPascalCodeEnvS"/>
+        <WordDetect String="pascalcode" attribute="Environment" context="HighlightingPascalCodeEnv"/>
+        <WordDetect String="objectpascalcode*" attribute="Environment" context="HighlightingPascalCodeEnvS"/>
+        <WordDetect String="objectpascalcode" attribute="Environment" context="HighlightingPascalCodeEnv"/>
+        <WordDetect String="diffcode*" attribute="Environment" context="HighlightingDiffCodeEnvS"/>
+        <WordDetect String="diffcode" attribute="Environment" context="HighlightingDiffCodeEnv"/>
+        <WordDetect String="udiffcode*" attribute="Environment" context="HighlightingDiffCodeEnvS"/>
+        <WordDetect String="udiffcode" attribute="Environment" context="HighlightingDiffCodeEnv"/>
+        <WordDetect String="dtdcode*" attribute="Environment" context="HighlightingDTDCodeEnvS"/>
+        <WordDetect String="dtdcode" attribute="Environment" context="HighlightingDTDCodeEnv"/>
+        <WordDetect String="eiffelcode*" attribute="Environment" context="HighlightingEiffelCodeEnvS"/>
+        <WordDetect String="eiffelcode" attribute="Environment" context="HighlightingEiffelCodeEnv"/>
+        <WordDetect String="elixircode*" attribute="Environment" context="HighlightingElixirCodeEnvS"/>
+        <WordDetect String="elixircode" attribute="Environment" context="HighlightingElixirCodeEnv"/>
+        <WordDetect String="excode*" attribute="Environment" context="HighlightingElixirCodeEnvS"/>
+        <WordDetect String="excode" attribute="Environment" context="HighlightingElixirCodeEnv"/>
+        <WordDetect String="exscode*" attribute="Environment" context="HighlightingElixirCodeEnvS"/>
+        <WordDetect String="exscode" attribute="Environment" context="HighlightingElixirCodeEnv"/>
+        <WordDetect String="elmcode*" attribute="Environment" context="HighlightingElmCodeEnvS"/>
+        <WordDetect String="elmcode" attribute="Environment" context="HighlightingElmCodeEnv"/>
+        <WordDetect String="emailcode*" attribute="Environment" context="HighlightingEmailCodeEnvS"/>
+        <WordDetect String="emailcode" attribute="Environment" context="HighlightingEmailCodeEnv"/>
+        <WordDetect String="emlcode*" attribute="Environment" context="HighlightingEmailCodeEnvS"/>
+        <WordDetect String="emlcode" attribute="Environment" context="HighlightingEmailCodeEnv"/>
+        <WordDetect String="erlangcode*" attribute="Environment" context="HighlightingErlangCodeEnvS"/>
+        <WordDetect String="erlangcode" attribute="Environment" context="HighlightingErlangCodeEnv"/>
+        <WordDetect String="fishcode*" attribute="Environment" context="HighlightingFishCodeEnvS"/>
+        <WordDetect String="fishcode" attribute="Environment" context="HighlightingFishCodeEnv"/>
+        <WordDetect String="fishshellcode*" attribute="Environment" context="HighlightingFishCodeEnvS"/>
+        <WordDetect String="fishshellcode" attribute="Environment" context="HighlightingFishCodeEnv"/>
+        <WordDetect String="forthcode*" attribute="Environment" context="HighlightingANS-Forth94CodeEnvS"/>
+        <WordDetect String="forthcode" attribute="Environment" context="HighlightingANS-Forth94CodeEnv"/>
+        <WordDetect String="fortranfixedcode*" attribute="Environment" context="HighlightingFortran (Fixed Format)CodeEnvS"/>
+        <WordDetect String="fortranfixedcode" attribute="Environment" context="HighlightingFortran (Fixed Format)CodeEnv"/>
+        <WordDetect String="fortrancode*" attribute="Environment" context="HighlightingFortran (Free Format)CodeEnvS"/>
+        <WordDetect String="fortrancode" attribute="Environment" context="HighlightingFortran (Free Format)CodeEnv"/>
+        <WordDetect String="fcode*" attribute="Environment" context="HighlightingFortran (Free Format)CodeEnvS"/>
+        <WordDetect String="fcode" attribute="Environment" context="HighlightingFortran (Free Format)CodeEnv"/>
+        <WordDetect String="gapcode*" attribute="Environment" context="HighlightingGAPCodeEnvS"/>
+        <WordDetect String="gapcode" attribute="Environment" context="HighlightingGAPCodeEnv"/>
+        <WordDetect String="gdscriptcode*" attribute="Environment" context="HighlightingGodotCodeEnvS"/>
+        <WordDetect String="gdscriptcode" attribute="Environment" context="HighlightingGodotCodeEnv"/>
+        <WordDetect String="gdcode*" attribute="Environment" context="HighlightingGodotCodeEnvS"/>
+        <WordDetect String="gdcode" attribute="Environment" context="HighlightingGodotCodeEnv"/>
+        <WordDetect String="glslcode*" attribute="Environment" context="HighlightingGLSLCodeEnvS"/>
+        <WordDetect String="glslcode" attribute="Environment" context="HighlightingGLSLCodeEnv"/>
+        <WordDetect String="gcodecode*" attribute="Environment" context="HighlightingG-CodeCodeEnvS"/>
+        <WordDetect String="gcodecode" attribute="Environment" context="HighlightingG-CodeCodeEnv"/>
+        <WordDetect String="gnuplotcode*" attribute="Environment" context="HighlightingGnuplotCodeEnvS"/>
+        <WordDetect String="gnuplotcode" attribute="Environment" context="HighlightingGnuplotCodeEnv"/>
+        <WordDetect String="gocode*" attribute="Environment" context="HighlightingGoCodeEnvS"/>
+        <WordDetect String="gocode" attribute="Environment" context="HighlightingGoCodeEnv"/>
+        <WordDetect String="golangcode*" attribute="Environment" context="HighlightingGoCodeEnvS"/>
+        <WordDetect String="golangcode" attribute="Environment" context="HighlightingGoCodeEnv"/>
+        <WordDetect String="groovycode*" attribute="Environment" context="HighlightingGroovyCodeEnvS"/>
+        <WordDetect String="groovycode" attribute="Environment" context="HighlightingGroovyCodeEnv"/>
+        <WordDetect String="hamlcode*" attribute="Environment" context="HighlightingHamlCodeEnvS"/>
+        <WordDetect String="hamlcode" attribute="Environment" context="HighlightingHamlCodeEnv"/>
+        <WordDetect String="haskellcode*" attribute="Environment" context="HighlightingHaskellCodeEnvS"/>
+        <WordDetect String="haskellcode" attribute="Environment" context="HighlightingHaskellCodeEnv"/>
+        <WordDetect String="hscode*" attribute="Environment" context="HighlightingHaskellCodeEnvS"/>
+        <WordDetect String="hscode" attribute="Environment" context="HighlightingHaskellCodeEnv"/>
+        <WordDetect String="haxecode*" attribute="Environment" context="HighlightingHaxeCodeEnvS"/>
+        <WordDetect String="haxecode" attribute="Environment" context="HighlightingHaxeCodeEnv"/>
+        <WordDetect String="hxslcode*" attribute="Environment" context="HighlightingHaxeCodeEnvS"/>
+        <WordDetect String="hxslcode" attribute="Environment" context="HighlightingHaxeCodeEnv"/>
+        <WordDetect String="hxcode*" attribute="Environment" context="HighlightingHaxeCodeEnvS"/>
+        <WordDetect String="hxcode" attribute="Environment" context="HighlightingHaxeCodeEnv"/>
+        <WordDetect String="htmlcode*" attribute="Environment" context="HighlightingHTMLCodeEnvS"/>
+        <WordDetect String="htmlcode" attribute="Environment" context="HighlightingHTMLCodeEnv"/>
+        <WordDetect String="idlcode*" attribute="Environment" context="HighlightingIDLCodeEnvS"/>
+        <WordDetect String="idlcode" attribute="Environment" context="HighlightingIDLCodeEnv"/>
+        <WordDetect String="idriscode*" attribute="Environment" context="HighlightingIdrisCodeEnvS"/>
+        <WordDetect String="idriscode" attribute="Environment" context="HighlightingIdrisCodeEnv"/>
+        <WordDetect String="idrcode*" attribute="Environment" context="HighlightingIdrisCodeEnvS"/>
+        <WordDetect String="idrcode" attribute="Environment" context="HighlightingIdrisCodeEnv"/>
+        <WordDetect String="informcode*" attribute="Environment" context="HighlightingInformCodeEnvS"/>
+        <WordDetect String="informcode" attribute="Environment" context="HighlightingInformCodeEnv"/>
+        <WordDetect String="icode*" attribute="Environment" context="HighlightingInformCodeEnvS"/>
+        <WordDetect String="icode" attribute="Environment" context="HighlightingInformCodeEnv"/>
+        <WordDetect String="inicode*" attribute="Environment" context="HighlightingINI FilesCodeEnvS"/>
+        <WordDetect String="inicode" attribute="Environment" context="HighlightingINI FilesCodeEnv"/>
+        <WordDetect String="cfgcode*" attribute="Environment" context="HighlightingINI FilesCodeEnvS"/>
+        <WordDetect String="cfgcode" attribute="Environment" context="HighlightingINI FilesCodeEnv"/>
+        <WordDetect String="dosinicode*" attribute="Environment" context="HighlightingINI FilesCodeEnvS"/>
+        <WordDetect String="dosinicode" attribute="Environment" context="HighlightingINI FilesCodeEnv"/>
+        <WordDetect String="jcode*" attribute="Environment" context="HighlightingJCodeEnvS"/>
+        <WordDetect String="jcode" attribute="Environment" context="HighlightingJCodeEnv"/>
+        <WordDetect String="javacode*" attribute="Environment" context="HighlightingJavaCodeEnvS"/>
+        <WordDetect String="javacode" attribute="Environment" context="HighlightingJavaCodeEnv"/>
+        <WordDetect String="javascriptcode*" attribute="Environment" context="HighlightingJavaScriptCodeEnvS"/>
+        <WordDetect String="javascriptcode" attribute="Environment" context="HighlightingJavaScriptCodeEnv"/>
+        <WordDetect String="jscode*" attribute="Environment" context="HighlightingJavaScriptCodeEnvS"/>
+        <WordDetect String="jscode" attribute="Environment" context="HighlightingJavaScriptCodeEnv"/>
+        <WordDetect String="jclcode*" attribute="Environment" context="HighlightingJCLCodeEnvS"/>
+        <WordDetect String="jclcode" attribute="Environment" context="HighlightingJCLCodeEnv"/>
+        <WordDetect String="jsoncode*" attribute="Environment" context="HighlightingJSONCodeEnvS"/>
+        <WordDetect String="jsoncode" attribute="Environment" context="HighlightingJSONCodeEnv"/>
+        <WordDetect String="jsonobjectcode*" attribute="Environment" context="HighlightingJSONCodeEnvS"/>
+        <WordDetect String="jsonobjectcode" attribute="Environment" context="HighlightingJSONCodeEnv"/>
+        <WordDetect String="juliacode*" attribute="Environment" context="HighlightingJuliaCodeEnvS"/>
+        <WordDetect String="juliacode" attribute="Environment" context="HighlightingJuliaCodeEnv"/>
+        <WordDetect String="jlcode*" attribute="Environment" context="HighlightingJuliaCodeEnvS"/>
+        <WordDetect String="jlcode" attribute="Environment" context="HighlightingJuliaCodeEnv"/>
+        <WordDetect String="kconfigcode*" attribute="Environment" context="HighlightingKconfigCodeEnvS"/>
+        <WordDetect String="kconfigcode" attribute="Environment" context="HighlightingKconfigCodeEnv"/>
+        <WordDetect String="menuconfigcode*" attribute="Environment" context="HighlightingKconfigCodeEnvS"/>
+        <WordDetect String="menuconfigcode" attribute="Environment" context="HighlightingKconfigCodeEnv"/>
+        <WordDetect String="linuxconfigcode*" attribute="Environment" context="HighlightingKconfigCodeEnvS"/>
+        <WordDetect String="linuxconfigcode" attribute="Environment" context="HighlightingKconfigCodeEnv"/>
+        <WordDetect String="kernelconfigcode*" attribute="Environment" context="HighlightingKconfigCodeEnvS"/>
+        <WordDetect String="kernelconfigcode" attribute="Environment" context="HighlightingKconfigCodeEnv"/>
+        <WordDetect String="kotlincode*" attribute="Environment" context="HighlightingKotlinCodeEnvS"/>
+        <WordDetect String="kotlincode" attribute="Environment" context="HighlightingKotlinCodeEnv"/>
+        <WordDetect String="lslcode*" attribute="Environment" context="HighlightingLSLCodeEnvS"/>
+        <WordDetect String="lslcode" attribute="Environment" context="HighlightingLSLCodeEnv"/>
+        <WordDetect String="lesscode*" attribute="Environment" context="HighlightingLESSCSSCodeEnvS"/>
+        <WordDetect String="lesscode" attribute="Environment" context="HighlightingLESSCSSCodeEnv"/>
+        <WordDetect String="lilypondcode*" attribute="Environment" context="HighlightingLilyPondCodeEnvS"/>
+        <WordDetect String="lilypondcode" attribute="Environment" context="HighlightingLilyPondCodeEnv"/>
+        <WordDetect String="literatehaskellcode*" attribute="Environment" context="HighlightingLiterate HaskellCodeEnvS"/>
+        <WordDetect String="literatehaskellcode" attribute="Environment" context="HighlightingLiterate HaskellCodeEnv"/>
+        <WordDetect String="lhaskellcode*" attribute="Environment" context="HighlightingLiterate HaskellCodeEnvS"/>
+        <WordDetect String="lhaskellcode" attribute="Environment" context="HighlightingLiterate HaskellCodeEnv"/>
+        <WordDetect String="lhscode*" attribute="Environment" context="HighlightingLiterate HaskellCodeEnvS"/>
+        <WordDetect String="lhscode" attribute="Environment" context="HighlightingLiterate HaskellCodeEnv"/>
+        <WordDetect String="llvmcode*" attribute="Environment" context="HighlightingLLVMCodeEnvS"/>
+        <WordDetect String="llvmcode" attribute="Environment" context="HighlightingLLVMCodeEnv"/>
+        <WordDetect String="logtalkcode*" attribute="Environment" context="HighlightingLogtalkCodeEnvS"/>
+        <WordDetect String="logtalkcode" attribute="Environment" context="HighlightingLogtalkCodeEnv"/>
+        <WordDetect String="luacode*" attribute="Environment" context="HighlightingLuaCodeEnvS"/>
+        <WordDetect String="luacode" attribute="Environment" context="HighlightingLuaCodeEnv"/>
+        <WordDetect String="makecode*" attribute="Environment" context="HighlightingMakefileCodeEnvS"/>
+        <WordDetect String="makecode" attribute="Environment" context="HighlightingMakefileCodeEnv"/>
+        <WordDetect String="makefilecode*" attribute="Environment" context="HighlightingMakefileCodeEnvS"/>
+        <WordDetect String="makefilecode" attribute="Environment" context="HighlightingMakefileCodeEnv"/>
+        <WordDetect String="mfcode*" attribute="Environment" context="HighlightingMakefileCodeEnvS"/>
+        <WordDetect String="mfcode" attribute="Environment" context="HighlightingMakefileCodeEnv"/>
+        <WordDetect String="bsdmakecode*" attribute="Environment" context="HighlightingMakefileCodeEnvS"/>
+        <WordDetect String="bsdmakecode" attribute="Environment" context="HighlightingMakefileCodeEnv"/>
+        <WordDetect String="makocode*" attribute="Environment" context="HighlightingMakoCodeEnvS"/>
+        <WordDetect String="makocode" attribute="Environment" context="HighlightingMakoCodeEnv"/>
+        <WordDetect String="markdowncode*" attribute="Environment" context="HighlightingMarkdownCodeEnvS"/>
+        <WordDetect String="markdowncode" attribute="Environment" context="HighlightingMarkdownCodeEnv"/>
+        <WordDetect String="mdcode*" attribute="Environment" context="HighlightingMarkdownCodeEnvS"/>
+        <WordDetect String="mdcode" attribute="Environment" context="HighlightingMarkdownCodeEnv"/>
+        <WordDetect String="masoncode*" attribute="Environment" context="HighlightingMasonCodeEnvS"/>
+        <WordDetect String="masoncode" attribute="Environment" context="HighlightingMasonCodeEnv"/>
+        <WordDetect String="mathematicacode*" attribute="Environment" context="HighlightingMathematicaCodeEnvS"/>
+        <WordDetect String="mathematicacode" attribute="Environment" context="HighlightingMathematicaCodeEnv"/>
+        <WordDetect String="mmacode*" attribute="Environment" context="HighlightingMathematicaCodeEnvS"/>
+        <WordDetect String="mmacode" attribute="Environment" context="HighlightingMathematicaCodeEnv"/>
+        <WordDetect String="nbcode*" attribute="Environment" context="HighlightingMathematicaCodeEnvS"/>
+        <WordDetect String="nbcode" attribute="Environment" context="HighlightingMathematicaCodeEnv"/>
+        <WordDetect String="matlabcode*" attribute="Environment" context="HighlightingMatlabCodeEnvS"/>
+        <WordDetect String="matlabcode" attribute="Environment" context="HighlightingMatlabCodeEnv"/>
+        <WordDetect String="maximacode*" attribute="Environment" context="HighlightingMaximaCodeEnvS"/>
+        <WordDetect String="maximacode" attribute="Environment" context="HighlightingMaximaCodeEnv"/>
+        <WordDetect String="macsymacode*" attribute="Environment" context="HighlightingMaximaCodeEnvS"/>
+        <WordDetect String="macsymacode" attribute="Environment" context="HighlightingMaximaCodeEnv"/>
+        <WordDetect String="mesoncode*" attribute="Environment" context="HighlightingMesonCodeEnvS"/>
+        <WordDetect String="mesoncode" attribute="Environment" context="HighlightingMesonCodeEnv"/>
+        <WordDetect String="mesonbuildcode*" attribute="Environment" context="HighlightingMesonCodeEnvS"/>
+        <WordDetect String="mesonbuildcode" attribute="Environment" context="HighlightingMesonCodeEnv"/>
+        <WordDetect String="modelicacode*" attribute="Environment" context="HighlightingModelicaCodeEnvS"/>
+        <WordDetect String="modelicacode" attribute="Environment" context="HighlightingModelicaCodeEnv"/>
+        <WordDetect String="modulacode*" attribute="Environment" context="HighlightingModula-2CodeEnvS"/>
+        <WordDetect String="modulacode" attribute="Environment" context="HighlightingModula-2CodeEnv"/>
+        <WordDetect String="mcode*" attribute="Environment" context="HighlightingModula-2CodeEnvS"/>
+        <WordDetect String="mcode" attribute="Environment" context="HighlightingModula-2CodeEnv"/>
+        <WordDetect String="mysqlcode*" attribute="Environment" context="HighlightingSQL (MySQL)CodeEnvS"/>
+        <WordDetect String="mysqlcode" attribute="Environment" context="HighlightingSQL (MySQL)CodeEnv"/>
+        <WordDetect String="nsiscode*" attribute="Environment" context="HighlightingNSISCodeEnvS"/>
+        <WordDetect String="nsiscode" attribute="Environment" context="HighlightingNSISCodeEnv"/>
+        <WordDetect String="nsicode*" attribute="Environment" context="HighlightingNSISCodeEnvS"/>
+        <WordDetect String="nsicode" attribute="Environment" context="HighlightingNSISCodeEnv"/>
+        <WordDetect String="nshcode*" attribute="Environment" context="HighlightingNSISCodeEnvS"/>
+        <WordDetect String="nshcode" attribute="Environment" context="HighlightingNSISCodeEnv"/>
+        <WordDetect String="nasmcode*" attribute="Environment" context="HighlightingIntel x86 (NASM)CodeEnvS"/>
+        <WordDetect String="nasmcode" attribute="Environment" context="HighlightingIntel x86 (NASM)CodeEnv"/>
+        <WordDetect String="nemerlecode*" attribute="Environment" context="HighlightingNemerleCodeEnvS"/>
+        <WordDetect String="nemerlecode" attribute="Environment" context="HighlightingNemerleCodeEnv"/>
+        <WordDetect String="nesccode*" attribute="Environment" context="HighlightingnesCCodeEnvS"/>
+        <WordDetect String="nesccode" attribute="Environment" context="HighlightingnesCCodeEnv"/>
+        <WordDetect String="nimrodcode*" attribute="Environment" context="HighlightingNimCodeEnvS"/>
+        <WordDetect String="nimrodcode" attribute="Environment" context="HighlightingNimCodeEnv"/>
+        <WordDetect String="nimcode*" attribute="Environment" context="HighlightingNimCodeEnvS"/>
+        <WordDetect String="nimcode" attribute="Environment" context="HighlightingNimCodeEnv"/>
+        <WordDetect String="nixoscode*" attribute="Environment" context="HighlightingNixCodeEnvS"/>
+        <WordDetect String="nixoscode" attribute="Environment" context="HighlightingNixCodeEnv"/>
+        <WordDetect String="nixcode*" attribute="Environment" context="HighlightingNixCodeEnvS"/>
+        <WordDetect String="nixcode" attribute="Environment" context="HighlightingNixCodeEnv"/>
+        <WordDetect String="objectiveccode*" attribute="Environment" context="HighlightingObjective-CCodeEnvS"/>
+        <WordDetect String="objectiveccode" attribute="Environment" context="HighlightingObjective-CCodeEnv"/>
+        <WordDetect String="objccode*" attribute="Environment" context="HighlightingObjective-CCodeEnvS"/>
+        <WordDetect String="objccode" attribute="Environment" context="HighlightingObjective-CCodeEnv"/>
+        <WordDetect String="objectivecppcode*" attribute="Environment" context="HighlightingObjective-C++CodeEnvS"/>
+        <WordDetect String="objectivecppcode" attribute="Environment" context="HighlightingObjective-C++CodeEnv"/>
+        <WordDetect String="objcppcode*" attribute="Environment" context="HighlightingObjective-C++CodeEnvS"/>
+        <WordDetect String="objcppcode" attribute="Environment" context="HighlightingObjective-C++CodeEnv"/>
+        <WordDetect String="ocamlcode*" attribute="Environment" context="HighlightingObjective CamlCodeEnvS"/>
+        <WordDetect String="ocamlcode" attribute="Environment" context="HighlightingObjective CamlCodeEnv"/>
+        <WordDetect String="octavecode*" attribute="Environment" context="HighlightingOctaveCodeEnvS"/>
+        <WordDetect String="octavecode" attribute="Environment" context="HighlightingOctaveCodeEnv"/>
+        <WordDetect String="perlcode*" attribute="Environment" context="HighlightingPerlCodeEnvS"/>
+        <WordDetect String="perlcode" attribute="Environment" context="HighlightingPerlCodeEnv"/>
+        <WordDetect String="plcode*" attribute="Environment" context="HighlightingPerlCodeEnvS"/>
+        <WordDetect String="plcode" attribute="Environment" context="HighlightingPerlCodeEnv"/>
+        <WordDetect String="phpcode*" attribute="Environment" context="HighlightingPHP/PHPCodeEnvS"/>
+        <WordDetect String="phpcode" attribute="Environment" context="HighlightingPHP/PHPCodeEnv"/>
+        <WordDetect String="pigcode*" attribute="Environment" context="HighlightingPigCodeEnvS"/>
+        <WordDetect String="pigcode" attribute="Environment" context="HighlightingPigCodeEnv"/>
+        <WordDetect String="pikecode*" attribute="Environment" context="HighlightingPikeCodeEnvS"/>
+        <WordDetect String="pikecode" attribute="Environment" context="HighlightingPikeCodeEnv"/>
+        <WordDetect String="ponycode*" attribute="Environment" context="HighlightingPonyCodeEnvS"/>
+        <WordDetect String="ponycode" attribute="Environment" context="HighlightingPonyCodeEnv"/>
+        <WordDetect String="postscriptcode*" attribute="Environment" context="HighlightingPostScriptCodeEnvS"/>
+        <WordDetect String="postscriptcode" attribute="Environment" context="HighlightingPostScriptCodeEnv"/>
+        <WordDetect String="postscrcode*" attribute="Environment" context="HighlightingPostScriptCodeEnvS"/>
+        <WordDetect String="postscrcode" attribute="Environment" context="HighlightingPostScriptCodeEnv"/>
+        <WordDetect String="povcode*" attribute="Environment" context="HighlightingPOV-RayCodeEnvS"/>
+        <WordDetect String="povcode" attribute="Environment" context="HighlightingPOV-RayCodeEnv"/>
+        <WordDetect String="powershellcode*" attribute="Environment" context="HighlightingPowerShellCodeEnvS"/>
+        <WordDetect String="powershellcode" attribute="Environment" context="HighlightingPowerShellCodeEnv"/>
+        <WordDetect String="pwshcode*" attribute="Environment" context="HighlightingPowerShellCodeEnvS"/>
+        <WordDetect String="pwshcode" attribute="Environment" context="HighlightingPowerShellCodeEnv"/>
+        <WordDetect String="poshcode*" attribute="Environment" context="HighlightingPowerShellCodeEnvS"/>
+        <WordDetect String="poshcode" attribute="Environment" context="HighlightingPowerShellCodeEnv"/>
+        <WordDetect String="pscode*" attribute="Environment" context="HighlightingPowerShellCodeEnvS"/>
+        <WordDetect String="pscode" attribute="Environment" context="HighlightingPowerShellCodeEnv"/>
+        <WordDetect String="psmcode*" attribute="Environment" context="HighlightingPowerShellCodeEnvS"/>
+        <WordDetect String="psmcode" attribute="Environment" context="HighlightingPowerShellCodeEnv"/>
+        <WordDetect String="praatcode*" attribute="Environment" context="HighlightingPraatCodeEnvS"/>
+        <WordDetect String="praatcode" attribute="Environment" context="HighlightingPraatCodeEnv"/>
+        <WordDetect String="prologcode*" attribute="Environment" context="HighlightingPrologCodeEnvS"/>
+        <WordDetect String="prologcode" attribute="Environment" context="HighlightingPrologCodeEnv"/>
+        <WordDetect String="protobufcode*" attribute="Environment" context="HighlightingProtobufCodeEnvS"/>
+        <WordDetect String="protobufcode" attribute="Environment" context="HighlightingProtobufCodeEnv"/>
+        <WordDetect String="protocode*" attribute="Environment" context="HighlightingProtobufCodeEnvS"/>
+        <WordDetect String="protocode" attribute="Environment" context="HighlightingProtobufCodeEnv"/>
+        <WordDetect String="pugcode*" attribute="Environment" context="HighlightingPugCodeEnvS"/>
+        <WordDetect String="pugcode" attribute="Environment" context="HighlightingPugCodeEnv"/>
+        <WordDetect String="jadecode*" attribute="Environment" context="HighlightingPugCodeEnvS"/>
+        <WordDetect String="jadecode" attribute="Environment" context="HighlightingPugCodeEnv"/>
+        <WordDetect String="puppetcode*" attribute="Environment" context="HighlightingPuppetCodeEnvS"/>
+        <WordDetect String="puppetcode" attribute="Environment" context="HighlightingPuppetCodeEnv"/>
+        <WordDetect String="pythoncode*" attribute="Environment" context="HighlightingPythonCodeEnvS"/>
+        <WordDetect String="pythoncode" attribute="Environment" context="HighlightingPythonCodeEnv"/>
+        <WordDetect String="pycode*" attribute="Environment" context="HighlightingPythonCodeEnvS"/>
+        <WordDetect String="pycode" attribute="Environment" context="HighlightingPythonCodeEnv"/>
+        <WordDetect String="sagecode*" attribute="Environment" context="HighlightingPythonCodeEnvS"/>
+        <WordDetect String="sagecode" attribute="Environment" context="HighlightingPythonCodeEnv"/>
+        <WordDetect String="qmlcode*" attribute="Environment" context="HighlightingQMLCodeEnvS"/>
+        <WordDetect String="qmlcode" attribute="Environment" context="HighlightingQMLCodeEnv"/>
+        <WordDetect String="qbscode*" attribute="Environment" context="HighlightingQMLCodeEnvS"/>
+        <WordDetect String="qbscode" attribute="Environment" context="HighlightingQMLCodeEnv"/>
+        <WordDetect String="rngcompactcode*" attribute="Environment" context="HighlightingRelaxNG-CompactCodeEnvS"/>
+        <WordDetect String="rngcompactcode" attribute="Environment" context="HighlightingRelaxNG-CompactCodeEnv"/>
+        <WordDetect String="rnccode*" attribute="Environment" context="HighlightingRelaxNG-CompactCodeEnvS"/>
+        <WordDetect String="rnccode" attribute="Environment" context="HighlightingRelaxNG-CompactCodeEnv"/>
+        <WordDetect String="speccode*" attribute="Environment" context="HighlightingRPM SpecCodeEnvS"/>
+        <WordDetect String="speccode" attribute="Environment" context="HighlightingRPM SpecCodeEnv"/>
+        <WordDetect String="racketcode*" attribute="Environment" context="HighlightingRacketCodeEnvS"/>
+        <WordDetect String="racketcode" attribute="Environment" context="HighlightingRacketCodeEnv"/>
+        <WordDetect String="rktcode*" attribute="Environment" context="HighlightingRacketCodeEnvS"/>
+        <WordDetect String="rktcode" attribute="Environment" context="HighlightingRacketCodeEnv"/>
+        <WordDetect String="rexxcode*" attribute="Environment" context="HighlightingREXXCodeEnvS"/>
+        <WordDetect String="rexxcode" attribute="Environment" context="HighlightingREXXCodeEnv"/>
+        <WordDetect String="arexxcode*" attribute="Environment" context="HighlightingREXXCodeEnvS"/>
+        <WordDetect String="arexxcode" attribute="Environment" context="HighlightingREXXCodeEnv"/>
+        <WordDetect String="rhtmlcode*" attribute="Environment" context="HighlightingRuby/Rails/RHTMLCodeEnvS"/>
+        <WordDetect String="rhtmlcode" attribute="Environment" context="HighlightingRuby/Rails/RHTMLCodeEnv"/>
+        <WordDetect String="htmlerbcode*" attribute="Environment" context="HighlightingRuby/Rails/RHTMLCodeEnvS"/>
+        <WordDetect String="htmlerbcode" attribute="Environment" context="HighlightingRuby/Rails/RHTMLCodeEnv"/>
+        <WordDetect String="htmlrubycode*" attribute="Environment" context="HighlightingRuby/Rails/RHTMLCodeEnvS"/>
+        <WordDetect String="htmlrubycode" attribute="Environment" context="HighlightingRuby/Rails/RHTMLCodeEnv"/>
+        <WordDetect String="rstcode*" attribute="Environment" context="HighlightingreStructuredTextCodeEnvS"/>
+        <WordDetect String="rstcode" attribute="Environment" context="HighlightingreStructuredTextCodeEnv"/>
+        <WordDetect String="restcode*" attribute="Environment" context="HighlightingreStructuredTextCodeEnvS"/>
+        <WordDetect String="restcode" attribute="Environment" context="HighlightingreStructuredTextCodeEnv"/>
+        <WordDetect String="rubycode*" attribute="Environment" context="HighlightingRubyCodeEnvS"/>
+        <WordDetect String="rubycode" attribute="Environment" context="HighlightingRubyCodeEnv"/>
+        <WordDetect String="rbcode*" attribute="Environment" context="HighlightingRubyCodeEnvS"/>
+        <WordDetect String="rbcode" attribute="Environment" context="HighlightingRubyCodeEnv"/>
+        <WordDetect String="dubycode*" attribute="Environment" context="HighlightingRubyCodeEnvS"/>
+        <WordDetect String="dubycode" attribute="Environment" context="HighlightingRubyCodeEnv"/>
+        <WordDetect String="rustcode*" attribute="Environment" context="HighlightingRustCodeEnvS"/>
+        <WordDetect String="rustcode" attribute="Environment" context="HighlightingRustCodeEnv"/>
+        <WordDetect String="rscode*" attribute="Environment" context="HighlightingRustCodeEnvS"/>
+        <WordDetect String="rscode" attribute="Environment" context="HighlightingRustCodeEnv"/>
+        <WordDetect String="smlcode*" attribute="Environment" context="HighlightingSMLCodeEnvS"/>
+        <WordDetect String="smlcode" attribute="Environment" context="HighlightingSMLCodeEnv"/>
+        <WordDetect String="sasscode*" attribute="Environment" context="HighlightingSASSCodeEnvS"/>
+        <WordDetect String="sasscode" attribute="Environment" context="HighlightingSASSCodeEnv"/>
+        <WordDetect String="scalacode*" attribute="Environment" context="HighlightingScalaCodeEnvS"/>
+        <WordDetect String="scalacode" attribute="Environment" context="HighlightingScalaCodeEnv"/>
+        <WordDetect String="schemecode*" attribute="Environment" context="HighlightingSchemeCodeEnvS"/>
+        <WordDetect String="schemecode" attribute="Environment" context="HighlightingSchemeCodeEnv"/>
+        <WordDetect String="scmcode*" attribute="Environment" context="HighlightingSchemeCodeEnvS"/>
+        <WordDetect String="scmcode" attribute="Environment" context="HighlightingSchemeCodeEnv"/>
+        <WordDetect String="scilabcode*" attribute="Environment" context="HighlightingscilabCodeEnvS"/>
+        <WordDetect String="scilabcode" attribute="Environment" context="HighlightingscilabCodeEnv"/>
+        <WordDetect String="scsscode*" attribute="Environment" context="HighlightingSCSSCodeEnvS"/>
+        <WordDetect String="scsscode" attribute="Environment" context="HighlightingSCSSCodeEnv"/>
+        <WordDetect String="sedcode*" attribute="Environment" context="HighlightingsedCodeEnvS"/>
+        <WordDetect String="sedcode" attribute="Environment" context="HighlightingsedCodeEnv"/>
+        <WordDetect String="gsedcode*" attribute="Environment" context="HighlightingsedCodeEnvS"/>
+        <WordDetect String="gsedcode" attribute="Environment" context="HighlightingsedCodeEnv"/>
+        <WordDetect String="ssedcode*" attribute="Environment" context="HighlightingsedCodeEnvS"/>
+        <WordDetect String="ssedcode" attribute="Environment" context="HighlightingsedCodeEnv"/>
+        <WordDetect String="sievecode*" attribute="Environment" context="HighlightingSieveCodeEnvS"/>
+        <WordDetect String="sievecode" attribute="Environment" context="HighlightingSieveCodeEnv"/>
+        <WordDetect String="smalicode*" attribute="Environment" context="HighlightingSmaliCodeEnvS"/>
+        <WordDetect String="smalicode" attribute="Environment" context="HighlightingSmaliCodeEnv"/>
+        <WordDetect String="soliditycode*" attribute="Environment" context="HighlightingSolidityCodeEnvS"/>
+        <WordDetect String="soliditycode" attribute="Environment" context="HighlightingSolidityCodeEnv"/>
+        <WordDetect String="spicecode*" attribute="Environment" context="HighlightingSpiceCodeEnvS"/>
+        <WordDetect String="spicecode" attribute="Environment" context="HighlightingSpiceCodeEnv"/>
+        <WordDetect String="spicelangcode*" attribute="Environment" context="HighlightingSpiceCodeEnvS"/>
+        <WordDetect String="spicelangcode" attribute="Environment" context="HighlightingSpiceCodeEnv"/>
+        <WordDetect String="sqlcode*" attribute="Environment" context="HighlightingSQLCodeEnvS"/>
+        <WordDetect String="sqlcode" attribute="Environment" context="HighlightingSQLCodeEnv"/>
+        <WordDetect String="stancode*" attribute="Environment" context="HighlightingStanCodeEnvS"/>
+        <WordDetect String="stancode" attribute="Environment" context="HighlightingStanCodeEnv"/>
+        <WordDetect String="statacode*" attribute="Environment" context="HighlightingStataCodeEnvS"/>
+        <WordDetect String="statacode" attribute="Environment" context="HighlightingStataCodeEnv"/>
+        <WordDetect String="docode*" attribute="Environment" context="HighlightingStataCodeEnvS"/>
+        <WordDetect String="docode" attribute="Environment" context="HighlightingStataCodeEnv"/>
+        <WordDetect String="swiftcode*" attribute="Environment" context="HighlightingSwiftCodeEnvS"/>
+        <WordDetect String="swiftcode" attribute="Environment" context="HighlightingSwiftCodeEnv"/>
+        <WordDetect String="systemverilogcode*" attribute="Environment" context="HighlightingSystemVerilogCodeEnvS"/>
+        <WordDetect String="systemverilogcode" attribute="Environment" context="HighlightingSystemVerilogCodeEnv"/>
+        <WordDetect String="svcode*" attribute="Environment" context="HighlightingSystemVerilogCodeEnvS"/>
+        <WordDetect String="svcode" attribute="Environment" context="HighlightingSystemVerilogCodeEnv"/>
+        <WordDetect String="tomlcode*" attribute="Environment" context="HighlightingTOMLCodeEnvS"/>
+        <WordDetect String="tomlcode" attribute="Environment" context="HighlightingTOMLCodeEnv"/>
+        <WordDetect String="tadscode*" attribute="Environment" context="HighlightingTADS 3CodeEnvS"/>
+        <WordDetect String="tadscode" attribute="Environment" context="HighlightingTADS 3CodeEnv"/>
+        <WordDetect String="tclcode*" attribute="Environment" context="HighlightingTcl/TkCodeEnvS"/>
+        <WordDetect String="tclcode" attribute="Environment" context="HighlightingTcl/TkCodeEnv"/>
+        <WordDetect String="tcshcode*" attribute="Environment" context="HighlightingTcshCodeEnvS"/>
+        <WordDetect String="tcshcode" attribute="Environment" context="HighlightingTcshCodeEnv"/>
+        <WordDetect String="cshcode*" attribute="Environment" context="HighlightingTcshCodeEnvS"/>
+        <WordDetect String="cshcode" attribute="Environment" context="HighlightingTcshCodeEnv"/>
+        <WordDetect String="terraformcode*" attribute="Environment" context="HighlightingTerraformCodeEnvS"/>
+        <WordDetect String="terraformcode" attribute="Environment" context="HighlightingTerraformCodeEnv"/>
+        <WordDetect String="tfcode*" attribute="Environment" context="HighlightingTerraformCodeEnvS"/>
+        <WordDetect String="tfcode" attribute="Environment" context="HighlightingTerraformCodeEnv"/>
+        <WordDetect String="texcode*" attribute="Environment" context="HighlightingLaTeXCodeEnvS"/>
+        <WordDetect String="texcode" attribute="Environment" context="HighlightingLaTeXCodeEnv"/>
+        <WordDetect String="latexcode*" attribute="Environment" context="HighlightingLaTeXCodeEnvS"/>
+        <WordDetect String="latexcode" attribute="Environment" context="HighlightingLaTeXCodeEnv"/>
+        <WordDetect String="todotxtcode*" attribute="Environment" context="HighlightingTodo.txtCodeEnvS"/>
+        <WordDetect String="todotxtcode" attribute="Environment" context="HighlightingTodo.txtCodeEnv"/>
+        <WordDetect String="typescriptcode*" attribute="Environment" context="HighlightingTypeScriptCodeEnvS"/>
+        <WordDetect String="typescriptcode" attribute="Environment" context="HighlightingTypeScriptCodeEnv"/>
+        <WordDetect String="tscode*" attribute="Environment" context="HighlightingTypeScriptCodeEnvS"/>
+        <WordDetect String="tscode" attribute="Environment" context="HighlightingTypeScriptCodeEnv"/>
+        <WordDetect String="valacode*" attribute="Environment" context="HighlightingValaCodeEnvS"/>
+        <WordDetect String="valacode" attribute="Environment" context="HighlightingValaCodeEnv"/>
+        <WordDetect String="vapicode*" attribute="Environment" context="HighlightingValaCodeEnvS"/>
+        <WordDetect String="vapicode" attribute="Environment" context="HighlightingValaCodeEnv"/>
+        <WordDetect String="velocitycode*" attribute="Environment" context="HighlightingVelocityCodeEnvS"/>
+        <WordDetect String="velocitycode" attribute="Environment" context="HighlightingVelocityCodeEnv"/>
+        <WordDetect String="verilogcode*" attribute="Environment" context="HighlightingVerilogCodeEnvS"/>
+        <WordDetect String="verilogcode" attribute="Environment" context="HighlightingVerilogCodeEnv"/>
+        <WordDetect String="vcode*" attribute="Environment" context="HighlightingVerilogCodeEnvS"/>
+        <WordDetect String="vcode" attribute="Environment" context="HighlightingVerilogCodeEnv"/>
+        <WordDetect String="vhdlcode*" attribute="Environment" context="HighlightingVHDLCodeEnvS"/>
+        <WordDetect String="vhdlcode" attribute="Environment" context="HighlightingVHDLCodeEnv"/>
+        <WordDetect String="xmlcode*" attribute="Environment" context="HighlightingXMLCodeEnvS"/>
+        <WordDetect String="xmlcode" attribute="Environment" context="HighlightingXMLCodeEnv"/>
+        <WordDetect String="xorgconfcode*" attribute="Environment" context="Highlightingx.org ConfigurationCodeEnvS"/>
+        <WordDetect String="xorgconfcode" attribute="Environment" context="Highlightingx.org ConfigurationCodeEnv"/>
+        <WordDetect String="xsltcode*" attribute="Environment" context="HighlightingxsltCodeEnvS"/>
+        <WordDetect String="xsltcode" attribute="Environment" context="HighlightingxsltCodeEnv"/>
+        <WordDetect String="yamlcode*" attribute="Environment" context="HighlightingYAMLCodeEnvS"/>
+        <WordDetect String="yamlcode" attribute="Environment" context="HighlightingYAMLCodeEnv"/>
+        <WordDetect String="yangcode*" attribute="Environment" context="HighlightingYANGCodeEnvS"/>
+        <WordDetect String="yangcode" attribute="Environment" context="HighlightingYANGCodeEnv"/>
+        <RegExpr String=".+code\*" attribute="Environment" context="UnknownHighlightingCodeEnvS"/>
+        <RegExpr String=".+code" attribute="Environment" context="UnknownHighlightingCodeEnv"/>
+      </context>
+
+      <!-- parse verbatim text for lstinline and minted -->
+      <context name="UnknownHighlightingCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!UnknownHighlightingCodeEnvSParam"/>
+      </context>
+      <context name="UnknownHighlightingCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="UnknownHighlightingCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="UnknownHighlightingCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!UnknownHighlightingBegin"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="UnknownHighlightingCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="UnknownHighlightingBegin"/>
+        <!-- Eat the trailing characters including } or ] after the language specification -->
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="UnknownHighlightingBegin" attribute="Normal Text" lineEndContext="UnknownHighlighting">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="UnknownHighlighting" attribute="Verbatim Code" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="\\end(?=\s*\{(?:lstlisting|minted|[a-zA-Z]+code)\*?\})" attribute="Structure" context="UnknownHighlightingEnd"/>
+      </context>
+      <context name="UnknownHighlightingEnd" attribute="Environment" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="{" attribute="Normal Text" context="#stay"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop#pop#pop#pop#pop" endRegion="block"/>
+        <DetectIdentifier/>
+      </context>
+
+
+      <!-- Selector for different highlightning schemes, in case the language is not implemented we pop and thus fallback to verbatim -->
+      <context name="HighlightingSelector" attribute="Normal Text" lineEndContext="#stay">
+        <WordDetect String="abap" insensitive="true" context="HighlightingABAPCodeEnv"/>
+        <WordDetect String="actionscript" insensitive="true" context="HighlightingActionScript 2.0CodeEnv"/>
+        <WordDetect String="as" insensitive="true" context="HighlightingActionScript 2.0CodeEnv"/>
+        <WordDetect String="ada" insensitive="true" context="HighlightingAdaCodeEnv"/>
+        <WordDetect String="agda" insensitive="true" context="HighlightingAgdaCodeEnv"/>
+        <WordDetect String="apacheconf" insensitive="true" context="HighlightingApache ConfigurationCodeEnv"/>
+        <WordDetect String="aconf" insensitive="true" context="HighlightingApache ConfigurationCodeEnv"/>
+        <WordDetect String="apache" insensitive="true" context="HighlightingApache ConfigurationCodeEnv"/>
+        <WordDetect String="autohotkey" insensitive="true" context="HighlightingAutoHotKeyCodeEnv"/>
+        <WordDetect String="ahk" insensitive="true" context="HighlightingAutoHotKeyCodeEnv"/>
+        <WordDetect String="awk" insensitive="true" context="HighlightingAWKCodeEnv"/>
+        <WordDetect String="gawk" insensitive="true" context="HighlightingAWKCodeEnv"/>
+        <WordDetect String="mawk" insensitive="true" context="HighlightingAWKCodeEnv"/>
+        <WordDetect String="nawk" insensitive="true" context="HighlightingAWKCodeEnv"/>
+        <WordDetect String="bash" insensitive="true" context="HighlightingBashCodeEnv"/>
+        <WordDetect String="sh" insensitive="true" context="HighlightingBashCodeEnv"/>
+        <WordDetect String="ksh" insensitive="true" context="HighlightingBashCodeEnv"/>
+        <WordDetect String="zsh" insensitive="true" context="HighlightingBashCodeEnv"/>
+        <WordDetect String="shell" insensitive="true" context="HighlightingBashCodeEnv"/>
+        <WordDetect String="bibtex" insensitive="true" context="HighlightingBibTeXCodeEnv"/>
+        <WordDetect String="bib" insensitive="true" context="HighlightingBibTeXCodeEnv"/>
+        <WordDetect String="boo" insensitive="true" context="HighlightingBooCodeEnv"/>
+        <WordDetect String="c" insensitive="true" context="HighlightingCCodeEnv"/>
+        <WordDetect String="cmake" insensitive="true" context="HighlightingCMakeCodeEnv"/>
+        <WordDetect String="csharp" insensitive="true" context="HighlightingC#CodeEnv"/>
+        <WordDetect String="cs" insensitive="true" context="HighlightingC#CodeEnv"/>
+        <WordDetect String="clojure" insensitive="true" context="HighlightingClojureCodeEnv"/>
+        <WordDetect String="clj" insensitive="true" context="HighlightingClojureCodeEnv"/>
+        <WordDetect String="coffee" insensitive="true" context="HighlightingCoffeeScriptCodeEnv"/>
+        <WordDetect String="commonlisp" insensitive="true" context="HighlightingCommon LispCodeEnv"/>
+        <WordDetect String="cl" insensitive="true" context="HighlightingCommon LispCodeEnv"/>
+        <WordDetect String="lisp" insensitive="true" context="HighlightingCommon LispCodeEnv"/>
+        <WordDetect String="cpp" insensitive="true" context="HighlightingC++CodeEnv"/>
+        <WordDetect String="css" insensitive="true" context="HighlightingCSSCodeEnv"/>
+        <WordDetect String="d" insensitive="true" context="HighlightingDCodeEnv"/>
+        <WordDetect String="dart" insensitive="true" context="HighlightingDartCodeEnv"/>
+        <WordDetect String="delphi" insensitive="true" context="HighlightingPascalCodeEnv"/>
+        <WordDetect String="pas" insensitive="true" context="HighlightingPascalCodeEnv"/>
+        <WordDetect String="pascal" insensitive="true" context="HighlightingPascalCodeEnv"/>
+        <WordDetect String="objectpascal" insensitive="true" context="HighlightingPascalCodeEnv"/>
+        <WordDetect String="diff" insensitive="true" context="HighlightingDiffCodeEnv"/>
+        <WordDetect String="udiff" insensitive="true" context="HighlightingDiffCodeEnv"/>
+        <WordDetect String="dtd" insensitive="true" context="HighlightingDTDCodeEnv"/>
+        <WordDetect String="eiffel" insensitive="true" context="HighlightingEiffelCodeEnv"/>
+        <WordDetect String="elixir" insensitive="true" context="HighlightingElixirCodeEnv"/>
+        <WordDetect String="ex" insensitive="true" context="HighlightingElixirCodeEnv"/>
+        <WordDetect String="exs" insensitive="true" context="HighlightingElixirCodeEnv"/>
+        <WordDetect String="elm" insensitive="true" context="HighlightingElmCodeEnv"/>
+        <WordDetect String="email" insensitive="true" context="HighlightingEmailCodeEnv"/>
+        <WordDetect String="eml" insensitive="true" context="HighlightingEmailCodeEnv"/>
+        <WordDetect String="erlang" insensitive="true" context="HighlightingErlangCodeEnv"/>
+        <WordDetect String="fish" insensitive="true" context="HighlightingFishCodeEnv"/>
+        <WordDetect String="fishshell" insensitive="true" context="HighlightingFishCodeEnv"/>
+        <WordDetect String="forth" insensitive="true" context="HighlightingANS-Forth94CodeEnv"/>
+        <WordDetect String="fortranfixed" insensitive="true" context="HighlightingFortran (Fixed Format)CodeEnv"/>
+        <WordDetect String="fortran" insensitive="true" context="HighlightingFortran (Free Format)CodeEnv"/>
+        <WordDetect String="f" insensitive="true" context="HighlightingFortran (Free Format)CodeEnv"/>
+        <WordDetect String="gap" insensitive="true" context="HighlightingGAPCodeEnv"/>
+        <WordDetect String="gdscript" insensitive="true" context="HighlightingGodotCodeEnv"/>
+        <WordDetect String="gd" insensitive="true" context="HighlightingGodotCodeEnv"/>
+        <WordDetect String="glsl" insensitive="true" context="HighlightingGLSLCodeEnv"/>
+        <WordDetect String="gcode" insensitive="true" context="HighlightingG-CodeCodeEnv"/>
+        <WordDetect String="gnuplot" insensitive="true" context="HighlightingGnuplotCodeEnv"/>
+        <WordDetect String="go" insensitive="true" context="HighlightingGoCodeEnv"/>
+        <WordDetect String="golang" insensitive="true" context="HighlightingGoCodeEnv"/>
+        <WordDetect String="groovy" insensitive="true" context="HighlightingGroovyCodeEnv"/>
+        <WordDetect String="haml" insensitive="true" context="HighlightingHamlCodeEnv"/>
+        <WordDetect String="haskell" insensitive="true" context="HighlightingHaskellCodeEnv"/>
+        <WordDetect String="hs" insensitive="true" context="HighlightingHaskellCodeEnv"/>
+        <WordDetect String="haxe" insensitive="true" context="HighlightingHaxeCodeEnv"/>
+        <WordDetect String="hxsl" insensitive="true" context="HighlightingHaxeCodeEnv"/>
+        <WordDetect String="hx" insensitive="true" context="HighlightingHaxeCodeEnv"/>
+        <WordDetect String="html" insensitive="true" context="HighlightingHTMLCodeEnv"/>
+        <WordDetect String="idl" insensitive="true" context="HighlightingIDLCodeEnv"/>
+        <WordDetect String="idris" insensitive="true" context="HighlightingIdrisCodeEnv"/>
+        <WordDetect String="idr" insensitive="true" context="HighlightingIdrisCodeEnv"/>
+        <WordDetect String="inform" insensitive="true" context="HighlightingInformCodeEnv"/>
+        <WordDetect String="i" insensitive="true" context="HighlightingInformCodeEnv"/>
+        <WordDetect String="ini" insensitive="true" context="HighlightingINI FilesCodeEnv"/>
+        <WordDetect String="cfg" insensitive="true" context="HighlightingINI FilesCodeEnv"/>
+        <WordDetect String="dosini" insensitive="true" context="HighlightingINI FilesCodeEnv"/>
+        <WordDetect String="j" insensitive="true" context="HighlightingJCodeEnv"/>
+        <WordDetect String="java" insensitive="true" context="HighlightingJavaCodeEnv"/>
+        <WordDetect String="javascript" insensitive="true" context="HighlightingJavaScriptCodeEnv"/>
+        <WordDetect String="js" insensitive="true" context="HighlightingJavaScriptCodeEnv"/>
+        <WordDetect String="jcl" insensitive="true" context="HighlightingJCLCodeEnv"/>
+        <WordDetect String="json" insensitive="true" context="HighlightingJSONCodeEnv"/>
+        <WordDetect String="jsonobject" insensitive="true" context="HighlightingJSONCodeEnv"/>
+        <WordDetect String="julia" insensitive="true" context="HighlightingJuliaCodeEnv"/>
+        <WordDetect String="jl" insensitive="true" context="HighlightingJuliaCodeEnv"/>
+        <WordDetect String="kconfig" insensitive="true" context="HighlightingKconfigCodeEnv"/>
+        <WordDetect String="menuconfig" insensitive="true" context="HighlightingKconfigCodeEnv"/>
+        <WordDetect String="linuxconfig" insensitive="true" context="HighlightingKconfigCodeEnv"/>
+        <WordDetect String="kernelconfig" insensitive="true" context="HighlightingKconfigCodeEnv"/>
+        <WordDetect String="kotlin" insensitive="true" context="HighlightingKotlinCodeEnv"/>
+        <WordDetect String="lsl" insensitive="true" context="HighlightingLSLCodeEnv"/>
+        <WordDetect String="less" insensitive="true" context="HighlightingLESSCSSCodeEnv"/>
+        <WordDetect String="lilypond" insensitive="true" context="HighlightingLilyPondCodeEnv"/>
+        <WordDetect String="literatehaskell" insensitive="true" context="HighlightingLiterate HaskellCodeEnv"/>
+        <WordDetect String="lhaskell" insensitive="true" context="HighlightingLiterate HaskellCodeEnv"/>
+        <WordDetect String="lhs" insensitive="true" context="HighlightingLiterate HaskellCodeEnv"/>
+        <WordDetect String="llvm" insensitive="true" context="HighlightingLLVMCodeEnv"/>
+        <WordDetect String="logtalk" insensitive="true" context="HighlightingLogtalkCodeEnv"/>
+        <WordDetect String="lua" insensitive="true" context="HighlightingLuaCodeEnv"/>
+        <WordDetect String="make" insensitive="true" context="HighlightingMakefileCodeEnv"/>
+        <WordDetect String="makefile" insensitive="true" context="HighlightingMakefileCodeEnv"/>
+        <WordDetect String="mf" insensitive="true" context="HighlightingMakefileCodeEnv"/>
+        <WordDetect String="bsdmake" insensitive="true" context="HighlightingMakefileCodeEnv"/>
+        <WordDetect String="mako" insensitive="true" context="HighlightingMakoCodeEnv"/>
+        <WordDetect String="markdown" insensitive="true" context="HighlightingMarkdownCodeEnv"/>
+        <WordDetect String="md" insensitive="true" context="HighlightingMarkdownCodeEnv"/>
+        <WordDetect String="mason" insensitive="true" context="HighlightingMasonCodeEnv"/>
+        <WordDetect String="mathematica" insensitive="true" context="HighlightingMathematicaCodeEnv"/>
+        <WordDetect String="mma" insensitive="true" context="HighlightingMathematicaCodeEnv"/>
+        <WordDetect String="nb" insensitive="true" context="HighlightingMathematicaCodeEnv"/>
+        <WordDetect String="matlab" insensitive="true" context="HighlightingMatlabCodeEnv"/>
+        <WordDetect String="maxima" insensitive="true" context="HighlightingMaximaCodeEnv"/>
+        <WordDetect String="macsyma" insensitive="true" context="HighlightingMaximaCodeEnv"/>
+        <WordDetect String="meson" insensitive="true" context="HighlightingMesonCodeEnv"/>
+        <WordDetect String="mesonbuild" insensitive="true" context="HighlightingMesonCodeEnv"/>
+        <WordDetect String="modelica" insensitive="true" context="HighlightingModelicaCodeEnv"/>
+        <WordDetect String="modula" insensitive="true" context="HighlightingModula-2CodeEnv"/>
+        <WordDetect String="m" insensitive="true" context="HighlightingModula-2CodeEnv"/>
+        <WordDetect String="mysql" insensitive="true" context="HighlightingSQL (MySQL)CodeEnv"/>
+        <WordDetect String="nsis" insensitive="true" context="HighlightingNSISCodeEnv"/>
+        <WordDetect String="nsi" insensitive="true" context="HighlightingNSISCodeEnv"/>
+        <WordDetect String="nsh" insensitive="true" context="HighlightingNSISCodeEnv"/>
+        <WordDetect String="nasm" insensitive="true" context="HighlightingIntel x86 (NASM)CodeEnv"/>
+        <WordDetect String="nemerle" insensitive="true" context="HighlightingNemerleCodeEnv"/>
+        <WordDetect String="nesc" insensitive="true" context="HighlightingnesCCodeEnv"/>
+        <WordDetect String="nimrod" insensitive="true" context="HighlightingNimCodeEnv"/>
+        <WordDetect String="nim" insensitive="true" context="HighlightingNimCodeEnv"/>
+        <WordDetect String="nixos" insensitive="true" context="HighlightingNixCodeEnv"/>
+        <WordDetect String="nix" insensitive="true" context="HighlightingNixCodeEnv"/>
+        <WordDetect String="objectivec" insensitive="true" context="HighlightingObjective-CCodeEnv"/>
+        <WordDetect String="objc" insensitive="true" context="HighlightingObjective-CCodeEnv"/>
+        <WordDetect String="objectivecpp" insensitive="true" context="HighlightingObjective-C++CodeEnv"/>
+        <WordDetect String="objcpp" insensitive="true" context="HighlightingObjective-C++CodeEnv"/>
+        <WordDetect String="ocaml" insensitive="true" context="HighlightingObjective CamlCodeEnv"/>
+        <WordDetect String="octave" insensitive="true" context="HighlightingOctaveCodeEnv"/>
+        <WordDetect String="perl" insensitive="true" context="HighlightingPerlCodeEnv"/>
+        <WordDetect String="pl" insensitive="true" context="HighlightingPerlCodeEnv"/>
+        <WordDetect String="php" insensitive="true" context="HighlightingPHP/PHPCodeEnv"/>
+        <WordDetect String="pig" insensitive="true" context="HighlightingPigCodeEnv"/>
+        <WordDetect String="pike" insensitive="true" context="HighlightingPikeCodeEnv"/>
+        <WordDetect String="pony" insensitive="true" context="HighlightingPonyCodeEnv"/>
+        <WordDetect String="postscript" insensitive="true" context="HighlightingPostScriptCodeEnv"/>
+        <WordDetect String="postscr" insensitive="true" context="HighlightingPostScriptCodeEnv"/>
+        <WordDetect String="pov" insensitive="true" context="HighlightingPOV-RayCodeEnv"/>
+        <WordDetect String="powershell" insensitive="true" context="HighlightingPowerShellCodeEnv"/>
+        <WordDetect String="pwsh" insensitive="true" context="HighlightingPowerShellCodeEnv"/>
+        <WordDetect String="posh" insensitive="true" context="HighlightingPowerShellCodeEnv"/>
+        <WordDetect String="ps" insensitive="true" context="HighlightingPowerShellCodeEnv"/>
+        <WordDetect String="psm" insensitive="true" context="HighlightingPowerShellCodeEnv"/>
+        <WordDetect String="praat" insensitive="true" context="HighlightingPraatCodeEnv"/>
+        <WordDetect String="prolog" insensitive="true" context="HighlightingPrologCodeEnv"/>
+        <WordDetect String="protobuf" insensitive="true" context="HighlightingProtobufCodeEnv"/>
+        <WordDetect String="proto" insensitive="true" context="HighlightingProtobufCodeEnv"/>
+        <WordDetect String="pug" insensitive="true" context="HighlightingPugCodeEnv"/>
+        <WordDetect String="jade" insensitive="true" context="HighlightingPugCodeEnv"/>
+        <WordDetect String="puppet" insensitive="true" context="HighlightingPuppetCodeEnv"/>
+        <WordDetect String="python" insensitive="true" context="HighlightingPythonCodeEnv"/>
+        <WordDetect String="py" insensitive="true" context="HighlightingPythonCodeEnv"/>
+        <WordDetect String="sage" insensitive="true" context="HighlightingPythonCodeEnv"/>
+        <WordDetect String="qml" insensitive="true" context="HighlightingQMLCodeEnv"/>
+        <WordDetect String="qbs" insensitive="true" context="HighlightingQMLCodeEnv"/>
+        <WordDetect String="rngcompact" insensitive="true" context="HighlightingRelaxNG-CompactCodeEnv"/>
+        <WordDetect String="rnc" insensitive="true" context="HighlightingRelaxNG-CompactCodeEnv"/>
+        <WordDetect String="spec" insensitive="true" context="HighlightingRPM SpecCodeEnv"/>
+        <WordDetect String="racket" insensitive="true" context="HighlightingRacketCodeEnv"/>
+        <WordDetect String="rkt" insensitive="true" context="HighlightingRacketCodeEnv"/>
+        <WordDetect String="rexx" insensitive="true" context="HighlightingREXXCodeEnv"/>
+        <WordDetect String="arexx" insensitive="true" context="HighlightingREXXCodeEnv"/>
+        <WordDetect String="rhtml" insensitive="true" context="HighlightingRuby/Rails/RHTMLCodeEnv"/>
+        <WordDetect String="htmlerb" insensitive="true" context="HighlightingRuby/Rails/RHTMLCodeEnv"/>
+        <WordDetect String="htmlruby" insensitive="true" context="HighlightingRuby/Rails/RHTMLCodeEnv"/>
+        <WordDetect String="rst" insensitive="true" context="HighlightingreStructuredTextCodeEnv"/>
+        <WordDetect String="rest" insensitive="true" context="HighlightingreStructuredTextCodeEnv"/>
+        <WordDetect String="ruby" insensitive="true" context="HighlightingRubyCodeEnv"/>
+        <WordDetect String="rb" insensitive="true" context="HighlightingRubyCodeEnv"/>
+        <WordDetect String="duby" insensitive="true" context="HighlightingRubyCodeEnv"/>
+        <WordDetect String="rust" insensitive="true" context="HighlightingRustCodeEnv"/>
+        <WordDetect String="rs" insensitive="true" context="HighlightingRustCodeEnv"/>
+        <WordDetect String="sml" insensitive="true" context="HighlightingSMLCodeEnv"/>
+        <WordDetect String="sass" insensitive="true" context="HighlightingSASSCodeEnv"/>
+        <WordDetect String="scala" insensitive="true" context="HighlightingScalaCodeEnv"/>
+        <WordDetect String="scheme" insensitive="true" context="HighlightingSchemeCodeEnv"/>
+        <WordDetect String="scm" insensitive="true" context="HighlightingSchemeCodeEnv"/>
+        <WordDetect String="scilab" insensitive="true" context="HighlightingscilabCodeEnv"/>
+        <WordDetect String="scss" insensitive="true" context="HighlightingSCSSCodeEnv"/>
+        <WordDetect String="sed" insensitive="true" context="HighlightingsedCodeEnv"/>
+        <WordDetect String="gsed" insensitive="true" context="HighlightingsedCodeEnv"/>
+        <WordDetect String="ssed" insensitive="true" context="HighlightingsedCodeEnv"/>
+        <WordDetect String="sieve" insensitive="true" context="HighlightingSieveCodeEnv"/>
+        <WordDetect String="smali" insensitive="true" context="HighlightingSmaliCodeEnv"/>
+        <WordDetect String="solidity" insensitive="true" context="HighlightingSolidityCodeEnv"/>
+        <WordDetect String="spice" insensitive="true" context="HighlightingSpiceCodeEnv"/>
+        <WordDetect String="spicelang" insensitive="true" context="HighlightingSpiceCodeEnv"/>
+        <WordDetect String="sql" insensitive="true" context="HighlightingSQLCodeEnv"/>
+        <WordDetect String="stan" insensitive="true" context="HighlightingStanCodeEnv"/>
+        <WordDetect String="stata" insensitive="true" context="HighlightingStataCodeEnv"/>
+        <WordDetect String="do" insensitive="true" context="HighlightingStataCodeEnv"/>
+        <WordDetect String="swift" insensitive="true" context="HighlightingSwiftCodeEnv"/>
+        <WordDetect String="systemverilog" insensitive="true" context="HighlightingSystemVerilogCodeEnv"/>
+        <WordDetect String="sv" insensitive="true" context="HighlightingSystemVerilogCodeEnv"/>
+        <WordDetect String="toml" insensitive="true" context="HighlightingTOMLCodeEnv"/>
+        <WordDetect String="tads" insensitive="true" context="HighlightingTADS 3CodeEnv"/>
+        <WordDetect String="tcl" insensitive="true" context="HighlightingTcl/TkCodeEnv"/>
+        <WordDetect String="tcsh" insensitive="true" context="HighlightingTcshCodeEnv"/>
+        <WordDetect String="csh" insensitive="true" context="HighlightingTcshCodeEnv"/>
+        <WordDetect String="terraform" insensitive="true" context="HighlightingTerraformCodeEnv"/>
+        <WordDetect String="tf" insensitive="true" context="HighlightingTerraformCodeEnv"/>
+        <WordDetect String="tex" insensitive="true" context="HighlightingLaTeXCodeEnv"/>
+        <WordDetect String="latex" insensitive="true" context="HighlightingLaTeXCodeEnv"/>
+        <WordDetect String="todotxt" insensitive="true" context="HighlightingTodo.txtCodeEnv"/>
+        <WordDetect String="typescript" insensitive="true" context="HighlightingTypeScriptCodeEnv"/>
+        <WordDetect String="ts" insensitive="true" context="HighlightingTypeScriptCodeEnv"/>
+        <WordDetect String="vala" insensitive="true" context="HighlightingValaCodeEnv"/>
+        <WordDetect String="vapi" insensitive="true" context="HighlightingValaCodeEnv"/>
+        <WordDetect String="velocity" insensitive="true" context="HighlightingVelocityCodeEnv"/>
+        <WordDetect String="verilog" insensitive="true" context="HighlightingVerilogCodeEnv"/>
+        <WordDetect String="v" insensitive="true" context="HighlightingVerilogCodeEnv"/>
+        <WordDetect String="vhdl" insensitive="true" context="HighlightingVHDLCodeEnv"/>
+        <WordDetect String="xml" insensitive="true" context="HighlightingXMLCodeEnv"/>
+        <WordDetect String="xorgconf" insensitive="true" context="Highlightingx.org ConfigurationCodeEnv"/>
+        <WordDetect String="xslt" insensitive="true" context="HighlightingxsltCodeEnv"/>
+        <WordDetect String="yaml" insensitive="true" context="HighlightingYAMLCodeEnv"/>
+        <WordDetect String="yang" insensitive="true" context="HighlightingYANGCodeEnv"/>
+        <AnyChar String="}]" context="#pop!UnknownHighlightingBegin"/>
+        <RegExpr String="[^]}]*" context="#stay"/>
+      </context>
+
+      <context name="HighlightingCommon" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr String="\\end\s*\{(?:lstlisting|minted|[a-zA-Z]+code)\*?\}" attribute="Structure" lookAhead="true" context="#pop#pop#pop#pop#pop#pop"/>
+      </context>
+
+      <context name="HighlightingABAPCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingABAPCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingABAPCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingABAPCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingABAPCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginABAP"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingABAPCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginABAP"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginABAP" attribute="Normal Text" lineEndContext="#pop!HighlightingABAP">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingABAP" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!--        <IncludeRules context="##ABAP" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingActionScript 2.0CodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingActionScript 2.0CodeEnvSParam"/>
+      </context>
+      <context name="HighlightingActionScript 2.0CodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingActionScript 2.0CodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingActionScript 2.0CodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginActionScript 2.0"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingActionScript 2.0CodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginActionScript 2.0"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginActionScript 2.0" attribute="Normal Text" lineEndContext="#pop!HighlightingActionScript 2.0">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingActionScript 2.0" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##ActionScript 2.0" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingAdaCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingAdaCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingAdaCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingAdaCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingAdaCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginAda"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingAdaCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginAda"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginAda" attribute="Normal Text" lineEndContext="#pop!HighlightingAda">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingAda" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Ada" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingAgdaCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingAgdaCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingAgdaCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingAgdaCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingAgdaCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginAgda"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingAgdaCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginAgda"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginAgda" attribute="Normal Text" lineEndContext="#pop!HighlightingAgda">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingAgda" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Agda" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingApache ConfigurationCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingApache ConfigurationCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingApache ConfigurationCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingApache ConfigurationCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingApache ConfigurationCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginApache Configuration"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingApache ConfigurationCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginApache Configuration"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginApache Configuration" attribute="Normal Text" lineEndContext="#pop!HighlightingApache Configuration">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingApache Configuration" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Apache Configuration" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingAutoHotKeyCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingAutoHotKeyCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingAutoHotKeyCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingAutoHotKeyCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingAutoHotKeyCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginAutoHotKey"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingAutoHotKeyCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginAutoHotKey"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginAutoHotKey" attribute="Normal Text" lineEndContext="#pop!HighlightingAutoHotKey">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingAutoHotKey" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##AutoHotKey" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingAWKCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingAWKCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingAWKCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingAWKCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingAWKCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginAWK"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingAWKCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginAWK"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginAWK" attribute="Normal Text" lineEndContext="#pop!HighlightingAWK">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingAWK" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##AWK" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingBashCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBashCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingBashCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingBashCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingBashCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginBash"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingBashCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginBash"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginBash" attribute="Normal Text" lineEndContext="#pop!HighlightingBash">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingBash" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="Command##Bash">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Bash" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingBibTeXCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBibTeXCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingBibTeXCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingBibTeXCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingBibTeXCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginBibTeX"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingBibTeXCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginBibTeX"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginBibTeX" attribute="Normal Text" lineEndContext="#pop!HighlightingBibTeX">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingBibTeX" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##BibTeX" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingBooCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBooCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingBooCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingBooCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingBooCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginBoo"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingBooCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginBoo"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginBoo" attribute="Normal Text" lineEndContext="#pop!HighlightingBoo">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingBoo" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Boo" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingCCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingCCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingCCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingCCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingCCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginC"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingCCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginC"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginC" attribute="Normal Text" lineEndContext="#pop!HighlightingC">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingC" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##C" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingCMakeCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingCMakeCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingCMakeCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingCMakeCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingCMakeCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginCMake"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingCMakeCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginCMake"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginCMake" attribute="Normal Text" lineEndContext="#pop!HighlightingCMake">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingCMake" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##CMake" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingC#CodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingC#CodeEnvSParam"/>
+      </context>
+      <context name="HighlightingC#CodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingC#CodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingC#CodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginC#"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingC#CodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginC#"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginC#" attribute="Normal Text" lineEndContext="#pop!HighlightingC#">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingC#" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##C#" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingClojureCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingClojureCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingClojureCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingClojureCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingClojureCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginClojure"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingClojureCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginClojure"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginClojure" attribute="Normal Text" lineEndContext="#pop!HighlightingClojure">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingClojure" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Clojure" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingCoffeeScriptCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingCoffeeScriptCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingCoffeeScriptCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingCoffeeScriptCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingCoffeeScriptCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginCoffeeScript"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingCoffeeScriptCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginCoffeeScript"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginCoffeeScript" attribute="Normal Text" lineEndContext="#pop!HighlightingCoffeeScript">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingCoffeeScript" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##CoffeeScript" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingCommon LispCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingCommon LispCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingCommon LispCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingCommon LispCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingCommon LispCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginCommon Lisp"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingCommon LispCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginCommon Lisp"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginCommon Lisp" attribute="Normal Text" lineEndContext="#pop!HighlightingCommon Lisp">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingCommon Lisp" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Common Lisp" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingC++CodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingC++CodeEnvSParam"/>
+      </context>
+      <context name="HighlightingC++CodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingC++CodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingC++CodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginC++"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingC++CodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginC++"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginC++" attribute="Normal Text" lineEndContext="#pop!HighlightingC++">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingC++" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##C++" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingCSSCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingCSSCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingCSSCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingCSSCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingCSSCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginCSS"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingCSSCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginCSS"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginCSS" attribute="Normal Text" lineEndContext="#pop!HighlightingCSS">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingCSS" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##CSS" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingDCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingDCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingDCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingDCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingDCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginD"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingDCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginD"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginD" attribute="Normal Text" lineEndContext="#pop!HighlightingD">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingD" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##D" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingDartCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingDartCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingDartCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingDartCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingDartCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginDart"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingDartCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginDart"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginDart" attribute="Normal Text" lineEndContext="#pop!HighlightingDart">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingDart" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Dart" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingPascalCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingPascalCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingPascalCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingPascalCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingPascalCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginPascal"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingPascalCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginPascal"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginPascal" attribute="Normal Text" lineEndContext="#pop!HighlightingPascal">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingPascal" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Pascal" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingDiffCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingDiffCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingDiffCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingDiffCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingDiffCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginDiff"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingDiffCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginDiff"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginDiff" attribute="Normal Text" lineEndContext="#pop!HighlightingDiff">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingDiff" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Diff" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingDTDCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingDTDCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingDTDCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingDTDCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingDTDCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginDTD"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingDTDCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginDTD"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginDTD" attribute="Normal Text" lineEndContext="#pop!HighlightingDTD">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingDTD" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##DTD" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingEiffelCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingEiffelCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingEiffelCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingEiffelCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingEiffelCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginEiffel"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingEiffelCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginEiffel"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginEiffel" attribute="Normal Text" lineEndContext="#pop!HighlightingEiffel">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingEiffel" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Eiffel" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingElixirCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingElixirCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingElixirCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingElixirCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingElixirCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginElixir"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingElixirCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginElixir"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginElixir" attribute="Normal Text" lineEndContext="#pop!HighlightingElixir">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingElixir" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Elixir" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingElmCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingElmCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingElmCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingElmCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingElmCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginElm"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingElmCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginElm"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginElm" attribute="Normal Text" lineEndContext="#pop!HighlightingElm">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingElm" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Elm" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingEmailCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingEmailCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingEmailCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingEmailCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingEmailCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginEmail"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingEmailCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginEmail"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginEmail" attribute="Normal Text" lineEndContext="#pop!HighlightingEmail">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingEmail" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Email" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingErlangCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingErlangCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingErlangCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingErlangCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingErlangCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginErlang"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingErlangCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginErlang"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginErlang" attribute="Normal Text" lineEndContext="#pop!HighlightingErlang">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingErlang" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Erlang" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingFishCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingFishCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingFishCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingFishCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingFishCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginFish"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingFishCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginFish"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginFish" attribute="Normal Text" lineEndContext="#pop!HighlightingFish">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingFish" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Fish" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingANS-Forth94CodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingANS-Forth94CodeEnvSParam"/>
+      </context>
+      <context name="HighlightingANS-Forth94CodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingANS-Forth94CodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingANS-Forth94CodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginANS-Forth94"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingANS-Forth94CodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginANS-Forth94"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginANS-Forth94" attribute="Normal Text" lineEndContext="#pop!HighlightingANS-Forth94">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingANS-Forth94" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##ANS-Forth94" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingFortran (Fixed Format)CodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingFortran (Fixed Format)CodeEnvSParam"/>
+      </context>
+      <context name="HighlightingFortran (Fixed Format)CodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingFortran (Fixed Format)CodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingFortran (Fixed Format)CodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginFortran (Fixed Format)"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingFortran (Fixed Format)CodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginFortran (Fixed Format)"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginFortran (Fixed Format)" attribute="Normal Text" lineEndContext="#pop!HighlightingFortran (Fixed Format)">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingFortran (Fixed Format)" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Fortran (Fixed Format)" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingFortran (Free Format)CodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingFortran (Free Format)CodeEnvSParam"/>
+      </context>
+      <context name="HighlightingFortran (Free Format)CodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingFortran (Free Format)CodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingFortran (Free Format)CodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginFortran (Free Format)"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingFortran (Free Format)CodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginFortran (Free Format)"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginFortran (Free Format)" attribute="Normal Text" lineEndContext="#pop!HighlightingFortran (Free Format)">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingFortran (Free Format)" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Fortran (Free Format)" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingGAPCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingGAPCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingGAPCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingGAPCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingGAPCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginGAP"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingGAPCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginGAP"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginGAP" attribute="Normal Text" lineEndContext="#pop!HighlightingGAP">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingGAP" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##GAP" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingGodotCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingGodotCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingGodotCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingGodotCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingGodotCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginGodot"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingGodotCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginGodot"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginGodot" attribute="Normal Text" lineEndContext="#pop!HighlightingGodot">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingGodot" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Godot" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingGLSLCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingGLSLCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingGLSLCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingGLSLCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingGLSLCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginGLSL"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingGLSLCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginGLSL"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginGLSL" attribute="Normal Text" lineEndContext="#pop!HighlightingGLSL">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingGLSL" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##GLSL" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingG-CodeCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingG-CodeCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingG-CodeCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingG-CodeCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingG-CodeCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginG-Code"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingG-CodeCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginG-Code"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginG-Code" attribute="Normal Text" lineEndContext="#pop!HighlightingG-Code">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingG-Code" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##G-Code" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingGnuplotCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingGnuplotCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingGnuplotCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingGnuplotCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingGnuplotCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginGnuplot"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingGnuplotCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginGnuplot"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginGnuplot" attribute="Normal Text" lineEndContext="#pop!HighlightingGnuplot">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingGnuplot" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Gnuplot" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingGoCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingGoCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingGoCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingGoCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingGoCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginGo"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingGoCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginGo"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginGo" attribute="Normal Text" lineEndContext="#pop!HighlightingGo">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingGo" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Go" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingGroovyCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingGroovyCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingGroovyCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingGroovyCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingGroovyCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginGroovy"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingGroovyCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginGroovy"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginGroovy" attribute="Normal Text" lineEndContext="#pop!HighlightingGroovy">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingGroovy" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Groovy" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingHamlCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingHamlCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingHamlCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingHamlCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingHamlCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginHaml"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingHamlCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginHaml"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginHaml" attribute="Normal Text" lineEndContext="#pop!HighlightingHaml">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingHaml" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Haml" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingHaskellCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingHaskellCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingHaskellCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingHaskellCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingHaskellCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginHaskell"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingHaskellCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginHaskell"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginHaskell" attribute="Normal Text" lineEndContext="#pop!HighlightingHaskell">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingHaskell" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Haskell" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingHaxeCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingHaxeCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingHaxeCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingHaxeCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingHaxeCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginHaxe"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingHaxeCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginHaxe"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginHaxe" attribute="Normal Text" lineEndContext="#pop!HighlightingHaxe">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingHaxe" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Haxe" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingHTMLCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingHTMLCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingHTMLCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingHTMLCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingHTMLCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginHTML"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingHTMLCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginHTML"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginHTML" attribute="Normal Text" lineEndContext="#pop!HighlightingHTML">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingHTML" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##HTML" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingIDLCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingIDLCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingIDLCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingIDLCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingIDLCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginIDL"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingIDLCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginIDL"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginIDL" attribute="Normal Text" lineEndContext="#pop!HighlightingIDL">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingIDL" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##IDL" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingIdrisCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingIdrisCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingIdrisCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingIdrisCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingIdrisCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginIdris"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingIdrisCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginIdris"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginIdris" attribute="Normal Text" lineEndContext="#pop!HighlightingIdris">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingIdris" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Idris" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingInformCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingInformCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingInformCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingInformCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingInformCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginInform"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingInformCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginInform"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginInform" attribute="Normal Text" lineEndContext="#pop!HighlightingInform">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingInform" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Inform" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingINI FilesCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingINI FilesCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingINI FilesCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingINI FilesCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingINI FilesCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginINI Files"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingINI FilesCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginINI Files"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginINI Files" attribute="Normal Text" lineEndContext="#pop!HighlightingINI Files">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingINI Files" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##INI Files" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingJCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingJCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingJCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingJCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingJCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginJ"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingJCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginJ"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginJ" attribute="Normal Text" lineEndContext="#pop!HighlightingJ">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingJ" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##J" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingJavaCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingJavaCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingJavaCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingJavaCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingJavaCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginJava"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingJavaCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginJava"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginJava" attribute="Normal Text" lineEndContext="#pop!HighlightingJava">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingJava" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Java" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingJavaScriptCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingJavaScriptCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingJavaScriptCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingJavaScriptCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingJavaScriptCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginJavaScript"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingJavaScriptCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginJavaScript"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginJavaScript" attribute="Normal Text" lineEndContext="#pop!HighlightingJavaScript">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingJavaScript" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="Normal##JavaScript" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingJCLCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingJCLCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingJCLCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingJCLCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingJCLCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginJCL"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingJCLCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginJCL"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginJCL" attribute="Normal Text" lineEndContext="#pop!HighlightingJCL">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingJCL" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##JCL" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingJSONCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingJSONCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingJSONCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingJSONCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingJSONCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginJSON"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingJSONCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginJSON"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginJSON" attribute="Normal Text" lineEndContext="#pop!HighlightingJSON">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingJSON" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##JSON" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingJuliaCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingJuliaCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingJuliaCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingJuliaCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingJuliaCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginJulia"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingJuliaCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginJulia"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginJulia" attribute="Normal Text" lineEndContext="#pop!HighlightingJulia">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingJulia" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Julia" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingKconfigCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingKconfigCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingKconfigCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingKconfigCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingKconfigCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginKconfig"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingKconfigCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginKconfig"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginKconfig" attribute="Normal Text" lineEndContext="#pop!HighlightingKconfig">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingKconfig" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Kconfig" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingKotlinCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingKotlinCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingKotlinCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingKotlinCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingKotlinCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginKotlin"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingKotlinCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginKotlin"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginKotlin" attribute="Normal Text" lineEndContext="#pop!HighlightingKotlin">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingKotlin" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Kotlin" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingLSLCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingLSLCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingLSLCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingLSLCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingLSLCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginLSL"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingLSLCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginLSL"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginLSL" attribute="Normal Text" lineEndContext="#pop!HighlightingLSL">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingLSL" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##LSL" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingLESSCSSCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingLESSCSSCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingLESSCSSCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingLESSCSSCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingLESSCSSCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginLESSCSS"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingLESSCSSCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginLESSCSS"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginLESSCSS" attribute="Normal Text" lineEndContext="#pop!HighlightingLESSCSS">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingLESSCSS" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##LESSCSS" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingLilyPondCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingLilyPondCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingLilyPondCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingLilyPondCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingLilyPondCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginLilyPond"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingLilyPondCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginLilyPond"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginLilyPond" attribute="Normal Text" lineEndContext="#pop!HighlightingLilyPond">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingLilyPond" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##LilyPond" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingLiterate HaskellCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingLiterate HaskellCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingLiterate HaskellCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingLiterate HaskellCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingLiterate HaskellCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginLiterate Haskell"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingLiterate HaskellCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginLiterate Haskell"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginLiterate Haskell" attribute="Normal Text" lineEndContext="#pop!HighlightingLiterate Haskell">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingLiterate Haskell" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Literate Haskell" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingLLVMCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingLLVMCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingLLVMCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingLLVMCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingLLVMCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginLLVM"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingLLVMCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginLLVM"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginLLVM" attribute="Normal Text" lineEndContext="#pop!HighlightingLLVM">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingLLVM" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##LLVM" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingLogtalkCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingLogtalkCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingLogtalkCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingLogtalkCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingLogtalkCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginLogtalk"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingLogtalkCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginLogtalk"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginLogtalk" attribute="Normal Text" lineEndContext="#pop!HighlightingLogtalk">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingLogtalk" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Logtalk" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingLuaCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingLuaCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingLuaCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingLuaCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingLuaCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginLua"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingLuaCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginLua"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginLua" attribute="Normal Text" lineEndContext="#pop!HighlightingLua">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingLua" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Lua" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingMakefileCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingMakefileCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingMakefileCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingMakefileCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingMakefileCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginMakefile"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingMakefileCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginMakefile"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginMakefile" attribute="Normal Text" lineEndContext="#pop!HighlightingMakefile">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingMakefile" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="strings_and_vars##Makefile">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Makefile" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingMakoCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingMakoCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingMakoCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingMakoCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingMakoCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginMako"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingMakoCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginMako"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginMako" attribute="Normal Text" lineEndContext="#pop!HighlightingMako">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingMako" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Mako" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingMarkdownCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingMarkdownCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingMarkdownCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingMarkdownCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingMarkdownCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginMarkdown"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingMarkdownCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginMarkdown"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginMarkdown" attribute="Normal Text" lineEndContext="#pop!HighlightingMarkdown">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingMarkdown" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Markdown" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingMasonCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingMasonCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingMasonCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingMasonCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingMasonCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginMason"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingMasonCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginMason"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginMason" attribute="Normal Text" lineEndContext="#pop!HighlightingMason">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingMason" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Mason" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingMathematicaCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingMathematicaCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingMathematicaCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingMathematicaCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingMathematicaCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginMathematica"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingMathematicaCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginMathematica"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginMathematica" attribute="Normal Text" lineEndContext="#pop!HighlightingMathematica">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingMathematica" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Mathematica" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingMatlabCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingMatlabCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingMatlabCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingMatlabCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingMatlabCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginMatlab"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingMatlabCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginMatlab"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginMatlab" attribute="Normal Text" lineEndContext="#pop!HighlightingMatlab">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingMatlab" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Matlab" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingMaximaCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingMaximaCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingMaximaCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingMaximaCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingMaximaCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginMaxima"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingMaximaCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginMaxima"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginMaxima" attribute="Normal Text" lineEndContext="#pop!HighlightingMaxima">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingMaxima" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Maxima" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingMesonCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingMesonCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingMesonCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingMesonCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingMesonCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginMeson"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingMesonCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginMeson"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginMeson" attribute="Normal Text" lineEndContext="#pop!HighlightingMeson">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingMeson" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Meson" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingModelicaCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingModelicaCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingModelicaCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingModelicaCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingModelicaCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginModelica"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingModelicaCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginModelica"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginModelica" attribute="Normal Text" lineEndContext="#pop!HighlightingModelica">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingModelica" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Modelica" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingModula-2CodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingModula-2CodeEnvSParam"/>
+      </context>
+      <context name="HighlightingModula-2CodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingModula-2CodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingModula-2CodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginModula-2"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingModula-2CodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginModula-2"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginModula-2" attribute="Normal Text" lineEndContext="#pop!HighlightingModula-2">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingModula-2" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Modula-2" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingSQL (MySQL)CodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingSQL (MySQL)CodeEnvSParam"/>
+      </context>
+      <context name="HighlightingSQL (MySQL)CodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingSQL (MySQL)CodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingSQL (MySQL)CodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginSQL (MySQL)"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingSQL (MySQL)CodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginSQL (MySQL)"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginSQL (MySQL)" attribute="Normal Text" lineEndContext="#pop!HighlightingSQL (MySQL)">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingSQL (MySQL)" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##SQL (MySQL)" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingNSISCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingNSISCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingNSISCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingNSISCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingNSISCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginNSIS"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingNSISCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginNSIS"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginNSIS" attribute="Normal Text" lineEndContext="#pop!HighlightingNSIS">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingNSIS" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##NSIS" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingIntel x86 (NASM)CodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingIntel x86 (NASM)CodeEnvSParam"/>
+      </context>
+      <context name="HighlightingIntel x86 (NASM)CodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingIntel x86 (NASM)CodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingIntel x86 (NASM)CodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginIntel x86 (NASM)"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingIntel x86 (NASM)CodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginIntel x86 (NASM)"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginIntel x86 (NASM)" attribute="Normal Text" lineEndContext="#pop!HighlightingIntel x86 (NASM)">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingIntel x86 (NASM)" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Intel x86 (NASM)" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingNemerleCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingNemerleCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingNemerleCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingNemerleCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingNemerleCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginNemerle"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingNemerleCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginNemerle"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginNemerle" attribute="Normal Text" lineEndContext="#pop!HighlightingNemerle">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingNemerle" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Nemerle" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingnesCCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingnesCCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingnesCCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingnesCCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingnesCCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginnesC"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingnesCCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginnesC"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginnesC" attribute="Normal Text" lineEndContext="#pop!HighlightingnesC">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingnesC" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##nesC" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingNimCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingNimCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingNimCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingNimCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingNimCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginNim"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingNimCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginNim"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginNim" attribute="Normal Text" lineEndContext="#pop!HighlightingNim">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingNim" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Nim" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingNixCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingNixCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingNixCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingNixCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingNixCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginNix"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingNixCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginNix"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginNix" attribute="Normal Text" lineEndContext="#pop!HighlightingNix">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingNix" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Nix" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingObjective-CCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingObjective-CCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingObjective-CCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingObjective-CCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingObjective-CCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginObjective-C"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingObjective-CCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginObjective-C"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginObjective-C" attribute="Normal Text" lineEndContext="#pop!HighlightingObjective-C">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingObjective-C" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Objective-C" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingObjective-C++CodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingObjective-C++CodeEnvSParam"/>
+      </context>
+      <context name="HighlightingObjective-C++CodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingObjective-C++CodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingObjective-C++CodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginObjective-C++"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingObjective-C++CodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginObjective-C++"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginObjective-C++" attribute="Normal Text" lineEndContext="#pop!HighlightingObjective-C++">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingObjective-C++" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Objective-C++" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingObjective CamlCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingObjective CamlCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingObjective CamlCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingObjective CamlCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingObjective CamlCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginObjective Caml"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingObjective CamlCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginObjective Caml"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginObjective Caml" attribute="Normal Text" lineEndContext="#pop!HighlightingObjective Caml">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingObjective Caml" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Objective Caml" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingOctaveCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingOctaveCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingOctaveCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingOctaveCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingOctaveCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginOctave"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingOctaveCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginOctave"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginOctave" attribute="Normal Text" lineEndContext="#pop!HighlightingOctave">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingOctave" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Octave" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingPerlCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingPerlCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingPerlCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingPerlCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingPerlCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginPerl"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingPerlCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginPerl"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginPerl" attribute="Normal Text" lineEndContext="#pop!HighlightingPerl">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingPerl" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Perl" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingPHP/PHPCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingPHP/PHPCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingPHP/PHPCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingPHP/PHPCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingPHP/PHPCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginPHP/PHP"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingPHP/PHPCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginPHP/PHP"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginPHP/PHP" attribute="Normal Text" lineEndContext="#pop!HighlightingPHP/PHP">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingPHP/PHP" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##PHP/PHP" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingPigCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingPigCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingPigCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingPigCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingPigCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginPig"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingPigCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginPig"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginPig" attribute="Normal Text" lineEndContext="#pop!HighlightingPig">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingPig" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Pig" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingPikeCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingPikeCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingPikeCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingPikeCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingPikeCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginPike"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingPikeCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginPike"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginPike" attribute="Normal Text" lineEndContext="#pop!HighlightingPike">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingPike" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Pike" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingPonyCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingPonyCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingPonyCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingPonyCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingPonyCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginPony"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingPonyCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginPony"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginPony" attribute="Normal Text" lineEndContext="#pop!HighlightingPony">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingPony" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Pony" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingPostScriptCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingPostScriptCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingPostScriptCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingPostScriptCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingPostScriptCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginPostScript"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingPostScriptCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginPostScript"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginPostScript" attribute="Normal Text" lineEndContext="#pop!HighlightingPostScript">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingPostScript" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##PostScript" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingPOV-RayCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingPOV-RayCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingPOV-RayCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingPOV-RayCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingPOV-RayCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginPOV-Ray"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingPOV-RayCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginPOV-Ray"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginPOV-Ray" attribute="Normal Text" lineEndContext="#pop!HighlightingPOV-Ray">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingPOV-Ray" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##POV-Ray" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingPowerShellCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingPowerShellCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingPowerShellCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingPowerShellCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingPowerShellCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginPowerShell"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingPowerShellCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginPowerShell"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginPowerShell" attribute="Normal Text" lineEndContext="#pop!HighlightingPowerShell">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingPowerShell" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##PowerShell" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingPraatCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingPraatCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingPraatCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingPraatCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingPraatCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginPraat"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingPraatCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginPraat"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginPraat" attribute="Normal Text" lineEndContext="#pop!HighlightingPraat">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingPraat" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Praat" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingPrologCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingPrologCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingPrologCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingPrologCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingPrologCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginProlog"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingPrologCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginProlog"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginProlog" attribute="Normal Text" lineEndContext="#pop!HighlightingProlog">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingProlog" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Prolog" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingProtobufCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingProtobufCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingProtobufCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingProtobufCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingProtobufCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginProtobuf"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingProtobufCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginProtobuf"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginProtobuf" attribute="Normal Text" lineEndContext="#pop!HighlightingProtobuf">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingProtobuf" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Protobuf" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingPugCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingPugCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingPugCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingPugCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingPugCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginPug"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingPugCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginPug"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginPug" attribute="Normal Text" lineEndContext="#pop!HighlightingPug">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingPug" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Pug" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingPuppetCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingPuppetCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingPuppetCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingPuppetCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingPuppetCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginPuppet"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingPuppetCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginPuppet"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginPuppet" attribute="Normal Text" lineEndContext="#pop!HighlightingPuppet">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingPuppet" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Puppet" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingPythonCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingPythonCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingPythonCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingPythonCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingPythonCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginPython"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingPythonCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginPython"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginPython" attribute="Normal Text" lineEndContext="#pop!HighlightingPython">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingPython" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Python"/>
+      </context>
+
+      <context name="HighlightingQMLCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingQMLCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingQMLCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingQMLCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingQMLCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginQML"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingQMLCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginQML"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginQML" attribute="Normal Text" lineEndContext="#pop!HighlightingQML">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingQML" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="Normal##QML" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingRelaxNG-CompactCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingRelaxNG-CompactCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingRelaxNG-CompactCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingRelaxNG-CompactCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingRelaxNG-CompactCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginRelaxNG-Compact"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingRelaxNG-CompactCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginRelaxNG-Compact"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginRelaxNG-Compact" attribute="Normal Text" lineEndContext="#pop!HighlightingRelaxNG-Compact">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingRelaxNG-Compact" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##RelaxNG-Compact" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingRPM SpecCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingRPM SpecCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingRPM SpecCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingRPM SpecCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingRPM SpecCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginRPM Spec"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingRPM SpecCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginRPM Spec"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginRPM Spec" attribute="Normal Text" lineEndContext="#pop!HighlightingRPM Spec">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingRPM Spec" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##RPM Spec" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingRacketCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingRacketCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingRacketCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingRacketCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingRacketCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginRacket"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingRacketCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginRacket"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginRacket" attribute="Normal Text" lineEndContext="#pop!HighlightingRacket">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingRacket" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Racket" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingREXXCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingREXXCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingREXXCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingREXXCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingREXXCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginREXX"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingREXXCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginREXX"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginREXX" attribute="Normal Text" lineEndContext="#pop!HighlightingREXX">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingREXX" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##REXX" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingRuby/Rails/RHTMLCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingRuby/Rails/RHTMLCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingRuby/Rails/RHTMLCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingRuby/Rails/RHTMLCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingRuby/Rails/RHTMLCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginRuby/Rails/RHTML"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingRuby/Rails/RHTMLCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginRuby/Rails/RHTML"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginRuby/Rails/RHTML" attribute="Normal Text" lineEndContext="#pop!HighlightingRuby/Rails/RHTML">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingRuby/Rails/RHTML" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Ruby/Rails/RHTML" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingreStructuredTextCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingreStructuredTextCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingreStructuredTextCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingreStructuredTextCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingreStructuredTextCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginreStructuredText"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingreStructuredTextCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginreStructuredText"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginreStructuredText" attribute="Normal Text" lineEndContext="#pop!HighlightingreStructuredText">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingreStructuredText" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##reStructuredText" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingRubyCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingRubyCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingRubyCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingRubyCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingRubyCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginRuby"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingRubyCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginRuby"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginRuby" attribute="Normal Text" lineEndContext="#pop!HighlightingRuby">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingRuby" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Ruby" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingRustCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingRustCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingRustCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingRustCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingRustCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginRust"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingRustCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginRust"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginRust" attribute="Normal Text" lineEndContext="#pop!HighlightingRust">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingRust" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Rust" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingSMLCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingSMLCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingSMLCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingSMLCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingSMLCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginSML"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingSMLCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginSML"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginSML" attribute="Normal Text" lineEndContext="#pop!HighlightingSML">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingSML" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##SML" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingSASSCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingSASSCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingSASSCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingSASSCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingSASSCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginSASS"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingSASSCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginSASS"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginSASS" attribute="Normal Text" lineEndContext="#pop!HighlightingSASS">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingSASS" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##SASS" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingScalaCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingScalaCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingScalaCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingScalaCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingScalaCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginScala"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingScalaCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginScala"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginScala" attribute="Normal Text" lineEndContext="#pop!HighlightingScala">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingScala" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Scala" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingSchemeCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingSchemeCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingSchemeCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingSchemeCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingSchemeCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginScheme"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingSchemeCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginScheme"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginScheme" attribute="Normal Text" lineEndContext="#pop!HighlightingScheme">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingScheme" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Scheme" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingscilabCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingscilabCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingscilabCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingscilabCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingscilabCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginscilab"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingscilabCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginscilab"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginscilab" attribute="Normal Text" lineEndContext="#pop!Highlightingscilab">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="Highlightingscilab" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##scilab" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingSCSSCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingSCSSCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingSCSSCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingSCSSCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingSCSSCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginSCSS"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingSCSSCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginSCSS"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginSCSS" attribute="Normal Text" lineEndContext="#pop!HighlightingSCSS">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingSCSS" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="Selector##SCSS">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##SCSS" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingsedCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingsedCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingsedCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingsedCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingsedCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginsed"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingsedCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginsed"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginsed" attribute="Normal Text" lineEndContext="#pop!Highlightingsed">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="Highlightingsed" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##sed" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingSieveCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingSieveCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingSieveCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingSieveCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingSieveCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginSieve"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingSieveCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginSieve"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginSieve" attribute="Normal Text" lineEndContext="#pop!HighlightingSieve">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingSieve" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Sieve" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingSmaliCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingSmaliCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingSmaliCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingSmaliCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingSmaliCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginSmali"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingSmaliCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginSmali"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginSmali" attribute="Normal Text" lineEndContext="#pop!HighlightingSmali">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingSmali" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Smali" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingSolidityCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingSolidityCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingSolidityCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingSolidityCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingSolidityCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginSolidity"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingSolidityCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginSolidity"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginSolidity" attribute="Normal Text" lineEndContext="#pop!HighlightingSolidity">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingSolidity" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Solidity" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingSpiceCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingSpiceCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingSpiceCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingSpiceCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingSpiceCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginSpice"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingSpiceCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginSpice"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginSpice" attribute="Normal Text" lineEndContext="#pop!HighlightingSpice">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingSpice" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Spice" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingSQLCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingSQLCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingSQLCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingSQLCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingSQLCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginSQL"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingSQLCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginSQL"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginSQL" attribute="Normal Text" lineEndContext="#pop!HighlightingSQL">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingSQL" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##SQL" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingStanCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingStanCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingStanCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingStanCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingStanCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginStan"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingStanCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginStan"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginStan" attribute="Normal Text" lineEndContext="#pop!HighlightingStan">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingStan" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Stan" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingStataCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingStataCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingStataCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingStataCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingStataCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginStata"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingStataCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginStata"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginStata" attribute="Normal Text" lineEndContext="#pop!HighlightingStata">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingStata" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Stata" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingSwiftCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingSwiftCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingSwiftCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingSwiftCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingSwiftCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginSwift"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingSwiftCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginSwift"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginSwift" attribute="Normal Text" lineEndContext="#pop!HighlightingSwift">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingSwift" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Swift" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingSystemVerilogCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingSystemVerilogCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingSystemVerilogCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingSystemVerilogCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingSystemVerilogCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginSystemVerilog"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingSystemVerilogCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginSystemVerilog"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginSystemVerilog" attribute="Normal Text" lineEndContext="#pop!HighlightingSystemVerilog">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingSystemVerilog" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##SystemVerilog" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingTOMLCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingTOMLCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingTOMLCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingTOMLCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingTOMLCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginTOML"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingTOMLCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginTOML"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginTOML" attribute="Normal Text" lineEndContext="#pop!HighlightingTOML">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingTOML" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##TOML" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingTADS 3CodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingTADS 3CodeEnvSParam"/>
+      </context>
+      <context name="HighlightingTADS 3CodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingTADS 3CodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingTADS 3CodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginTADS 3"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingTADS 3CodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginTADS 3"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginTADS 3" attribute="Normal Text" lineEndContext="#pop!HighlightingTADS 3">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingTADS 3" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##TADS 3" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingTcl/TkCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingTcl/TkCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingTcl/TkCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingTcl/TkCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingTcl/TkCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginTcl/Tk"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingTcl/TkCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginTcl/Tk"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginTcl/Tk" attribute="Normal Text" lineEndContext="#pop!HighlightingTcl/Tk">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingTcl/Tk" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Tcl/Tk" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingTcshCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingTcshCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingTcshCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingTcshCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingTcshCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginTcsh"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingTcshCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginTcsh"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginTcsh" attribute="Normal Text" lineEndContext="#pop!HighlightingTcsh">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingTcsh" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Tcsh" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingTerraformCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingTerraformCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingTerraformCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingTerraformCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingTerraformCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginTerraform"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingTerraformCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginTerraform"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginTerraform" attribute="Normal Text" lineEndContext="#pop!HighlightingTerraform">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingTerraform" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Terraform" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingLaTeXCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingLaTeXCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingLaTeXCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingLaTeXCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingLaTeXCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginLaTeX"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingLaTeXCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginLaTeX"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginLaTeX" attribute="Normal Text" lineEndContext="#pop!HighlightingLaTeX">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingLaTeX" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##LaTeX" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingTodo.txtCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingTodo.txtCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingTodo.txtCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingTodo.txtCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingTodo.txtCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginTodo.txt"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingTodo.txtCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginTodo.txt"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginTodo.txt" attribute="Normal Text" lineEndContext="#pop!HighlightingTodo.txt">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingTodo.txt" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Todo.txt" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingTypeScriptCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingTypeScriptCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingTypeScriptCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingTypeScriptCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingTypeScriptCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginTypeScript"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingTypeScriptCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginTypeScript"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginTypeScript" attribute="Normal Text" lineEndContext="#pop!HighlightingTypeScript">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingTypeScript" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="Normal##TypeScript" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingValaCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingValaCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingValaCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingValaCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingValaCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginVala"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingValaCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginVala"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginVala" attribute="Normal Text" lineEndContext="#pop!HighlightingVala">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingVala" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Vala" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingVelocityCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingVelocityCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingVelocityCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingVelocityCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingVelocityCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginVelocity"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingVelocityCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginVelocity"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginVelocity" attribute="Normal Text" lineEndContext="#pop!HighlightingVelocity">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingVelocity" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##Velocity" includeAttrib="true"/> -->
+      </context>
+
+      <context name="HighlightingVerilogCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingVerilogCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingVerilogCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingVerilogCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingVerilogCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginVerilog"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingVerilogCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginVerilog"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginVerilog" attribute="Normal Text" lineEndContext="#pop!HighlightingVerilog">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingVerilog" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##Verilog" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingVHDLCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingVHDLCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingVHDLCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingVHDLCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingVHDLCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginVHDL"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingVHDLCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginVHDL"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginVHDL" attribute="Normal Text" lineEndContext="#pop!HighlightingVHDL">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingVHDL" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##VHDL" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingXMLCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingXMLCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingXMLCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingXMLCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingXMLCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginXML"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingXMLCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginXML"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginXML" attribute="Normal Text" lineEndContext="#pop!HighlightingXML">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingXML" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##XML" includeAttrib="true"/>
+      </context>
+
+      <context name="Highlightingx.org ConfigurationCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!Highlightingx.org ConfigurationCodeEnvSParam"/>
+      </context>
+      <context name="Highlightingx.org ConfigurationCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="Highlightingx.org ConfigurationCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="Highlightingx.org ConfigurationCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginx.org Configuration"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="Highlightingx.org ConfigurationCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginx.org Configuration"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginx.org Configuration" attribute="Normal Text" lineEndContext="#pop!Highlightingx.org Configuration">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="Highlightingx.org Configuration" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##x.org Configuration" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingxsltCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingxsltCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingxsltCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingxsltCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingxsltCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginxslt"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingxsltCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginxslt"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginxslt" attribute="Normal Text" lineEndContext="#pop!Highlightingxslt">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="Highlightingxslt" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##xslt" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingYAMLCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingYAMLCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingYAMLCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingYAMLCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingYAMLCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginYAML"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingYAMLCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginYAML"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginYAML" attribute="Normal Text" lineEndContext="#pop!HighlightingYAML">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingYAML" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <IncludeRules context="##YAML" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightingYANGCodeEnvS" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingYANGCodeEnvSParam"/>
+      </context>
+      <context name="HighlightingYANGCodeEnvSParam" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="{" attribute="Normal Text" context="HighlightingYANGCodeEnvSParamInside"/>
+        <IncludeRules context="FindComments"/>
+      </context>
+      <context name="HighlightingYANGCodeEnvSParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop!HighlightingBeginYANG"/>
+        <IncludeRules context="FindComments"/>
+        <RegExpr String="\\&envname;" attribute="Macro" context="#stay"/>
+      </context>
+      <context name="HighlightingYANGCodeEnv" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="HighlightingBeginYANG"/>
+        <RegExpr String="[^}]*" attribute="Normal Text" context="#stay"/>
+      </context>
+      <context name="HighlightingBeginYANG" attribute="Normal Text" lineEndContext="#pop!HighlightingYANG">
+        <DetectSpaces/>
+        <RegExpr String=".+" attribute="Error" context="#stay"/>
+      </context>
+      <context name="HighlightingYANG" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightingCommon"/>
+        <!-- <IncludeRules context="##YANG" includeAttrib="true"/> -->
+      </context>
+      <!-- end of mintedcode environment -->
+
+      <!-- end of verbatim environment -->
+      <context name="VerbFindEnd" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <DetectChar char="{" attribute="Normal Text" context="#stay"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop#pop#pop#pop" endRegion="block"/>
+        <keyword String="VerbatimEnv" attribute="Environment"/>
+      </context>
+
+      <!-- begin comment environment -->
+      <context name="CommentEnv" attribute="Environment" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Normal Text" context="BlockComment"/>
+        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
+       </context>
+
+      <!-- parse comment text -->
+      <context name="BlockComment" attribute="Comment" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <RegExpr String="\\end(?=\s*\{comment\*?\})" attribute="Structure" context="CommFindEnd"/>
+      </context>
+
+      <!-- end of comment environment -->
+      <context name="CommFindEnd" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <DetectChar char="{" attribute="Normal Text" context="#stay"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop#pop#pop" endRegion="block"/>
+        <keyword String="CommentEnv" attribute="Environment"/>
+      </context>
+
+      <!-- environment type 4: math environment with its own mathmode -->
+      <context name="MathEnv" attribute="Environment" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Normal Text" context="MathModeEnv"/>
+        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
+      </context>
+
+      <!-- environment type 5: math environment with its own mathmode and parameter -->
+      <context name="MathEnvWithParam" attribute="Environment" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Normal Text" context="MathEnvWithParamInside"/>
+        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
+      </context>
+      <context name="MathEnvWithParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <RangeDetect char="[" char1="]" attribute="Normal Text" context="#stay"/>
+        <DetectChar char="{" attribute="Normal Text" context="MathEnvParamInside"/>
+      </context>
+      <context name="MathEnvParamInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop!MathModeEnv"/>
+      </context>
+
+      <!-- parse math environment -->
+      <context name="MathModeEnv" attribute="Math" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="\" attribute="Math" context="BackslashMathModeEnv" lookAhead="true"/>
+        <DetectChar char="$" attribute="Error" context="#stay"/>
+        <IncludeRules context="FindComments"/>
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+      </context>
+      <context name="BackslashMathModeEnv" attribute="Math" lineEndContext="#pop">
+        <WordDetect String="\begin" attribute="Structure" context="#pop!FindBeginEnvironment" beginRegion="block" additionalDeliminator="\"/>
+        <WordDetect String="\end" attribute="Structure" context="#pop!MathFindEnd" additionalDeliminator="\"/>
+        <keyword String="MathModeText" attribute="Macro Mathmode" context="#pop!MathModeText"/>
+        <Detect2Chars char="\" char1="(" attribute="Error" context="#pop"/>
+        <Detect2Chars char="\" char1=")" attribute="Error" context="#pop"/>
+        <Detect2Chars char="\" char1="[" attribute="Error" context="#pop"/>
+        <Detect2Chars char="\" char1="]" attribute="Error" context="#pop"/>
+        <DetectChar char="\" attribute="Macro Mathmode" context="#pop!MathContrSeq"/>
+      </context>
+
+      <!-- end of math environment -->
+      <context name="MathFindEnd" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <DetectChar char="{" attribute="Normal Text" context="#stay"/>
+        <keyword String="MathEnvParam" attribute="Environment" context="MathFindEndInside"/>
+        <keyword String="MathEnv" attribute="Environment" context="MathFindEndInside"/>
+        <RegExpr String="&envname;" attribute="Environment" context="NoMathFindEndInside"/>
+        <RegExpr String="." attribute="Error" context="#pop"/>
+      </context>
+      <context name="MathFindEndInside" attribute="Normal Text" lineEndContext="#pop#pop">
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop#pop#pop#pop" endRegion="block"/>
+        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
+      </context>
+      <context name="NoMathFindEndInside" attribute="Normal Text" lineEndContext="#pop#pop">
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop" endRegion="block"/>
+        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
+      </context>
+
+      <!-- environment type 9: tabular -->
+      <context name="TabEnv" attribute="Environment" lineEndContext="#stay" fallthroughContext="#pop#pop#pop">
+        <DetectChar char="}" attribute="Normal Text" context="Tab"/>
+        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
+      </context>
+
+      <!-- parse tabular text -->
+      <context name="Tab" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="&amp;" attribute="Ampersand" context="#stay"/>
+        <Detect2Chars char="@" char1="{" attribute="Column Separator" context="Column Separator"/>
+        <RegExpr String="\\end\b" attribute="Structure" context="TabFindEnd"/> <!-- endEnv -->
+        <IncludeRules context="Normal Text" />
+      </context>
+
+      <context name="Column Separator" attribute="Column Separator" lineEndContext="#stay">
+        <DetectChar char="{" attribute="Column Separator" context="Column Separator"/>
+        <DetectChar char="}" attribute="Column Separator" context="#pop"/>
+      </context>
+
+      <!-- end of tabular environment -->
+      <context name="TabFindEnd" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <DetectChar char="{" attribute="Normal Text" context="#stay"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop#pop#pop" endRegion="block"/>
+        <keyword String="TabEnv" attribute="Environment" context="#stay"/>
+        <keyword String="TabuEnv" attribute="Environment" context="#stay"/>
+      </context>
+
+      <!-- environment type 10: tabu -->
+      <context name="TabuEnv" attribute="Environment" lineEndContext="#stay" fallthroughContext="#pop#pop#pop">
+        <DetectChar char="}" attribute="Normal Text" context="Tabu"/>
+        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
+      </context>
+
+      <!-- parse tabu options
+        \begin {tabu} [pos] {tabular preamble}
+        \begin {tabu} to <dimen> [pos] {tabular preamble}
+        \begin {tabu} spread <dimen> [pos] {tabular preamble}
+      -->
+      <context name="Tabu" attribute="Normal Text" lineEndContext="#pop!Tab">
+        <DetectChar char="{" attribute="Normal Text" context="TabuPreambule"/>
+        <DetectChar char="\" context="#pop!Tab" lookAhead="1"/>
+      </context>
+      <context name="TabuPreambule" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop!Tab"/>
+        <DetectChar char="{" attribute="Normal Text" context="TabuPreambuleInside"/>
+      </context>
+      <context name="TabuPreambuleInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
+        <DetectChar char="{" attribute="Normal Text" context="TabuPreambuleInside"/>
+      </context>
+
+      <!-- math mode: starting with $ -->
+      <context name="MathModeTex" attribute="Math" lineEndContext="#stay" fallthroughContext="#pop!MathMode">
+        <DetectChar char="$" attribute="Math" context="#pop!MathModeDisplay" beginRegion="mathMode"/>
+      </context>
+      <context name="MathMode" attribute="Math" lineEndContext="#stay">
+        <DetectChar char="$" attribute="Math" context="#pop"/>
+        <IncludeRules context="MathModeCommon"/>
+      </context>
+
+      <!-- math mode: starting with $$ -->
+      <context name="MathModeDisplay" attribute="Math" lineEndContext="#stay">
+        <Detect2Chars char="$" char1="$" attribute="Math" context="#pop" endRegion="mathMode"/>
+        <DetectChar char="$" attribute="Error" context="#stay"/>
+        <IncludeRules context="MathModeCommon"/>
+      </context>
+
+      <!-- math mode: starting with \( -->
+      <context name="MathModeLatex" attribute="Math" lineEndContext="#stay">
+        <Detect2Chars char="\" char1=")" attribute="Math" context="#pop"/>
+        <IncludeRules context="MathModeCommon"/>
+      </context>
+
+      <!-- math mode: starting with \[ -->
+      <context name="MathModeLatexEquation" attribute="Math" lineEndContext="#stay">
+        <Detect2Chars char="\" char1="]" attribute="Math" context="#pop" endRegion="mathMode"/>
+        <IncludeRules context="MathModeCommon"/>
+      </context>
+
+      <!-- math mode: \ensuremath{...} -->
+      <context name="MathModeEnsure" attribute="Math" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="{" attribute="Math" context="#pop!MathModeEnsureInside"/>
+        <RegExpr String="." attribute="Error" context="#pop"/>
+      </context>
+      <context name="MathModeEnsureInside" attribute="Math" lineEndContext="#stay">
+        <DetectChar char="{" attribute="Math" context="MathModeEnsureInside" />
+        <DetectChar char="}" attribute="Math" context="#pop" />
+        <IncludeRules context="MathModeCommon"/>
+      </context>
+
+      <!-- math mode common -->
+      <context name="MathModeCommon" attribute="Math" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar char="\" attribute="Math" context="BackslashMathModeCommon" lookAhead="true"/>
+        <IncludeRules context="FindComments"/>
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+      </context>
+      <context name="BackslashMathModeCommon" attribute="Math" lineEndContext="#pop">
+        <WordDetect String="\begin" attribute="Structure" context="#pop!MathEnvironment" beginRegion="block" additionalDeliminator="\"/>
+        <WordDetect String="\end" attribute="Structure" context="#pop!MathEnvironmentEnd" additionalDeliminator="\"/>
+        <keyword String="MathModeText" attribute="Macro Mathmode" context="#pop!MathModeText" />
+        <DetectChar char="\" attribute="Macro Mathmode" context="#pop!MathContrSeq"/>
+      </context>
+      <context name="MathEnvironment" attribute="Math" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="{" attribute="Normal Text" context="MathEnvironmentInside"/>
+        <RegExpr String="." attribute="Error" context="#pop"/>
+      </context>
+      <context name="MathEnvironmentInside" attribute="Environment" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop"/>
+        <keyword String="TabuEnv" attribute="Environment" context="MathTabuEnv"/>
+        <RegExpr String="&envname;" attribute="Environment" context="#stay"/>
+        <RegExpr String="[^}a-zA-Z]+|." attribute="Error" context="#stay"/>
+      </context>
+      <context name="MathEnvironmentEnd" attribute="Math" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="{" attribute="Normal Text" context="MathEnvironmentEndInside"/>
+        <RegExpr String="." attribute="Error" context="#pop"/>
+      </context>
+      <context name="MathEnvironmentEndInside" attribute="Environment" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop" endRegion="block"/>
+        <WordDetect String="ensuremath" attribute="Environment" context="#pop!LatexEnvEnd"/>
+        <RegExpr String="&envname;" attribute="Environment" context="#stay"/>
+        <RegExpr String="[^}a-zA-Z]+|." attribute="Error" context="#pop#pop"/>
+      </context>
+
+      <!-- tabu in mathmode
+        \begin {tabu} [pos] {tabular preamble}
+        \begin {tabu} to <dimen> [pos] {tabular preamble}
+        \begin {tabu} spread <dimen> [pos] {tabular preamble}
+      -->
+      <context name="MathTabuEnv" attribute="Environment" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Normal Text" context="MathTabu"/>
+        <RegExpr String="[^}]*" attribute="Error" context="#stay"/>
+      </context>
+      <context name="MathTabu" attribute="Math" lineEndContext="#pop#pop#pop#pop">
+        <DetectChar char="{" attribute="Normal Text" context="#pop#pop#pop#pop!MathTabuPreambule"/>
+        <DetectChar char="\" context="#pop#pop#pop#pop" lookAhead="1"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop#pop"/>
+      </context>
+      <context name="MathTabuPreambule" attribute="Math" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
+        <DetectChar char="{" attribute="Normal Text" context="MathTabuPreambule"/>
+      </context>
+
+      <!-- command in mathmode -->
+      <context name="MathContrSeq" attribute="Macro Mathmode" lineEndContext="#pop">
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="&envname;|." attribute="Macro Mathmode" context="#pop" />
+      </context>
+
+      <!-- text in mathmode -->
+      <context name="MathModeText" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="MathContrSeq">
+        <DetectSpaces/>
+        <DetectChar char="{" attribute="Normal Text" context="MathModeTextParameterStart"/>
+      </context>
+      <context name="MathModeTextInside" attribute="Normal Text" lineEndContext="#stay" >
+        <DetectChar char="{" attribute="Normal Text" context="MathModeTextParameterStart"/>
+      </context>
+
+      <context name="MathModeTextParameterStart" attribute="Normal Text" lineEndContext="#stay" >
+        <DetectChar char="&bullet;" attribute="Bullet" context="#stay"/>
+        <RangeDetect char="$" char1="$" attribute="Math" context="#stay"/>
+        <DetectChar char="{" attribute="Normal Text" context="MathModeTextInside" lookAhead="true"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop"/>
+        <IncludeRules context="FindComments"/>
+        <DetectChar char="\" attribute="Macro Mathmode" context="MathContrSeq"/>
+      </context>
+
+      <!-- iffalse aka multiline comment -->
+      <context name="Multiline Comment" attribute="Comment" lineEndContext="#stay">
+        <DetectChar char="\" attribute="Comment" context="BackslashMultilineComment" lookAhead="true"/>
+      </context>
+      <context name="BackslashMultilineComment" attribute="Comment" lineEndContext="#pop">
+        <keyword String="iffalseend" attribute="Comment" context="#pop#pop"/>
+        <DetectChar char="\" attribute="Comment" context="#pop"/>
+      </context>
+
+      <!-- comment -->
+      <context name="FindComments" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr String="&#037;+\s*BEGIN\b" attribute="Region Marker" context="RegionComment" firstNonSpace="true" beginRegion="region-marker"/>
+        <RegExpr String="&#037;+\s*END\b" attribute="Region Marker" context="RegionComment" firstNonSpace="true" endRegion="region-marker"/>
+        <DetectChar char="%" attribute="Comment" context="Comment"/>
+      </context>
+      <context name="RegionComment" attribute="Region Marker" lineEndContext="#pop"/>
+      <context name="Comment" attribute="Comment" lineEndContext="#pop">
+        <DetectSpaces/>
+        <IncludeRules context="##Comments" />
+        <DetectIdentifier/>
+        <DetectChar char="\" attribute="Comment" context="BackslashComment" lookAhead="true"/>
+      </context>
+      <context name="BackslashComment" attribute="Comment" lineEndContext="#pop">
+        <keyword String="ResetHL" attribute="Comment" context="#pop!Normal Text"/>
+        <DetectChar char="\" attribute="Comment" context="#pop"/>
+      </context>
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Option Text" defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Macro" defStyleNum="dsFunction" spellChecking="false"/>
+      <itemData name="Comment" defStyleNum="dsComment" spellChecking="false"/>
+      <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
+      <itemData name="Math" defStyleNum="dsSpecialString" spellChecking="false"/>
+      <!-- begin/end -->
+      <itemData name="Structure" defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Builtin Macro" defStyleNum="dsBuiltIn" spellChecking="false"/>
+      <itemData name="Macro Mathmode" defStyleNum="dsSpecialChar" spellChecking="false"/>
+      <itemData name="Environment" defStyleNum="dsExtension" spellChecking="false"/>
+      <itemData name="Reference" defStyleNum="dsExtension" spellChecking="false"/>
+      <itemData name="Verbatim" defStyleNum="dsVerbatimString" spellChecking="false"/>
+      <itemData name="Verbatim Code" defStyleNum="dsVerbatimString" spellChecking="false"/>
       <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
       <itemData name="Bullet" defStyleNum="dsInformation" spellChecking="false"/>
       <itemData name="Ampersand" defStyleNum="dsOperator" bold="1" spellChecking="false"/>
diff --git a/syntax/lex.xml b/syntax/lex.xml
--- a/syntax/lex.xml
+++ b/syntax/lex.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!--
   ========================================================================
 
@@ -20,7 +20,7 @@
   
   ========================================================================
 -->
-<language name="Lex/Flex" version="7" kateversion="5.0" section="Sources" extensions="*.l;*.lex;*.flex" author="Jan Villat (jan.villat@net2000.ch)" license="LGPL">
+<language name="Lex/Flex" version="7" kateversion="5.79" section="Sources" extensions="*.l;*.lex;*.flex" author="Jan Villat (jan.villat@net2000.ch)" license="LGPL">
 
 <highlighting>
 <contexts>
@@ -34,7 +34,7 @@
     <Detect2Chars attribute="Comment" context="Comment" char="/" char1="*" column="0" beginRegion="BlockComment"/>
     <RegExpr attribute="Definition" context="Definition RegExpr" String="^[A-Za-z_]\w*\s+" column="0"/>
   </context>
-  <context name="Rules" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="Rule RegExpr">
+  <context name="Rules" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="Rule RegExpr">
     <IncludeRules context="Detect C" />
     <Detect2Chars attribute="Content-Type Delimiter" context="User Code" char="%" char1="%" beginRegion="code" endRegion="rules" />
   </context>
@@ -89,12 +89,12 @@
     <DetectChar attribute="RegExpr" context="RegExpr Q" char="&quot;" />  
   </context>
   
-  <context name="Start Conditions Scope" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="Rule RegExpr">
+  <context name="Start Conditions Scope" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="Rule RegExpr">
     <RegExpr attribute="Content-Type Delimiter" context="#pop" String="\s*\}" endRegion="SCscope" />
     <DetectSpaces attribute="Normal Text" context="Rule RegExpr" />
   </context>
   
-  <context name="Action" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="Action C">
+  <context name="Action" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="Action C">
     <RegExpr attribute="Directive" context="#stay" String="\|\s*$" />
     <Detect2Chars attribute="Content-Type Delimiter" context="Lex Rule C Bloc" char="%" char1="{" beginRegion="lexCbloc" />
   </context>
diff --git a/syntax/lilypond.xml b/syntax/lilypond.xml
--- a/syntax/lilypond.xml
+++ b/syntax/lilypond.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd" [
+<!DOCTYPE language [
   <!ENTITY b "(?![A-Za-z])">
   <!ENTITY rest "\b[srR]&b;">
   <!ENTITY pitch "\b([a-h]((iss){1,2}|(ess){1,2}|(is){1,2}|(es){1,2}|(sharp){1,2}|(flat){1,2}|ss?|ff?)?|(do|re|mi|fa|sol|la|si)(dd?|bb?|ss?|kk?)?|q)('+|,+|&b;)">
@@ -23,7 +23,7 @@
   <!ENTITY markupnotextargs "arrow-head|beam|char|(semi|sesqui|double)?(flat|sharp)|draw-(circle|line)|epsfile|eyeglasses|filled-box|fret-diagram(-terse|-verbose)?|fromproperty|harp-pedal|(justify|wordwrap)-(field|string)|left-brace|lookup|markalphabet|markletter|musicglyph|natural|note-by-number|note|null|path|right-brace|simple|(back)?slashed-digit|stencil|strut|tied-lyric|triangle|verbatim-file">
   <!ENTITY markupwithtextargs "markup|bold|(rounded-)?box|bracket|caps|(center|general|left|right)-align|circle|((center|dir|left|right)-)?column|combine|concat|dynamic|fill-line|finger|fontCaps|(abs-)?fontsize|fraction|halign|hbracket|hcenter-in|hcenter|hspace|huge|italic|justify|larger?|line|lower|magnify|medium|normal-size-(sub|super)|normal-text|normalsize|number|on-the-fly|override|pad-(around|markup|to-box|x)|page-ref|postscript|put-adjacent|raise|roman|rotate|sans|small(er)?|smallCaps|sub|super|teeny|text|tiny|translate(-scaled)?|transparent|typewriter|underline|upright|vcenter|whiteout|with-(color|dimensions|url)|wordwrap|(markup|column-|justified-|override-|wordwrap-)lines|wordwrap-(string-)?internal">
   <!ENTITY deprecatedmarkup "bigger|h?center">
-  <!ENTITY headervars "dedication|(sub){,2}title|poet|composer|meter|opus|arranger|instrument|piece|breakbefore|copyright|tagline|mutopia(title|composer|poet|opus|instrument)|date|enteredby|source|style|maintainer(Email|Web)?|moreInfo|lastupdated|texidoc|footer">
+  <!ENTITY headervars "dedication|(?:sub){0,2}title|poet|composer|meter|opus|arranger|instrument|piece|breakbefore|copyright|tagline|mutopia(title|composer|poet|opus|instrument)|date|enteredby|source|style|maintainer(Email|Web)?|moreInfo|lastupdated|texidoc|footer">
 
   <!-- The '-new' entities are for for LilyPond 2.13.4 and higher, and '-old' for LilyPond up to 2.12 -->
   <!ENTITY paper-margin "(top|bottom|left|right)-margin|(foot|head)-separation|indent|short-indent|paper-(height|width)|horizontal-shift|line-width">
@@ -56,7 +56,7 @@
 ]>
 <language name="LilyPond" section="Other"
           style="lilypond" indenter="lilypond"
-          version="10" kateversion="5.0"
+          version="11" kateversion="5.0"
           extensions="*.ly;*.LY;*.ily;*.ILY;*.lyi;*.LYI"
           mimetype="text/x-lilypond"
           author="Wilbert Berendsen (info@wilbertberendsen.nl)" license="LGPL">
@@ -1076,7 +1076,7 @@
         <RegExpr String="(&quot;?)\b(?:&engravers00;|&engravers01;|&engravers02;|&engravers1;|&engravers2;)\b\1" attribute="Engraver"/>
         <keyword String="layoutobjects" attribute="Layout Object"/>
         <keyword String="properties" attribute="Property"/>
-        <RegExpr String="\b(&headervars;|&papervars;|&layoutvars;)\b" attribute="Variable"/>
+        <RegExpr String="\b(?:&headervars;|&papervars;|&layoutvars;)\b" attribute="Variable"/>
         <keyword String="deprecatedproperties" attribute="Deprecated Property"/>
         <IncludeRules context="default"/>
       </context>
diff --git a/syntax/literate-curry.xml b/syntax/literate-curry.xml
--- a/syntax/literate-curry.xml
+++ b/syntax/literate-curry.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="Literate Curry" version="6" kateversion="5.0"
           section="Sources" extensions="*.lcurry" mimetype="text/x-curry"
           author="Björn Peemöller (bjp@informatik.uni-kiel.de)" license="LGPL"
diff --git a/syntax/literate-haskell.xml b/syntax/literate-haskell.xml
--- a/syntax/literate-haskell.xml
+++ b/syntax/literate-haskell.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="Literate Haskell" version="9" kateversion="5.53" section="Sources" extensions="*.lhs" mimetype="text/x-literate-haskell" author="Nicolas Wu (zenzike@gmail.com)" license="LGPL">
   <highlighting>
   <contexts>
diff --git a/syntax/llvm.xml b/syntax/llvm.xml
--- a/syntax/llvm.xml
+++ b/syntax/llvm.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="LLVM" section="Sources"
           version="4" kateversion="5.0"
           extensions="*.ll"
diff --git a/syntax/lua.xml b/syntax/lua.xml
--- a/syntax/lua.xml
+++ b/syntax/lua.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
 <!ENTITY HEX "[0-9A-Fa-f]">
 ]>
@@ -48,7 +48,7 @@
     - NOTE, FIXME, TODO alerts added on comments
     - improved highlighting
 -->
-<language name="Lua" version="14" indenter="lua" kateversion="5.0" section="Scripts" extensions="*.lua" mimetype="text/x-lua">
+<language name="Lua" version="18" indenter="lua" kateversion="5.79" section="Scripts" extensions="*.lua;*.rockspec" mimetype="text/x-lua">
   <highlighting>
     <list name="keywords">
       <item>and</item>
@@ -57,7 +57,9 @@
       <item>local</item>
       <item>not</item>
       <item>or</item>
-      <!-- pseudo-variables -->
+    </list>
+
+    <list name="specialvars">
       <item>nil</item>
       <item>false</item>
       <item>true</item>
@@ -459,13 +461,9 @@
     </list>
 
     <contexts>
-      <context name="Shebang"       attribute="Comment" lineEndContext="Normal" lineEmptyContext="Normal" fallthrough="true" fallthroughContext="Normal">
+      <context name="Normal"        attribute="Normal Text" lineEndContext="#stay">
         <Detect2Chars attribute="Comment" context="ShebangLine" char="#" char1="!" column="0"/>
-      </context>
 
-      <context name="ShebangLine"   attribute="Comment"     lineEndContext="#pop!Normal" />
-
-      <context name="Normal"        attribute="Normal Text" lineEndContext="#stay">
         <DetectSpaces />
         <keyword      attribute="Deprecated" context="#stay"       String="deprecated" />
         <Detect2Chars attribute="Comment" context="MatchComment" char="-" char1="-" lookAhead="true"/>
@@ -480,6 +478,8 @@
         <WordDetect   attribute="Keyword"  context="Function" beginRegion="chunk" String="function" />
         <WordDetect   attribute="Keyword"  context="Local" String="local" />
         <keyword      attribute="Keyword"  context="#stay" String="keywords" />
+        <keyword      attribute="Special Variable" context="#stay" String="specialvars" additionalDeliminator="."/>
+        <WordDetect   attribute="Self Variable" context="#stay" String="self" additionalDeliminator="." />
         <keyword      attribute="Control"  context="StartControl" beginRegion="chunk" String="startcontrol" />
         <keyword      attribute="Control"  context="#stay" String="control" />
 
@@ -500,21 +500,23 @@
         <AnyChar      attribute="Symbols"  context="#stay" String=":[]().,=~+-*/%&amp;|^&gt;&lt;#;" />
       </context>
 
-      <context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+      <context name="ShebangLine"   attribute="Comment"     lineEndContext="#pop" />
+
+      <context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
         <IncludeRules context="##DoxygenLua" />
         <RegExpr attribute="Comment" context="#pop!BlockComment" String="--\[(=*)\[" beginRegion="BlockComment" />
         <Detect2Chars attribute="Comment" context="#pop!Comment" char="-" char1="-" />
       </context>
 
       <context name="BlockComment" attribute="Comment" lineEndContext="#stay" dynamic="true">
-        <RegExpr attribute="Comment" context="#stay" String="[^\]]*" />
+        <IncludeRules context="Comment" />
         <StringDetect attribute="Comment" context="#pop" String="]%1]" dynamic="true" endRegion="BlockComment" />
-        <IncludeRules context="##Comments" />
       </context>
 
-      <context name="Comment"       attribute="Comment"     lineEndContext="#pop">
+      <context name="Comment" attribute="Comment" lineEndContext="#pop">
         <DetectSpaces />
         <IncludeRules context="##Comments" />
+        <DetectIdentifier />
       </context>
 
       <context name="StartControl" attribute="Normal Text"  lineEndContext="#stay">
@@ -523,19 +525,20 @@
         <IncludeRules context="Normal" />
       </context>
 
-      <context name="NumberSuffix" attribute="Normal Text"  lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+      <context name="NumberSuffix" attribute="Normal Text"  lineEndContext="#pop" fallthroughContext="#pop">
         <!-- some syntax like a=32print(a) are valid, but ugly -->
         <DetectIdentifier attribute="Error" context="#pop" />
       </context>
 
-      <context name="Local" attribute="Normal Text"  lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+      <context name="Local" attribute="Normal Text"  lineEndContext="#pop" fallthroughContext="#pop">
         <DetectSpaces />
+        <WordDetect   attribute="Keyword" context="#pop!Function" beginRegion="chunk" String="function" />
         <Detect2Chars attribute="Comment" context="MatchComment" char="-" char1="-" lookAhead="true"/>
         <RegExpr          attribute="Constant" context="LocalVariable" String="\b[A-Z_][A-Z0-9_]*\b" />
         <DetectIdentifier attribute="Variable" context="LocalVariable" />
       </context>
 
-      <context name="LocalVariable" attribute="Normal Text"  lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
+      <context name="LocalVariable" attribute="Normal Text"  lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
         <DetectSpaces />
         <Detect2Chars attribute="Comment" context="MatchComment" char="-" char1="-" lookAhead="true"/>
         <DetectChar   attribute="Symbols"   context="#pop" char="," />
@@ -589,16 +592,18 @@
       <itemData name="BVar"            defStyleNum="dsVariable" spellChecking="false"/>
       <itemData name="Comment"         defStyleNum="dsComment"/>
       <itemData name="Constant"        defStyleNum="dsConstant" spellChecking="false"/>
-      <itemData name="Control"         defStyleNum="dsControlFlow" color="#A1A100" selColor="#ffffff" bold="0" italic="0" spellChecking="false"/>
+      <itemData name="Control"         defStyleNum="dsControlFlow" spellChecking="false"/>
       <itemData name="Error"           defStyleNum="dsError" spellChecking="false"/>
       <itemData name="Deprecated"      defStyleNum="dsError" spellChecking="false"/>
       <itemData name="Keyword"         defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Special Variable" defStyleNum="dsKeyword" spellChecking="false"/>
       <itemData name="Numbers"         defStyleNum="dsDecVal" spellChecking="false"/>
       <itemData name="Special Char"    defStyleNum="dsSpecialChar" spellChecking="false"/>
       <itemData name="Strings"         defStyleNum="dsString"/>
       <itemData name="RawStrings"      defStyleNum="dsVerbatimString"/>
       <itemData name="Symbols"         defStyleNum="dsOperator" spellChecking="false"/>
-      <itemData name="Variable"        defStyleNum="dsNormal" /> <!-- JGM -->
+      <itemData name="Variable"        defStyleNum="dsVariable" spellChecking="false"/>
+      <itemData name="Self Variable"   defStyleNum="dsVariable" spellChecking="false"/>
       <itemData name="Attribute"       defStyleNum="dsAttribute" spellChecking="false"/>
     </itemDatas>
   </highlighting>
diff --git a/syntax/m4.xml b/syntax/m4.xml
--- a/syntax/m4.xml
+++ b/syntax/m4.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!--
 
   GNU M4 syntax highlightning.
diff --git a/syntax/makefile.xml b/syntax/makefile.xml
--- a/syntax/makefile.xml
+++ b/syntax/makefile.xml
@@ -1,5 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language
+[
+    <!ENTITY varname "(([+!?](?!=))?[^:#=\s+!?]*)++">
+]>
 <!-- Makefile syntaxfile v0.9 by Per Wigren <wigren@home.se> -->
 <!-- Modified by Joseph Wenninger <jowenn@kde.org> -->
 <!-- Modified by Rui Santana <santana.rui@gmail.com> -->
@@ -12,20 +15,36 @@
 <!-- v10 by Peter J. Mello <admin@petermello.net>
      Add recognition of POSIX 2013 '::=' operator for variable assignment -->
 <language name="Makefile" section="Other"
-          version="13" kateversion="5.0"
+          version="17" kateversion="5.79"
           extensions="GNUmakefile;Makefile;makefile;GNUmakefile.*;Makefile.*;makefile.*;*.mk"
           mimetype="text/x-makefile" priority="11"
           author="Per Wigren (wigren@home.se)" license="">
+
+  <!-- https://www.gnu.org/software/make/manual/make.pdf -->
+  <!-- https://www.gnu.org/software/make/manual/html_node/Quick-Reference.html -->
+
   <highlighting>
-    <list name = "keywords" >
+    <list name="keywords">
       <item>include</item>
       <item>-include</item>
+      <item>sinclude</item>
+      <item>override</item>
       <item>define</item>
+      <item>undefine</item>
       <item>endef</item>
+      <item>export</item>
+      <item>unexport</item>
+      <item>private</item>
+      <item>vpath</item>
     </list>
+    <list name="special_keywords">
+      <item>export</item>
+      <item>unexport</item>
+      <item>override</item>
+      <item>private</item>
+    </list>
     <!-- https://www.gnu.org/software/make/manual/html_node/Conditional-Syntax.html -->
     <list name="gmake_if_keywords">
-      <item>if</item>
       <item>ifeq</item>
       <item>ifneq</item>
       <item>ifdef</item>
@@ -164,38 +183,54 @@
       <item>info</item>
     </list>
     <contexts>
-      <context name="normal" attribute="Normal" lineEndContext="#stay">
+      <context name="normal" attribute="Normal" lineEndContext="#stay" fallthroughContext="strings_and_vars">
         <DetectSpaces/>
         <DetectChar attribute="Comment" context="Comment" char="#"/>
+
+        <!-- first because a variable can have the same name as a keyword -->
+        <RegExpr attribute="Variable" context="assign" String="&varname;(?=\s*([+!?]|::?:?)?=)" firstNonSpace="true"/>
+
         <keyword attribute="ControlFlow" String="bmake_if_keywords" context="bmake_conditional" beginRegion="bmake_if" firstNonSpace="true"/>
         <!--TODO: trailing non-space after .else should be highlighted as an error -->
         <keyword attribute="ControlFlow" String="bmake_else_keywords" context="bmake_conditional" endRegion="bmake_if" beginRegion="bmake_if" firstNonSpace="true"/>
-        <keyword attribute="ControlFlow" String="bmake_endif_keywords" context="#stay" endRegion="bmake_if"/>
+        <keyword attribute="ControlFlow" String="bmake_endif_keywords" context="#stay" endRegion="bmake_if" firstNonSpace="true"/>
 
-        <keyword attribute="ControlFlow" String="gmake_if_keywords" context="#stay" beginRegion="gmake_if" firstNonSpace="true"/>
-        <!--TODO: trailing non-space after .else should be highlighted as an error -->
-        <keyword attribute="ControlFlow" String="gmake_else_keywords" context="gmake_else" endRegion="gmake_if" beginRegion="gmake_if" firstNonSpace="true"/>
-        <keyword attribute="ControlFlow" String="gmake_endif_keywords" context="#stay" endRegion="gmake_if"/>
+        <keyword attribute="ControlFlow" String="gmake_if_keywords" context="strings_and_vars" beginRegion="gmake_if" firstNonSpace="true" weakDeliminator=":"/>
+        <!--TODO: trailing non-space after else should be highlighted as an error -->
+        <keyword attribute="ControlFlow" String="gmake_else_keywords" context="gmake_else" endRegion="gmake_if" beginRegion="gmake_if" firstNonSpace="true" weakDeliminator=":"/>
+        <keyword attribute="ControlFlow" String="gmake_endif_keywords" context="#stay" endRegion="gmake_if" firstNonSpace="true" weakDeliminator=":"/>
 
-        <keyword attribute="Keyword"  context="#stay" String="keywords"/>
+        <WordDetect attribute="Keyword" context="define" String="define" firstNonSpace="true" weakDeliminator=":"/>
+        <WordDetect attribute="Keyword" context="override" String="override" firstNonSpace="true" weakDeliminator=":"/>
+        <WordDetect attribute="Keyword" context="export" String="export" firstNonSpace="true" weakDeliminator=":"/>
+        <WordDetect attribute="Keyword" context="export" String="unexport" firstNonSpace="true" weakDeliminator=":"/>
+        <WordDetect attribute="Keyword" context="export" String="undefine" firstNonSpace="true" weakDeliminator=":"/>
+        <keyword attribute="Keyword"  context="strings_and_vars" String="keywords" firstNonSpace="true" weakDeliminator=":"/>
+
         <keyword attribute="Keyword"  context="bmake_other_stmts" String="bmake_other_stmts" firstNonSpace="true"/>
-        <RegExpr attribute="Variable" context="assign" String="[^\s+:?+]*\s*(?=::=|:=|=|\+=|\?=)"/>
         <keyword attribute="SpecialTarget" context="bmake_special_target" String="bmake_special_targets" firstNonSpace="true"/>
         <RegExpr attribute="SpecialTarget" context="prereq" String="\.PATH\.[^:]*:" firstNonSpace="true"/>
         <keyword attribute="Keyword" context="bmake_include" String="bmake_include_stmt" firstNonSpace="true"/>
         <keyword attribute="Keyword" context="bmake_message" String="bmake_message_stmt" firstNonSpace="true"/>
         <keyword attribute="Keyword" context="bmake_for_loop" String="bmake_for_stmt" firstNonSpace="true" beginRegion="for"/>
-        <keyword attribute="Keyword" context="#stay" String="bmake_endfor_stmt" firstNonSpace="true" endRegion="for"/>
+        <keyword attribute="Keyword" context="strings_and_vars" String="bmake_endfor_stmt" firstNonSpace="true" endRegion="for"/>
 
-        <RegExpr attribute="Section"  context="prereq" String="^\.[^.][^:]*:" column="0"/>
-        <RegExpr attribute="Target"   context="prereq" String="^[^:]*:" column="0"/>
+        <RegExpr attribute="Section" context="prereq" String="^\.[^.][^:]*:" column="0"/>
+        <RegExpr attribute="Target"  context="target" String="^([^:\\&amp;]|\\([:\\#&amp;]|(?=[^:\\#&amp;])))*+(?=[^:]*+:|\\$)" column="0"/>
+
+        <AnyChar attribute="Operator" context="silent" String="@-" firstNonSpace="1"/>
         <DetectIdentifier/>
-        <DetectChar attribute="String" context="string&quot;" char="&quot;"/>
-        <DetectChar attribute="String" context="string'" char="'"/>
+      </context>
+
+      <context name="target" attribute="Target" lineEndContext="#pop">
+        <StringDetect attribute="TargetSeparator" context="#pop!prereq" String="::"/>
+        <DetectChar attribute="TargetSeparator" context="#pop!prereq" char=":"/>
         <DetectChar attribute="Operator" context="dollar" char="$"/>
-        <Detect2Chars attribute="Special" context="#stay" char="\" char1="#"/>
-        <Detect2Chars attribute="Special" context="#stay" char="\" char1="\"/>
-        <AnyChar attribute="Operator" context="silent" String="@-" firstNonSpace="1"/>
+        <LineContinue attribute="Operator" context="#pop"/>
+        <StringDetect attribute="TargetSeparator" context="#pop!prereq" String="&amp;::"/>
+        <StringDetect attribute="TargetSeparator" context="#pop!prereq" String="&amp;:"/>
+        <StringDetect attribute="Target" String="\:"/>
+        <DetectIdentifier attribute="Target"/>
       </context>
 
       <context name="strings_and_vars" attribute="Normal" lineEndContext="#pop">
@@ -215,6 +250,7 @@
                  else ifdef foo
                  else ifeq (bar, foo)
         -->
+        <DetectIdentifier attribute="Normal"/>
       </context>
 
       <context name="bmake_include" attribute="Normal" lineEndContext="#pop">
@@ -268,8 +304,13 @@
         <DetectChar attribute="Operator" context="dollar" char="$"/>
       </context>
 
-      <context name="prereq" attribute="Prereq" lineEndContext="rule">
+      <context name="prereq" attribute="Prereq" lineEndContext="rule" fallthroughContext="#pop!prereq2">
         <DetectSpaces/>
+        <keyword attribute="Keyword"  context="export" String="special_keywords" weakDeliminator=".@,+%-/^*?="/>
+        <RegExpr attribute="Variable" context="assign" String="[a-zA-Z_]+(?=\s*([+!?]|::?:?)?=)|"/>
+      </context>
+      <context name="prereq2" attribute="Prereq" lineEndContext="rule">
+        <DetectSpaces/>
         <keyword attribute="SpecialPrereq" context="#stay" String="bmake_special_sources"/>
         <DetectIdentifier/>
         <LineContinue attribute="Operator" context="#stay"/>
@@ -277,24 +318,47 @@
         <Detect2Chars attribute="Special" context="#stay" char="\" char1="#"/>
         <Detect2Chars attribute="Special" context="#stay" char="\" char1="\"/>
         <DetectChar attribute="Comment" context="Comment" char="#"/>
+        <DetectChar attribute="Operator" context="inline-rule" char=";"/>
       </context>
 
-      <context name="rule" attribute="Normal" lineEndContext="#stay">
+      <context name="inline-rule" attribute="Normal" lineEndContext="#pop!rule" fallthroughContext="#pop!inline-rule-cmd">
+        <DetectSpaces/>
         <LineContinue attribute="Operator" context="#stay"/>
+        <AnyChar attribute="Operator" context="silent" String="@-"/>
+      </context>
+      <context name="inline-rule-cmd" attribute="Normal" lineEndContext="#pop!rule">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar attribute="String" context="string&quot;" char="&quot;"/>
+        <DetectChar attribute="String" context="string'" char="'"/>
+        <DetectChar attribute="Operator" context="dollar" char="$"/>
+        <Detect2Chars attribute="Special" context="#stay" char="\" char1="#"/>
+        <Detect2Chars attribute="Special" context="#stay" char="\" char1="\"/>
+        <AnyChar attribute="Operator" context="silent" String="@-" firstNonSpace="1"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
+        <LineContinue attribute="Operator" context="#stay"/>
+      </context>
+
+      <context name="rule" attribute="Normal" lineEndContext="#stay">
+        <DetectChar char="&#9;" column="0"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
         <!-- pop if there is a leading non-tab,
         and in particular, mark leading spaces as errors -->
-        <RegExpr attribute="Error" context="#pop#pop#pop" String="^ +" firstNonSpace="1"/>
-        <RegExpr context="#pop#pop#pop" String="^[^\t]" lookAhead="1" firstNonSpace="1"/>
+        <RegExpr attribute="Error" context="#pop#pop#pop" String="^ ++(?!#)" column="0"/>
+        <RegExpr context="#pop#pop#pop" String="^(?=\s*#)|^[^#\t]" lookAhead="1" column="0"/>
         <DetectSpaces/>
         <DetectIdentifier/>
         <DetectChar attribute="String" context="string&quot;" char="&quot;"/>
         <DetectChar attribute="String" context="string'" char="'"/>
         <DetectChar attribute="Operator" context="dollar" char="$"/>
+        <LineContinue attribute="Operator" context="rule_continuation"/>
         <Detect2Chars attribute="Special" context="#stay" char="\" char1="#"/>
         <Detect2Chars attribute="Special" context="#stay" char="\" char1="\"/>
         <AnyChar attribute="Operator" context="silent" String="@-" firstNonSpace="1"/>
-        <DetectChar attribute="Comment" context="Comment" char="#"/>
       </context>
+      <context name="rule_continuation" attribute="Normal" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectSpaces context="#pop"/>
+      </context>
 
       <context name="silent" attribute="Silent" lineEndContext="#pop">
         <LineContinue attribute="Operator" context="#stay"/>
@@ -321,6 +385,7 @@
       </context>
 
       <context name="assign" attribute="Operator" lineEndContext="#pop">
+        <DetectSpaces attribute="Normal"/>
         <DetectChar attribute="Operator" context="value" char="="/>
       </context>
 
@@ -328,7 +393,9 @@
         <LineContinue attribute="Operator"/>
         <DetectChar attribute="Operator" context="dollar" char="$"/>
         <RegExpr attribute="Special" context="#pop#pop" String="@[-_\d\w]*@"/>
-        <DetectChar attribute="Operator" char=";" context="#pop#pop"/>
+        <Detect2Chars attribute="String" char="\" char1="#"/>
+        <DetectChar attribute="Comment" context="#pop#pop!Comment" char="#"/>
+        <RegExpr attribute="String" String="[^$@\\#]+"/>
       </context>
 
       <context name="dollar" attribute="Operator" lineEndContext="#pop">
@@ -337,11 +404,11 @@
         <RegExpr attribute="Operator" context="#pop" String="."/>
       </context>
 
-      <context name="call(" attribute="Variable" lineEndContext="#stay" fallthroughContext="callVar(" fallthrough="1">
+      <context name="call(" attribute="Variable" lineEndContext="#stay" fallthroughContext="callVar(">
         <keyword attribute="Keyword" context="callFunc(" String="functions"/>
       </context>
 
-      <context name="call{" attribute="Variable" lineEndContext="#stay" fallthroughContext="callVar{" fallthrough="1">
+      <context name="call{" attribute="Variable" lineEndContext="#stay" fallthroughContext="callVar{">
         <keyword attribute="Keyword" context="callFunc{" String="functions"/>
       </context>
 
@@ -364,6 +431,35 @@
         <AnyChar attribute="Error" context="#stay" String="=#"/>
       </context>
 
+      <context name="override" attribute="Normal" lineEndContext="#pop" fallthroughContext="#pop!export">
+        <DetectSpaces/>
+        <WordDetect attribute="Keyword" context="#pop!define" String="define"/>
+        <WordDetect attribute="Keyword" context="#pop!export" String="undefine"/>
+      </context>
+
+      <context name="define" attribute="Normal" lineEndContext="define_body">
+        <DetectSpaces/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
+        <RegExpr attribute="Variable" context="define_op" String="&varname;"/>
+      </context>
+      <context name="define_op" attribute="Operator" lineEndContext="#pop!define_body">
+        <DetectSpaces attribute="Normal"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
+      </context>
+      <context name="define_body" attribute="String" lineEndContext="#stay">
+        <DetectSpaces attribute="String"/>
+        <WordDetect attribute="Keyword" context="#pop#pop" String="endef" firstNonSpace="true"/>
+        <DetectIdentifier attribute="String"/>
+        <LineContinue attribute="Operator"/>
+        <DetectChar attribute="Operator" context="dollar" char="$"/>
+        <RegExpr attribute="Special" String="@[-_\d\w]*@"/>
+      </context>
+
+      <context name="export" attribute="Variable" lineEndContext="#pop" fallthroughContext="#pop!assign">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+      </context>
+
       <context name="bmake_var_modifier_arg" attribute="VarModifier" lineEndContext="#pop">
         <DetectChar attribute="Operator" context="dollar" char="$"/>
         <Detect2Chars context="#stay" char="\" char1="}"/>
@@ -373,7 +469,7 @@
       </context>
 
       <!-- TODO: once all modifiers are properly handled change fallthroughContext to "expect}" -->
-      <context name="bmake_var_modifier" attribute="VarModifier" lineEndContext="#pop" fallthroughContext="#pop!bmake_var_modifier_arg" fallthrough="true">
+      <context name="bmake_var_modifier" attribute="VarModifier" lineEndContext="#pop" fallthroughContext="#pop!bmake_var_modifier_arg">
         <DetectChar attribute="Operator" context="dollar" char="$"/>
 
                     <!--
@@ -452,15 +548,30 @@
 
       <context name="callFunc(" attribute="FuncParam" lineEndContext="#stay">
         <DetectChar attribute="Operator" char=")" context="#pop#pop#pop"/>
-        <DetectChar attribute="Operator" context="dollar" char="$"/>
-        <DetectChar attribute="Keyword" context="#stay" char=","/>
-        <DetectChar attribute="String" context="string'" char="'"/>
+        <DetectChar attribute="FuncParam" char="(" context="callFuncSub("/>
+        <IncludeRules context="callFuncCommon"/>
       </context>
+      <context name="callFuncSub(" attribute="FuncParam" lineEndContext="#stay">
+        <DetectChar attribute="FuncParam" char=")" context="#pop"/>
+        <DetectChar attribute="FuncParam" char="(" context="callFuncSub("/>
+        <IncludeRules context="callFuncCommon"/>
+      </context>
 
       <context name="callFunc{" attribute="FuncParam" lineEndContext="#stay">
         <DetectChar attribute="Operator" char="}" context="#pop#pop#pop"/>
+        <DetectChar attribute="FuncParam" char="{" context="callFuncSub{"/>
+        <IncludeRules context="callFuncCommon"/>
+      </context>
+      <context name="callFuncSub{" attribute="FuncParam" lineEndContext="#stay">
+        <DetectChar attribute="FuncParam" char="}" context="#pop"/>
+        <DetectChar attribute="FuncParam" char="{" context="callFuncSub{"/>
+        <IncludeRules context="callFuncCommon"/>
+      </context>
+
+      <context name="callFuncCommon" attribute="FuncParam" lineEndContext="#stay">
         <DetectChar attribute="Operator" context="dollar" char="$"/>
         <DetectChar attribute="Keyword" context="#stay" char=","/>
+        <DetectChar attribute="String" context="string&quot;" char="&quot;"/>
         <DetectChar attribute="String" context="string'" char="'"/>
       </context>
 
@@ -502,6 +613,7 @@
       <itemData name="RealOperator" defStyleNum="dsKeyword" spellChecking="0"/>
       <itemData name="SpecialTarget" defStyleNum="dsOthers" spellChecking="0" bold="1"/>
       <itemData name="SpecialPrereq" defStyleNum="dsDataType" spellChecking="0" bold="1"/>
+      <itemData name="TargetSeparator" defStyleNum="dsDecVal" spellChecking="0"/>
     </itemDatas>
   </highlighting>
   <general>
diff --git a/syntax/mandoc.xml b/syntax/mandoc.xml
--- a/syntax/mandoc.xml
+++ b/syntax/mandoc.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="Troff Mandoc" section="Markup" version="2" kateversion="5.0" extensions="*.1;*.2;*.3;*.4;*.5;*.6;*.7;*.8;*.1m;*.3x;*.tmac" mimetype="" author="Matthew Woehlke (mw_triad@users.sourceforge.net)" license="GPL">
 
   <highlighting>
diff --git a/syntax/markdown.xml b/syntax/markdown.xml
--- a/syntax/markdown.xml
+++ b/syntax/markdown.xml
@@ -22,7 +22,7 @@
           Example: **bold text and _italic and bold text_**
                    __bold and ~~strikeout and bold~~__
 -->
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
 <!-- NOTE: To correctly detect bold, italic or strike out text, use minimal="true" in RegExpr rules -->
 <!ENTITY contentregex_ast "(?:(?:[^\*\s\\]|\\.)(?:[^\\]|\\.)*)?(?:[^\*\s\\]|\\\S)">
@@ -72,6 +72,10 @@
 <!ENTITY linebreakregex "  $">
 <!-- strikethrough text, pandoc style -->
 <!ENTITY strikeoutregex "[~]{2}[^~](?:.*[^~])?[~]{2}">
+<!-- highlight text -->
+<!ENTITY highlightregex "[=]{2}[^=](?:.*[^=])?[=]{2}">
+<!-- emoji -->
+<!ENTITY emojiregex ":([-+]1|\w+):">
 <!-- start of fenced code block -->
 <!ENTITY fcode "(`{3,}|~{3,})">
 <!-- end of line & empty line -->
@@ -90,7 +94,7 @@
 <!ENTITY checkbox "\[[ x]\](?=\s)">
 ]>
 
-<language name="Markdown" version="19" kateversion="5.79" section="Markup" extensions="*.md;*.mmd;*.markdown" priority="15" author="Darrin Yeager, Claes Holmerson" license="GPL,BSD">
+<language name="Markdown" version="30" kateversion="5.79" section="Markup" extensions="*.md;*.mmd;*.markdown;*.md.html" mimetype="text/markdown" priority="15" author="Darrin Yeager, Claes Holmerson" license="GPL,BSD">
   <highlighting>
     <contexts>
       <!-- Start of the Markdown document: find metadata or code block -->
@@ -137,9 +141,12 @@
         <DetectChar context="find-strong-normal" char="*" lookAhead="true"/>
         <DetectChar context="find-emphasis-normal" char="_" lookAhead="true"/>
         <RegExpr attribute="Strikethrough Text" minimal="true" String="&strikeoutregex;"/>
+        <RegExpr attribute="Highlight Text" minimal="true" String="&highlightregex;"/>
         <!-- Common -->
         <IncludeRules context="inc"/>
         <RegExpr attribute="Normal Text: Link" String="&implicitlink;"/>
+        <!-- Table -->
+        <DetectChar attribute="Table" char="|" context="table" firstNonSpace="true" lookAhead="1"/>
       </context>
       <!-- Find indented code blocks. These are only allowed after an empty line or on the first line -->
       <context name="find-code-block" attribute="Normal Text" lineEndContext="#stay" lineEmptyContext="#stay" fallthroughContext="#pop">
@@ -148,34 +155,53 @@
         <RegExpr attribute="Comment" context="comment" String="^\s*&startcomment;|\s*&startcomment;(?=.*&endcomment;)" beginRegion="comment"/>
       </context>
 
+      <!-- Table in Normal Text Document -->
+      <context name="table" attribute="Normal Text" lineEndContext="#pop" lineEmptyContext="#pop!find-code-block">
+        <IncludeRules context="find-table-element"/>
+        <IncludeRules context="Normal Text"/>
+      </context>
+
+      <context name="find-table-element" attribute="Normal Text" lineEndContext="#pop">
+        <RegExpr attribute="Table" String="(\|(\s*:?---+:?)?)++"/>
+      </context>
+
       <context name="find-header" attribute="Normal Text" lineEndContext="#pop">
-        <!-- TODO: Replace "(?=.$)" in the regexes with just "$" when close-H#-region are removed  -->
-        <RegExpr attribute="Header H1" context="#pop!close-H2-region" String="^#\s.*[#]?(?=.$)" column="0" endRegion="H1" beginRegion="H1"/>
-        <RegExpr attribute="Header H2" context="#pop!close-H3-region" String="^##\s.*[#]?(?=.$)" column="0" endRegion="H2" beginRegion="H2"/>
-        <RegExpr attribute="Header H3" context="#pop!close-H4-region" String="^###\s.*[#]?(?=.$)" column="0" endRegion="H3" beginRegion="H3"/>
-        <RegExpr attribute="Header H4" context="#pop!close-H5-region" String="^####\s.*[#]?(?=.$)" column="0" endRegion="H4" beginRegion="H4"/>
-        <RegExpr attribute="Header H5" context="#pop!close-H6-region" String="^#####\s.*[#]?(?=.$)" column="0" endRegion="H5" beginRegion="H5"/>
-        <RegExpr attribute="Header H6" context="#pop" String="^######\s.*[#]?$" column="0" endRegion="H6" beginRegion="H6"/>
+        <RegExpr attribute="Header H1" context="#pop!close-H2-region" String="^#\s" column="0" endRegion="H1" beginRegion="H1" lookAhead="true"/>
+        <RegExpr attribute="Header H2" context="#pop!close-H3-region" String="^##\s" column="0" endRegion="H2" beginRegion="H2" lookAhead="true"/>
+        <RegExpr attribute="Header H3" context="#pop!close-H4-region" String="^###\s" column="0" endRegion="H3" beginRegion="H3" lookAhead="true"/>
+        <RegExpr attribute="Header H4" context="#pop!close-H5-region" String="^####\s" column="0" endRegion="H4" beginRegion="H4" lookAhead="true"/>
+        <RegExpr attribute="Header H5" context="#pop!close-H6-region" String="^#####\s" column="0" endRegion="H5" beginRegion="H5" lookAhead="true"/>
+        <RegExpr attribute="Header H6" context="#pop" String="^######\s.*" column="0" endRegion="H6" beginRegion="H6"/>
         <DetectChar attribute="Normal Text" context="#pop" char="#"/>
       </context>
       <!-- BUG: 441278 sub-headers should be closed when their parent header is closed  (e.g. in h1 h2 h3 h1, h1-h3 should all be closed at the 2nd h1) -->
       <!-- TODO: Port to a less hacky version (maybe a new attribute for declaring multiple endRegions)  -->
       <context name="close-H2-region" attribute="Header H2" lineEndContext="#pop!close-H3-region" fallthroughContext="#pop!close-H3-region">
-        <RegExpr attribute="Header H2" context="#pop!close-H3-region" String="." lookAhead="true" endRegion="H2"/>
+        <DetectChar attribute="Header H2" context="#pop!close-H3-region" char="#" lookAhead="true" endRegion="H2"/>
       </context>
       <context name="close-H3-region" attribute="Header H3" lineEndContext="#pop!close-H4-region" fallthroughContext="#pop!close-H4-region">
-        <RegExpr attribute="Header H3" context="#pop!close-H4-region" String="." lookAhead="true" endRegion="H3"/>
+        <DetectChar attribute="Header H3" context="#pop!close-H4-region" char="#" lookAhead="true" endRegion="H3"/>
       </context>
       <context name="close-H4-region" attribute="Header H4" lineEndContext="#pop!close-H5-region" fallthroughContext="#pop!close-H5-region">
-        <RegExpr attribute="Header H4" context="#pop!close-H5-region" String="." lookAhead="true" endRegion="H4"/>
+        <DetectChar attribute="Header H4" context="#pop!close-H5-region" char="#" lookAhead="true" endRegion="H4"/>
       </context>
       <context name="close-H5-region" attribute="Header H5" lineEndContext="#pop!close-H6-region" fallthroughContext="#pop!close-H6-region">
-        <RegExpr attribute="Header H5" context="#pop!close-H6-region" String="." lookAhead="true" endRegion="H5"/>
+        <DetectChar attribute="Header H5" context="#pop!close-H6-region" char="#" lookAhead="true" endRegion="H5"/>
       </context>
       <context name="close-H6-region" attribute="Header H6" lineEndContext="#pop" fallthroughContext="#pop">
-        <RegExpr attribute="Header H6" context="#pop" String="." endRegion="H6"/>
+        <DetectChar attribute="Header H6" context="#pop!close-sentinel-region" char="#" lookAhead="true" endRegion="H6"/>
       </context>
+      <!-- This sentinel does not close any actual region, it's just here so that the proper attribute/highlighting is applied and -->
+      <!--to ensure that H6 headers won't be set as the "primary" region that was closed just because it was closed last -->
+      <context name="close-sentinel-region" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+        <RegExpr attribute="Header H1" context="#pop" String="^#\s.*" column="0"/>
+        <RegExpr attribute="Header H2" context="#pop" String="^##\s.*" column="0"/>
+        <RegExpr attribute="Header H3" context="#pop" String="^###\s.*" column="0"/>
+        <RegExpr attribute="Header H4" context="#pop" String="^####\s.*" column="0"/>
+        <RegExpr attribute="Header H5" context="#pop" String="^#####\s.*" column="0"/>
+      </context>
 
+
       <context name="find-strong-normal" attribute="Normal Text" lineEndContext="#pop">
         <RegExpr attribute="Strong-Emphasis Text" context="#pop" minimal="true" String="&strongemphasisregex_ast_und;|&strongemphasisregex_ast_und2;"/>
         <RegExpr attribute="Strong Text" context="#pop" minimal="true" String="&strongregex_ast;"/>
@@ -198,6 +224,7 @@
         <RegExpr attribute="Normal Text" context="#pop!find-code-block" String="&emptyline;" column="0"/>
         <StringDetect attribute="Comment" context="#pop!find-code-block" String="&startcomment;" column="0" lookAhead="true"/>
         <IncludeRules context="default-blockquote-2"/>
+        <IncludeRules context="find-table-element"/>
       </context>
       <!-- Blockquote within a list -->
       <context name="blockquote-list" attribute="Blockquote: Normal Text" lineEndContext="#stay" lineEmptyContext="#pop">
@@ -217,6 +244,7 @@
         <!-- Strong, emphasis, strong-emphasis and strikethrough text -->
         <AnyChar context="find-strong-emphasis-blockquote" String="*_" lookAhead="true"/>
         <RegExpr attribute="Blockquote: Strikethrough Text" minimal="true" String="&strikeoutregex;"/>
+        <RegExpr attribute="Blockquote: Highlight Text" minimal="true" String="&highlightregex;"/>
         <!-- Common -->
         <IncludeRules context="inc"/>
         <RegExpr attribute="Blockquote: Link" String="&implicitlink;"/>
@@ -245,6 +273,8 @@
         <RegExpr context="#pop" String="^\s*\S" column="0" lookAhead="true"/>
         <!-- Highlight checkbox at the start of the item (task list) -->
         <RegExpr attribute="List: Checkbox" context="content-list" String="\s*&checkbox;"/>
+        <!-- Highlight checkbox at the start of the item (task list) -->
+        <RegExpr attribute="Table" context="content-list-table" String="\s*\|"/>
       </context>
       <!-- 1. numlist (one digit) -->
       <context name="numlist" attribute="List: Normal Text" lineEndContext="#stay" fallthroughContext="content-list">
@@ -275,13 +305,14 @@
            to check the indentation of the text and determine if the content of the list ends. -->
       <context name="content-list" attribute="List: Normal Text" lineEndContext="#stay" lineEmptyContext="#pop">
         <RegExpr context="#pop" String="&emptyline;" column="0"/>
-        <!-- Blockquote and horzontal rule (check indentation) -->
+        <!-- Blockquote and horizontal rule (check indentation) -->
         <RegExpr context="#pop" String="^\s*(?:&gt;|&rulerregex;)" column="0" lookAhead="true"/>
         <!-- End with header or new list/numlist -->
         <RegExpr context="#pop#pop" String="^(?:\s*(?:&listbullet;|[\d]+\.)\s|#{1,6}\s)" column="0" lookAhead="true"/>
         <!-- Strong, emphasis, strong-emphasis and strikethrough text -->
         <AnyChar context="find-strong-emphasis-list" String="*_" lookAhead="true"/>
         <RegExpr attribute="List: Strikethrough Text" minimal="true" String="&strikeoutregex;"/>
+        <RegExpr attribute="List: Highlight Text" minimal="true" String="&highlightregex;"/>
         <!-- Common -->
         <IncludeRules context="inc"/>
         <RegExpr attribute="List: Link" String="&implicitlink;"/>
@@ -294,6 +325,12 @@
         <AnyChar attribute="List: Normal Text" context="#pop" String="*_"/>
       </context>
 
+      <!-- Table in List -->
+      <context name="content-list-table" attribute="List: Normal Text" lineEndContext="#stay" lineEmptyContext="#pop">
+        <IncludeRules context="find-table-element"/>
+        <IncludeRules context="content-list"/>
+      </context>
+
       <!-- Comments -->
       <context name="comment" attribute="Comment" lineEndContext="#stay">
         <StringDetect attribute="Comment" context="#pop" String="&endcomment;" endRegion="comment"/>
@@ -303,38 +340,41 @@
       <!-- Fenced Code Blocks -->
       <context name="find-lang-fenced-code" attribute="Normal Text" lineEndContext="#pop">
         <!-- Apply syntax highlighting to fenced code blocks for some languages -->
-        <RegExpr attribute="Fenced Code" context="#pop!code" String="&fcode;&end;"/>
-        <RegExpr attribute="Fenced Code" context="#pop!bash-code" String="&fcode;\s*(?:bash(?:rc|_profile|_login|_logout)?|shell|sh|zsh|profile|PKGBUILD|APKBUILD|ebuild|eclass|nix)&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!cpp-code" String="&fcode;\s*(?:[ch]pp|[ch]\+\+|[ch]xx|h?cc|hh|cuh?|ino|pde|moc)&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!csharp-code" String="&fcode;\s*(?:cs|csharp|c\#)&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!cmake-code" String="&fcode;\s*(?:cmake|CMakeLists(?:\.txt)?)&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!css-code" String="&fcode;\s*css&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!c-code" String="&fcode;\s*[ch]&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!doxygen-code" String="&fcode;\s*doxygen&end;" insensitive="true"/> <!-- Block comment of Doxygen -->
-        <RegExpr attribute="Fenced Code" context="#pop!email-code" String="&fcode;\s*(?:email|emlx?|mbo?x)&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!go-code" String="&fcode;\s*go(?:lang)?&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!hamlet-code" String="&fcode;\s*[wxs]?hamlet&end;" insensitive="true"/> <!-- Included in the Haskell definition -->
-        <RegExpr attribute="Fenced Code" context="#pop!haskell-code" String="&fcode;\s*(?:haskell|c?hs|hs\-boot)&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!html-code" String="&fcode;\s*(?:[sx]?html?|inc|tmpl|tpl)&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!java-code" String="&fcode;\s*(?:java|bsh)&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!javascript-code" String="&fcode;\s*(?:javascript|m?js|es6|kwinscript|julius)&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!jsx-code" String="&fcode;\s*(?:jsx|tsx|(?:java|type)script\-react)&end;" insensitive="true"/> <!-- Included in the HTML definition. Also apply for TSX. -->
-        <RegExpr attribute="Fenced Code" context="#pop!json-code" String="&fcode;\s*(?:json5?|gltf)&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!matlab-code" String="&fcode;\s*matlab&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!markdown-code" String="&fcode;\s*(?:markdown|m?md)&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!mustache-code" String="&fcode;\s*(?:handlebars|hbs|mustache|mst|ractive|hogan|hulk)&end;" insensitive="true"/> <!-- Included in the HTML definition -->
-        <RegExpr attribute="Fenced Code" context="#pop!perl-code" String="&fcode;\s*(?:perl|p[lm]|pod|psgi|vcl)&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!php-code" String="&fcode;\s*(?:php[3457t]?|wml|phtml?|aw|ctp)&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!python-code" String="&fcode;\s*(?:python[23]?|py[23w]?|[rc]py|sconstruct|gypi?)&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!qml-code" String="&fcode;\s*qml(?:types)?&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!r-code" String="&fcode;\s*(?:r|rprofile|rscript)&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!rest-code" String="&fcode;\s*(?:rst|rest|restructuredtext)&end;" insensitive="true"/> <!-- Included in the CMake definition -->
-        <RegExpr attribute="Fenced Code" context="#pop!ruby-code" String="&fcode;\s*(?:ruby|rbx?|rjs|rake|f?cgi|gemspec|irbrc|ru|prawn|Appraisals|(?:Rake|Cap|Chef|Gem|Guard|Hobo|Vagrant||Rant|Berks|Thor|Puppet)file|rxml|(?:xml|js)\.erb)&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!rust-code" String="&fcode;\s*(?:rust|rs)&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!mysql-code" String="&fcode;\s*(?:mysql|sql|ddl)&end;" insensitive="true"/> <!-- Included in the PHP definition -->
-        <RegExpr attribute="Fenced Code" context="#pop!typescript-code" String="&fcode;\s*(?:typescript|ts)&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!xml-code" String="&fcode;\s*(?:xml|xsd|xspf|tld|jsp|c?pt|dtml|rss|opml|svg|daml|rdf|ui|kcfg|qrc|wsdl|scxml|xbel|dae|sch|brd|docbook)&end;" insensitive="true"/>
-        <RegExpr attribute="Fenced Code" context="#pop!code" String="&fcode;.*$"/>
+        <RegExpr attribute="Fenced Code" context="#pop!code" String="&fcode;&end;" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!bash-code" String="&fcode;\s*(?:bash(?:rc|_profile|_login|_logout)?|shell|sh|profile|PKGBUILD|APKBUILD|ebuild|eclass|nix)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!zsh-code" String="&fcode;\s*(?:zsh)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!cpp-code" String="&fcode;\s*(?:[ch]pp|[ch]\+\+|[ch]xx|h?cc|hh|cuh?|ino|pde|moc)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!csharp-code" String="&fcode;\s*(?:cs|csharp|c\#)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!cmake-code" String="&fcode;\s*(?:cmake|CMakeLists(?:\.txt)?)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!css-code" String="&fcode;\s*css&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!c-code" String="&fcode;\s*[ch]&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!doxygen-code" String="&fcode;\s*doxygen&end;" insensitive="true" beginRegion="code-block"/> <!-- Block comment of Doxygen -->
+        <RegExpr attribute="Fenced Code" context="#pop!email-code" String="&fcode;\s*(?:email|emlx?|mbo?x)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!go-code" String="&fcode;\s*go(?:lang)?&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!hamlet-code" String="&fcode;\s*[wxs]?hamlet&end;" insensitive="true" beginRegion="code-block"/> <!-- Included in the Haskell definition -->
+        <RegExpr attribute="Fenced Code" context="#pop!haskell-code" String="&fcode;\s*(?:haskell|c?hs|hs\-boot)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!html-code" String="&fcode;\s*(?:[sx]?html?|inc|tmpl|tpl)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!java-code" String="&fcode;\s*(?:java|bsh)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!javascript-code" String="&fcode;\s*(?:javascript|m?js|es6|kwinscript|julius)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!jsx-code" String="&fcode;\s*(?:jsx|tsx|(?:java|type)script\-react)&end;" insensitive="true" beginRegion="code-block"/> <!-- Included in the HTML definition. Also apply for TSX. -->
+        <RegExpr attribute="Fenced Code" context="#pop!json-code" String="&fcode;\s*(?:json5?|gltf)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!yaml-code" String="&fcode;\s*(?:ya?ml)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!matlab-code" String="&fcode;\s*matlab&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!markdown-code" String="&fcode;\s*(?:markdown|m?md)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!mustache-code" String="&fcode;\s*(?:handlebars|hbs|mustache|mst|ractive|hogan|hulk)&end;" insensitive="true" beginRegion="code-block"/> <!-- Included in the HTML definition -->
+        <RegExpr attribute="Fenced Code" context="#pop!perl-code" String="&fcode;\s*(?:perl|p[lm]|pod|psgi|vcl)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!php-code" String="&fcode;\s*(?:php[3457t]?|wml|phtml?|aw|ctp)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!python-code" String="&fcode;\s*(?:python[23]?|py[23w]?|[rc]py|sconstruct|gypi?)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!qml-code" String="&fcode;\s*qml(?:types)?&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!r-code" String="&fcode;\s*(?:r|rprofile|rscript)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!rest-code" String="&fcode;\s*(?:rst|rest|restructuredtext)&end;" insensitive="true" beginRegion="code-block"/> <!-- Included in the CMake definition -->
+        <RegExpr attribute="Fenced Code" context="#pop!ruby-code" String="&fcode;\s*(?:ruby|rbx?|rjs|rake|f?cgi|gemspec|irbrc|ru|prawn|Appraisals|(?:Rake|Cap|Chef|Gem|Guard|Hobo|Vagrant||Rant|Berks|Thor|Puppet)file|rxml|(?:xml|js)\.erb)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!rust-code" String="&fcode;\s*(?:rust|rs)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!mysql-code" String="&fcode;\s*(?:mysql|sql|ddl)&end;" insensitive="true" beginRegion="code-block"/> <!-- Included in the PHP definition -->
+        <RegExpr attribute="Fenced Code" context="#pop!nim-code" String="&fcode;\s*(?:nims?)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!typescript-code" String="&fcode;\s*(?:typescript|ts)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!xml-code" String="&fcode;\s*(?:xml|xsd|xspf|tld|jsp|c?pt|dtml|rss|opml|svg|daml|rdf|ui|kcfg|qrc|wsdl|scxml|xbel|dae|sch|brd|docbook)&end;" insensitive="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="#pop!code" String="&fcode;.*$" beginRegion="code-block"/>
       </context>
       <context name="code" attribute="Code" lineEndContext="#stay"> <!-- Unknown language -->
         <RegExpr attribute="Fenced Code" context="#pop" String="%1[~`]*(?=&end;)" firstNonSpace="true" dynamic="true" endRegion="code-block"/>
@@ -343,6 +383,10 @@
         <IncludeRules context="code"/>
         <IncludeRules context="##Bash" includeAttrib="true"/>
       </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="zsh-code" fallthroughContext="Command##Zsh">
+        <IncludeRules context="code"/>
+        <IncludeRules context="##Zsh" includeAttrib="true"/>
+      </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="cmake-code">
         <IncludeRules context="code"/>
         <IncludeRules context="##CMake" includeAttrib="true"/>
@@ -403,6 +447,10 @@
         <IncludeRules context="code"/>
         <IncludeRules context="##JSON" includeAttrib="true"/>
       </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="yaml-code">
+        <IncludeRules context="code"/>
+        <IncludeRules context="##YAML" includeAttrib="true"/>
+      </context>
       <context attribute="Normal Text" lineEndContext="#stay" lineEmptyContext="find-code-block" name="markdown-code">
         <IncludeRules context="code"/>
         <IncludeRules context="Normal Text"/>
@@ -429,12 +477,16 @@
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="qml-code">
         <IncludeRules context="code"/>
-        <IncludeRules context="##QML" includeAttrib="true"/>
+        <IncludeRules context="Normal##QML" includeAttrib="true"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="r-code">
         <IncludeRules context="code"/>
         <IncludeRules context="##R Script" includeAttrib="true"/>
       </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="raku-code" fallthroughContext="term##Raku">
+        <IncludeRules context="code"/>
+        <IncludeRules context="base##Raku" includeAttrib="true"/>
+      </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="rest-code">
         <IncludeRules context="code"/>
         <IncludeRules context="##reStructuredText" includeAttrib="true"/>
@@ -451,6 +503,10 @@
         <IncludeRules context="code"/>
         <IncludeRules context="##SQL (MySQL)" includeAttrib="true"/>
       </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="nim-code">
+        <IncludeRules context="code"/>
+        <IncludeRules context="##Nim" includeAttrib="true"/>
+      </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="typescript-code">
         <IncludeRules context="code"/>
         <IncludeRules context="Normal##TypeScript" includeAttrib="true"/>
@@ -465,7 +521,7 @@
         <!-- Code -->
         <RegExpr attribute="Code" String="`[^`]+`(?!`)|`{2}[^`](?:.*?[^`])?`{2}(?!`)|`{3}[^`](?:.*?[^`])?`{3}(?!`)|`{4}[^`](?:.*?[^`])?`{4}(?!`)|`{5,}[^`](?:.*?[^`])?`{5,}"/>
         <!-- Find Fenced Code Block -->
-        <RegExpr attribute="Fenced Code" context="find-lang-fenced-code" String="`{3,}(?=[^`]*$)|~{3,}(?=[^~]*$)" firstNonSpace="true" lookAhead="true" beginRegion="code-block"/>
+        <RegExpr attribute="Fenced Code" context="find-lang-fenced-code" String="`{3,}(?=[^`]*$)|~{3,}(?=[^~]*$)" firstNonSpace="true" lookAhead="true"/>
         <!-- Comment -->
         <StringDetect attribute="Comment" context="comment" String="&startcomment;" beginRegion="comment"/>
         <!-- Links and References -->
@@ -476,6 +532,8 @@
         <RegExpr attribute="Reference Image" String="&refimageregex;"/>
         <RegExpr attribute="Auto-Link" context="autolink" String="&autolinkregex;" lookAhead="true"/>
         <RegExpr attribute="Mailto-Link" context="mailtolink" String="&mailtolinkregex;"/>
+        <!-- Emoji -->
+        <RegExpr attribute="Emoji" String="&emojiregex;"/>
         <!-- Line Break -->
         <RegExpr attribute="Line Break" minimal="true" String="&linebreakregex;"/>
         <!-- Backslash Escapes -->
@@ -494,6 +552,7 @@
         <Detect2Chars attribute="Backslash Escape" char="\" char1="-"/>
         <Detect2Chars attribute="Backslash Escape" char="\" char1="."/>
         <Detect2Chars attribute="Backslash Escape" char="\" char1="!"/>
+        <Detect2Chars attribute="Backslash Escape" char="\" char1="|"/>
         <Detect2Chars attribute="Backslash Escape" char="\" char1="&lt;"/>
         <Detect2Chars attribute="Backslash Escape" char="\" char1="&gt;"/>
         <Detect2Chars attribute="Backslash Escape" char="\" char1="&amp;"/>
@@ -502,8 +561,7 @@
         <RegExpr context="find-html-block" String="&lt;/?&htmlname;(?:[\s&gt;]|/&gt;|$)" lookAhead="true"/>
       </context>
       <context name="find-html-block" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
-        <IncludeRules context="FindSpecialHTMLTags##HTML"/>
-        <IncludeRules context="FindHTMLTags##HTML"/>
+        <IncludeRules context="FindElements##HTML"/>
       </context>
 
       <!-- Links and email: <https://example.com>, <example@kde.org> -->
@@ -577,6 +635,7 @@
       <itemData name="Strong Text" defStyleNum="dsNormal" bold="true"/>
       <itemData name="Strong-Emphasis Text" defStyleNum="dsNormal" italic="true" bold="true"/>
       <itemData name="Strikethrough Text" defStyleNum="dsNormal" strikeOut="true"/>
+      <itemData name="Highlight Text" defStyleNum="dsAlert"/>
       <itemData name="Normal Text: Link" defStyleNum="dsNormal" underline="true" spellChecking="false"/>
       <itemData name="Horizontal Rule" defStyleNum="dsNormal" bold="true" spellChecking="false"/>
       <itemData name="Line Break" defStyleNum="dsNormal" underline="true" color="#999999" spellChecking="false"/>
@@ -592,6 +651,7 @@
       <itemData name="Blockquote: Strong Text" defStyleNum="dsAttribute" bold="true"/>
       <itemData name="Blockquote: Strong-Emphasis Text" defStyleNum="dsAttribute" italic="true" bold="true"/>
       <itemData name="Blockquote: Strikethrough Text" defStyleNum="dsAttribute" strikeOut="true"/>
+      <itemData name="Blockquote: Highlight Text" defStyleNum="dsAlert"/>
       <itemData name="Blockquote: Link" defStyleNum="dsAttribute" underline="true" spellChecking="false"/>
       <itemData name="List" defStyleNum="dsSpecialString" bold="1" spellChecking="false"/>
       <itemData name="Number List" defStyleNum="dsSpecialString" spellChecking="false"/>
@@ -600,11 +660,14 @@
       <itemData name="List: Strong Text" defStyleNum="dsNormal" bold="true"/>
       <itemData name="List: Strong-Emphasis Text" defStyleNum="dsNormal" italic="true" bold="true"/>
       <itemData name="List: Strikethrough Text" defStyleNum="dsNormal" strikeOut="true"/>
+      <itemData name="List: Highlight Text" defStyleNum="dsAlert"/>
       <itemData name="List: Link" defStyleNum="dsNormal" underline="true" spellChecking="false"/>
       <itemData name="List: Checkbox" defStyleNum="dsVariable" spellChecking="false"/>
       <itemData name="Comment" defStyleNum="dsComment"/>
       <itemData name="Code" defStyleNum="dsInformation"/>
       <itemData name="Fenced Code" defStyleNum="dsInformation" spellChecking="false"/>
+      <itemData name="Table" defStyleNum="dsPreprocessor"/>
+      <itemData name="Emoji" defStyleNum="dsSpecialChar" spellChecking="false"/>
       <itemData name="Auto-Link" defStyleNum="dsOthers" spellChecking="false"/>
       <itemData name="Link" defStyleNum="dsOthers" underline="true" spellChecking="false"/>
       <itemData name="Mailto-Link" defStyleNum="dsOthers" spellChecking="false"/>
diff --git a/syntax/mathematica.xml b/syntax/mathematica.xml
--- a/syntax/mathematica.xml
+++ b/syntax/mathematica.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="Mathematica" version="12" kateversion="5.0" section="Scientific"
           extensions="*.nb" mimetype="application/mathematica;application/vnd.wolfram.mathematica" indenter="cstyle"
           author="Sven Brauch (svenbrauch@gmail.com)" license="LGPL" priority="3">
diff --git a/syntax/matlab.xml b/syntax/matlab.xml
--- a/syntax/matlab.xml
+++ b/syntax/matlab.xml
@@ -55,7 +55,7 @@
   Co-author: Leonardo Finetti, www.finex.org
 -->
 
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!-- low priority to let Objective-C win for .m files per default -->
 <language name="Matlab" version="8" kateversion="5.0" section="Scientific" extensions="*.m;*.M" priority="-9" mimetype="text/mfile" casesensitive="1">
   <highlighting>
diff --git a/syntax/maxima.xml b/syntax/maxima.xml
--- a/syntax/maxima.xml
+++ b/syntax/maxima.xml
@@ -19,7 +19,7 @@
     Usage: place maxima.xml in $KDEDIR/share/apps/katepart/syntax.
 -->
 
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 
 <language name="Maxima" version="7" kateversion="5.2" section="Scientific" extensions="*.mac;*.MAC;*.dem;*.DEM" casesensitive="1" author="Alexey Beshenov &lt;al@beshenov.ru&gt;" license="LGPLv2.1+">
     <highlighting>
diff --git a/syntax/mediawiki.xml b/syntax/mediawiki.xml
--- a/syntax/mediawiki.xml
+++ b/syntax/mediawiki.xml
@@ -1,5 +1,5 @@
 <?xml version = '1.0' encoding = 'UTF-8'?>
-<!DOCTYPE language SYSTEM "language.dtd" [
+<!DOCTYPE language [
   <!ENTITY tab "&#9;">
   <!ENTITY url          "(http:|https:|ftp:|mailto:)[^]| ]*(?=$|[]|\s])">
   <!ENTITY htmlTagName  "(?![0-9])[\w_:][\w.:_-]*">
@@ -7,7 +7,7 @@
   <!ENTITY wikiLinkWithDescription "\[\[[^]|]*\|[^]]*\]\]">
   <!ENTITY wikiLinkWithoutDescription "\[\[[^]|]*\]\]">
 ]>
-<language name="MediaWiki" section="Markup" version="12" kateversion="5.53" extensions="*.mediawiki" mimetype="" license="FDL" >
+<language name="MediaWiki" section="Markup" version="13" kateversion="5.53" extensions="*.mediawiki" mimetype="" license="FDL" >
   <highlighting>
     <contexts>
       <context attribute="Normal" lineEndContext="#stay" name="normal" >
@@ -532,11 +532,11 @@
 
       <context attribute="Normal" lineEndContext="#stay" name="FindUrl" >
         <RegExpr String="\[&url;" attribute="WikiTag" context="DelimitedURL" lookAhead="true" />
-        <RegExpr String="&url;" attribute="URL" context="LooseURL" lookAhead="true" />
+        <RegExpr String="&url;" context="LooseURL" lookAhead="true" />
       </context>
       <context attribute="Normal" lineEndContext="#stay" name="FindUrlWithinTemplate" >
         <RegExpr String="\[&url;" attribute="WikiTag" context="DelimitedURL" lookAhead="true" />
-        <RegExpr String="&url;" attribute="URL" context="LooseURLWithinTemplate" lookAhead="true" />
+        <RegExpr String="&url;" context="LooseURLWithinTemplate" lookAhead="true" />
       </context>
 
       <context name="FindWikiLink" attribute="Normal" lineEndContext="#stay">
@@ -582,7 +582,6 @@
       <itemData name="LinkBoldUnderlined" defStyleNum="dsOthers" bold="true" underline="true" />
       <itemData name="LinkItalicUnderlined" defStyleNum="dsOthers" italic="true" underline="true" />
       <itemData name="LinkBoldItalicUnderlined" defStyleNum="dsOthers" bold="true" italic="true" underline="true" />
-      <itemData name="URL" defStyleNum="dsOthers" />
       <itemData name="Comment" defStyleNum="dsComment" />
       <itemData name="Section" defStyleNum="dsKeyword" />
       <itemData name="DefinitionListHeader" defStyleNum="dsKeyword" />
diff --git a/syntax/metafont.xml b/syntax/metafont.xml
--- a/syntax/metafont.xml
+++ b/syntax/metafont.xml
@@ -5,10 +5,10 @@
 We have moved some keywords for consistency
 -->
 
-<!DOCTYPE language SYSTEM "language.dtd" [
+<!DOCTYPE language [
   <!ENTITY lengths "(bp|cc|cm|dd|in|mm|pc|pt)">
 ]>
-<language name="Metapost/Metafont" section="Markup" version="11" kateversion="5.0"
+<language name="Metapost/Metafont" section="Markup" version="12" kateversion="5.0"
 extensions="*.mp;*.mps;*.mpost;*.mf" mimetype="text/x-metapost" 
 author="Yedvilun (yedvilun@gmail.com)" license="LGPL">
   <highlighting>
@@ -936,36 +936,36 @@
         <IncludeRules context="##Comments" />
         <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
       </context>
+    </contexts>
 
-</contexts>
     <itemDatas>
       <itemData name="Normal Text" defStyleNum="dsNormal"/>
-      <itemData name="Keyword" defStyleNum="dsNormal" color="#800000" selColor="#60FFFF" bold="0" italic="0"/>
-      <itemData name="Keyword Mathmode" defStyleNum="dsNormal" color="#606000" selColor="#FFD0FF" bold="0" italic="0"/>
+      <itemData name="Keyword" defStyleNum="dsFunction"/>
+      <itemData name="Keyword Mathmode" defStyleNum="dsFunction" italic="1"/>
       <itemData name="Comment" defStyleNum="dsComment"/>
 
       <itemData name="Error" defStyleNum="dsAlert"/>
-      <itemData name="Math" defStyleNum="dsNormal" color="#00A000" selColor="#FF40FF"  bold="0" italic="0"/>
+      <itemData name="Math" defStyleNum="dsSpecialString"/>
       <itemData name="TeX" defStyleNum="dsNormal"/>
       <itemData name="String" defStyleNum="dsString"/>
       <itemData name="Verbatim" defStyleNum="dsVerbatimString"/>
-      <itemData name="Macro"  defStyleNum="dsKeyword" color="#770000" selColor="#99FFFF" bold="0" italic="0"/>
+      <itemData name="Macro"  defStyleNum="dsKeyword"/>
       <itemData name="Operator" defStyleNum="dsOperator"/>
       <itemData name="Special" defStyleNum="dsKeyword" color="#008000" bold="0"/>
-      <itemData name="Conditional" defStyleNum="dsKeyword"/>
+      <itemData name="Conditional" defStyleNum="dsControlFlow"/>
 
-      <itemData name="Statement" defStyleNum="dsNormal" color="#0000FF" selColor="#FFFF00" bold="0" italic="0"/>
-      <itemData name="BoolExp" defStyleNum="dsKeyword" italic="1" bold="0" color="#AA00AA" selColor="#FFFF00"/>
-      <itemData name="NumExp" defStyleNum="dsFunction"/>
+      <itemData name="Statement" defStyleNum="dsAttribute"/>
+      <itemData name="BoolExp" defStyleNum="dsBuiltIn"/>
+      <itemData name="NumExp" defStyleNum="dsBuiltIn"/>
       <itemData name="Variable" defStyleNum="dsVariable"/>
-      <itemData name="Identifier" defStyleNum="dsKeyword"/>
+      <itemData name="Identifier" defStyleNum="dsRegionMarker"/>
       <itemData name="Type" defStyleNum="dsDataType"/>
       <itemData name="Decimal" defStyleNum="dsDecVal"/>
       <itemData name="Octal" defStyleNum="dsBaseN"/>
       <itemData name="Hex" defStyleNum="dsBaseN"/>
       <itemData name="Bullet" defStyleNum="dsExtension"/>
       <itemData name="Float" defStyleNum="dsFloat"/>
- </itemDatas>
+    </itemDatas>
   </highlighting>
 
   <general>
diff --git a/syntax/mips.xml b/syntax/mips.xml
--- a/syntax/mips.xml
+++ b/syntax/mips.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="MIPS Assembler" version="6" kateversion="5.0" section="Assembler" extensions="*.s;" mimetype="text/x-mips" author="Dominik Haumann (dhaumann@kde.org)" license="MIT" priority="-1">
   <highlighting>
     <list name="type">
diff --git a/syntax/modelines.xml b/syntax/modelines.xml
--- a/syntax/modelines.xml
+++ b/syntax/modelines.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
     <!ENTITY space " ">
     <!ENTITY end "&#59;">
diff --git a/syntax/modula-2.xml b/syntax/modula-2.xml
--- a/syntax/modula-2.xml
+++ b/syntax/modula-2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="Modula-2" mimetype="text/x-modula2" version="8"
   kateversion="5.0" section="Sources" priority="5" extensions="*.mod;*.def"
   casesensitive="1"  author="B. Kowarsch (trijezdci@github)"  license="MIT">
diff --git a/syntax/modula-3.xml b/syntax/modula-3.xml
--- a/syntax/modula-3.xml
+++ b/syntax/modula-3.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!-- author ik Iztok Kobal (iztok.kobal@siol.net) -->
 <!-- followed CM3 documentation (http://www.elegosoft.com/cm3/doc/reference/index.html , chapter Syntax) -->
 <!-- 03.03.2005 ik mailed version 1.00 to Dominik Haumann <dhdev@gmx.de> of kate team -->
diff --git a/syntax/monobasic.xml b/syntax/monobasic.xml
--- a/syntax/monobasic.xml
+++ b/syntax/monobasic.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 
 <!--
     Mono Basic syntax
diff --git a/syntax/mustache.xml b/syntax/mustache.xml
--- a/syntax/mustache.xml
+++ b/syntax/mustache.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
 	<!ENTITY name          "[A-Za-z_:][\w.:_-]*">
 	<!ENTITY attributeName "(?:\s|^)[A-Za-z_:\*#\(\[][\)\]\w\.:_-]*">
@@ -43,7 +43,7 @@
      * v1 [2019-02-10]: Initial version
 -->
 
-<language name="Mustache/Handlebars (HTML)" version="8" kateversion="5.53"
+<language name="Mustache/Handlebars (HTML)" version="9" kateversion="5.79"
           section="Markup" priority="1" mimetype=""
           extensions="*.mustache;*.handlebars;*.hbs;*.ractive;*.hogan;*.hulk;*.html.mst;*.html.mu;*.html.rac"
           author="Nibaldo González (nibgonz@gmail.com), based on the HTML highlighter by Wilbert Berendsen (wilbert@kde.nl)"
@@ -54,8 +54,8 @@
 	<contexts>
 
 		<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
-			<RegExpr context="CSS" attribute="Element Tag" String="&lt;style\b" insensitive="true" beginRegion="style" />
-			<RegExpr context="JS" attribute="Element Tag" String="&lt;script\b" insensitive="true" beginRegion="script" />
+			<WordDetect context="CSS" attribute="Element Tag" String="&lt;style" insensitive="true" beginRegion="style" />
+			<WordDetect context="JS" attribute="Element Tag" String="&lt;script" insensitive="true" beginRegion="script" />
 			<IncludeRules context="Base" />
 		</context>
 
@@ -64,7 +64,7 @@
 			<IncludeRules context="MustacheVariables" />
 
 			<StringDetect context="CDATA" attribute="CDATA" String="&lt;![CDATA[" beginRegion="cdata" />
-			<RegExpr context="Doctype" attribute="Doctype" String="&lt;!DOCTYPE\s+" insensitive="true" beginRegion="doctype"  />
+			<WordDetect context="Doctype" attribute="Doctype" String="&lt;!DOCTYPE" insensitive="true" beginRegion="doctype" />
 			<IncludeRules context="FindPI" />
 
 			<IncludeRules context="FindTags" />
@@ -153,11 +153,11 @@
 			<LineContinue context="#stay" attribute="Escape" />
 			<HlCStringChar context="#stay" attribute="Escape" />
 		</context>
-		<context name="MustacheSymbolValue" attribute="Mustache Inside" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+		<context name="MustacheSymbolValue" attribute="Mustache Inside" lineEndContext="#pop" fallthroughContext="#pop">
 			<DetectChar context="#pop!MustacheValue" attribute="Symbol" char="=" />
 			<DetectSpaces />
 		</context>
-		<context name="MustacheValue" attribute="Mustache Inside" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+		<context name="MustacheValue" attribute="Mustache Inside" lineEndContext="#pop" fallthroughContext="#pop">
 			<DetectSpaces />
 			<RegExpr context="#pop" attribute="Number" String="\d+(?=[\s\}\)\]]|$)" />
 		</context>
@@ -243,7 +243,7 @@
 			<DetectChar context="Value" attribute="Symbol" char="=" />
 		</context>
 
-		<context name="Value" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!ValueNQ">
+		<context name="Value" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!ValueNQ">
 			<DetectChar context="#pop!ValueDQ" attribute="Value" char="&quot;" />
 			<DetectChar context="#pop!ValueSQ" attribute="Value" char="&apos;" />
 			<RegExpr context="#pop" attribute="Number" String="\d+(?=\s|/?&gt;|$)" />
@@ -259,7 +259,7 @@
 			<IncludeRules context="MustacheVariables" />
 			<IncludeRules context="FindEntityRefs" />
 		</context>
-		<context name="ValueNQ" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+		<context name="ValueNQ" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
 			<IncludeRules context="MustacheVariables" />
 			<IncludeRules context="FindEntityRefs" />
 			<RegExpr context="#stay" attribute="Value" String="/(?!&gt;)|[^/&gt;&lt;&quot;&apos;\s]" />
@@ -343,7 +343,7 @@
 			<RegExpr context="#stay" attribute="Error" String="\S" />
 		</context>
 		<context name="CSSContent" attribute="Normal Text" lineEndContext="#stay">
-			<RegExpr context="#pop!ElementTagEnd" attribute="Element Tag" String="&lt;/style\b" insensitive="true" endRegion="style" />
+			<WordDetect context="#pop!ElementTagEnd" attribute="Element Tag" String="&lt;/style" insensitive="true" endRegion="style" />
 			<IncludeRules context="MustacheVariables" />
 
 			<DetectChar context="CSS-RuleSet" attribute="Normal Text" char="{" beginRegion="ruleset" />
@@ -352,11 +352,23 @@
 		</context>
 
 		<!-- Overwrite some rules of 'css.xml' to add Mustache variables -->
-		<context name="CSS-RuleSet" attribute="Normal Text" lineEndContext="#stay">
+		<context name="CSS-RuleSet" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="CSS-Rule">
+			<IncludeRules context="MustacheVariables" />
+			<DetectChar context="CSS-RuleSet" attribute="Normal Text" char="{" beginRegion="ruleset" />
 			<DetectChar context="#pop" attribute="Normal Text" char="}" endRegion="ruleset" />
+         <AnyChar context="CSS-Selector" String=".#:,[*>+~|&amp;" lookAhead="1" />
+		</context>
+		<context name="CSS-Selector" attribute="Normal Text" lineEndContext="#stay">
 			<IncludeRules context="MustacheVariables" />
-			<IncludeRules context="RuleSet##CSS" />
+			<DetectChar context="#pop!CSS-RuleSet" attribute="Normal Text" char="{" beginRegion="ruleset" />
+			<DetectChar attribute="Normal Text" context="#pop#pop" char="}" endRegion="ruleset"/>
+			<IncludeRules context="Selector##CSS" />
 		</context>
+		<context name="CSS-Rule" attribute="Normal Text" lineEndContext="#stay">
+			<IncludeRules context="MustacheVariables" />
+			<AnyChar context="#pop!CSS-Selector" String=".#,[*>+~|&amp;@{}" lookAhead="1"/>
+			<IncludeRules context="Rule##CSS" />
+		</context>
 		<context name="CSS-SelectorAttr" attribute="CSS: Selector Attribute" lineEndContext="#stay">
 			<DetectChar context="#pop" attribute="CSS: Selector Attribute" char="]" />
 			<IncludeRules context="MustacheVariables" />
@@ -374,14 +386,14 @@
 		</context>
 
 		<context name="JSContent" attribute="Normal Text" lineEndContext="#stay">
-			<RegExpr context="#pop!ElementTagEnd" attribute="Element Tag" String="&lt;/script\b" insensitive="true" endRegion="script" />
+			<WordDetect context="#pop!ElementTagEnd" attribute="Element Tag" String="&lt;/script" insensitive="true" endRegion="script" />
 			<RegExpr context="JSCommentClose" attribute="Comment" String="//(?=.*&lt;/script\b)" insensitive="true" />
 			<IncludeRules context="MustacheVariables" />
 			<IncludeRules context="OverwriteJavaScript" />
 			<IncludeRules context="Normal##JavaScript" includeAttrib="true"/>
 		</context>
 		<context name="JSCommentClose" attribute="Comment" lineEndContext="#pop">
-			<RegExpr context="#pop#pop!ElementTagEnd" attribute="Element Tag" String="&lt;/script\b" insensitive="true" endRegion="script" />
+			<WordDetect context="#pop#pop!ElementTagEnd" attribute="Element Tag" String="&lt;/script" insensitive="true" endRegion="script" />
 			<DetectSpaces />
 			<IncludeRules context="##Comments" />
 		</context>
diff --git a/syntax/nasm.xml b/syntax/nasm.xml
--- a/syntax/nasm.xml
+++ b/syntax/nasm.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
     <!ENTITY float1 "0x[0-9a-f_]*+(?:(?:\.[0-9a-f_]*+)?p[-+]?[0-9_]++|\.[0-9a-f_]*+)">
     <!ENTITY float2 "0++p([0-9][0-9_]*+)?">
diff --git a/syntax/nim.xml b/syntax/nim.xml
--- a/syntax/nim.xml
+++ b/syntax/nim.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 
 <!--
 Improvements:
@@ -20,10 +20,10 @@
 
 <language
 	name="Nim"
-	version="3"
+	version="4"
 	kateversion="5.53"
 	section="Sources"
-	extensions="*.nim"
+	extensions="*.nim;*.nims;*.nimble"
 	mimetype="text/x-nim"
 	indenter="python"
 	author="github.com/juancarlospaco"
@@ -224,7 +224,7 @@
 			</context>
 
 			<context name="stringescape" attribute="String" lineEndContext="#stay">
-				<RegExpr attribute="String Char" String="\\[&quot;abfnrtv]" context="#stay"/>
+				<RegExpr attribute="String Char" String="\\[&quot;abfnrtv\\]" context="#stay"/>
 			</context>
 
 			<context name="string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true">
diff --git a/syntax/nix.xml b/syntax/nix.xml
new file mode 100644
--- /dev/null
+++ b/syntax/nix.xml
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language [
+    <!ENTITY ident "[a-zA-Z_][a-zA-Z0-9_\-']*">
+]>
+
+<!--
+    SPDX-FileCopyrightText: 2021 Marco Rebhan <me@dblsaiko.net>
+    SPDX-FileContributor: Tuan Le <webmaster@michivi.com>
+
+    SPDX-License-Identifier: MIT
+-->
+
+<language
+    name="Nix"
+    version="2"
+    kateversion="5.79"
+    section="Scripts"
+    extensions="*.nix"
+    casesensitive="1"
+    author="Marco Rebhan &lt;me@dblsaiko.net&gt;"
+    license="MIT"
+    priority="1"
+>
+    <highlighting>
+        <list name="keywords">
+            <item>assert</item>
+            <item>rec</item>
+            <item>and</item>
+            <item>or</item>
+        </list>
+        <list name="builtins">
+            <item>abort</item>
+            <item>baseNameOf</item>
+            <item>builtins</item>
+            <item>derivation</item>
+            <item>dirOf</item>
+            <item>fetchTarball</item>
+            <item>import</item>
+            <item>isNull</item>
+            <item>map</item>
+            <item>removeAttrs</item>
+            <item>throw</item>
+            <item>toString</item>
+        </list>
+        <contexts>
+            <context name="Expression" attribute="Normal Text" lineEndContext="#stay">
+                <IncludeRules context="Single Expression" />
+
+                <keyword String="keywords" attribute="Keyword" />
+                <WordDetect String="let" attribute="Keyword" context="Let" />
+                <WordDetect String="if" attribute="Keyword" context="If" />
+                <WordDetect String="with" attribute="Keyword" context="With" />
+                <Detect2Chars char="/" char1="/" attribute="Operator" />
+                <Detect2Chars char="?" char1="?" attribute="Operator" />
+                <Detect2Chars char="+" char1="+" attribute="Operator" />
+                <Detect2Chars char="|" char1="|" attribute="Operator" />
+                <Detect2Chars char="&amp;" char1="&amp;" attribute="Operator" />
+                <AnyChar String="+-*/?!" attribute="Operator" />
+                <RegExpr String="\b&ident;(?=\s*:)" context="Function" attribute="Identifier" />
+
+                <DetectIdentifier />
+            </context>
+            <context name="Single Expression" attribute="Normal Text" lineEndContext="#stay">
+                <DetectSpaces />
+                <IncludeRules context="Comment Rules" />
+
+                <keyword String="builtins" attribute="Builtin" />
+                <DetectChar char="&quot;" attribute="String" context="String" />
+                <Detect2Chars char="'" char1="'" attribute="String" context="String2" />
+                <DetectChar char="{" attribute="Symbol" context="Any Brace" beginRegion="Set" />
+                <DetectChar char="[" attribute="Symbol" context="List" beginRegion="List" />
+                <DetectChar char="(" attribute="Symbol" context="Parentheses" />
+                <RegExpr String="[a-zA-Z0-9-_.]*(/[a-zA-Z0-9-_.]+)+" attribute="Path" />
+                <Float attribute="Float" />
+                <Int attribute="Int" />
+                <WordDetect String="true" attribute="Constant" />
+                <WordDetect String="false" attribute="Constant" />
+                <WordDetect String="null" attribute="Constant" />
+            </context>
+            <context name="Parentheses" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar char=")" attribute="Symbol" context="#pop" />
+
+                <IncludeRules context="Expression" />
+            </context>
+
+            <context name="Comment Rules" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar char="#" attribute="Comment" context="Comment" />
+                <Detect2Chars char="/" char1="*" attribute="Comment" context="Multi-Line Comment" beginRegion="Comment" />
+            </context>
+            <context name="Comment" attribute="Comment" lineEndContext="#pop">
+                <DetectSpaces attribute="Comment"/>
+                <IncludeRules context="##Comments"/>
+                <DetectIdentifier attribute="Comment" context="#stay" />
+            </context>
+            <context name="Multi-Line Comment" attribute="Comment" lineEndContext="#stay">
+                <Detect2Chars char="*" char1="/" attribute="Comment" context="#pop" endRegion="Comment" />
+                <IncludeRules context="Comment"/>
+            </context>
+
+            <context name="String" attribute="String" lineEndContext="#stay">
+                <RegExpr String="\\." attribute="Special Char" />
+                <DetectChar char="&quot;" attribute="String" context="#pop" />
+
+                <Detect2Chars char="$" char1="{" attribute="Special Char" context="Interpolated String" />
+            </context>
+            <context name="String2" attribute="String" lineEndContext="#stay">
+                <RegExpr String="''(?:['$]|\\.)" attribute="Special Char" />
+                <Detect2Chars char="'" char1="'" attribute="String" context="#pop" />
+
+                <Detect2Chars char="$" char1="{" attribute="Special Char" context="Interpolated String" />
+            </context>
+            <context name="Interpolated String" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar char="}" attribute="Special Char" context="#pop" />
+
+                <IncludeRules context="Expression" />
+            </context>
+
+            <!--
+                we don't know whether this is a set { k = v; k1 = v1; ... } or
+                the beginning of a function declaration { x1, x2, x3, ... }: ...
+                yet
+            -->
+            <context name="Any Brace" attribute="Normal Text" lineEndContext="#stay">
+                <DetectSpaces />
+                <DetectChar char="}" attribute="Symbol" context="#pop" endRegion="Set"/>
+
+                <WordDetect String="inherit" attribute="Keyword" context="Any Brace - Inherit" />
+                <DetectChar char=";" attribute="Symbol" context="#pop!Set" />
+                <DetectChar char="=" attribute="Operator" context="Any Brace - Set Value" />
+                <DetectChar char="&quot;" attribute="String" context="Any Brace - String" />
+                <Detect2Chars char="'" char1="'" attribute="String" context="Any Brace - String2" />
+
+                <DetectChar char="," attribute="Symbol" context="#pop!Set Expansion" />
+                <DetectChar char="?" attribute="Symbol" context="Any Brace - Default Value" />
+                <StringDetect String="..." attribute="Symbol" context="#pop!Set Expansion" />
+
+                <RegExpr String="&ident;" attribute="Identifier" />
+
+                <IncludeRules context="Comment Rules" />
+            </context>
+            <!--
+                can't push two contexts so we need separate ones specifically
+                for this
+            -->
+            <context name="Any Brace - Set Value" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar char=";" attribute="Symbol" context="#pop#pop!Set" />
+                <IncludeRules context="Set Value" />
+            </context>
+            <context name="Any Brace - String" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar char="&quot;" attribute="String" context="#pop#pop!Set" />
+                <IncludeRules context="String" />
+            </context>
+            <context name="Any Brace - String2" attribute="Normal Text" lineEndContext="#stay">
+                <Detect2Chars char="'" char1="'" attribute="String" context="#pop#pop!Set" />
+                <IncludeRules context="String" />
+            </context>
+            <context name="Any Brace - Inherit" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar char=";" attribute="Symbol" context="#pop#pop!Set" />
+                <IncludeRules context="Inherit" />
+            </context>
+            <context name="Any Brace - Default Value" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar char="," attribute="Symbol" context="#pop#pop!Set Expansion" />
+                <IncludeRules context="Default Value" />
+            </context>
+
+            <!-- include for sets and let expressions -->
+            <context name="Set-Like" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar char="&quot;" attribute="String" context="String" />
+                <Detect2Chars char="'" char1="'" attribute="String" context="String2" />
+                <DetectChar char="=" attribute="Operator" context="Set Value" />
+                <RegExpr String="&ident;" attribute="Identifier" />
+                <IncludeRules context="Comment Rules" />
+            </context>
+            <context name="Inherit" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar char=";" attribute="Symbol" context="#pop" />
+                <IncludeRules context="Single Expression" />
+            </context>
+
+            <context name="Set" attribute="Normal Text" lineEndContext="#stay">
+                <DetectSpaces />
+                <DetectChar char="}" attribute="Symbol" context="#pop" endRegion="Set" />
+                <WordDetect String="inherit" attribute="Keyword" context="Inherit" />
+
+                <IncludeRules context="Set-Like" />
+            </context>
+            <context name="Set Value" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar char=";" attribute="Symbol" context="#pop" />
+                <DetectChar char="}" attribute="Error" context="#pop#pop" endRegion="Set" />
+
+                <IncludeRules context="Expression" />
+            </context>
+
+            <context name="Set Expansion" attribute="Normal Text" lineEndContext="#stay">
+                <DetectSpaces />
+                <DetectChar char="}" attribute="Symbol" context="#pop" endRegion="Set"/>
+
+                <DetectChar char="," attribute="Symbol" />
+                <DetectChar char="?" attribute="Symbol" context="Default Value" />
+                <StringDetect String="..." attribute="Symbol" />
+                <RegExpr String="&ident;" attribute="Identifier" />
+                <IncludeRules context="Comment Rules" />
+            </context>
+            <context name="Default Value" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar char="," attribute="Symbol" context="#pop" />
+                <DetectChar char="}" attribute="Symbol" context="#pop#pop" />
+
+                <IncludeRules context="Expression" />
+            </context>
+
+            <context name="List" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar char="]" attribute="Symbol" context="#pop" endRegion="List" />
+
+                <IncludeRules context="Single Expression" />
+            </context>
+
+            <context name="Function" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar char=":" attribute="Symbol" context="#pop" />
+                <DetectSpaces attribute="Normal Text" />
+            </context>
+
+            <context name="Let" attribute="Normal Text" lineEndContext="#stay">
+                <DetectSpaces />
+                <WordDetect String="in" attribute="Keyword" context="#pop" />
+
+                <IncludeRules context="Set-Like" />
+            </context>
+
+            <context name="If" attribute="Normal Text" lineEndContext="#stay">
+                <WordDetect String="then" attribute="Keyword" context="#pop!Then" />
+
+                <IncludeRules context="Expression" />
+            </context>
+            <context name="Then" attribute="Normal Text" lineEndContext="#stay">
+                <WordDetect String="else" attribute="Keyword" context="#pop" />
+
+                <IncludeRules context="Expression" />
+            </context>
+
+            <context name="With" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar char=";" attribute="Symbol" context="#pop" />
+                <IncludeRules context="Expression" />
+            </context>
+        </contexts>
+        <itemDatas>
+            <itemData name="Normal Text" defStyleNum="dsNormal" />
+            <itemData name="Builtin" defStyleNum="dsBuiltIn" />
+            <itemData name="Int" defStyleNum="dsDecVal" />
+            <itemData name="Float" defStyleNum="dsFloat" />
+            <itemData name="Constant" defStyleNum="dsConstant" />
+            <itemData name="String" defStyleNum="dsString" />
+            <itemData name="Special Char" defStyleNum="dsSpecialChar" />
+            <itemData name="Path" defStyleNum="dsSpecialString" />
+            <itemData name="Keyword" defStyleNum="dsKeyword" />
+            <itemData name="Comment" defStyleNum="dsComment" />
+            <itemData name="Symbol" defStyleNum="dsOperator" />
+            <itemData name="Operator" defStyleNum="dsOperator" />
+            <itemData name="Identifier" defStyleNum="dsVariable" />
+            <itemData name="Error" defStyleNum="dsError" />
+        </itemDatas>
+    </highlighting>
+    <general>
+        <comments>
+            <comment name="singleLine" start="#" />
+            <comment name="multiLine" start="/*" end="*/" region="Comment" />
+        </comments>
+        <keywords casesensitive="1" />
+    </general>
+</language>
diff --git a/syntax/noweb.xml b/syntax/noweb.xml
--- a/syntax/noweb.xml
+++ b/syntax/noweb.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE language SYSTEM "language.dtd">
-<language name="noweb" version="5" kateversion="5.53" section="Sources" extensions="*.w;*.nw" author="Scott Collins (scc@scottcollins.net)">
+<!DOCTYPE language>
+<language name="noweb" version="5" kateversion="5.79" section="Sources" extensions="*.w;*.nw" author="Scott Collins (scc@scottcollins.net)">
 <!-- 
 #########################################################################
 # First version added to repository was 0.4, added as 1.0 .
diff --git a/syntax/objectivec.xml b/syntax/objectivec.xml
--- a/syntax/objectivec.xml
+++ b/syntax/objectivec.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
-<language name="Objective-C" version="7" kateversion="5.0" section="Sources" extensions="*.m;*.h" mimetype="text/x-objc-src;text/x-c-hdr">
+<!DOCTYPE language>
+<language name="Objective-C" alternativeNames="ObjectiveC;ObjC" version="8" kateversion="5.0" section="Sources" extensions="*.m;*.h" mimetype="text/x-objc-src;text/x-c-hdr">
   <highlighting>
     <list name="keywords">
       <item>break</item>
diff --git a/syntax/objectivecpp.xml b/syntax/objectivecpp.xml
--- a/syntax/objectivecpp.xml
+++ b/syntax/objectivecpp.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
-<language name="Objective-C++" version="10" kateversion="5.0" section="Sources" extensions="*.mm;*.M;*.h" mimetype="text/x-objcpp-src;text/x-c-hdr" author="Gennady Telegin (gepo@lvk.cs.msu.su">
+<!DOCTYPE language>
+<language name="Objective-C++" alternativeNames="ObjectiveC++;Objective-CPP;ObjectiveCPP;ObjC++;ObjCPP" version="12" kateversion="5.0" section="Sources" extensions="*.mm;*.M;*.h" mimetype="text/x-objc++src;text/x-c-hdr" author="Gennady Telegin (gepo@lvk.cs.msu.su">
   <highlighting>
     <list name="keywords">
       <item>break</item>
diff --git a/syntax/ocaml.xml b/syntax/ocaml.xml
--- a/syntax/ocaml.xml
+++ b/syntax/ocaml.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Kate syntax highlighting for Objective Caml version 4.02 in the standard and revised syntaxes, with Ocamldoc comments. -->
 
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
 <!-- Regular expresion constants: -->
 <!ENTITY LOWER  "a-z\300-\326\330-\337">         <!-- Lowercase Latin-1 letters. -->
@@ -9,17 +9,18 @@
 <!ENTITY LETTER "&LOWER;&UPPER;">                <!-- All Latin-1 letters. -->
 <!ENTITY LIDENT "[&LOWER;_][&LETTER;0-9_']*">    <!-- Lowercase OCaml identifiers. -->
 <!ENTITY UIDENT "`?[&UPPER;][&LETTER;0-9_']*">   <!-- Uppercase OCaml identifiers. -->
-<!ENTITY IDENT  "`?[&LETTER;][&LETTER;0-9_']*">  <!-- All OCaml identifiers. -->
-<!ENTITY ESC    "(\\[ntbr'&quot;\\]|\\[0-9]{3}|\\x[0-9A-Fa-f]{2})"> <!-- OCaml character code escapes. -->
+<!ENTITY IDENT  "[&LETTER;_][&LETTER;0-9_']*">  <!-- All OCaml identifiers. -->
+<!ENTITY ESC    "(\\[ntbr'&quot; \\]|\\[0-9]{3}|\\x[0-9A-Fa-f]{2}|\\o[0-3][0-7]{2})"> <!-- OCaml character code escapes. -->
 <!ENTITY DEC    "[0-9][0-9_]*">                                     <!-- Decimal digits with underscores. -->
+<!ENTITY HEX    "0[xX][0-9A-Fa-f][0-9A-Fa-f_]*">                    <!-- Integer hex literals. -->
 ]>
 <language name="Objective Caml"
           extensions="*.ml;*.mli"
           mimetype="text/x-ocaml"
           section="Sources"
-          version="9"
+          version="11"
           priority="10"
-          kateversion="5.0"
+          kateversion="5.79"
           author="Glyn Webster (glynwebster@orcon.net.nz) and Vincent Hugot (vincent.hugot@gmail.com)"
           license="LGPL" >
 
@@ -36,7 +37,6 @@
       <item>asr</item>
       <item>begin</item>
       <item>class</item>
-      <item>closed</item>
       <item>constraint</item>
       <item>do</item>
       <item>done</item>
@@ -54,6 +54,7 @@
       <item>in</item>
       <item>include</item>
       <item>inherit</item>
+      <item>initializer</item>
       <item>land</item>
       <item>lazy</item>
       <item>let</item>
@@ -102,11 +103,15 @@
       <item>abs</item>
       <item>abs_float</item>
       <item>acos</item>
+      <item>acosh</item>
       <item>asin</item>
+      <item>asinh</item>
       <item>at_exit</item>
       <item>atan</item>
       <item>atan2</item>
+      <item>atanh</item>
       <item>bool_of_string</item>
+      <item>bool_of_string_opt</item>
       <item>ceil</item>
       <item>char_of_int</item>
       <item>classify_float</item>
@@ -120,12 +125,14 @@
       <item>cosh</item>
       <item>decr</item>
       <item>do_at_exit</item>
+      <item>do_domain_local_at_exit</item>
       <item>epsilon_float</item>
       <item>exp</item>
       <item>expm1</item>
       <item>float</item>
       <item>float_of_int</item>
       <item>float_of_string</item>
+      <item>float_of_string_opt</item>
       <item>floor</item>
       <item>flush</item>
       <item>flush_all</item>
@@ -146,6 +153,7 @@
       <item>int_of_char</item>
       <item>int_of_float</item>
       <item>int_of_string</item>
+      <item>int_of_string_opt</item>
       <item>ldexp</item>
       <item>lnot</item>
       <item>log</item>
@@ -195,7 +203,9 @@
       <item>print_newline</item>
       <item>print_string</item>
       <item>read_float</item>
+      <item>read_float_opt</item>
       <item>read_int</item>
+      <item>read_int_opt</item>
       <item>read_line</item>
       <item>really_input</item>
       <item>really_input_string</item>
@@ -240,6 +250,7 @@
       <item>char</item>
       <item>exn</item>
       <item>float</item>
+      <item>format</item>
       <item>format4</item>
       <item>format6</item>
       <item>fpclass</item>
@@ -253,19 +264,21 @@
       <item>open_flag</item>
       <item>option</item>
       <item>out_channel</item>
-      <item>real</item>
       <item>ref</item>
+      <item>result</item>
       <item>string</item>
       <item>unit</item>
     </list>
 
     <list name="Pervasive Variant Tags">
+      <item>Error</item>
       <item>FP_infinite</item>
       <item>FP_nan</item>
       <item>FP_normal</item>
       <item>FP_subnormal</item>
       <item>FP_zero</item>
       <item>None</item>
+      <item>Ok</item>
       <item>Open_append</item>
       <item>Open_binary</item>
       <item>Open_creat</item>
@@ -298,18 +311,29 @@
       <item>Arg</item>
       <item>Array</item>
       <item>ArrayLabels</item>
+      <item>Atomic</item>
+      <item>Bigarray</item>
+      <item>Bool</item>
       <item>Buffer</item>
       <item>Bytes</item>
+      <item>BytesLabels</item>
       <item>Callback</item>
       <item>Char</item>
       <item>Complex</item>
+      <item>Condition</item>
       <item>Digest</item>
+      <item>Domain</item>
+      <item>Effect</item>
+      <item>Either</item>
       <item>Ephemeron</item>
       <item>Filename</item>
       <item>Format</item>
+      <item>Fun</item>
       <item>Gc</item>
       <item>Genlex</item>
       <item>Hashtbl</item>
+      <item>In_channel</item>
+      <item>Int</item>
       <item>Int32</item>
       <item>Int64</item>
       <item>Lazy</item>
@@ -319,14 +343,20 @@
       <item>Map</item>
       <item>Marshal</item>
       <item>MoreLabels</item>
+      <item>Mutex</item>
       <item>Nativeint</item>
+      <item>Obj</item>
       <item>Oo</item>
+      <item>Option</item>
+      <item>Out_channel</item>
       <item>Parsing</item>
       <item>Printexc</item>
       <item>Printf</item>
       <item>Queue</item>
       <item>Random</item>
       <item>Scanf</item>
+      <item>Semaphore</item>
+      <item>Seq</item>
       <item>Set</item>
       <item>Sort</item>
       <item>Spacetime</item>
@@ -336,7 +366,9 @@
       <item>String</item>
       <item>StringLabels</item>
       <item>Sys</item>
+      <item>Type</item>
       <item>Uchar</item>
+      <item>Unit</item>
       <item>Weak</item>
     </list>
 
@@ -344,11 +376,6 @@
 
       <context name="Code" lineEndContext="#stay" attribute="Operator">
 
-        <!-- ] and ]} close code samples in Ocamldoc, so -->
-        <!-- nested [ ] and { } brackets have to be allowed for: -->
-        <DetectChar char="[" context="Nested Code 1" attribute="Operator" />
-        <DetectChar char="{" context="Nested Code 2" attribute="Operator" />
-
         <!-- Comments. -->
         <!-- A (** begins a special comment with Ocamldoc documentation markup. -->
         <StringDetect String="(**)"      context="#stay"    attribute="Comment" />
@@ -359,17 +386,23 @@
         <!-- Interpreter directives. -->
         <!-- (These are lines where the first symbol is a '#' followed by an identifier. -->
         <!-- Such lines could also be part of a method call split over two lines but     -->
-        <!-- it's unlikey anyone would code like that.)                                  -->
+        <!-- it's unlikely anyone would code like that.)                                  -->
         <RegExpr String="#&IDENT;.*$" context="#stay" firstNonSpace="true" attribute="Directive"/>
 
         <!-- String, character and Camlp4 "quotation" constants.              -->
         <!-- Note: If you must modify the pattern for characters be precise:  -->
         <!-- single quotes have several meanings in Ocaml.                    -->
         <DetectChar char="&quot;" context="String" attribute="String" />
+        <RegExpr String="{[a-z_]*\|" context="Quoted String" attribute="Quoted String" />
         <RegExpr String="'(&ESC;|[^'])'" context="#stay" attribute="Character" />
         <Detect2Chars char="&lt;" char1="&lt;" context="Camlp4 Quotation" attribute="Camlp4 Quotation" />
         <RegExpr String="&lt;:&IDENT;&lt;" context="Camlp4 Quotation" attribute="Camlp4 Quotation" />
 
+        <!-- ] and ]} close code samples in Ocamldoc, so -->
+        <!-- nested [ ] and { } brackets have to be allowed for: -->
+        <DetectChar char="[" context="Nested Code 1" attribute="Operator" />
+        <DetectChar char="{" context="Nested Code 2" attribute="Operator" />
+
         <!-- Identifiers and keywords. -->
         <keyword String="Keywords"                 context="#stay" attribute="Keyword" />
         <keyword String="Revised Syntax Keywords"  context="#stay" attribute="Revised Syntax Keyword" />
@@ -384,11 +417,11 @@
 
         <!-- Numeric constants. -->
         <!-- Note that they may contain underscores. -->
-        <RegExpr String="-?0[xX][0-9A-Fa-f_]+" context="#stay" attribute="Hexadecimal" />
-        <RegExpr String="-?0[oO][0-7_]+" context="#stay" attribute="Octal" />
-        <RegExpr String="-?0[bB][01_]+" context="#stay" attribute="Binary" />
-        <RegExpr String="-?&DEC;(\.&DEC;([eE][-+]?&DEC;)?|[eE][-+]?&DEC;)" context="#stay" attribute="Float" />
-        <RegExpr String="-?&DEC;" context="#stay" attribute="Decimal" />
+        <RegExpr String="-?0[oO][0-7][0-7_]*[lLn]?" context="#stay" attribute="Octal" />
+        <RegExpr String="-?0[bB][01][01_]*[lLn]?" context="#stay" attribute="Binary" />
+        <RegExpr String="-?(&DEC;(\.&DEC;([eE][-+]?&DEC;)?|[eE][-+]?&DEC;)|&HEX;(\.[0-9A-Fa-f_]+)?[pP][+-]&DEC;)" context="#stay" attribute="Float" />
+        <RegExpr String="-?&HEX;[lLn]?" context="#stay" attribute="Hexadecimal" />
+        <RegExpr String="-?&DEC;[lLn]?" context="#stay" attribute="Decimal" />
 
         <IncludeRules context="Unmatched Closing Brackets" />
       </context>
@@ -407,7 +440,7 @@
         <DetectChar char="&quot;" context="#pop" attribute="String" />
         <!-- A backslash at the end of a line in a string indicates  -->
         <!-- that the string will continue on the next line:         -->
-        <RegExpr String="&ESC;|\\$" context="#stay" attribute="Escaped Characters" />
+        <RegExpr String="&ESC;|\\$|\\u{[0-9A-Fa-f]+}" context="#stay" attribute="Escaped Characters" />
       </context>
 
       <context name="qtest header" lineEndContext="qtest" attribute="Operator">
@@ -440,6 +473,10 @@
         <IncludeRules context="String" />
       </context>
 
+      <context name="Quoted String" lineEndContext="#stay" attribute="Quoted String">
+        <RegExpr String="\|[a-z_]*}" context="#pop" attribute="Quoted String" />
+      </context>
+
       <!-- Camlp4 Quotations. These are source code literals used by the Campl4 preprocessor.           -->
       <!-- The only escapes allowed in a Camlp4 quotation are for the quotation start and stop symbols. -->
       <context name="Camlp4 Quotation" lineEndContext="#stay" attribute="Camlp4 Quotation">
@@ -560,6 +597,7 @@
         <Detect2Chars char="]" char1="}" context="#stay" attribute="Mismatched Brackets" />
         <Detect2Chars char="%" char1="}" context="#stay" attribute="Mismatched Brackets" />
         <AnyChar      String="]}"        context="#stay" attribute="Mismatched Brackets" />
+        <RegExpr String="\|[a-z_]*}"      context="#pop" attribute="Mismatched Brackets" />
       </context>
     </contexts>
 
@@ -588,6 +626,7 @@
 
       <itemData name="Character"               defStyleNum="dsChar"     />
       <itemData name="String"                  defStyleNum="dsString"   />
+      <itemData name="Quoted String"           defStyleNum="dsString"   />
       <itemData name="Camlp4 Quotation"        defStyleNum="dsString"   />
       <itemData name="Escaped Characters"      defStyleNum="dsChar"     />
 
diff --git a/syntax/octave.xml b/syntax/octave.xml
--- a/syntax/octave.xml
+++ b/syntax/octave.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!--
   =====================================================================================================
   Octave syntax highlighting file for the KDE editors Kate and Kwrite
diff --git a/syntax/opencl.xml b/syntax/opencl.xml
--- a/syntax/opencl.xml
+++ b/syntax/opencl.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="OpenCL" section="Sources"
           version="9" kateversion="5.0"
           indenter="cstyle"
diff --git a/syntax/orgmode.xml b/syntax/orgmode.xml
new file mode 100644
--- /dev/null
+++ b/syntax/orgmode.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language
+[
+<!ENTITY listbullet "[\+\-]">
+<!ENTITY checkbox "\[[ \-X]\](?=\s)">
+<!-- links. -->
+<!ENTITY startlink "(?:(?:https?|ftp)\://|(?:file|docview|mailto|mhe|rmail|bbdb|irc|info)\:)">
+<!ENTITY link "&startlink;[^&quot;&gt;\s]+">
+<!-- link in normal text.
+     Using the implicitlink entity in markdown.xml for now.
+     Actual doc: https://orgmode.org/guide/Hyperlinks.html -->
+<!ENTITY implicitlink "\b&startlink;[^&quot;&gt;\s`\)]*[^\s!&quot;&apos;`\(\)\*,\.:;&lt;&gt;\?~\]\}\\](?=[[:punct:]]*(?:[\s\]]|$))">
+<!-- org-emphasis-alist -->
+<!ENTITY contentregex_ast "(?:(?:[^\*\s\\]|\\.)(?:[^\\]|\\.)*)?(?:[^\*\s\\]|\\\S)">
+<!ENTITY contentregex_und "(?:(?:[^_\s\\]|\\.)(?:[^\\]|\\.)*)?(?:[^_\s\\]|\\\S)">
+<!ENTITY contentregex_itl "(?:(?:[^/\s\\]|\\.)(?:[^\\]|\\.)*)?(?:[^/\s\\]|\\\S)">
+<!ENTITY contentregex_stk "(?:(?:[^+\s\\]|\\.)(?:[^\\]|\\.)*)?(?:[^+\s\\]|\\\S)">
+<!ENTITY contentregex_cod "(?:(?:[^~\s\\]|\\.)(?:[^\\]|\\.)*)?(?:[^~\s\\]|\\\S)">
+<!ENTITY contentregex_vbt "(?:(?:[^=\s\\]|\\.)(?:[^\\]|\\.)*)?(?:[^=\s\\]|\\\S)">
+<!ENTITY contentregex_mco "(?:(?:[^\{\}\s\\]|\\.)(?:[^\\]|\\.)*)?(?:[^\{\}\s\\]|\\\S)">
+<!ENTITY bold_regex "\*{1}(?:&contentregex_ast;\*{1})">
+<!ENTITY underline_regex "\b_{1}(?:&contentregex_und;_{1})">
+<!ENTITY italic_regex "[/]{1}(?:&contentregex_itl;[/]{1})">
+<!ENTITY strike_regex "\+{1}(?:&contentregex_stk;\+{1})">
+<!ENTITY inlinecode_regex "\~{1}(?:&contentregex_cod;\~{1})">
+<!ENTITY verbatim_regex "\={1}(?:&contentregex_vbt;\={1})">
+<!ENTITY macroreplacement_regex "\{{3}(?:&contentregex_mco;\}{3})">
+<!-- [[plain-link]] -->
+<!ENTITY link_plain_regex "\[\[(?:[^\[\]]+)\]\]">
+<!-- [[link][description]] -->
+<!ENTITY link_desc_regex "\[\[(?:[^\[\]]+)\]\[(?:[^\[\]]+)\]\]">
+]>
+
+<!-- org syntax spec: https://orgmode.org/worg/dev/org-syntax.html -->
+<!-- syntax highlight: https://docs.kde.org/stable5/en/kate/katepart/highlight.html -->
+<language name="Org Mode" version="4" kateversion="5.79" section="Markup" extensions="*.org" priority="15" author="Gary Wang" license="MIT">
+  <highlighting>
+    <list name="org-todo-keywords-todo">
+      <item>TODO</item>
+    </list>
+    <list name="org-todo-keywords-done">
+      <item>DONE</item>
+    </list>
+    <contexts>
+      <context name="Normal Text" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar context="find-header" char="*" column="0" lookAhead="true"/>
+        <RegExpr attribute="List" context="list" String="^(\s*)&listbullet;(\s+)" column="0"/>
+        <RegExpr attribute="Number List" context="numlist" String="^(\s*)\d+(?:\.|\))(\s+)" column="0"/>
+        <RegExpr attribute="Comment" String="^(\s*)# .*" column="0"/>
+        <RegExpr attribute="Block" context="find-block" String="^#\+BEGIN(_\w+|:).*" beginRegion="RegionBlock" column="0"/>
+        <RegExpr attribute="Babel" String="^(\s*)#\+[A-Z]+(?:\[[A-Z]+\])?:.*" column="0"/>
+        <DetectChar context="find-bold-normal" char="*" lookAhead="true"/>
+        <DetectChar context="find-underline-normal" char="_" lookAhead="true"/>
+        <DetectChar context="find-italic-normal" char="/" lookAhead="true"/>
+        <DetectChar context="find-strike-normal" char="+" lookAhead="true"/>
+        <DetectChar context="find-inlinecode-normal" char="~" lookAhead="true"/>
+        <DetectChar context="find-verbatim-normal" char="=" lookAhead="true"/>
+        <DetectChar context="find-link-normal" char="[" lookAhead="true"/>
+        <StringDetect context="find-macro-replacement" String="{{{" lookAhead="true"/>
+        <RegExpr attribute="Normal Text: Link" String="&implicitlink;"/>
+      </context>
+      <context name="find-header" attribute="Normal Text" lineEndContext="#pop">
+        <RegExpr context="parse-header" String="^(?:\*){1,}\s+(?:([A-Z]+)\s+){0,1}(?:(\[#(?:[A-Z\d]+)\])\s+){0,1}(.*)\s*(\[[\d/%]+\]){0,1}\s*$" column="0" lookAhead="true"/>
+      </context>
+      <context name="parse-header" attribute="Heading" lineEndContext="#pop">
+        <RegExpr attribute="Heading" String="(?:\*){1,}\s+" lookAhead="false"/>
+        <keyword String="org-todo-keywords-todo" attribute="Keyword Todo" context="#stay" />
+        <keyword String="org-todo-keywords-done" attribute="Keyword Done" context="#stay" />
+        <RegExpr attribute="Cookie: Priority" String="\[#(?:[A-Z\d]+)\]" lookAhead="false"/>
+        <RegExpr attribute="Cookie: Statistics" String="\[[\d/%]+\]" lookAhead="false"/>
+      </context>
+      <context name="list" attribute="List: Normal Text" lineEndContext="#stay">
+        <RegExpr context="#pop" String="^\s*\S" column="0" lookAhead="true"/>
+        <RegExpr attribute="List: Checkbox" String="\s*&checkbox;"/>
+      </context>
+      <context name="numlist" attribute="List: Normal Text" lineEndContext="#stay">
+        <RegExpr context="#pop" String="^\s*\S" column="0" lookAhead="true"/>
+        <RegExpr attribute="List: Checkbox" String="\s*&checkbox;"/>
+      </context>
+      <context name="find-block" attribute="Block" lineEndContext="#stay">
+        <StringDetect context="#pop" attribute="Block" String="#+END%1" dynamic="true" endRegion="RegionBlock" column="0"/>
+      </context>
+      <context name="find-bold-normal" attribute="Normal Text" lineEndContext="#pop">
+        <RegExpr attribute="Bold Text" context="#pop" minimal="true" String="&bold_regex;"/>
+        <DetectChar attribute="Normal Text" context="#pop" char="*"/>
+      </context>
+      <context name="find-underline-normal" attribute="Normal Text" lineEndContext="#pop">
+        <RegExpr attribute="Underline Text" context="#pop" minimal="true" String="&underline_regex;"/>
+        <DetectChar attribute="Normal Text" context="#pop" char="_"/>
+      </context>
+      <context name="find-italic-normal" attribute="Normal Text" lineEndContext="#pop">
+        <RegExpr attribute="Italic Text" context="#pop" minimal="true" String="&italic_regex;"/>
+        <DetectChar attribute="Normal Text" context="#pop" char="/"/>
+      </context>
+      <context name="find-strike-normal" attribute="Normal Text" lineEndContext="#pop">
+        <RegExpr attribute="Strikethrough Text" context="#pop" minimal="true" String="&strike_regex;"/>
+        <DetectChar attribute="Normal Text" context="#pop" char="+"/>
+      </context>
+      <context name="find-verbatim-normal" attribute="Normal Text" lineEndContext="#pop">
+        <RegExpr attribute="Verbatim" context="#pop" minimal="true" String="&verbatim_regex;"/>
+        <DetectChar attribute="Normal Text" context="#pop" char="~"/>
+      </context>
+      <context name="find-link-normal" attribute="Link" lineEndContext="#pop">
+        <RegExpr attribute="Plain Link" context="#pop" minimal="true" String="&link_plain_regex;"/>
+        <!-- FIXME: currently, link and description are using the same style -->
+        <RegExpr attribute="Link" context="#pop" minimal="true" String="&link_desc_regex;"/>
+        <DetectChar attribute="Normal Text" context="#pop" char="]"/>
+      </context>
+      <context name="find-macro-replacement" attribute="Normal Text" lineEndContext="#pop">
+        <RegExpr attribute="Macro" context="#pop" minimal="true" String="&macroreplacement_regex;"/>
+        <DetectChar attribute="Normal Text" context="#pop" char="}"/>
+      </context>
+      <context name="find-inlinecode-normal" attribute="Normal Text" lineEndContext="#pop">
+        <RegExpr attribute="Code" context="#pop" minimal="true" String="&inlinecode_regex;"/>
+        <DetectChar attribute="Normal Text" context="#pop" char="~"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Normal Text: Link" defStyleNum="dsNormal" underline="true" spellChecking="false"/>
+      <itemData name="Bold Text" defStyleNum="dsNormal" bold="true"/>
+      <itemData name="Underline Text" defStyleNum="dsNormal" underline="true"/>
+      <itemData name="Italic Text" defStyleNum="dsNormal" italic="true"/>
+      <itemData name="Strikethrough Text" defStyleNum="dsNormal" strikeOut="true"/>
+      <itemData name="Keyword Done" defStyleNum="dsInformation" spellChecking="false"/>
+      <itemData name="Keyword Todo" defStyleNum="dsAlert" spellChecking="false"/>
+      <itemData name="Cookie: Priority" defStyleNum="dsInformation" spellChecking="false"/>
+      <itemData name="Cookie: Statistics" defStyleNum="dsInformation" spellChecking="false"/>
+      <itemData name="Heading" defStyleNum="dsFunction"/>
+      <itemData name="List" defStyleNum="dsSpecialString" bold="1" spellChecking="false"/>
+      <itemData name="List: Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="List: Checkbox" defStyleNum="dsVariable" spellChecking="false"/>
+      <itemData name="Number List" defStyleNum="dsSpecialString" spellChecking="false"/>
+      <itemData name="Plain Link" defStyleNum="dsOthers" underline="true" spellChecking="false"/>
+      <itemData name="Link" defStyleNum="dsOthers" underline="true" spellChecking="false"/>
+      <itemData name="Comment" defStyleNum="dsComment"/>
+      <itemData name="Macro" defStyleNum="dsPreprocessor"/>
+      <itemData name="Babel" defStyleNum="dsPreprocessor"/>
+      <itemData name="Verbatim" defStyleNum="dsExtension" spellChecking="false"/>
+      <itemData name="Code" defStyleNum="dsInformation" spellChecking="false"/>
+      <itemData name="Block" defStyleNum="dsInformation"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <!-- Kate will add a space after the char so it's just a "#" here -->
+      <comment name="singleLine" start="#"/>
+    </comments>
+  </general>
+</language>
+<!-- kate: replace-tabs on; indent-width 2; tab-width 2; -->
diff --git a/syntax/pascal.xml b/syntax/pascal.xml
--- a/syntax/pascal.xml
+++ b/syntax/pascal.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="Pascal"
           section="Sources" 
           version="4"
diff --git a/syntax/perl.xml b/syntax/perl.xml
--- a/syntax/perl.xml
+++ b/syntax/perl.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!--
    This file is part of the KDE project
    Copyright (C) 2001, 2002, 2003, 2004 Anders Lund <anders@alweb.dk>
@@ -39,7 +39,7 @@
 
    Enhance tr/// and y/// support.
 -->
-<language name="Perl" version="18" kateversion="5.0" section="Scripts" extensions="*.pl;*.PL;*.pm" mimetype="application/x-perl;text/x-perl" priority="5" author="Anders Lund (anders@alweb.dk)" license="LGPLv2">
+<language name="Perl" alternativeNames="PL" version="20" kateversion="5.0" section="Scripts" extensions="*.pl;*.PL;*.pm" mimetype="application/x-perl;text/x-perl" priority="5" author="Anders Lund (anders@alweb.dk)" license="LGPLv2">
   <highlighting>
     <list name="keywords">
       <item>if</item>
@@ -829,23 +829,23 @@
     </contexts>
     <itemDatas>
       <itemData name="Normal Text"               defStyleNum="dsNormal" />
-      <itemData name="Keyword"                   defStyleNum="dsKeyword" />
-      <itemData name="Pragma"                    defStyleNum="dsKeyword" />
-      <itemData name="Function"                  defStyleNum="dsFunction" />
-      <itemData name="Operator"                  defStyleNum="dsOthers" bold="1" /> <!-- #008000 -->
-      <itemData name="Data Type"                 defStyleNum="dsDataType" />
+      <itemData name="Keyword"                   defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Pragma"                    defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Function"                  defStyleNum="dsFunction" spellChecking="false"/>
+      <itemData name="Operator"                  defStyleNum="dsOthers" bold="1" spellChecking="false"/> <!-- #008000 -->
+      <itemData name="Data Type"                 defStyleNum="dsDataType" spellChecking="false"/>
       <itemData name="Special Variable"          defStyleNum="dsWarning" bold="0" italic="0" /> <!-- #C00000 -->
-      <itemData name="Decimal"                   defStyleNum="dsDecVal" />
-      <itemData name="Octal"                     defStyleNum="dsBaseN" />
-      <itemData name="Hex"                       defStyleNum="dsBaseN" />
-      <itemData name="Bin"                       defStyleNum="dsBaseN" />
-      <itemData name="Float"                     defStyleNum="dsFloat" />
+      <itemData name="Decimal"                   defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="Octal"                     defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Hex"                       defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Bin"                       defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Float"                     defStyleNum="dsFloat" spellChecking="false"/>
       <itemData name="String"                    defStyleNum="dsSpecialString" /> <!-- #FF6C6C -->
       <itemData name="String (interpolated)"     defStyleNum="dsString" />
       <itemData name="String Special Character"  defStyleNum="dsChar" />
-      <itemData name="Pattern"                   defStyleNum="dsOthers" />
-      <itemData name="Pattern Internal Operator" defStyleNum="dsChar" />
-      <itemData name="Pattern Character Class"   defStyleNum="dsBaseN" />
+      <itemData name="Pattern"                   defStyleNum="dsOthers"  spellChecking="false"/>
+      <itemData name="Pattern Internal Operator" defStyleNum="dsChar"  spellChecking="false"/>
+      <itemData name="Pattern Character Class"   defStyleNum="dsBaseN"  spellChecking="false"/>
       <itemData name="Data"                      defStyleNum="dsNormal" />
       <itemData name="Comment"                   defStyleNum="dsComment" />
       <itemData name="Pod"                       defStyleNum="dsComment" />
diff --git a/syntax/php.xml b/syntax/php.xml
--- a/syntax/php.xml
+++ b/syntax/php.xml
@@ -69,7 +69,7 @@
 - Added alternative syntax control structures, and named logical operators ("and", "or", and "xor") (by Nicola Gigante).
 
 -->
-<!DOCTYPE language SYSTEM "language.dtd" [
+<!DOCTYPE language [
   <!ENTITY types "integer|bool|boolean|float|double|real|string|array|object">
   <!ENTITY varid "[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*">
   <!ENTITY LNUM  "[0-9]++(_[0-9]++)*+">
@@ -77,9 +77,10 @@
   <!ENTITY float "\b&LNUM;(\.(&LNUM;)?(&EXPONENT;)?|&EXPONENT;)|\.&LNUM;(&EXPONENT;)?">
 ]>
 
-<language name="PHP/PHP" indenter="cstyle" version="21" kateversion="5.53" section="Scripts" extensions="" priority="5" mimetype="" hidden="true">
+<language name="PHP/PHP" indenter="cstyle" version="27" kateversion="5.79" section="Scripts" extensions="" priority="5" mimetype="" hidden="true">
   <highlighting>
     <!-- https://php.watch/versions -->
+    <!-- Based on 8.3 (https://php.watch/versions/8.3 and https://stitcher.io/blog/new-in-php-83) -->
 
     <!-- https://secure.php.net/manual/en/reserved.keywords.php -->
     <list name="control structures">
@@ -199,8 +200,19 @@
       <item>object</item>
     </list>
 
+    <list name="properties">
+      <!-- PHP 8.1 -->
+      <item>readonly</item>
+      <item>never</item>
+    </list>
+
     <!-- https://secure.php.net/manual/en/reserved.keywords.php -->
     <!-- https://secure.php.net/manual/en/reserved.constants.php -->
+    <!--
+      Use this command line to extract page constants:
+
+      wget -O- ${url} | sed -nE 's#.*<strong><code>([^< ]+) *</code></strong>.*#      <item>\1</item>#p'
+    -->
     <list name="constants">
       <!-- PHP 5.6 (Compile-Time Constants) -->
       <item>__CLASS__</item>
@@ -685,8 +697,13 @@
       <item>CRYPT_STD_DES</item>
       <item>CRYPT_SHA256</item>
       <item>CRYPT_SHA512</item>
+      <item>CURLALTSVC_H1</item>
+      <item>CURLALTSVC_H2</item>
+      <item>CURLALTSVC_H3</item>
+      <item>CURLALTSVC_READONLYFILE</item>
       <item>CURLAUTH_ANY</item>
       <item>CURLAUTH_ANYSAFE</item>
+      <item>CURLAUTH_AWS_SIGV4</item>
       <item>CURLAUTH_BASIC</item>
       <item>CURLAUTH_BEARER</item>
       <item>CURLAUTH_DIGEST</item>
@@ -747,6 +764,7 @@
       <item>CURLE_OPERATION_TIMEOUTED</item>
       <item>CURLE_OUT_OF_MEMORY</item>
       <item>CURLE_PARTIAL_FILE</item>
+      <item>CURLE_PROXY</item>
       <item>CURLE_READ_ERROR</item>
       <item>CURLE_RECV_ERROR</item>
       <item>CURLE_SEND_ERROR</item>
@@ -770,6 +788,7 @@
       <item>CURLFTPAUTH_DEFAULT</item>
       <item>CURLFTPAUTH_SSL</item>
       <item>CURLFTPAUTH_TLS</item>
+      <item>CURLFTPMETHOD_DEFAULT</item>
       <item>CURLFTPSSL_ALL</item>
       <item>CURLFTPSSL_CONTROL</item>
       <item>CURLFTPSSL_NONE</item>
@@ -779,6 +798,8 @@
       <item>CURLFTP_CREATE_DIR_RETRY</item>
       <item>CURLHEADER_SEPARATE</item>
       <item>CURLHEADER_UNIFIED</item>
+      <item>CURLHSTS_ENABLE</item>
+      <item>CURLHSTS_READONLYFILE</item>
       <item>CURLINFO_APPCONNECT_TIME_T</item>
       <item>CURLINFO_CONNECT_TIME</item>
       <item>CURLINFO_CONNECT_TIME_T</item>
@@ -787,6 +808,7 @@
       <item>CURLINFO_CONTENT_LENGTH_UPLOAD</item>
       <item>CURLINFO_CONTENT_LENGTH_UPLOAD_T</item>
       <item>CURLINFO_CONTENT_TYPE</item>
+      <item>CURLINFO_EFFECTIVE_METHOD</item>
       <item>CURLINFO_EFFECTIVE_URL</item>
       <item>CURLINFO_FILETIME</item>
       <item>CURLINFO_FILETIME_T</item>
@@ -804,13 +826,16 @@
       <item>CURLINFO_PRIMARY_PORT</item>
       <item>CURLINFO_PRIVATE</item>
       <item>CURLINFO_PROTOCOL</item>
+      <item>CURLINFO_PROXY_ERROR</item>
       <item>CURLINFO_PROXY_SSL_VERIFYRESULT</item>
       <item>CURLINFO_REDIRECT_COUNT</item>
       <item>CURLINFO_REDIRECT_TIME</item>
       <item>CURLINFO_REDIRECT_TIME_T</item>
       <item>CURLINFO_REDIRECT_URL</item>
+      <item>CURLINFO_REFERER</item>
       <item>CURLINFO_REQUEST_SIZE</item>
       <item>CURLINFO_RESPONSE_CODE</item>
+      <item>CURLINFO_RETRY_AFTER</item>
       <item>CURLINFO_SCHEME</item>
       <item>CURLINFO_SIZE_DOWNLOAD</item>
       <item>CURLINFO_SIZE_DOWNLOAD_T</item>
@@ -828,6 +853,7 @@
       <item>CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE</item>
       <item>CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE</item>
       <item>CURLMOPT_MAXCONNECTS</item>
+      <item>CURLMOPT_MAX_CONCURRENT_STREAMS</item>
       <item>CURLMOPT_MAX_HOST_CONNECTIONS</item>
       <item>CURLMOPT_MAX_PIPELINE_LENGTH</item>
       <item>CURLMOPT_MAX_TOTAL_CONNECTIONS</item>
@@ -841,10 +867,14 @@
       <item>CURLM_OK</item>
       <item>CURLM_OUT_OF_MEMORY</item>
       <item>CURLOPT_ABSTRACT_UNIX_SOCKET</item>
+      <item>CURLOPT_ALTSVC</item>
+      <item>CURLOPT_ALTSVC_CTRL</item>
       <item>CURLOPT_AUTOREFERER</item>
+      <item>CURLOPT_AWS_SIGV4</item>
       <item>CURLOPT_BINARYTRANSFER</item>
       <item>CURLOPT_BUFFERSIZE</item>
       <item>CURLOPT_CAINFO</item>
+      <item>CURLOPT_CAINFO_BLOB</item>
       <item>CURLOPT_CAPATH</item>
       <item>CURLOPT_CERTINFO</item>
       <item>CURLOPT_CLOSEPOLICY</item>
@@ -861,13 +891,16 @@
       <item>CURLOPT_CUSTOMREQUEST</item>
       <item>CURLOPT_DEFAULT_PROTOCOL</item>
       <item>CURLOPT_DISALLOW_USERNAME_IN_URL</item>
-      <item>CURLOPT_DOH_URL</item>
       <item>CURLOPT_DNS_CACHE_TIMEOUT</item>
       <item>CURLOPT_DNS_INTERFACE</item>
       <item>CURLOPT_DNS_LOCAL_IP4</item>
       <item>CURLOPT_DNS_LOCAL_IP6</item>
       <item>CURLOPT_DNS_SHUFFLE_ADDRESSES</item>
       <item>CURLOPT_DNS_USE_GLOBAL_CACHE</item>
+      <item>CURLOPT_DOH_SSL_VERIFYHOST</item>
+      <item>CURLOPT_DOH_SSL_VERIFYPEER</item>
+      <item>CURLOPT_DOH_SSL_VERIFYSTATUS</item>
+      <item>CURLOPT_DOH_URL</item>
       <item>CURLOPT_EGDSOCKET</item>
       <item>CURLOPT_ENCODING</item>
       <item>CURLOPT_EXPECT_100_TIMEOUT_MS</item>
@@ -892,6 +925,8 @@
       <item>CURLOPT_HEADER</item>
       <item>CURLOPT_HEADERFUNCTION</item>
       <item>CURLOPT_HEADEROPT</item>
+      <item>CURLOPT_HSTS</item>
+      <item>CURLOPT_HSTS_CTRL</item>
       <item>CURLOPT_HTTP09_ALLOWED</item>
       <item>CURLOPT_HTTP200ALIASES</item>
       <item>CURLOPT_HTTPAUTH</item>
@@ -903,13 +938,18 @@
       <item>CURLOPT_INFILESIZE</item>
       <item>CURLOPT_INTERFACE</item>
       <item>CURLOPT_IPRESOLVE</item>
+      <item>CURLOPT_ISSUERCERT_BLOB</item>
       <item>CURLOPT_KEEP_SENDING_ON_ERROR</item>
       <item>CURLOPT_KEYPASSWD</item>
       <item>CURLOPT_KRB4LEVEL</item>
       <item>CURLOPT_LOGIN_OPTIONS</item>
       <item>CURLOPT_LOW_SPEED_LIMIT</item>
       <item>CURLOPT_LOW_SPEED_TIME</item>
+      <item>CURLOPT_MAIL_RCPT_ALLLOWFAILS</item>
+      <item>CURLOPT_MAXAGE_CONN</item>
       <item>CURLOPT_MAXCONNECTS</item>
+      <item>CURLOPT_MAXFILESIZE_LARGE</item>
+      <item>CURLOPT_MAXLIFETIME_CONN</item>
       <item>CURLOPT_MAXREDIRS</item>
       <item>CURLOPT_MAX_RECV_SPEED_LARGE</item>
       <item>CURLOPT_MAX_SEND_SPEED_LARGE</item>
@@ -938,15 +978,20 @@
       <item>CURLOPT_PROXYTYPE</item>
       <item>CURLOPT_PROXYUSERPWD</item>
       <item>CURLOPT_PROXY_CAINFO</item>
+      <item>CURLOPT_PROXY_CAINFO_BLOB</item>
       <item>CURLOPT_PROXY_CAPATH</item>
       <item>CURLOPT_PROXY_CRLFILE</item>
+      <item>CURLOPT_PROXY_ISSUERCERT</item>
+      <item>CURLOPT_PROXY_ISSUERCERT_BLOB</item>
       <item>CURLOPT_PROXY_KEYPASSWD</item>
       <item>CURLOPT_PROXY_PINNEDPUBLICKEY</item>
       <item>CURLOPT_PROXY_SERVICE_NAME</item>
       <item>CURLOPT_PROXY_SSLCERT</item>
       <item>CURLOPT_PROXY_SSLCERTTYPE</item>
+      <item>CURLOPT_PROXY_SSLCERT_BLOB</item>
       <item>CURLOPT_PROXY_SSLKEY</item>
       <item>CURLOPT_PROXY_SSLKEYTYPE</item>
+      <item>CURLOPT_PROXY_SSLKEY_BLOB</item>
       <item>CURLOPT_PROXY_SSLVERSION</item>
       <item>CURLOPT_PROXY_SSL_CIPHER_LIST</item>
       <item>CURLOPT_PROXY_SSL_OPTIONS</item>
@@ -968,6 +1013,7 @@
       <item>CURLOPT_RESUME_FROM</item>
       <item>CURLOPT_RETURNTRANSFER</item>
       <item>CURLOPT_SAFE_UPLOAD</item>
+      <item>CURLOPT_SASL_AUTHZID</item>
       <item>CURLOPT_SASL_IR</item>
       <item>CURLOPT_SERVICE_NAME</item>
       <item>CURLOPT_SHARE</item>
@@ -975,18 +1021,22 @@
       <item>CURLOPT_SSH_AUTH_TYPES</item>
       <item>CURLOPT_SSH_COMPRESSION</item>
       <item>CURLOPT_SSH_HOST_PUBLIC_KEY_MD5</item>
+      <item>CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256</item>
       <item>CURLOPT_SSH_PRIVATE_KEYFILE</item>
       <item>CURLOPT_SSH_PUBLIC_KEYFILE</item>
       <item>CURLOPT_SSLCERT</item>
       <item>CURLOPT_SSLCERTPASSWD</item>
       <item>CURLOPT_SSLCERTTYPE</item>
+      <item>CURLOPT_SSLCERT_BLOB</item>
       <item>CURLOPT_SSLENGINE</item>
       <item>CURLOPT_SSLENGINE_DEFAULT</item>
       <item>CURLOPT_SSLKEY</item>
       <item>CURLOPT_SSLKEYPASSWD</item>
       <item>CURLOPT_SSLKEYTYPE</item>
+      <item>CURLOPT_SSLKEY_BLOB</item>
       <item>CURLOPT_SSLVERSION</item>
       <item>CURLOPT_SSL_CIPHER_LIST</item>
+      <item>CURLOPT_SSL_EC_CURVES</item>
       <item>CURLOPT_SSL_ENABLE_ALPN</item>
       <item>CURLOPT_SSL_ENABLE_NPN</item>
       <item>CURLOPT_SSL_FALSESTART</item>
@@ -1012,7 +1062,9 @@
       <item>CURLOPT_TRANSFERTEXT</item>
       <item>CURLOPT_UNIX_SOCKET_PATH</item>
       <item>CURLOPT_UNRESTRICTED_AUTH</item>
+      <item>CURLOPT_UPKEEP_INTERVAL_MS</item>
       <item>CURLOPT_UPLOAD</item>
+      <item>CURLOPT_UPLOAD_BUFFERSIZE</item>
       <item>CURLOPT_URL</item>
       <item>CURLOPT_USERAGENT</item>
       <item>CURLOPT_USERNAME</item>
@@ -1020,26 +1072,8 @@
       <item>CURLOPT_VERBOSE</item>
       <item>CURLOPT_WRITEFUNCTION</item>
       <item>CURLOPT_WRITEHEADER</item>
+      <item>CURLOPT_XFERINFOFUNCTION</item>
       <item>CURLOPT_XOAUTH2_BEARER</item>
-      <item>CURLSSH_AUTH_GSSAPI</item>
-      <item>CURL_HTTP_VERSION_2_0</item>
-      <item>CURL_LOCK_DATA_CONNECT</item>
-      <item>CURL_LOCK_DATA_PSL</item>
-      <item>CURL_VERSION_ALTSVC</item>
-      <item>CURL_VERSION_ASYNCHDNS</item>
-      <item>CURL_VERSION_BROTLI</item>
-      <item>CURL_VERSION_CONV</item>
-      <item>CURL_VERSION_CURLDEBUG</item>
-      <item>CURL_VERSION_DEBUG</item>
-      <item>CURL_VERSION_GSSAPI</item>
-      <item>CURL_VERSION_GSSNEGOTIATE</item>
-      <item>CURL_VERSION_IDN</item>
-      <item>CURL_VERSION_MULTI_SSL</item>
-      <item>CURL_VERSION_NTLM</item>
-      <item>CURL_VERSION_NTLM_WB</item>
-      <item>CURL_VERSION_SPNEGO</item>
-      <item>CURL_VERSION_SSPI</item>
-      <item>CURL_VERSION_TLSAUTH_SRP</item>
       <item>CURLPAUSE_ALL</item>
       <item>CURLPAUSE_CONT</item>
       <item>CURLPAUSE_RECV</item>
@@ -1049,6 +1083,7 @@
       <item>CURLPIPE_HTTP1</item>
       <item>CURLPIPE_MULTIPLEX</item>
       <item>CURLPIPE_NOTHING</item>
+      <item>CURLPROTO_MQTT</item>
       <item>CURLPROTO_SMB</item>
       <item>CURLPROTO_SMBS</item>
       <item>CURLPROXY_HTTP</item>
@@ -1058,27 +1093,69 @@
       <item>CURLPROXY_SOCKS4A</item>
       <item>CURLPROXY_SOCKS5</item>
       <item>CURLPROXY_SOCKS5_HOSTNAME</item>
+      <item>CURLPX_BAD_ADDRESS_TYPE</item>
+      <item>CURLPX_BAD_VERSION</item>
+      <item>CURLPX_CLOSED</item>
+      <item>CURLPX_GSSAPI</item>
+      <item>CURLPX_GSSAPI_PERMSG</item>
+      <item>CURLPX_GSSAPI_PROTECTION</item>
+      <item>CURLPX_IDENTD</item>
+      <item>CURLPX_IDENTD_DIFFER</item>
+      <item>CURLPX_LONG_HOSTNAME</item>
+      <item>CURLPX_LONG_PASSWD</item>
+      <item>CURLPX_LONG_USER</item>
+      <item>CURLPX_NO_AUTH</item>
+      <item>CURLPX_OK</item>
+      <item>CURLPX_RECV_ADDRESS</item>
+      <item>CURLPX_RECV_AUTH</item>
+      <item>CURLPX_RECV_CONNECT</item>
+      <item>CURLPX_RECV_REQACK</item>
+      <item>CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED</item>
+      <item>CURLPX_REPLY_COMMAND_NOT_SUPPORTED</item>
+      <item>CURLPX_REPLY_CONNECTION_REFUSED</item>
+      <item>CURLPX_REPLY_GENERAL_SERVER_FAILURE</item>
+      <item>CURLPX_REPLY_HOST_UNREACHABLE</item>
+      <item>CURLPX_REPLY_NETWORK_UNREACHABLE</item>
+      <item>CURLPX_REPLY_NOT_ALLOWED</item>
+      <item>CURLPX_REPLY_TTL_EXPIRED</item>
+      <item>CURLPX_REPLY_UNASSIGNED</item>
+      <item>CURLPX_REQUEST_FAILED</item>
+      <item>CURLPX_RESOLVE_HOST</item>
+      <item>CURLPX_SEND_AUTH</item>
+      <item>CURLPX_SEND_CONNECT</item>
+      <item>CURLPX_SEND_REQUEST</item>
+      <item>CURLPX_UNKNOWN_FAIL</item>
+      <item>CURLPX_UNKNOWN_MODE</item>
+      <item>CURLPX_USER_REJECTED</item>
       <item>CURLSHOPT_SHARE</item>
       <item>CURLSHOPT_UNSHARE</item>
       <item>CURLSSH_AUTH_AGENT</item>
       <item>CURLSSH_AUTH_ANY</item>
       <item>CURLSSH_AUTH_DEFAULT</item>
+      <item>CURLSSH_AUTH_GSSAPI</item>
       <item>CURLSSH_AUTH_HOST</item>
       <item>CURLSSH_AUTH_KEYBOARD</item>
       <item>CURLSSH_AUTH_NONE</item>
       <item>CURLSSH_AUTH_PASSWORD</item>
       <item>CURLSSH_AUTH_PUBLICKEY</item>
       <item>CURLSSLOPT_ALLOW_BEAST</item>
+      <item>CURLSSLOPT_AUTO_CLIENT_CERT</item>
+      <item>CURLSSLOPT_NATIVE_CA</item>
+      <item>CURLSSLOPT_NO_PARTIALCHAIN</item>
       <item>CURLSSLOPT_NO_REVOKE</item>
+      <item>CURLSSLOPT_REVOKE_BEST_EFFORT</item>
       <item>CURLVERSION_NOW</item>
       <item>CURL_HTTP_VERSION_1_0</item>
       <item>CURL_HTTP_VERSION_1_1</item>
       <item>CURL_HTTP_VERSION_2</item>
       <item>CURL_HTTP_VERSION_2TLS</item>
+      <item>CURL_HTTP_VERSION_2_0</item>
       <item>CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE</item>
       <item>CURL_HTTP_VERSION_NONE</item>
+      <item>CURL_LOCK_DATA_CONNECT</item>
       <item>CURL_LOCK_DATA_COOKIE</item>
       <item>CURL_LOCK_DATA_DNS</item>
+      <item>CURL_LOCK_DATA_PSL</item>
       <item>CURL_LOCK_DATA_SSL_SESSION</item>
       <item>CURL_MAX_READ_SIZE</item>
       <item>CURL_NETRC_IGNORED</item>
@@ -1107,15 +1184,37 @@
       <item>CURL_TIMECOND_IFMODSINCE</item>
       <item>CURL_TIMECOND_IFUNMODSINCE</item>
       <item>CURL_TIMECOND_LASTMOD</item>
+      <item>CURL_TIMECOND_NONE</item>
+      <item>CURL_VERSION_ALTSVC</item>
+      <item>CURL_VERSION_ASYNCHDNS</item>
+      <item>CURL_VERSION_BROTLI</item>
+      <item>CURL_VERSION_CONV</item>
+      <item>CURL_VERSION_CURLDEBUG</item>
+      <item>CURL_VERSION_DEBUG</item>
+      <item>CURL_VERSION_GSASL</item>
+      <item>CURL_VERSION_GSSAPI</item>
+      <item>CURL_VERSION_GSSNEGOTIATE</item>
+      <item>CURL_VERSION_HSTS</item>
       <item>CURL_VERSION_HTTP2</item>
+      <item>CURL_VERSION_HTTP3</item>
       <item>CURL_VERSION_HTTPS_PROXY</item>
+      <item>CURL_VERSION_IDN</item>
       <item>CURL_VERSION_IPV6</item>
       <item>CURL_VERSION_KERBEROS4</item>
       <item>CURL_VERSION_KERBEROS5</item>
+      <item>CURL_VERSION_LARGEFILE</item>
       <item>CURL_VERSION_LIBZ</item>
+      <item>CURL_VERSION_MULTI_SSL</item>
+      <item>CURL_VERSION_NTLM</item>
+      <item>CURL_VERSION_NTLM_WB</item>
       <item>CURL_VERSION_PSL</item>
+      <item>CURL_VERSION_SPNEGO</item>
       <item>CURL_VERSION_SSL</item>
+      <item>CURL_VERSION_SSPI</item>
+      <item>CURL_VERSION_TLSAUTH_SRP</item>
+      <item>CURL_VERSION_UNICODE</item>
       <item>CURL_VERSION_UNIX_SOCKETS</item>
+      <item>CURL_VERSION_ZSTD</item>
       <item>CURL_WRAPPERS_ENABLED</item>
       <item>CURRENCY_SYMBOL</item>
       <item>CYRUS_CALLBACK_NOLITERAL</item>
@@ -1166,6 +1265,8 @@
       <item>DBASE_TYPE_DBASE</item>
       <item>DBASE_TYPE_FOXPRO</item>
       <item>DBASE_VERSION</item>
+      <item>DBA_LMDB_USE_SUB_DIR</item>
+      <item>DBA_LMDB_NO_SUB_DIR</item>
       <item>DBPLUS_ERR_CLOSE</item>
       <item>DBPLUS_ERR_CORRUPT_TUPLE</item>
       <item>DBPLUS_ERR_CRC</item>
@@ -1231,8 +1332,10 @@
       <item>DECIMAL_POINT</item>
       <item>DELETED_EVENT</item>
       <item>DIRECTORY_SEPARATOR</item>
+      <item>DISP_E_BADINDEX</item>
       <item>DISP_E_DIVBYZERO</item>
       <item>DISP_E_OVERFLOW</item>
+      <item>DISP_E_PARAMNOTFOUND</item>
       <item>DNS_A</item>
       <item>DNS_AAAA</item>
       <item>DNS_ALL</item>
@@ -1501,6 +1604,7 @@
       <item>FILTER_FLAG_ENCODE_AMP</item>
       <item>FILTER_FLAG_ENCODE_HIGH</item>
       <item>FILTER_FLAG_ENCODE_LOW</item>
+      <item>FILTER_FLAG_GLOBAL_RANGE</item>
       <item>FILTER_FLAG_HOSTNAME</item>
       <item>FILTER_FLAG_HOST_REQUIRED</item>
       <item>FILTER_FLAG_IPV4</item>
@@ -1927,6 +2031,7 @@
       <item>IMG_TRIANGLE</item>
       <item>IMG_WBMP</item>
       <item>IMG_WEBP</item>
+      <item>IMG_WEBP_LOSSLESS</item>
       <item>IMG_WEIGHTED4</item>
       <item>IMG_XPM</item>
       <item>INF</item>
@@ -2150,6 +2255,8 @@
       <item>LIBXML_XINCLUDE</item>
       <item>LIBXSLT_DOTTED_VERSION</item>
       <item>LIBXSLT_VERSION</item>
+      <item>LOCALE_NEUTRAL</item>
+      <item>LOCAL_CREDS_PERSISTENT</item>
       <item>LOCK_EX</item>
       <item>LOCK_NB</item>
       <item>LOCK_SH</item>
@@ -2364,6 +2471,7 @@
       <item>MSG_OOB</item>
       <item>MSG_PEEK</item>
       <item>MSG_WAITALL</item>
+      <item>MSG_ZEROCOPY</item>
       <item>MSQL_ASSOC</item>
       <item>MSQL_BOTH</item>
       <item>MSQL_NUM</item>
@@ -3335,12 +3443,14 @@
       <item>POSIX_RLIMIT_DATA</item>
       <item>POSIX_RLIMIT_FSIZE</item>
       <item>POSIX_RLIMIT_INFINITY</item>
+      <item>POSIX_RLIMIT_KQUEUES</item>
       <item>POSIX_RLIMIT_LOCKS</item>
       <item>POSIX_RLIMIT_MEMLOCK</item>
       <item>POSIX_RLIMIT_MSGQUEUE</item>
       <item>POSIX_RLIMIT_NICE</item>
       <item>POSIX_RLIMIT_NOFILE</item>
       <item>POSIX_RLIMIT_NPROC</item>
+      <item>POSIX_RLIMIT_NPTS</item>
       <item>POSIX_RLIMIT_RSS</item>
       <item>POSIX_RLIMIT_RTPRIO</item>
       <item>POSIX_RLIMIT_RTTIME</item>
@@ -3647,6 +3757,7 @@
       <item>SCANDIR_SORT_ASCENDING</item>
       <item>SCANDIR_SORT_DESCENDING</item>
       <item>SCANDIR_SORT_NONE</item>
+      <item>SCM_CREDS2</item>
       <item>SEARCHD_ERROR</item>
       <item>SEARCHD_OK</item>
       <item>SEARCHD_RETRY</item>
@@ -3736,6 +3847,24 @@
       <item>SI_TIMER</item>
       <item>SI_TKILL</item>
       <item>SI_USER</item>
+      <item>SKF_AD_ALU_XOR_X</item>
+      <item>SKF_AD_CPU</item>
+      <item>SKF_AD_HATYPE</item>
+      <item>SKF_AD_IFINDEX</item>
+      <item>SKF_AD_MARK</item>
+      <item>SKF_AD_MAX</item>
+      <item>SKF_AD_NLATTR</item>
+      <item>SKF_AD_NLATTR_NEST</item>
+      <item>SKF_AD_OFF</item>
+      <item>SKF_AD_PAY_OFFSET</item>
+      <item>SKF_AD_PKTTYPE</item>
+      <item>SKF_AD_PROTOCOL</item>
+      <item>SKF_AD_QUEUE</item>
+      <item>SKF_AD_RANDOM</item>
+      <item>SKF_AD_RXHASH</item>
+      <item>SKF_AD_VLAN_TAG</item>
+      <item>SKF_AD_VLAN_TAG_PRESENT</item>
+      <item>SKF_AD_VLAN_TPID</item>
       <item>SNMP_BIT_STR</item>
       <item>SNMP_COUNTER</item>
       <item>SNMP_COUNTER64</item>
@@ -3925,6 +4054,10 @@
       <item>SODIUM_CRYPTO_BOX_SEALBYTES</item>
       <item>SODIUM_CRYPTO_BOX_SECRETKEYBYTES</item>
       <item>SODIUM_CRYPTO_BOX_SEEDBYTES</item>
+      <item>SODIUM_CRYPTO_CORE_RISTRETTO255_BYTES</item>
+      <item>SODIUM_CRYPTO_CORE_RISTRETTO255_HASHBYTES</item>
+      <item>SODIUM_CRYPTO_CORE_RISTRETTO255_NONREDUCEDSCALARBYTES</item>
+      <item>SODIUM_CRYPTO_CORE_RISTRETTO255_SCALARBYTES</item>
       <item>SODIUM_CRYPTO_GENERICHASH_BYTES</item>
       <item>SODIUM_CRYPTO_GENERICHASH_BYTES_MAX</item>
       <item>SODIUM_CRYPTO_GENERICHASH_BYTES_MIN</item>
@@ -3958,6 +4091,8 @@
       <item>SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX</item>
       <item>SODIUM_CRYPTO_PWHASH_STRPREFIX</item>
       <item>SODIUM_CRYPTO_SCALARMULT_BYTES</item>
+      <item>SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_BYTES</item>
+      <item>SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_SCALARBYTES</item>
       <item>SODIUM_CRYPTO_SCALARMULT_SCALARBYTES</item>
       <item>SODIUM_CRYPTO_SECRETBOX_KEYBYTES</item>
       <item>SODIUM_CRYPTO_SECRETBOX_MACBYTES</item>
@@ -3971,6 +4106,8 @@
       <item>SODIUM_CRYPTO_SIGN_SEEDBYTES</item>
       <item>SODIUM_CRYPTO_STREAM_KEYBYTES</item>
       <item>SODIUM_CRYPTO_STREAM_NONCEBYTES</item>
+      <item>SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES</item>
+      <item>SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES</item>
       <item>SODIUM_LIBRARY_MAJOR_VERSION</item>
       <item>SODIUM_LIBRARY_MINOR_VERSION</item>
       <item>SODIUM_LIBRARY_VERSION</item>
@@ -3996,13 +4133,19 @@
       <item>SORT_NUMERIC</item>
       <item>SORT_REGULAR</item>
       <item>SORT_STRING</item>
+      <item>SO_ACCEPTFILTER</item>
+      <item>SO_BPF_EXTENSIONS</item>
       <item>SO_BROADCAST</item>
       <item>SO_DEBUG</item>
       <item>SO_DONTROUTE</item>
+      <item>SO_DONTTRUNC</item>
       <item>SO_ERROR</item>
       <item>SO_FREE</item>
+      <item>SO_INCOMING_CPU</item>
       <item>SO_KEEPALIVE</item>
       <item>SO_LINGER</item>
+      <item>SO_MARK</item>
+      <item>SO_MEMINFO</item>
       <item>SO_NOSERVER</item>
       <item>SO_OOBINLINE</item>
       <item>SO_RCVBUF</item>
@@ -4010,10 +4153,14 @@
       <item>SO_RCVTIMEO</item>
       <item>SO_REUSEADDR</item>
       <item>SO_REUSEPORT</item>
+      <item>SO_RTABLE</item>
+      <item>SO_SETFIB</item>
       <item>SO_SNDBUF</item>
       <item>SO_SNDLOWAT</item>
       <item>SO_SNDTIMEO</item>
       <item>SO_TYPE</item>
+      <item>SO_WANTMORE</item>
+      <item>SO_ZEROCOPY</item>
       <item>SPH_ATTR_BOOL</item>
       <item>SPH_ATTR_FLOAT</item>
       <item>SPH_ATTR_INTEGER</item>
@@ -4453,7 +4600,14 @@
       <item>S_SESSION</item>
       <item>S_SQL</item>
       <item>S_VARS</item>
+      <item>TCP_CONGESTION</item>
+      <item>TCP_DEFER_ACCEPT</item>
+      <item>TCP_KEEPALIVE</item>
+      <item>TCP_KEEPCNT</item>
+      <item>TCP_KEEPIDLE</item>
+      <item>TCP_KEEPINTVL</item>
       <item>TCP_NODELAY</item>
+      <item>TCP_NOTSENT_LOWAT</item>
       <item>THOUSANDS_SEP</item>
       <item>THOUSEP</item>
       <item>TIDY_NODETYPE_ASP</item>
@@ -4964,6 +5118,7 @@
       <item>VT_I1</item>
       <item>VT_I2</item>
       <item>VT_I4</item>
+      <item>VT_I8</item>
       <item>VT_INT</item>
       <item>VT_NULL</item>
       <item>VT_R4</item>
@@ -4971,6 +5126,7 @@
       <item>VT_UI1</item>
       <item>VT_UI2</item>
       <item>VT_UI4</item>
+      <item>VT_UI8</item>
       <item>VT_UINT</item>
       <item>VT_UNKNOWN</item>
       <item>VT_VARIANT</item>
@@ -5897,6 +6053,7 @@
       <item>curl_share_strerror</item>
       <item>curl_strerror</item>
       <item>curl_unescape</item>
+      <item>curl_upkeep</item>
       <item>curl_version</item>
       <item>current</item>
       <item>cyrus_authenticate</item>
@@ -7131,6 +7288,7 @@
       <item>imap_header</item>
       <item>imap_headerinfo</item>
       <item>imap_headers</item>
+      <item>imap_is_open</item>
       <item>imap_last_error</item>
       <item>imap_list</item>
       <item>imap_listmailbox</item>
@@ -7221,6 +7379,7 @@
       <item>ini_alter</item>
       <item>ini_get</item>
       <item>ini_get_all</item>
+      <item>ini_parse_quantity</item>
       <item>ini_restore</item>
       <item>ini_set</item>
       <item>inotify_add_watch</item>
@@ -7333,6 +7492,7 @@
       <item>json_encode</item>
       <item>json_last_error</item>
       <item>json_last_error_msg</item>
+      <item>json_validate</item>
       <item>judy_type</item>
       <item>judy_version</item>
       <item>juliantojd</item>
@@ -7417,6 +7577,7 @@
       <item>libxml_clear_errors</item>
       <item>libxml_disable_entity_loader</item>
       <item>libxml_get_errors</item>
+      <item>libxml_get_external_entity_loader</item>
       <item>libxml_get_last_error</item>
       <item>libxml_set_external_entity_loader</item>
       <item>libxml_set_streams_context</item>
@@ -7617,6 +7778,8 @@
       <item>mb_scrub</item>
       <item>mb_send_mail</item>
       <item>mb_split</item>
+      <item>mb_str_pad</item>
+      <item>mb_str_split</item>
       <item>mb_strcut</item>
       <item>mb_strimwidth</item>
       <item>mb_stripos</item>
@@ -7640,6 +7803,7 @@
       <item>memcache_debug</item>
       <item>memory_get_peak_usage</item>
       <item>memory_get_usage</item>
+      <item>memory_reset_peak_usage</item>
       <item>metaphone</item>
       <item>method_exists</item>
       <item>mhash</item>
@@ -7775,6 +7939,7 @@
       <item>mysqli_error_list</item>
       <item>mysqli_escape_string</item>
       <item>mysqli_execute</item>
+      <item>mysqli_execute_query</item>
       <item>mysqli_fetch_all</item>
       <item>mysqli_fetch_array</item>
       <item>mysqli_fetch_assoc</item>
@@ -8266,6 +8431,7 @@
       <item>oci_set_edition</item>
       <item>oci_set_module_name</item>
       <item>oci_set_prefetch</item>
+      <item>oci_set_prefetch_lob</item>
       <item>oci_statement_type</item>
       <item>oci_unregister_taf_callback</item>
       <item>octdec</item>
@@ -8277,6 +8443,9 @@
       <item>odbc_columns</item>
       <item>odbc_commit</item>
       <item>odbc_connect</item>
+      <item>odbc_connection_string_is_quoted</item>
+      <item>odbc_connection_string_quote</item>
+      <item>odbc_connection_string_should_quote</item>
       <item>odbc_cursor</item>
       <item>odbc_data_source</item>
       <item>odbc_do</item>
@@ -8346,6 +8515,7 @@
       <item>opendir</item>
       <item>openlog</item>
       <item>openssl_cipher_iv_length</item>
+      <item>openssl_cipher_key_length</item>
       <item>openssl_csr_export</item>
       <item>openssl_csr_export_to_file</item>
       <item>openssl_csr_get_public_key</item>
@@ -8713,7 +8883,9 @@
       <item>pos</item>
       <item>posix_access</item>
       <item>posix_ctermid</item>
+      <item>posix_eaccess</item>
       <item>posix_errno</item>
+      <item>posix_fpathconf</item>
       <item>posix_getcwd</item>
       <item>posix_getegid</item>
       <item>posix_geteuid</item>
@@ -8737,6 +8909,7 @@
       <item>posix_kill</item>
       <item>posix_mkfifo</item>
       <item>posix_mknod</item>
+      <item>posix_pathconf</item>
       <item>posix_setegid</item>
       <item>posix_seteuid</item>
       <item>posix_setgid</item>
@@ -8745,6 +8918,7 @@
       <item>posix_setsid</item>
       <item>posix_setuid</item>
       <item>posix_strerror</item>
+      <item>posix_sysconf</item>
       <item>posix_times</item>
       <item>posix_ttyname</item>
       <item>posix_uname</item>
@@ -9243,6 +9417,10 @@
       <item>sodium_crypto_sign_verify_detached</item>
       <item>sodium_crypto_stream</item>
       <item>sodium_crypto_stream_keygen</item>
+      <item>sodium_crypto_stream_xchacha20</item>
+      <item>sodium_crypto_stream_xchacha20_keygen</item>
+      <item>sodium_crypto_stream_xchacha20_xor</item>
+      <item>sodium_crypto_stream_xchacha20_xor_ic</item>
       <item>sodium_crypto_stream_xor</item>
       <item>sodium_hex2bin</item>
       <item>sodium_increment</item>
@@ -9466,6 +9644,7 @@
       <item>stream_context_get_options</item>
       <item>stream_context_get_params</item>
       <item>stream_context_set_default</item>
+      <item>stream_context_set_options</item>
       <item>stream_context_set_option</item>
       <item>stream_context_set_params</item>
       <item>stream_copy_to_stream</item>
@@ -10319,7 +10498,10 @@
         <item>CurlShareHandle</item>
         <item>CURLStringFile</item>
         <item>DateInterval</item>
+        <item>DateInvalidOperationException</item>
+        <item>DateMalformedIntervalStringException</item>
         <item>DatePeriod</item>
+        <item>DateRangeError</item>
         <item>DateTime</item>
         <item>DateTimeImmutable</item>
         <item>DateTimeInterface</item>
@@ -10369,6 +10551,7 @@
         <item>EvWatcher</item>
         <item>Exception</item>
         <item>FANNConnection</item>
+        <item>Fiber</item>
         <item>FilesystemIterator</item>
         <item>FilterIterator</item>
         <item>finfo</item>
@@ -10415,6 +10598,7 @@
         <item>IntlChar</item>
         <item>IntlCodePointBreakIterator</item>
         <item>IntlDateFormatter</item>
+        <item>IntlDatePatternGenerator</item>
         <item>IntlException</item>
         <item>IntlGregorianCalendar</item>
         <item>IntlIterator</item>
@@ -10507,6 +10691,7 @@
         <item>QuickHashIntSet</item>
         <item>QuickHashIntStringHash</item>
         <item>QuickHashStringIntHash</item>
+        <item>Randomizer</item>
         <item>RangeException</item>
         <item>RecursiveArrayIterator</item>
         <item>RecursiveCachingIterator</item>
@@ -10977,6 +11162,7 @@
         <keyword attribute="Library Constant" context="#stay" String="constants"/>
         <keyword attribute="Operator" context="#stay" String="operators"/>
         <keyword attribute="Types" context="#stay" String="types"/>
+        <keyword attribute="Properties" context="#stay" String="properties"/>
         <keyword attribute="Error" context="#stay" String="deprecated"/>
         <RegExpr attribute="Constant" context="#stay" String="\b[A-Z_][A-Z_0-9]*\b"/>
 
@@ -11006,7 +11192,7 @@
         <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true" />
       </context>
 
-      <context name="MatchComment" attribute="PHP Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+      <context name="MatchComment" attribute="PHP Text" lineEndContext="#pop" fallthroughContext="#pop">
         <IncludeRules context="##Doxygen" />
         <Detect2Chars attribute="Comment" context="#pop!onelinecomment" char="/" char1="/" />
         <Detect2Chars attribute="Comment" context="#pop!twolinecomment" char="/" char1="*" beginRegion="Comment" />
@@ -11039,11 +11225,11 @@
         $var[$ident]
              ^_ error
       -->
-      <context name="dqaftervarname" attribute="String" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">
+      <context name="dqaftervarname" attribute="String" lineEndContext="#pop" fallthroughContext="#pop">
         <DetectChar attribute="Symbol" context="#pop!dqarray" char="["/>
         <Detect2Chars context="#pop!dqobject" char="-" char1=">" lookAhead="1"/>
       </context>
-      <context name="dqarray" attribute="Variable" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">
+      <context name="dqarray" attribute="Variable" lineEndContext="#stay" fallthroughContext="#pop">
         <DetectIdentifier attribute="String" context="#pop!dqarrayclose"/>
         <Int attribute="Decimal" context="#pop!dqarrayclose"/>
         <DetectChar attribute="Operator" context="#stay" char="-"/>
@@ -11051,25 +11237,25 @@
         <RegExpr attribute="Variable" context="#pop!dqarrayclose" String="\$&varid;"/>
         <IncludeRules context="finddqarraycharerror"/>
       </context>
-      <context name="dqarrayclose" attribute="Variable" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">
+      <context name="dqarrayclose" attribute="Variable" lineEndContext="#stay" fallthroughContext="#pop">
         <DetectChar attribute="Symbol" context="#pop" char="]"/>
         <IncludeRules context="finddqarraycharerror"/>
       </context>
-      <context name="dqobject" attribute="String" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">
+      <context name="dqobject" attribute="String" lineEndContext="#pop" fallthroughContext="#pop">
         <RegExpr attribute="Symbol" context="#pop!dqobjectmem" String="->(?=&varid;)"/>
       </context>
       <context name="dqobjectmem" attribute="Variable" lineEndContext="#pop">
         <DetectIdentifier attribute="PHP Text" context="#pop"/>
       </context>
-      <context name="finddqarraycharerror" attribute="String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">
+      <context name="finddqarraycharerror" attribute="String" lineEndContext="#stay" fallthroughContext="#pop">
         <RegExpr attribute="Error" context="#pop" String="[^&quot;`]"/>
       </context>
 
-      <context name="dqcomplexvariable" attribute="Variable" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!finddqarraycharerror">
+      <context name="dqcomplexvariable" attribute="Variable" lineEndContext="#stay" fallthroughContext="#pop!finddqarraycharerror">
         <DetectChar attribute="Symbol" context="#stay" char="{"/>
         <DetectChar attribute="Variable" context="#pop!dqcomplexvariable2" char="$"/>
       </context>
-      <context name="dqcomplexvariable2" attribute="Variable" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!finddqarraycharerror">
+      <context name="dqcomplexvariable2" attribute="Variable" lineEndContext="#stay" fallthroughContext="#pop!finddqarraycharerror">
         <DetectIdentifier attribute="Variable" context="#pop!dqaftercomplexvariable"/>
         <DetectChar attribute="Variable" context="#stay" char="$"/>
         <IncludeRules context="finddqarraycharerror"/>
@@ -11147,7 +11333,7 @@
       </context>
       <context name="heredoc" attribute="String" lineEndContext="#stay" dynamic="true">
         <IncludeRules context="doublestringvariablecommon" />
-        <RegExpr attribute="Heredoc" context="#pop" String="^%1(?=;?$)" dynamic="true" endRegion="Heredoc" column="0" />
+        <RegExpr attribute="Heredoc" context="#pop" String="^\s*%1(?=;?$)" dynamic="true" endRegion="Heredoc" column="0" />
       </context>
 
       <context name="htmlnowdoc" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
@@ -11202,7 +11388,7 @@
         <!--/ Alternate PHP Block Syntax -->
         <DetectIdentifier attribute="Control Structures" context="#pop"/>
       </context>
-      <context name="yield" attribute="PHP Text" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">
+      <context name="yield" attribute="PHP Text" lineEndContext="#stay" fallthroughContext="#pop">
         <DetectSpaces attribute="PHP Text" context="#stay"/>
         <WordDetect attribute="Control Structures" context="#pop" String="from"/>
       </context>
@@ -11210,7 +11396,7 @@
         <DetectIdentifier attribute="Control Structures" context="#pop" endRegion="Alternate Block"/>
       </context>
 
-      <context name="MaybeAlternateBlock" attribute="PHP Text" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">
+      <context name="MaybeAlternateBlock" attribute="PHP Text" lineEndContext="#stay" fallthroughContext="#pop">
         <DetectChar attribute="Symbol" context="#pop!MaybeAlternateBlockOpen" char="("/>
         <DetectSpaces attribute="PHP Text"/>
         <IncludeRules context="FindComment"/>
@@ -11225,7 +11411,7 @@
         <DetectChar attribute="Symbol" context="#pop" char=")"/>
         <IncludeRules context="phpsource"/>
       </context>
-      <context name="MaybeAlternateBlockClose" attribute="PHP Text" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">
+      <context name="MaybeAlternateBlockClose" attribute="PHP Text" lineEndContext="#pop" fallthroughContext="#pop">
         <DetectChar attribute="Other" context="#pop" char=":" beginRegion="Alternate Block"/>
         <DetectSpaces attribute="PHP Text"/>
       </context>
@@ -11269,6 +11455,7 @@
       <itemData name="Scope Resolution" defStyleNum="dsNormal" spellChecking="false" />
       <itemData name="Other" defStyleNum="dsOthers" spellChecking="false" />
       <itemData name="Types" defStyleNum="dsDataType" spellChecking="false" />
+      <itemData name="Properties" defStyleNum="dsDataType" spellChecking="false" />
       <itemData name="Cast" defStyleNum="dsDataType" spellChecking="false" />
       <itemData name="Error Control Operator" defStyleNum="dsPreprocessor" spellChecking="false" />
       <itemData name="Error" defStyleNum="dsError" spellChecking="false" />
@@ -11276,7 +11463,7 @@
   </highlighting>
   <general>
     <comments>
-      <comment name="singleLine" start="//" />
+      <comment name="singleLine" start="//" position="afterwhitespace" />
       <comment name="multiLine" start="/*" end="*/" region="Comment" />
     </comments>
     <keywords casesensitive="0" weakDeliminator="" additionalDeliminator="@" />
diff --git a/syntax/pike.xml b/syntax/pike.xml
--- a/syntax/pike.xml
+++ b/syntax/pike.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!-- FIXME: Find a way to prevent ranges (e.g. [1..] or [0..99]) from matching as floats. -pp -->
 <language name="Pike" version="4" kateversion="5.0" section="Scripts" extensions="*.pike" mimetype="application/x-pike;text/x-pike" casesensitive="1" author="Paul Pogonyshev" license="">
   <highlighting>
diff --git a/syntax/postscript.xml b/syntax/postscript.xml
--- a/syntax/postscript.xml
+++ b/syntax/postscript.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="PostScript" version="4" kateversion="5.0" section="Markup" extensions="*.ps;*.ai;*.eps" mimetype="application/postscript">
 <highlighting>
 	<list name="keywords">
diff --git a/syntax/povray.xml b/syntax/povray.xml
--- a/syntax/povray.xml
+++ b/syntax/povray.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!-- Extended and updated by                                    -->
 <!-- Christoph Hormann <chris_hormann@gmx.de>, March 2004       -->
 <!-- features full POV-Ray 3.6 syntax with special highlighting -->
diff --git a/syntax/powershell.xml b/syntax/powershell.xml
--- a/syntax/powershell.xml
+++ b/syntax/powershell.xml
@@ -1,48 +1,54 @@
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language [
+  <!ENTITY varscope "(?:global|local|private|script|using|workflow|alias|env|function|variable)">
+  <!ENTITY varname  "(?:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)">
+]>
 <language
   name="PowerShell"
-  version="11"
-  kateversion="5.0"
+  version="14"
+  kateversion="5.79"
   extensions="*.ps1;*.psm1;*.psd1"
   section="Scripts"
   author="Motoki Kashihara (motoki8791@gmail.com); Michael Lombardi (Michael.T.Lombardi@outlook.com)"
   casesensitive="0"
   license="MIT">
   <highlighting>
-    <list name="keywords">
-      <item>Begin</item>
+    <list name="control-flow">
       <item>Exit</item>
       <item>Process</item>
       <item>Break</item>
-      <item>Filter</item>
       <item>Return</item>
       <item>Catch</item>
       <item>Finally</item>
-      <item>Sequence</item>
       <item>Class</item>
       <item>For</item>
       <item>Switch</item>
       <item>Continue</item>
       <item>ForEach</item>
       <item>Throw</item>
+      <item>Try</item>
+      <item>Do</item>
+      <item>If</item>
+      <item>Until</item>
+      <item>Else</item>
+      <item>ElseIf</item>
+      <item>While</item>
+    </list>
+
+    <list name="keywords">
+      <item>Begin</item>
+      <item>Filter</item>
+      <item>Sequence</item>
       <item>Data</item>
       <item>From</item>
       <item>Trap</item>
       <item>Define</item>
       <item>Function</item>
-      <item>Try</item>
-      <item>Do</item>
-      <item>If</item>
-      <item>Until</item>
       <item>DynamicParam</item>
       <item>In</item>
       <item>Using</item>
-      <item>Else</item>
       <item>InlineScript</item>
       <item>Var</item>
-      <item>ElseIf</item>
       <item>Parallel</item>
-      <item>While</item>
       <item>End</item>
       <item>Param</item>
       <item>Workflow</item>
@@ -75,69 +81,6 @@
       <item>ulong</item>
       <item>ushort</item>
     </list>
-<!-- TODO: Seems unused?!
-      <list name="operators">
-      <item>-split</item>
-      <item>-isplit</item>
-      <item>-csplit</item>
-      <item>-join</item>
-      <item>-is</item>
-      <item>-isnot</item>
-      <item>-as</item>
-      <item>-eq</item>
-      <item>-ieq</item>
-      <item>-ceq</item>
-      <item>-ne</item>
-      <item>-ine</item>
-      <item>-cne</item>
-      <item>-gt</item>
-      <item>-igt</item>
-      <item>-cgt</item>
-      <item>-ge</item>
-      <item>-ige</item>
-      <item>-cge</item>
-      <item>-lt</item>
-      <item>-ilt</item>
-      <item>-clt</item>
-      <item>-le</item>
-      <item>-ile</item>
-      <item>-cle</item>
-      <item>-like</item>
-      <item>-ilike</item>
-      <item>-clike</item>
-      <item>-notlike</item>
-      <item>-inotlike</item>
-      <item>-cnotlike</item>
-      <item>-match</item>
-      <item>-imatch</item>
-      <item>-cmatch</item>
-      <item>-notmatch</item>
-      <item>-inotmatch</item>
-      <item>-cnotmatch</item>
-      <item>-contains</item>
-      <item>-icontains</item>
-      <item>-ccontains</item>
-      <item>-notcontains</item>
-      <item>-inotcontains</item>
-      <item>-cnotcontains</item>
-      <item>-replace</item>
-      <item>-ireplace</item>
-      <item>-creplace</item>
-      <item>-band</item>
-      <item>-bor</item>
-      <item>-bxor</item>
-      <item>-and</item>
-      <item>-or</item>
-      <item>-xor</item>
-      <item>.</item>
-      <item>&amp;</item>
-      <item>=</item>
-      <item>+=</item>
-      <item>-=</item>
-      <item>*=</item>
-      <item>/=</item>
-      <item>%=</item>
-    </list>-->
     <list name="cmdlets">
       <item>Add-Content</item>
       <item>Add-ADComputerServiceAccount</item>
@@ -847,11 +790,23 @@
       <item>\%</item>
       <item>\?</item>
     </list>
+
     <list name="special-variables">
+      <!-- https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_scopes?view=powershell-7.3#scope-modifiers -->
+      <item>$Global:</item>
+      <item>$Local:</item>
+      <item>$Private:</item>
+      <item>$Script:</item>
+      <item>$Using:</item>
+      <item>$Workflow:</item>
+      <item>$Alias:</item>
+      <item>$Env:</item>
+      <item>$Function:</item>
+      <item>$Variable:</item>
+
       <item>$_</item>
       <item>$True</item>
       <item>$False</item>
-      <item>$Env</item>
       <item>$Null</item>
       <item>$^</item>
       <item>$$</item>
@@ -873,63 +828,176 @@
       <item>$Host</item>
       <item>$OFS</item>
     </list>
+
+    <!-- https://learn.microsoft.com/en-us/powershell/scripting/developer/help/comment-based-help-keywords?view=powershell-7.3 -->
+    <list name="comment-based-help">
+      <item>.SYNOPSIS</item>
+      <item>.DESCRIPTION</item>
+      <item>.PARAMETER</item>
+      <item>.EXAMPLE</item>
+      <item>.INPUTS</item>
+      <item>.OUTPUTS</item>
+      <item>.NOTES</item>
+      <item>.LINK</item>
+      <item>.COMPONENT</item>
+      <item>.ROLE</item>
+      <item>.FUNCTIONALITY</item>
+      <item>.FORWARDHELPTARGETNAME</item>
+      <item>.FORWARDHELPCATEGORY</item>
+      <item>.REMOTEHELPRUNSPACE</item>
+      <item>.EXTERNALHELP</item>
+    </list>
+
     <contexts>
       <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <DetectSpaces attribute="Normal Text"/>
+        <IncludeRules context="FindSpecialSymbol"/>
+        <DetectChar attribute="Symbol" context="Attribute" char="["/>
+        <IncludeRules context="FindSpecialOtherSymbol"/>
         <keyword attribute="Keyword" context="#stay" String="keywords"/>
-        <keyword attribute="Data Type" context="#stay" String="types" />
-        <IncludeRules context="Cmdlet" />
-        <DetectChar attribute="String" context="String" char="&quot;"/>
-        <Detect2Chars attribute="HereString" context="HereStringer" char="@" char1="&quot;" beginRegion="StringRegion"/>
+        <keyword attribute="Control Flow" context="#stay" String="control-flow"/>
+        <keyword attribute="Function" context="#stay" String="cmdlets"/>
+        <IncludeRules context="FindIdentifiant"/>
+        <IncludeRules context="FindEscape"/>
+      </context>
+
+      <context attribute="Attribute" name="Attribute">
+        <DetectSpaces attribute="Normal Text"/>
+        <keyword attribute="Data Type" context="#stay" String="types"/>
+        <IncludeRules context="FindIdentifiant"/>
+        <DetectChar attribute="Symbol" context="#pop" char="]"/>
+        <IncludeRules context="FindSpecialSymbol"/>
+        <IncludeRules context="FindSpecialOtherSymbol"/>
+        <IncludeRules context="FindEscape"/>
+      </context>
+
+      <context attribute="Normal Text" name="FindSpecialSymbol">
+        <DetectChar attribute="String" context="StringDQ" char="&quot;"/>
+        <DetectChar attribute="String" context="StringSQ" char="'"/>
+        <StringDetect attribute="HereString" context="HereStringDQ" String="@&quot;" beginRegion="StringRegion"/>
+        <StringDetect attribute="HereString" context="HereStringSQ" String="@'" beginRegion="StringRegion"/>
+        <StringDetect attribute="Symbol" String="@("/>
         <DetectChar attribute="Comment" context="Commentar 1" char="#"/>
-        <Detect2Chars attribute="Comment" context="Commentar 2" char="&lt;" char1="#" beginRegion="CommentRegion"/>
+        <StringDetect attribute="Comment" context="Commentar 2" String="&lt;#" beginRegion="CommentRegion"/>
         <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="block1"/>
         <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="block1"/>
-        <RegExpr attribute="Keyword" context="#stay" String="\b\$(global|script)(?=\s+(:))"/>
-        <RegExpr attribute="Variable" context="#stay" String="\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*" />
-        <keyword attribute="Special Variable" context="#stay" String="special-variables"/>
-        <DetectChar attribute="Symbol" context="Member" char="." />
-        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/*&lt;=&gt;?[]|~^&#59;"/>
+        <DetectChar attribute="Symbol" context="Member" char="."/>
       </context>
-      <context attribute="String Char" lineEndContext="#stay" name="StringEscape">
-        <RegExpr attribute="String Char" String="`[`&quot;0abefnrtv]|`u\{[0-9A-Fa-f]+\}" context="#stay"/>
+
+      <context attribute="Normal Text" name="FindSpecialOtherSymbol">
+        <RegExpr attribute="Operator" String="(?&lt;=^|[\s(){}])-([ic]?(split|eq|ne|gt|ge|lt|le|like|notlike|match|notmatch|contains|notcontains|replace)|b?(and|or|xor)|join|not|isnot|is|as)(?=[\s(){}$]|$)"/>
+        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/*&lt;=&gt;?[]|~^;"/>
+        <IncludeRules context="FindVariable"/>
       </context>
-      <context attribute="String" lineEndContext="#pop" name="String">
-        <IncludeRules context="StringEscape"/>
-        <LineContinue attribute="String" context="#pop"/>
+
+      <context attribute="Normal Text" name="FindEscape">
+        <RegExpr attribute="String Char" String="`u\{[0-9A-Fa-f]+\}|`."/>
+        <RegExpr attribute="Escape" String="(?&lt;=\s)`"/>
+      </context>
+
+      <context attribute="Normal Text" name="FindVariable">
+        <StringDetect attribute="Variable Substitution" context="VarSubst" String="${" />
+        <StringDetect attribute="Symbol" context="VarCmd" String="$(" />
+        <RegExpr attribute="Variable" context="VariableScopeModifier" String="\$(?=&varscope;:)" insensitive="1"/>
+        <RegExpr attribute="Variable" String="\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*|[?^$])"/>
+      </context>
+
+      <context attribute="Normal Text" name="FindIdentifiant">
+        <RegExpr attribute="Number" context="NumericSuffix" String="\b(0b[01]+|0x[0-9a-fA-F]+|([0-9]+(\.[0-9]*)?|\.[0-9]+)(e([-+][0-9]+|[0-9]*))?)(?=(u?[ysl]|[und])?([kmgtp]b)?\b)" insensitive="1"/>
+        <RegExpr String="[-\w]+"/>
+      </context>
+      <context attribute="Numeric Suffix" name="NumericSuffix" fallthroughContext="#pop">
+        <DetectIdentifier attribute="Numeric Suffix" context="#pop"/>
+      </context>
+
+      <!-- $( -->
+      <context attribute="Normal Text" name="VarCmd">
+        <DetectChar attribute="Symbol" context="#pop" char=")"/>
+        <IncludeRules context="Normal"/>
+      </context>
+
+      <!-- ${ -->
+      <context attribute="Variable" name="VarSubst" fallthroughContext="VarNameSubst">
+        <DetectChar attribute="Variable Substitution" context="#pop" char="}"/>
+        <RegExpr attribute="Scope Modifier" context="VariableName" String="&varscope;:" insensitive="1"/>
+      </context>
+      <context attribute="Variable" name="VarNameSubst">
+        <DetectChar attribute="Variable Substitution" context="#pop#pop" char="}"/>
+      </context>
+
+      <!-- $xxx:varname -->
+      <context attribute="Normal Text" name="VariableScopeModifier" lineEndContext="#pop">
+        <DetectChar attribute="Symbol" context="#pop!VariableName" char=":"/>
+        <DetectIdentifier attribute="Scope Modifier"/>
+      </context>
+      <context attribute="Normal Text" name="VariableName" lineEndContext="#pop">
+        <RegExpr attribute="Variable" context="#pop" String="&varname;(:&varname;)*"/>
+      </context>
+
+      <context attribute="String" name="StringDQ">
+        <IncludeRules context="FindVariable"/>
+        <RegExpr attribute="String Char" String="`u\{[0-9A-Fa-f]+\}|`.|`$|&quot;&quot;"/>
         <DetectChar attribute="String" context="#pop" char="&quot;"/>
       </context>
-      <context attribute="HereString" lineEndContext="#stay" name="HereStringer">
-        <Detect2Chars attribute="HereString" context="#pop" char="&quot;" char1="@" endRegion="StringRegion"/>
+      <context attribute="String" name="StringSQ">
+        <StringDetect attribute="String Char" String="''"/>
+        <DetectChar attribute="String" context="#pop" char="'"/>
       </context>
-      <context attribute="Normal Text" lineEndContext="#pop" name="Member" fallthrough="true" fallthroughContext="#pop">
-        <RegExpr attribute="Function" context="#pop" String="\b[_\w][_\w\d]*(?=[\s]*)" />
+
+      <context attribute="HereString" lineEndContext="#stay" name="HereStringDQ">
+        <IncludeRules context="FindVariable"/>
+        <StringDetect attribute="HereString" context="#pop" String="&quot;@" endRegion="StringRegion" column="0"/>
       </context>
+      <context attribute="HereString" lineEndContext="#stay" name="HereStringSQ">
+        <StringDetect attribute="HereString" context="#pop" String="'@" endRegion="StringRegion" column="0"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="Member" fallthroughContext="#pop">
+        <RegExpr attribute="Function" context="#pop" String="[_[:alpha:]]\w*" />
+      </context>
+
       <context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
         <DetectSpaces />
         <IncludeRules context="##Comments"/>
       </context>
+
       <context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
         <DetectSpaces />
         <Detect2Chars attribute="Comment" context="#pop" char="#" char1="&gt;" endRegion="CommentRegion"/>
+        <!-- no delimiter except spaces -->
+        <keyword context="CommentHelp" String="comment-based-help" weakDeliminator="!%&amp;()*+,-./:;$lt;=>?[\]^{|}~" firstNonSpace="1" lookAhead="1" insensitive="0"/>
         <IncludeRules context="##Comments"/>
       </context>
-      <context attribute="Cmdlets" lineEndContext="#stay" name="Cmdlet">
-        <keyword attribute="Function" context="#stay" String="cmdlets"/>
+      <context attribute="Comment-Based Help Keyword" lineEndContext="#pop" name="CommentHelp">
+        <DetectChar attribute="Symbol" char="."/>
+        <DetectIdentifier attribute="Comment-Based Help Keyword" context="CommentHelpParam"/>
       </context>
+      <context attribute="Comment-Based Help Paramater" lineEndContext="#pop#pop" name="CommentHelpParam">
+      </context>
+
     </contexts>
+
     <itemDatas>
-      <itemData name="Normal Text"  defStyleNum="dsNormal" spellChecking="false"/>
-      <itemData name="Keyword"      defStyleNum="dsKeyword" spellChecking="false"/>
-      <itemData name="Function"     defStyleNum="dsFunction" spellChecking="false"/>
-      <itemData name="Data Type"    defStyleNum="dsDataType" spellChecking="false"/>
-      <itemData name="String"       defStyleNum="dsString"/>
-      <itemData name="String Char"  defStyleNum="dsChar" spellChecking="false"/>
-      <itemData name="HereString"       defStyleNum="dsVerbatimString"/>
-      <itemData name="Comment"      defStyleNum="dsComment"/>
-      <itemData name="Cmdlets"      defStyleNum="dsBuiltIn" spellChecking="false"/>
-      <itemData name="Symbol"       defStyleNum="dsOperator" spellChecking="false"/>
-      <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/>
-      <itemData name="Special Variable" defStyleNum="dsVariable" bold="1" spellChecking="false"/>
+      <itemData name="Normal Text"           defStyleNum="dsNormal"   spellChecking="false"/>
+      <itemData name="Attribute"             defStyleNum="dsAttribute" spellChecking="false"/>
+      <itemData name="Escape"                defStyleNum="dsChar"     spellChecking="false"/>
+      <itemData name="Keyword"               defStyleNum="dsKeyword"  spellChecking="false"/>
+      <itemData name="Control Flow"          defStyleNum="dsControlFlow" spellChecking="false"/>
+      <itemData name="Function"              defStyleNum="dsFunction" spellChecking="false"/>
+      <itemData name="Data Type"             defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="String"                defStyleNum="dsString"/>
+      <itemData name="String Char"           defStyleNum="dsChar"     spellChecking="false"/>
+      <itemData name="HereString"            defStyleNum="dsVerbatimString"/>
+      <itemData name="Number"                defStyleNum="dsDecVal"   spellChecking="false"/>
+      <itemData name="Numeric Suffix"        defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Comment"               defStyleNum="dsComment"/>
+      <itemData name="Comment-Based Help Keyword" defStyleNum="dsDocumentation" spellChecking="false"/>
+      <itemData name="Comment-Based Help Paramater" defStyleNum="dsSpecialString" spellChecking="false"/>
+      <itemData name="Symbol"                defStyleNum="dsOperator" spellChecking="false"/>
+      <itemData name="Operator"              defStyleNum="dsOperator" spellChecking="false"/>
+      <itemData name="Variable"              defStyleNum="dsVariable" spellChecking="false"/>
+      <itemData name="Scope Modifier"        defStyleNum="dsVariable" spellChecking="false" bold="1"/>
+      <itemData name="Variable Substitution" defStyleNum="dsPreprocessor" spellChecking="false"/>
     </itemDatas>
   </highlighting>
   <general>
diff --git a/syntax/prolog.xml b/syntax/prolog.xml
--- a/syntax/prolog.xml
+++ b/syntax/prolog.xml
@@ -29,7 +29,7 @@
  * Boston, MA  02110-1301, USA.                                       *
  **********************************************************************
 -->
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [<!-- [Regular Expressions, Character Classes & Important Tokens]
 E.g. the dot "." has so many different meanings (i.e. in an RegExpr 'any char',
 'fullstop' of a clause, etc. pp.) that I decided it's usefull to write these out
@@ -105,7 +105,7 @@
     <!ENTITY bs         "\">
 ]>
 <language name="Prolog" section="Sources"
-	  version="16" kateversion="5.62"
+	  version="17" kateversion="5.62"
 	  mimetype="text/x-prolog"
 	  extensions="*.prolog;*.dcg;*.pro"
 	  author="Torsten Eichstädt (torsten.eichstaedt@web.de)"
@@ -597,14 +597,10 @@
 	    "atomic" and "operator" below with context="#stay" (two or three occurrences) -->
 	    <context name="arith_expr" lineEndContext="#stay" attribute="Syntax Error" noIndentationBasedFolding="true" >
 		<DetectChar char="(" context="nested_expr" beginRegion="nested" attribute="( ) [ ]" />
-		<DetectChar lookAhead="true" char=")" context="#pop" attribute="( ) [ ]" />
-		<DetectChar lookAhead="true" char="}" context="#pop" attribute="{ DCG }" />
-		<DetectChar lookAhead="true" char="]" context="#pop" attribute="( ) [ ]" />
 		<!-- FIXME check if cut may be an op, else (and in any case 99.9% likely) it's a usual cut here -->
-		<AnyChar lookAhead="true" String="&cut;&comma;" context="#pop" attribute="Logic &amp; Control" />
 		<!-- bar & dot could be a user-def'd op, pre-def'd ops could be
 		redef'd; but let's assume the default and just end the expr -->
-		<DetectChar lookAhead="true" char="&bar;" context="#pop" attribute="other built-in operator" />
+		<AnyChar lookAhead="true" String=")}]&bar;&cut;&comma;&bar;" context="#pop"/>
 		<RegExpr lookAhead="true" String="&fullstop_iso;|&logic_control_ops_iso;" context="#pop" attribute="Logic &amp; Control" />
 		<IncludeRules context="arith_expr_common" />
 	    </context>
diff --git a/syntax/protobuf.xml b/syntax/protobuf.xml
--- a/syntax/protobuf.xml
+++ b/syntax/protobuf.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="Protobuf" version="9" kateversion="5.0" section="Sources" extensions="*.proto" mimetype="text/x-protobuf" author="Slawomir Mikula (slawek.mikula@gmail.com)" license="LGPL">
   <highlighting>
     <list name="keywords">
diff --git a/syntax/pure.xml b/syntax/pure.xml
--- a/syntax/pure.xml
+++ b/syntax/pure.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!--
 
  Pure syntax highlighting for kate. Usage:
diff --git a/syntax/purebasic.xml b/syntax/purebasic.xml
--- a/syntax/purebasic.xml
+++ b/syntax/purebasic.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">
+<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language>
 <language name="PureBasic" version="10" kateversion="5.0" section="Sources" extensions="*.pb;*.pbi" mimetype="text/x-purebasic" author="Alexander Clay (Tuireann@EpicBasic.org);Sven Langenkamp (ace@kylixforum.de)" license="LGPL" priority="1" >
   <highlighting>
     <list name="keywords">
diff --git a/syntax/purescript.xml b/syntax/purescript.xml
new file mode 100644
--- /dev/null
+++ b/syntax/purescript.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language>
+<language name="PureScript" version="1" kateversion="5.53" section="Sources" extensions="*.purs" author="Gleb Popov (6yearold@gmail.com)" license="BSD3" indenter="haskell" style="haskell">
+  <highlighting>
+  <contexts>
+    <context attribute="Normal" lineEndContext="#stay" name="code">
+      <IncludeRules context="code##Haskell" />
+    </context>
+  </contexts>
+  <itemDatas>
+    <itemData name="Normal"           defStyleNum="dsNormal"   spellChecking="false" />
+  </itemDatas>
+  </highlighting>
+  <general>
+    <folding indentationsensitive="1"/>
+    <comments>
+      <comment name="singleLine" start="--" />
+      <comment name="multiLine" start="{-" end="-}" />
+    </comments>
+    <keywords casesensitive="1" />
+</general>
+</language>
diff --git a/syntax/python.xml b/syntax/python.xml
--- a/syntax/python.xml
+++ b/syntax/python.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
 	<!ENTITY digitPart "[0-9](?:_?[0-9])*">
 	<!ENTITY beforeDigit "(?&lt;![\.\w[:^ascii:]])">
@@ -16,15 +16,15 @@
 		[Special cases: %prog and %default - see http://docs.python.org/library/optparse.html]
 	-->
 	<!ENTITY strsubstitution_py2 "&#37;(?:(?:\([a-zA-Z0-9_]+\))?[#0\- +]?(?:[1-9][0-9]*|\*)?(?:\.(?:[1-9][0-9]*|\*))?[hlL]?[crsdiouxXeEfFgG&#37;]|prog|default)">
-	<!-- http://docs.python.org/2/library/string.html#format-string-syntax:
+	<!-- http://docs.python.org/3/library/string.html#format-string-syntax:
 	     replacement_field ::=  "{" [field_name] ["!" conversion] [":" format_spec] "}"
 	     field_name        ::=  arg_name ("." attribute_name | "[" element_index "]")*
 	     arg_name          ::=  [identifier | integer]
 	     attribute_name    ::=  identifier
 	     element_index     ::=  integer | index_string
 	     index_string      ::=  <any source character except "]"> +
-	     conversion        ::=  "r" | "s"
-	     format_spec       ::=  [[fill]align][sign][#][0][width][,][.precision][type]
+	     conversion        ::=  "r" | "s" | "a"
+	     format_spec       ::=  [[fill]align][sign][z][#][0][width][_,][.precision][type]
 	     fill              ::=  <any character>
 	     align             ::=  "<" | ">" | "=" | "^"
 	     sign              ::=  "+" | "-" | " "
@@ -32,7 +32,8 @@
 	     precision         ::=  integer
 	     type              ::=  "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
 	-->
-	<!ENTITY strsubstitution_py3 "\{(?:(?:[a-zA-Z0-9_]+|[0-9]+)(?:\.[a-zA-Z0-9_]+|\[[^ \]]+\])*)?(?:![rs])?(?::(?:[^}]?[&lt;&gt;=^])?[ +-]?#?0?[0-9]*(?:\.[0-9]+)?[bcdeEfFgGnosxX&#37;]?)?\}">
+	<!ENTITY format_spec "(?:![rsa])?(?::(?:[^}]?[&lt;&gt;=^])?[ +-]?z?#?0?[0-9]*[_,]?(?:\.[0-9]+)?[bcdeEfFgGnosxX&#37;]?)?">
+	<!ENTITY strsubstitution_py3 "\{(?:(?:[a-zA-Z0-9_]+|[0-9]+)(?:\.[a-zA-Z0-9_]+|\[[^ \]]+\])*)?&format_spec;?\}">
 
 	<!ENTITY rawString "(?:ru|u?r|)(?:'(?:[^']++|\\')*+'|&quot;(?:[^&quot;]++|\\&quot;)*+&quot;)">
 	<!ENTITY formatString "(?:r?f|fr?)(?:'(?:[^'{]++|\\'|\{\{|\{[^}]++\})*+'|&quot;(?:[^&quot;]++|\\&quot;|\{\{|\{[^}]*+\})*+&quot;)">
@@ -52,7 +53,7 @@
 <!-- v2.07 add support for %prog and co, see bug 142832 -->
 <!-- v2.08 add missing overloaders, new Python 3 statements, builtins, and keywords -->
 <!-- v2.29 recognize escape sequenzes correctly -->
-<language name="Python" version="22" style="python" indenter="python" kateversion="5.0" section="Scripts" extensions="*.py;*.pyw;SConstruct;SConscript;*.FCMacro" mimetype="application/x-python;text/x-python;text/x-python3" casesensitive="1" author="Michael Bueker" license="">
+<language name="Python" alternativeNames="Py" version="28" style="python" indenter="python" kateversion="5.0" section="Scripts" extensions="*.py;*.pyw;*.pyi;SConstruct;SConscript;*.FCMacro" mimetype="application/x-python;text/x-python;text/x-python3" casesensitive="1" author="Michael Bueker" license="">
 	<highlighting>
 		<list name="import">
 			<item>import</item>
@@ -106,9 +107,12 @@
 			<item>case</item>
 		</list>
 		<list name="builtinfuncs">
+			<!-- https://docs.python.org/3.11/library/functions.html#built-in-funcs -->
 			<item>__import__</item>
 			<item>abs</item>
+			<item>aiter</item>
 			<item>all</item>
+			<item>anext</item>
 			<item>any</item>
 			<item>apply</item>
 			<item>ascii</item>
@@ -201,6 +205,7 @@
 			<item>__debug__</item>
 			<item>__file__</item>
 			<item>__name__</item>
+			<item>__qualname__</item>
 		</list>
 		<list name="bindings">
 			<item>SIGNAL</item>
@@ -208,6 +213,7 @@
 			<item>connect</item>
 		</list>
 		<list name="overloaders">
+			<!-- https://docs.python.org/3.10/reference/datamodel.html#special-method-names -->
 			<item>__new__</item>
 			<item>__init__</item>
 			<item>__del__</item>
@@ -222,6 +228,7 @@
 			<item>__cmp__</item>
 			<item>__rcmp__</item>
 			<item>__hash__</item>
+			<item>__bool__</item>
 			<item>__nonzero__</item>
 			<item>__unicode__</item>
 			<item>__getattr__</item>
@@ -233,9 +240,11 @@
 			<item>__delete__</item>
 			<item>__call__</item>
 			<item>__len__</item>
+			<item>__length_hint__</item>
 			<item>__getitem__</item>
 			<item>__setitem__</item>
 			<item>__delitem__</item>
+			<item>__missing__</item>
 			<item>__iter__</item>
 			<item>__reversed__</item>
 			<item>__contains__</item>
@@ -245,6 +254,7 @@
 			<item>__add__</item>
 			<item>__sub__</item>
 			<item>__mul__</item>
+			<item>__matmul__</item>
 			<item>__floordiv__</item>
 			<item>__mod__</item>
 			<item>__divmod__</item>
@@ -259,6 +269,7 @@
 			<item>__radd__</item>
 			<item>__rsub__</item>
 			<item>__rmul__</item>
+			<item>__rmatmul__</item>
 			<item>__rdiv__</item>
 			<item>__rtruediv__</item>
 			<item>__rfloordiv__</item>
@@ -273,6 +284,7 @@
 			<item>__iadd__</item>
 			<item>__isub__</item>
 			<item>__imul__</item>
+			<item>__imatmul__</item>
 			<item>__idiv__</item>
 			<item>__itruediv__</item>
 			<item>__ifloordiv__</item>
@@ -294,9 +306,16 @@
 			<item>__oct__</item>
 			<item>__hex__</item>
 			<item>__index__</item>
+			<item>__round__</item>
+			<item>__trunc__</item>
+			<item>__floor__</item>
+			<item>__ceil__</item>
 			<item>__coerce__</item>
 			<item>__enter__</item>
 			<item>__exit__</item>
+			<item>__match_args__</item>
+			<item>__buffer__</item>
+			<item>__release_buffer__</item>
 			<item>__bytes__</item>
 			<item>__format__</item>
 			<item>__next__</item>
@@ -306,12 +325,19 @@
 			<item>__anext__</item>
 			<item>__aenter__</item>
 			<item>__aexit__</item>
+			<item>__slots__</item>
+			<item>__init_subclass__</item>
+			<item>__set_name__</item>
+			<item>__prepare__</item>
+			<item>__instancecheck__</item>
+			<item>__subclasscheck__</item>
+			<item>__class_getitem__</item>
 		</list>
 		<list name="exceptions">
 			<!--
 				Exceptions list resources used:
 				- http://docs.python.org/2.7/library/exceptions.html#exception-hierarchy
-				- http://docs.python.org/3.4/library/exceptions.html#exception-hierarchy
+				- http://docs.python.org/3.10/library/exceptions.html#exception-hierarchy
 			-->
 			<item>ArithmeticError</item>
 			<item>AssertionError</item>
@@ -329,6 +355,7 @@
 			<item>DeprecationWarning</item>
 			<item>EnvironmentError</item>
 			<item>EOFError</item>
+			<item>EncodingWarning</item>
 			<item>Exception</item>
 			<item>FileExistsError</item>
 			<item>FileNotFoundError</item>
@@ -346,6 +373,7 @@
 			<item>KeyError</item>
 			<item>LookupError</item>
 			<item>MemoryError</item>
+			<item>ModuleNotFoundError</item>
 			<item>NameError</item>
 			<item>NotADirectoryError</item>
 			<item>NotImplementedError</item>
@@ -354,11 +382,13 @@
 			<item>PendingDeprecationWarning</item>
 			<item>PermissionError</item>
 			<item>ProcessLookupError</item>
+			<item>RecursionError</item>
 			<item>ReferenceError</item>
 			<item>ResourceWarning</item>
 			<item>RuntimeError</item>
 			<item>RuntimeWarning</item>
 			<item>StandardError</item>
+			<item>StopAsyncIteration</item>
 			<item>StopIteration</item>
 			<item>SyntaxError</item>
 			<item>SyntaxWarning</item>
@@ -383,23 +413,23 @@
 			<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
 				<DetectSpaces attribute="Normal Text"/>
 
-				<keyword attribute="Import" String="import" context="#stay"/>
-				<keyword attribute="Definition Keyword" String="defs" context="#stay"/>
-				<keyword attribute="Operator Keyword" String="operators" context="#stay"/>
+				<DetectChar attribute="Normal Text" char="(" context="Tuple" beginRegion="Tuple"/>
+				<DetectChar attribute="Normal Text" char="[" context="List" beginRegion="List"/>
+				<DetectChar attribute="Normal Text" char="{" context="Dictionary" beginRegion="Dictionary"/>
+
+				<DetectChar attribute="Comment" char="#" context="Hash comment"/>
+
+				<keyword attribute="Special Variable" String="specialvars" context="#stay"/>
 				<keyword attribute="Flow Control Keyword" String="flow" context="#stay"/>
+				<keyword attribute="Operator Keyword" String="operators" context="#stay"/>
+				<keyword attribute="Builtin Function" String="builtinfuncs" context="#stay"/>
+				<keyword attribute="Definition Keyword" String="defs" context="#stay"/>
 				<keyword attribute="Flow Control Keyword" String="flow_yield" context="yield"/>
 				<keyword attribute="Flow Control Keyword" String="patternmatching" context="Pattern Matching" lookAhead="1" firstNonSpace="1"/>
-				<keyword attribute="Builtin Function" String="builtinfuncs" context="#stay"/>
-				<keyword attribute="Special Variable" String="specialvars" context="#stay"/>
-				<keyword attribute="Extensions" String="bindings" context="#stay"/>
+				<keyword attribute="Import" String="import" context="#stay"/>
 				<keyword attribute="Exceptions" String="exceptions" context="#stay"/>
 				<keyword attribute="Overloaders" String="overloaders" context="#stay"/>
-
-				<DetectChar attribute="Normal Text" char="{" context="Dictionary" beginRegion="Dictionary"/>
-				<DetectChar attribute="Normal Text" char="[" context="List" beginRegion="List"/>
-				<DetectChar attribute="Normal Text" char="(" context="Tuple" beginRegion="Tuple"/>
-
-				<DetectChar attribute="Comment" char="#" context="Hash comment"/>
+				<keyword attribute="Extensions" String="bindings" context="#stay"/>
 
 				<IncludeRules context="Number" />
 				<IncludeRules context="CommentVariants" />
@@ -408,10 +438,17 @@
 				<DetectIdentifier attribute="Normal Text"/>
 
 				<RegExpr attribute="Decorator" String="@[_a-zA-Z[:^ascii:]][\._a-zA-Z0-9[:^ascii:]]*" firstNonSpace="true"/>
-				<AnyChar attribute="Operator" String="+*/%\|=;&lt;&gt;!^&amp;~-@" context="#stay"/>
+				<Detect2Chars attribute="Operator" char=":" char1="=" context="#stay"/>
+				<AnyChar attribute="Operator" String="+*/%|=;&lt;&gt;!^&amp;~-@" context="#stay"/>
 
+				<LineContinue attribute="Operator" context="MultiLineExpr"/>
+
 				<Int attribute="Error"/>
 			</context>
+			<context name="MultiLineExpr" attribute="Normal Text" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">
+				<DetectSpaces attribute="Normal Text"/>
+				<IncludeRules context="StringVariants" />
+			</context>
 
 			<!-- https://docs.python.org/2/reference/lexical_analysis.html#integer-and-long-integer-literals -->
 			<!-- https://docs.python.org/3/reference/lexical_analysis.html#integer-literals -->
@@ -457,7 +494,7 @@
 				<LineContinue attribute="Normal Text" context="#pop!CheckForStringNext"/>
 			</context>
 
-			<context name="CheckForStringNext" attribute="Normal Text" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
+			<context name="CheckForStringNext" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
 				<DetectSpaces/>
 				<LineContinue attribute="Normal Text" context="#stay"/>
 				<IncludeRules context="StringVariants"/>
@@ -475,16 +512,16 @@
 				<RegExpr attribute="String" String="u?'"                  insensitive="true" context="#pop!Single A-string"/>
 				<RegExpr attribute="String" String="u?&quot;"             insensitive="true" context="#pop!Single Q-string"/>
 
-				<RegExpr attribute="Raw String" String="u?r'''"                insensitive="true" context="#pop!Raw Triple A-string" beginRegion="Triple A-region"/>
-				<RegExpr attribute="Raw String" String="u?r&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-string" beginRegion="Triple Q-region"/>
-				<RegExpr attribute="Raw String" String="u?r'"                  insensitive="true" context="#pop!Raw A-string"/>
-				<RegExpr attribute="Raw String" String="u?r&quot;"             insensitive="true" context="#pop!Raw Q-string"/>
-
 				<StringDetect attribute="F-String" String="f'''"                insensitive="true" context="#pop!Triple A-F-String" beginRegion="Triple A-region"/>
 				<StringDetect attribute="F-String" String="f&quot;&quot;&quot;" insensitive="true" context="#pop!Triple Q-F-String" beginRegion="Triple Q-region"/>
 				<StringDetect attribute="F-String" String="f'"                  insensitive="true" context="#pop!Single A-F-String"/>
 				<StringDetect attribute="F-String" String="f&quot;"             insensitive="true" context="#pop!Single Q-F-String"/>
 
+				<RegExpr attribute="Raw String" String="u?r'''"                insensitive="true" context="#pop!Raw Triple A-string" beginRegion="Triple A-region"/>
+				<RegExpr attribute="Raw String" String="u?r&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-string" beginRegion="Triple Q-region"/>
+				<RegExpr attribute="Raw String" String="u?r'"                  insensitive="true" context="#pop!Raw A-string"/>
+				<RegExpr attribute="Raw String" String="u?r&quot;"             insensitive="true" context="#pop!Raw Q-string"/>
+
 				<RegExpr attribute="Raw F-String" String="(?:fr|rf)'''"                insensitive="true" context="#pop!Raw Triple A-F-String" beginRegion="Triple A-region"/>
 				<RegExpr attribute="Raw F-String" String="(?:fr|rf)&quot;&quot;&quot;" insensitive="true" context="#pop!Raw Triple Q-F-String" beginRegion="Triple Q-region"/>
 				<RegExpr attribute="Raw F-String" String="(?:fr|rf)'"                  insensitive="true" context="#pop!Raw A-F-String"/>
@@ -537,7 +574,8 @@
 
 			<context name="UnfinishedStringError" attribute="Error" lineEndContext="#stay" noIndentationBasedFolding="true">
 				<!-- A single string/comment reached the end of the line without a \ line escape -->
-				<!-- We set ALL succeeding lines to the "Error" attribute so that this error is easier to spot -->
+				<!-- We set the following line (or part of it) to the "Error" attribute so that this error is easier to spot -->
+				<RegExpr attribute="Error" String="^(\s{4,}|[^[\]()&quot;']{4,}([&quot;'].*)?)" context="#pop" column="0"/>
 			</context>
 
 			<!-- Comments -->
@@ -618,8 +656,7 @@
 			</context>
 			<context name="String Interpolation" attribute="String Substitution" lineEndContext="#stay">
 				<DetectChar attribute="Error" char="\" context="#pop"/>
-				<!-- format specifiers: [[fill]align][sign][#][0][minimumwidth][.precision][type] -->
-				<RegExpr attribute="String Substitution" String="(?:![rsa])?(?::(?:[^}]?[&lt;&gt;=^])?[ +-]?#?0?[0-9]*(?:\.[0-9]+)?[bcdeEfFgGnosxX%]?)?\}" context="#pop"/>
+				<RegExpr attribute="String Substitution" String="&format_spec;\}" context="#pop"/>
 				<IncludeRules context="Normal"/> <!-- TODO: create expression context instead -->
 			</context>
 
@@ -891,4 +928,4 @@
 	</general>
 </language>
 
-<!-- kate: space-indent off; indent-width 4; -->
+<!-- kate: space-indent off; indent-width 2; -->
diff --git a/syntax/qml.xml b/syntax/qml.xml
--- a/syntax/qml.xml
+++ b/syntax/qml.xml
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
   <!ENTITY identifier "[a-zA-Z_$][\w$]*">
 ]>
 <!-- Author: Milian Wolff <mail@milianw.de> -->
-<language name="QML" version="9" kateversion="5.53" section="Scripts" extensions="*.qml;*.qmltypes"
+<language name="QML" version="13" kateversion="5.53" section="Scripts" extensions="*.qml;*.qmltypes"
           mimetype="text/x-qml;application/x-qml" indenter="cstyle"
           author="Milian Wolff (mail@milianw.de)" license="MIT">
   <highlighting>
@@ -88,7 +88,9 @@
     </list>
     <!-- keywords not part of JavaScript -->
     <list name="extra-keywords">
+      <item>pragma</item>
       <item>readonly</item>
+      <item>required</item>
     </list>
     <list name="types">
       <!-- see: http://doc.trolltech.com/4.7-snapshot/qml-extending-types.html -->
@@ -104,6 +106,14 @@
       <item>variant</item>
     </list>
     <contexts>
+      <!-- Shebang: ("#!") Detect shebang and fallthrough to Normal -->
+      <!-- Based on the similar clause from prolog.xml.
+           This uses "lineEmptyContext" & "lineEndContext" to force the highlight only on the first line. -->
+      <context name="Shebang" attribute="Normal Text" lineEndContext="Normal" lineEmptyContext="Normal" fallthrough="true" fallthroughContext="Normal">
+        <Detect2Chars column="0" char="#" char1="!" context="Shebang Line" attribute="Shebang" />
+      </context>
+      <context name="Shebang Line" attribute="Shebang" lineEndContext="#pop!Normal" />
+
       <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
         <DetectSpaces/>
         <WordDetect attribute="Import" context="Import" String="import"/>
@@ -115,15 +125,20 @@
         <DetectChar attribute="String" context="String" char="&quot;" />
         <DetectChar attribute="Normal Text" context="Object" char="{" beginRegion="Brace" />
         <!-- Normal##JavaScript -->
+        <IncludeRules context="FindSomeSymbols##JavaScript" />
+        <AnyChar context="#stay" String="[(" />
+        <AnyChar context="NoRegExp##JavaScript" String="])" />
         <IncludeRules context="FindNumbers##JavaScript" />
         <IncludeRules context="FindKeywords##JavaScript" />
         <IncludeRules context="FindStrings##JavaScript" />
         <RegExpr attribute="Objects" context="FindMemberObjectMath##JavaScript" String="\bMath(?=\s*\.)" />
         <RegExpr attribute="Objects" context="#stay" String="\b[A-Z][\w$]*(?=\s*\.)" />
+        <IncludeRules context="FindMembers##JavaScript" />
         <IncludeRules context="FindObjectMembersAndFunctions##JavaScript" />
         <IncludeRules context="JSBase##JavaScript" />
       </context>
       <context attribute="ImportValue" lineEndContext="#pop" name="Import">
+        <IncludeRules context="FindComments##JavaScript" />
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="Property">
         <WordDetect attribute="Property Type" context="#stay" String="alias" />
@@ -131,6 +146,7 @@
         <DetectSpaces />
         <DetectIdentifier />
         <DetectChar char=":" context="#pop" />
+        <IncludeRules context="FindComments##JavaScript" />
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="Signal">
         <DetectSpaces />
@@ -150,7 +166,7 @@
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="Object">
         <!--DetectIdentifier-->
-        <RegExpr attribute="Property Type" String="&identifier;\s*(?=:)" />
+        <RegExpr attribute="Property Type" String="&identifier;\s*(?=(\/\*.*?\*\/)?:)" />
         <!-- Avoid highlighting Property Type before ":" in conditional expressions. -->
         <RegExpr attribute="Symbol" context="ConditionalExpression" String="\?(?=[^\}]*&identifier;\s*\:)" />
         <DetectChar attribute="Normal Text" char="}" endRegion="Brace" context="#pop" />
@@ -173,6 +189,7 @@
       <itemData name="String"       defStyleNum="dsString" />
       <itemData name="Objects"      defStyleNum="dsExtension" bold="0" spellChecking="false" />
       <itemData name="Symbol"       defStyleNum="dsOperator" spellChecking="false" />
+      <itemData name="Shebang"      defStyleNum="dsComment" spellChecking="false" />
     </itemDatas>
   </highlighting>
   <general>
diff --git a/syntax/r.xml b/syntax/r.xml
--- a/syntax/r.xml
+++ b/syntax/r.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!-- Kate 2.5 (KDE 3.5) highlighting module for R
 	based on an earlier version by E.L. Willighagen. Code folding code by Ben Goodrich
 	version 2.0: (c) 2006 Thomas Friedrichsmeier, Arne Henningsen, and the RKWard Team
@@ -8,7 +8,7 @@
 	R      : http://www.r-project.org/
 	RKWard : http://rkward.kde.org/
 	-->
-<language version="11" kateversion="5.0" name="R Script" section="Scientific" extensions="*.R;*.r;*.S;*.s;*.q" mimetype="" license="GPLv2">
+<language version="14" kateversion="5.0" name="R Script" section="Scientific" extensions="*.R;*.r;*.S;*.s;*.q" mimetype="" license="GPLv2">
 <highlighting>
 
 	<list name="controls">
@@ -85,6 +85,10 @@
 			<AnyChar attribute="Error" context="#stay" String="*/&lt;&gt;=|&amp;:^@$~"/>
 		</context>
 
+		<context attribute="Numeric Suffix" lineEndContext="#pop" name="NumericSuffix" fallthrough="true" fallthroughContext="#pop">
+			<AnyChar attribute="Numeric Suffix" context="#pop" String="Li"/>
+		</context>
+
 		<context attribute="Normal Text" lineEndContext="#stay" name="FindComments">
 			<Detect2Chars attribute="Headline" context="Headline" char="#" char1="#"/>
 			<DetectChar attribute="Comment" context="Comment" char="#"/>
@@ -108,7 +112,7 @@
 			<keyword attribute="Control Structure" context="#stay" String="controls"/>
 			<keyword attribute="Reserved Words" context="#stay" String="words"/>
 			<Float attribute="Float" context="#stay"/>
-			<Int attribute="Int" context="#stay"/>
+			<Int attribute="Int" context="NumericSuffix"/>
 			<RegExpr attribute="Keyword" context="#stay" String="[a-zA-Z_]+[a-zA-Z_\.0-9]*(?=[\s]*[(])|\.[a-zA-Z_\.]+[a-zA-Z_\.0-9]*(?=[\s]*[(])"/>
 			<DetectChar attribute="Symbol" context="parenthesis" char="("/>
 
@@ -117,16 +121,19 @@
 			<Detect2Chars attribute="Assign" context="operator_rhs" char="&lt;" char1="-"/>
 			<StringDetect attribute="Assign" context="operator_rhs" String="-&gt;&gt;"/>
 			<Detect2Chars attribute="Assign" context="operator_rhs" char="-" char1="&gt;"/>
-			<RegExpr attribute="Assign" context="operator_rhs" String="=(?!=)"/>
+			<RegExpr attribute="Assign" context="operator_rhs" String="=(?!(=|&gt;))"/>
 			<Detect2Chars attribute="Operator" context="operator_rhs" char="*" char1="*"/>
 			<Detect2Chars attribute="Operator" context="operator_rhs" char="&lt;" char1="="/>
 			<Detect2Chars attribute="Operator" context="operator_rhs" char="&gt;" char1="="/>
 			<Detect2Chars attribute="Operator" context="operator_rhs" char="=" char1="="/>
+			<Detect2Chars attribute="Operator" context="operator_rhs" char="=" char1="&gt;"/>
 			<Detect2Chars attribute="Operator" context="operator_rhs" char="!" char1="="/>
+			<Detect2Chars attribute="Operator" context="operator_rhs" char="|" char1="&gt;"/>
 			<Detect2Chars attribute="Operator" context="operator_rhs" char="|" char1="|"/>
 			<Detect2Chars attribute="Operator" context="operator_rhs" char="&amp;" char1="&amp;"/>
 			<StringDetect attribute="Operator" context="operator_rhs" String=":::"/>
 			<Detect2Chars attribute="Operator" context="operator_rhs" char=":" char1=":"/>
+			<Detect2Chars attribute="Operator" context="operator_rhs" char=":" char1="="/>
 			<AnyChar attribute="Operator" context="operator_rhs" String="+-*/&lt;&gt;=!|&amp;:^@$~"/>
 			<RangeDetect attribute="Operator" context="operator_rhs" char="%" char1="%"/>
 
@@ -153,6 +160,7 @@
 		<itemData name="String Char"  defStyleNum="dsSpecialChar" spellChecking="false"/>
 		<itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>
 		<itemData name="Int" defStyleNum="dsDecVal" spellChecking="false"/>
+		<itemData name="Numeric Suffix" defStyleNum="dsDataType" spellChecking="false"/>
 	</itemDatas>
 </highlighting>
 
diff --git a/syntax/racket.xml b/syntax/racket.xml
new file mode 100644
--- /dev/null
+++ b/syntax/racket.xml
@@ -0,0 +1,1309 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language
+[
+  <!ENTITY xmlattrs "\s+([^&quot;/>]++|&quot;[^&quot;]*+&quot;)*+">
+  <!ENTITY tab      "&#009;">
+  <!ENTITY regex    "(?:[^\\(\[/]++|\\.|\[\^?\]?([^\\\[\]]++|\\.|\[(:[^:]+:\])?)++\]|\((?R)\))+">
+
+  <!ENTITY initial_ascii_set "a-zA-Z!$&#37;&amp;*/:&lt;=&gt;?~_^">
+  <!ENTITY initial_unicode_set "\p{Lu}\p{Ll}\p{Lt}\p{Lm}\p{Lo}\p{Mn}\p{Nl}\p{No}\p{Pd}\p{Pc}\p{Po}\p{Sc}\p{Sm}\p{Sk}\p{So}\p{Co}">
+  <!ENTITY initial_others "\\x[0-9a-fA-F]++;|(?![\x01-\x7f])[&initial_unicode_set;]">
+  <!ENTITY initial "(?:[&initial_ascii_set;]|&initial_others;)">
+  <!ENTITY subsequent "(?:[&initial_ascii_set;0-9-@.+\p{Nd}\p{Mc}\p{Me}]|&initial_others;)">
+  <!ENTITY symbol "(?:&initial;&subsequent;*+)">
+]>
+<!--
+Since Racket supports multiple scheme-like language, this was an extension to scheme.xml
+It also contains keywords for a few popular racket-based langs.
+-->
+<language version="2" kateversion="5.62" name="Racket" section="Scripts" extensions="*.rkt;*.scrbl" author="slbtty(shenlebantongying@gmail.com)" license="MIT" priority="9">
+  <highlighting>
+    <list name="operators">
+      <item>&lt;=</item>
+      <item>&lt;</item>
+      <item>=</item>
+      <item>=&gt;</item>
+      <item>&gt;=</item>
+      <item>&gt;</item>
+      <item>-</item>
+      <item>/</item>
+      <item>+</item>
+      <item>!</item>
+      <item>$</item>
+      <item>%</item>
+      <item>*</item>
+      <item>/</item>
+      <item>=</item>
+      <item>></item>
+      <item>?</item>
+      <item>^</item>
+      <item>_</item>
+      <item>~</item>
+    </list>
+
+    <list name="characters">
+      <item>alarm</item>
+      <item>backspace</item>
+      <item>delete</item>
+      <item>esc</item>
+      <item>linefeed</item>
+      <item>newline</item>
+      <item>page</item>
+      <item>return</item>
+      <item>space</item>
+      <item>tab</item>
+      <item>vtab</item>
+      <!-- extension -->
+      <item>nul</item>
+      <item>soh</item>
+      <item>stx</item>
+      <item>etx</item>
+      <item>eot</item>
+      <item>enq</item>
+      <item>ack</item>
+      <item>bel</item>
+      <item>bs</item>
+      <item>ht</item>
+      <item>nl</item>
+      <item>vt</item>
+      <item>np</item>
+      <item>cr</item>
+      <item>so</item>
+      <item>si</item>
+      <item>dle</item>
+      <item>dc1</item>
+      <item>dc2</item>
+      <item>dc3</item>
+      <item>dc4</item>
+      <item>nak</item>
+      <item>syn</item>
+      <item>etb</item>
+      <item>can</item>
+      <item>em</item>
+      <item>sub</item>
+      <item>fs</item>
+      <item>gs</item>
+      <item>rs</item>
+      <item>us</item>
+      <item>sp</item>
+      <item>nl</item>
+      <item>ht</item>
+      <item>bs</item>
+      <item>cr</item>
+      <item>np</item>
+      <item>null</item>
+      <item>nul</item>
+    </list>
+    <list name="defines">
+      <item>define</item>
+      <item>define*</item>
+      <item>define-accessor</item>
+      <item>define-class</item>
+      <item>defined?</item>
+      <item>define-generic</item>
+      <item>define-macro</item>
+      <item>define-method</item>
+      <item>define-module</item>
+      <item>define-private</item>
+      <item>define-public</item>
+      <item>define*-public</item>
+      <item>define-reader-ctor</item>
+      <item>define-syntax</item>
+      <item>define-simple-macro</item>
+      <item>define-syntax-macro</item>
+      <item>efine-syntax-rule </item>
+      <item>define-syntax-class</item>
+      <item>define-syntax-parameter</item>
+      <item>defmacro</item>
+      <item>defmacro*</item>
+      <item>defmacro*-public</item>
+    </list>
+    <list name="keywords">
+      <item>require</item>
+      <item>provide</item>
+      <item>&amp;assertion</item>
+      <item>&amp;condition</item>
+      <item>&amp;error</item>
+      <item>&amp;i/o-decoding</item>
+      <item>&amp;i/o-encoding</item>
+      <item>&amp;i/o-file-already-exists</item>
+      <item>&amp;i/o-file-does-not-exist</item>
+      <item>&amp;i/o-file-is-read-only</item>
+      <item>&amp;i/o-file-protection</item>
+      <item>&amp;i/o-filename</item>
+      <item>&amp;i/o-invalid-position</item>
+      <item>&amp;i/o-port</item>
+      <item>&amp;i/o-read</item>
+      <item>&amp;i/o-write</item>
+      <item>&amp;i/o</item>
+      <item>&amp;implementation-restriction</item>
+      <item>&amp;implementation-violation</item>
+      <item>&amp;irritants</item>
+      <item>&amp;lexical</item>
+      <item>&amp;message</item>
+      <item>&amp;mistake</item>
+      <item>&amp;no-infinities</item>
+      <item>&amp;no-nans</item>
+      <item>&amp;non-continuable</item>
+      <item>&amp;serious</item>
+      <item>&amp;syntax</item>
+      <item>&amp;undefined</item>
+      <item>&amp;violation</item>
+      <item>&amp;warning</item>
+      <item>&amp;who</item>
+      <item>&amp;xcond</item>
+      <item>abs</item>
+      <item>acos</item>
+      <item>and</item>
+      <item>angle</item>
+      <item>append</item>
+      <item>apply</item>
+      <item>applymap</item>
+      <item>asin</item>
+      <item>assert</item>
+      <item>assertion-violation</item>
+      <item>assertion-violation?</item>
+      <item>assoc</item>
+      <item>assp</item>
+      <item>assq</item>
+      <item>assv</item>
+      <item>atan</item>
+      <item>begin</item>
+      <item>binary-port?</item>
+      <item>bitwise-and</item>
+      <item>bitwise-arithmetic-shift-left</item>
+      <item>bitwise-arithmetic-shift-right</item>
+      <item>bitwise-arithmetic-shift</item>
+      <item>bitwise-bit-count</item>
+      <item>bitwise-bit-field</item>
+      <item>bitwise-bit-set?</item>
+      <item>bitwise-copy-bit-field</item>
+      <item>bitwise-copy-bit</item>
+      <item>bitwise-first-bit-set</item>
+      <item>bitwise-if</item>
+      <item>bitwise-ior</item>
+      <item>bitwise-length</item>
+      <item>bitwise-not</item>
+      <item>bitwise-reverse-bit-field</item>
+      <item>bitwise-rotate-bit-field</item>
+      <item>bitwise-xor</item>
+      <item>boolean=?</item>
+      <item>boolean?</item>
+      <item>bound-identifier=?</item>
+      <item>break</item>
+      <item>buffer-mode</item>
+      <item>buffer-mode?</item>
+      <item>bytevector-&gt;sint-list</item>
+      <item>bytevector-&gt;string</item>
+      <item>bytevector-&gt;u8-list</item>
+      <item>bytevector-&gt;uint-list</item>
+      <item>bytevector-copy!</item>
+      <item>bytevector-copy</item>
+      <item>bytevector-fill!</item>
+      <item>bytevector-ieee-double-native-ref</item>
+      <item>bytevector-ieee-double-native-set!</item>
+      <item>bytevector-ieee-double-ref</item>
+      <item>bytevector-ieee-double-set!</item>
+      <item>bytevector-ieee-single-native-ref</item>
+      <item>bytevector-ieee-single-native-set!</item>
+      <item>bytevector-ieee-single-ref</item>
+      <item>bytevector-ieee-single-set!</item>
+      <item>bytevector-length</item>
+      <item>bytevector-s16-native-ref</item>
+      <item>bytevector-s16-native-set!</item>
+      <item>bytevector-s16-ref</item>
+      <item>bytevector-s16-set!</item>
+      <item>bytevector-s32-native-ref</item>
+      <item>bytevector-s32-native-set!</item>
+      <item>bytevector-s32-ref</item>
+      <item>bytevector-s32-set!</item>
+      <item>bytevector-s64-native-ref</item>
+      <item>bytevector-s64-native-set!</item>
+      <item>bytevector-s64-ref</item>
+      <item>bytevector-s64-set!</item>
+      <item>bytevector-s8-ref</item>
+      <item>bytevector-s8-set!</item>
+      <item>bytevector-sint-ref</item>
+      <item>bytevector-sint-set!</item>
+      <item>bytevector-u16-native-ref</item>
+      <item>bytevector-u16-native-set!</item>
+      <item>bytevector-u16-ref</item>
+      <item>bytevector-u16-set!</item>
+      <item>bytevector-u32-native-ref</item>
+      <item>bytevector-u32-native-set!</item>
+      <item>bytevector-u32-ref</item>
+      <item>bytevector-u32-set!</item>
+      <item>bytevector-u64-native-ref</item>
+      <item>bytevector-u64-native-set!</item>
+      <item>bytevector-u64-ref</item>
+      <item>bytevector-u64-set!</item>
+      <item>bytevector-u8-ref</item>
+      <item>bytevector-u8-set!</item>
+      <item>bytevector-uint-ref</item>
+      <item>bytevector-uint-set!</item>
+      <item>bytevector=?</item>
+      <item>bytevector?</item>
+      <item>caaaar</item>
+      <item>caaadr</item>
+      <item>caaar</item>
+      <item>caadar</item>
+      <item>caaddr</item>
+      <item>caadr</item>
+      <item>caar</item>
+      <item>cadaar</item>
+      <item>cadadr</item>
+      <item>cadar</item>
+      <item>caddar</item>
+      <item>cadddr</item>
+      <item>caddr</item>
+      <item>cadr</item>
+      <item>call-with-bytevector-output-port</item>
+      <item>call-with-current-continuation</item>
+      <item>call-with-input-file</item>
+      <item>call-with-output-file</item>
+      <item>call-with-port</item>
+      <item>call-with-string-output-port</item>
+      <item>call-with-values</item>
+      <item>call/cc</item>
+      <item>let/cc</item>
+      <item>car</item>
+      <item>case-lambda</item>
+      <item>case</item>
+      <item>catch</item>
+      <item>cdaaar</item>
+      <item>cdaadr</item>
+      <item>cdaar</item>
+      <item>cdadar</item>
+      <item>cdaddr</item>
+      <item>cdadr</item>
+      <item>cdar</item>
+      <item>cddaar</item>
+      <item>cddadr</item>
+      <item>cddar</item>
+      <item>cdddar</item>
+      <item>cddddr</item>
+      <item>cdddr</item>
+      <item>cddr</item>
+      <item>cdr</item>
+      <item>ceiling</item>
+      <item>char&gt;=?</item>
+      <item>char&gt;?</item>
+      <item>char&lt;=?</item>
+      <item>char&lt;?</item>
+      <item>char&lt;?c</item>
+      <item>char-&gt;integer</item>
+      <item>char-alphabetic?</item>
+      <item>char-ci&gt;=?</item>
+      <item>char-ci&gt;?</item>
+      <item>char-ci&lt;=?</item>
+      <item>char-ci&lt;?</item>
+      <item>char-ci=?</item>
+      <item>char-downcase</item>
+      <item>char-foldcase</item>
+      <item>char-general-category</item>
+      <item>char-lower-case?</item>
+      <item>char-numeric?</item>
+      <item>char-ready?</item>
+      <item>char-title-case?</item>
+      <item>char-titlecase</item>
+      <item>char-upcase</item>
+      <item>char-upper-case?</item>
+      <item>char-whitespace?</item>
+      <item>char=?</item>
+      <item>char?</item>
+      <item>close-input-port</item>
+      <item>close-output-port</item>
+      <item>close-port</item>
+      <item>complex?</item>
+      <item>cond</item>
+      <item>condition-accessor</item>
+      <item>condition-irritants</item>
+      <item>condition-message</item>
+      <item>condition-predicate</item>
+      <item>condition-who</item>
+      <item>condition</item>
+      <item>condition?</item>
+      <item>cons*</item>
+      <item>cons</item>
+      <item>continue</item>
+      <item>cos</item>
+      <item>current-error-port</item>
+      <item>current-input-port</item>
+      <item>current-output-port</item>
+      <item>datum-&gt;syntax</item>
+      <item>define-condition-type</item>
+      <item>define-enumeration</item>
+      <item>define-record-type</item>
+      <item>delete-file</item>
+      <item>denominator</item>
+      <item>display</item>
+      <item>div-and-mod</item>
+      <item>div0-and-mod0</item>
+      <item>div0</item>
+      <item>div</item>
+      <item>do</item>
+      <item>dynamic-wind</item>
+      <item>else</item>
+      <item>endianness</item>
+      <item>enum-set-&gt;list</item>
+      <item>enum-set-complement</item>
+      <item>enum-set-constructor</item>
+      <item>enum-set-difference</item>
+      <item>enum-set-indexer</item>
+      <item>enum-set-intersection</item>
+      <item>enum-set-member?</item>
+      <item>enum-set-projection</item>
+      <item>enum-set-subset?</item>
+      <item>enum-set-union</item>
+      <item>enum-set-universe</item>
+      <item>enum-set=?</item>
+      <item>eof-object</item>
+      <item>eof-object?</item>
+      <item>eol-style</item>
+      <item>eq?</item>
+      <item>equal-hash</item>
+      <item>equal?</item>
+      <item>eqv?</item>
+      <item>error-handling-mode</item>
+      <item>error</item>
+      <item>error?</item>
+      <item>eval</item>
+      <item>even?</item>
+      <item>exact-&gt;inexact</item>
+      <item>exact->inexact</item>
+      <item>exact-integer-sqrt</item>
+      <item>exact</item>
+      <item>exact?</item>
+      <item>exp</item>
+      <item>expt</item>
+      <item>file-exists?</item>
+      <item>file-options</item>
+      <item>filter</item>
+      <item>find</item>
+      <item>finite?</item>
+      <item>fixnum-&gt;flonum</item>
+      <item>fixnum-width</item>
+      <item>fixnum?</item>
+      <item>fl&gt;=?</item>
+      <item>fl&gt;?</item>
+      <item>fl&lt;=?</item>
+      <item>fl&lt;?</item>
+      <item>fl*</item>
+      <item>fl+</item>
+      <item>fl-</item>
+      <item>fl/</item>
+      <item>fl=?</item>
+      <item>flabs</item>
+      <item>flacos</item>
+      <item>flasin</item>
+      <item>flatan</item>
+      <item>flceiling</item>
+      <item>flcos</item>
+      <item>fldenominator</item>
+      <item>fldiv-and-mod</item>
+      <item>fldiv0-and-mod0</item>
+      <item>fldiv0</item>
+      <item>fldiv</item>
+      <item>fleven?</item>
+      <item>flexp</item>
+      <item>flexpt</item>
+      <item>flfinite?</item>
+      <item>flfloor</item>
+      <item>flinfinite?</item>
+      <item>flinteger?</item>
+      <item>fllog</item>
+      <item>flmax</item>
+      <item>flmin</item>
+      <item>flmod0</item>
+      <item>flmod</item>
+      <item>flnan?</item>
+      <item>flnegative?</item>
+      <item>flnumerator</item>
+      <item>flodd?</item>
+      <item>flonum?</item>
+      <item>floor</item>
+      <item>flpositive?</item>
+      <item>flround</item>
+      <item>flsin</item>
+      <item>flsqrt</item>
+      <item>fltan</item>
+      <item>fltruncate</item>
+      <item>flush-output-port</item>
+      <item>flzero?</item>
+      <item>for-each</item>
+      <item>force</item>
+      <item>free-identifier=?</item>
+      <item>fx&gt;=?</item>
+      <item>fx&gt;?</item>
+      <item>fx&lt;=?</item>
+      <item>fx&lt;?</item>
+      <item>fx*/carry</item>
+      <item>fx*</item>
+      <item>fx+/carry</item>
+      <item>fx+</item>
+      <item>fx-/carry</item>
+      <item>fx-</item>
+      <item>fx=?</item>
+      <item>fxand</item>
+      <item>fxarithmetic-shift-left</item>
+      <item>fxarithmetic-shift-right</item>
+      <item>fxarithmetic-shift</item>
+      <item>fxbit-count</item>
+      <item>fxbit-field</item>
+      <item>fxbit-set?</item>
+      <item>fxcopy-bit-field</item>
+      <item>fxcopy-bit</item>
+      <item>fxdiv-and-mod</item>
+      <item>fxdiv0-and-mod0</item>
+      <item>fxdiv0</item>
+      <item>fxdiv</item>
+      <item>fxeven?</item>
+      <item>fxfirst-bit-set</item>
+      <item>fxif</item>
+      <item>fxior</item>
+      <item>fxlength</item>
+      <item>fxmax</item>
+      <item>fxmin</item>
+      <item>fxmod0</item>
+      <item>fxmod</item>
+      <item>fxnegative?</item>
+      <item>fxnot</item>
+      <item>fxodd?</item>
+      <item>fxpositive?</item>
+      <item>fxreverse-bit-field</item>
+      <item>fxrotate-bit-field</item>
+      <item>fxxor</item>
+      <item>fxzero?</item>
+      <item>gcd</item>
+      <item>generate-temporaries</item>
+      <item>get-bytevector-all</item>
+      <item>get-bytevector-n!</item>
+      <item>get-bytevector-n</item>
+      <item>get-bytevector-some</item>
+      <item>get-char</item>
+      <item>get-datum</item>
+      <item>get-line</item>
+      <item>get-string-all</item>
+      <item>get-string-n!</item>
+      <item>get-string-n</item>
+      <item>get-u8</item>
+      <item>greatest-fixnum</item>
+      <item>guard</item>
+      <item>har-ci&lt;?</item>
+      <item>hashtable-clear!</item>
+      <item>hashtable-contains?</item>
+      <item>hashtable-copy</item>
+      <item>hashtable-delete!</item>
+      <item>hashtable-entries</item>
+      <item>hashtable-equivalence-function</item>
+      <item>hashtable-hash-function</item>
+      <item>hashtable-keys</item>
+      <item>hashtable-mutable?</item>
+      <item>hashtable-ref</item>
+      <item>hashtable-set!</item>
+      <item>hashtable-size</item>
+      <item>hashtable-update!</item>
+      <item>hashtable?</item>
+      <item>i/o-decoding-error?</item>
+      <item>i/o-encoding-error-char</item>
+      <item>i/o-encoding-error?</item>
+      <item>i/o-error-filename</item>
+      <item>i/o-error-port</item>
+      <item>i/o-error-position</item>
+      <item>i/o-error?</item>
+      <item>i/o-file-already-exists-error?</item>
+      <item>i/o-file-does-not-exist-error?</item>
+      <item>i/o-file-is-read-only-error?</item>
+      <item>i/o-file-protection-error?</item>
+      <item>i/o-filename-error?</item>
+      <item>i/o-invalid-position-error?</item>
+      <item>i/o-port-error?</item>
+      <item>i/o-read-error?</item>
+      <item>i/o-write-error?</item>
+      <item>identifier-syntax</item>
+      <item>identifier?</item>
+      <item>if</item>
+      <item>imag-part</item>
+      <item>implementation-restriction-violation?</item>
+      <item>inexact-&gt;exact</item>
+      <item>inexact</item>
+      <item>inexact?</item>
+      <item>infinite?</item>
+      <item>input-port?</item>
+      <item>integer-&gt;char</item>
+      <item>integer-valued?</item>
+      <item>integer?</item>
+      <item>interaction-environment</item>
+      <item>irritants-condition?</item>
+      <item>lambda</item>
+      <item>latin-1-codec</item>
+      <item>lcm</item>
+      <item>least-fixnum</item>
+      <item>length</item>
+      <item>let*-values</item>
+      <item>let*</item>
+      <item>let-syntax</item>
+      <item>let-values</item>
+      <item>let</item>
+      <item>letrec*</item>
+      <item>letrec-syntax</item>
+      <item>letrec</item>
+      <item>lexical-violation?</item>
+      <item>list-&gt;string</item>
+      <item>list-&gt;vector</item>
+      <item>list-ref</item>
+      <item>list-sort</item>
+      <item>list-tail</item>
+      <item>list</item>
+      <item>list?</item>
+      <item>load</item>
+      <item>log</item>
+      <item>lookahead-char</item>
+      <item>lookahead-u8</item>
+      <item>map</item>
+      <item>magnitude</item>
+      <item>make-assertion-violation</item>
+      <item>make-bytevector</item>
+      <item>make-custom-binary-input-port</item>
+      <item>make-custom-binary-input/output-port</item>
+      <item>make-custom-binary-output-port</item>
+      <item>make-custom-textual-input-port</item>
+      <item>make-custom-textual-input/output-port</item>
+      <item>make-custom-textual-output-port</item>
+      <item>make-enumeration</item>
+      <item>make-eq-hashtable</item>
+      <item>make-eqv-hashtable</item>
+      <item>make-error</item>
+      <item>make-hashtable</item>
+      <item>make-i/o-decoding-error</item>
+      <item>make-i/o-encoding-error</item>
+      <item>make-i/o-error</item>
+      <item>make-i/o-file-already-exists-error</item>
+      <item>make-i/o-file-does-not-exist-error</item>
+      <item>make-i/o-file-is-read-only-error</item>
+      <item>make-i/o-file-protection-error</item>
+      <item>make-i/o-filename-error</item>
+      <item>make-i/o-invalid-position-error</item>
+      <item>make-i/o-port-error</item>
+      <item>make-i/o-read-error</item>
+      <item>make-i/o-write-error</item>
+      <item>make-implementation-restriction-violation</item>
+      <item>make-irritants-condition</item>
+      <item>make-lexical-violation</item>
+      <item>make-message-condition</item>
+      <item>make-no-infinities-violation</item>
+      <item>make-no-nans-violation</item>
+      <item>make-non-continuable-violation</item>
+      <item>make-polar</item>
+      <item>make-record-constructor-descriptor</item>
+      <item>make-record-type-descriptor</item>
+      <item>make-rectangular</item>
+      <item>make-serious-condition</item>
+      <item>make-string</item>
+      <item>make-syntax-violation</item>
+      <item>make-transcoder</item>
+      <item>make-undefined-violation</item>
+      <item>make-variable-transformer</item>
+      <item>make-vector</item>
+      <item>make-violation</item>
+      <item>make-warning</item>
+      <item>make-who-condition</item>
+      <item>max</item>
+      <item>member</item>
+      <item>memp</item>
+      <item>memq</item>
+      <item>memv</item>
+      <item>message-condition?</item>
+      <item>min</item>
+      <item>mod0</item>
+      <item>mod</item>
+      <item>modulo</item>
+      <item>nan?</item>
+      <item>native-endianness</item>
+      <item>native-eol-style</item>
+      <item>native-transcoder</item>
+      <item>negative?</item>
+      <item>newline</item>
+      <item>no-infinities-violation?</item>
+      <item>no-nans-violation?</item>
+      <item>non-continuable-violation?</item>
+      <item>not</item>
+      <item>null-environment</item>
+      <item>null?</item>
+      <item>number-&gt;string</item>
+      <item>number->string</item>
+      <item>number?</item>
+      <item>numerator</item>
+      <item>odd?</item>
+      <item>open-bytevector-input-port</item>
+      <item>open-bytevector-output-port</item>
+      <item>open-file-input-port</item>
+      <item>open-file-input/output-port</item>
+      <item>open-file-output-port</item>
+      <item>open-input-file</item>
+      <item>open-output-file</item>
+      <item>open-string-input-port</item>
+      <item>open-string-output-port</item>
+      <item>or</item>
+      <item>output-port-buffer-mode</item>
+      <item>output-port?</item>
+      <item>pair?</item>
+      <item>partition</item>
+      <item>peek-char</item>
+      <item>port-eof?</item>
+      <item>port-has-port-position?</item>
+      <item>port-has-set-port-position!?</item>
+      <item>port-position</item>
+      <item>port-transcoder</item>
+      <item>port?</item>
+      <item>positive?</item>
+      <item>procedure?</item>
+      <item>put-bytevector</item>
+      <item>put-char</item>
+      <item>put-datum</item>
+      <item>put-string</item>
+      <item>put-u8</item>
+      <item>quasiquote</item>
+      <item>quasisyntax</item>
+      <item>quote</item>
+      <item>quotient</item>
+      <item>raise-continuable</item>
+      <item>raise</item>
+      <item>rational-valued?</item>
+      <item>rational?</item>
+      <item>rationalize</item>
+      <item>read-char</item>
+      <item>read</item>
+      <item>real-&gt;flonum</item>
+      <item>real-part</item>
+      <item>real-valued?</item>
+      <item>real?</item>
+      <item>record-accessor</item>
+      <item>record-constructor-descriptor</item>
+      <item>record-constructor</item>
+      <item>record-field-mutable?</item>
+      <item>record-mutator</item>
+      <item>record-predicate</item>
+      <item>record-rtd</item>
+      <item>record-type-descriptor</item>
+      <item>record-type-descriptor?</item>
+      <item>record-type-field-names</item>
+      <item>record-type-generative?</item>
+      <item>record-type-name</item>
+      <item>record-type-opaque?</item>
+      <item>record-type-parent</item>
+      <item>record-type-sealed?</item>
+      <item>record-type-uid</item>
+      <item>record?</item>
+      <item>remainder</item>
+      <item>remove</item>
+      <item>remp</item>
+      <item>remq</item>
+      <item>remv</item>
+      <item>reverse</item>
+      <item>round</item>
+      <item>scheme-report-environment</item>
+      <item>serious-condition?</item>
+      <item>set!</item>
+      <item>set-car!</item>
+      <item>set-cdr!</item>
+      <item>set-port-position!</item>
+      <item>simple-conditions</item>
+      <item>sin</item>
+      <item>sint-list-&gt;bytevector</item>
+      <item>sqrt</item>
+      <item>standard-error-port</item>
+      <item>standard-input-port</item>
+      <item>standard-output-port</item>
+      <item>string&gt;=?</item>
+      <item>string&gt;?</item>
+      <item>string&lt;=?</item>
+      <item>string&lt;?</item>
+      <item>string-&gt;bytevector</item>
+      <item>string-&gt;list</item>
+      <item>string-&gt;number</item>
+      <item>string-&gt;symbol</item>
+      <item>string-&gt;utf16</item>
+      <item>string-&gt;utf32</item>
+      <item>string-&gt;utf8</item>
+      <item>string-append</item>
+      <item>string-ci&gt;=?</item>
+      <item>string-ci&gt;?</item>
+      <item>string-ci&lt;=?</item>
+      <item>string-ci&lt;?</item>
+      <item>string-ci-hash</item>
+      <item>string-ci=?</item>
+      <item>string-copy</item>
+      <item>string-downcase</item>
+      <item>string-fill!</item>
+      <item>string-foldcase</item>
+      <item>string-hash</item>
+      <item>string-length</item>
+      <item>string-normalize-nfc</item>
+      <item>string-normalize-nfd</item>
+      <item>string-normalize-nfkc</item>
+      <item>string-normalize-nfkd</item>
+      <item>string-ref</item>
+      <item>string-set!</item>
+      <item>string-titlecase</item>
+      <item>string-upcase</item>
+      <item>string</item>
+      <item>string=?</item>
+      <item>string?</item>
+      <item>struct</item>
+      <item>substring</item>
+      <item>symbol-&gt;string</item>
+      <item>symbol-hash</item>
+      <item>symbol=?</item>
+      <item>symbol?</item>
+      <item>syntax-&gt;datum</item>
+      <item>syntax-case</item>
+      <item>syntax-rules</item>
+      <item>syntax-violation-form</item>
+      <item>syntax-violation-subform</item>
+      <item>syntax-violation</item>
+      <item>syntax-violation?</item>
+      <item>syntax</item>
+      <item>tan</item>
+      <item>textual-port?</item>
+      <item>transcoded-port</item>
+      <item>transcoder-codec</item>
+      <item>transcoder-eol-style</item>
+      <item>transcoder-error-handling-mode</item>
+      <item>transcript-off</item>
+      <item>transcript-on</item>
+      <item>truncate</item>
+      <item>u8-list-&gt;bytevector</item>
+      <item>uint-list-&gt;bytevector</item>
+      <item>undefined-violation?</item>
+      <item>unquote-splicing</item>
+      <item>unquote</item>
+      <item>unsyntax-splicing</item>
+      <item>unsyntax</item>
+      <item>utf-16-codec</item>
+      <item>utf-8-codec</item>
+      <item>utf16-&gt;string</item>
+      <item>utf32-&gt;string</item>
+      <item>utf8-&gt;string</item>
+      <item>values</item>
+      <item>vector-&gt;list</item>
+      <item>vector-&gt;listlist->vector</item>
+      <item>vector-fill!</item>
+      <item>vector-length</item>
+      <item>vector-ref</item>
+      <item>vector-set!</item>
+      <item>vector-sort!</item>
+      <item>vector-sort</item>
+      <item>vector</item>
+      <item>vector?</item>
+      <item>violation?</item>
+      <item>warning?</item>
+      <item>while</item>
+      <item>who-condition?</item>
+      <item>with-exception-handler</item>
+      <item>with-input-from-file</item>
+      <item>with-output-to-file</item>
+      <item>with-syntax</item>
+      <item>write-char</item>
+      <item>write</item>
+      <item>zero?</item>
+    </list>
+    <contexts>
+
+
+      <context name="Default" attribute="Normal" lineEndContext="#stay">
+        <DetectSpaces/>
+
+        <!-- "#lang x" line -->
+        <RegExpr attribute="Comment" String="^#lang.*" context="#stay" column="0"/>
+        <DetectChar attribute="Comment" context="hash" char="#" lookAhead="1"/>
+        <DetectChar attribute="Comment" context="semicolon" char=";" lookAhead="1"/>
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <Detect2Chars attribute="String" context="Template" char="&amp;" char1="{"/>
+        <AnyChar attribute="Brackets" context="#stay" String="(){}[]"/>
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Definition" context="function_decl" String="defines"/>
+        <keyword attribute="Operator" context="#stay" String="operators"/>
+        <RegExpr attribute="Normal" context="#stay" String="&symbol;"/>
+        <!-- s, f, d, l are extensions of Kawa -->
+        <RegExpr attribute="Float" context="#stay" String="[0-9]*+\.[0-9]++([esfdl][+-]?[0-9]++)?|[0-9]++[esfdl][+-]?[0-9]++"/>
+        <RegExpr attribute="Decimal" context="#stay" String="[0-9]++"/>
+      </context>
+
+
+      <context name="Template" attribute="String" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar attribute="String" context="#pop" char="}"/>
+        <DetectChar attribute="String" context="Template" char="{"/>
+        <DetectChar attribute="Char" context="TemplateTemplate" char="&amp;" lookAhead="1"/>
+      </context>
+      <context name="TemplateTemplate" attribute="String" lineEndContext="#pop">
+        <Detect2Chars attribute="Operator" context="#stay" char="&amp;" char1="|" firstNonSpace="1"/>
+        <Detect2Chars attribute="Operator" context="#pop!NotNewlineTemplate" char="&amp;" char1="-"/>
+        <Detect2Chars attribute="Extension" context="#pop!FormatTemplate" char="&amp;" char1="~"/>
+        <StringDetect attribute="Comment" context="#pop!MultiLineComment" String="&amp;#|" beginRegion="comment"/>
+        <RegExpr attribute="Char" context="#pop!EndCharTemplate" String="(&amp;(?:#(?:[0-9]+|x[0-9a-fA-F]+)|[_a-zA-Z][-:_a-zA-Z0-9]*))" lookAhead="1"/>
+        <DetectChar attribute="String" context="#pop" char="&amp;"/>
+      </context>
+      <context name="FormatTemplate" attribute="Extension" lineEndContext="#pop" fallthroughContext="#pop">
+        <AnyChar attribute="Extension" context="#pop" String="({["/>
+        <AnyChar attribute="Extension" context="FormatTemplate" String=")}]"/>
+        <RegExpr attribute="Extension" context="#pop" String="[^(){}\[\]]+"/>
+      </context>
+      <context name="NotNewlineTemplate" attribute="String" lineEndContext="#pop" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <Detect2Chars attribute="Comment" context="#pop!MultiLineComment" char="#" char1="|" beginRegion="comment"/>
+      </context>
+      <context name="EndCharTemplate" attribute="Comment" lineEndContext="#stay">
+        <StringDetect attribute="Char" context="#pop" String="%1;" dynamic="1"/>
+        <StringDetect attribute="Error" context="#pop" String="%1" dynamic="1"/>
+      </context>
+
+
+      <context name="semicolon" attribute="Comment" lineEndContext="#stay" fallthroughContext="#pop!comment">
+        <RegExpr attribute="Region Marker" context="#pop" String=";+\s*BEGIN\b.*" beginRegion="region"/>
+        <RegExpr attribute="Region Marker" context="#pop" String=";+\s*END\b.*" endRegion="region"/>
+      </context>
+      <context name="comment" attribute="Comment" lineEndContext="#pop">
+        <DetectSpaces/>
+        <IncludeRules context="##Comments"/>
+        <DetectIdentifier/>
+      </context>
+
+      <context name="hash" attribute="Normal" lineEndContext="#stay">
+        <Detect2Chars attribute="Decimal" context="#pop" char="#" char1="t"/>
+        <Detect2Chars attribute="Decimal" context="#pop" char="#" char1="T"/>
+        <Detect2Chars attribute="Decimal" context="#pop" char="#" char1="f"/>
+        <Detect2Chars attribute="Decimal" context="#pop" char="#" char1="F"/>
+        <Detect2Chars attribute="Base Prefix" context="#pop!Num16" char="#" char1="x"/>
+        <Detect2Chars attribute="Base Prefix" context="#pop!Num8" char="#" char1="o"/>
+        <Detect2Chars attribute="Base Prefix" context="#pop!Num2" char="#" char1="b"/>
+        <Detect2Chars attribute="Base Prefix" context="#pop!Num10" char="#" char1="e"/>
+        <Detect2Chars attribute="Base Prefix" context="#pop!Num10" char="#" char1="i"/>
+        <Detect2Chars attribute="Base Prefix" context="#pop!Num10" char="#" char1="d"/>
+        <Detect2Chars attribute="Char" context="#pop!Char" char="#" char1="\"/>
+        <Detect2Chars attribute="Comment" context="#pop!DatumComment" char="#" char1=";"/>
+        <Detect2Chars attribute="Comment" context="#pop!MultiLineComment" char="#" char1="|" beginRegion="comment"/>
+        <Detect2Chars attribute="Comment" context="#pop!MultiLineGuileCommentOrExtension" char="#" char1="!" lookAhead="1"/>
+
+        <!-- Kawa extension -->
+        <Detect2Chars attribute="Operator" context="#pop!Regex" char="#" char1="/"/>
+        <Detect2Chars attribute="XML Tag" context="#pop!XML" char="#" char1="&lt;" lookAhead="1"/>
+
+        <DetectChar attribute="Normal" context="#pop" char="#"/>
+      </context>
+
+
+      <context name="XML" attribute="XML Tag" lineEndContext="#pop">
+        <StringDetect attribute="XML Tag" context="#pop!XMLProc" String="#&lt;?"/>
+        <StringDetect attribute="XML Comment" context="#pop!XMLComment" String="#&lt;!--"/>
+        <StringDetect attribute="XML Tag" context="#pop!XMLCDATA" String="#&lt;![CDATA["/>
+        <StringDetect attribute="XML Tag" context="#pop!XMLTagExpr1" String="#&lt;("/>
+        <StringDetect attribute="XML Tag" context="#pop!XMLTagExpr2" String="#&lt;{"/>
+        <RegExpr attribute="XML Tag" context="#pop!XMLTag" String="#&lt;[^\s>]++"/>
+        <Detect2Chars attribute="Error" context="#pop" char="#" char1="&lt;"/>
+      </context>
+
+      <context name="XMLTagExpr1" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="XML Tag" context="#pop!XMLTag" char=")"/>
+        <IncludeRules context="Default"/>
+      </context>
+      <context name="XMLTagExpr2" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="XML Tag" context="#pop!XMLTag" char="}"/>
+        <IncludeRules context="Default"/>
+      </context>
+
+      <context name="XMLTag" attribute="XML Attribute" lineEndContext="#stay">
+        <DetectSpaces/>
+        <Detect2Chars attribute="XML Tag" context="#pop" char="/" char1=">"/>
+        <DetectChar attribute="XML Tag" context="#pop!XMLInnerTag" char=">"/>
+        <RegExpr attribute="XML Attribute" context="XMLAttribute" String="[^\s=/>]++\s*"/>
+      </context>
+      <context name="XMLInnerTag" attribute="XML Tag" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar attribute="XML String" context="XMLEscape" char="&amp;" lookAhead="1"/>
+        <DetectChar attribute="XML Tag" context="XMLFindXML" char="&lt;" lookAhead="1"/>
+      </context>
+      <context name="XMLFindXML" attribute="String" lineEndContext="#stay">
+        <Detect2Chars attribute="XML Tag" context="#pop!XMLProc" char="&lt;" char1="?"/>
+        <Detect2Chars attribute="XML Tag" context="#pop!XMLTagExpr1" char="&lt;" char1="("/>
+        <Detect2Chars attribute="XML Tag" context="#pop!XMLTagExpr2" char="&lt;" char1="{"/>
+        <StringDetect attribute="XML Comment" context="#pop!XMLComment" String="&lt;!--"/>
+        <StringDetect attribute="XML Tag" context="#pop!XMLCDATA" String="&lt;![CDATA["/>
+        <Detect2Chars attribute="XML Tag" context="#pop!XMLCloseTag" char="&lt;" char1="/" lookAhead="1"/>
+        <RegExpr attribute="XML Tag" context="#pop!XMLTag" String="&lt;[^\s>]++"/>
+        <DetectChar attribute="XML Error" context="#pop" char="&lt;"/>
+      </context>
+      <context name="XMLCloseTag" attribute="String" lineEndContext="#pop#pop">
+        <RegExpr attribute="XML Tag" context="#pop#pop" String="&lt;/[^\s>]*>"/>
+        <Detect2Chars attribute="XML Error" context="#pop#pop" char="&lt;" char1="/"/>
+      </context>
+
+      <context name="XMLAttribute" attribute="XML Attribute" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <DetectChar attribute="XML Attribute" context="XMLAttributeValue" char="="/>
+      </context>
+      <context name="XMLAttributeValue" attribute="XML Attribute" lineEndContext="#stay" fallthroughContext="#pop#pop">
+        <DetectSpaces/>
+        <DetectChar attribute="XML String" context="XMLDQ" char="&quot;"/>
+        <DetectChar attribute="XML String" context="XMLSQ" char="'"/>
+      </context>
+      <context name="XMLDQ" attribute="XML String" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar attribute="XML String" context="#pop#pop#pop" char="&quot;"/>
+        <IncludeRules context="XMLStringEscape"/>
+      </context>
+      <context name="XMLSQ" attribute="XML String" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar attribute="XML String" context="#pop#pop#pop" char="'"/>
+        <IncludeRules context="XMLStringEscape"/>
+      </context>
+      <context name="XMLStringEscape" attribute="XML String" lineEndContext="#stay">
+        <DetectChar attribute="XML String" context="XMLEscape" char="&amp;" lookAhead="1"/>
+        <DetectChar attribute="XML Error" context="#stay" char="&lt;"/>
+      </context>
+      <context name="XMLEscape" attribute="XML String" lineEndContext="#stay">
+        <RegExpr attribute="XML Entity" context="#pop" String="&amp;(?:lt|gt|amp|quot|apos|#[0-9]+|x[0-9a-fA-F]+);"/>
+        <DetectChar attribute="XML Error" context="#pop" char="&amp;"/>
+      </context>
+      <context name="XMLProc" attribute="XML Attribute" lineEndContext="#stay" fallthroughContext="XMLProcAttrs">
+        <RegExpr attribute="XML Tag" context="XMLProcAttrs" String="[^\s?]+"/>
+      </context>
+      <context name="XMLProcAttrs" attribute="XML Attribute" lineEndContext="#stay">
+        <Detect2Chars attribute="XML Tag" context="#pop#pop" char="?" char1=">"/>
+      </context>
+
+      <context name="XMLComment" attribute="XML Comment" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <Detect2Chars attribute="XML Comment" context="XMLCommentCheck" char="-" char1="-" lookAhead="1"/>
+      </context>
+      <context name="XMLCommentCheck" attribute="Comment" lineEndContext="#stay">
+        <StringDetect attribute="XML Tag" context="#pop#pop" String="-->"/>
+        <Detect2Chars attribute="XML Error" context="#pop" char="-" char1="-"/>
+      </context>
+
+      <context name="XMLCDATA" attribute="XML CDATA" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <StringDetect attribute="XML Tag" context="#pop" String="]]>"/>
+      </context>
+
+
+      <context name="Regex" attribute="Extension" lineEndContext="#pop" fallthroughContext="#pop">
+        <RegExpr attribute="Extension" context="RegexEnd" String="&regex;"/>
+      </context>
+      <context name="RegexEnd" attribute="Extension" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
+        <DetectChar attribute="Operator" context="RegexModifier" char="/"/>
+      </context>
+      <context name="RegexModifier" attribute="Extension" lineEndContext="#pop#pop#pop" fallthroughContext="#pop#pop#pop">
+        <AnyChar attribute="Extension" context="#stay" String="ism"/>
+      </context>
+
+
+      <context name="Num2" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop!Digit2">
+        <IncludeRules context="NumPrefix"/>
+        <AnyChar attribute="Function" context="#pop!Digit2" String="+-"/>
+      </context>
+      <context name="Digit2" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop">
+        <AnyChar attribute="Decimal" context="#stay" String="01"/>
+      </context>
+
+      <context name="Num8" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop!Digit8">
+        <IncludeRules context="NumPrefix"/>
+        <AnyChar attribute="Function" context="#pop!Digit8" String="+-"/>
+      </context>
+      <context name="Digit8" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop">
+        <AnyChar attribute="Decimal" context="#stay" String="01234567"/>
+      </context>
+
+      <context name="Num10" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop!Digit10">
+        <IncludeRules context="NumPrefix"/>
+        <AnyChar attribute="Function" context="#pop!Digit10" String="+-"/>
+      </context>
+      <context name="Digit10" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop">
+        <!-- s, f, d, l are extensions of Kawa -->
+        <RegExpr attribute="Float" context="#pop" String="[0-9]*+\.[0-9]++([esfdl][+-]?[0-9]++)?|[0-9]++[esfdl][+-]?[0-9]++"/>
+        <RegExpr attribute="Decimal" context="#pop" String="[0-9]++"/>
+      </context>
+
+      <context name="Num16" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop!Digit16">
+        <IncludeRules context="NumPrefix"/>
+        <AnyChar attribute="Function" context="#pop!Digit16" String="+-"/>
+      </context>
+      <context name="Digit16" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop">
+        <RegExpr attribute="Decimal" context="#pop" String="[0-9a-fA-F]+"/>
+      </context>
+
+      <context name="NumPrefix" attribute="Decimal" lineEndContext="#pop">
+        <Detect2Chars attribute="Decimal" context="#stay" char="#" char1="e"/>
+        <Detect2Chars attribute="Decimal" context="#stay" char="#" char1="i"/>
+      </context>
+
+
+      <context name="Char" attribute="Char" lineEndContext="#pop">
+        <DetectChar attribute="Char" context="HexChar" char="x"/>
+        <keyword attribute="Char" context="#pop" String="characters" insensitive="1"/>
+        <RegExpr attribute="Char" context="#pop" String=".(?!\w)"/>
+        <RegExpr attribute="Error" context="#pop" String="\w+|."/>
+      </context>
+      <context name="HexChar" attribute="Char" lineEndContext="#pop#pop">
+        <RegExpr attribute="Char" context="#pop#pop" String="[0-9a-fA-F]+"/>
+      </context>
+
+
+      <context name="MultiLineGuileCommentOrExtension" attribute="Comment" lineEndContext="#stay">
+        <RegExpr attribute="Extension" context="#pop" String="#!\w+"/>
+        <Detect2Chars attribute="Comment" context="#pop!MultiLineGuileComment" char="#" char1="!" beginRegion="comment"/>
+      </context>
+
+      <context name="MultiLineGuileComment" attribute="Comment" lineEndContext="#stay" fallthroughContext="comment">
+        <RegExpr attribute="Comment" context="#pop" String="^!#\s*$" endRegion="comment" column="0"/>
+      </context>
+
+      <context name="MultiLineComment" attribute="Comment" lineEndContext="#stay">
+        <DetectSpaces/>
+        <Detect2Chars attribute="Comment" context="#pop" char="|" char1="#" endRegion="comment"/>
+        <Detect2Chars attribute="Comment" context="MultiLineComment" char="#" char1="|" beginRegion="comment"/>
+        <IncludeRules context="##Comments"/>
+        <DetectIdentifier/>
+      </context>
+
+
+      <context name="DatumComment" attribute="Comment" lineEndContext="#pop" fallthroughContext="#pop">
+        <DetectChar attribute="Comment" context="#pop!DatumCommentParent" char="(" beginRegion="comment"/>
+        <DetectChar attribute="Comment" context="#pop!DatumCommentBracket" char="[" beginRegion="comment"/>
+        <DetectChar attribute="Comment" context="#pop!DatumCommentBrace" char="{" beginRegion="comment"/>
+        <DetectChar attribute="Comment" context="#pop!DatumCommentString" char="&quot;"/>
+
+        <DetectChar attribute="Comment" context="#pop!DatumCommentHash" char="#"/>
+
+        <RegExpr attribute="Comment" context="#pop!DatumCommentExpr" String="[^{}\[\]()\s]+"/>
+      </context>
+      <context name="DatumCommentHash" attribute="Comment" lineEndContext="#pop" fallthroughContext="#pop">
+        <DetectChar attribute="Comment" context="#pop!DatumCommentRegex" char="/"/>
+        <DetectChar attribute="Comment" context="#pop!DatumCommentXML" char="&lt;"/>
+        <Detect2Chars attribute="Comment" context="#pop!DatumCommentTemplate" char="&amp;" char1="{"/>
+        <DetectIdentifier/>
+      </context>
+
+      <context name="DatumCommentTemplate" attribute="Comment" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar attribute="Comment" context="#pop" char="}"/>
+        <DetectChar attribute="Comment" context="DatumCommentTemplate" char="{"/>
+        <DetectChar attribute="Comment" context="DatumCommentTemplateTemplate" char="&amp;"/>
+      </context>
+      <context name="DatumCommentTemplateTemplate" attribute="Comment" lineEndContext="#pop" fallthroughContext="#pop">
+        <DetectChar attribute="Comment" context="#pop!DatumCommentParent2" char="("/>
+        <DetectChar attribute="Comment" context="#pop!DatumCommentBracket2" char="["/>
+        <Detect2Chars attribute="Comment" context="#pop!MultiLineComment" char="#" char1="|"/>
+        <DetectChar attribute="Comment" context="#pop!DatumCommentFormatTemplate" char="~"/>
+        <RegExpr attribute="Comment" context="#pop" String="&amp;(?:#(?:[0-9]+|x[0-9a-fA-F]+)|[_a-zA-Z][-:_a-zA-Z0-9]*);?"/>
+      </context>
+      <context name="DatumCommentFormatTemplate" attribute="Comment" lineEndContext="#pop" fallthroughContext="#pop">
+        <AnyChar attribute="Comment" context="#pop" String="({["/>
+        <AnyChar attribute="Comment" context="DatumCommentFormatTemplate" String=")}]"/>
+        <RegExpr attribute="Comment" context="#pop" String="[^(){}\[\]]+"/>
+      </context>
+
+      <context name="DatumCommentRegex" attribute="Comment" lineEndContext="#pop" fallthroughContext="#pop">
+        <RegExpr attribute="Comment" context="DatumCommentRegexEnd" String="&regex;"/>
+      </context>
+      <context name="DatumCommentRegexEnd" attribute="Comment" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
+        <DetectChar attribute="Comment" context="DatumCommentRegexModifier" char="/"/>
+      </context>
+      <context name="DatumCommentRegexModifier" attribute="Comment" lineEndContext="#pop#pop#pop" fallthroughContext="#pop#pop#pop">
+        <AnyChar attribute="Comment" context="#stay" String="ism"/>
+      </context>
+
+      <context name="DatumCommentXML" attribute="Comment" lineEndContext="#pop" fallthroughContext="#pop">
+        <DetectChar attribute="Comment" context="#pop!DatumCommentXMLProc" char="?"/>
+        <DetectChar attribute="Comment" context="#pop!DatumCommentXMLTagExpr1" char="("/>
+        <DetectChar attribute="Comment" context="#pop!DatumCommentXMLTagExpr2" char="{"/>
+        <Detect2Chars attribute="Comment" context="#pop" char="/" char1=">"/>
+        <StringDetect attribute="Comment" context="#pop!DatumCommentXMLComment" String="!--"/>
+        <StringDetect attribute="Comment" context="#pop!DatumCommentXMLCDATA" String="![CDATA["/>
+        <RegExpr attribute="Comment" context="#pop!DatumCommentXMLTag" String="[^\s>]++\s*"/>
+      </context>
+
+      <context name="DatumCommentXMLProc" attribute="Comment" lineEndContext="#stay">
+        <Detect2Chars attribute="Comment" context="#pop" char="?" char1=">"/>
+      </context>
+      <context name="DatumCommentXMLCDATA" attribute="Comment" lineEndContext="#stay">
+        <StringDetect attribute="Comment" context="#pop" String="]]>"/>
+      </context>
+      <context name="DatumCommentXMLComment" attribute="Comment" lineEndContext="#stay">
+        <StringDetect attribute="Comment" context="#pop" String="-->"/>
+      </context>
+      <context name="DatumCommentXMLTagExpr1" attribute="Comment" lineEndContext="#stay">
+        <DetectChar attribute="Comment" context="#pop!DatumCommentXMLTag" char=")"/>
+        <IncludeRules context="DatumCommentInExpr"/>
+      </context>
+      <context name="DatumCommentXMLTagExpr2" attribute="Comment" lineEndContext="#stay">
+        <DetectChar attribute="Comment" context="#pop!DatumCommentXMLTag" char="}"/>
+        <IncludeRules context="DatumCommentInExpr"/>
+      </context>
+
+      <context name="DatumCommentXMLTag" attribute="Comment" lineEndContext="#stay">
+        <DetectSpaces/>
+        <Detect2Chars attribute="Comment" context="#pop" char="/" char1=">"/>
+        <DetectChar attribute="Comment" context="#pop!DatumCommentXMLInnerTag" char=">"/>
+        <RegExpr attribute="Comment" context="DatumCommentXMLAttribute" String="[^\s=/>]++\s*"/>
+      </context>
+      <context name="DatumCommentXMLInnerTag" attribute="Comment" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar attribute="Comment" context="DatumCommentXMLEscape" char="&amp;" lookAhead="1"/>
+        <DetectChar attribute="Comment" context="DatumCommentXMLFindXML" char="&lt;" lookAhead="1"/>
+      </context>
+      <context name="DatumCommentXMLFindXML" attribute="Comment" lineEndContext="#stay">
+        <Detect2Chars attribute="Comment" context="#pop!DatumCommentXMLProc" char="&lt;" char1="?"/>
+        <Detect2Chars attribute="Comment" context="#pop!DatumCommentXMLTagExpr1" char="&lt;" char1="("/>
+        <Detect2Chars attribute="Comment" context="#pop!DatumCommentXMLTagExpr2" char="&lt;" char1="{"/>
+        <StringDetect attribute="Comment" context="#pop!DatumCommentXMLComment" String="&lt;!--"/>
+        <StringDetect attribute="Comment" context="#pop!DatumCommentXMLCDATA" String="&lt;![CDATA["/>
+        <Detect2Chars attribute="Comment" context="#pop!DatumCommentXMLCloseTag" char="&lt;" char1="/" lookAhead="1"/>
+        <RegExpr attribute="Comment" context="#pop!DatumCommentXMLTag" String="&lt;[^\s>]++"/>
+        <DetectChar attribute="Comment" context="#pop" char="&lt;"/>
+      </context>
+      <context name="DatumCommentXMLCloseTag" attribute="Comment" lineEndContext="#pop#pop">
+        <RegExpr attribute="Comment" context="#pop#pop" String="&lt;/[^\s>]*>"/>
+        <Detect2Chars attribute="XML Error" context="#pop#pop" char="&lt;" char1="/"/>
+      </context>
+
+      <context name="DatumCommentXMLAttribute" attribute="Comment" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <DetectChar attribute="Comment" context="DatumCommentXMLAttributeValue" char="="/>
+      </context>
+      <context name="DatumCommentXMLAttributeValue" attribute="Comment" lineEndContext="#stay" fallthroughContext="#pop#pop">
+        <DetectSpaces/>
+        <DetectChar attribute="Comment" context="DatumCommentXMLDQ" char="&quot;"/>
+        <DetectChar attribute="Comment" context="DatumCommentXMLSQ" char="'"/>
+      </context>
+      <context name="DatumCommentXMLDQ" attribute="Comment" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar attribute="Comment" context="#pop#pop#pop" char="&quot;"/>
+        <IncludeRules context="DatumCommentXMLStringEscape"/>
+      </context>
+      <context name="DatumCommentXMLSQ" attribute="Comment" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar attribute="Comment" context="#pop#pop#pop" char="'"/>
+        <IncludeRules context="DatumCommentXMLStringEscape"/>
+      </context>
+      <context name="DatumCommentXMLStringEscape" attribute="Comment" lineEndContext="#stay">
+        <DetectChar attribute="Comment" context="DatumCommentXMLEscape" char="&amp;" lookAhead="1"/>
+        <DetectChar attribute="XML Error" context="#stay" char="&lt;"/>
+      </context>
+
+      <context name="DatumCommentXMLEscape" attribute="Comment" lineEndContext="#stay">
+        <Detect2Chars attribute="Comment" context="#pop!DatumCommentParent2" char="&amp;" char1="("/>
+        <Detect2Chars attribute="Comment" context="#pop!DatumCommentBrace2" char="&amp;" char1="{"/>
+        <RegExpr attribute="Comment" context="#pop" String="&amp;(?:lt|gt|amp|quot|apos|#[0-9]+|x[0-9a-fA-F]+);"/>
+        <DetectChar attribute="XML Error" context="#pop" char="&amp;"/>
+      </context>
+
+      <context name="DatumCommentExpr" attribute="Comment" lineEndContext="#pop" fallthroughContext="#pop">
+        <DetectChar attribute="Comment" context="#pop!DatumCommentParent2" char="("/>
+        <DetectChar attribute="Comment" context="#pop!DatumCommentBrace2" char="{"/>
+        <DetectChar attribute="Comment" context="#pop!DatumCommentBracket2" char="["/>
+      </context>
+
+      <context name="DatumCommentString" attribute="Comment" lineEndContext="#stay">
+        <DetectChar attribute="Comment" context="#pop" char="&quot;"/>
+        <RegExpr attribute="Comment" context="#stay" String="(?:[^\\&quot;]++|\\.)++"/>
+      </context>
+
+      <context name="DatumCommentParent" attribute="Comment" lineEndContext="#stay">
+        <DetectChar attribute="Comment" context="#pop" char=")" endRegion="comment"/>
+        <IncludeRules context="DatumCommentInExpr"/>
+      </context>
+      <context name="DatumCommentParent2" attribute="Comment" lineEndContext="#stay">
+        <DetectChar attribute="Comment" context="#pop" char=")"/>
+        <IncludeRules context="DatumCommentInExpr"/>
+      </context>
+      <context name="DatumCommentBracket" attribute="Comment" lineEndContext="#stay">
+        <DetectChar attribute="Comment" context="#pop" char="]" endRegion="comment"/>
+        <IncludeRules context="DatumCommentInExpr"/>
+      </context>
+      <context name="DatumCommentBracket2" attribute="Comment" lineEndContext="#stay">
+        <DetectChar attribute="Comment" context="#pop" char="]"/>
+        <IncludeRules context="DatumCommentInExpr"/>
+      </context>
+      <context name="DatumCommentBrace" attribute="Comment" lineEndContext="#stay">
+        <DetectChar attribute="Comment" context="#pop" char="}" endRegion="comment"/>
+        <IncludeRules context="DatumCommentInExpr"/>
+      </context>
+      <context name="DatumCommentBrace2" attribute="Comment" lineEndContext="#stay">
+        <DetectChar attribute="Comment" context="#pop" char="}"/>
+        <IncludeRules context="DatumCommentInExpr"/>
+      </context>
+
+      <context name="DatumCommentInExpr" attribute="Comment" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar attribute="Comment" context="DatumCommentParent2" char="("/>
+        <DetectChar attribute="Comment" context="DatumCommentBrace2" char="{"/>
+        <DetectChar attribute="Comment" context="DatumCommentBracket2" char="["/>
+        <DetectChar attribute="Comment" context="DatumCommentString" char="&quot;"/>
+        <DetectChar attribute="Comment" context="DatumCommentHash" char="#"/>
+      </context>
+
+
+      <context name="String" attribute="String" lineEndContext="#stay">
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+        <DetectChar attribute="Char" context="EscapeString" char="\"/>
+      </context>
+      <context name="EscapeString" attribute="Char" lineEndContext="#pop" fallthroughContext="#pop">
+        <AnyChar attribute="Char" context="#pop" String="abfnrtv&quot;\"/>
+        <AnyChar attribute="Char" context="MultiLineString" String="&tab; "/>
+        <RegExpr attribute="Char" context="#pop" String="[xXu][0-9a-fA-F]+;|\\[0-7]{3}|(?:[MC]-|\^)?."/>
+      </context>
+      <context name="MultiLineString" attribute="String" lineEndContext="#stay" fallthroughContext="#pop#pop">
+        <DetectSpaces/>
+      </context>
+
+      <context name="function_decl" attribute="Function" lineEndContext="#stay">
+        <RegExpr attribute="Function" context="#pop" String="\s*[A-Za-z0-9-!$%&quot;*/:&lt;=>?~_^+.@]*\s*"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal"      defStyleNum="dsNormal"/>
+      <itemData name="Keyword"     defStyleNum="dsKeyword" spellChecking="0"/>
+      <itemData name="Definition"  defStyleNum="dsExtension" spellChecking="0"/>
+      <itemData name="Operator"    defStyleNum="dsOperator" spellChecking="0"/>
+      <itemData name="Function"    defStyleNum="dsFunction" spellChecking="0"/>
+      <itemData name="Base Prefix" defStyleNum="dsSpecialChar" spellChecking="0"/>
+      <itemData name="Decimal"     defStyleNum="dsDecVal" spellChecking="0"/>
+      <itemData name="Float"       defStyleNum="dsFloat" spellChecking="0"/>
+      <itemData name="Char"        defStyleNum="dsChar" spellChecking="0"/>
+      <itemData name="String"      defStyleNum="dsString"/>
+      <itemData name="Comment"     defStyleNum="dsComment"/>
+      <itemData name="Error"       defStyleNum="dsError" spellChecking="0"/>
+      <itemData name="Extension"   defStyleNum="dsExtension" spellChecking="0"/>
+      <itemData name="Region Marker" defStyleNum="dsRegionMarker"/>
+      <itemData name="XML Tag"     defStyleNum="dsString" spellChecking="0"/>
+      <itemData name="XML Comment" defStyleNum="dsComment"/>
+      <itemData name="XML CDATA"   defStyleNum="dsString"/>
+      <itemData name="XML Attribute" defStyleNum="dsOthers" spellChecking="0"/>
+      <itemData name="XML String"  defStyleNum="dsString"/>
+      <itemData name="XML Error"   defStyleNum="dsError" spellChecking="0"/>
+      <itemData name="XML Entity"  defStyleNum="dsDecVal" spellChecking="0"/>
+      <itemData name="Brackets" defStyleNum="dsOperator" spellChecking="0"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <keywords casesensitive="1" weakDeliminator="-+*?!&lt;&gt;=/:.,\&amp;" additionalDeliminator="&quot;;#"/>
+    <comments>
+      <comment name="singleLine" start=";;"/>
+      <comment name="multiLine" start="#|" end="|#" region="comment"/>
+    </comments>
+  </general>
+</language>
+<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
diff --git a/syntax/raku.xml b/syntax/raku.xml
--- a/syntax/raku.xml
+++ b/syntax/raku.xml
@@ -1,1755 +1,2070 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
-[
-  <!--
-  identifier:
-    Alphabetic characters include characters with the Unicode General Category value Letter (L), and the underscore _.
-    Alphanumeric characters additionally include characters with the Unicode General Category value Number, Decimal Digit (Nd).
-  -->
-  <!-- Large values -->
-  <!ENTITY _rangealphabetic "A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\x{2c1}\x{2C6}-\x{2D1}\x{2E0}-\x{2EE}\x{370}-\x{588}\x{5d0}-\x{17dc}\x{1820}-\x{1aa7}\x{1b05}-\x{2139}\x{2c00}-\x{31ff}\x{3400}\x{4db5}\x{4db5}\x{4e00}-\x{ac00}\x{d7a3}-\x{d7fb}\x{f900}-\x{FD3D}\x{FF64}\x{100fa}\x{10000}-\x{100fa}\x{10280}-\x{20000}\x{2a6d6}-\x{2fa1d}">
-  <!ENTITY rangealphabetic "_&_rangealphabetic;">
-  <!ENTITY rangenumeric "0-9">
-  <!ENTITY alphabetic "[&rangealphabetic;]">
-  <!ENTITY numeric "[&rangenumeric;]">
-  <!ENTITY alnum "[&rangealphabetic;&rangenumeric;]">
-  <!ENTITY ident "(?:&alphabetic;(?:&alnum;+|[-']&alphabetic;)*)">
-
-  <!ENTITY prefixdollarvarname "(?:[&rangealphabetic;0-9/!]|\(\))">
-  <!ENTITY dollarvarname "(?:&ident;|[0-9]+|[/!]|\(\))">
-  <!ENTITY twigils "*?!.&lt;^:=~">
-
-  <!ENTITY podfmt "BCEIKLMNPRTUVXZ">
-  <!ENTITY allnopodfmt "(?:[^&podfmt;]+|[&podfmt;](?![&lt;«]))+">
-  <!ENTITY allnopodfmt1 "(?:[^&podfmt;&lt;>]+|[&podfmt;](&lt;(?:&lt;*(?=&lt;))|(?![&lt;«])))+">
-  <!ENTITY allnopodfmt2 "(?:[^&podfmt;«»]+|[&podfmt;](?![&lt;«]))+">
-  <!ENTITY allnopodfmt3 "(?:[^&podfmt;&lt;>]+|[&podfmt;](?![&lt;«])|>(?!>)|&lt;(?!&lt;))+">
-
-  <!ENTITY quotingform_q "(?:q?(?::?[xsahfcb]|:?ww?|:(?:v|exec|words|quotewords|scalar|array|hash|function|closure|backslash|to|heredoc)|)(?::[xsahfcbv]|ww?|exec|words|quotewords|scalar|array|hash|function|closure|backslash|to|heredoc)*)">
-  <!ENTITY quotingform_q_assert "(?:\s+(?=\()|\s*(?=[^()>｣\]}a-zA-Z0-9]|$))">
-  <!ENTITY quotingconstruct "q&quotingform_q;&quotingform_q_assert;">
-
-  <!ENTITY int10 "(?:[0-9]+(?:_[0-9]+)*)">
-  <!ENTITY intN "(?:[0-9a-zA-Z]+(?:_[0-9a-zA-Z]+)*)">
-
-  <!-- <!ENTITY operators "(?:\b(?:X[*~]|Z=|xx=)|\((?:[&lt;>][+=]|[-&amp;+.&lt;>|^]|cont|elem)\)|\+[&amp;+&lt;=>^|]?|~[&amp;&lt;>^|~]?|\.(?::&lt;[^>]+>|\.\.?\^?|[=?^*+.])?|\^(?:fff?\b|\.\.)?\^?|(?:[?…]|f?ff)\^|\[[*+]\]|=(?:==?|=>>?|>|~=)?|&lt;(?:&lt;==|=[=>]?)?|\*\*=?|\?[?|]?|!(?:[=]|eqv\b)?|&#37;&#37;?|&amp;&amp;?|//?|\|\|?|>=?|-[-=]?|::|[−∈∉∋∌∘∩∪≅≠≤≥≼≽⊂⊃⊄⊅⊆⊇⊈⊉⊍⊎⊖×÷∖*…])"> -->
-  <!-- <!ENTITY hyperoperators "(?:[«»]|&lt;&lt;|&gt;&gt;)"> -->
-  <!ENTITY safesymboloperators "−∈∉∋∌∘∩∪≅≠≤≥≼≽⊂⊃⊄⊅⊆⊇⊈⊉⊍⊎⊖×÷∖*…?.+-/=!~&amp;|^&#37;">
-  <!ENTITY unsafesymboloperators "&lt;>«»">
-  <!ENTITY symboloperators "&safesymboloperators;&unsafesymboloperators;">
-  <!ENTITY bracehyperoperator "(?:\[[^\s]+\]|\([^\s]+\))">
-  <!ENTITY prefixoperator "R?(?:[XZ]|xx)?">
-  <!ENTITY extrasymboloperators "(?:\^fff?\b\^?|\bf?ff\^|\((?:[&lt;>][+=]|[-&amp;+.&lt;>|^]|cont|elem)\))">
-  <!ENTITY hyperoperators1 "[«»]&prefixoperator;(?:&amp;&ident;|[&safesymboloperators;&lt;>]+|&bracehyperoperator;)[«»]">
-  <!ENTITY hyperoperators2 "(?:&lt;&lt;|&gt;&gt;)&prefixoperator;(?:&amp;&ident;|[&safesymboloperators;«»]+|&bracehyperoperator;)(?:&lt;&lt;|&gt;&gt;)">
-  <!ENTITY hyperoperators "&hyperoperators1;|&hyperoperators2;">
-  <!ENTITY startstringasoperator "&prefixoperator;&lt;[&symboloperators;]*(?=\s|$)">
-  <!ENTITY funcoperator "\[\[\&amp;&ident;\]\]">
-  <!ENTITY reductionoperator "\[&prefixoperator;[&symboloperators;]+\]">
-  <!ENTITY innerbraceoperator "[&symboloperators;'&quot;]+">
-  <!ENTITY operators "&prefixoperator;(?:(?:[&safesymboloperators;>]|&extrasymboloperators;)[&symboloperators;]*|\(&innerbraceoperator;\)|\[&innerbraceoperator;\]|&lt;[&safesymboloperators;'&quot;]+>)">
-
-  <!-- <!ENTITY regadverb "(?!\()\s*(?::\w+\s*)*(?=[^\w\s])"> -->
-  <!ENTITY regadverb "(?!\()\s*(?=[^\w\s])">
-]>
-<language name="Raku" version="8" kateversion="5.53" section="Scripts" extensions="*.raku;*.rakumod;*.rakudoc;*.rakutest;*.pl6;*.PL6;*.p6;*.pm6;*.pod6" priority="6" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">
-  <highlighting>
-
-    <list name="pod">
-      <item>begin</item>
-      <item>end</item>
-      <item>finish</item>
-      <item>for</item>
-      <include>podtypename</include>
-    </list>
-
-    <list name="podblocktypename">
-      <item>pod</item>
-      <include>podtypename</include>
-    </list>
-
-    <list name="podvalue">
-      <item>True</item>
-      <item>False</item>
-    </list>
-
-    <list name="podtypename">
-      <item>head1</item>
-      <item>head2</item>
-      <item>head3</item>
-      <item>head4</item>
-      <item>head5</item>
-      <item>head6</item>
-      <item>item</item>
-      <item>item1</item>
-      <item>item2</item>
-      <item>item3</item>
-      <item>item4</item>
-      <item>item5</item>
-      <item>item6</item>
-      <item>para</item>
-      <item>code</item>
-      <item>defn</item>
-      <item>comment</item>
-      <item>table</item>
-      <item>input</item>
-      <item>output</item>
-    </list>
-
-    <list name="quoting">
-      <item>exec</item>
-      <item>words</item>
-      <item>quotewords</item>
-      <item>scalar</item>
-      <item>array</item>
-      <item>hash</item>
-      <item>function</item>
-      <item>closure</item>
-      <item>backslash</item>
-      <item>heredoc</item>
-      <item>val</item>
-    </list>
-
-    <list name="declareRoutine">
-      <item>macro</item>
-      <item>sub</item>
-      <item>submethod</item>
-      <item>method</item>
-      <item>multi</item>
-      <item>proto</item>
-      <item>only</item>
-      <item>category</item>
-    </list>
-
-    <list name="regexKeyword">
-      <item>rule</item>
-      <item>token</item>
-      <item>regex</item>
-    </list>
-
-    <list name="value">
-      <include>podvalue</include>
-      <item>self</item>
-    </list>
-
-    <list name="varStorage">
-      <item>let</item>
-      <item>my</item>
-      <item>our</item>
-      <item>state</item>
-      <item>temp</item>
-      <item>has</item>
-      <item>constant</item>
-    </list>
-
-    <list name="controlFlow">
-      <!-- conditional -->
-      <item>if</item>
-      <item>else</item>
-      <item>elsif</item>
-      <item>unless</item>
-      <!-- repeat -->
-      <item>for</item>
-      <item>loop</item>
-      <item>repeat</item>
-      <item>while</item>
-      <item>until</item>
-      <item>gather</item>
-      <item>given</item>
-      <!-- control flow -->
-      <item>take</item>
-      <item>do</item>
-      <item>when</item>
-      <item>next</item>
-      <item>last</item>
-      <item>redo</item>
-      <item>return</item>
-      <item>contend</item>
-      <item>maybe</item>
-      <item>defer</item>
-      <item>default</item>
-      <item>exit</item>
-      <item>make</item>
-      <item>continue</item>
-      <item>break</item>
-      <item>goto</item>
-      <item>leave</item>
-      <item>async</item>
-      <item>lift</item>
-      <!-- exception -->
-      <item>die</item>
-      <item>fail</item>
-      <item>try</item>
-      <item>warn</item>
-    </list>
-
-    <list name="keyword">
-      <!-- include -->
-      <item>no</item>
-      <item>use</item>
-      <item>require</item>
-      <!-- typeConstraint -->
-      <item>is</item>
-      <item>as</item>
-      <item>but</item>
-      <item>trusts</item>
-      <item>of</item>
-      <item>returns</item>
-      <item>handles</item>
-      <item>where</item>
-      <item>augment</item>
-      <item>supersede</item>
-      <!-- module -->
-      <item>module</item>
-      <item>class</item>
-      <item>role</item>
-      <item>package</item>
-      <item>enum</item>
-      <item>grammar</item>
-      <item>slang</item>
-      <item>subset</item>
-      <!-- closure trait -->
-      <item>BEGIN</item>
-      <item>CHECK</item>
-      <item>INIT</item>
-      <item>START</item>
-      <item>FIRST</item>
-      <item>ENTER</item>
-      <item>LEAVE</item>
-      <item>KEEP</item>
-      <item>UNDO</item>
-      <item>NEXT</item>
-      <item>LAST</item>
-      <item>PRE</item>
-      <item>POST</item>
-      <item>END</item>
-      <item>CATCH</item>
-      <item>CONTROL</item>
-      <item>TEMP</item>
-    </list>
-
-    <list name="property">
-      <item>prec</item>
-      <item>irs</item>
-      <item>ofs</item>
-      <item>ors</item>
-      <item>export</item>
-      <item>deep</item>
-      <item>binary</item>
-      <item>unary</item>
-      <item>reparsed</item>
-      <item>rw</item>
-      <item>parsed</item>
-      <item>cached</item>
-      <item>readonly</item>
-      <item>defequiv</item>
-      <item>will</item>
-      <item>ref</item>
-      <item>copy</item>
-      <item>inline</item>
-      <item>tighter</item>
-      <item>looser</item>
-      <item>equiv</item>
-      <item>assoc</item>
-      <item>required</item>
-    </list>
-
-    <list name="isProperty">
-      <include>property</include>
-      <item>signature</item>
-      <item>context</item>
-      <item>also</item>
-      <item>shape</item>
-    </list>
-
-    <list name="Number">
-      <item>NaN</item>
-      <item>Inf</item>
-    </list>
-
-    <list name="type">
-      <item>Object</item>
-      <item>Any</item>
-      <item>Junction</item>
-      <item>Whatever</item>
-      <item>Capture</item>
-      <item>Match</item>
-      <item>Signature</item>
-      <item>Proxy</item>
-      <item>Matcher</item>
-      <item>Package</item>
-      <item>Module</item>
-      <item>Class</item>
-      <item>Grammar</item>
-      <item>Scalar</item>
-      <item>Array</item>
-      <item>Hash</item>
-      <item>KeyHash</item>
-      <item>KeySet</item>
-      <item>KeyBag</item>
-      <item>Pair</item>
-      <item>List</item>
-      <item>Seq</item>
-      <item>Range</item>
-      <item>Set</item>
-      <item>Bag</item>
-      <item>Mapping</item>
-      <item>Void</item>
-      <item>Undef</item>
-      <item>Failure</item>
-      <item>Exception</item>
-      <item>Code</item>
-      <item>Block</item>
-      <item>Routine</item>
-      <item>Sub</item>
-      <item>Macro</item>
-      <item>Method</item>
-      <item>Submethod</item>
-      <item>Regex</item>
-      <item>Str</item>
-      <item>Blob</item>
-      <item>Char</item>
-      <item>Byte</item>
-      <item>Codepoint</item>
-      <item>Grapheme</item>
-      <item>StrPos</item>
-      <item>StrLen</item>
-      <item>Version</item>
-      <item>Num</item>
-      <item>Complex</item>
-      <item>num</item>
-      <item>complex</item>
-      <item>Bit</item>
-      <item>bit</item>
-      <item>bool</item>
-      <item>True</item>
-      <item>False</item>
-      <item>Increasing</item>
-      <item>Decreasing</item>
-      <item>Ordered</item>
-      <item>Callable</item>
-      <item>AnyChar</item>
-      <item>Positional</item>
-      <item>Associative</item>
-      <item>Ordering</item>
-      <item>KeyExtractor</item>
-      <item>Comparator</item>
-      <item>OrderingPair</item>
-      <item>IO</item>
-      <item>KitchenSink</item>
-      <item>Role</item>
-      <item>Int</item>
-      <item>int</item>
-      <item>int1</item>
-      <item>int2</item>
-      <item>int4</item>
-      <item>int8</item>
-      <item>int16</item>
-      <item>int32</item>
-      <item>int64</item>
-      <item>Rat</item>
-      <item>rat</item>
-      <item>rat1</item>
-      <item>rat2</item>
-      <item>rat4</item>
-      <item>rat8</item>
-      <item>rat16</item>
-      <item>rat32</item>
-      <item>rat64</item>
-      <item>Buf</item>
-      <item>buf</item>
-      <item>buf1</item>
-      <item>buf2</item>
-      <item>buf4</item>
-      <item>buf8</item>
-      <item>buf16</item>
-      <item>buf32</item>
-      <item>buf64</item>
-      <item>UInt</item>
-      <item>uint</item>
-      <item>uint1</item>
-      <item>uint2</item>
-      <item>uint4</item>
-      <item>uint8</item>
-      <item>uint16</item>
-      <item>uint32</item>
-      <item>uint64</item>
-      <item>Abstraction</item>
-      <item>utf8</item>
-      <item>utf16</item>
-      <item>utf32</item>
-    </list>
-
-    <list name="operator">
-      <item>X</item>
-      <item>gcd</item>
-      <item>ge</item>
-      <item>gt</item>
-      <item>lcm</item>
-      <item>le</item>
-      <item>leg</item>
-      <item>let</item>
-      <item>lt</item>
-      <item>map</item>
-      <item>max</item>
-      <item>min</item>
-      <item>minmax</item>
-      <item>mod</item>
-      <item>ne</item>
-      <item>not</item>
-      <item>notandthen</item>
-      <item>o</item>
-      <item>or</item>
-      <item>orelse</item>
-      <item>print</item>
-      <item>push</item>
-      <item>say</item>
-      <item>so</item>
-      <item>substr</item>
-      <item>temp</item>
-      <item>unicmp</item>
-      <item>x</item>
-      <item>xor</item>
-      <item>xx</item>
-      <item>Xeqv</item>
-      <item>Z</item>
-      <item>and</item>
-      <item>andthen</item>
-      <item>any</item>
-      <item>but</item>
-      <item>cmp</item>
-      <item>coll</item>
-      <item>die</item>
-      <item>div</item>
-      <item>does</item>
-      <item>eq</item>
-      <item>eqv</item>
-      <item>ff</item>
-      <item>fff</item>
-    </list>
-
-    <list name="unicodeGeneralCategories">
-      <item>L</item>  <item>Letter</item>
-      <item>LC</item> <item>Cased_Letter</item>
-      <item>Lu</item> <item>Uppercase_Letter</item>
-      <item>Ll</item> <item>Lowercase_Letter</item>
-      <item>Lt</item> <item>Titlecase_Letter</item>
-      <item>Lm</item> <item>Modifier_Letter</item>
-      <item>Lo</item> <item>Other_Letter</item>
-      <item>M</item>  <item>Mark</item>
-      <item>Mn</item> <item>Nonspacing_Mark</item>
-      <item>Mc</item> <item>Spacing_Mark</item>
-      <item>Me</item> <item>Enclosing_Mark</item>
-      <item>N</item>  <item>Number</item>
-      <item>Nd</item> <item>Decimal_Number</item> <item>digit</item>
-      <item>Nl</item> <item>Letter_Number</item>
-      <item>No</item> <item>Other_Number</item>
-      <item>P</item>  <item>Punctuation</item> <item>punct</item>
-      <item>Pc</item> <item>Connector_Punctuation</item>
-      <item>Pd</item> <item>Dash_Punctuation</item>
-      <item>Ps</item> <item>Open_Punctuation</item>
-      <item>Pe</item> <item>Close_Punctuation</item>
-      <item>Pi</item> <item>Initial_Punctuation</item>
-      <item>Pf</item> <item>Final_Punctuation</item>
-      <item>Po</item> <item>Other_Punctuation</item>
-      <item>S</item>  <item>Symbol</item>
-      <item>Sm</item> <item>Math_Symbol</item>
-      <item>Sc</item> <item>Currency_Symbol</item>
-      <item>Sk</item> <item>Modifier_Symbol</item>
-      <item>So</item> <item>Other_Symbol</item>
-      <item>Z</item>  <item>Separator</item>
-      <item>Zs</item> <item>Space_Separator</item>
-      <item>Zl</item> <item>Line_Separator</item>
-      <item>Zp</item> <item>Paragraph_Separator</item>
-      <item>C</item>  <item>Other</item>
-      <item>Cc</item> <item>Control</item> <item>cntrl</item>
-      <item>Cf</item> <item>Format</item>
-      <item>Cs</item> <item>Surrogate</item>
-      <item>Co</item> <item>Private_Use</item>
-      <item>Cn</item> <item>Unassigned</item>
-    </list>
-
-    <list name="assertion">
-      <item>before</item>
-      <item>after</item>
-    </list>
-
-    <contexts>
-
-      <context name="Shebang" attribute="Comment" lineEndContext="#pop!base" fallthrough="1" fallthroughContext="#pop!base">
-        <RegExpr attribute="Keyword" context="#pop!base" String="^#!\/.*" column="0"/>
-      </context>
-
-      <context name="base" attribute="Normal Text" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectChar attribute="Comment" context="StartComment" char="#"/>
-        <!-- <DetectChar attribute="Unspace" context="#stay" char="\"/> -->
-        <DetectChar attribute="String Delimiter" context="qq_RawString" char="&quot;"/>
-        <DetectChar attribute="String Delimiter" context="q_RawString" char="'"/>
-        <DetectChar char="{" context="Interpolation" attribute="Operator" beginRegion="block"/>
-        <RegExpr String="(?:s|tr|TR)&regadverb;" context="RegexSubstitution" attribute="Operator"/>
-        <RegExpr String="(?:rx|m)&regadverb;" context="Regex" attribute="Operator"/>
-        <IncludeRules context="find_Variable"/>
-        <DetectChar attribute="Pod" context="StartPod" char="=" firstNonSpace="1"/>
-        <RegExpr String="»\.|&lt;&lt;\.|&hyperoperators;|&startstringasoperator;|&funcoperator;|&reductionoperator;|&operators;" context="MaybeRegex" attribute="Operator"/>
-        <DetectChar char="(" context="SubExpression(" attribute="Operator" beginRegion="block"/>
-        <DetectChar char="[" context="SubExpression[" attribute="Operator" beginRegion="block"/>
-        <AnyChar String=",;" context="#stay" attribute="Separator Symbol"/>
-        <DetectChar attribute="String Delimiter" context="qq_String«" char="«"/>
-        <Detect2Chars attribute="String Delimiter" context="qq_String&lt;&lt;" char="&lt;" char1="&lt;"/>
-        <DetectChar attribute="String Delimiter" context="q_String&lt;" char="&lt;"/>
-        <DetectChar attribute="String Delimiter" context="Q_String｢" char="｢"/>
-        <RegExpr String="Q(\s++(?=['(_]|$)|\s*+(?=[^()>｣\]}'&rangealphabetic;&rangenumeric;]|$))" context="Q_String" attribute="String"/>
-        <DetectChar char=":" context="MaybeAttribute" attribute="Operator"/>
-        <AnyChar String="0123456789." context="Number" lookAhead="1"/>
-        <RegExpr attribute="Operator" context="q_QuotingForm" String="q(?=&quotingform_q;&quotingform_q_assert;)"/>
-        <keyword String="operator" context="#stay" attribute="Operator"/>
-        <keyword String="varStorage" context="#stay" attribute="Variable Storage"/>
-        <keyword String="type" context="#stay" attribute="Data Type"/>
-        <keyword String="controlFlow" context="#stay" attribute="Control Flow"/>
-        <WordDetect String="is" context="Is" attribute="Keyword"/>
-        <keyword String="keyword" context="#stay" attribute="Keyword"/>
-        <keyword String="declareRoutine" context="#stay" attribute="Declare Routine"/>
-        <keyword String="property" context="#stay" attribute="Property"/>
-        <keyword String="regexKeyword" context="RegexKeyword" attribute="Keyword"/>
-        <keyword String="value" context="#stay" attribute="Keyword Value"/>
-        <keyword String="Number" context="#stay" attribute="Float"/>
-        <RegExpr String="[A-Z](?:[a-z]+[a-zA-Z0-9]*)+" context="#stay" attribute="Data Type"/>
-        <RegExpr String="&ident;" context="#stay" attribute="Normal Text"/>
-      </context>
-
-      <context name="Is" attribute="Normal Text" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">
-        <DetectSpaces/>
-        <keyword String="isProperty" context="#pop" attribute="Property"/>
-      </context>
-
-      <context name="Interpolation" attribute="Normal Text" lineEndContext="#stay">
-        <DetectChar char="}" context="#pop" attribute="Operator" endRegion="block"/>
-        <IncludeRules context="base"/>
-      </context>
-
-      <context name="SubExpression(" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="base"/>
-        <DetectChar char=")" context="#pop" attribute="Operator" endRegion="block"/>
-      </context>
-
-      <context name="SubExpression[" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="base"/>
-        <DetectChar char="]" context="#pop" attribute="Operator" endRegion="block"/>
-      </context>
-
-      <context name="find_Variable" attribute="Normal Text" lineEndContext="#stay">
-        <RegExpr String="[%&amp;](?=[?*]&alphabetic;)|(?:\$[&twigils;]|::\?)(?=&alphabetic;)" context="Twigil" attribute="Variable"/>
-        <RegExpr String="[$@]\(\)|[%@]?\$/|\$!|\$[0-9]+|[\\@%&amp;$]&ident;" context="#stay" attribute="Variable"/>
-      </context>
-
-      <context name="MaybeRegex" attribute="Normal Text" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">
-        <DetectSpaces/>
-        <DetectChar char="/" context="#pop!Regex" attribute="Operator" lookAhead="1"/>
-      </context>
-
-      <context name="Twigil" attribute="Variable" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">
-        <AnyChar String="&twigils;" context="#stay" attribute="Twigil"/>
-        <RegExpr String="&ident;" context="#pop" attribute="Variable"/>
-      </context>
-
-      <context name="RegexKeyword" attribute="Normal Text" lineEndContext="#pop">
-        <DetectChar char="{" context="#pop!RegexKeyword-Pattern{" attribute="Operator" beginRegion="regex"/>
-      </context>
-      <context name="RegexKeyword-Pattern{" attribute="Pattern" lineEndContext="#stay">
-        <DetectChar char="}" context="#pop" attribute="Operator" endRegion="regex"/>
-        <IncludeRules context="find_Pattern"/>
-      </context>
-
-      <!-- Regex -->
-
-      <context name="Regex" attribute="Pattern" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">
-        <IncludeRules context="find_RegexClosure"/>
-        <RegExpr String="([^\w\s])" context="Pattern" attribute="Operator" beginRegion="regex"/>
-      </context>
-
-      <context name="find_RegexClosure" attribute="Pattern" lineEndContext="#stay">
-        <DetectChar char=":" context="RegexModifier" attribute="Pattern Modifier"/>
-        <DetectChar char="{" context="Pattern{" attribute="Operator" beginRegion="regex"/>
-        <DetectChar char="(" context="Pattern(" attribute="Operator" beginRegion="regex"/>
-        <DetectChar char="[" context="Pattern[" attribute="Operator" beginRegion="regex"/>
-        <DetectChar char="&lt;" context="Pattern&lt;" attribute="Operator" beginRegion="regex"/>
-        <DetectSpaces/>
-      </context>
-
-      <context name="RegexModifier" attribute="Pattern Modifier" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">
-        <Detect2Chars char="P" char1="5" context="RegexPerl5" attribute="Pattern Modifier"/>
-        <StringDetect String="Perl5" context="RegexPerl5" attribute="Pattern Modifier"/>
-        <DetectIdentifier context="#pop" attribute="Pattern Modifier"/>
-      </context>
-
-      <context name="RegexPerl5" attribute="Pattern Modifier" lineEndContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop!IsRegexPerl5">
-        <DetectSpaces/>
-      </context>
-
-      <context name="IsRegexPerl5" attribute="Pattern" lineEndContext="#stay">
-        <IncludeRules context="find_pattern##Perl"/>
-      </context>
-
-      <context name="Pattern{" attribute="Pattern" lineEndContext="#stay">
-        <DetectChar char="}" context="#pop#pop" attribute="Operator" endRegion="regex"/>
-        <IncludeRules context="find_Pattern"/>
-      </context>
-
-      <context name="Pattern[" attribute="Pattern" lineEndContext="#stay">
-        <DetectChar char="]" context="#pop#pop" attribute="Operator" endRegion="regex"/>
-        <IncludeRules context="find_Pattern"/>
-      </context>
-
-      <context name="Pattern(" attribute="Pattern" lineEndContext="#stay">
-        <DetectChar char=")" context="#pop#pop" attribute="Operator" endRegion="regex"/>
-        <IncludeRules context="find_Pattern"/>
-      </context>
-
-      <context name="Pattern&lt;" attribute="Pattern" lineEndContext="#stay">
-        <DetectChar char=">" context="#pop#pop" attribute="Operator" endRegion="regex"/>
-        <IncludeRules context="find_Pattern"/>
-      </context>
-
-      <context name="Pattern" attribute="Pattern" lineEndContext="#stay">
-        <DetectChar char="1" dynamic="1" context="#pop#pop" attribute="Operator" endRegion="regex"/>
-        <IncludeRules context="find_Pattern"/>
-      </context>
-
-      <context name="find_Pattern" attribute="Pattern" lineEndContext="#stay">
-        <DetectChar attribute="Operator" context="SubPattern" char="("/>
-        <DetectChar char="\" context="PatternMetaChar" attribute="Pattern Character Class"/>
-        <DetectChar attribute="String Delimiter" context="qq_RawString" char="&quot;"/>
-        <DetectChar attribute="String Delimiter" context="q_RawString" char="'"/>
-        <DetectChar attribute="Pattern Modifier" context="PatternModifier" char=":" lookAhead="1"/>
-        <DetectChar char="{" context="Interpolation" attribute="Operator" beginRegion="block"/>
-        <Detect2Chars attribute="Operator" context="RecursivePattern" char="&lt;" char1="("/>
-        <Detect2Chars attribute="Operator" context="PatternAssertion" char="&lt;" char1="?"/>
-        <Detect2Chars attribute="Operator" context="PatternAssertion" char="&lt;" char1="!"/>
-        <Detect2Chars attribute="Operator" context="#stay" char="&lt;" char1="&lt;"/>
-        <Detect2Chars attribute="Operator" context="#stay" char=">" char1=">"/>
-        <DetectChar attribute="Pattern Meta Character" context="RegexClass" char="&lt;"/>
-        <AnyChar attribute="Pattern Quantifier" context="#stay" String="?*+%"/>
-        <Detect2Chars attribute="Pattern Quantifier" context="#stay" char="." char1="."/>
-        <AnyChar attribute="Operator" context="#stay" String="[]«»~"/>
-        <DetectChar attribute="Pattern Special Character" context="#stay" char="."/>
-        <Detect2Chars attribute="Variable" context="PatternVariable" char="$" char1="&lt;"/>
-        <AnyChar attribute="Pattern Control Flow" context="#stay" String="&amp;|^$"/>
-        <DetectChar attribute="Comment" context="StartComment" char="#"/>
-        <IncludeRules context="find_Variable"/>
-        <RegExpr    String="[&rangealphabetic;&rangenumeric;\s]+" context="#stay" attribute="Pattern"/>
-      </context>
-
-      <context name="SubPattern" attribute="Pattern" lineEndContext="#stay">
-        <DetectChar char=")" context="#pop" attribute="Operator"/>
-        <IncludeRules context="find_Pattern"/>
-      </context>
-
-      <context name="RecursivePattern" attribute="Variable" lineEndContext="#stay">
-        <Detect2Chars attribute="Operator" context="#pop" char=")" char1=">"/>
-        <IncludeRules context="find_Pattern"/>
-      </context>
-
-      <context name="PatternModifier" attribute="Pattern Modifier" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">
-        <RegExpr context="#pop" attribute="Pattern Modifier" String=":\w+"/>
-        <DetectChar attribute="Pattern Control Flow" context="#pop" char=":"/>
-      </context>
-
-      <context name="PatternVariable" attribute="Variable" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">
-        <RegExpr String="&ident;>?" context="#pop" attribute="Variable"/>
-      </context>
-
-      <context name="PatternAssertion" attribute="Normal Text" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!RegexClass">
-        <DetectChar attribute="Operator" context="#pop" char=">"/>
-        <DetectChar attribute="Operator" context="PatternAssertionCond" char="{"/>
-        <keyword attribute="Keyword" String="assertion" context="SubPatternAssertion"/>
-      </context>
-      <context name="SubPatternAssertion" attribute="Pattern" lineEndContext="#stay">
-        <DetectChar char=">" context="#pop#pop" attribute="Operator"/>
-        <IncludeRules context="find_Pattern"/>
-      </context>
-
-      <context name="PatternAssertionCond" attribute="Normal Text" lineEndContext="#stay">
-        <Detect2Chars attribute="Operator" context="#pop#pop" char="}" char1=">"/>
-        <IncludeRules context="base"/>
-      </context>
-
-      <context name="PatternMetaChar" attribute="Pattern Meta Character" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop!CharError">
-        <AnyChar attribute="Pattern Character Class" context="#pop" String="nthvsdwNTHVSDW"/>
-        <RegExpr String="[^&rangealphabetic;&rangenumeric;]" context="#pop" attribute="Pattern Meta Character"/>
-      </context>
-
-
-      <!-- Pattern Character Classes -->
-
-      <context name="RegexClass" attribute="Pattern Meta Character" lineEndContext="#stay">
-        <DetectSpaces/>
-        <AnyChar    attribute="Operator" context="#stay" String="-!+()"/>
-        <DetectChar attribute="Pattern Meta Character" context="RegexClassRange" char="["/>
-        <DetectChar attribute="Pattern Unicode Property" context="RegexClassName" char=":"/>
-        <DetectChar attribute="Pattern Meta Character" context="#pop" char=">"/>
-        <DetectChar attribute="String Delimiter" context="q_RawString" char="'"/>
-        <DetectChar attribute="String Delimiter" context="qq_RawString" char="&quot;"/>
-        <DetectChar attribute="String Delimiter" context="Q_String｢" char="｢"/>
-        <DetectChar attribute="String Delimiter" context="q_String&lt;" char="&lt;"/>
-        <DetectChar attribute="String Delimiter" context="qq_String«" char="«"/>
-        <RegExpr attribute="String" context="#stay" String="[^-!+()?:&lt;>'&quot;｢«]+"/>
-      </context>
-
-      <context name="RegexClassName" attribute="Pattern Unicode Property" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">
-        <RegExpr String="\w+" context="#pop" attribute="Pattern Unicode Property"/>
-        <!-- auto-completion only -->
-        <keyword attribute="Pattern Unicode Property" context="#pop" String="unicodeGeneralCategories"/>
-      </context>
-
-      <context name="RegexClassRange" attribute="Pattern Character" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectChar char="\" context="RegexClassRangeMetaChar" attribute="Pattern Character Class"/>
-        <Detect2Chars char="." char1="." context="#stay" attribute="Pattern Quantifier"/>
-        <DetectChar attribute="Pattern Meta Character" context="#pop" char="]"/>
-      </context>
-
-      <context name="RegexClassRangeMetaChar" attribute="Pattern Meta Character" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">
-        <DetectSpaces/>
-        <IncludeRules context="find_SpecialChar"/>
-        <IncludeRules context="PatternMetaChar"/>
-      </context>
-
-
-      <!-- Regex Substitution -->
-
-      <context name="RegexSubstitution" attribute="Operator" lineEndContext="#stay">
-        <IncludeRules context="find_RegexClosure"/>
-        <RegExpr String="([^\w\s])" context="RegexSubstitutionPattern" attribute="Operator" beginRegion="regex"/>
-      </context>
-
-      <context name="RegexSubstitutionPattern" attribute="Pattern" lineEndContext="#stay">
-        <RegExpr String="(%1)" dynamic="1" context="RegexSubstitutionString" attribute="Operator" endRegion="regex"/>
-        <IncludeRules context="find_Pattern"/>
-      </context>
-
-      <context name="RegexSubstitutionString" attribute="String" lineEndContext="#stay">
-        <DetectChar char="1" dynamic="1" context="#pop#pop#pop" attribute="Operator"/>
-      </context>
-
-
-      <!-- Number -->
-
-      <context name="Number" attribute="Decimal" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!CharErrorIfNoSep">
-        <RegExpr String="&int10;(?:\.&int10;(?:[eE][+-]?&int10;)?|[eE][+-]?&int10;)i?|\.&int10;(?:[eE][+-]?&int10;)?i?" context="CheckNumberError" attribute="Float"/>
-        <Detect2Chars char="0" char1="x" context="HexNumber" attribute="Hex"/>
-        <Detect2Chars char="0" char1="o" context="OctalNumber" attribute="Octal"/>
-        <RegExpr String="&int10;i?" context="CheckNumberError" attribute="Decimal"/>
-        <DetectChar char="." context="#pop" attribute="Operator"/>
-      </context>
-
-      <context name="HexNumber" attribute="Hex" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop!CharErrorIfNoSep">
-        <RegExpr String="[a-fA-F0-9]+(?:_[a-fA-F0-9]+)*i?" context="#pop!CheckNumberError" attribute="Hex"/>
-      </context>
-
-      <context name="OctalNumber" attribute="Octal" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop!CharErrorIfNoSep">
-        <RegExpr String="[0-7]+(?:_[0-7]+)*i?" context="#pop!CheckNumberError" attribute="Octal"/>
-      </context>
-
-      <context name="BaseNumber" attribute="Decimal" lineEndContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop!CharErrorIfNoSep">
-        <DetectChar char="&gt;" context="#pop#pop#pop" attribute="Error"/>
-        <RegExpr String="&intN;\.&intN;|\.&intN;" context="#pop#pop!BaseNumberClose" attribute="Float"/>
-        <RegExpr String="&intN;" context="#pop#pop!BaseNumberClose" attribute="Decimal"/>
-      </context>
-      <context name="BaseNumberClose" attribute="Decimal" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop!CharErrorIfNoSep">
-        <DetectChar char="&gt;" context="#pop#pop" attribute="Operator"/>
-        <IncludeRules context="CheckNumberError"/>
-      </context>
-
-      <context name="CheckNumberError" attribute="Octal" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop">
-        <RegExpr String="&alnum;+" context="#pop#pop" attribute="Error"/>
-      </context>
-
-
-      <!-- Attribute or Key -->
-
-      <context name="MaybeAttribute" attribute="Normal Text" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">
-        <Int context="MaybeAttribute2" attribute="Decimal"/>
-        <DetectChar char="!" context="#pop" attribute="Operator"/>
-        <RegExpr String="&ident;" context="#pop" attribute="Attribute"/>
-      </context>
-
-      <context name="MaybeAttribute2" attribute="Decimal" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop">
-        <DetectChar char="&lt;" context="BaseNumber" attribute="Operator"/>
-      </context>
-
-
-      <!-- Pod -->
-
-      <context name="StartPod" attribute="Pod Typename" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">
-        <WordDetect String="begin" context="PodBegin" attribute="Pod Block"/>
-        <WordDetect String="for"   context="PodFor" attribute="Pod Typename"/>
-        <keyword    String="pod"   context="PodTypenameValue" attribute="Pod Typename"/>
-        <RegExpr    String="[_A-Z][-_A-Z0-9]*\b" context="PodTypenameValue" attribute="Pod Typename"/>
-        <RegExpr    String="&ident;" context="PodTypenameValue" attribute="Pod Unknown"/>
-      </context>
-
-      <context name="PodTypenameValue" attribute="Pod Typename Value" lineEndContext="PodTypenameValueNextLine" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Typename Value" context="#stay" String="&allnopodfmt;"/>
-      </context>
-
-      <context name="PodTypenameValueNextLine" attribute="Pod Typename Value" lineEndContext="#stay" lineEmptyContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop">
-        <DetectSpaces attribute="Normal Text" context="PodTypenameValueOrEmpty"/>
-        <DetectChar attribute="Pod" context="#pop#pop#pop" char="=" lookAhead="true"/>
-      </context>
-
-      <context name="PodTypenameValueOrEmpty" attribute="Pod Typename Value" lineEndContext="#pop#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop">
-        <DetectChar attribute="Pod" context="#pop#pop#pop#pop" char="=" lookAhead="true"/>
-      </context>
-
-
-      <!-- Pod formatting -->
-
-      <context name="PodFormat" attribute="Pod Typename Value" lineEndContext="#stay">
-        <Detect2Chars char="B" char1="&lt;" attribute="Pod Bold" context="#pop!PodFormatB"/>
-        <Detect2Chars char="B" char1="«"    attribute="Pod Bold" context="#pop!PodFormatB2"/>
-        <Detect2Chars char="I" char1="&lt;" attribute="Pod Italic" context="#pop!PodFormatI"/>
-        <Detect2Chars char="I" char1="«"    attribute="Pod Italic" context="#pop!PodFormatI2"/>
-        <Detect2Chars char="L" char1="&lt;" attribute="Pod Link" context="#pop!PodFormatL"/>
-        <Detect2Chars char="L" char1="«"    attribute="Pod Link" context="#pop!PodFormatL2"/>
-        <Detect2Chars char="N" char1="&lt;" attribute="Pod Note" context="#pop!PodFormatN"/>
-        <Detect2Chars char="N" char1="«"    attribute="Pod Note" context="#pop!PodFormatN2"/>
-        <Detect2Chars char="P" char1="&lt;" attribute="Pod Link" context="#pop!PodFormatL"/>
-        <Detect2Chars char="P" char1="«"    attribute="Pod Link" context="#pop!PodFormatL2"/>
-        <Detect2Chars char="Z" char1="&lt;" attribute="Pod Comment" context="#pop!PodFormatZ"/>
-        <Detect2Chars char="Z" char1="«"    attribute="Pod Comment" context="#pop!PodFormatZ2"/>
-        <Detect2Chars char="U" char1="&lt;" attribute="Pod Underline" context="#pop!PodFormatU"/>
-        <Detect2Chars char="U" char1="«"    attribute="Pod Underline" context="#pop!PodFormatU2"/>
-        <Detect2Chars char="C" char1="&lt;" attribute="Pod Verbatim" context="#pop!PodFormatVT"/>
-        <Detect2Chars char="C" char1="«"    attribute="Pod Verbatim" context="#pop!PodFormatVT2"/>
-        <Detect2Chars char="E" char1="&lt;" attribute="Pod Unicode" context="#pop!PodFormatE"/>
-        <Detect2Chars char="E" char1="«"    attribute="Pod Unicode" context="#pop!PodFormatE2"/>
-        <Detect2Chars char="K" char1="&lt;" attribute="Pod Verbatim" context="#pop!PodFormatVT"/>
-        <Detect2Chars char="K" char1="«"    attribute="Pod Verbatim" context="#pop!PodFormatVT2"/>
-        <Detect2Chars char="R" char1="&lt;" attribute="Pod Verbatim" context="#pop!PodFormatVT"/>
-        <Detect2Chars char="R" char1="«"    attribute="Pod Verbatim" context="#pop!PodFormatVT2"/>
-        <Detect2Chars char="T" char1="&lt;" attribute="Pod Verbatim" context="#pop!PodFormatVT"/>
-        <Detect2Chars char="T" char1="«"    attribute="Pod Verbatim" context="#pop!PodFormatVT2"/>
-        <Detect2Chars char="V" char1="&lt;" attribute="Pod Verbatim" context="#pop!PodFormatV"/>
-        <Detect2Chars char="V" char1="«"    attribute="Pod Verbatim" context="#pop!PodFormatV2"/>
-        <Detect2Chars char="X" char1="&lt;" attribute="Pod Indexed Terms" context="#pop!PodFormatX"/>
-        <Detect2Chars char="X" char1="«"    attribute="Pod Indexed Terms" context="#pop!PodFormatX2"/>
-        <Detect2Chars char="M" char1="&lt;" attribute="Pod Verbatim" context="#pop!PodFormatVT"/>
-        <Detect2Chars char="M" char1="«"    attribute="Pod Verbatim" context="#pop!PodFormatVT2"/>
-      </context>
-
-      <context name="PodFormatB" attribute="Pod Bold" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatB1">
-        <DetectChar char="&lt;" attribute="Pod Bold" context="#pop!PodFormatB3"/>
-      </context>
-      <context name="PodFormatB1" attribute="Pod Bold" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Bold" context="#stay" String="&allnopodfmt1;"/>
-        <DetectChar char="&lt;" attribute="Pod Bold" context="PodFormatB1"/>
-        <DetectChar char=">" attribute="Pod Bold" context="#pop"/>
-      </context>
-      <context name="PodFormatB2" attribute="Pod Bold" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Bold" context="#stay" String="&allnopodfmt2;"/>
-        <DetectChar char="«" attribute="Pod Bold" context="PodFormatB2"/>
-        <DetectChar char="»" attribute="Pod Bold" context="#pop"/>
-      </context>
-      <context name="PodFormatB3" attribute="Pod Bold" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Bold" context="#stay" String="&allnopodfmt3;"/>
-        <Detect2Chars char="&lt;" char1="&lt;" attribute="Pod Bold" context="PodFormatB3"/>
-        <Detect2Chars char=">" char1=">" attribute="Pod Bold" context="#pop"/>
-      </context>
-
-      <context name="PodFormatE" attribute="Pod Unicode" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatE1">
-        <DetectChar char="&lt;" attribute="Pod Unicode" context="#pop!PodFormatE3"/>
-      </context>
-      <context name="PodFormatE1" attribute="Pod Unicode" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Unicode" context="#stay" String="&allnopodfmt1;"/>
-        <DetectChar char="&lt;" attribute="Pod Unicode" context="PodFormatE1"/>
-        <DetectChar char=">" attribute="Pod Unicode" context="#pop"/>
-      </context>
-      <context name="PodFormatE2" attribute="Pod Unicode" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Unicode" context="#stay" String="&allnopodfmt2;"/>
-        <DetectChar char="«" attribute="Pod Unicode" context="PodFormatE2"/>
-        <DetectChar char="»" attribute="Pod Unicode" context="#pop"/>
-      </context>
-      <context name="PodFormatE3" attribute="Pod Unicode" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Unicode" context="#stay" String="&allnopodfmt3;"/>
-        <Detect2Chars char="&lt;" char1="&lt;" attribute="Pod Unicode" context="PodFormatE3"/>
-        <Detect2Chars char=">" char1=">" attribute="Pod Unicode" context="#pop"/>
-      </context>
-
-      <context name="PodFormatI" attribute="Pod Italic" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatI1">
-        <DetectChar char="&lt;" attribute="Pod Italic" context="#pop!PodFormatI3"/>
-      </context>
-      <context name="PodFormatI1" attribute="Pod Italic" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Italic" context="#stay" String="&allnopodfmt1;"/>
-        <DetectChar char="&lt;" attribute="Pod Italic" context="PodFormatI1"/>
-        <DetectChar char=">" attribute="Pod Italic" context="#pop"/>
-      </context>
-      <context name="PodFormatI2" attribute="Pod Italic" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Italic" context="#stay" String="&allnopodfmt2;"/>
-        <DetectChar char="«" attribute="Pod Italic" context="PodFormatI2"/>
-        <DetectChar char="»" attribute="Pod Italic" context="#pop"/>
-      </context>
-      <context name="PodFormatI3" attribute="Pod Italic" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Italic" context="#stay" String="&allnopodfmt3;"/>
-        <Detect2Chars char="&lt;" char1="&lt;" attribute="Pod Italic" context="PodFormatI3"/>
-        <Detect2Chars char=">" char1=">" attribute="Pod Italic" context="#pop"/>
-      </context>
-
-      <context name="PodFormatL" attribute="Pod Link" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatL1">
-        <DetectChar char="&lt;" attribute="Pod Link" context="#pop!PodFormatL3"/>
-      </context>
-      <context name="PodFormatL1" attribute="Pod Link" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;&lt;>|]+|[&podfmt;](?![&lt;«]))+"/>
-        <DetectChar char="|" attribute="Pod Operator" context="#stay"/>
-        <DetectChar char=">" attribute="Pod Link" context="#pop"/>
-      </context>
-      <context name="PodFormatL2" attribute="Pod Link" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;«»|]+|[&podfmt;](?![&lt;«]))+"/>
-        <DetectChar char="|" attribute="Pod Operator" context="#stay"/>
-        <DetectChar char="»" attribute="Pod Link" context="#pop"/>
-      </context>
-      <context name="PodFormatL3" attribute="Pod Link" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;&lt;>|]+|[&podfmt;](?![&lt;«])|>(?!>)|&lt;(?!&lt;))+"/>
-        <DetectChar char="|" attribute="Pod Operator" context="#stay"/>
-        <Detect2Chars char=">" char1=">" attribute="Pod Link" context="#pop"/>
-      </context>
-
-      <context name="PodFormatN" attribute="Pod Note" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatN1">
-        <DetectChar char="&lt;" attribute="Pod Note" context="#pop!PodFormatN3"/>
-      </context>
-      <context name="PodFormatN1" attribute="Pod Note" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Note" context="#stay" String="&allnopodfmt1;"/>
-        <DetectChar char="&lt;" attribute="Pod Note" context="PodFormatN1"/>
-        <DetectChar char=">" attribute="Pod Note" context="#pop"/>
-      </context>
-      <context name="PodFormatN2" attribute="Pod Note" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Note" context="#stay" String="&allnopodfmt2;"/>
-        <DetectChar char="«" attribute="Pod Note" context="PodFormatN2"/>
-        <DetectChar char="»" attribute="Pod Note" context="#pop"/>
-      </context>
-      <context name="PodFormatN3" attribute="Pod Note" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Note" context="#stay" String="&allnopodfmt3;"/>
-        <Detect2Chars char="&lt;" char1="&lt;" attribute="Pod Note" context="PodFormatN3"/>
-        <Detect2Chars char=">" char1=">" attribute="Pod Note" context="#pop"/>
-      </context>
-
-      <context name="PodFormatU" attribute="Pod Underline" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatU1">
-        <DetectChar char="&lt;" attribute="Pod Underline" context="#pop!PodFormatU3"/>
-      </context>
-      <context name="PodFormatU1" attribute="Pod Underline" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Underline" context="#stay" String="&allnopodfmt1;"/>
-        <DetectChar char="&lt;" attribute="Pod Underline" context="PodFormatU1"/>
-        <DetectChar char=">" attribute="Pod Underline" context="#pop"/>
-      </context>
-      <context name="PodFormatU2" attribute="Pod Underline" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Underline" context="#stay" String="&allnopodfmt2;"/>
-        <DetectChar char="«" attribute="Pod Underline" context="PodFormatU2"/>
-        <DetectChar char="»" attribute="Pod Underline" context="#pop"/>
-      </context>
-      <context name="PodFormatU3" attribute="Pod Underline" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Underline" context="#stay" String="&allnopodfmt3;"/>
-        <Detect2Chars char="&lt;" char1="&lt;" attribute="Pod Underline" context="PodFormatU3"/>
-        <Detect2Chars char=">" char1=">" attribute="Pod Underline" context="#pop"/>
-      </context>
-
-      <context name="PodFormatV" attribute="Pod Verbatim" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatV1">
-        <DetectChar char="&lt;" attribute="Pod Verbatim" context="#pop!PodFormatV3"/>
-      </context>
-      <context name="PodFormatV1" attribute="Pod Verbatim" lineEndContext="#stay">
-        <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt1;"/>
-        <DetectChar char="&lt;" attribute="Pod Verbatim" context="PodFormatV1"/>
-        <DetectChar char=">" attribute="Pod Verbatim" context="#pop"/>
-      </context>
-      <context name="PodFormatV2" attribute="Pod Verbatim" lineEndContext="#stay">
-        <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt2;"/>
-        <DetectChar char="«" attribute="Pod Verbatim" context="PodFormatV2"/>
-        <DetectChar char="»" attribute="Pod Verbatim" context="#pop"/>
-      </context>
-      <context name="PodFormatV3" attribute="Pod Verbatim" lineEndContext="#stay">
-        <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt3;"/>
-        <Detect2Chars char="&lt;" char1="&lt;" attribute="Pod Verbatim" context="PodFormatV3"/>
-        <Detect2Chars char=">" char1=">" attribute="Pod Verbatim" context="#pop"/>
-      </context>
-
-      <context name="PodFormatVT" attribute="Pod Verbatim" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatVT1">
-        <DetectChar char="&lt;" attribute="Pod Verbatim" context="#pop!PodFormatVT3"/>
-      </context>
-      <context name="PodFormatVT1" attribute="Pod Verbatim" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt1;"/>
-        <DetectChar char="&lt;" attribute="Pod Verbatim" context="PodFormatVT1"/>
-        <DetectChar char=">" attribute="Pod Verbatim" context="#pop"/>
-      </context>
-      <context name="PodFormatVT2" attribute="Pod Verbatim" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt2;"/>
-        <DetectChar char="«" attribute="Pod Verbatim" context="PodFormatVT2"/>
-        <DetectChar char="»" attribute="Pod Verbatim" context="#pop"/>
-      </context>
-      <context name="PodFormatVT3" attribute="Pod Verbatim" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt3;"/>
-        <Detect2Chars char="&lt;" char1="&lt;" attribute="Pod Verbatim" context="PodFormatVT3"/>
-        <Detect2Chars char=">" char1=">" attribute="Pod Verbatim" context="#pop"/>
-      </context>
-
-      <context name="PodFormatZ" attribute="Pod Comment" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatZ1">
-        <DetectChar char="&lt;" attribute="Pod Comment" context="#pop!PodFormatZ3"/>
-      </context>
-      <context name="PodFormatZ1" attribute="Pod Comment" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Comment" context="#stay" String="&allnopodfmt1;"/>
-        <DetectChar char="&lt;" attribute="Pod Comment" context="PodFormatZ1"/>
-        <DetectChar char=">" attribute="Pod Comment" context="#pop"/>
-      </context>
-      <context name="PodFormatZ2" attribute="Pod Comment" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Comment" context="#stay" String="&allnopodfmt2;"/>
-        <DetectChar char="«" attribute="Pod Comment" context="PodFormatZ2"/>
-        <DetectChar char="»" attribute="Pod Comment" context="#pop"/>
-      </context>
-      <context name="PodFormatZ3" attribute="Pod Comment" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Comment" context="#stay" String="&allnopodfmt3;"/>
-        <Detect2Chars char="&lt;" char1="&lt;" attribute="Pod Comment" context="PodFormatZ3"/>
-        <Detect2Chars char=">" char1=">" attribute="Pod Comment" context="#pop"/>
-      </context>
-
-      <context name="PodFormatX" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatX1">
-        <DetectChar char="&lt;" attribute="Pod Indexed Terms" context="#pop!PodFormatX3"/>
-      </context>
-      <context name="PodFormatX1" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;&lt;>|;,]+|[&podfmt;](?![&lt;«]))+"/>
-        <AnyChar String="|;," attribute="Pod Operator" context="#stay"/>
-        <DetectChar char=">" attribute="Pod Indexed Terms" context="#pop"/>
-      </context>
-      <context name="PodFormatX2" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;«»|;,]+|[&podfmt;](?![&lt;«]))+"/>
-        <AnyChar String="|;," attribute="Pod Operator" context="#stay"/>
-        <DetectChar char="«" attribute="Pod Indexed Terms" context="PodFormatX2"/>
-        <DetectChar char="»" attribute="Pod Indexed Terms" context="#pop"/>
-      </context>
-      <context name="PodFormatX3" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">
-        <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;&lt;>|;,]+|[&podfmt;](?![&lt;«])|>(?!>)|&lt;(?!&lt;))+"/>
-        <AnyChar String="|;," attribute="Pod Operator" context="#stay"/>
-        <Detect2Chars char="&lt;" char1="&lt;" attribute="Pod Indexed Terms" context="PodFormatX3"/>
-        <Detect2Chars char=">" char1=">" attribute="Pod Indexed Terms" context="#pop"/>
-      </context>
-
-      <!-- Pod =begin -->
-
-      <context name="PodBegin" attribute="Pod Typename Value" lineEndContext="#pop#pop!Error">
-        <DetectSpaces attribute="Normal Text"/>
-        <WordDetect String="code" context="PodBeginCode" attribute="Pod Typename Value" beginRegion="pod"/>
-        <WordDetect String="comment" context="PodBeginComment" attribute="Pod Typename Value" beginRegion="pod"/>
-        <RegExpr String="(&ident;)" context="PodBeginTypename" attribute="Pod Typename Value" beginRegion="pod"/>
-        <!-- auto-completion only -->
-        <keyword String="podblocktypename" context="#stay" attribute="Pod Typename Value"/>
-      </context>
-
-      <context name="PodBeginCode" attribute="Error" lineEndContext="PodInnerCode">
-        <DetectSpaces attribute="Normal Text"/>
-        <DetectChar char=":" context="PodBlockConfigKey" attribute="Pod Operator"/>
-        <DetectChar char="=" context="PodEndCode" attribute="Pod" firstNonSpace="1"/>
-      </context>
-
-      <context name="PodInnerCode" attribute="Pod Verbatim" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodCode">
-        <RegExpr String="^\s*=end\s+code\s*$" context="#pop" attribute="Pod" column="0" lookAhead="1"/>
-      </context>
-      <context name="PodCode" attribute="Pod Verbatim" lineEndContext="#pop"/>
-
-      <context name="PodEndCode" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop">
-        <StringDetect String="end" context="PodEndCodeName" attribute="Pod Block" endRegion="pod"/>
-      </context>
-      <context name="PodEndCodeName" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop#pop!Error">
-        <DetectSpaces attribute="Normal Text"/>
-        <StringDetect String="code" context="#pop#pop#pop#pop!Error" attribute="Pod Typename Value"/>
-      </context>
-
-
-      <context name="PodBeginComment" attribute="Error" lineEndContext="PodInnerComment">
-        <DetectSpaces attribute="Normal Text"/>
-        <DetectChar char="=" context="PodEndComment" attribute="Pod" firstNonSpace="1"/>
-      </context>
-
-      <context name="PodInnerComment" attribute="Comment" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodComment">
-        <RegExpr String="^\s*=end\s+comment\s*$" context="#pop" attribute="Pod" column="0" lookAhead="1"/>
-      </context>
-      <context name="PodComment" attribute="Comment" lineEndContext="#pop"/>
-
-      <context name="PodEndComment" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop">
-        <StringDetect String="end" context="PodEndCommentName" attribute="Pod Block" endRegion="pod"/>
-      </context>
-      <context name="PodEndCommentName" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop#pop!Error">
-        <DetectSpaces attribute="Normal Text"/>
-        <StringDetect String="comment" context="#pop#pop#pop#pop!Error" attribute="Pod Typename Value"/>
-      </context>
-
-
-      <context name="PodBeginTypename" attribute="Error" lineEndContext="PodInnerBlock">
-        <RegExpr String="^\s*=end\s+%1\b" dynamic="1" context="PodEnd" attribute="Pod" column="0" lookAhead="1"/>
-        <DetectSpaces attribute="Normal Text"/>
-        <DetectChar char=":" context="PodBlockConfigKey" attribute="Pod Operator"/>
-        <DetectChar char="=" context="PodEndError" attribute="Pod" firstNonSpace="1"/>
-      </context>
-
-      <context name="PodInnerBlock" attribute="Pod Paragraph" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodInnerBlockFormat">
-        <RegExpr String="^\s*=end\b" context="#pop" attribute="Pod" column="0" lookAhead="1"/>
-        <DetectSpaces/>
-        <DetectChar char="=" context="StartPod" attribute="Pod" firstNonSpace="1"/>
-        <RegExpr attribute="Pod Paragraph" context="#stay" String="&allnopodfmt;"/>
-      </context>
-
-      <context name="PodInnerBlockFormat" attribute="Pod Paragraph" lineEndContext="#stay">
-        <IncludeRules context="PodFormat"/>
-      </context>
-
-      <context name="PodEnd" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop">
-        <DetectSpaces attribute="Normal Text"/>
-        <DetectChar char="=" context="#stay" attribute="Pod"/>
-        <StringDetect String="end" context="PodEndName" attribute="Pod Block" endRegion="pod"/>
-      </context>
-      <context name="PodEndName" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop#pop">
-        <DetectSpaces attribute="Normal Text"/>
-        <RegExpr String="&ident;" context="#pop#pop#pop#pop!Error" attribute="Pod Typename Value"/>
-      </context>
-
-      <context name="PodEndError" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop">
-        <StringDetect String="end" attribute="Pod Block" context="#pop#pop#pop!Error" endRegion="pod"/>
-      </context>
-
-      <!-- Pod configuration for =begin -->
-
-      <context name="PodBlockConfigError" attribute="Error" lineEndContext="#pop#pop!PodInnerBlock"/>
-
-      <context name="PodBlockConfigKey" attribute="Pod Key" lineEndContext="#pop!PodInnerBlock" fallthrough="1" fallthroughContext="PodBlockConfigError">
-        <DetectChar char="!" context="#pop!PodBlockConfigKeyName" attribute="Pod Operator"/>
-        <Int context="PodBlockConfigKeyIntName" attribute="Decimal"/>
-        <DetectIdentifier context="PodBlockConfigParam" attribute="Pod Key"/>
-      </context>
-
-      <context name="PodBlockConfigKeyName" attribute="Pod Key" lineEndContext="#pop!PodTypenameValue" fallthrough="1" fallthroughContext="PodBlockConfigError">
-        <DetectIdentifier context="PodBlockConfigParam" attribute="Pod Key"/>
-      </context>
-
-      <context name="PodBlockConfigKeyIntName" attribute="Pod Key" lineEndContext="#pop#pop!PodBlockConfigError" fallthrough="1" fallthroughContext="#pop!PodBlockConfigError">
-        <DetectIdentifier context="#pop#pop" attribute="Pod Key"/>
-      </context>
-
-      <context name="PodBlockConfigParam" attribute="Pod Key" lineEndContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop">
-        <DetectChar char="&lt;" context="PodParamSequence" attribute="Pod Operator"/>
-        <DetectChar char="{" context="PodParamHash" attribute="Pod Operator"/>
-        <AnyChar String="([" context="PodParamList" attribute="Pod Operator"/>
-      </context>
-
-
-      <!-- Pod =for -->
-
-      <context name="PodFor" attribute="Pod Typename" lineEndContext="#pop#pop!Error" fallthrough="1" fallthroughContext="#pop#pop!Error">
-        <DetectSpaces attribute="Normal Text"/>
-        <keyword String="podtypename" context="#pop!PodConfig" attribute="Pod Typename"/>
-      </context>
-
-      <!-- Pod configuration for =for -->
-
-      <context name="PodConfigError" attribute="Error" lineEndContext="#pop#pop!PodTypenameValue"/>
-
-      <context name="PodConfig" attribute="Normal Text" lineEndContext="#pop!PodTypenameValue" fallthrough="1" fallthroughContext="PodConfigError">
-        <DetectSpaces/>
-        <DetectChar char=":" context="PodConfigKey" attribute="Pod Operator"/>
-      </context>
-
-      <context name="PodConfigKey" attribute="Pod Key" lineEndContext="#pop#pop!PodTypenameValue" fallthrough="1" fallthroughContext="#pop!PodConfigError">
-        <DetectChar char="!" context="#pop!PodConfigKeyName" attribute="Pod Operator"/>
-        <Int context="PodConfigKeyIntName" attribute="Decimal"/>
-        <DetectIdentifier context="PodConfigParam" attribute="Pod Key"/>
-      </context>
-
-      <context name="PodConfigKeyName" attribute="Pod Key" lineEndContext="#pop#pop!PodTypenameValue" fallthrough="1" fallthroughContext="#pop!PodConfigError">
-        <DetectIdentifier context="PodConfigParam" attribute="Pod Key"/>
-      </context>
-
-      <context name="PodConfigKeyIntName" attribute="Pod Key" lineEndContext="#pop#pop#pop!PodConfigError" fallthrough="1" fallthroughContext="#pop#pop!PodConfigError">
-        <DetectIdentifier context="#pop#pop" attribute="Pod Key"/>
-      </context>
-
-      <context name="PodConfigParam" attribute="Pod Key" lineEndContext="#pop#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop">
-        <DetectChar char="&lt;" context="PodParamSequence" attribute="Pod Operator"/>
-        <DetectChar char="{" context="PodParamHash" attribute="Pod Operator"/>
-        <AnyChar String="([" context="PodParamList" attribute="Pod Operator"/>
-      </context>
-
-      <context name="PodParamSequence" attribute="Pod Config" lineEndContext="#stay">
-        <DetectSpaces/>
-        <keyword String="podvalue" context="#stay" attribute="Data Type"/>
-        <DetectIdentifier/>
-        <AnyChar String="0123456789." context="Number" lookAhead="1"/>
-        <DetectChar char=">" context="#pop#pop#pop" attribute="Pod Operator"/>
-        <DetectChar char="'" context="PodSQString" attribute="String"/>
-        <DetectChar char="&quot;" context="PodQString" attribute="String"/>
-      </context>
-
-      <context name="PodParamHash" attribute="Pod Config" lineEndContext="#stay">
-        <DetectSpaces/>
-        <Detect2Chars char="=" char1=">" context="#stay" attribute="Pod Operator"/>
-        <DetectChar char="," context="#stay" attribute="Pod Operator"/>
-        <keyword String="podvalue" context="#stay" attribute="Data Type"/>
-        <DetectIdentifier/>
-        <DetectChar char="'" context="PodSQString" attribute="String"/>
-        <DetectChar char="&quot;" context="PodQString" attribute="String"/>
-        <AnyChar String="0123456789." context="Number" lookAhead="1"/>
-        <DetectChar char="}" context="#pop#pop#pop" attribute="Pod Operator"/>
-      </context>
-
-      <context name="PodParamList" attribute="Pod Config" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectChar char="," context="#stay" attribute="Pod Operator"/>
-        <keyword String="podvalue" context="#stay" attribute="Data Type"/>
-        <DetectIdentifier/>
-        <DetectChar char="'" context="PodSQString" attribute="String"/>
-        <DetectChar char="&quot;" context="PodQString" attribute="String"/>
-        <AnyChar String="0123456789." context="Number" lookAhead="1"/>
-        <AnyChar String="])" context="#pop#pop#pop" attribute="Pod Operator"/>
-      </context>
-
-
-      <!-- Pod String -->
-
-      <context name="PodSQString" attribute="String" lineEndContext="#stay">
-        <Detect2Chars char="\" char1="'" context="#stay" attribute="String Special Character"/>
-        <DetectChar char="'" context="#pop" attribute="String Delimiter"/>
-        <RegExpr String="(?:[^\\']*|\\[^']|\\$)*" context="#stay" attribute="String"/>
-      </context>
-
-      <context name="PodQString" attribute="String" lineEndContext="#stay">
-        <DetectChar char="&quot;" context="#pop" attribute="String Delimiter"/>
-        <DetectChar char="\" context="SpecialChar" attribute="String Special Character"/>
-        <RegExpr String="(?:[^&quot;\\]*|\\$)*" context="#stay" attribute="String"/>
-      </context>
-
-      <context name="find_SpecialChar" attribute="String Special Character" lineEndContext="#stay">
-        <Detect2Chars char="c" char1="[" context="UnicodeCodepoint" attribute="String Special Character"/>
-        <DetectChar char="c" context="UnicodeCodepointDecimal" attribute="String Special Character"/>
-        <DetectChar char="x" context="HexaString" attribute="String Special Character"/>
-        <DetectChar char="o" context="OctalString" attribute="String Special Character"/>
-      </context>
-
-      <context name="SpecialChar" attribute="String Special Character" lineEndContext="#pop">
-        <IncludeRules context="find_SpecialChar"/>
-        <RegExpr String="." context="#pop" attribute="String"/>
-      </context>
-
-      <context name="UnicodeCodepoint" attribute="String Special Character" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectIdentifier/>
-        <DetectChar char="]" context="#pop#pop" attribute="String Special Character"/>
-        <DetectChar char="," context="#stay" attribute="Separator Symbol"/>
-      </context>
-
-      <context name="UnicodeCodepointDecimal" attribute="String Special Character" lineEndContext="#pop#pop">
-        <!-- 0 to 1114111 -->
-        <RegExpr String="0*(?:1(?:0\d{5}|1(?:O\d{4}|(?:1[0-3]\d{3}|4(?:0\d\d|1(?:0\d|1[01]))))))|\d{1,6}|0+" context="UnicodeCodepointDecimalCheck" attribute="String Special Character"/>
-        <RegExpr String="[^&quot;]" context="#pop" attribute="Error"/>
-      </context>
-      <context name="UnicodeCodepointDecimalCheck" attribute="Error" lineEndContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop">
-        <AnyChar String="0123456789" context="#pop#pop#pop" attribute="Error"/>
-      </context>
-
-      <context name="HexaString" attribute="String Special Character" lineEndContext="#pop#pop">
-        <DetectChar char="[" context="HexaStringBracket" attribute="String Special Character"/>
-        <!-- 0 to 0x10FFFF -->
-        <RegExpr String="0*(?:10[0-9a-fA-F]{4}|[0-9a-fA-F]{1,5})|0+" context="HexaStringCheck" attribute="String Special Character"/>
-        <RegExpr String="[^&quot;]" context="#pop#pop" attribute="Error"/>
-      </context>
-      <context name="HexaStringCheck" attribute="Error" lineEndContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop">
-        <AnyChar String="0123456789abcdefABCDEF" context="#pop#pop#pop" attribute="Error"/>
-      </context>
-      <context name="HexaStringBracket" attribute="String Special Character" lineEndContext="#stay">
-        <DetectSpaces/>
-        <DetectChar char="]" context="#pop#pop#pop" attribute="Error"/>
-        <!-- 0 to 0x10FFFF -->
-        <RegExpr String="0*(?:10[0-9a-fA-F]{4}|[0-9a-fA-F]{1,5})|0+" context="HexaStringBracketCheck" attribute="String Special Character"/>
-      </context>
-      <context name="HexaStringBracketCheck" attribute="String Special Character" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop#pop#pop">
-        <DetectChar char="]" context="#pop#pop#pop#pop" attribute="String Special Character"/>
-        <DetectChar char="," context="#pop" attribute="Separator Symbol"/>
-        <RegExpr String="[^]&quot;]" context="#stay" attribute="Error"/>
-      </context>
-
-      <context name="OctalString" attribute="String Special Character" lineEndContext="#pop#pop">
-        <DetectChar char="[" context="OctalStringBracket" attribute="String Special Character"/>
-        <!-- 0 to 0o4177777 -->
-        <RegExpr String="0*(?:[0-3][0-7]{6}|4[01]|[0-7])[0-7]{0,5}|0+" context="OctalStringCheck" attribute="String Special Character"/>
-        <RegExpr String="[^&quot;]" context="#stay" attribute="Error"/>
-      </context>
-      <context name="OctalStringCheck" attribute="Error" lineEndContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop">
-        <AnyChar String="01234567" context="#pop#pop#pop" attribute="Error"/>
-      </context>
-      <context name="OctalStringBracket" attribute="String Special Character" lineEndContext="#stay">
-        <DetectChar char="]" context="#pop#pop#pop" attribute="Error"/>
-        <!-- 0 to 0o4177777 -->
-        <RegExpr String="0*(?:[0-3][0-7]{6}|4[01]|[0-7])[0-7]{0,5}|0+" context="OctalStringBracketCheck" attribute="String Special Character"/>
-      </context>
-      <context name="OctalStringBracketCheck" attribute="String Special Character" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop#pop#pop">
-        <DetectChar char="]" context="#pop#pop#pop#pop" attribute="String Special Character"/>
-        <DetectChar char="," context="#pop" attribute="Separator Symbol"/>
-        <RegExpr String="[^]&quot;]" context="#stay" attribute="Error"/>
-      </context>
-
-
-      <!-- Q String -->
-
-      <context name="Q_String" attribute="String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">
-        <DetectSpaces attribute="String"/>
-        <DetectChar char=":" context="#pop!Q_StringModifier" attribute="Operator"/>
-        <DetectChar char="(" context="#pop!Q_String(" attribute="String Delimiter"/>
-        <DetectChar char="[" context="#pop!Q_String[" attribute="String Delimiter"/>
-        <DetectChar char="{" context="#pop!Q_String{" attribute="String Delimiter"/>
-        <DetectChar char="｢" context="#pop!Q_String｢" attribute="String Delimiter"/>
-        <DetectChar char="&lt;" context="#pop!Q_String&lt;" attribute="String Delimiter"/>
-        <RegExpr String="([^()>｣\]}'&_rangealphabetic;&rangenumeric;])" context="#pop!Q_StringAny" attribute="String Delimiter"/>
-      </context>
-
-      <context name="Q_String(" attribute="String" lineEndContext="#stay">
-        <DetectChar char=")" context="#pop" attribute="String Delimiter"/>
-        <DetectChar char="(" context="Q_String(" attribute="String Delimiter"/>
-        <RegExpr String="[^()]*" context="#stay" attribute="String"/>
-      </context>
-
-      <context name="Q_String[" attribute="String" lineEndContext="#stay">
-        <DetectChar char="]" context="#pop" attribute="String Delimiter"/>
-        <DetectChar char="[" context="Q_String[" attribute="String Delimiter"/>
-        <RegExpr String="[^\[\]]*" context="#stay" attribute="String"/>
-      </context>
-
-      <context name="Q_String{" attribute="String" lineEndContext="#stay">
-        <DetectChar char="}" context="#pop" attribute="String Delimiter"/>
-        <DetectChar char="{" context="Q_String{" attribute="String Delimiter"/>
-        <RegExpr String="[^{}]*" context="#stay" attribute="String"/>
-      </context>
-
-      <context name="Q_String｢" attribute="String" lineEndContext="#stay">
-        <DetectChar char="｣" context="#pop" attribute="String Delimiter"/>
-        <DetectChar char="｢" context="Q_String｢" attribute="String Delimiter"/>
-        <RegExpr String="[^｢｣]*" context="#stay" attribute="String"/>
-      </context>
-
-      <context name="Q_String&lt;" attribute="String" lineEndContext="#stay">
-        <DetectChar char=">" context="#pop" attribute="String Delimiter"/>
-        <DetectChar char="&lt;" context="Q_String&lt;" attribute="String Delimiter"/>
-        <RegExpr String="[^&lt;>]*" context="#stay" attribute="String"/>
-      </context>
-
-      <context name="Q_StringAny" attribute="String" lineEndContext="#stay">
-        <DetectChar char="1" dynamic="1" context="#pop" attribute="String Delimiter"/>
-        <RegExpr String="[^%1]*" dynamic="1" context="#stay" attribute="String"/>
-      </context>
-
-      <context name="q_Q_StringModifier" attribute="Operator" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop!q_String">
-        <DetectChar char=":" context="#pop#pop!q_QuotingForm2" attribute="Operator"/>
-      </context>
-
-      <context name="qq_Q_StringModifier" attribute="Operator" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop!qq_String">
-        <DetectChar char=":" context="#pop!qq_QuotingForm" attribute="Operator"/>
-      </context>
-
-      <context name="Q_StringModifier" attribute="Operator" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!q_QuotingForm2">
-        <DetectChar char="q" context="#pop!q_QuotingForm" attribute="Operator"/>
-        <DetectChar char="'" context="q_Q_StringModifier" attribute="Operator"/>
-        <DetectChar char="&quot;" context="qq_Q_StringModifier" attribute="Operator"/>
-      </context>
-
-      <context name="q_QuotingForm" attribute="Operator" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop!q_QuotingForm2">
-        <DetectChar char="q" context="#pop!qq_QuotingForm" attribute="Operator"/>
-        <DetectChar char=":" context="#pop!q_QuotingForm2" attribute="Operator"/>
-      </context>
-      <context name="q_QuotingForm2" attribute="Operator" lineEndContext="#pop" fallthrough="1" fallthroughContext="q_String">
-        <WordDetect String="heredoc" context="q_Heredoc" attribute="Operator"/>
-        <keyword String="quoting" context="#stay" attribute="Operator"/>
-        <AnyChar String="wvx:sahfb" context="#stay" attribute="Operator"/>
-        <!-- :closure as qq -->
-        <DetectChar char="c" context="#pop!qq_QuotingForm" attribute="Operator"/>
-        <Detect2Chars char="t" char1="o" context="q_Heredoc" attribute="Operator"/>
-      </context>
-
-      <context name="qq_QuotingForm" attribute="Operator" lineEndContext="#pop" fallthrough="1" fallthroughContext="qq_String">
-        <WordDetect String="heredoc" context="qq_Heredoc" attribute="Operator"/>
-        <keyword String="quoting" context="#stay" attribute="Operator"/>
-        <AnyChar String="wvx:sahfcb" context="#stay" attribute="Operator"/>
-        <Detect2Chars char="t" char1="o" context="qq_Heredoc" attribute="Operator"/>
-      </context>
-
-
-      <!-- q and qq Heredoc -->
-
-      <context name="q_Heredoc" attribute="String" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop">
-        <RegExpr String="/([^/]+)/" context="q_HeredocTerminator" attribute="String Delimiter"/>
-      </context>
-      <context name="q_HeredocTerminator" attribute="String" lineEndContext="#stay">
-        <DetectSpaces/>
-        <StringDetect String="%1" dynamic="1" context="#pop#pop#pop" attribute="String Delimiter" firstNonSpace="1"/>
-        <RegExpr String="(?:[^\\]*|\\(?![\\%1]|&quotingconstruct;|$))*" dynamic="1" context="#stay" attribute="String"/>
-        <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>
-      </context>
-
-      <context name="qq_Heredoc" attribute="String" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop">
-        <RegExpr String="/([^/]+)/" context="qq_HeredocTerminator" attribute="String Delimiter"/>
-      </context>
-      <context name="qq_HeredocTerminator" attribute="String" lineEndContext="#stay">
-        <DetectSpaces/>
-        <StringDetect String="%1" dynamic="1" context="#pop#pop#pop" attribute="String Delimiter" firstNonSpace="1"/>
-        <IncludeRules context="find_qq_StringCommon"/>
-        <RegExpr String="[^\\${@&amp;]*" context="#stay" attribute="String"/>
-      </context>
-
-
-      <!-- q String -->
-
-      <context name="q_String" attribute="String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop">
-        <DetectSpaces/>
-        <DetectChar char="(" context="#pop#pop!q_String(" attribute="String Delimiter"/>
-        <DetectChar char="[" context="#pop#pop!q_String[" attribute="String Delimiter"/>
-        <DetectChar char="{" context="#pop#pop!q_String{" attribute="String Delimiter"/>
-        <DetectChar char="&lt;" context="#pop#pop!q_String&lt;" attribute="String Delimiter"/>
-        <RegExpr String="([^a-zA-Z0-9])" context="#pop#pop!q_StringAny" attribute="String Delimiter"/>
-      </context>
-
-      <context name="q_String(" attribute="String" lineEndContext="#stay">
-        <DetectChar char=")" context="#pop" attribute="String Delimiter"/>
-        <DetectChar char="(" context="q_String(" attribute="String Delimiter"/>
-        <Detect2Chars char="\" char1="(" context="#stay" attribute="String Special Character"/>
-        <Detect2Chars char="\" char1=")" context="#stay" attribute="String Special Character"/>
-        <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/>
-        <RegExpr String="(?:[^()\\]*|\\(?![()\\]|&quotingconstruct;|$))*" context="#stay" attribute="String"/>
-        <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>
-      </context>
-
-      <context name="q_String[" attribute="String" lineEndContext="#stay">
-        <DetectChar char="]" context="#pop" attribute="String Delimiter"/>
-        <DetectChar char="[" context="q_String[" attribute="String Delimiter"/>
-        <Detect2Chars char="\" char1="[" context="#stay" attribute="String Special Character"/>
-        <Detect2Chars char="\" char1="]" context="#stay" attribute="String Special Character"/>
-        <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/>
-        <RegExpr String="(?:[^\[\]\\]*|\\(?![\[\]\\]|&quotingconstruct;|$))*" context="#stay" attribute="String"/>
-        <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>
-      </context>
-
-      <context name="q_String{" attribute="String" lineEndContext="#stay">
-        <DetectChar char="}" context="#pop" attribute="String Delimiter"/>
-        <DetectChar char="{" context="q_String{" attribute="String Delimiter"/>
-        <Detect2Chars char="\" char1="{" context="#stay" attribute="String Special Character"/>
-        <Detect2Chars char="\" char1="}" context="#stay" attribute="String Special Character"/>
-        <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/>
-        <RegExpr String="(?:[^{}\\]*|\\(?![{}\\]|&quotingconstruct;|$))*" context="#stay" attribute="String"/>
-        <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>
-      </context>
-
-      <context name="q_String&lt;" attribute="String" lineEndContext="#stay">
-        <DetectChar char=">" context="#pop" attribute="String Delimiter"/>
-        <DetectChar char="&lt;" context="q_String&lt;" attribute="String Delimiter"/>
-        <Detect2Chars char="\" char1="&lt;" context="#stay" attribute="String Special Character"/>
-        <Detect2Chars char="\" char1=">" context="#stay" attribute="String Special Character"/>
-        <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/>
-        <RegExpr String="(?:[^&lt;>\\]*|\\(?![&lt;>\\]|&quotingconstruct;|$))*" context="#stay" attribute="String"/>
-        <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>
-      </context>
-
-      <context name="q_StringAny" attribute="String" lineEndContext="#stay">
-        <DetectChar char="1" dynamic="1" context="#pop" attribute="String Delimiter"/>
-        <StringDetect String="\%1" dynamic="1" context="#stay" attribute="String Special Character"/>
-        <RegExpr String="(?:[^\\%1]*|\\(?![\\%1]|&quotingconstruct;|$))*" dynamic="1" context="#stay" attribute="String"/>
-        <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>
-      </context>
-
-      <context name="q_RawString" attribute="String" lineEndContext="#stay">
-        <DetectChar char="'" context="#pop" attribute="String Delimiter"/>
-        <Detect2Chars char="\" char1="'" context="#stay" attribute="String Special Character"/>
-        <RegExpr String="(?:[^\\']*|\\(?![\\']|&quotingconstruct;|$))*" context="#stay" attribute="String"/>
-        <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>
-      </context>
-
-      <!-- qq String -->
-
-      <context name="qq_String" attribute="String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop">
-        <DetectSpaces/>
-        <DetectChar char="(" context="#pop#pop!qq_String(" attribute="String Delimiter"/>
-        <DetectChar char="[" context="#pop#pop!qq_String[" attribute="String Delimiter"/>
-        <DetectChar char="{" context="#pop#pop!qq_String{" attribute="String Delimiter"/>
-        <DetectChar char="&lt;" context="#pop#pop!qq_String&lt;" attribute="String Delimiter"/>
-        <RegExpr String="([^a-zA-Z0-9])" context="#pop#pop!qq_StringAny" attribute="String Delimiter"/>
-      </context>
-
-      <context name="qq_String(" attribute="String" lineEndContext="#stay">
-        <DetectChar char=")" context="#pop" attribute="String Delimiter"/>
-        <DetectChar char="(" context="qq_String(" attribute="String Delimiter"/>
-        <IncludeRules context="find_qq_StringCommon"/>
-        <RegExpr String="[^()\\${@&amp;]*" context="#stay" attribute="String"/>
-      </context>
-
-      <context name="qq_String[" attribute="String" lineEndContext="#stay">
-        <DetectChar char="]" context="#pop" attribute="String Delimiter"/>
-        <DetectChar char="[" context="qq_String[" attribute="String Delimiter"/>
-        <IncludeRules context="find_qq_StringCommon"/>
-        <RegExpr String="[^\[\]\\${@&amp;]*" context="#stay" attribute="String"/>
-      </context>
-
-      <context name="qq_String{" attribute="String" lineEndContext="#stay">
-        <DetectChar char="}" context="#pop" attribute="String Delimiter"/>
-        <DetectChar char="{" context="qq_String{" attribute="String Delimiter"/>
-        <IncludeRules context="find_qq_StringCommon"/>
-        <RegExpr String="[^{}\\$@&amp;]*" context="#stay" attribute="String"/>
-      </context>
-
-      <context name="qq_String&lt;" attribute="String" lineEndContext="#stay">
-        <DetectChar char=">" context="#pop" attribute="String Delimiter"/>
-        <DetectChar char="&lt;" context="qq_String&lt;" attribute="String Delimiter"/>
-        <IncludeRules context="find_qq_StringCommon"/>
-        <RegExpr String="[^&lt;>\\${@&amp;]*" context="#stay" attribute="String"/>
-      </context>
-
-      <context name="qq_String«" attribute="String" lineEndContext="#stay">
-        <DetectChar char="»" context="#pop" attribute="String Delimiter"/>
-        <DetectChar char="«" context="qq_String«" attribute="String Delimiter"/>
-        <IncludeRules context="find_qq_StringCommon"/>
-        <RegExpr String="[^«»\\${@&amp;]*" context="#stay" attribute="String"/>
-      </context>
-
-      <context name="qq_String&lt;&lt;" attribute="String" lineEndContext="#stay">
-        <Detect2Chars char=">" char1=">" context="#pop" attribute="String Delimiter"/>
-        <Detect2Chars char="&lt;" char1="&lt;" context="qq_String&lt;&lt;" attribute="String Delimiter"/>
-        <IncludeRules context="find_qq_StringCommon"/>
-        <RegExpr String="([^&lt;>\\${@&amp;]*|&lt;(?!&lt;)|>(?!>))" context="#stay" attribute="String"/>
-      </context>
-
-      <context name="qq_StringAny" attribute="String" lineEndContext="#stay">
-        <DetectChar char="1" dynamic="1" context="#pop" attribute="String Delimiter"/>
-        <StringDetect String="\%1" dynamic="1" context="#stay" attribute="String Special Character"/>
-        <IncludeRules context="find_qq_StringCommon"/>
-        <RegExpr String="[^%1\\${@&amp;]*" dynamic="1" context="#stay" attribute="String"/>
-      </context>
-
-      <context name="qq_RawString" attribute="String" lineEndContext="#stay">
-        <DetectChar char="&quot;" context="#pop" attribute="String Delimiter"/>
-        <IncludeRules context="find_qq_StringCommon"/>
-        <RegExpr String="[^\\&quot;${@&amp;]*" context="#stay" attribute="String"/>
-      </context>
-
-      <context name="find_qq_StringCommon" attribute="String" lineEndContext="#stay">
-        <DetectChar char="\" context="qq_StringEscape" attribute="Operator" lookAhead="1"/>
-        <DetectChar char="{" context="qq_Interpolation" attribute="String (interpolated)"/>
-        <DetectChar char="$" context="qq_StringMaybeVar$" attribute="String" lookAhead="1"/>
-        <AnyChar String="@%" context="qq_StringMaybeVar" attribute="String" lookAhead="1"/>
-        <DetectChar char="&amp;" context="qq_StringSigil" attribute="String" lookAhead="1"/>
-      </context>
-
-      <context name="qq_StringEscape" attribute="String Special Character" lineEndContext="#pop">
-        <Detect2Chars char="\" char1="q" context="#pop!q_QuotingForm" attribute="Operator"/>
-        <Detect2Chars char="\" char1="x" context="HexaString" attribute="String Special Character"/>
-        <StringDetect String="\c[" context="UnicodeCodepoint" attribute="String Special Character"/>
-        <Detect2Chars char="\" char1="c" context="UnicodeCodepointDecimal" attribute="String Special Character"/>
-        <Detect2Chars char="\" char1="o" context="OctalString" attribute="String Special Character"/>
-        <RegExpr String="\\.?" context="#pop" attribute="String Special Character"/>
-      </context>
-
-      <context name="qq_Interpolation" attribute="String (interpolated)" lineEndContext="#stay">
-        <DetectChar char="}" context="#pop" attribute="String (interpolated)"/>
-        <IncludeRules context="base"/>
-      </context>
-
-      <context name="qq_StringSigil" attribute="Function" lineEndContext="#stay">
-        <RegExpr String="&amp;&ident;\(" context="#pop!FunctionParameters" attribute="Function"/>
-        <DetectChar char="&amp;" context="#pop" attribute="String"/>
-      </context>
-
-      <context name="qq_StringMaybeVar$" attribute="String" lineEndContext="#stay">
-        <RegExpr String="\$(?=[&twigils;]?&prefixdollarvarname;)" context="qq_InterpolationVar" attribute="Variable"/>
-        <DetectChar char="$" context="#pop" attribute="String"/>
-      </context>
-
-      <context name="qq_StringMaybeVar" attribute="String" lineEndContext="#stay">
-        <RegExpr String="@\(\)|[%@]\$/|[@%]&ident;" context="qq_Interpolation1" attribute="Variable"/>
-        <AnyChar String="@%" context="#pop" attribute="String"/>
-      </context>
-
-      <context name="qq_InterpolationVar" attribute="String" lineEndContext="#stay">
-        <AnyChar String="&twigils;" context="#stay" attribute="Twigil"/>
-        <RegExpr String="&dollarvarname;" context="#pop!qq_Interpolation1" attribute="Variable"/>
-      </context>
-
-      <context name="qq_Interpolation1" attribute="String" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop">
-        <DetectChar char="[" context="qq_InterpolationIndex" attribute="Function"/>
-        <DetectChar char="." context="qq_InterpolationFunction" attribute="Function" lookAhead="1"/>
-      </context>
-
-      <context name="qq_InterpolationIndex" attribute="String" lineEndContext="#stay">
-        <DetectChar char="]" context="#pop#pop#pop" attribute="Function"/>
-        <IncludeRules context="base"/>
-      </context>
-
-      <context name="qq_InterpolationFunction" attribute="String" lineEndContext="#stay">
-        <RegExpr String="(?:\.&ident;)*\.&ident;\(" context="#pop#pop#pop!FunctionParameters" attribute="Function"/>
-        <DetectChar char="." context="#pop#pop#pop" attribute="String"/>
-      </context>
-
-      <context name="FunctionParameters" attribute="String" lineEndContext="#stay">
-        <DetectChar char=")" context="#pop" attribute="Function"/>
-        <DetectChar char="(" context="FunctionParameters" attribute="Function"/>
-        <IncludeRules context="base"/>
-      </context>
-
-
-      <!-- Comment -->
-
-      <context name="StartComment" attribute="Comment" lineEndContext="#pop" fallthrough="1" fallthroughContext="SingleLineComment">
-        <DetectChar attribute="Comment" context="MultilineComment" char="`"/>
-        <AnyChar attribute="Pod Operator" context="MultilineComment" String="=|"/>
-      </context>
-
-      <context name="MultilineComment" attribute="Comment" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop!SingleLineComment">
-        <!-- TODO a new rule is needed to find the corresponding closures -->
-        <StringDetect attribute="Comment" context="#pop#pop!MultilineComment(((" String="(((" beginRegion="comment"/>
-        <StringDetect attribute="Comment" context="#pop#pop!MultilineComment[[[" String="[[[" beginRegion="comment"/>
-        <StringDetect attribute="Comment" context="#pop#pop!MultilineComment{{{" String="{{{" beginRegion="comment"/>
-        <StringDetect attribute="Comment" context="#pop#pop!MultilineComment«««" String="«««" beginRegion="comment"/>
-        <StringDetect attribute="Comment" context="#pop#pop!MultilineComment&lt;&lt;&lt;" String="&lt;&lt;&lt;" beginRegion="comment"/>
-        <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment((" char="(" char1="(" beginRegion="comment"/>
-        <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment[[" char="[" char1="[" beginRegion="comment"/>
-        <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment{{" char="{" char1="{" beginRegion="comment"/>
-        <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment««" char="«" char1="«" beginRegion="comment"/>
-        <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment&lt;&lt;" char="&lt;" char1="&lt;" beginRegion="comment"/>
-        <DetectChar attribute="Comment" context="#pop#pop!MultilineComment(" char="(" beginRegion="comment"/>
-        <DetectChar attribute="Comment" context="#pop#pop!MultilineComment[" char="[" beginRegion="comment"/>
-        <DetectChar attribute="Comment" context="#pop#pop!MultilineComment{" char="{" beginRegion="comment"/>
-        <DetectChar attribute="Comment" context="#pop#pop!MultilineComment«" char="«" beginRegion="comment"/>
-        <DetectChar attribute="Comment" context="#pop#pop!MultilineComment&lt;" char="&lt;" beginRegion="comment"/>
-        <!-- etc -->
-      </context>
-
-      <context name="MultilineComment(((" attribute="Comment" lineEndContext="#stay">
-        <IncludeRules context="SingleLineComment"/>
-        <StringDetect String=")))" attribute="Comment" context="#pop" endRegion="comment"/>
-        <StringDetect String="(((" attribute="Comment" context="MultilineComment(((" beginRegion="comment"/>
-      </context>
-      <context name="MultilineComment[[[" attribute="Comment" lineEndContext="#stay">
-        <IncludeRules context="SingleLineComment"/>
-        <StringDetect String="]]]" attribute="Comment" context="#pop" endRegion="comment"/>
-        <StringDetect String="[[[" attribute="Comment" context="MultilineComment[[[" beginRegion="comment"/>
-      </context>
-      <context name="MultilineComment{{{" attribute="Comment" lineEndContext="#stay">
-        <StringDetect String="}}}" attribute="Comment" context="#pop" endRegion="comment"/>
-        <StringDetect String="{{{" attribute="Comment" context="MultilineComment{{{" beginRegion="comment"/>
-        <IncludeRules context="SingleLineComment"/>
-      </context>
-      <context name="MultilineComment«««" attribute="Comment" lineEndContext="#stay">
-        <IncludeRules context="SingleLineComment"/>
-        <StringDetect String="»»»" attribute="Comment" context="#pop" endRegion="comment"/>
-        <StringDetect String="«««" attribute="Comment" context="MultilineComment«««" beginRegion="comment"/>
-      </context>
-      <context name="MultilineComment&lt;&lt;&lt;" attribute="Comment" lineEndContext="#stay">
-        <IncludeRules context="SingleLineComment"/>
-        <StringDetect String=">>>" attribute="Comment" context="#pop" endRegion="comment"/>
-        <StringDetect String="&lt;&lt;&lt;" attribute="Comment" context="MultilineComment&lt;&lt;&lt;" beginRegion="comment"/>
-      </context>
-
-      <context name="MultilineComment((" attribute="Comment" lineEndContext="#stay">
-        <IncludeRules context="SingleLineComment"/>
-        <Detect2Chars char=")" char1=")" attribute="Comment" context="#pop" endRegion="comment"/>
-        <Detect2Chars char="(" char1="(" attribute="Comment" context="MultilineComment((" beginRegion="comment"/>
-      </context>
-      <context name="MultilineComment[[" attribute="Comment" lineEndContext="#stay">
-        <IncludeRules context="SingleLineComment"/>
-        <Detect2Chars char="]" char1="]" attribute="Comment" context="#pop" endRegion="comment"/>
-        <Detect2Chars char="[" char1="[" attribute="Comment" context="MultilineComment[[" beginRegion="comment"/>
-      </context>
-      <context name="MultilineComment{{" attribute="Comment" lineEndContext="#stay">
-        <IncludeRules context="SingleLineComment"/>
-        <Detect2Chars char="}" char1="}" attribute="Comment" context="#pop" endRegion="comment"/>
-        <Detect2Chars char="{" char1="{" attribute="Comment" context="MultilineComment{{" beginRegion="comment"/>
-      </context>
-      <context name="MultilineComment««" attribute="Comment" lineEndContext="#stay">
-        <IncludeRules context="SingleLineComment"/>
-        <Detect2Chars char="»" char1="»" attribute="Comment" context="#pop" endRegion="comment"/>
-        <Detect2Chars char="«" char1="«" attribute="Comment" context="MultilineComment««" beginRegion="comment"/>
-      </context>
-      <context name="MultilineComment&lt;&lt;" attribute="Comment" lineEndContext="#stay">
-        <IncludeRules context="SingleLineComment"/>
-        <Detect2Chars char=">" char1=">" attribute="Comment" context="#pop" endRegion="comment"/>
-        <Detect2Chars char="&lt;" char1="&lt;" attribute="Comment" context="MultilineComment&lt;&lt;" beginRegion="comment"/>
-      </context>
-
-      <context name="MultilineComment(" attribute="Comment" lineEndContext="#stay">
-        <IncludeRules context="SingleLineComment"/>
-        <DetectChar char=")" attribute="Comment" context="#pop" endRegion="comment"/>
-        <DetectChar char="(" attribute="Comment" context="MultilineComment(" beginRegion="comment"/>
-      </context>
-      <context name="MultilineComment[" attribute="Comment" lineEndContext="#stay">
-        <IncludeRules context="SingleLineComment"/>
-        <DetectChar char="]" attribute="Comment" context="#pop" endRegion="comment"/>
-        <DetectChar char="[" attribute="Comment" context="MultilineComment[" beginRegion="comment"/>
-      </context>
-      <context name="MultilineComment{" attribute="Comment" lineEndContext="#stay">
-        <IncludeRules context="SingleLineComment"/>
-        <DetectChar char="}" attribute="Comment" context="#pop" endRegion="comment"/>
-        <DetectChar char="{" attribute="Comment" context="MultilineComment{" beginRegion="comment"/>
-      </context>
-      <context name="MultilineComment«" attribute="Comment" lineEndContext="#stay">
-        <IncludeRules context="SingleLineComment"/>
-        <DetectChar char="»" attribute="Comment" context="#pop" endRegion="comment"/>
-        <DetectChar char="«" attribute="Comment" context="MultilineComment«" beginRegion="comment"/>
-      </context>
-      <context name="MultilineComment&lt;" attribute="Comment" lineEndContext="#stay">
-        <IncludeRules context="SingleLineComment"/>
-        <DetectChar char=">" attribute="Comment" context="#pop" endRegion="comment"/>
-        <DetectChar char="&lt;" attribute="Comment" context="MultilineComment&lt;" beginRegion="comment"/>
-      </context>
-
-      <context name="SingleLineComment" attribute="Comment" lineEndContext="#pop#pop">
-        <DetectSpaces/>
-        <IncludeRules context="##Comments"/>
-        <DetectIdentifier/>
-      </context>
-
-
-      <!-- Error -->
-
-      <context name="Error" attribute="Error" lineEndContext="#pop"/>
-
-      <context name="CharErrorIfNoSep" attribute="Error" lineEndContext="#pop">
-        <RegExpr String="[^;)]" context="#pop" attribute="Error"/>
-      </context>
-
-      <context name="CharError" attribute="Error" lineEndContext="#pop">
-        <RegExpr String="." context="#pop" attribute="Error"/>
-      </context>
-
-    </contexts>
-
-    <itemDatas>
-      <itemData name="Normal Text"               defStyleNum="dsNormal"/>
-      <itemData name="Keyword"                   defStyleNum="dsKeyword" spellChecking="false"/>
-      <itemData name="Keyword Value"             defStyleNum="dsKeyword" spellChecking="false"/>
-      <itemData name="Variable"                  defStyleNum="dsVariable" spellChecking="false"/>
-      <itemData name="Twigil"                    defStyleNum="dsAttribute" spellChecking="false"/>
-      <itemData name="Control Flow"              defStyleNum="dsControlFlow" spellChecking="false"/>
-      <itemData name="Variable Storage"          defStyleNum="dsKeyword" spellChecking="false" bold="1"/>
-      <itemData name="Property"                  defStyleNum="dsBuiltIn" spellChecking="false" italic="1"/>
-      <itemData name="Declare Routine"           defStyleNum="dsBuiltIn" spellChecking="false"/>
-      <itemData name="Function"                  defStyleNum="dsFunction" spellChecking="false"/>
-      <itemData name="Operator"                  defStyleNum="dsKeyword" spellChecking="false"/>
-      <itemData name="Separator Symbol"          defStyleNum="dsNormal" spellChecking="false"/>
-      <itemData name="Data Type"                 defStyleNum="dsDataType" spellChecking="false"/>
-      <itemData name="Attribute"                 defStyleNum="dsAttribute" spellChecking="false"/>
-      <itemData name="Decimal"                   defStyleNum="dsDecVal" spellChecking="false"/>
-      <itemData name="Octal"                     defStyleNum="dsBaseN" spellChecking="false"/>
-      <itemData name="Hex"                       defStyleNum="dsBaseN" spellChecking="false"/>
-      <itemData name="Float"                     defStyleNum="dsFloat" spellChecking="false"/>
-      <itemData name="String"                    defStyleNum="dsString"/>
-      <itemData name="String Delimiter"          defStyleNum="dsChar" spellChecking="false"/>
-      <itemData name="String (interpolated)"     defStyleNum="dsString"/>
-      <itemData name="String Special Character"  defStyleNum="dsChar"/>
-      <itemData name="Pattern"                   defStyleNum="dsOthers" spellChecking="false"/>
-      <itemData name="Pattern Meta Character"    defStyleNum="dsChar" spellChecking="false"/>
-      <itemData name="Pattern Character Class"   defStyleNum="dsBaseN" spellChecking="false"/>
-      <itemData name="Pattern Unicode Property"  defStyleNum="dsBaseN" spellChecking="false"/>
-      <itemData name="Pattern Character"         defStyleNum="dsChar" spellChecking="false"/>
-      <itemData name="Pattern Modifier"          defStyleNum="dsKeyword" spellChecking="false"/>
-      <itemData name="Pattern Quantifier"        defStyleNum="dsControlFlow" spellChecking="false"/>
-      <itemData name="Pattern Control Flow"      defStyleNum="dsControlFlow" spellChecking="false"/>
-      <itemData name="Pattern Special Character" defStyleNum="dsBuiltIn" spellChecking="false"/>
+<!DOCTYPE language
+[
+  <!--
+  identifier:
+    Alphabetic characters include characters with the Unicode General Category value Letter (L), and the underscore _.
+    Alphanumeric characters additionally include characters with the Unicode General Category value Number, Decimal Digit (Nd).
+  -->
+  <!-- Large values -->
+  <!ENTITY rangealnum "_\p{L}\p{N}">
+  <!ENTITY _alnum "_\p{L}\p{N}">
+  <!ENTITY alnum "[&_alnum;]">
+  <!ENTITY _ident "&alnum;*+(?:[-']&alnum;*+)*+">
+  <!ENTITY ident "(?:[_\p{L}]&_ident;)">
+  <!ENTITY datatype "(?:[_\p{Lu}\p{Lt}]&_ident;)">
+
+  <!-- 0 to 0x10FFFF -->
+  <!ENTITY unicode_hex_point "(?:0*+(?:10[0-9a-fA-F]{4}|[0-9a-fA-F]{1,5}+)|0++)">
+  <!-- 0 to 1114111 -->
+  <!ENTITY unicode_dec_point "(?:0*+(?:1(?:0[0-9]{5}|1(?:0[0-9]{4}|(?:1[0-3][0-9]{3}|4(?:0[0-9]{2}|1(?:0[0-9]|1[01]))))))|[0-9]{1,6}+|0++)">
+  <!-- 0 to 0o4177777 -->
+  <!ENTITY unicode_oct_point "(?:0*+(?:[0-3][0-7]{6}|4[01]|[0-7])[0-7]{0,5}+|0++)">
+
+  <!ENTITY prefixdollarvarname "(?:[_\p{L}0-9/!]|\(\))">
+  <!ENTITY dollarvarname "(?:&ident;|[0-9]+|[/!]|\(\))">
+  <!ENTITY twigils "*?!.^:=~">
+
+  <!ENTITY twigil_variable "[&#37;&amp;](?=[?*][_\p{L}])|[$@](?=[&twigils;][_\p{L}])">
+  <!ENTITY variable "[&#37;@]?\$/|\$!|\$[0-9]+|[\\@&#37;&amp;$]&ident;">
+
+  <!ENTITY podfmt "BCEIKLMNPRTUVXZ">
+  <!ENTITY allnopodfmt "(?:[^&podfmt;]+|[&podfmt;](?![&lt;«]))+">
+  <!ENTITY allnopodfmt1 "(?:[^&podfmt;&lt;>]+|[&podfmt;](&lt;(?:&lt;*(?=&lt;))|(?![&lt;«])))+">
+  <!ENTITY allnopodfmt2 "(?:[^&podfmt;«»]+|[&podfmt;](?![&lt;«]))+">
+  <!ENTITY allnopodfmt3 "(?:[^&podfmt;&lt;>]+|[&podfmt;](?![&lt;«])|>(?!>)|&lt;(?!&lt;))+">
+
+  <!ENTITY quotingform_q "(?:q?(?::?[xsahfcb]|:?ww?|:(?:v|exec|words|quotewords|scalar|array|hash|function|closure|backslash|to|heredoc)|)(?::[xsahfcbv]|ww?|exec|words|quotewords|scalar|array|hash|function|closure|backslash|to|heredoc)*)">
+  <!ENTITY quotingform_q_assert "(?:\s+(?=\()|\s*(?=[^()>｣\]}a-zA-Z0-9]|$))">
+  <!ENTITY quotingconstruct "q&quotingform_q;&quotingform_q_assert;">
+
+  <!ENTITY int10 "(?:[0-9]++(?:_[0-9]++)*+)">
+  <!ENTITY exp "(?:[eE][+-]?&int10;)">
+  <!ENTITY intN "(?:[0-9a-zA-Z]++(?:_[0-9a-zA-Z]++)*+)">
+
+  <!-- https://docs.raku.org/language/operators -->
+
+  <!--
+    42.&f;
+      ~~ access
+    expr.&?BLOCK
+        ~ access
+         ~~~~~~~~ variable
+  -->
+  <!ENTITY method_ops "\.([=^?+*:]|&amp;(?![?][_\p{L}]))?">
+
+  <!ENTITY postfix_ops "⚛?(\+\+|\-\-)">
+
+  <!ENTITY prefix_unary_ops "(\+\+⚛?|\-\-⚛?|//|[+~?]\^|[-+~|?!^⚛]|\b(not|so)\b)">
+
+  <!ENTITY _infix_simple_ops "\*\*|&#37;&#37;|[+~][&amp;&lt;>|^]|\?[&amp;^|]|=>|==>|&lt;==|::?=|//|\^\^|\([-+&amp;.|]\)|\^?…\^?|\^?\.\.\.\^?|[-+*/&#37;~∘&amp;∩⊍|∪⊎^⊖=]|\b(div|mod|gcd|lcm|xx?|min|max|minmax|andthen|notandthen|orelse|o)\b">
+  <!ENTITY _infix_chaining_ops "\((elem|cont|[=&lt;>]=|[&lt;>])\)|\.\.[\^]?|\^\.\.\^?|&lt;=>|===|=:=|=~=|~~|[=&lt;>]=|[⩵≠≤≥⩶∈∉≡≢∋∌⊂⊄⊆⊈⊃⊅⊇⊉]|&lt;(?!&lt;)|>(?!>)|&amp;&amp;|\|\||\b(eq|ne|gt|ge|lt|le|before|after|eqv|and|or|xor)\b">
+  <!-- "does" is an operator, but also a trait (separate treatment) -->
+  <!ENTITY _infix_structural "\b(but|cmp|coll|unicmp|leg)\b">
+  <!ENTITY _infix_other_ops "\^fff?\b|\bfff?\^|\bfff?\b|!!|\?\?">
+  <!ENTITY _infix_ops1 "(\b[RXZS]+)?((&_infix_simple_ops;)=?|⚛[-+]?=|\\(?=\s|$)|&_infix_structural;)">
+  <!ENTITY _infix_ops2 "\b[RXZS]+does">
+  <!ENTITY _infix_ops3 "((\b[RXZS]|!)[RXZS!]*+)?(&_infix_chaining_ops;|=)|[XZ]+">
+  <!ENTITY _infix_ops "&_infix_ops1;|&_infix_ops2;|&_infix_ops3;">
+  <!ENTITY infix_ops "(&_infix_ops;|&_infix_other_ops;|->)">
+
+  <!ENTITY list_ops "!!!|\?\?\?|\.\.\.">
+
+  <!-- <!ENTITY regadverb "(?!\()\s*(?::\w+\s*)*(?=[^\w\s])"> -->
+  <!ENTITY regadverb "(?!\()\s*(?=[^\p{L}\p{N}\s])">
+]>
+<language name="Raku" version="9" kateversion="5.62" section="Scripts" extensions="*.raku;*.rakumod;*.rakudoc;*.rakutest;*.pl6;*.PL6;*.p6;*.pm6;*.pod6" priority="6" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">
+  <highlighting>
+
+    <!-- https://docs.raku.org/routines -->
+
+    <list name="pod">
+      <item>begin</item>
+      <item>end</item>
+      <item>finish</item>
+      <item>for</item>
+      <include>podtypename</include>
+    </list>
+
+    <list name="podblocktypename">
+      <item>pod</item>
+      <include>podtypename</include>
+    </list>
+
+    <list name="pod values">
+      <item>True</item>
+      <item>False</item>
+    </list>
+
+    <list name="podtypename">
+      <item>head1</item>
+      <item>head2</item>
+      <item>head3</item>
+      <item>head4</item>
+      <item>head5</item>
+      <item>head6</item>
+      <item>item</item>
+      <item>item1</item>
+      <item>item2</item>
+      <item>item3</item>
+      <item>item4</item>
+      <item>item5</item>
+      <item>item6</item>
+      <item>para</item>
+      <item>code</item>
+      <item>defn</item>
+      <item>comment</item>
+      <item>table</item>
+      <item>input</item>
+      <item>output</item>
+    </list>
+
+    <list name="quoting">
+      <item>exec</item>
+      <item>words</item>
+      <item>quotewords</item>
+      <item>scalar</item>
+      <item>array</item>
+      <item>hash</item>
+      <item>function</item>
+      <item>closure</item>
+      <item>backslash</item>
+      <item>heredoc</item>
+      <item>val</item>
+    </list>
+
+    <list name="declare routine">
+      <item>macro</item>
+      <item>sub</item>
+      <item>submethod</item>
+      <item>method</item>
+      <item>multi</item>
+      <item>proto</item>
+      <item>only</item>
+      <item>category</item>
+    </list>
+
+    <!-- https://docs.raku.org/syntax/token -->
+    <list name="regex keywords">
+      <item>rule</item>
+      <item>token</item>
+      <item>regex</item>
+    </list>
+
+    <list name="values">
+      <include>pod values</include>
+      <item>self</item>
+    </list>
+
+    <list name="variable storages">
+      <item>my</item>
+      <item>our</item>
+      <item>has</item>
+      <item>state</item>
+      <item>anon</item>
+      <item>augment</item>
+      <item>supersede</item>
+      <item>let</item>
+      <item>temp</item>
+      <item>constant</item>
+    </list>
+
+    <!-- https://docs.raku.org/language/control -->
+    <list name="control flow">
+      <!-- conditional -->
+      <item>if</item>
+      <item>else</item>
+      <item>elsif</item>
+      <item>unless</item>
+      <item>when</item>
+      <item>with</item>
+      <item>orwith</item>
+      <item>without</item>
+      <item>given</item>
+      <item>default</item>
+      <!-- repeat -->
+      <item>for</item>
+      <item>loop</item>
+      <item>repeat</item>
+      <item>while</item>
+      <item>until</item>
+      <!-- control flow -->
+      <item>once</item>
+      <item>take</item>
+      <item>next</item>
+      <item>last</item>
+      <item>redo</item>
+      <item>return</item>
+      <item>return-rw</item>
+      <item>exit</item>
+      <item>goto</item>
+      <!-- exception -->
+      <item>die</item>
+      <item>fail</item>
+      <item>try</item>
+      <item>warn</item>
+      <!-- concurrency -->
+      <item>react</item>
+      <item>gather</item>
+      <item>proceed</item>
+      <item>succeed</item>
+      <item>whenever</item>
+      <item>supply</item>
+      <!-- asynchronous -->
+      <item>async</item>
+      <item>await</item>
+      <item>start</item>
+      <!-- phasers -->
+      <item>BEGIN</item>
+      <item>CHECK</item>
+      <item>QUIT</item>
+      <item>CLOSE</item>
+      <item>INIT</item>
+      <item>FIRST</item>
+      <item>ENTER</item>
+      <item>LEAVE</item>
+      <item>KEEP</item>
+      <item>UNDO</item>
+      <item>NEXT</item>
+      <item>LAST</item>
+      <item>END</item>
+      <item>CATCH</item>
+      <item>CONTROL</item>
+    </list>
+
+    <list name="keywords">
+      <item>do</item>
+      <item>no</item>
+      <item>use</item>
+      <item>require</item>
+      <!-- typeConstraint -->
+      <item>as</item>
+      <item>does</item>
+      <item>handles</item>
+      <item>is</item>
+      <item>of</item>
+      <item>trusts</item>
+      <item>where</item>
+      <!-- module -->
+      <item>module</item>
+      <item>class</item>
+      <item>role</item>
+      <item>package</item>
+      <item>enum</item>
+      <item>grammar</item>
+      <item>slang</item>
+      <item>subset</item>
+      <!-- phasers -->
+      <item>PRE</item>
+      <item>POST</item>
+      <item>COMPOSE</item>
+      <item>DOC</item>
+    </list>
+
+    <list name="properties">
+      <item>DEPRECATED</item>
+      <item>assoc</item>
+      <item>binary</item>
+      <item>built</item>
+      <item>cached</item>
+      <item>copy</item>
+      <item>deep</item>
+      <item>default</item>
+      <item>defequiv</item>
+      <item>dynamic</item>
+      <item>equiv</item>
+      <item>export</item>
+      <item>hidden-from-backtrace</item>
+      <item>inline</item>
+      <item>irs</item>
+      <item>looser</item>
+      <item>ofs</item>
+      <item>ors</item>
+      <item>parsed</item>
+      <item>prec</item>
+      <item>pure</item>
+      <item>raw</item>
+      <item>readonly</item>
+      <item>ref</item>
+      <item>reparsed</item>
+      <item>required</item>
+      <item>rw</item>
+      <item>test-assertion</item>
+      <item>tighter</item>
+      <item>unary</item>
+      <item>will</item>
+    </list>
+
+    <list name="number">
+      <item>NaN</item>
+      <item>Inf</item>
+    </list>
+
+    <list name="types">
+      <item>Any</item>
+      <item>Array</item>
+      <item>Associative</item>
+      <item>Bag</item>
+      <item>Blob</item>
+      <item>Block</item>
+      <item>Bool</item>
+      <item>Buf</item>
+      <item>Callable</item>
+      <item>Capture</item>
+      <item>Char</item>
+      <item>Class</item>
+      <item>Code</item>
+      <item>Complex</item>
+      <item>Cool</item>
+      <item>Exception</item>
+      <item>Failure</item>
+      <item>False</item>
+      <item>Grammar</item>
+      <item>Hash</item>
+      <item>IO</item>
+      <item>Int</item>
+      <item>Junction</item>
+      <item>Bag</item>
+      <item>List</item>
+      <item>Macro</item>
+      <item>Match</item>
+      <item>Method</item>
+      <item>Mu</item>
+      <item>Num</item>
+      <item>Numeric</item>
+      <item>Order</item>
+      <item>Pair</item>
+      <item>Positional</item>
+      <item>Proxy</item>
+      <item>Range</item>
+      <item>Rat</item>
+      <item>Rational</item>
+      <item>Real</item>
+      <item>Regex</item>
+      <item>Routine</item>
+      <item>Scalar</item>
+      <item>Seq</item>
+      <item>Set</item>
+      <item>Signature</item>
+      <item>Str</item>
+      <item>Sub</item>
+      <item>Submethod</item>
+      <item>True</item>
+      <item>UInt</item>
+      <item>Version</item>
+      <item>Whatever</item>
+      <item>buf8</item>
+      <item>buf16</item>
+      <item>buf32</item>
+      <item>buf64</item>
+      <item>int</item>
+      <item>int8</item>
+      <item>int16</item>
+      <item>int32</item>
+      <item>int64</item>
+      <item>num</item>
+      <item>uint</item>
+      <item>uint8</item>
+      <item>uint16</item>
+      <item>uint32</item>
+      <item>uint64</item>
+      <item>uint</item>
+      <item>utf8</item>
+      <item>utf16</item>
+      <item>utf32</item>
+    </list>
+
+    <list name="function operators">
+      <item>print</item>
+      <item>push</item>
+      <item>say</item>
+      <item>map</item>
+      <item>substr</item>
+      <item>die</item>
+      <item>any</item>
+    </list>
+
+    <list name="operators">
+      <item>X</item>
+      <item>gcd</item>
+      <item>ge</item>
+      <item>gt</item>
+      <item>lcm</item>
+      <item>le</item>
+      <item>leg</item>
+      <item>lt</item>
+      <item>max</item>
+      <item>min</item>
+      <item>minmax</item>
+      <item>mod</item>
+      <item>ne</item>
+      <item>not</item>
+      <item>notandthen</item>
+      <item>o</item>
+      <item>or</item>
+      <item>orelse</item>
+      <item>so</item>
+      <item>unicmp</item>
+      <item>x</item>
+      <item>xor</item>
+      <item>xx</item>
+      <item>Z</item>
+      <item>and</item>
+      <item>andthen</item>
+      <item>but</item>
+      <item>cmp</item>
+      <item>coll</item>
+      <item>div</item>
+      <item>does</item>
+      <item>eq</item>
+      <item>eqv</item>
+      <item>ff</item>
+      <item>fff</item>
+    </list>
+
+    <list name="unicode general categories">
+      <item>L</item>  <item>Letter</item>
+      <item>LC</item> <item>Cased_Letter</item>
+      <item>Lu</item> <item>Uppercase_Letter</item>
+      <item>Ll</item> <item>Lowercase_Letter</item>
+      <item>Lt</item> <item>Titlecase_Letter</item>
+      <item>Lm</item> <item>Modifier_Letter</item>
+      <item>Lo</item> <item>Other_Letter</item>
+      <item>M</item>  <item>Mark</item>
+      <item>Mn</item> <item>Nonspacing_Mark</item>
+      <item>Mc</item> <item>Spacing_Mark</item>
+      <item>Me</item> <item>Enclosing_Mark</item>
+      <item>N</item>  <item>Number</item>
+      <item>Nd</item> <item>Decimal_Number</item> <item>digit</item>
+      <item>Nl</item> <item>Letter_Number</item>
+      <item>No</item> <item>Other_Number</item>
+      <item>P</item>  <item>Punctuation</item> <item>punct</item>
+      <item>Pc</item> <item>Connector_Punctuation</item>
+      <item>Pd</item> <item>Dash_Punctuation</item>
+      <item>Ps</item> <item>Open_Punctuation</item>
+      <item>Pe</item> <item>Close_Punctuation</item>
+      <item>Pi</item> <item>Initial_Punctuation</item>
+      <item>Pf</item> <item>Final_Punctuation</item>
+      <item>Po</item> <item>Other_Punctuation</item>
+      <item>S</item>  <item>Symbol</item>
+      <item>Sm</item> <item>Math_Symbol</item>
+      <item>Sc</item> <item>Currency_Symbol</item>
+      <item>Sk</item> <item>Modifier_Symbol</item>
+      <item>So</item> <item>Other_Symbol</item>
+      <item>Z</item>  <item>Separator</item>
+      <item>Zs</item> <item>Space_Separator</item>
+      <item>Zl</item> <item>Line_Separator</item>
+      <item>Zp</item> <item>Paragraph_Separator</item>
+      <item>C</item>  <item>Other</item>
+      <item>Cc</item> <item>Control</item> <item>cntrl</item>
+      <item>Cf</item> <item>Format</item>
+      <item>Cs</item> <item>Surrogate</item>
+      <item>Co</item> <item>Private_Use</item>
+      <item>Cn</item> <item>Unassigned</item>
+    </list>
+
+    <list name="assertion">
+      <item>before</item>
+      <item>after</item>
+    </list>
+
+    <contexts>
+
+      <context name="Shebang" attribute="Comment" lineEndContext="#pop!base" fallthroughContext="#pop!base">
+        <RegExpr attribute="Keyword" context="#pop!base" String="^#!\/.*" column="0"/>
+      </context>
+
+      <context name="base" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="term">
+        <DetectSpaces/>
+        <AnyChar String="{(" attribute="Symbol" beginRegion="block"/>
+        <AnyChar String="])" context="postfix_op" attribute="Symbol" endRegion="block"/>
+        <AnyChar String=",;" attribute="Separator Symbol"/>
+        <DetectChar char="}" endRegion="block" attribute="Symbol"/>
+        <DetectChar char="#" context="StartComment" attribute="Comment"/>
+        <DetectChar char="=" context="StartPod" attribute="Pod" firstNonSpace="1"/>
+        <IncludeRules context="find_boxed_op"/>
+        <RegExpr String="&prefix_unary_ops;(\s*&prefix_unary_ops;)*+|&list_ops;" context="postfix_hyper_op" attribute="Operator"/>
+      </context>
+
+      <context name="find_boxed_op" attribute="Normal Text" lineEndContext="#pop">
+        <DetectChar char="[" context="boxed_op" attribute="Symbol" beginRegion="block"/>
+        <RegExpr String="(\b[RXZS]+)?(?=\\?\[)" context="start_boxed_op" attribute="Operator"/>
+      </context>
+      <context name="start_boxed_op" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!boxed_op">
+        <DetectChar char="[" context="#pop!boxed_op" attribute="Symbol" beginRegion="block"/>
+        <DetectChar char="\" context="boxed_op"/>
+      </context>
+
+      <context name="boxed_op" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop!boxed_op2">
+        <RegExpr String="&lt;(?![\]&lt;])" context="boxed_op_string" attribute="String Delimiter" beginRegion="block"/>
+      </context>
+      <context name="boxed_op2" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+        <DetectChar char="]" context="#pop" attribute="Symbol" endRegion="block"/>
+        <IncludeRules context="boxed_op_elem"/>
+      </context>
+      <!-- [<...>] -->
+      <context name="boxed_op_string" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char=">" context="#pop#pop!postfix_op" attribute="String Delimiter"/>
+        <IncludeRules context="q_String&lt;_common"/>
+      </context>
+
+      <context name="boxed_op_elem_before" attribute="Normal Text" lineEndContext="#pop">
+        <IncludeRules context="find_boxed_op"/>
+        <RegExpr String="(\b[RXZS]+)?(&lt;&lt;|>>|«|»)" context="hyper_op_dispatch" lookAhead="1"/>
+        <RegExpr String="[\\&amp;]&ident;" attribute="Variable"/>
+      </context>
+      <context name="boxed_op_elem" attribute="Normal Text" lineEndContext="#pop">
+        <IncludeRules context="boxed_op_elem_before"/>
+        <RegExpr String="\bdoes\b|&infix_ops;" attribute="Operator"/>
+        <IncludeRules context="boxed_op_elem_after"/>
+      </context>
+      <context name="boxed_op_elem_after" attribute="Normal Text" lineEndContext="#pop">
+        <RegExpr String="&ident;"/>
+      </context>
+
+      <context name="postfix_hyper_op" attribute="Normal Text" lineEndContext="#pop!term" fallthroughContext="#pop!term">
+        <StringDetect String="&lt;&lt;" context="#pop!term" attribute="Hyper Operator"/>
+        <StringDetect String="«" context="#pop!term" attribute="Hyper Operator"/>
+      </context>
+
+      <context name="postfix_op" attribute="Normal Text" lineEndContext="#pop!infix_op" fallthroughContext="#pop!infix_op">
+        <StringDetect String="[" context="#pop" attribute="Symbol" beginRegion="block"/>
+        <StringDetect String="!" context="#pop" attribute="Member Operator"/>
+        <StringDetect String="&lt;&lt;" context="#pop" attribute="Hyper Operator"/>
+        <StringDetect String="«" context="#pop" attribute="Hyper Operator"/>
+        <StringDetect String="&lt;" context="#pop!q_String&lt;_term" attribute="String Delimiter"/>
+        <RegExpr String="&postfix_ops;" attribute="Operator"/>
+      </context>
+
+      <context name="infix_op" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <DetectChar char="#" context="StartComment" attribute="Comment"/>
+        <WordDetect String="does" context="#pop" attribute="Keyword"/>
+        <IncludeRules context="infix_regular_op"/>
+      </context>
+      <context name="infix_regular_op" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
+        <RegExpr String="&infix_ops;(\s*&prefix_unary_ops;)*+" context="#pop!infix_postfix_hyper_op" attribute="Operator"/>
+        <RegExpr String="&method_ops;" context="#pop" attribute="Member Operator"/>
+        <RegExpr String="(\b[RXZS]+)?(&lt;&lt;|>>|«|»)" context="#pop!hyper_op_dispatch" lookAhead="1"/>
+      </context>
+
+      <!-- if infix operator is followed by hyper operator, then it is a postfix operator -->
+      <context name="infix_postfix_hyper_op" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+        <IncludeRules context="postfix_hyper_op"/>
+      </context>
+
+      <context name="hyper_op_dispatch" attribute="Normal Text" lineEndContext="#pop">
+        <AnyChar String="RXZS" attribute="Operator"/>
+        <StringDetect String="&lt;&lt;" context="#pop!hyper_op1" attribute="Hyper Operator"/>
+        <StringDetect String=">>" context="#pop!hyper_op1" attribute="Hyper Operator"/>
+        <AnyChar String="«»" context="#pop!hyper_op2" attribute="Hyper Operator"/>
+      </context>
+      <context name="hyper_op1" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+        <StringDetect String="&lt;&lt;" context="#pop" attribute="Hyper Operator"/>
+        <StringDetect String=">>" context="#pop" attribute="Hyper Operator"/>
+        <IncludeRules context="boxed_op_elem_before"/>
+        <!-- ignore > after infix operator -->
+        <RegExpr String="(\b[RXZS]+)?([+~][&amp;>|^]?|[-=])=?|\bdoes\b|&infix_ops;" attribute="Operator"/>
+        <IncludeRules context="boxed_op_elem_after"/>
+      </context>
+      <context name="hyper_op2" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+        <AnyChar String="«»" context="#pop" attribute="Hyper Operator"/>
+        <IncludeRules context="boxed_op_elem"/>
+      </context>
+
+      <context name="term" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <AnyChar String="{([])},;" context="#pop" lookAhead="1"/>
+        <DetectChar char="#" context="StartComment" attribute="Comment"/>
+        <DetectChar char="&quot;" context="qq_RawString_term" attribute="String Delimiter"/>
+        <DetectChar char="'" context="q_RawString_term" attribute="String Delimiter"/>
+        <DetectChar char="«" context="qq_String«_term" attribute="String Delimiter"/>
+        <StringDetect String="&lt;&lt;" context="qq_String&lt;&lt;_term" attribute="String Delimiter"/>
+        <DetectChar char="&lt;" context="q_String&lt;_term" attribute="String Delimiter"/>
+        <DetectChar char="｢" context="Q_String｢_term" attribute="String Delimiter"/>
+        <DetectChar char="/" context="Pattern/" attribute="Pattern Delimiter" beginRegion="regex"/>
+        <DetectChar char=":" context="MaybeAttribute" attribute="Separator Symbol"/>
+
+        <RegExpr String="\b(?:s|S|tr|TR)&regadverb;" context="RegexSubstitution" attribute="Pattern Delimiter"/>
+        <RegExpr String="\b(?:rx|m)&regadverb;" context="Regex" attribute="Pattern Delimiter"/>
+
+        <RegExpr String="&twigil_variable;" context="Twigil_term" attribute="Variable"/>
+        <!-- '*' -> Whatever variable: (* + *)(1, 2) == 3 -->
+        <RegExpr String="&variable;|\$(&lt;&ident;>)+|[$@](\(\))?|[*]" context="#pop!postfix_op" attribute="Variable"/>
+
+        <RegExpr String="\bQ(\s++(?=['(_]|$)|\s*+(?=[^()>｣\]}'&rangealnum;]|$))" context="Q_String" attribute="String"/>
+
+        <RegExpr String="\.?\p{N}" context="Number" lookAhead="1" minimal="1"/>
+
+        <RegExpr attribute="Operator" context="q_QuotingForm" String="\bq(?=&quotingform_q;&quotingform_q_assert;)"/>
+
+        <IncludeRules context="infix_regular_op"/>
+
+        <RegExpr String="(?&lt;=[.])(unless|when|with|without|given|default|for|loop|repeat|while|until|once|next|last|redo|goto|proceed|succeed|start|proceed|succeed)\b" context="#pop" attribute="Normal Text"/>
+
+        <keyword String="control flow" context="#pop" attribute="Control Flow"/>
+        <keyword String="variable storages" context="#stay" attribute="Variable Storage"/>
+        <WordDetect String="is" context="Is" attribute="Keyword"/>
+        <keyword String="keywords" context="#pop" attribute="Keyword"/>
+        <keyword String="function operators" context="#pop" attribute="Function"/>
+        <keyword String="declare routine" context="#stay" attribute="Declare Routine"/>
+        <keyword String="regex keywords" context="RegexKeyword" attribute="Keyword"/>
+        <keyword String="values" context="#pop!postfix_op" attribute="Keyword Value"/>
+        <keyword String="number" context="#pop!postfix_op" attribute="Float"/>
+        <RegExpr String="\b(u?int(8|16|32|64)?|utf(8|16|32)|buf(8|16|32|64)|num|&datatype;)\b" context="#pop" attribute="Data Type"/>
+        <!-- <RegExpr String="&ident;\s*+(?=\()" context="#pop" attribute="Function"/> -->
+        <RegExpr String="!?&ident;" context="#pop" attribute="Normal Text"/>
+
+        <DetectChar char="\"/>
+
+        <RegExpr String="." context="#pop" attribute="Normal Text"/>
+      </context>
+
+
+      <context name="Is" attribute="Normal Text" lineEndContext="#pop#pop" fallthroughContext="#pop#pop!postfix_op">
+        <DetectSpaces/>
+        <keyword String="properties" context="#pop#pop!postfix_op" attribute="Property"/>
+      </context>
+
+      <context name="Interpolation" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="term">
+        <DetectChar char="}" context="#pop" attribute="Symbol" endRegion="block"/>
+        <IncludeRules context="base"/>
+      </context>
+
+      <context name="SubExpression(" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="term">
+        <DetectChar char=")" context="#pop" attribute="Symbol" endRegion="block"/>
+        <IncludeRules context="base"/>
+      </context>
+
+      <context name="Twigil" attribute="Variable" lineEndContext="#pop">
+        <AnyChar String="&twigils;" attribute="Twigil"/>
+        <RegExpr String="&ident;" context="#pop#pop" attribute="Variable"/>
+      </context>
+
+      <context name="Twigil_term" attribute="Variable" lineEndContext="#pop">
+        <AnyChar String="&twigils;" attribute="Twigil"/>
+        <RegExpr String="&ident;" context="#pop#pop!postfix_op" attribute="Variable"/>
+      </context>
+
+      <context name="RegexKeyword" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <DetectChar char="{" context="#pop!RegexKeyword-Pattern{" attribute="Symbol" beginRegion="regex"/>
+        <DetectChar char="#" context="StartComment" attribute="Comment"/>
+        <RegExpr String="&ident;"/>
+      </context>
+      <context name="RegexKeyword-Pattern{" attribute="Pattern" lineEndContext="#stay">
+        <DetectChar char="}" context="#pop" attribute="Symbol" endRegion="regex"/>
+        <IncludeRules context="find_Pattern"/>
+      </context>
+
+
+      <!-- Regex Substitution -->
+
+      <context name="RegexSubstitution" attribute="Pattern Delimiter" lineEndContext="#stay">
+        <DetectChar char="/" context="PatternSubstitution/" attribute="Pattern Delimiter" beginRegion="regex"/>
+        <IncludeRules context="find_RegexClosure"/>
+        <RegExpr String="([^\w\s])" context="PatternSubstitution" attribute="Pattern Delimiter" beginRegion="regex"/>
+      </context>
+
+      <context name="PatternSubstitution/" attribute="Pattern" lineEndContext="#stay">
+        <DetectChar char="/" context="SubstitutionString/" attribute="Pattern Delimiter" endRegion="regex" beginRegion="substitution"/>
+        <IncludeRules context="find_Pattern"/>
+      </context>
+
+      <context name="PatternSubstitution" attribute="Pattern" lineEndContext="#stay">
+        <RegExpr String="(%1)" dynamic="1" context="SubstitutionString" attribute="Pattern Delimiter" endRegion="regex" beginRegion="substitution"/>
+        <IncludeRules context="find_Pattern"/>
+      </context>
+
+      <context name="SubstitutionString/" attribute="String" lineEndContext="#stay">
+        <StringDetect String="/" context="#pop#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="substitution"/>
+        <StringDetect String="\/" attribute="String Special Character"/>
+        <RegExpr String="([^/\\]++|\\[^/])++" attribute="String"/>
+      </context>
+
+      <context name="SubstitutionString" attribute="String" lineEndContext="#stay">
+        <DetectChar char="1" dynamic="1" context="#pop#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="substitution"/>
+        <StringDetect String="\%1" dynamic="1" attribute="String Special Character"/>
+        <RegExpr String="([^%1\\]++|\\[^%1])++" dynamic="1" attribute="String"/>
+      </context>
+
+
+      <!-- Regex -->
+
+      <context name="Regex" attribute="Pattern" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectChar char="/" context="Pattern/" attribute="Pattern Delimiter" beginRegion="regex"/>
+        <IncludeRules context="find_RegexClosure"/>
+        <RegExpr String="([^\w\s])" context="Pattern" attribute="Pattern Delimiter" beginRegion="regex"/>
+      </context>
+
+      <context name="find_RegexClosure" attribute="Pattern Delimiter" lineEndContext="#stay">
+        <DetectChar char=":" context="RegexModifier" attribute="Pattern Modifier"/>
+        <StringDetect String="[[" context="Pattern[[" attribute="Pattern Delimiter" beginRegion="regex"/>
+        <StringDetect String="{{" context="Pattern{{" attribute="Pattern Delimiter" beginRegion="regex"/>
+        <StringDetect String="&lt;&lt;" context="Pattern&lt;&lt;" attribute="Pattern Delimiter" beginRegion="regex"/>
+        <DetectChar char="[" context="Pattern[" attribute="Pattern Delimiter" beginRegion="regex"/>
+        <DetectChar char="{" context="Pattern{" attribute="Pattern Delimiter" beginRegion="regex"/>
+        <DetectChar char="&lt;" context="Pattern&lt;" attribute="Pattern Delimiter" beginRegion="regex"/>
+        <DetectChar char="(" context="Pattern(" attribute="Pattern Delimiter" beginRegion="regex"/>
+        <!-- some pairs are missing: https://github.com/Raku/roast/blob/aa4994a7f6b3f6b450a9d231bebd5fba172439b0/S02-literals/quoting-unicode.t#L49-L65 -->
+        <DetectSpaces/>
+      </context>
+
+      <context name="RegexModifier" attribute="Pattern Modifier" lineEndContext="#pop" fallthroughContext="#pop">
+        <StringDetect String="P5" context="RegexPerl5" attribute="Pattern Modifier"/>
+        <StringDetect String="Perl5" context="RegexPerl5" attribute="Pattern Modifier"/>
+        <DetectIdentifier context="RegexModifierCall" attribute="Pattern Modifier"/>
+      </context>
+
+      <!-- ':' adverb '(' expr ')' '('...')'
+                                    ^ pattern delimiter
+      -->
+      <context name="RegexModifierCall" attribute="Pattern Modifier" fallthroughContext="#pop#pop">
+        <DetectSpaces/>
+        <DetectChar char="(" context="RegexModifier(" attribute="Symbol" beginRegion="block"/>
+      </context>
+      <context name="RegexModifier(" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="term">
+        <DetectChar char=")" context="RegexModifierPattern(" attribute="Symbol" endRegion="block"/>
+        <IncludeRules context="base"/>
+      </context>
+      <context name="RegexModifierPattern(" attribute="Pattern Delimiter" lineEndContext="#stay" fallthroughContext="#pop#pop#pop#pop">
+        <DetectSpaces/>
+        <StringDetect String="((" context="#pop#pop#pop#pop!Pattern((" attribute="Pattern Delimiter" beginRegion="regex"/>
+        <DetectChar char="(" context="#pop#pop#pop#pop!Pattern(" attribute="Pattern Delimiter" beginRegion="regex"/>
+      </context>
+
+      <context name="RegexPerl5" attribute="Pattern Modifier" lineEndContext="#pop#pop#pop" fallthroughContext="#pop#pop#pop!IsRegexPerl5">
+        <DetectSpaces/>
+      </context>
+
+      <context name="IsRegexPerl5" attribute="Pattern" lineEndContext="#stay">
+        <IncludeRules context="find_pattern##Perl"/>
+      </context>
+
+      <context name="Pattern/" attribute="Pattern" lineEndContext="#stay">
+        <DetectChar char="/" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/>
+        <IncludeRules context="find_Pattern"/>
+      </context>
+
+      <context name="Pattern{" attribute="Pattern" lineEndContext="#stay">
+        <DetectChar char="}" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/>
+        <IncludeRules context="find_Pattern"/>
+      </context>
+
+      <context name="Pattern{{" attribute="Pattern" lineEndContext="#stay">
+        <StringDetect String="}}" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/>
+        <IncludeRules context="find_Pattern"/>
+      </context>
+
+      <context name="Pattern[" attribute="Pattern" lineEndContext="#stay">
+        <DetectChar char="[" context="PatternSub[" attribute="Symbol" beginRegion="block"/>
+        <DetectChar char="]" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/>
+        <IncludeRules context="find_Pattern"/>
+      </context>
+      <context name="PatternSub[" attribute="Pattern" lineEndContext="#stay">
+        <DetectChar char="]" context="#pop" attribute="Symbol" endRegion="regex"/>
+        <DetectChar char="[" context="PatternSub[" attribute="Symbol" beginRegion="block"/>
+        <IncludeRules context="find_Pattern"/>
+      </context>
+
+      <context name="Pattern[[" attribute="Pattern" lineEndContext="#stay">
+        <DetectChar char="[" context="PatternSub[" attribute="Symbol" beginRegion="block"/>
+        <StringDetect String="]]" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/>
+        <IncludeRules context="find_Pattern"/>
+      </context>
+
+      <context name="Pattern(" attribute="Pattern" lineEndContext="#stay">
+        <DetectChar char="(" context="PatternSub(" attribute="Symbol" beginRegion="block"/>
+        <DetectChar char=")" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/>
+        <IncludeRules context="find_Pattern"/>
+      </context>
+      <context name="PatternSub(" attribute="Pattern" lineEndContext="#stay">
+        <DetectChar char=")" context="#pop" attribute="Symbol" endRegion="regex"/>
+        <DetectChar char="(" context="PatternSub(" attribute="Symbol" beginRegion="block"/>
+        <IncludeRules context="find_Pattern"/>
+      </context>
+
+      <context name="Pattern((" attribute="Pattern" lineEndContext="#stay">
+        <DetectChar char="(" context="PatternSub(" attribute="Symbol" beginRegion="block"/>
+        <StringDetect String="))" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/>
+        <IncludeRules context="find_Pattern"/>
+      </context>
+
+      <context name="Pattern&lt;" attribute="Pattern" lineEndContext="#stay">
+        <DetectChar char=">" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/>
+        <IncludeRules context="find_Pattern"/>
+      </context>
+
+      <context name="Pattern&lt;&lt;" attribute="Pattern" lineEndContext="#stay">
+        <StringDetect String=">>" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/>
+        <IncludeRules context="find_Pattern"/>
+      </context>
+
+      <context name="Pattern" attribute="Pattern" lineEndContext="#stay">
+        <DetectChar char="1" dynamic="1" context="#pop#pop!postfix_op" attribute="Pattern Delimiter" endRegion="regex"/>
+        <IncludeRules context="find_Pattern"/>
+      </context>
+
+      <context name="find_Pattern" attribute="Pattern" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="." context="#stay" attribute="Pattern Special Character"/>
+        <DetectChar char="&quot;" attribute="String Delimiter" context="qq_RawString"/>
+        <DetectChar char="'" attribute="String Delimiter" context="q_RawString"/>
+        <DetectChar char="\" context="PatternMetaChar" lookAhead="1"/>
+        <DetectChar char=":" context="PatternModifier" attribute="Pattern Modifier"/>
+        <DetectChar char="#" context="StartComment" attribute="Comment"/>
+        <DetectChar char="{" context="Interpolation" attribute="Symbol" beginRegion="block"/>
+        <StringDetect String="&lt;&lt;" attribute="Operator"/>
+        <StringDetect String=">>" attribute="Operator"/>
+        <StringDetect String="&lt;(" context="PatternCaptureMarker" attribute="Pattern Meta Character"/>
+        <DetectChar char="&lt;" context="RegexClass" attribute="Pattern Meta Character"/>
+        <StringDetect String="**" context="PatternRangeQuantifier" attribute="Pattern Quantifier"/>
+        <AnyChar String="?*+" context="PatternAfterQuantifier" attribute="Pattern Quantifier"/>
+        <AnyChar String="([" attribute="Symbol" beginRegion="block"/>
+        <AnyChar String=")]" attribute="Symbol" endRegion="block"/>
+        <StringDetect String="$(" context="PatternVariable(" attribute="Pattern Meta Character" beginRegion="block"/>
+        <StringDetect String="@(" context="PatternVariable(" attribute="Pattern Meta Character" beginRegion="block"/>
+        <AnyChar String="«»~" attribute="Operator"/>
+        <RegExpr String="&twigil_variable;" context="Twigil" attribute="Variable"/>
+        <RegExpr String="&variable;|@" attribute="Variable"/>
+        <RegExpr String="\$&lt;&ident;>?" attribute="Pattern Named Capture"/>
+        <AnyChar String="&amp;|^$" attribute="Pattern Control Flow"/>
+        <RegExpr String="[&_alnum;\s]+" attribute="Pattern"/>
+        <AnyChar String=">)]" attribute="Error"/>
+      </context>
+
+      <context name="PatternVariable(" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="term">
+        <DetectChar char=")" context="#pop" attribute="Pattern Meta Character" endRegion="block"/>
+        <IncludeRules context="base"/>
+      </context>
+
+
+      <!-- Pattern :... -->
+
+      <context name="PatternModifier" attribute="Pattern Modifier" lineEndContext="#pop" fallthroughContext="#pop">
+        <DetectIdentifier context="#pop" attribute="Pattern Modifier"/>
+      </context>
+
+
+      <!-- Pattern \... -->
+
+      <context name="PatternMetaChar" attribute="Pattern" lineEndContext="#pop">
+        <RegExpr String="\\[nthvsdwNTHVSDW]|\\[xX](&unicode_hex_point;(?![0-9a-fA-F])|\[\s*&unicode_hex_point;\s*\])|\\[cC](&unicode_dec_point;(?![0-9])|\[[0-9a-zA-Z\s]+\])|[oO](&unicode_oct_point;(?![0-7])|\[\s*&unicode_oct_point;\s*\])" context="#pop" attribute="Pattern Character Class"/>
+        <RegExpr String="\\[^\p{L}\p{N}]" context="#pop" attribute="Pattern Character"/>
+
+        <StringDetect String="\x[" context="PatternMetaCharX" attribute="Pattern Character Class" insensitive="1"/>
+        <StringDetect String="\c[" context="PatternMetaCharC" attribute="Pattern Character Class" insensitive="1"/>
+        <StringDetect String="\o[" context="PatternMetaCharO" attribute="Pattern Character Class" insensitive="1"/>
+
+        <!-- error or incomplete -->
+        <RegExpr String="\\[xX]&unicode_hex_point;|\\[oO]&unicode_oct_point;|\\[cC]&unicode_dec_point;" context="PatternMetaCharError" attribute="Pattern Character Class"/>
+        <RegExpr String="\\[xXcCoO]?" context="#pop" attribute="Error"/>
+      </context>
+
+      <context name="PatternMetaCharError" attribute="Pattern" fallthroughContext="#pop#pop">
+        <RegExpr String=",?\s+\]?|&alnum;*(\s*,)?\s*\]?" context="#pop#pop" attribute="Error"/>
+      </context>
+
+      <context name="X[]" attribute="Pattern">
+        <RegExpr String="\s*\b&unicode_hex_point;\s*"/>
+      </context>
+
+      <context name="O[]" attribute="Pattern">
+        <RegExpr String="\s*\b&unicode_oct_point;\s*"/>
+      </context>
+
+      <context name="C[]" attribute="Pattern">
+        <RegExpr String="\s*(\b[0-9a-zA-Z]+\s*)+"/>
+      </context>
+
+      <context name="PatternMetaCharMultipleCommon" attribute="Pattern">
+        <DetectChar char="]" context="#pop#pop" attribute="Pattern Character Class"/>
+        <DetectChar char="," attribute="Separator Symbol"/>
+      </context>
+
+      <context name="PatternMetaCharX" attribute="Pattern Character Class">
+        <IncludeRules context="PatternMetaCharMultipleCommon"/>
+        <IncludeRules context="X[]"/>
+        <RegExpr String="[^0-9a-fA-F\],\s]+|[0-9a-fA-F]+|." attribute="Error"/>
+      </context>
+
+      <context name="PatternMetaCharO" attribute="Pattern Character Class">
+        <IncludeRules context="PatternMetaCharMultipleCommon"/>
+        <IncludeRules context="O[]"/>
+        <RegExpr String="[^0-7\],\s]+|[0-7]+|." attribute="Error"/>
+      </context>
+
+      <context name="PatternMetaCharC" attribute="Pattern Character Class">
+        <IncludeRules context="PatternMetaCharMultipleCommon"/>
+        <IncludeRules context="C[]"/>
+        <RegExpr String="[^0-9a-zA-Z\],\s]+|[0-9a-zA-Z]+|." attribute="Error"/>
+      </context>
+
+
+      <!-- Pattern Capture Markers: <(...)> -->
+
+      <context name="PatternCaptureMarker" attribute="Pattern">
+        <StringDetect String=")>" context="#pop" attribute="Pattern Meta Character"/>
+        <IncludeRules context="find_Pattern"/>
+      </context>
+
+
+      <!-- Pattern Character Classes : <...> -->
+
+      <context name="RegexClass" attribute="Pattern Unicode Property" lineEndContext="#stay">
+        <DetectChar char=">" context="#pop" attribute="Pattern Meta Character"/>
+        <AnyChar String=".:" attribute="Pattern Meta Character"/>
+        <AnyChar String="|+-" attribute="Pattern Quantifier"/>
+        <AnyChar String="!?" attribute="Pattern Control Flow" context="PatternAssertion"/>
+        <DetectIdentifier attribute="Pattern Unicode Property"/>
+        <DetectChar char="[" context="RegexClassRange" attribute="Pattern Bracket"/>
+        <DetectChar char="&lt;" context="q_String&lt;" attribute="String Delimiter"/>
+        <DetectChar char="«" context="qq_String«" attribute="String Delimiter"/>
+        <DetectChar char="{" context="Interpolation" attribute="Symbol" beginRegion="block"/>
+        <DetectChar char="(" context="SubExpression(" attribute="Symbol" beginRegion="block"/>
+        <DetectChar char="\" context="PatternMetaChar" lookAhead="1"/>
+      </context>
+
+      <!-- after <? or <! -->
+      <context name="PatternAssertion" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="PatternAssertionCond">
+        <DetectChar char=">" attribute="Pattern Meta Character" context="#pop#pop"/>
+        <WordDetect String="after" attribute="Pattern Meta Character" context="PatternAssertionCond"/>
+        <WordDetect String="before" attribute="Pattern Meta Character" context="PatternAssertionCond"/>
+      </context>
+      <context name="PatternAssertionCond" attribute="Pattern" lineEndContext="#stay">
+        <DetectChar char=">" attribute="Pattern Meta Character" context="#pop#pop#pop"/>
+        <IncludeRules context="find_Pattern"/>
+      </context>
+
+      <!-- Pattern <[...]> -->
+      <context name="RegexClassRange" attribute="Pattern Character" lineEndContext="#stay">
+        <DetectIdentifier/>
+        <DetectSpaces/>
+        <StringDetect String="]" context="#pop" attribute="Pattern Bracket"/>
+        <StringDetect String="\" context="PatternMetaChar" lookAhead="1"/>
+        <StringDetect String=".." attribute="Pattern Quantifier"/>
+      </context>
+
+
+      <context name="PatternAfterQuantifier" attribute="Pattern" lineEndContext="#stay" fallthroughContext="PatternModifierQuantifier">
+        <StringDetect String=":" context="PatternModifierQuantifier" attribute="Pattern Modifier"/>
+        <DetectSpaces context="PatternModifierQuantifier"/>
+      </context>
+      <context name="PatternModifierQuantifier" attribute="Pattern" lineEndContext="#stay" fallthroughContext="#pop#pop">
+        <DetectSpaces/>
+        <StringDetect String="%%" context="#pop#pop" attribute="Pattern Quantifier"/>
+        <StringDetect String="%" context="#pop#pop" attribute="Pattern Quantifier"/>
+      </context>
+
+
+      <!-- General quantifier: ** min..max -->
+
+      <context name="PatternRangeQuantifier" attribute="Pattern" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <Int context="#pop!PatternRangeQuantifierRng" attribute="Pattern"/>
+        <DetectChar char="^" context="PatternRangeQuantifierInt" attribute="Operator"/>
+        <AnyChar String=":!?" attribute="Pattern Quantifier"/>
+      </context>
+
+      <context name="PatternRangeQuantifierRng" attribute="Pattern" lineEndContext="#pop" fallthroughContext="#pop">
+        <StringDetect String="..^" context="PatternRangeQuantifierInt" attribute="Operator"/>
+        <StringDetect String=".." context="PatternRangeQuantifierInt" attribute="Operator"/>
+        <StringDetect String="^..^" context="PatternRangeQuantifierInt" attribute="Operator"/>
+        <StringDetect String="^.." context="PatternRangeQuantifierInt" attribute="Operator"/>
+      </context>
+
+      <context name="PatternRangeQuantifierInt" attribute="Pattern" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
+        <DetectSpaces/>
+        <Int context="#pop#pop" attribute="Pattern"/>
+      </context>
+
+
+      <!-- Number -->
+
+      <context name="Number" attribute="Decimal" lineEndContext="#stay" fallthroughContext="#pop#pop!postfix_op">
+        <RegExpr String="&int10;(?:\.&int10;&exp;?|&exp;)|\.&int10;&exp;?" context="NumberSuffix" attribute="Float"/>
+        <Detect2Chars char="0" char1="x" context="HexNumber" attribute="Hex"/>
+        <Detect2Chars char="0" char1="o" context="OctalNumber" attribute="Octal"/>
+        <RegExpr String="\p{N}++(?:_\p{N}++)*+" context="NumberSuffix" attribute="Decimal"/>
+      </context>
+
+      <context name="HexNumber" attribute="Hex" lineEndContext="#pop#pop#pop!postfix_op" fallthroughContext="NumberCheckError">
+        <RegExpr String="[a-fA-F0-9]++(?:_[a-fA-F0-9]++)*+" context="#pop!NumberSuffix" attribute="Hex"/>
+      </context>
+
+      <context name="OctalNumber" attribute="Octal" lineEndContext="#pop#pop#pop!postfix_op" fallthroughContext="NumberCheckError">
+        <RegExpr String="[0-7]++(?:_[0-7]++)*+" context="#pop!NumberSuffix" attribute="Octal"/>
+      </context>
+
+      <context name="NumberSuffix" attribute="Decimal" lineEndContext="#pop#pop#pop!postfix_op" fallthroughContext="#pop#pop#pop!postfix_op">
+        <DetectChar char="i" context="#pop!NumberCheckError" attribute="Number Suffix"/>
+        <IncludeRules context="NumberCheckError"/>
+      </context>
+      <context name="NumberCheckError" attribute="Decimal" lineEndContext="#pop#pop#pop!postfix_op" fallthroughContext="#pop#pop#pop!postfix_op">
+        <RegExpr String="&alnum;+" context="#pop#pop#pop!postfix_op" attribute="Error"/>
+      </context>
+
+
+      <!-- Attribute or Key -->
+
+      <!--
+        :11a
+        :!false
+        :attr
+      -->
+      <context name="MaybeAttribute" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+        <StringDetect String=":?" context="#pop" attribute="Separator Symbol"/>
+        <DetectChar char=":" attribute="Separator Symbol"/>
+        <DetectChar char="!" context="#pop" attribute="Operator"/>
+        <Int context="MaybeAttribute2" attribute="Decimal"/>
+        <RegExpr String="&datatype;" context="#pop" attribute="Data Type"/>
+        <RegExpr String="\\?&ident;" context="#pop#pop!postfix_op" attribute="Attribute"/>
+      </context>
+
+      <context name="MaybeAttribute2" attribute="Decimal" lineEndContext="#pop#pop" fallthroughContext="#pop#pop#pop!postfix_op">
+        <DetectChar char="&lt;" context="NumberWithRadix" attribute="String Delimiter"/>
+      </context>
+
+
+      <!-- ':base<NNN>' -->
+
+      <context name="NumberWithRadix" attribute="Decimal" lineEndContext="#pop#pop#pop" fallthroughContext="#pop#pop#pop!postfix_op">
+        <DetectChar char="&gt;" context="#pop#pop#pop#pop!postfix_op" attribute="Error"/>
+        <DetectSpaces context="#pop#pop#pop#pop!postfix_op" attribute="Error"/>
+        <RegExpr String="&intN;\.&intN;|\.&intN;" context="NumberWithRadixClose" attribute="Float"/>
+        <RegExpr String="&intN;" context="NumberWithRadixClose" attribute="Decimal"/>
+      </context>
+      <context name="NumberWithRadixClose" attribute="Decimal"
+               lineEndContext="#pop#pop#pop#pop#pop!postfix_op"
+               fallthroughContext="#pop#pop#pop#pop#pop!postfix_op">
+        <DetectChar char="&gt;" context="NumberWithRadixSuffix" attribute="String Delimiter"/>
+        <RegExpr String=" +|&alnum;+" context="#pop#pop#pop#pop#pop!postfix_op" attribute="Error"/>
+      </context>
+      <context name="NumberWithRadixSuffix" attribute="Decimal"
+               lineEndContext="#pop#pop#pop#pop#pop#pop!postfix_op"
+               fallthroughContext="#pop#pop#pop#pop#pop#pop!postfix_op">
+        <WordDetect String="i" context="#pop#pop#pop#pop#pop#pop!postfix_op" attribute="Number Suffix"/>
+      </context>
+
+
+      <!-- Pod -->
+
+      <context name="StartPod" attribute="Pod Typename" lineEndContext="#pop" fallthroughContext="#pop">
+        <WordDetect String="begin" context="PodBegin" attribute="Pod Block"/>
+        <WordDetect String="for"   context="PodFor" attribute="Pod Typename"/>
+        <keyword    String="pod"   context="PodTypenameValue" attribute="Pod Typename"/>
+        <RegExpr    String="[_A-Z][-_A-Z0-9]*\b" context="PodTypenameValue" attribute="Pod Typename"/>
+        <RegExpr    String="&ident;" context="PodTypenameValue" attribute="Pod Unknown"/>
+      </context>
+
+      <context name="PodTypenameValue" attribute="Pod Typename Value" lineEndContext="PodTypenameValueNextLine" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Typename Value" context="#stay" String="&allnopodfmt;"/>
+      </context>
+
+      <context name="PodTypenameValueNextLine" attribute="Pod Typename Value" lineEndContext="#stay" lineEmptyContext="#pop#pop#pop" fallthroughContext="#pop">
+        <DetectSpaces attribute="Normal Text" context="PodTypenameValueOrEmpty"/>
+        <DetectChar attribute="Pod" context="#pop#pop#pop" char="=" lookAhead="true"/>
+      </context>
+
+      <context name="PodTypenameValueOrEmpty" attribute="Pod Typename Value" lineEndContext="#pop#pop#pop#pop" fallthroughContext="#pop#pop">
+        <DetectChar attribute="Pod" context="#pop#pop#pop#pop" char="=" lookAhead="true"/>
+      </context>
+
+
+      <!-- Pod formatting -->
+
+      <context name="PodFormat" attribute="Pod Typename Value" lineEndContext="#stay">
+        <Detect2Chars char="B" char1="&lt;" attribute="Pod Bold" context="#pop!PodFormatB"/>
+        <Detect2Chars char="B" char1="«"    attribute="Pod Bold" context="#pop!PodFormatB2"/>
+        <Detect2Chars char="I" char1="&lt;" attribute="Pod Italic" context="#pop!PodFormatI"/>
+        <Detect2Chars char="I" char1="«"    attribute="Pod Italic" context="#pop!PodFormatI2"/>
+        <Detect2Chars char="L" char1="&lt;" attribute="Pod Link" context="#pop!PodFormatL"/>
+        <Detect2Chars char="L" char1="«"    attribute="Pod Link" context="#pop!PodFormatL2"/>
+        <Detect2Chars char="N" char1="&lt;" attribute="Pod Note" context="#pop!PodFormatN"/>
+        <Detect2Chars char="N" char1="«"    attribute="Pod Note" context="#pop!PodFormatN2"/>
+        <Detect2Chars char="P" char1="&lt;" attribute="Pod Link" context="#pop!PodFormatL"/>
+        <Detect2Chars char="P" char1="«"    attribute="Pod Link" context="#pop!PodFormatL2"/>
+        <Detect2Chars char="Z" char1="&lt;" attribute="Pod Comment" context="#pop!PodFormatZ"/>
+        <Detect2Chars char="Z" char1="«"    attribute="Pod Comment" context="#pop!PodFormatZ2"/>
+        <Detect2Chars char="U" char1="&lt;" attribute="Pod Underline" context="#pop!PodFormatU"/>
+        <Detect2Chars char="U" char1="«"    attribute="Pod Underline" context="#pop!PodFormatU2"/>
+        <Detect2Chars char="C" char1="&lt;" attribute="Pod Verbatim" context="#pop!PodFormatVT"/>
+        <Detect2Chars char="C" char1="«"    attribute="Pod Verbatim" context="#pop!PodFormatVT2"/>
+        <Detect2Chars char="E" char1="&lt;" attribute="Pod Unicode" context="#pop!PodFormatE"/>
+        <Detect2Chars char="E" char1="«"    attribute="Pod Unicode" context="#pop!PodFormatE2"/>
+        <Detect2Chars char="K" char1="&lt;" attribute="Pod Verbatim" context="#pop!PodFormatVT"/>
+        <Detect2Chars char="K" char1="«"    attribute="Pod Verbatim" context="#pop!PodFormatVT2"/>
+        <Detect2Chars char="R" char1="&lt;" attribute="Pod Verbatim" context="#pop!PodFormatVT"/>
+        <Detect2Chars char="R" char1="«"    attribute="Pod Verbatim" context="#pop!PodFormatVT2"/>
+        <Detect2Chars char="T" char1="&lt;" attribute="Pod Verbatim" context="#pop!PodFormatVT"/>
+        <Detect2Chars char="T" char1="«"    attribute="Pod Verbatim" context="#pop!PodFormatVT2"/>
+        <Detect2Chars char="V" char1="&lt;" attribute="Pod Verbatim" context="#pop!PodFormatV"/>
+        <Detect2Chars char="V" char1="«"    attribute="Pod Verbatim" context="#pop!PodFormatV2"/>
+        <Detect2Chars char="X" char1="&lt;" attribute="Pod Indexed Terms" context="#pop!PodFormatX"/>
+        <Detect2Chars char="X" char1="«"    attribute="Pod Indexed Terms" context="#pop!PodFormatX2"/>
+        <Detect2Chars char="M" char1="&lt;" attribute="Pod Verbatim" context="#pop!PodFormatVT"/>
+        <Detect2Chars char="M" char1="«"    attribute="Pod Verbatim" context="#pop!PodFormatVT2"/>
+      </context>
+
+      <context name="PodFormatB" attribute="Pod Bold" lineEndContext="#stay" fallthroughContext="#pop!PodFormatB1">
+        <DetectChar char="&lt;" attribute="Pod Bold" context="#pop!PodFormatB3"/>
+      </context>
+      <context name="PodFormatB1" attribute="Pod Bold" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Bold" context="#stay" String="&allnopodfmt1;"/>
+        <DetectChar char="&lt;" attribute="Pod Bold" context="PodFormatB1"/>
+        <DetectChar char=">" attribute="Pod Bold" context="#pop"/>
+      </context>
+      <context name="PodFormatB2" attribute="Pod Bold" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Bold" context="#stay" String="&allnopodfmt2;"/>
+        <DetectChar char="«" attribute="Pod Bold" context="PodFormatB2"/>
+        <DetectChar char="»" attribute="Pod Bold" context="#pop"/>
+      </context>
+      <context name="PodFormatB3" attribute="Pod Bold" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Bold" context="#stay" String="&allnopodfmt3;"/>
+        <Detect2Chars char="&lt;" char1="&lt;" attribute="Pod Bold" context="PodFormatB3"/>
+        <Detect2Chars char=">" char1=">" attribute="Pod Bold" context="#pop"/>
+      </context>
+
+      <context name="PodFormatE" attribute="Pod Unicode" lineEndContext="#stay" fallthroughContext="#pop!PodFormatE1">
+        <DetectChar char="&lt;" attribute="Pod Unicode" context="#pop!PodFormatE3"/>
+      </context>
+      <context name="PodFormatE1" attribute="Pod Unicode" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Unicode" context="#stay" String="&allnopodfmt1;"/>
+        <DetectChar char="&lt;" attribute="Pod Unicode" context="PodFormatE1"/>
+        <DetectChar char=">" attribute="Pod Unicode" context="#pop"/>
+      </context>
+      <context name="PodFormatE2" attribute="Pod Unicode" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Unicode" context="#stay" String="&allnopodfmt2;"/>
+        <DetectChar char="«" attribute="Pod Unicode" context="PodFormatE2"/>
+        <DetectChar char="»" attribute="Pod Unicode" context="#pop"/>
+      </context>
+      <context name="PodFormatE3" attribute="Pod Unicode" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Unicode" context="#stay" String="&allnopodfmt3;"/>
+        <Detect2Chars char="&lt;" char1="&lt;" attribute="Pod Unicode" context="PodFormatE3"/>
+        <Detect2Chars char=">" char1=">" attribute="Pod Unicode" context="#pop"/>
+      </context>
+
+      <context name="PodFormatI" attribute="Pod Italic" lineEndContext="#stay" fallthroughContext="#pop!PodFormatI1">
+        <DetectChar char="&lt;" attribute="Pod Italic" context="#pop!PodFormatI3"/>
+      </context>
+      <context name="PodFormatI1" attribute="Pod Italic" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Italic" context="#stay" String="&allnopodfmt1;"/>
+        <DetectChar char="&lt;" attribute="Pod Italic" context="PodFormatI1"/>
+        <DetectChar char=">" attribute="Pod Italic" context="#pop"/>
+      </context>
+      <context name="PodFormatI2" attribute="Pod Italic" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Italic" context="#stay" String="&allnopodfmt2;"/>
+        <DetectChar char="«" attribute="Pod Italic" context="PodFormatI2"/>
+        <DetectChar char="»" attribute="Pod Italic" context="#pop"/>
+      </context>
+      <context name="PodFormatI3" attribute="Pod Italic" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Italic" context="#stay" String="&allnopodfmt3;"/>
+        <Detect2Chars char="&lt;" char1="&lt;" attribute="Pod Italic" context="PodFormatI3"/>
+        <Detect2Chars char=">" char1=">" attribute="Pod Italic" context="#pop"/>
+      </context>
+
+      <context name="PodFormatL" attribute="Pod Link" lineEndContext="#stay" fallthroughContext="#pop!PodFormatL1">
+        <DetectChar char="&lt;" attribute="Pod Link" context="#pop!PodFormatL3"/>
+      </context>
+      <context name="PodFormatL1" attribute="Pod Link" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;&lt;>|]+|[&podfmt;](?![&lt;«]))+"/>
+        <DetectChar char="|" attribute="Pod Operator" context="#stay"/>
+        <DetectChar char=">" attribute="Pod Link" context="#pop"/>
+      </context>
+      <context name="PodFormatL2" attribute="Pod Link" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;«»|]+|[&podfmt;](?![&lt;«]))+"/>
+        <DetectChar char="|" attribute="Pod Operator" context="#stay"/>
+        <DetectChar char="»" attribute="Pod Link" context="#pop"/>
+      </context>
+      <context name="PodFormatL3" attribute="Pod Link" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;&lt;>|]+|[&podfmt;](?![&lt;«])|>(?!>)|&lt;(?!&lt;))+"/>
+        <DetectChar char="|" attribute="Pod Operator" context="#stay"/>
+        <Detect2Chars char=">" char1=">" attribute="Pod Link" context="#pop"/>
+      </context>
+
+      <context name="PodFormatN" attribute="Pod Note" lineEndContext="#stay" fallthroughContext="#pop!PodFormatN1">
+        <DetectChar char="&lt;" attribute="Pod Note" context="#pop!PodFormatN3"/>
+      </context>
+      <context name="PodFormatN1" attribute="Pod Note" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Note" context="#stay" String="&allnopodfmt1;"/>
+        <DetectChar char="&lt;" attribute="Pod Note" context="PodFormatN1"/>
+        <DetectChar char=">" attribute="Pod Note" context="#pop"/>
+      </context>
+      <context name="PodFormatN2" attribute="Pod Note" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Note" context="#stay" String="&allnopodfmt2;"/>
+        <DetectChar char="«" attribute="Pod Note" context="PodFormatN2"/>
+        <DetectChar char="»" attribute="Pod Note" context="#pop"/>
+      </context>
+      <context name="PodFormatN3" attribute="Pod Note" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Note" context="#stay" String="&allnopodfmt3;"/>
+        <Detect2Chars char="&lt;" char1="&lt;" attribute="Pod Note" context="PodFormatN3"/>
+        <Detect2Chars char=">" char1=">" attribute="Pod Note" context="#pop"/>
+      </context>
+
+      <context name="PodFormatU" attribute="Pod Underline" lineEndContext="#stay" fallthroughContext="#pop!PodFormatU1">
+        <DetectChar char="&lt;" attribute="Pod Underline" context="#pop!PodFormatU3"/>
+      </context>
+      <context name="PodFormatU1" attribute="Pod Underline" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Underline" context="#stay" String="&allnopodfmt1;"/>
+        <DetectChar char="&lt;" attribute="Pod Underline" context="PodFormatU1"/>
+        <DetectChar char=">" attribute="Pod Underline" context="#pop"/>
+      </context>
+      <context name="PodFormatU2" attribute="Pod Underline" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Underline" context="#stay" String="&allnopodfmt2;"/>
+        <DetectChar char="«" attribute="Pod Underline" context="PodFormatU2"/>
+        <DetectChar char="»" attribute="Pod Underline" context="#pop"/>
+      </context>
+      <context name="PodFormatU3" attribute="Pod Underline" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Underline" context="#stay" String="&allnopodfmt3;"/>
+        <Detect2Chars char="&lt;" char1="&lt;" attribute="Pod Underline" context="PodFormatU3"/>
+        <Detect2Chars char=">" char1=">" attribute="Pod Underline" context="#pop"/>
+      </context>
+
+      <context name="PodFormatV" attribute="Pod Verbatim" lineEndContext="#stay" fallthroughContext="#pop!PodFormatV1">
+        <DetectChar char="&lt;" attribute="Pod Verbatim" context="#pop!PodFormatV3"/>
+      </context>
+      <context name="PodFormatV1" attribute="Pod Verbatim" lineEndContext="#stay">
+        <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt1;"/>
+        <DetectChar char="&lt;" attribute="Pod Verbatim" context="PodFormatV1"/>
+        <DetectChar char=">" attribute="Pod Verbatim" context="#pop"/>
+      </context>
+      <context name="PodFormatV2" attribute="Pod Verbatim" lineEndContext="#stay">
+        <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt2;"/>
+        <DetectChar char="«" attribute="Pod Verbatim" context="PodFormatV2"/>
+        <DetectChar char="»" attribute="Pod Verbatim" context="#pop"/>
+      </context>
+      <context name="PodFormatV3" attribute="Pod Verbatim" lineEndContext="#stay">
+        <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt3;"/>
+        <Detect2Chars char="&lt;" char1="&lt;" attribute="Pod Verbatim" context="PodFormatV3"/>
+        <Detect2Chars char=">" char1=">" attribute="Pod Verbatim" context="#pop"/>
+      </context>
+
+      <context name="PodFormatVT" attribute="Pod Verbatim" lineEndContext="#stay" fallthroughContext="#pop!PodFormatVT1">
+        <DetectChar char="&lt;" attribute="Pod Verbatim" context="#pop!PodFormatVT3"/>
+      </context>
+      <context name="PodFormatVT1" attribute="Pod Verbatim" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt1;"/>
+        <DetectChar char="&lt;" attribute="Pod Verbatim" context="PodFormatVT1"/>
+        <DetectChar char=">" attribute="Pod Verbatim" context="#pop"/>
+      </context>
+      <context name="PodFormatVT2" attribute="Pod Verbatim" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt2;"/>
+        <DetectChar char="«" attribute="Pod Verbatim" context="PodFormatVT2"/>
+        <DetectChar char="»" attribute="Pod Verbatim" context="#pop"/>
+      </context>
+      <context name="PodFormatVT3" attribute="Pod Verbatim" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt3;"/>
+        <Detect2Chars char="&lt;" char1="&lt;" attribute="Pod Verbatim" context="PodFormatVT3"/>
+        <Detect2Chars char=">" char1=">" attribute="Pod Verbatim" context="#pop"/>
+      </context>
+
+      <context name="PodFormatZ" attribute="Pod Comment" lineEndContext="#stay" fallthroughContext="#pop!PodFormatZ1">
+        <DetectChar char="&lt;" attribute="Pod Comment" context="#pop!PodFormatZ3"/>
+      </context>
+      <context name="PodFormatZ1" attribute="Pod Comment" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Comment" context="#stay" String="&allnopodfmt1;"/>
+        <DetectChar char="&lt;" attribute="Pod Comment" context="PodFormatZ1"/>
+        <DetectChar char=">" attribute="Pod Comment" context="#pop"/>
+      </context>
+      <context name="PodFormatZ2" attribute="Pod Comment" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Comment" context="#stay" String="&allnopodfmt2;"/>
+        <DetectChar char="«" attribute="Pod Comment" context="PodFormatZ2"/>
+        <DetectChar char="»" attribute="Pod Comment" context="#pop"/>
+      </context>
+      <context name="PodFormatZ3" attribute="Pod Comment" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Comment" context="#stay" String="&allnopodfmt3;"/>
+        <Detect2Chars char="&lt;" char1="&lt;" attribute="Pod Comment" context="PodFormatZ3"/>
+        <Detect2Chars char=">" char1=">" attribute="Pod Comment" context="#pop"/>
+      </context>
+
+      <context name="PodFormatX" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthroughContext="#pop!PodFormatX1">
+        <DetectChar char="&lt;" attribute="Pod Indexed Terms" context="#pop!PodFormatX3"/>
+      </context>
+      <context name="PodFormatX1" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;&lt;>|;,]+|[&podfmt;](?![&lt;«]))+"/>
+        <AnyChar String="|;," attribute="Pod Operator" context="#stay"/>
+        <DetectChar char=">" attribute="Pod Indexed Terms" context="#pop"/>
+      </context>
+      <context name="PodFormatX2" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;«»|;,]+|[&podfmt;](?![&lt;«]))+"/>
+        <AnyChar String="|;," attribute="Pod Operator" context="#stay"/>
+        <DetectChar char="«" attribute="Pod Indexed Terms" context="PodFormatX2"/>
+        <DetectChar char="»" attribute="Pod Indexed Terms" context="#pop"/>
+      </context>
+      <context name="PodFormatX3" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthroughContext="PodFormat">
+        <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;&lt;>|;,]+|[&podfmt;](?![&lt;«])|>(?!>)|&lt;(?!&lt;))+"/>
+        <AnyChar String="|;," attribute="Pod Operator" context="#stay"/>
+        <Detect2Chars char="&lt;" char1="&lt;" attribute="Pod Indexed Terms" context="PodFormatX3"/>
+        <Detect2Chars char=">" char1=">" attribute="Pod Indexed Terms" context="#pop"/>
+      </context>
+
+      <!-- Pod =begin -->
+
+      <context name="PodBegin" attribute="Pod Typename Value" lineEndContext="#pop#pop!Error">
+        <DetectSpaces attribute="Normal Text"/>
+        <WordDetect String="code" context="PodBeginCode" attribute="Pod Typename Value" beginRegion="pod"/>
+        <WordDetect String="comment" context="PodBeginComment" attribute="Pod Typename Value" beginRegion="pod"/>
+        <RegExpr String="(&ident;)" context="PodBeginTypename" attribute="Pod Typename Value" beginRegion="pod"/>
+      </context>
+
+      <context name="PodBeginCode" attribute="Error" lineEndContext="PodInnerCode">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char=":" context="PodBlockConfigKey" attribute="Pod Operator"/>
+        <DetectChar char="=" context="PodEndCode" attribute="Pod" firstNonSpace="1"/>
+      </context>
+
+      <context name="PodInnerCode" attribute="Pod Verbatim" lineEndContext="#stay" fallthroughContext="PodCode">
+        <RegExpr String="^\s*=end\s+code\s*$" context="#pop" attribute="Pod" column="0" lookAhead="1"/>
+      </context>
+      <context name="PodCode" attribute="Pod Verbatim" lineEndContext="#pop"/>
+
+      <context name="PodEndCode" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop">
+        <StringDetect String="end" context="PodEndCodeName" attribute="Pod Block" endRegion="pod"/>
+      </context>
+      <context name="PodEndCodeName" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop#pop" fallthroughContext="#pop#pop#pop#pop!Error">
+        <DetectSpaces attribute="Normal Text"/>
+        <StringDetect String="code" context="#pop#pop#pop#pop!Error" attribute="Pod Typename Value"/>
+      </context>
+
+
+      <context name="PodBeginComment" attribute="Error" lineEndContext="PodInnerComment">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="=" context="PodEndComment" attribute="Pod" firstNonSpace="1"/>
+      </context>
+
+      <context name="PodInnerComment" attribute="Comment" lineEndContext="#stay" fallthroughContext="PodComment">
+        <RegExpr String="^\s*=end\s+comment\s*$" context="#pop" attribute="Pod" column="0" lookAhead="1"/>
+      </context>
+      <context name="PodComment" attribute="Comment" lineEndContext="#pop"/>
+
+      <context name="PodEndComment" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop">
+        <StringDetect String="end" context="PodEndCommentName" attribute="Pod Block" endRegion="pod"/>
+      </context>
+      <context name="PodEndCommentName" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop#pop" fallthroughContext="#pop#pop#pop#pop!Error">
+        <DetectSpaces attribute="Normal Text"/>
+        <StringDetect String="comment" context="#pop#pop#pop#pop!Error" attribute="Pod Typename Value"/>
+      </context>
+
+
+      <context name="PodBeginTypename" attribute="Error" lineEndContext="PodInnerBlock">
+        <RegExpr String="^\s*=end\s+%1\b" dynamic="1" context="PodEnd" attribute="Pod" column="0" lookAhead="1"/>
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char=":" context="PodBlockConfigKey" attribute="Pod Operator"/>
+        <DetectChar char="=" context="PodEndError" attribute="Pod" firstNonSpace="1"/>
+      </context>
+
+      <context name="PodInnerBlock" attribute="Pod Paragraph" lineEndContext="#stay" fallthroughContext="PodInnerBlockFormat">
+        <RegExpr String="^\s*=end\b" context="#pop" attribute="Pod" column="0" lookAhead="1"/>
+        <DetectSpaces/>
+        <DetectChar char="=" context="StartPod" attribute="Pod" firstNonSpace="1"/>
+        <RegExpr attribute="Pod Paragraph" context="#stay" String="&allnopodfmt;"/>
+      </context>
+
+      <context name="PodInnerBlockFormat" attribute="Pod Paragraph" lineEndContext="#stay">
+        <IncludeRules context="PodFormat"/>
+      </context>
+
+      <context name="PodEnd" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar char="=" context="#stay" attribute="Pod"/>
+        <StringDetect String="end" context="PodEndName" attribute="Pod Block" endRegion="pod"/>
+      </context>
+      <context name="PodEndName" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop#pop">
+        <DetectSpaces attribute="Normal Text"/>
+        <RegExpr String="&ident;" context="#pop#pop#pop#pop!Error" attribute="Pod Typename Value"/>
+      </context>
+
+      <context name="PodEndError" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop">
+        <StringDetect String="end" attribute="Pod Block" context="#pop#pop#pop!Error" endRegion="pod"/>
+      </context>
+
+      <!-- Pod configuration for =begin -->
+
+      <context name="PodBlockConfigError" attribute="Error" lineEndContext="#pop#pop!PodInnerBlock"/>
+
+      <context name="PodBlockConfigKey" attribute="Pod Key" lineEndContext="#pop!PodInnerBlock" fallthroughContext="PodBlockConfigError">
+        <DetectChar char="!" context="#pop!PodBlockConfigKeyName" attribute="Pod Operator"/>
+        <Int context="PodBlockConfigKeyIntName" attribute="Decimal"/>
+        <DetectIdentifier context="PodBlockConfigParam" attribute="Pod Key"/>
+      </context>
+
+      <context name="PodBlockConfigKeyName" attribute="Pod Key" lineEndContext="#pop!PodTypenameValue" fallthroughContext="PodBlockConfigError">
+        <DetectIdentifier context="PodBlockConfigParam" attribute="Pod Key"/>
+      </context>
+
+      <context name="PodBlockConfigKeyIntName" attribute="Pod Key" lineEndContext="#pop#pop!PodBlockConfigError" fallthroughContext="#pop!PodBlockConfigError">
+        <DetectIdentifier context="#pop#pop" attribute="Pod Key"/>
+      </context>
+
+      <context name="PodBlockConfigParam" attribute="Pod Key" lineEndContext="#pop#pop#pop" fallthroughContext="#pop">
+        <DetectChar char="&lt;" context="PodParamSequence" attribute="Pod Operator"/>
+        <DetectChar char="{" context="PodParamHash" attribute="Pod Operator"/>
+        <AnyChar String="([" context="PodParamList" attribute="Pod Operator"/>
+      </context>
+
+
+      <!-- Pod =for -->
+
+      <context name="PodFor" attribute="Pod Typename" lineEndContext="#pop#pop!Error" fallthroughContext="#pop#pop!Error">
+        <DetectSpaces attribute="Normal Text"/>
+        <keyword String="podtypename" context="#pop!PodConfig" attribute="Pod Typename"/>
+      </context>
+
+      <!-- Pod configuration for =for -->
+
+      <context name="PodConfigError" attribute="Error" lineEndContext="#pop#pop!PodTypenameValue"/>
+
+      <context name="PodConfig" attribute="Normal Text" lineEndContext="#pop!PodTypenameValue" fallthroughContext="PodConfigError">
+        <DetectSpaces/>
+        <DetectChar char=":" context="PodConfigKey" attribute="Pod Operator"/>
+      </context>
+
+      <context name="PodConfigKey" attribute="Pod Key" lineEndContext="#pop#pop!PodTypenameValue" fallthroughContext="#pop!PodConfigError">
+        <DetectChar char="!" context="#pop!PodConfigKeyName" attribute="Pod Operator"/>
+        <Int context="PodConfigKeyIntName" attribute="Decimal"/>
+        <DetectIdentifier context="PodConfigParam" attribute="Pod Key"/>
+      </context>
+
+      <context name="PodConfigKeyName" attribute="Pod Key" lineEndContext="#pop#pop!PodTypenameValue" fallthroughContext="#pop!PodConfigError">
+        <DetectIdentifier context="PodConfigParam" attribute="Pod Key"/>
+      </context>
+
+      <context name="PodConfigKeyIntName" attribute="Pod Key" lineEndContext="#pop#pop#pop!PodConfigError" fallthroughContext="#pop#pop!PodConfigError">
+        <DetectIdentifier context="#pop#pop" attribute="Pod Key"/>
+      </context>
+
+      <context name="PodConfigParam" attribute="Pod Key" lineEndContext="#pop#pop#pop#pop" fallthroughContext="#pop#pop">
+        <DetectChar char="&lt;" context="PodParamSequence" attribute="Pod Operator"/>
+        <DetectChar char="{" context="PodParamHash" attribute="Pod Operator"/>
+        <AnyChar String="([" context="PodParamList" attribute="Pod Operator"/>
+      </context>
+
+      <context name="find_PodNumber" attribute="Pod Config" lineEndContext="#stay">
+        <RegExpr String="\.?\p{N}" context="PodNumber" lookAhead="1" minimal="1"/>
+      </context>
+
+      <context name="PodParamSequence" attribute="Pod Config" lineEndContext="#stay">
+        <DetectSpaces/>
+        <keyword String="pod values" context="#stay" attribute="Data Type"/>
+        <DetectIdentifier/>
+        <IncludeRules context="find_PodNumber"/>
+        <DetectChar char=">" context="#pop#pop#pop" attribute="Pod Operator"/>
+        <DetectChar char="'" context="PodSQString" attribute="String"/>
+        <DetectChar char="&quot;" context="PodQString" attribute="String"/>
+      </context>
+
+      <context name="PodParamHash" attribute="Pod Config" lineEndContext="#stay">
+        <DetectSpaces/>
+        <Detect2Chars char="=" char1=">" context="#stay" attribute="Pod Operator"/>
+        <DetectChar char="," context="#stay" attribute="Pod Operator"/>
+        <keyword String="pod values" context="#stay" attribute="Data Type"/>
+        <DetectIdentifier/>
+        <DetectChar char="'" context="PodSQString" attribute="String"/>
+        <DetectChar char="&quot;" context="PodQString" attribute="String"/>
+        <IncludeRules context="find_PodNumber"/>
+        <DetectChar char="}" context="#pop#pop#pop" attribute="Pod Operator"/>
+      </context>
+
+      <context name="PodParamList" attribute="Pod Config" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar char="," context="#stay" attribute="Pod Operator"/>
+        <keyword String="pod values" context="#stay" attribute="Data Type"/>
+        <DetectIdentifier/>
+        <DetectChar char="'" context="PodSQString" attribute="String"/>
+        <DetectChar char="&quot;" context="PodQString" attribute="String"/>
+        <IncludeRules context="find_PodNumber"/>
+        <AnyChar String="])" context="#pop#pop#pop" attribute="Pod Operator"/>
+      </context>
+
+
+      <!-- Pod Number (same as Number with different context pop) -->
+
+      <context name="PodNumber" attribute="Decimal" lineEndContext="#stay" fallthroughContext="#pop">
+        <RegExpr String="&int10;(?:\.&int10;&exp;?|&exp;)|\.&int10;&exp;?" context="PodNumberSuffix" attribute="Float"/>
+        <Detect2Chars char="0" char1="x" context="HexPodNumber" attribute="Hex"/>
+        <Detect2Chars char="0" char1="o" context="OctalPodNumber" attribute="Octal"/>
+        <RegExpr String="\p{N}++(?:_\p{N}++)*+" context="PodNumberSuffix" attribute="Decimal"/>
+      </context>
+
+      <context name="HexPodNumber" attribute="Hex" lineEndContext="#pop#pop" fallthroughContext="PodNumberCheckError">
+        <RegExpr String="[a-fA-F0-9]++(?:_[a-fA-F0-9]++)*+" context="#pop!PodNumberSuffix" attribute="Hex"/>
+      </context>
+
+      <context name="OctalPodNumber" attribute="Octal" lineEndContext="#pop#pop" fallthroughContext="PodNumberCheckError">
+        <RegExpr String="[0-7]++(?:_[0-7]++)*+" context="#pop!PodNumberSuffix" attribute="Octal"/>
+      </context>
+
+      <context name="PodNumberSuffix" attribute="Decimal" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
+        <DetectChar char="i" context="#pop!PodNumberCheckError" attribute="Number Suffix"/>
+        <IncludeRules context="PodNumberCheckError"/>
+      </context>
+      <context name="PodNumberCheckError" attribute="Decimal" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
+        <RegExpr String="&alnum;+" context="#pop#pop" attribute="Error"/>
+      </context>
+
+
+      <!-- Pod String -->
+
+      <context name="PodSQString" attribute="String" lineEndContext="#stay">
+        <Detect2Chars char="\" char1="'" context="#stay" attribute="String Special Character"/>
+        <DetectChar char="'" context="#pop" attribute="String Delimiter"/>
+        <RegExpr String="(?:[^\\']*|\\[^']|\\$)*" context="#stay" attribute="String"/>
+      </context>
+
+      <context name="PodQString" attribute="String" lineEndContext="#stay">
+        <DetectChar char="&quot;" context="#pop" attribute="String Delimiter"/>
+        <DetectChar char="\" context="SpecialChar" attribute="String Special Character"/>
+        <RegExpr String="(?:[^&quot;\\]*|\\$)*" context="#stay" attribute="String"/>
+      </context>
+
+      <context name="SpecialCharPre" attribute="String Special Character" lineEndContext="#pop">
+        <RegExpr String="[abefnrtv]|x(&unicode_hex_point;(?![0-9a-fA-F])|\[\s*&unicode_hex_point;\s*\])|c(&unicode_dec_point;(?![0-9])|\[[a-zA-Z\s]+\])|o(&unicode_oct_point;(?![0-7])|\[\s*&unicode_oct_point;\s*\])" context="#pop" attribute="String Special Character"/>
+      </context>
+      <context name="SpecialChar" attribute="String Special Character" lineEndContext="#pop" fallthroughContext="#pop">
+        <IncludeRules context="SpecialCharPre"/>
+        <RegExpr String="[^xco]" context="#pop" attribute="String"/>
+        <IncludeRules context="SpecialCharPost"/>
+      </context>
+      <context name="SpecialCharPost" attribute="String Special Character" lineEndContext="#pop">
+        <StringDetect String="x[" context="SpecialCharX" attribute="String Special Character"/>
+        <StringDetect String="c[" context="SpecialCharC" attribute="String Special Character"/>
+        <StringDetect String="o[" context="SpecialCharO" attribute="String Special Character"/>
+
+        <RegExpr String="x&unicode_hex_point;|c&unicode_dec_point;|o&unicode_oct_point;" context="SpecialCharError" attribute="String Special Character"/>
+
+        <AnyChar String="xco" context="#pop" attribute="Error"/>
+      </context>
+
+      <context name="SpecialCharError" attribute="String Special Character" fallthroughContext="#pop#pop">
+        <AnyChar String="0123456789abcdefABCDEF" context="#pop#pop" attribute="Error"/>
+      </context>
+
+      <context name="SpecialCharPreCommon" attribute="String Special Character">
+        <DetectChar char="]" context="#pop#pop" attribute="String Special Character"/>
+        <DetectChar char="," attribute="Separator Symbol"/>
+        <DetectChar char="&quot;" context="#pop#pop#pop" attribute="Error"/>
+      </context>
+
+      <context name="SpecialCharX" attribute="String Special Character">
+        <IncludeRules context="SpecialCharPreCommon"/>
+        <IncludeRules context="X[]"/>
+        <RegExpr String="[^0-9a-fA-F\],\s&quot;]+|[0-9a-fA-F]+|." attribute="Error"/>
+      </context>
+
+      <context name="SpecialCharO" attribute="String Special Character">
+        <IncludeRules context="SpecialCharPreCommon"/>
+        <IncludeRules context="O[]"/>
+        <RegExpr String="[^0-7\],\s&quot;]+|[0-7]+|." attribute="Error"/>
+      </context>
+
+      <context name="SpecialCharC" attribute="String Special Character">
+        <IncludeRules context="SpecialCharPreCommon"/>
+        <IncludeRules context="C[]"/>
+        <RegExpr String="[^0-9a-zA-Z\],\s&quot;]+|[0-9a-zA-Z]+|." attribute="Error"/>
+      </context>
+
+
+      <!-- Q String -->
+
+      <context name="Q_String" attribute="String" lineEndContext="#stay" fallthroughContext="#pop">
+        <DetectSpaces attribute="String"/>
+        <DetectChar char=":" context="#pop!Q_StringModifier" attribute="Operator"/>
+        <DetectChar char="(" context="#pop!Q_String(" attribute="String Delimiter"/>
+        <DetectChar char="[" context="#pop!Q_String[" attribute="String Delimiter"/>
+        <DetectChar char="{" context="#pop!Q_String{" attribute="String Delimiter"/>
+        <DetectChar char="｢" context="#pop!Q_String｢" attribute="String Delimiter"/>
+        <DetectChar char="&lt;" context="#pop!Q_String&lt;" attribute="String Delimiter"/>
+        <RegExpr String="([^()>｣\]}'&rangealnum;])" context="#pop!Q_StringAny" attribute="String Delimiter"/>
+      </context>
+
+      <context name="Q_String(" attribute="String" lineEndContext="#stay">
+        <DetectChar char=")" context="#pop" attribute="String Delimiter"/>
+        <DetectChar char="(" context="Q_String(" attribute="String Delimiter"/>
+        <RegExpr String="[^()]*" context="#stay" attribute="String"/>
+      </context>
+
+      <context name="Q_String[" attribute="String" lineEndContext="#stay">
+        <DetectChar char="]" context="#pop" attribute="String Delimiter"/>
+        <DetectChar char="[" context="Q_String[" attribute="String Delimiter"/>
+        <RegExpr String="[^\[\]]*" context="#stay" attribute="String"/>
+      </context>
+
+      <context name="Q_String{" attribute="String" lineEndContext="#stay">
+        <DetectChar char="}" context="#pop" attribute="String Delimiter"/>
+        <DetectChar char="{" context="Q_String{" attribute="String Delimiter"/>
+        <RegExpr String="[^{}]*" context="#stay" attribute="String"/>
+      </context>
+
+      <context name="Q_String｢" attribute="String" lineEndContext="#stay">
+        <DetectChar char="｣" context="#pop" attribute="String Delimiter"/>
+        <IncludeRules context="Q_String｢_common"/>
+      </context>
+      <context name="Q_String｢_term" attribute="String" lineEndContext="#stay">
+        <DetectChar char="｣" context="#pop!postfix_op" attribute="String Delimiter"/>
+        <IncludeRules context="Q_String｢_common"/>
+      </context>
+      <context name="Q_String｢_common" attribute="String" lineEndContext="#stay">
+        <DetectChar char="｢" context="Q_String｢" attribute="String Delimiter"/>
+        <RegExpr String="[^｢｣]*" context="#stay" attribute="String"/>
+      </context>
+
+      <context name="Q_String&lt;" attribute="String" lineEndContext="#stay">
+        <DetectChar char=">" context="#pop" attribute="String Delimiter"/>
+        <DetectChar char="&lt;" context="Q_String&lt;" attribute="String Delimiter"/>
+        <RegExpr String="[^&lt;>]*" context="#stay" attribute="String"/>
+      </context>
+
+      <context name="Q_StringAny" attribute="String" lineEndContext="#stay">
+        <DetectChar char="1" dynamic="1" context="#pop" attribute="String Delimiter"/>
+        <RegExpr String="[^%1]*" dynamic="1" context="#stay" attribute="String"/>
+      </context>
+
+      <context name="q_Q_StringModifier" attribute="Operator" lineEndContext="#stay" fallthroughContext="#pop#pop!q_String">
+        <DetectChar char=":" context="#pop#pop!q_QuotingForm2" attribute="Operator"/>
+      </context>
+
+      <context name="qq_Q_StringModifier" attribute="Operator" lineEndContext="#stay" fallthroughContext="#pop#pop!qq_String">
+        <DetectChar char=":" context="#pop!qq_QuotingForm" attribute="Operator"/>
+      </context>
+
+      <context name="Q_StringModifier" attribute="Operator" lineEndContext="#stay" fallthroughContext="#pop!q_QuotingForm2">
+        <DetectChar char="q" context="#pop!q_QuotingForm" attribute="Operator"/>
+        <DetectChar char="'" context="q_Q_StringModifier" attribute="Operator"/>
+        <DetectChar char="&quot;" context="qq_Q_StringModifier" attribute="Operator"/>
+      </context>
+
+      <context name="q_QuotingForm" attribute="Operator" lineEndContext="#pop" fallthroughContext="#pop!q_QuotingForm2">
+        <DetectChar char="q" context="#pop!qq_QuotingForm" attribute="Operator"/>
+        <DetectChar char=":" context="#pop!q_QuotingForm2" attribute="Operator"/>
+      </context>
+      <context name="q_QuotingForm2" attribute="Operator" lineEndContext="#pop" fallthroughContext="q_String">
+        <WordDetect String="heredoc" context="q_Heredoc" attribute="Operator"/>
+        <keyword String="quoting" context="#stay" attribute="Operator"/>
+        <AnyChar String="wvx:sahfb" context="#stay" attribute="Operator"/>
+        <!-- :closure as qq -->
+        <DetectChar char="c" context="#pop!qq_QuotingForm" attribute="Operator"/>
+        <Detect2Chars char="t" char1="o" context="q_Heredoc" attribute="Operator"/>
+      </context>
+
+      <context name="qq_QuotingForm" attribute="Operator" lineEndContext="#pop" fallthroughContext="qq_String">
+        <WordDetect String="heredoc" context="qq_Heredoc" attribute="Operator"/>
+        <keyword String="quoting" context="#stay" attribute="Operator"/>
+        <AnyChar String="wvx:sahfcb" context="#stay" attribute="Operator"/>
+        <Detect2Chars char="t" char1="o" context="qq_Heredoc" attribute="Operator"/>
+      </context>
+
+
+      <!-- q and qq Heredoc -->
+
+      <context name="q_Heredoc" attribute="String" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
+        <RegExpr String="/([^/]+)/" context="q_HeredocTerminator" attribute="String Delimiter"/>
+      </context>
+      <context name="q_HeredocTerminator" attribute="String" lineEndContext="#stay">
+        <DetectSpaces/>
+        <StringDetect String="%1" dynamic="1" context="#pop#pop#pop" attribute="String Delimiter" firstNonSpace="1"/>
+        <RegExpr String="(?:[^\\]*|\\(?![\\%1]|&quotingconstruct;|$))*" dynamic="1" context="#stay" attribute="String"/>
+        <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>
+      </context>
+
+      <context name="qq_Heredoc" attribute="String" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
+        <RegExpr String="/([^/]+)/" context="qq_HeredocTerminator" attribute="String Delimiter"/>
+      </context>
+      <context name="qq_HeredocTerminator" attribute="String" lineEndContext="#stay">
+        <DetectSpaces/>
+        <StringDetect String="%1" dynamic="1" context="#pop#pop#pop" attribute="String Delimiter" firstNonSpace="1"/>
+        <IncludeRules context="find_qq_StringCommon"/>
+        <RegExpr String="[^\\${@&amp;]*" context="#stay" attribute="String"/>
+      </context>
+
+
+      <!-- q String -->
+
+      <context name="q_String" attribute="String" lineEndContext="#stay" fallthroughContext="#pop#pop">
+        <DetectSpaces/>
+        <DetectChar char="(" context="#pop#pop!q_String(" attribute="String Delimiter"/>
+        <DetectChar char="[" context="#pop#pop!q_String[" attribute="String Delimiter"/>
+        <DetectChar char="{" context="#pop#pop!q_String{" attribute="String Delimiter"/>
+        <DetectChar char="&lt;" context="#pop#pop!q_String&lt;" attribute="String Delimiter"/>
+        <RegExpr String="([^a-zA-Z0-9])" context="#pop#pop!q_StringAny" attribute="String Delimiter"/>
+      </context>
+
+      <context name="q_String(" attribute="String" lineEndContext="#stay">
+        <DetectChar char=")" context="#pop" attribute="String Delimiter"/>
+        <DetectChar char="(" context="q_String(" attribute="String Delimiter"/>
+        <Detect2Chars char="\" char1="(" context="#stay" attribute="String Special Character"/>
+        <Detect2Chars char="\" char1=")" context="#stay" attribute="String Special Character"/>
+        <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/>
+        <RegExpr String="(?:[^()\\]*|\\(?![()\\]|&quotingconstruct;|$))*" context="#stay" attribute="String"/>
+        <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>
+      </context>
+
+      <context name="q_String[" attribute="String" lineEndContext="#stay">
+        <DetectChar char="]" context="#pop" attribute="String Delimiter"/>
+        <DetectChar char="[" context="q_String[" attribute="String Delimiter"/>
+        <Detect2Chars char="\" char1="[" context="#stay" attribute="String Special Character"/>
+        <Detect2Chars char="\" char1="]" context="#stay" attribute="String Special Character"/>
+        <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/>
+        <RegExpr String="(?:[^\[\]\\]*|\\(?![\[\]\\]|&quotingconstruct;|$))*" context="#stay" attribute="String"/>
+        <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>
+      </context>
+
+      <context name="q_String{" attribute="String" lineEndContext="#stay">
+        <DetectChar char="}" context="#pop" attribute="String Delimiter"/>
+        <DetectChar char="{" context="q_String{" attribute="String Delimiter"/>
+        <Detect2Chars char="\" char1="{" context="#stay" attribute="String Special Character"/>
+        <Detect2Chars char="\" char1="}" context="#stay" attribute="String Special Character"/>
+        <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/>
+        <RegExpr String="(?:[^{}\\]*|\\(?![{}\\]|&quotingconstruct;|$))*" context="#stay" attribute="String"/>
+        <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>
+      </context>
+
+      <context name="q_String&lt;" attribute="String" lineEndContext="#stay">
+        <DetectChar char=">" context="#pop" attribute="String Delimiter"/>
+        <IncludeRules context="q_String&lt;_common"/>
+      </context>
+      <context name="q_String&lt;_term" attribute="String" lineEndContext="#stay">
+        <DetectChar char=">" context="#pop!postfix_op" attribute="String Delimiter"/>
+        <IncludeRules context="q_String&lt;_common"/>
+      </context>
+      <context name="q_String&lt;_common" attribute="String" lineEndContext="#stay">
+        <DetectChar char="&lt;" context="q_String&lt;" attribute="String Delimiter"/>
+        <Detect2Chars char="\" char1="&lt;" context="#stay" attribute="String Special Character"/>
+        <Detect2Chars char="\" char1=">" context="#stay" attribute="String Special Character"/>
+        <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/>
+        <RegExpr String="(?:[^&lt;>\\]*|\\(?![&lt;>\\]|&quotingconstruct;|$))*" context="#stay" attribute="String"/>
+        <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>
+      </context>
+
+      <context name="q_StringAny" attribute="String" lineEndContext="#stay">
+        <DetectChar char="1" dynamic="1" context="#pop" attribute="String Delimiter"/>
+        <StringDetect String="\%1" dynamic="1" context="#stay" attribute="String Special Character"/>
+        <RegExpr String="(?:[^\\%1]*|\\(?![\\%1]|&quotingconstruct;|$))*" dynamic="1" context="#stay" attribute="String"/>
+        <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>
+      </context>
+
+      <context name="q_RawString" attribute="String" lineEndContext="#stay">
+        <DetectChar char="'" context="#pop" attribute="String Delimiter"/>
+        <IncludeRules context="q_RawString_common"/>
+      </context>
+      <context name="q_RawString_term" attribute="String" lineEndContext="#stay">
+        <DetectChar char="'" context="#pop!postfix_op" attribute="String Delimiter"/>
+        <IncludeRules context="q_RawString_common"/>
+      </context>
+      <context name="q_RawString_common" attribute="String" lineEndContext="#stay">
+        <Detect2Chars char="\" char1="'" context="#stay" attribute="String Special Character"/>
+        <RegExpr String="(?:[^\\']*|\\(?![\\']|&quotingconstruct;|$))*" context="#stay" attribute="String"/>
+        <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>
+      </context>
+
+      <!-- qq String -->
+
+      <context name="qq_String" attribute="String" lineEndContext="#stay" fallthroughContext="#pop#pop">
+        <DetectSpaces/>
+        <DetectChar char="(" context="#pop#pop!qq_String(" attribute="String Delimiter"/>
+        <DetectChar char="[" context="#pop#pop!qq_String[" attribute="String Delimiter"/>
+        <DetectChar char="{" context="#pop#pop!qq_String{" attribute="String Delimiter"/>
+        <DetectChar char="&lt;" context="#pop#pop!qq_String&lt;" attribute="String Delimiter"/>
+        <RegExpr String="([^a-zA-Z0-9])" context="#pop#pop!qq_StringAny" attribute="String Delimiter"/>
+      </context>
+
+      <context name="qq_String(" attribute="String" lineEndContext="#stay">
+        <DetectChar char=")" context="#pop" attribute="String Delimiter"/>
+        <DetectChar char="(" context="qq_String(" attribute="String Delimiter"/>
+        <IncludeRules context="find_qq_StringCommon"/>
+        <RegExpr String="[^()\\${@&amp;]*" context="#stay" attribute="String"/>
+      </context>
+
+      <context name="qq_String[" attribute="String" lineEndContext="#stay">
+        <DetectChar char="]" context="#pop" attribute="String Delimiter"/>
+        <DetectChar char="[" context="qq_String[" attribute="String Delimiter"/>
+        <IncludeRules context="find_qq_StringCommon"/>
+        <RegExpr String="[^\[\]\\${@&amp;]*" context="#stay" attribute="String"/>
+      </context>
+
+      <context name="qq_String{" attribute="String" lineEndContext="#stay">
+        <DetectChar char="}" context="#pop" attribute="String Delimiter"/>
+        <DetectChar char="{" context="qq_String{" attribute="String Delimiter"/>
+        <IncludeRules context="find_qq_StringCommon"/>
+        <RegExpr String="[^{}\\$@&amp;]*" context="#stay" attribute="String"/>
+      </context>
+
+      <context name="qq_String&lt;" attribute="String" lineEndContext="#stay">
+        <DetectChar char=">" context="#pop" attribute="String Delimiter"/>
+        <DetectChar char="&lt;" context="qq_String&lt;" attribute="String Delimiter"/>
+        <IncludeRules context="find_qq_StringCommon"/>
+        <RegExpr String="[^&lt;>\\${@&amp;]*" context="#stay" attribute="String"/>
+      </context>
+
+      <context name="qq_String«" attribute="String" lineEndContext="#stay">
+        <DetectChar char="»" context="#pop" attribute="String Delimiter"/>
+        <IncludeRules context="qq_String«_common"/>
+      </context>
+      <context name="qq_String«_term" attribute="String" lineEndContext="#stay">
+        <DetectChar char="»" context="#pop!postfix_op" attribute="String Delimiter"/>
+        <IncludeRules context="qq_String«_common"/>
+      </context>
+      <context name="qq_String«_common" attribute="String" lineEndContext="#stay">
+        <DetectChar char="«" context="qq_String«" attribute="String Delimiter"/>
+        <IncludeRules context="find_qq_StringCommon"/>
+        <RegExpr String="[^«»\\${@&amp;]*" context="#stay" attribute="String"/>
+      </context>
+
+      <context name="qq_String&lt;&lt;" attribute="String" lineEndContext="#stay">
+        <Detect2Chars char=">" char1=">" context="#pop" attribute="String Delimiter"/>
+        <IncludeRules context="qq_String&lt;&lt;_common"/>
+      </context>
+      <context name="qq_String&lt;&lt;_term" attribute="String" lineEndContext="#stay">
+        <Detect2Chars char=">" char1=">" context="#pop!postfix_op" attribute="String Delimiter"/>
+        <IncludeRules context="qq_String&lt;&lt;_common"/>
+      </context>
+      <context name="qq_String&lt;&lt;_common" attribute="String" lineEndContext="#stay">
+        <Detect2Chars char="&lt;" char1="&lt;" context="qq_String&lt;&lt;" attribute="String Delimiter"/>
+        <IncludeRules context="find_qq_StringCommon"/>
+        <RegExpr String="([^&lt;>\\${@&amp;]*|&lt;(?!&lt;)|>(?!>))" context="#stay" attribute="String"/>
+      </context>
+
+      <context name="qq_StringAny" attribute="String" lineEndContext="#stay">
+        <DetectChar char="1" dynamic="1" context="#pop" attribute="String Delimiter"/>
+        <StringDetect String="\%1" dynamic="1" context="#stay" attribute="String Special Character"/>
+        <IncludeRules context="find_qq_StringCommon"/>
+        <RegExpr String="[^%1\\${@&amp;]*" dynamic="1" context="#stay" attribute="String"/>
+      </context>
+
+      <context name="qq_RawString" attribute="String" lineEndContext="#stay">
+        <DetectChar char="&quot;" context="#pop" attribute="String Delimiter"/>
+        <IncludeRules context="qq_RawString_common"/>
+      </context>
+      <context name="qq_RawString_term" attribute="String" lineEndContext="#stay">
+        <DetectChar char="&quot;" context="#pop!postfix_op" attribute="String Delimiter"/>
+        <IncludeRules context="qq_RawString_common"/>
+      </context>
+      <context name="qq_RawString_common" attribute="String" lineEndContext="#stay">
+        <IncludeRules context="find_qq_StringCommon"/>
+        <RegExpr String="[^\\&quot;${@&amp;]*" context="#stay" attribute="String"/>
+      </context>
+
+      <context name="find_qq_StringCommon" attribute="String" lineEndContext="#stay">
+        <DetectChar char="\" context="qq_StringEscape" attribute="Operator" lookAhead="1"/>
+        <DetectChar char="{" context="qq_Interpolation" attribute="String (interpolated)"/>
+        <DetectChar char="$" context="qq_StringMaybeVar$" attribute="String" lookAhead="1"/>
+        <AnyChar String="@%" context="qq_StringMaybeVar" attribute="String" lookAhead="1"/>
+        <DetectChar char="&amp;" context="qq_StringSigil" attribute="String" lookAhead="1"/>
+      </context>
+
+      <context name="qq_StringEscape" attribute="String Special Character" lineEndContext="#pop">
+        <Detect2Chars char="\" char1="q" context="#pop!q_QuotingForm" attribute="Operator"/>
+        <DetectChar char="\" context="#pop!qq_StringSpecialChar" attribute="String Special Character"/>
+      </context>
+      <context name="qq_StringSpecialChar" attribute="String Special Character" lineEndContext="#pop">
+        <IncludeRules context="SpecialCharPre"/>
+        <RegExpr String="[^xco]" context="#pop" attribute="String Special Character"/>
+        <IncludeRules context="SpecialCharPost"/>
+      </context>
+
+      <context name="qq_Interpolation" attribute="String (interpolated)" lineEndContext="#stay" fallthroughContext="term">
+        <DetectChar char="}" context="#pop" attribute="String (interpolated)"/>
+        <IncludeRules context="base"/>
+      </context>
+
+      <context name="qq_StringSigil" attribute="Function" lineEndContext="#stay">
+        <RegExpr String="&amp;&ident;\(" context="#pop!FunctionParameters" attribute="Function"/>
+        <DetectChar char="&amp;" context="#pop" attribute="String"/>
+      </context>
+
+      <context name="qq_StringMaybeVar$" attribute="String" lineEndContext="#stay">
+        <RegExpr String="\$(?=[&twigils;]?&prefixdollarvarname;)" context="qq_InterpolationVar" attribute="Variable"/>
+        <DetectChar char="$" context="#pop" attribute="String"/>
+      </context>
+
+      <context name="qq_StringMaybeVar" attribute="String" lineEndContext="#stay">
+        <RegExpr String="@\(\)|[%@]\$/|[@%]&ident;" context="qq_Interpolation1" attribute="Variable"/>
+        <AnyChar String="@%" context="#pop" attribute="String"/>
+      </context>
+
+      <context name="qq_InterpolationVar" attribute="String" lineEndContext="#stay">
+        <AnyChar String="&twigils;" context="#stay" attribute="Twigil"/>
+        <RegExpr String="&dollarvarname;" context="#pop!qq_Interpolation1" attribute="Variable"/>
+      </context>
+
+      <context name="qq_Interpolation1" attribute="String" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
+        <DetectChar char="[" context="qq_InterpolationIndex" attribute="Function"/>
+        <DetectChar char="." context="qq_InterpolationFunction" attribute="Function" lookAhead="1"/>
+      </context>
+
+      <context name="qq_InterpolationIndex" attribute="String" lineEndContext="#stay" fallthroughContext="term">
+        <DetectChar char="]" context="#pop#pop#pop" attribute="Function"/>
+        <IncludeRules context="base"/>
+      </context>
+
+      <context name="qq_InterpolationFunction" attribute="String" lineEndContext="#stay">
+        <RegExpr String="(?:\.&ident;)*\.&ident;\(" context="#pop#pop#pop!FunctionParameters" attribute="Function"/>
+        <DetectChar char="." context="#pop#pop#pop" attribute="String"/>
+      </context>
+
+      <context name="FunctionParameters" attribute="String" lineEndContext="#stay" fallthroughContext="term">
+        <DetectChar char=")" context="#pop" attribute="Function"/>
+        <DetectChar char="(" context="FunctionParameters" attribute="Function"/>
+        <IncludeRules context="base"/>
+      </context>
+
+
+      <!-- Comment -->
+
+      <context name="StartComment" attribute="Comment" lineEndContext="#pop" fallthroughContext="SingleLineComment">
+        <DetectChar attribute="Comment" context="MultilineComment" char="`"/>
+        <AnyChar attribute="Pod Operator" context="MultilineComment" String="=|"/>
+      </context>
+
+      <context name="MultilineComment" attribute="Comment" lineEndContext="#pop#pop" fallthroughContext="#pop!SingleLineComment">
+        <!-- TODO a new rule is needed to find the corresponding closures -->
+        <StringDetect attribute="Comment" context="#pop#pop!MultilineComment(((" String="(((" beginRegion="comment"/>
+        <StringDetect attribute="Comment" context="#pop#pop!MultilineComment[[[" String="[[[" beginRegion="comment"/>
+        <StringDetect attribute="Comment" context="#pop#pop!MultilineComment{{{" String="{{{" beginRegion="comment"/>
+        <StringDetect attribute="Comment" context="#pop#pop!MultilineComment«««" String="«««" beginRegion="comment"/>
+        <StringDetect attribute="Comment" context="#pop#pop!MultilineComment&lt;&lt;&lt;" String="&lt;&lt;&lt;" beginRegion="comment"/>
+        <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment((" char="(" char1="(" beginRegion="comment"/>
+        <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment[[" char="[" char1="[" beginRegion="comment"/>
+        <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment{{" char="{" char1="{" beginRegion="comment"/>
+        <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment««" char="«" char1="«" beginRegion="comment"/>
+        <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment&lt;&lt;" char="&lt;" char1="&lt;" beginRegion="comment"/>
+        <DetectChar attribute="Comment" context="#pop#pop!MultilineComment(" char="(" beginRegion="comment"/>
+        <DetectChar attribute="Comment" context="#pop#pop!MultilineComment[" char="[" beginRegion="comment"/>
+        <DetectChar attribute="Comment" context="#pop#pop!MultilineComment{" char="{" beginRegion="comment"/>
+        <DetectChar attribute="Comment" context="#pop#pop!MultilineComment«" char="«" beginRegion="comment"/>
+        <DetectChar attribute="Comment" context="#pop#pop!MultilineComment&lt;" char="&lt;" beginRegion="comment"/>
+        <!-- etc -->
+      </context>
+
+      <context name="MultilineComment(((" attribute="Comment" lineEndContext="#stay">
+        <IncludeRules context="SingleLineComment"/>
+        <StringDetect String=")))" attribute="Comment" context="#pop" endRegion="comment"/>
+        <StringDetect String="(((" attribute="Comment" context="MultilineComment(((" beginRegion="comment"/>
+      </context>
+      <context name="MultilineComment[[[" attribute="Comment" lineEndContext="#stay">
+        <IncludeRules context="SingleLineComment"/>
+        <StringDetect String="]]]" attribute="Comment" context="#pop" endRegion="comment"/>
+        <StringDetect String="[[[" attribute="Comment" context="MultilineComment[[[" beginRegion="comment"/>
+      </context>
+      <context name="MultilineComment{{{" attribute="Comment" lineEndContext="#stay">
+        <StringDetect String="}}}" attribute="Comment" context="#pop" endRegion="comment"/>
+        <StringDetect String="{{{" attribute="Comment" context="MultilineComment{{{" beginRegion="comment"/>
+        <IncludeRules context="SingleLineComment"/>
+      </context>
+      <context name="MultilineComment«««" attribute="Comment" lineEndContext="#stay">
+        <IncludeRules context="SingleLineComment"/>
+        <StringDetect String="»»»" attribute="Comment" context="#pop" endRegion="comment"/>
+        <StringDetect String="«««" attribute="Comment" context="MultilineComment«««" beginRegion="comment"/>
+      </context>
+      <context name="MultilineComment&lt;&lt;&lt;" attribute="Comment" lineEndContext="#stay">
+        <IncludeRules context="SingleLineComment"/>
+        <StringDetect String=">>>" attribute="Comment" context="#pop" endRegion="comment"/>
+        <StringDetect String="&lt;&lt;&lt;" attribute="Comment" context="MultilineComment&lt;&lt;&lt;" beginRegion="comment"/>
+      </context>
+
+      <context name="MultilineComment((" attribute="Comment" lineEndContext="#stay">
+        <IncludeRules context="SingleLineComment"/>
+        <Detect2Chars char=")" char1=")" attribute="Comment" context="#pop" endRegion="comment"/>
+        <Detect2Chars char="(" char1="(" attribute="Comment" context="MultilineComment((" beginRegion="comment"/>
+      </context>
+      <context name="MultilineComment[[" attribute="Comment" lineEndContext="#stay">
+        <IncludeRules context="SingleLineComment"/>
+        <Detect2Chars char="]" char1="]" attribute="Comment" context="#pop" endRegion="comment"/>
+        <Detect2Chars char="[" char1="[" attribute="Comment" context="MultilineComment[[" beginRegion="comment"/>
+      </context>
+      <context name="MultilineComment{{" attribute="Comment" lineEndContext="#stay">
+        <IncludeRules context="SingleLineComment"/>
+        <Detect2Chars char="}" char1="}" attribute="Comment" context="#pop" endRegion="comment"/>
+        <Detect2Chars char="{" char1="{" attribute="Comment" context="MultilineComment{{" beginRegion="comment"/>
+      </context>
+      <context name="MultilineComment««" attribute="Comment" lineEndContext="#stay">
+        <IncludeRules context="SingleLineComment"/>
+        <Detect2Chars char="»" char1="»" attribute="Comment" context="#pop" endRegion="comment"/>
+        <Detect2Chars char="«" char1="«" attribute="Comment" context="MultilineComment««" beginRegion="comment"/>
+      </context>
+      <context name="MultilineComment&lt;&lt;" attribute="Comment" lineEndContext="#stay">
+        <IncludeRules context="SingleLineComment"/>
+        <Detect2Chars char=">" char1=">" attribute="Comment" context="#pop" endRegion="comment"/>
+        <Detect2Chars char="&lt;" char1="&lt;" attribute="Comment" context="MultilineComment&lt;&lt;" beginRegion="comment"/>
+      </context>
+
+      <context name="MultilineComment(" attribute="Comment" lineEndContext="#stay">
+        <IncludeRules context="SingleLineComment"/>
+        <DetectChar char=")" attribute="Comment" context="#pop" endRegion="comment"/>
+        <DetectChar char="(" attribute="Comment" context="MultilineComment(" beginRegion="comment"/>
+      </context>
+      <context name="MultilineComment[" attribute="Comment" lineEndContext="#stay">
+        <IncludeRules context="SingleLineComment"/>
+        <DetectChar char="]" attribute="Comment" context="#pop" endRegion="comment"/>
+        <DetectChar char="[" attribute="Comment" context="MultilineComment[" beginRegion="comment"/>
+      </context>
+      <context name="MultilineComment{" attribute="Comment" lineEndContext="#stay">
+        <IncludeRules context="SingleLineComment"/>
+        <DetectChar char="}" attribute="Comment" context="#pop" endRegion="comment"/>
+        <DetectChar char="{" attribute="Comment" context="MultilineComment{" beginRegion="comment"/>
+      </context>
+      <context name="MultilineComment«" attribute="Comment" lineEndContext="#stay">
+        <IncludeRules context="SingleLineComment"/>
+        <DetectChar char="»" attribute="Comment" context="#pop" endRegion="comment"/>
+        <DetectChar char="«" attribute="Comment" context="MultilineComment«" beginRegion="comment"/>
+      </context>
+      <context name="MultilineComment&lt;" attribute="Comment" lineEndContext="#stay">
+        <IncludeRules context="SingleLineComment"/>
+        <DetectChar char=">" attribute="Comment" context="#pop" endRegion="comment"/>
+        <DetectChar char="&lt;" attribute="Comment" context="MultilineComment&lt;" beginRegion="comment"/>
+      </context>
+
+      <context name="SingleLineComment" attribute="Comment" lineEndContext="#pop#pop">
+        <DetectSpaces/>
+        <IncludeRules context="##Comments"/>
+        <DetectIdentifier/>
+      </context>
+
+
+      <!-- Error -->
+
+      <context name="Error" attribute="Error" lineEndContext="#pop"/>
+
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text"               defStyleNum="dsNormal"/>
+      <itemData name="Keyword"                   defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Keyword Value"             defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Variable"                  defStyleNum="dsVariable" spellChecking="false"/>
+      <itemData name="Twigil"                    defStyleNum="dsAttribute" spellChecking="false"/>
+      <itemData name="Control Flow"              defStyleNum="dsControlFlow" spellChecking="false"/>
+      <itemData name="Variable Storage"          defStyleNum="dsKeyword" spellChecking="false" bold="1"/>
+      <itemData name="Property"                  defStyleNum="dsBuiltIn" spellChecking="false" italic="1"/>
+      <itemData name="Declare Routine"           defStyleNum="dsBuiltIn" spellChecking="false"/>
+      <itemData name="Function"                  defStyleNum="dsFunction" spellChecking="false"/>
+      <itemData name="Symbol"                    defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Operator"                  defStyleNum="dsOperator" spellChecking="false"/>
+      <itemData name="Member Operator"           defStyleNum="dsOperator" spellChecking="false"/>
+      <itemData name="Hyper Operator"            defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Separator Symbol"          defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Data Type"                 defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Attribute"                 defStyleNum="dsAttribute" spellChecking="false"/>
+      <itemData name="Number Suffix"             defStyleNum="dsAttribute" spellChecking="false"/>
+      <itemData name="Decimal"                   defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="Octal"                     defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Hex"                       defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Float"                     defStyleNum="dsFloat" spellChecking="false"/>
+      <itemData name="String"                    defStyleNum="dsString"/>
+      <itemData name="String Delimiter"          defStyleNum="dsChar" spellChecking="false"/>
+      <itemData name="String (interpolated)"     defStyleNum="dsString"/>
+      <itemData name="String Special Character"  defStyleNum="dsChar"/>
+      <itemData name="Pattern"                   defStyleNum="dsOthers" spellChecking="false"/>
+      <itemData name="Pattern Delimiter"         defStyleNum="dsVerbatimString" spellChecking="false"/>
+      <itemData name="Pattern Bracket"           defStyleNum="dsExtension" spellChecking="false"/>
+      <itemData name="Pattern Meta Character"    defStyleNum="dsChar" spellChecking="false"/>
+      <itemData name="Pattern Character Class"   defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Pattern Unicode Property"  defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Pattern Character"         defStyleNum="dsSpecialString" spellChecking="false"/>
+      <itemData name="Pattern Modifier"          defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Pattern Quantifier"        defStyleNum="dsControlFlow" spellChecking="false"/>
+      <itemData name="Pattern Control Flow"      defStyleNum="dsControlFlow" spellChecking="false"/>
+      <itemData name="Pattern Special Character" defStyleNum="dsBuiltIn" spellChecking="false"/>
+      <itemData name="Pattern Named Capture"     defStyleNum="dsAnnotation" spellChecking="false"/>
       <itemData name="Comment"                   defStyleNum="dsComment"/>
       <itemData name="Error"                     defStyleNum="dsError" spellChecking="false"/>
       <itemData name="Pod"                       defStyleNum="dsDocumentation" spellChecking="false"/>
diff --git a/syntax/relaxng.xml b/syntax/relaxng.xml
--- a/syntax/relaxng.xml
+++ b/syntax/relaxng.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
 	<!ENTITY qname    "[A-Za-z_:][\w.:_-]*">
 	<!ENTITY entref  "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&qname;);">
diff --git a/syntax/relaxngcompact.xml b/syntax/relaxngcompact.xml
--- a/syntax/relaxngcompact.xml
+++ b/syntax/relaxngcompact.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="RelaxNG-Compact" version="3" kateversion="5.0" section="Markup" extensions="*.rnc" casesensitive="1" author="Rintze Zelle" license="LGPL">
   <highlighting>
     <list name="Keywords">
diff --git a/syntax/rest.xml b/syntax/rest.xml
--- a/syntax/rest.xml
+++ b/syntax/rest.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
         <!ENTITY inlinestart "(?:^|(?&lt;=[-\s&apos;&quot;\(\[{&lt;/:‘“’«¡¿‐‑‒–— ]))">
         <!ENTITY inlineend "(?=[-\s’”»‐‑‒–— &apos;&quot;\)\]}&gt;/:\.,;!\?\\]|$)">
@@ -14,7 +14,7 @@
   Copyright 2010 Matt Williams (matt@milliams.com)
   Copyright 2014 Matthew Woehlke (mw_triad@users.sourceforge.net)
   -->
-<language name="reStructuredText" extensions="*.rst" section="Markup" mimetype="text/x-rst" version="9" kateversion="5.0" casesensitive="1">
+<language name="reStructuredText" extensions="*.rst" section="Markup" mimetype="text/x-rst" version="10" kateversion="5.0" casesensitive="1">
 
   <highlighting>
 
@@ -44,7 +44,7 @@
         <RegExpr attribute="SubstitutionReference" context="#stay" String="&inlinestart;\|[^\s].*\|&inlineend;" minimal="true"/>
         <RegExpr attribute="InlineInternalTarget" context="#stay" String="&inlinestart;_`[^\s].*`&inlineend;" minimal="true"/>
         <RegExpr attribute="FootnoteReference" context="#stay" String="&inlinestart;\[[&SimpleReferenceNameChars;]+\]_&inlineend;" minimal="true"/>
-        <RegExpr attribute="HyperlinkReference" context="#stay" String="&inlinestart;(`[^\s].*`|\w+)_&inlineend;" minimal="true"/>
+        <RegExpr attribute="HyperlinkReference" context="#stay" String="&inlinestart;(`[^\s].*`|\w+)_{1,2}&inlineend;" minimal="true"/>
         <RegExpr attribute="InterpretedText" context="TrailingRole" String="&inlinestart;`[^\s].*`(?=:([\w\-_\.\+]+)(:[\w\-_\.\+]+)*:)" minimal="true"/>
         <RegExpr attribute="Role" String=":([\w\-_\.\+]+)(:[\w\-_\.\+]+)*:(?=`)" context="Role"/>
         <RegExpr attribute="DefaultRole" context="#stay" String="&inlinestart;`[^\s].*`&inlineend;" minimal="true"/>
diff --git a/syntax/rhtml.xml b/syntax/rhtml.xml
--- a/syntax/rhtml.xml
+++ b/syntax/rhtml.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
 	<!ENTITY name    "[A-Za-z_:][\w.:_-]*">
 	<!ENTITY entref  "&amp;(?:#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);">
@@ -44,7 +44,7 @@
 -->
 	
 <!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". -->
-<language name="Ruby/Rails/RHTML" version="14" kateversion="5.63" section="Markup" extensions="*.rhtml;*.RHTML;*.html.erb" mimetype="" author="Richard Dale rdale@foton.es" license="LGPLv2+">
+<language name="Ruby/Rails/RHTML" version="15" kateversion="5.79" section="Markup" extensions="*.rhtml;*.RHTML;*.html.erb" mimetype="" author="Richard Dale rdale@foton.es" license="LGPLv2+">
 	
 	<highlighting>
 	
diff --git a/syntax/roff.xml b/syntax/roff.xml
--- a/syntax/roff.xml
+++ b/syntax/roff.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
   <!ENTITY roffidc "[^]\s]">
   <!ENTITY roffid  "(?:&roffidc;|\(&roffidc;{2}|\[&roffidc;+\])">
@@ -15,7 +15,7 @@
   <!ENTITY escape2 "\\[gkmMVYz]&roffid;">
   <!ENTITY escape3 "\\O([0-4]|\[5[lrci][^]]\])">
 ]>
-<language name="Roff" section="Markup" version="8" kateversion="5.0" extensions="" author="Matthew Woehlke (mw_triad@users.sourceforge.net)" license="GPL">
+<language name="Roff" section="Markup" version="9" kateversion="5.0" extensions="" author="Matthew Woehlke (mw_triad@users.sourceforge.net)" license="GPL">
 
   <highlighting>
 
@@ -83,6 +83,7 @@
       <context name="Comment" attribute="Comment" lineEndContext="#pop">
         <DetectSpaces />
         <IncludeRules context="##Comments"/>
+        <DetectIdentifier />
       </context>
 
       <!-- error -->
@@ -92,7 +93,6 @@
       <context name="Directive" attribute="Identifier" lineEndContext="#pop">
         <Float attribute="Number" context="#stay"/>
         <Int attribute="Number" context="#stay"/>
-        <Detect2Chars attribute="Comment" context="Comment" char="\" char1="&quot;"/>
         <IncludeRules context="DetectOthers"/>
       </context>
 
@@ -154,9 +154,8 @@
 
       <!-- .ds directive -->
       <context name="dsDirective" attribute="Identifier" lineEndContext="#pop">
-        <Int attribute="Number" context="#stay"/>
         <Float attribute="Number" context="#stay"/>
-        <Detect2Chars attribute="Comment" context="Comment" char="\" char1="&quot;"/>
+        <Int attribute="Number" context="#stay"/>
         <DetectChar attribute="String" context="dsString" char="&quot;"/>
         <IncludeRules context="DetectOthers"/>
       </context>
diff --git a/syntax/ruby.xml b/syntax/ruby.xml
--- a/syntax/ruby.xml
+++ b/syntax/ruby.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 
 <!--
   Ruby syntax highlighting definition for Kate.
@@ -30,8 +30,8 @@
 -->
 
 <!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". -->
-<language name="Ruby" section="Scripts"
-	  version="16" kateversion="5.0"
+<language name="Ruby" alternativeNames="RB;JRuby" section="Scripts"
+	  version="19" kateversion="5.0"
 	  extensions="*.rb;*.rjs;*.rxml;*.xml.erb;*.js.erb;*.rake;Rakefile;Gemfile;*.gemspec;Vagrantfile"
 	  mimetype="application/x-ruby"
 	  style="ruby" indenter="ruby"
@@ -183,6 +183,8 @@
 			<item>extend</item>
 			<item>include</item>
 			<item>prepend</item>
+			<item>refine</item>
+			<item>using</item>
 		</list>
 
 		<contexts>
@@ -358,6 +360,7 @@
 				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>
 				<Detect2Chars attribute="String" char="\" char1="&quot;" context="#stay"/>
 				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="$" context="Short Subst"/>
 				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
 				<DetectChar char="&quot;" attribute="String" context="check_div_1_pop"/>
 			</context>
@@ -372,6 +375,7 @@
 				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>
 				<Detect2Chars attribute="String" char="\" char1="`" context="#stay"/>
 				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="$" context="Short Subst"/>
 				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
 				<DetectChar char="`" attribute="Command" context="check_div_1_pop"/>
 			</context>
@@ -385,6 +389,7 @@
 			<context name="RegEx 1" attribute="Regular Expression" lineEndContext="#stay">
 				<Detect2Chars attribute="Regular Expression" char="\" char1="/" context="#stay"/>
 				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="$" context="Short Subst"/>
 				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
 				<RegExpr attribute="Regular Expression" String="/[uiomxn]*" context="check_div_1_pop"/>
 			</context>
@@ -399,6 +404,7 @@
 			<context name="Short Subst" attribute="Substitution" lineEndContext="#pop">
 				<!-- Check for e.g.: "#@var#@@xy" -->
 				<RegExpr attribute="Substitution" String="#@{1,2}" context="#stay"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="$" context="#stay"/>
 				<RegExpr attribute="Substitution" String="\w(?!\w)" context="#pop"/>
 			</context>
 
@@ -457,6 +463,7 @@
 			<!-- rules for heredoc types -->
 			<context name="heredoc_rules" attribute="Normal Text" lineEndContext="#stay">
 				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="$" context="Short Subst"/>
 				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
 			</context>
 
@@ -593,6 +600,7 @@
 			<context name="dq_string_rules" attribute="String" lineEndContext="#stay" >
 				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>
 				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="$" context="Short Subst"/>
 				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
 			</context>
 
@@ -787,6 +795,7 @@
 			<context name="shell_command_rules" attribute="Command" lineEndContext="#stay" >
 				<Detect2Chars attribute="Command" char="\" char1="\" context="#stay"/>
 				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="$" context="Short Subst"/>
 				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
 			</context>
 
@@ -853,6 +862,7 @@
 			<context name="regexpr_rules" attribute="Regular Expression" lineEndContext="#stay" >
 				<Detect2Chars attribute="Regular Expression" char="\" char1="\" context="#stay"/>
 				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="$" context="Short Subst"/>
 				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
 			</context>
 
diff --git a/syntax/rust.xml b/syntax/rust.xml
--- a/syntax/rust.xml
+++ b/syntax/rust.xml
@@ -26,7 +26,7 @@
     IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
     DEALINGS IN THE SOFTWARE.
 -->
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
 	<!ENTITY rustIdent "(?:[a-zA-Z_]|[^[:ascii:]])(?:\w|[^[:ascii:]])*">
 	<!ENTITY rustIntSuf "(?:[iu](?:8|16|32|64|128|size)?)?">
@@ -40,7 +40,7 @@
 	<!ENTITY scope2 "::(?=[^\s\:])"> <!-- Points after keyword or group { } -->
 
 ]>
-<language name="Rust" version="13" kateversion="5.0" section="Sources" extensions="*.rs" mimetype="text/rust" priority="15" license="MIT" author="The Rust Project Developers">
+<language name="Rust" alternativeNames="RS" version="15" kateversion="5.0" section="Sources" extensions="*.rs" mimetype="text/rust" indenter="cstyle" priority="15" license="MIT" author="The Rust Project Developers">
 <highlighting>
 	<list name="fn">
 		<item>fn</item>
@@ -491,7 +491,7 @@
 </highlighting>
 <general>
 	<comments>
-		<comment name="singleLine" start="//" />
+		<comment name="singleLine" start="//" position="afterwhitespace" />
 		<comment name="multiLine" start="/*" end="*/" region="Comment"/>
 	</comments>
 	<keywords casesensitive="1" />
diff --git a/syntax/sass.xml b/syntax/sass.xml
new file mode 100644
--- /dev/null
+++ b/syntax/sass.xml
@@ -0,0 +1,438 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language
+[
+  <!-- https://www.w3.org/TR/CSS22/syndata.html#tokenization -->
+  <!ENTITY nmstart "[_a-zA-Z]|(\\[0-9a-fA-F]{1,6})|(\\[^\n\r\f0-9a-fA-F])">
+  <!ENTITY nmchar  "[_a-zA-Z0-9-]|(\\[0-9a-fA-F]{1,6})|(\\[^\n\r\f0-9a-fA-F])">
+]>
+
+<language name="SASS" version="8" kateversion="5.79" section="Markup" extensions="*.sass" indenter="cstyle" mimetype="text/css" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT" priority="5">
+
+    <highlighting>
+        <list name="properties"><include>properties##SCSS</include></list>
+        <list name="vendor properties"><include>vendor properties##SCSS</include></list>
+        <list name="sub-properties"><include>sub-properties##SCSS</include></list>
+        <list name="special values"><include>special values##SCSS</include></list>
+        <list name="value keywords"><include>value keywords##SCSS</include></list>
+        <list name="values"><include>values##SCSS</include></list>
+        <list name="colors"><include>colors##SCSS</include></list>
+        <list name="functions"><include>functions##SCSS</include></list>
+        <list name="media types"><include>media types##SCSS</include></list>
+        <list name="media features"><include>media features##SCSS</include></list>
+        <list name="pseudo-elements"><include>pseudo-elements##SCSS</include></list>
+        <list name="pseudo-classes"><include>pseudo-classes##SCSS</include></list>
+        <list name="@page pseudo-classes"><include>@page pseudo-classes##SCSS</include></list>
+        <list name="at-rules"><include>at-rules##SCSS</include></list>
+        <list name="media operators"><include>media operators##SCSS</include></list>
+        <list name="operators"><include>operators##SCSS</include></list>
+        <list name="annotations"><include>annotations##SCSS</include></list>
+
+        <contexts>
+            <context name="Base" attribute="Normal Text" lineEndContext="#stay">
+                <IncludeRules context="FindCommentsColumn0" />
+                <IncludeRules context="FindComments" />
+                <RegExpr attribute="Property" context="Rule" String="^\s*[-_A-Za-z]+(/\*.*\*/)?\s*(?=:(\s|$))" lookAhead="true" column="0" minimal="true" />
+                <DetectSpaces />
+                <DetectChar attribute="At Rule" context="@mixin" char="=" firstNonSpace="true" />
+                <DetectChar attribute="At Rule" context="AtRule" char="+" firstNonSpace="true" />
+                <DetectChar attribute="At Rule" context="SelectAtRule" char="@" lookAhead="true" />
+                <!-- find selectors // .class #id :hover :nth-child(2n+1) [type="search"] -->
+                <DetectChar attribute="Selector Attribute" context="SelectorAttr" char="[" />
+                <DetectChar attribute="Separator Symbol" context="#stay" char="," />
+                <AnyChar attribute="Operator" context="#stay" String="&amp;*>+~|" />
+                <RegExpr attribute="Selector Pseudo" context="SelectorPseudo" String=":(?=[a-z:])" />
+                <RegExpr attribute="Selector Id" context="#stay" String="#[-]?(&nmstart;)(&nmchar;)*" />
+                <RegExpr attribute="Selector Class" context="#stay" String="\.([a-zA-Z0-9\-_]|[\x80-\xFF]|\\[0-9A-Fa-f]{1,6})*" />
+                <RegExpr attribute="Placeholder Selector" context="#stay" String="%[_a-zA-Z][_a-zA-Z\-]*" />
+                <RegExpr attribute="Selector Tag" context="#stay" String="[-]?(&nmstart;)(&nmchar;)*(?=\s|:?[#.&amp;[*>+~|,]|:[a-z:])" />
+                <RegExpr attribute="Variable" context="VariableDefine" String="\$[a-zA-Z0-9\-_]+(?=\s*:)" />
+                <Detect2Chars attribute="Interpolation" context="Interpolation" char="#" char1="{" />
+                <DetectChar attribute="Normal Text" context="Rule" char=":" lookAhead="true" />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="FindSelector" attribute="Normal Text" lineEndContext="#stay">
+                <AnyChar attribute="Error" context="#stay" String=",&amp;" />
+                <AnyChar attribute="Operator" context="#stay" String="*>+~|" />
+                <!-- find selectors // .class #id :hover :nth-child(2n+1) [type="search"] -->
+                <DetectChar attribute="Selector Pseudo" context="SelectorPseudo" char=":" />
+                <DetectChar attribute="Selector Attribute" context="SelectorAttr" char="[" />
+                <IncludeRules context="FindComments" />
+                <RegExpr attribute="Selector Id" context="#stay" String="#[-]?(&nmstart;)(&nmchar;)*" />
+                <RegExpr attribute="Selector Class" context="#stay" String="\.([a-zA-Z0-9\-_]|[\x80-\xFF]|\\[0-9A-Fa-f]{1,6})*" />
+                <RegExpr attribute="Placeholder Selector" context="#stay" String="%[_a-zA-Z][_a-zA-Z\-]*" />
+                <RegExpr attribute="Selector Tag" context="#stay" String="[-]?(&nmstart;)(&nmchar;)*" />
+                <Detect2Chars attribute="Interpolation" context="Interpolation" char="#" char1="{" />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="VariableDefine" attribute="Normal Text" lineEndContext="#pop">
+                <DetectChar attribute="Normal Text" context="RuleParameters" char=":" />
+            </context>
+
+            <context name="Interpolation" attribute="Normal Text" lineEndContext="#pop">
+                <DetectSpaces />
+                <DetectChar attribute="Interpolation" context="#pop" char="}" />
+                <IncludeRules context="FindStrings" />
+                <IncludeRules context="FindFunctions" />
+                <IncludeRules context="FindValues" />
+            </context>
+
+
+            <!-- find functions // rgba(255,255,255,0.75) -->
+            <!-- same as SCSS -->
+            <context name="FindFunctions" attribute="Normal Text" lineEndContext="#stay">
+                <RegExpr attribute="Function" context="Function" String="[a-z\-]{2,}\(" lookAhead="true" />
+            </context>
+
+            <!-- find values //  10px 12pt 2.5em 1rem 75% #ffcc99 red solid -->
+            <!-- same as SCSS -->
+            <context name="FindValues" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar attribute="Annotation" context="Annotation" char="!" />
+                <keyword attribute="Operator" context="#stay" String="operators" />
+                <keyword attribute="Value Keyword" context="#stay" String="value keywords" />
+                <keyword attribute="Value Keyword" context="#stay" String="special values" />
+                <keyword attribute="Value" context="#stay" String="values" />
+                <keyword attribute="Color" context="#stay" String="colors" />
+                <RegExpr attribute="Number" context="FindUnits" String="([0-9]+(\.[0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?" />
+                <RegExpr attribute="Color" context="#stay" String="#([0-9A-Fa-f]{3,4}){1,2}\b" />
+                <RegExpr attribute="Variable" context="#stay" String="\$[a-zA-Z0-9\-_]+" />
+                <RegExpr attribute="Normal Text" context="#stay" String="[-]?(&nmstart;)(&nmchar;)*" />
+                <AnyChar attribute="Operator" context="#stay" String="*/+%-" />
+                <Detect2Chars attribute="Interpolation" context="Interpolation" char="#" char1="{" />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="Annotation" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+                <keyword attribute="Annotation" context="#pop" String="annotations" />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="FindUnits" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+                <RegExpr attribute="Unit" context="#pop" String="(%|(em|ex|cap|ch|ic|rem|lh|rlh|vw|vh|vi|vb|vmin|vmax|cqw|cqh|cqi|cqb|cqmin|cqmax|cm|mm|Q|in|pc|pt|px|deg|rad|grad|turn|s|ms|Hz|kHz|fr|dpi|dpcm|dppx|x)\b)" />
+            </context>
+
+            <!-- find strings // "some words" 'some words' -->
+            <!-- same as SCSS -->
+            <context name="FindStrings" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar attribute="String" context="StringDQ" char="&quot;" />
+                <DetectChar attribute="String" context="StringSQ" char="'" />
+            </context>
+
+            <!-- find comments // and /* at the beginning of line -->
+            <context name="FindCommentsColumn0" attribute="Comment" lineEndContext="#stay">
+                <!-- (\s*)(?=/[*/]) is not selected when the match is empty -->
+                <RegExpr attribute="Normal Text" context="Comment" String="^(\s+)(?=/[*/])" column="0" />
+                <RegExpr attribute="Comment" context="Comment" String="^()/[*/]" column="0" />
+            </context>
+
+            <!-- find comments // and /* -->
+            <context name="FindComments" attribute="Comment" lineEndContext="#stay">
+                <Detect2Chars attribute="Comment" context="IsInlineComment" char="/" char1="/" />
+                <Detect2Chars attribute="Comment" context="IsInlineComment2" char="/" char1="*" />
+            </context>
+
+            <context name="Comment" attribute="Comment" lineEndContext="#stay" dynamic="true" fallthroughContext="IsInlineComment">
+                <RegExpr attribute="Comment" context="IsInlineComment" String="^%1\s|^\s*$" dynamic="true" column="0" />
+                <DetectSpaces attribute="Normal Text" context="#pop" lookAhead="true" column="0" />
+                <RegExpr attribute="Comment" context="#pop" String="." lookAhead="true" column="0"/>
+            </context>
+
+            <context name="IsInlineComment" attribute="Comment" lineEndContext="#pop">
+                <DetectSpaces />
+                <IncludeRules context="##Comments" />
+                <DetectIdentifier />
+            </context>
+
+            <context name="IsInlineComment2" attribute="Comment" lineEndContext="#pop">
+                <DetectSpaces />
+                <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" />
+                <IncludeRules context="##Comments" />
+                <DetectIdentifier />
+            </context>
+
+            <context name="SelectAtRule" attribute="At Rule" lineEndContext="#pop">
+                <keyword attribute="At Rule" context="#pop!AtRule" String="at-rules" />
+                <!-- CSS: inline -->
+                <!-- SCSS: inline or block -->
+                <WordDetect attribute="At Rule" context="#pop!AtRule" String="@inline" />
+                <WordDetect attribute="At Rule" context="#pop!@extend" String="@extend" />
+                <WordDetect attribute="At Rule" context="#pop!@mixin" String="@mixin" />
+                <WordDetect attribute="At Rule" context="#pop!@mixin" String="@function" />
+                <WordDetect attribute="At Rule" context="#pop!@keyframes-@font-face" String="@keyframes" />
+                <WordDetect attribute="At Rule" context="#pop!@keyframes-@font-face" String="@font-face" />
+                <WordDetect attribute="At Rule" context="#pop!@viewport" String="@viewport" />
+                <WordDetect attribute="At Rule" context="#pop!@if" String="@if" />
+                <WordDetect attribute="At Rule" context="#pop!@else" String="@else" />
+                <WordDetect attribute="At Rule" context="#pop!@page" String="@page" />
+                <RegExpr attribute="At Rule" context="#pop!AtRule" String="@[a-zA-Z0-9\-_]+\b" />
+            </context>
+
+            <context name="@if" attribute="Normal Text" lineEndContext="#pop">
+                <DetectSpaces />
+                <IncludeRules context="FindComments" />
+                <IncludeRules context="FindStrings" />
+                <IncludeRules context="FindFunctions" />
+                <IncludeRules context="FindValues" />
+                <AnyChar attribute="Operator" context="#stay" String="=!&lt;&gt;" />
+            </context>
+
+            <context name="@else" attribute="Error" lineEndContext="#pop">
+                <DetectSpaces attribute="Normal Text" />
+                <IncludeRules context="FindComments" />
+                <WordDetect attribute="At Rule" context="#pop!@if" String="if" />
+                <DetectIdentifier attribute="Error" />
+            </context>
+
+            <context name="@extend" attribute="Normal Text" lineEndContext="#pop">
+                <DetectSpaces />
+                <IncludeRules context="FindSelector" />
+            </context>
+
+            <context name="@mixin" attribute="Normal Text" lineEndContext="#pop">
+                <DetectSpaces />
+                <IncludeRules context="FindComments" />
+                <RegExpr attribute="Function" context="MixinParameter" String="[a-zA-Z0-9\-_]+" />
+            </context>
+
+            <context name="MixinParameter" attribute="Error" lineEndContext="#pop#pop">
+                <DetectSpaces attribute="Normal Text" />
+                <AnyChar attribute="Normal Text" context="#stay" String="()" />
+                <DetectChar attribute="Separator Symbol" context="#stay" char="," />
+                <IncludeRules context="FindComments" />
+                <RegExpr attribute="Variable" context="#stay" String="\$[a-zA-Z0-9\-_]+" />
+                <StringDetect attribute="Operator" context="#stay" String="..." />
+            </context>
+
+            <context name="@keyframes-@font-face" attribute="Normal Text" lineEndContext="#pop">
+                <DetectSpaces />
+                <IncludeRules context="FindComments" />
+            </context>
+
+            <context name="@viewport" attribute="Normal Text" lineEndContext="#pop">
+                <DetectSpaces />
+                <IncludeRules context="FindComments" />
+                <DetectChar attribute="Selector Pseudo" context="SelectorPseudo" char=":" />
+            </context>
+
+            <context name="@page" attribute="Normal Text" lineEndContext="#pop">
+                <DetectSpaces />
+                <IncludeRules context="FindComments" />
+                <DetectChar attribute="Selector Pseudo" context="SelectorPseudo-@page" char=":" />
+            </context>
+
+            <context name="SelectorPseudo-@page" attribute="Selector Pseudo" lineEndContext="#pop" fallthroughContext="#pop">
+                <keyword attribute="Selector Pseudo" context="#pop" String="@page pseudo-classes" />
+                <RegExpr attribute="Selector Pseudo" context="#pop" String="[-a-zA-Z][-a-zA-Z0-9]*" />
+            </context>
+
+            <context name="AtRule" attribute="Normal Text" lineEndContext="#pop">
+                <DetectSpaces />
+                <DetectChar attribute="Operator" context="#stay" char="&amp;" />
+                <IncludeRules context="FindComments" />
+                <IncludeRules context="FindStrings" />
+                <IncludeRules context="FindFunctions" />
+                <keyword attribute="Keyword" context="#stay" String="media operators" />
+                <RegExpr attribute="Property" context="#stay" String="[A-Za-z_-]+(?=\s*:)" />
+                <keyword attribute="Value" context="#stay" String="media types" />
+                <keyword attribute="Value" context="#stay" String="media features" />
+                <IncludeRules context="FindValues" />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="SelectorAttr" attribute="Selector Attribute" lineEndContext="#pop">
+                <DetectChar attribute="Selector Attribute" context="#pop" char="]" />
+                <IncludeRules context="FindStrings" />
+                <DetectChar   attribute="Operator" context="SelectorAttrValue" char="=" />
+                <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="~" char1="=" />
+                <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="^" char1="=" />
+                <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="$" char1="=" />
+                <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="*" char1="=" />
+                <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="|" char1="=" />
+                <DetectIdentifier />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="SelectorAttrValue" attribute="String" lineEndContext="#pop#pop">
+                <DetectChar attribute="Selector Attribute" context="#pop#pop" char="]" />
+                <DetectIdentifier />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="SelectorPseudo" attribute="Selector Pseudo" lineEndContext="#pop">
+                <DetectChar attribute="Selector Pseudo" context="SelectorPseudoElements" char=":" />
+                <keyword attribute="Selector Pseudo" context="SelectorPseudoValue" String="pseudo-classes" />
+                <RegExpr attribute="Selector Pseudo" context="SelectorPseudoValue" String="[-a-zA-Z][-a-zA-Z0-9]*" />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="SelectorPseudoElements" attribute="Selector Pseudo" lineEndContext="#pop#pop">
+                <keyword attribute="Selector Pseudo" context="#pop!SelectorPseudoValue" String="pseudo-elements" />
+                <RegExpr attribute="Selector Pseudo" context="#pop!SelectorPseudoValue" String="[-a-zA-Z][-a-zA-Z0-9]*" />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="SelectorPseudoValue" attribute="Selector Pseudo" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
+                <DetectChar attribute="Selector Pseudo" context="SelectorPseudoValueClose" char="(" />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="SelectorPseudoValueClose" attribute="Selector Pseudo" lineEndContext="#pop#pop#pop">
+                <DetectChar attribute="Selector Pseudo" context="#pop#pop#pop" char=")" />
+                <DetectIdentifier />
+            </context>
+
+            <context name="Rule" attribute="Normal Text" lineEndContext="#pop">
+                <DetectSpaces />
+                <IncludeRules context="FindComments" />
+                <DetectChar attribute="Normal Text" context="RuleParameters" char=":" />
+                <Detect2Chars attribute="Variable" context="IsVariable" char="-" char1="-" />
+                <keyword attribute="Property" context="#stay" String="properties" />
+                <keyword attribute="Property" context="#stay" String="sub-properties" />
+                <RegExpr attribute="Unknown Property" context="#stay" String="[^:]+" />
+            </context>
+
+            <context name="IsVariable" attribute="Normal Text" lineEndContext="#pop">
+                <DetectChar attribute="Normal Text" context="#pop!RuleParameters" char=":" />
+                <RegExpr attribute="Variable" context="#stay" String="[^:/]+" />
+                <IncludeRules context="FindComments" />
+            </context>
+
+            <context name="RuleParameters" attribute="Normal Text" lineEndContext="#pop#pop">
+                <DetectSpaces />
+                <!-- Jump out conditions -->
+                <DetectChar attribute="Separator Symbol" context="#stay" char="," />
+                <IncludeRules context="FindComments" />
+                <IncludeRules context="FindStrings" />
+                <IncludeRules context="FindFunctions" />
+                <IncludeRules context="FindValues" />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="Function" attribute="Normal Text" lineEndContext="#pop">
+                <DetectChar attribute="Function" context="FunctionParameters" char="(" />
+                <StringDetect attribute="Function" context="FunctionVar" String="var(" />
+                <StringDetect attribute="Function" context="FunctionUrl" String="url(" />
+                <StringDetect attribute="Function" context="FunctionCalc" String="calc(" />
+                <keyword attribute="Function" context="#stay" String="functions" />
+                <RegExpr attribute="Function" context="#stay" String="[-a-zA-Z][-a-zA-Z0-9]*" />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="FunctionVar" attribute="Variable" lineEndContext="#pop#pop" fallthroughContext="#pop!FunctionParameters">
+                <DetectSpaces />
+                <IncludeRules context="FindComments" />
+                <RegExpr attribute="Variable" context="#pop!FunctionParameters" String="--[^ \t\),]+" />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="FunctionCalc" attribute="Normal Text" lineEndContext="#pop#pop">
+                <DetectSpaces />
+                <DetectChar attribute="Function" context="#pop#pop" char=")" />
+                <IncludeRules context="Calc" />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="NestedCalc" attribute="Normal Text" lineEndContext="#pop#pop">
+                <DetectSpaces />
+                <DetectChar attribute="Normal Text" context="#pop" char=")" />
+                <IncludeRules context="Calc" />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="Calc" attribute="Normal Text" lineEndContext="#pop">
+                <DetectChar attribute="Separator Symbol" context="#stay" char="," />
+                <DetectChar attribute="Normal Text" context="NestedCalc" char="(" />
+                <IncludeRules context="FindComments" />
+                <IncludeRules context="FindStrings" />
+                <IncludeRules context="FindFunctions" />
+                <IncludeRules context="FindValues" />
+                <RegExpr attribute="Operator" context="#stay" String="[-](?=$|[ \t(,;])|[+](?=$|[^0-9)])|[/*]" />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="FunctionUrl" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="UrlValue">
+                <DetectSpaces />
+                <IncludeRules context="FindStrings" />
+                <DetectChar attribute="Function" context="#pop#pop" char=")" />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="UrlValue" attribute="String" lineEndContext="#pop#pop#pop">
+                <DetectChar attribute="Function" context="#pop#pop#pop" char=")" />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="FunctionParameters" attribute="Normal Text" lineEndContext="#pop#pop">
+                <DetectSpaces />
+                <DetectChar attribute="Function" context="#pop#pop" char=")" />
+                <IncludeRules context="FindComments" />
+                <IncludeRules context="FindStrings" />
+                <IncludeRules context="FindFunctions" />
+                <IncludeRules context="FindValues" />
+                <DetectChar attribute="Separator Symbol" context="#stay" char="," />
+                <StringDetect attribute="Operator" String="..." />
+            </context>
+
+            <!-- string contexts -->
+            <!-- same as SCSS -->
+            <context name="StringDQ" attribute="String" lineEndContext="#pop">
+                <DetectChar attribute="String" context="#pop" char="&quot;" />
+                <IncludeRules context="InsideString" />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="StringSQ" attribute="String" lineEndContext="#pop">
+                <DetectChar attribute="String" context="#pop" char="'" />
+                <IncludeRules context="InsideString" />
+            </context>
+
+            <!-- same as SCSS -->
+            <context name="InsideString" attribute="String" lineEndContext="#stay">
+                <Detect2Chars attribute="Interpolation" context="Interpolation" char="#" char1="{" />
+                <RegExpr attribute="SpecialChar" context="#stay" String="\\([0-9A-Fa-f]{1,6}|.?)" />
+                <RegExpr attribute="String" context="#stay" String="\\?[^#&quot;'\\]+" />
+            </context>
+
+        </contexts>
+
+        <itemDatas>
+            <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="At Rule" defStyleNum="dsImport" spellChecking="false"/>
+            <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
+            <itemData name="Property" defStyleNum="dsKeyword" spellChecking="false"/>
+            <itemData name="Unknown Property" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="String" defStyleNum="dsString"/>
+            <itemData name="SpecialChar" defStyleNum="dsSpecialChar" spellChecking="false"/>
+            <itemData name="Interpolation" defStyleNum="dsOperator" spellChecking="false"/>
+            <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>
+            <itemData name="Separator Symbol" defStyleNum="dsOperator" spellChecking="false"/>
+            <itemData name="Value" defStyleNum="dsDecVal" spellChecking="false"/>
+            <itemData name="Number" defStyleNum="dsDecVal" spellChecking="false"/>
+            <itemData name="Value Keyword" defStyleNum="dsBuiltIn" spellChecking="false"/>
+            <itemData name="Color" defStyleNum="dsConstant" spellChecking="false"/>
+            <itemData name="Unit" defStyleNum="dsDataType" spellChecking="false"/>
+            <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/>
+            <itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/>
+            <itemData name="Annotation" defStyleNum="dsAttribute" spellChecking="false"/>
+            <itemData name="Selector Id" defStyleNum="dsPreprocessor" bold="1" spellChecking="false"/>
+            <itemData name="Selector Class" defStyleNum="dsFunction" spellChecking="false"/>
+            <itemData name="Selector Attribute" defStyleNum="dsExtension" spellChecking="false"/>
+            <itemData name="Selector Pseudo" defStyleNum="dsInformation" italic="1" spellChecking="false"/>
+            <itemData name="Selector Tag" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="Placeholder Selector" defStyleNum="dsBuiltIn" spellChecking="false"/>
+            <itemData name="Comment" defStyleNum="dsComment" />
+            <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
+        </itemDatas>
+    </highlighting>
+
+    <general>
+        <keywords casesensitive="0" weakDeliminator="-%@" />
+        <folding indentationsensitive="1" />
+        <comments>
+            <comment name="singleLine" start="//" position="afterwhitespace"/>
+        </comments>
+    </general>
+
+</language>
+<!-- kate: replace-tabs on; tab-width 4; indent-width 4; -->
diff --git a/syntax/scala.xml b/syntax/scala.xml
--- a/syntax/scala.xml
+++ b/syntax/scala.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
-<language name="Scala" version="11" kateversion="5.62" section="Sources"
+<!DOCTYPE language>
+<language name="Scala" version="12" kateversion="5.79" section="Sources"
           extensions="*.scala;*.sbt" mimetype="text/x-scala" license="LGPL"
           author="Stephane Micheloud (stephane.micheloud@epfl.ch)">
 <!--
diff --git a/syntax/scheme.xml b/syntax/scheme.xml
--- a/syntax/scheme.xml
+++ b/syntax/scheme.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
   <!ENTITY xmlattrs "\s+([^&quot;/>]++|&quot;[^&quot;]*+&quot;)*+">
   <!ENTITY tab      "&#009;">
@@ -17,7 +17,7 @@
   https://www.gnu.org/software/kawa/Syntax.html
   https://www.gnu.org/software/guile/manual/html_node/Scheme-Syntax.html
 -->
-<language version="11" kateversion="5.62" name="Scheme" section="Scripts" extensions="*.scm;*.ss;*.scheme;*.guile;*.chicken;*.meta" mimetype="text/x-scheme" author="Dominik Haumann (dhaumann@kde.org)" license="MIT" priority="9">
+<language version="12" kateversion="5.79" name="Scheme" section="Scripts" extensions="*.scm;*.ss;*.scheme;*.guile;*.chicken;*.meta" mimetype="text/x-scheme" author="Dominik Haumann (dhaumann@kde.org)" license="MIT" priority="9">
   <highlighting>
     <list name="operators">
       <item>&lt;=</item>
@@ -27,7 +27,6 @@
       <item>&gt;=</item>
       <item>&gt;</item>
       <item>-</item>
-      <item>/</item>
       <item>*,*</item>
       <item>+</item>
       <item>!</item>
@@ -35,8 +34,6 @@
       <item>%</item>
       <item>*</item>
       <item>/</item>
-      <item>=</item>
-      <item>></item>
       <item>?</item>
       <item>^</item>
       <item>_</item>
@@ -824,7 +821,7 @@
         <RegExpr attribute="Normal" context="#stay" String="&symbol;"/>
         <!-- s, f, d, l are extensions of Kawa -->
         <RegExpr attribute="Float" context="#stay" String="[0-9]*+\.[0-9]++([esfdl][+-]?[0-9]++)?|[0-9]++[esfdl][+-]?[0-9]++"/>
-        <RegExpr attribute="Decimal" context="#stay" String="[0-9]++"/>
+        <Int attribute="Decimal" context="#stay"/>
       </context>
 
 
@@ -1026,6 +1023,7 @@
 
       <context name="Num2" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop!Digit2">
         <IncludeRules context="NumPrefix"/>
+        <AnyChar attribute="Base Prefix" context="#stay" String="ie"/>
         <AnyChar attribute="Function" context="#pop!Digit2" String="+-"/>
       </context>
       <context name="Digit2" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop">
@@ -1034,6 +1032,7 @@
 
       <context name="Num8" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop!Digit8">
         <IncludeRules context="NumPrefix"/>
+        <AnyChar attribute="Base Prefix" context="#stay" String="ie"/>
         <AnyChar attribute="Function" context="#pop!Digit8" String="+-"/>
       </context>
       <context name="Digit8" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop">
@@ -1042,16 +1041,21 @@
 
       <context name="Num10" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop!Digit10">
         <IncludeRules context="NumPrefix"/>
+        <DetectChar attribute="Base Prefix" context="#pop!Num16" char="x"/>
+        <DetectChar attribute="Base Prefix" context="#pop!Num8" char="o"/>
+        <DetectChar attribute="Base Prefix" context="#pop!Num2" char="b"/>
+        <AnyChar attribute="Base Prefix" context="#stay" String="ied"/>
         <AnyChar attribute="Function" context="#pop!Digit10" String="+-"/>
       </context>
       <context name="Digit10" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop">
         <!-- s, f, d, l are extensions of Kawa -->
         <RegExpr attribute="Float" context="#pop" String="[0-9]*+\.[0-9]++([esfdl][+-]?[0-9]++)?|[0-9]++[esfdl][+-]?[0-9]++"/>
-        <RegExpr attribute="Decimal" context="#pop" String="[0-9]++"/>
+        <Int attribute="Decimal" context="#pop" additionalDeliminator="eid"/>
       </context>
 
       <context name="Num16" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop!Digit16">
         <IncludeRules context="NumPrefix"/>
+        <DetectChar attribute="Base Prefix" context="#stay" char="i"/>
         <AnyChar attribute="Function" context="#pop!Digit16" String="+-"/>
       </context>
       <context name="Digit16" attribute="Decimal" lineEndContext="#pop" fallthroughContext="#pop">
@@ -1059,8 +1063,12 @@
       </context>
 
       <context name="NumPrefix" attribute="Decimal" lineEndContext="#pop">
-        <Detect2Chars attribute="Decimal" context="#stay" char="#" char1="e"/>
-        <Detect2Chars attribute="Decimal" context="#stay" char="#" char1="i"/>
+        <Detect2Chars attribute="Base Prefix" context="#stay" char="#" char1="e"/>
+        <Detect2Chars attribute="Base Prefix" context="#stay" char="#" char1="i"/>
+        <Detect2Chars attribute="Base Prefix" context="#pop!Num16" char="#" char1="x"/>
+        <Detect2Chars attribute="Base Prefix" context="#pop!Num8" char="#" char1="o"/>
+        <Detect2Chars attribute="Base Prefix" context="#pop!Num2" char="#" char1="b"/>
+        <Detect2Chars attribute="Base Prefix" context="#pop!Num10" char="#" char1="d"/>
       </context>
 
 
diff --git a/syntax/sci.xml b/syntax/sci.xml
--- a/syntax/sci.xml
+++ b/syntax/sci.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="scilab" version="6" kateversion="5.0" section="Scientific" extensions="*.sci;*.sce" mimetype="text/x-sci">
   <highlighting>
     <list name="Structure-keywords">
diff --git a/syntax/scss.xml b/syntax/scss.xml
new file mode 100644
--- /dev/null
+++ b/syntax/scss.xml
@@ -0,0 +1,1498 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language
+[
+  <!-- https://www.w3.org/TR/CSS22/syndata.html#tokenization -->
+  <!ENTITY escaped "\\([0-9a-fA-F]{1,6}|[^\n\r\f0-9a-fA-F])">
+  <!-- identifiers starting with several - are invalid, but supported by browsers -->
+  <!ENTITY ident2  "([-\w]+|&escaped;)+">
+  <!ENTITY selector "(&ident2;|(?=\#\{))">
+  <!ENTITY ident   "-?([_a-zA-Z]+|&escaped;)([-_a-zA-Z0-9]+|&escaped;)*">
+  <!ENTITY var     "--[-\w]*">
+  <!ENTITY func    "[-_a-zA-Z][-_a-zA-Z0-9]*">
+  <!ENTITY propcheck "(?=\s*(/[*].*?[*]/\s*)?:)">
+
+  <!-- #{...} and #{...#{...}...} -->
+  <!ENTITY interpolation "#\{([^}#]*+|#\{[^}]*+\})*+\}">
+  <!ENTITY comment "/\*.*?\*/">
+  <!ENTITY spaces "(\s|&comment;)*+">
+  <!-- TODO -->
+  <!ENTITY pseudoclasses "active|any-link|autofill|buffering|checked|current|default|defined|dir|disabled|empty|enabled|first|first-child|first-of-type|focus|focus-visible|focus-within|fullscreen|has|host|host-context|hover|in-range|indeterminate|invalid|is|lang|last-child|last-of-type|left|link|local-link|modal|muted|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|optional|out-of-range|paused|picture-in-picture|placeholder-shown|playing|read-only|read-write|required|right|root|scope|seeking|stalled|target|user-invalid|user-valid|valid|visited|volume-locked|where">
+
+  <!ENTITY propvar1 "([-_a-zA-Z0-9]*+\.)?\$">
+  <!ENTITY propvar2 "--[-_a-zA-Z0-9]*+&spaces;:">
+  <!ENTITY maybeprop "([-a-zA-Z]++|&interpolation;)+&spaces;:(?!:)">
+  <!ENTITY assumeprop "([^-a-zA-Z]|$|((?!(&pseudoclasses;)\b)[^;{}:]*+(\s*[;}]|$)))">
+]>
+
+<!--
+
+Kate SCSS syntax highlighting definition
+
+Changelog:
+
+- Version 7, by Jonathan Poelen
+- fix tag followed by a pseudo-class in a nested rule (@media, ...)
+- fix constraint in a rule
+- fix Kate auto-completion for properties and rules
+- fix highlighting of pseudoclass/pseudoelement in a sub-rule
+- New highlighting categories: Keyword, Operator, Separator Symbol, SpecialChar, Value Keyword, Color, Number, Unit, Selector Tag, Placeholder Selector
+
+- Version 4, by Guo Yunhe guoyunhebrave@gmail.com
+- Remake for complex SCSS syntax, avoid errors
+
+- Version 2.06, by Guo Yunhe
+- Add all W3C Work Draft properties, inherit rules from css.xml
+
+- Version 1.2.03.6, by Mte90
+- Css3 Tag
+
+- Version 1.2.03.1, by Tijn Schuurmans
+- Added basic support for "@include mixin();"
+- Clean the indentation to use 4 spaces everywhere
+
+-->
+
+<language name="SCSS" version="17" kateversion="5.79" section="Markup" extensions="*.scss" indenter="cstyle" mimetype="text/css" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL" priority="10">
+
+    <highlighting>
+        <list name="properties">
+            <include>properties##CSS</include>
+        </list>
+
+        <list name="vendor properties">
+            <include>vendor properties##CSS</include>
+        </list>
+
+        <list name="sub-properties">
+            <item>-webkit</item>
+            <item>-webkit-line</item>
+            <item>-webkit-text</item>
+            <item>-webkit-text-fill</item>
+            <item>accent</item>
+            <item>action</item>
+            <item>additive</item>
+            <item>adjust</item>
+            <item>after</item>
+            <item>align</item>
+            <item>align-last</item>
+            <item>alternates</item>
+            <item>anchor</item>
+            <item>animation-fill</item>
+            <item>animation-iteration</item>
+            <item>animation-play</item>
+            <item>animation-timing</item>
+            <item>area</item>
+            <item>areas</item>
+            <item>as</item>
+            <item>ascent</item>
+            <item>asian</item>
+            <item>aspect</item>
+            <item>attachment</item>
+            <item>auto</item>
+            <item>auto-columns</item>
+            <item>auto-flow</item>
+            <item>auto-rows</item>
+            <item>backdrop</item>
+            <item>backface</item>
+            <item>background-blend</item>
+            <item>base</item>
+            <item>basis</item>
+            <item>before</item>
+            <item>behavior</item>
+            <item>behavior-block</item>
+            <item>behavior-inline</item>
+            <item>behavior-x</item>
+            <item>behavior-y</item>
+            <item>bidi</item>
+            <item>blend</item>
+            <item>blend-mode</item>
+            <item>block</item>
+            <item>block-color</item>
+            <item>block-end</item>
+            <item>block-end-color</item>
+            <item>block-end-style</item>
+            <item>block-end-width</item>
+            <item>block-start</item>
+            <item>block-start-color</item>
+            <item>block-start-style</item>
+            <item>block-start-width</item>
+            <item>block-style</item>
+            <item>block-width</item>
+            <item>border-bottom-left</item>
+            <item>border-bottom-right</item>
+            <item>border-end</item>
+            <item>border-end-end</item>
+            <item>border-end-start</item>
+            <item>border-mode</item>
+            <item>border-outset</item>
+            <item>border-repeat</item>
+            <item>border-slice</item>
+            <item>border-source</item>
+            <item>border-start</item>
+            <item>border-start-end</item>
+            <item>border-start-start</item>
+            <item>border-top-left</item>
+            <item>border-top-right</item>
+            <item>bottom-color</item>
+            <item>bottom-left</item>
+            <item>bottom-left-radius</item>
+            <item>bottom-right</item>
+            <item>bottom-right-radius</item>
+            <item>bottom-style</item>
+            <item>bottom-width</item>
+            <item>box</item>
+            <item>box-decoration</item>
+            <item>break</item>
+            <item>caps</item>
+            <item>caption</item>
+            <item>caret</item>
+            <item>cells</item>
+            <item>change</item>
+            <item>character</item>
+            <item>chars</item>
+            <item>clamp</item>
+            <item>clip</item>
+            <item>clip-margin</item>
+            <item>collapse</item>
+            <item>color-adjust</item>
+            <item>colors</item>
+            <item>column</item>
+            <item>column-end</item>
+            <item>column-start</item>
+            <item>combine</item>
+            <item>combine-upright</item>
+            <item>composite</item>
+            <item>composition</item>
+            <item>contain-intrinsic</item>
+            <item>contain-intrinsic-block</item>
+            <item>contain-intrinsic-inline</item>
+            <item>count</item>
+            <item>counter</item>
+            <item>decoration</item>
+            <item>decoration-break</item>
+            <item>decoration-color</item>
+            <item>decoration-line</item>
+            <item>decoration-skip</item>
+            <item>decoration-skip-ink</item>
+            <item>decoration-style</item>
+            <item>decoration-thickness</item>
+            <item>delay</item>
+            <item>depth</item>
+            <item>descent</item>
+            <item>distance</item>
+            <item>duration</item>
+            <item>east</item>
+            <item>east-asian</item>
+            <item>emoji</item>
+            <item>emphasis</item>
+            <item>emphasis-color</item>
+            <item>emphasis-position</item>
+            <item>emphasis-style</item>
+            <item>empty</item>
+            <item>end</item>
+            <item>end-color</item>
+            <item>end-end</item>
+            <item>end-end-radius</item>
+            <item>end-radius</item>
+            <item>end-start</item>
+            <item>end-start-radius</item>
+            <item>end-style</item>
+            <item>end-width</item>
+            <item>events</item>
+            <item>family</item>
+            <item>feature</item>
+            <item>feature-settings</item>
+            <item>fill</item>
+            <item>fill-color</item>
+            <item>fill-mode</item>
+            <item>fit</item>
+            <item>flow</item>
+            <item>font-feature</item>
+            <item>font-language</item>
+            <item>font-optical</item>
+            <item>font-synthesis-small</item>
+            <item>font-variant-east</item>
+            <item>font-variation</item>
+            <item>forced</item>
+            <item>forced-color</item>
+            <item>function</item>
+            <item>gap-override</item>
+            <item>grid-auto</item>
+            <item>grow</item>
+            <item>gutter</item>
+            <item>hanging</item>
+            <item>hyphenate</item>
+            <item>hyphenate-limit</item>
+            <item>image</item>
+            <item>image-outset</item>
+            <item>image-repeat</item>
+            <item>image-slice</item>
+            <item>image-source</item>
+            <item>image-threshold</item>
+            <item>image-width</item>
+            <item>increment</item>
+            <item>indent</item>
+            <item>index</item>
+            <item>initial</item>
+            <item>ink</item>
+            <item>inline</item>
+            <item>inline-color</item>
+            <item>inline-end</item>
+            <item>inline-end-color</item>
+            <item>inline-end-style</item>
+            <item>inline-end-width</item>
+            <item>inline-start</item>
+            <item>inline-start-color</item>
+            <item>inline-start-style</item>
+            <item>inline-start-width</item>
+            <item>inline-style</item>
+            <item>inline-width</item>
+            <item>inside</item>
+            <item>intrinsic</item>
+            <item>intrinsic-block</item>
+            <item>intrinsic-block-size</item>
+            <item>intrinsic-height</item>
+            <item>intrinsic-inline</item>
+            <item>intrinsic-inline-size</item>
+            <item>intrinsic-size</item>
+            <item>intrinsic-width</item>
+            <item>items</item>
+            <item>iteration</item>
+            <item>iteration-count</item>
+            <item>justify</item>
+            <item>kerning</item>
+            <item>language</item>
+            <item>language-override</item>
+            <item>last</item>
+            <item>layout</item>
+            <item>left-color</item>
+            <item>left-radius</item>
+            <item>left-style</item>
+            <item>left-width</item>
+            <item>letter</item>
+            <item>ligatures</item>
+            <item>limit</item>
+            <item>limit-chars</item>
+            <item>line</item>
+            <item>line-clamp</item>
+            <item>line-gap</item>
+            <item>list</item>
+            <item>math</item>
+            <item>max</item>
+            <item>max-block</item>
+            <item>max-inline</item>
+            <item>min</item>
+            <item>min-block</item>
+            <item>min-inline</item>
+            <item>mix</item>
+            <item>mix-blend</item>
+            <item>mode</item>
+            <item>name</item>
+            <item>numeric</item>
+            <item>object</item>
+            <item>optical</item>
+            <item>optical-sizing</item>
+            <item>orientation</item>
+            <item>origin</item>
+            <item>outset</item>
+            <item>outside</item>
+            <item>overflow-clip</item>
+            <item>override</item>
+            <item>overscroll</item>
+            <item>page-break</item>
+            <item>paint</item>
+            <item>palette</item>
+            <item>path</item>
+            <item>place</item>
+            <item>play</item>
+            <item>play-state</item>
+            <item>pointer</item>
+            <item>position-x</item>
+            <item>position-y</item>
+            <item>print</item>
+            <item>print-color</item>
+            <item>property</item>
+            <item>punctuation</item>
+            <item>radius</item>
+            <item>ratio</item>
+            <item>rendering</item>
+            <item>repeat</item>
+            <item>reset</item>
+            <item>right-color</item>
+            <item>right-radius</item>
+            <item>right-style</item>
+            <item>right-width</item>
+            <item>row</item>
+            <item>row-end</item>
+            <item>row-start</item>
+            <item>rows</item>
+            <item>ruby</item>
+            <item>rule</item>
+            <item>rule-color</item>
+            <item>rule-style</item>
+            <item>rule-width</item>
+            <item>scheme</item>
+            <item>scroll</item>
+            <item>scroll-snap</item>
+            <item>scrollbar</item>
+            <item>select</item>
+            <item>self</item>
+            <item>set</item>
+            <item>settings</item>
+            <item>shadow</item>
+            <item>shape</item>
+            <item>shape-image</item>
+            <item>shrink</item>
+            <item>side</item>
+            <item>sizing</item>
+            <item>skip</item>
+            <item>skip-ink</item>
+            <item>slice</item>
+            <item>small</item>
+            <item>small-caps</item>
+            <item>snap</item>
+            <item>snap-align</item>
+            <item>snap-stop</item>
+            <item>snap-type</item>
+            <item>source</item>
+            <item>space</item>
+            <item>spacing</item>
+            <item>span</item>
+            <item>speak</item>
+            <item>start</item>
+            <item>start-color</item>
+            <item>start-end</item>
+            <item>start-end-radius</item>
+            <item>start-radius</item>
+            <item>start-start</item>
+            <item>start-start-radius</item>
+            <item>start-style</item>
+            <item>start-width</item>
+            <item>state</item>
+            <item>stop</item>
+            <item>stretch</item>
+            <item>stroke</item>
+            <item>stroke-color</item>
+            <item>stroke-width</item>
+            <item>style</item>
+            <item>style-image</item>
+            <item>style-position</item>
+            <item>style-type</item>
+            <item>synthesis</item>
+            <item>synthesis-position</item>
+            <item>synthesis-small</item>
+            <item>synthesis-small-caps</item>
+            <item>synthesis-style</item>
+            <item>synthesis-weight</item>
+            <item>tab</item>
+            <item>table</item>
+            <item>template</item>
+            <item>template-areas</item>
+            <item>template-columns</item>
+            <item>template-rows</item>
+            <item>text</item>
+            <item>text-combine</item>
+            <item>text-decoration-skip</item>
+            <item>text-fill</item>
+            <item>text-fill-color</item>
+            <item>text-stroke</item>
+            <item>text-stroke-color</item>
+            <item>text-stroke-width</item>
+            <item>text-underline</item>
+            <item>thickness</item>
+            <item>threshold</item>
+            <item>timing</item>
+            <item>timing-function</item>
+            <item>top-color</item>
+            <item>top-left</item>
+            <item>top-left-radius</item>
+            <item>top-right</item>
+            <item>top-right-radius</item>
+            <item>top-style</item>
+            <item>top-width</item>
+            <item>touch</item>
+            <item>transition-timing</item>
+            <item>type</item>
+            <item>underline</item>
+            <item>underline-offset</item>
+            <item>underline-position</item>
+            <item>unicode</item>
+            <item>upright</item>
+            <item>user</item>
+            <item>value</item>
+            <item>variant</item>
+            <item>variant-alternates</item>
+            <item>variant-caps</item>
+            <item>variant-east</item>
+            <item>variant-east-asian</item>
+            <item>variant-emoji</item>
+            <item>variant-ligatures</item>
+            <item>variant-numeric</item>
+            <item>variant-position</item>
+            <item>variation</item>
+            <item>variation-settings</item>
+            <item>vertical</item>
+            <item>weight</item>
+            <item>white</item>
+            <item>will</item>
+            <item>word</item>
+            <item>wrap</item>
+            <item>writing</item>
+            <item>x</item>
+            <item>y</item>
+            <item>z</item>
+        </list>
+
+        <list name="media types">
+            <include>media types##CSS</include>
+        </list>
+
+        <list name="media features">
+            <include>media features##CSS</include>
+        </list>
+
+        <list name="special values">
+            <item>true</item>
+            <item>false</item>
+            <item>null</item>
+        </list>
+
+        <list name="value keywords">
+            <include>value keywords##CSS</include>
+        </list>
+
+        <list name="values">
+            <include>values##CSS</include>
+        </list>
+
+        <list name="colors">
+            <include>colors##CSS</include>
+        </list>
+
+        <list name="functions">
+            <include>functions##CSS</include>
+
+            <!-- https://sass-lang.com/documentation/modules/ -->
+
+            <!-- color -->
+            <item>adjust-color</item>
+            <item>adjust-hue</item>
+            <item>alpha</item>
+            <item>blue</item>
+            <item>change-color</item>
+            <item>color.alpha</item>
+            <item>color.blackness</item>
+            <item>color.blue</item>
+            <item>color.complement</item>
+            <item>color.grayscale</item>
+            <item>color.green</item>
+            <item>color.hue</item>
+            <item>color.hwb</item>
+            <item>color.ie-hex-str</item>
+            <item>color.invert</item>
+            <item>color.lightness</item>
+            <item>color.mix</item>
+            <item>color.red</item>
+            <item>color.saturate</item>
+            <item>color.saturation</item>
+            <item>color.whiteness</item>
+            <item>complement</item>
+            <item>darken</item>
+            <item>desaturate</item>
+            <item>fade-in</item>
+            <item>fade-out</item>
+            <item>green</item>
+            <item>hue</item>
+            <item>ie-hex-str</item>
+            <item>lighten</item>
+            <item>lightness</item>
+            <item>mix</item>
+            <item>opacify</item>
+            <item>red</item>
+            <item>saturation</item>
+            <item>scale-color</item>
+            <item>transparentize</item>
+
+            <!-- index -->
+            <item>hsla</item>
+            <item>if</item>
+            <item>rgba</item>
+
+            <!-- list -->
+            <item>append</item>
+            <item>index</item>
+            <item>is-bracketed</item>
+            <item>join</item>
+            <item>length</item>
+            <item>list-separator</item>
+            <item>list.append</item>
+            <item>list.index</item>
+            <item>list.is-bracketed</item>
+            <item>list.join</item>
+            <item>list.length</item>
+            <item>list.nth</item>
+            <item>list.separator</item>
+            <item>list.set-nth</item>
+            <item>list.slash</item>
+            <item>list.zip</item>
+            <item>nth</item>
+            <item>set-nth</item>
+            <item>zip</item>
+
+            <!-- map -->
+            <item>map-get</item>
+            <item>map-has-key</item>
+            <item>map-keys</item>
+            <item>map-merge</item>
+            <item>map-remove</item>
+            <item>map-values</item>
+            <item>map.deep-merge</item>
+            <item>map.deep-remove</item>
+            <item>map.get</item>
+            <item>map.has-key</item>
+            <item>map.keys</item>
+            <item>map.merge</item>
+            <item>map.remove</item>
+            <item>map.set</item>
+            <item>map.values</item>
+
+            <!-- math -->
+            <item>ceil</item>
+            <item>comparable</item>
+            <item>floor</item>
+            <item>math.abs</item>
+            <item>math.acos</item>
+            <item>math.asin</item>
+            <item>math.atan</item>
+            <item>math.atan2</item>
+            <item>math.ceil</item>
+            <item>math.clamp</item>
+            <item>math.compatible</item>
+            <item>math.cos</item>
+            <item>math.div</item>
+            <item>math.floor</item>
+            <item>math.hypot</item>
+            <item>math.is-unitless</item>
+            <item>math.log</item>
+            <item>math.max</item>
+            <item>math.min</item>
+            <item>math.percentage</item>
+            <item>math.pow</item>
+            <item>math.random</item>
+            <item>math.round</item>
+            <item>math.sin</item>
+            <item>math.sqrt</item>
+            <item>math.tan</item>
+            <item>math.unit</item>
+            <item>percentage</item>
+            <item>random</item>
+            <item>unit</item>
+            <item>unitless</item>
+
+            <!-- meta -->
+            <item>call</item>
+            <item>content-exists</item>
+            <item>feature-exists</item>
+            <item>function-exists</item>
+            <item>get-function</item>
+            <item>global-variable-exists</item>
+            <item>inspect</item>
+            <item>keywords</item>
+            <item>meta.calc-args</item>
+            <item>meta.calc-name</item>
+            <item>meta.call</item>
+            <item>meta.content-exists</item>
+            <item>meta.feature-exists</item>
+            <item>meta.function-exists</item>
+            <item>meta.get-function</item>
+            <item>meta.global-variable-exists</item>
+            <item>meta.inspect</item>
+            <item>meta.keywords</item>
+            <item>meta.load-css</item>
+            <item>meta.mixin-exists</item>
+            <item>meta.module-functions</item>
+            <item>meta.module-variables</item>
+            <item>meta.type-of</item>
+            <item>meta.variable-exists</item>
+            <item>mixin-exists</item>
+            <item>type-of</item>
+            <item>variable-exists</item>
+
+            <!-- selector -->
+            <item>is-superselector</item>
+            <item>selector-append</item>
+            <item>selector-extend</item>
+            <item>selector-nest</item>
+            <item>selector-parse</item>
+            <item>selector-replace</item>
+            <item>selector-unify</item>
+            <item>selector.append</item>
+            <item>selector.extend</item>
+            <item>selector.is-superselector</item>
+            <item>selector.nest</item>
+            <item>selector.parse</item>
+            <item>selector.replace</item>
+            <item>selector.simple-selectors</item>
+            <item>selector.unify</item>
+            <item>simple-selectors</item>
+
+            <!-- string -->
+            <item>quote</item>
+            <item>str-index</item>
+            <item>str-insert</item>
+            <item>str-length</item>
+            <item>str-slice</item>
+            <item>string.index</item>
+            <item>string.insert</item>
+            <item>string.length</item>
+            <item>string.quote</item>
+            <item>string.slice</item>
+            <item>string.split</item>
+            <item>string.to-lower-case</item>
+            <item>string.to-upper-case</item>
+            <item>string.unique-id</item>
+            <item>string.unquote</item>
+            <item>to-lower-case</item>
+            <item>to-upper-case</item>
+            <item>unique-id</item>
+            <item>unquote</item>
+        </list>
+
+        <!-- prefixed by :: -->
+        <list name="pseudo-elements">
+            <include>pseudo-elements##CSS</include>
+        </list>
+
+        <!-- prefixed by : -->
+        <list name="pseudo-classes">
+            <include>pseudo-classes##CSS</include>
+        </list>
+
+        <list name="@page pseudo-classes">
+            <include>@page pseudo-classes##CSS</include>
+        </list>
+
+        <list name="at-rules">
+            <include>at-rules##CSS</include>
+
+            <!-- scss -->
+            <item>@at-root</item>
+            <item>@content</item>
+            <item>@debug</item>
+            <item>@each</item>
+            <item>@else</item>
+            <item>@error</item>
+            <item>@extend</item>
+            <item>@for</item>
+            <item>@forward</item>
+            <item>@function</item>
+            <item>@if</item>
+            <item>@import</item>
+            <item>@include</item>
+            <item>@mixin</item>
+            <item>@return</item>
+            <item>@use</item>
+            <item>@warn</item>
+            <item>@while</item>
+        </list>
+
+        <list name="at-rules definitions">
+            <include>at-rules definitions##CSS</include>
+        </list>
+
+        <list name="operators">
+            <item>and</item>
+            <item>or</item>
+            <item>not</item>
+        </list>
+
+        <list name="media operators">
+            <item>or</item>
+            <item>and</item>
+            <item>only</item>
+            <item>not</item>
+        </list>
+
+        <list name="annotations">
+            <item>important</item>
+            <item>default</item>
+            <item>global</item>
+            <item>optional</item>
+        </list>
+
+        <contexts>
+            <context name="Base" attribute="Normal Text" fallthroughContext="Selector">
+                <DetectSpaces attribute="Normal Text"/>
+                <Detect2Chars context="InterpolationPropertyOrSelector" char="#" char1="{" lookAhead="1"/>
+                <AnyChar context="Selector" String="*>+~|&amp;#.%,:[\" lookAhead="1"/>
+                <DetectChar attribute="Block Symbol" char="{" beginRegion="ruleset"/>
+                <DetectChar attribute="Block Symbol" char="}" endRegion="ruleset"/>
+                <DetectChar context="SelectAtRule" char="@" lookAhead="1"/>
+                <IncludeRules context="FindComments"/>
+                <RegExpr context="Property" String="(&propvar1;|&propvar2;|&maybeprop;&assumeprop;)|" lookAhead="1"/>
+            </context>
+            <context name="InterpolationPropertyOrSelector" attribute="Normal Text" fallthroughContext="#pop!Selector">
+                <RegExpr context="#pop!Property" String="(&propvar1;|&propvar2;|&maybeprop;&assumeprop;)|" lookAhead="1"/>
+            </context>
+
+            <!-- selectors // .class #id :hover :nth-child(2n+1) [type="search"] -->
+            <context name="Selector" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar attribute="Block Symbol" context="#pop" char="{" beginRegion="ruleset"/>
+                <DetectChar attribute="Block Symbol" context="#pop" char="}" endRegion="ruleset"/>
+                <DetectChar attribute="Separator Symbol" context="#pop" char=";"/>
+                <IncludeRules context="FindSelector"/>
+            </context>
+
+            <!-- selectors // .class #id :hover :nth-child(2n+1) [type="search"] -->
+            <context name="FindSelector" attribute="Normal Text">
+                <DetectChar attribute="Separator Symbol" char=","/>
+                <DetectChar attribute="Selector Pseudo" context="PseudoClassOrElement" char=":"/>
+                <DetectChar attribute="Selector Attribute" context="SelectorAttr" char="["/>
+                <DetectChar attribute="Selector Pseudo" context="PseudoClassSelector" char="("/>
+                <AnyChar attribute="Selector Symbol" String="*>+~|&amp;"/>
+                <IncludeRules context="FindComments"/>
+                <IncludeRules context="FindInterpolation"/>
+                <RegExpr attribute="Selector Class" String="\.&selector;" context="SelectorClass"/>
+                <RegExpr attribute="Selector Id" String="#&selector;" context="SelectorId"/>
+                <RegExpr attribute="Selector Tag" String="&ident;"/>
+                <RegExpr attribute="Placeholder Selector" String="%&selector;" context="SelectorPlaceholder"/>
+                <DetectChar attribute="Error" char="$"/>
+            </context>
+
+            <context name="SelectorClass" attribute="Selector Class" lineEndContext="#pop" fallthroughContext="#pop">
+                <Detect2Chars context="SelectorClass2" char="#" char1="{" lookAhead="1"/>
+            </context>
+            <context name="SelectorClass2" attribute="Selector Class" fallthroughContext="#pop#pop">
+                <IncludeRules context="FindInterpolation"/>
+                <RegExpr String="&ident2;"/>
+            </context>
+
+            <context name="SelectorId" attribute="Selector Id" lineEndContext="#pop" fallthroughContext="#pop">
+                <Detect2Chars context="SelectorId2" char="#" char1="{" lookAhead="1"/>
+            </context>
+            <context name="SelectorId2" attribute="Selector Id" fallthroughContext="#pop#pop">
+                <IncludeRules context="SelectorClass2"/>
+            </context>
+
+            <context name="SelectorPlaceholder" attribute="Placeholder Selector" lineEndContext="#pop" fallthroughContext="#pop">
+                <Detect2Chars context="SelectorPlaceholder2" char="#" char1="{" lookAhead="1"/>
+            </context>
+            <context name="SelectorPlaceholder2" attribute="Placeholder Selector" fallthroughContext="#pop#pop">
+                <IncludeRules context="SelectorClass2"/>
+            </context>
+
+
+            <context name="Property" attribute="Normal Text">
+                <DetectChar attribute="Property Separator" context="PropertyValues" char=":"/>
+                <IncludeRules context="FindVariable"/>
+                <IncludeRules context="FindComments"/>
+                <IncludeRules context="FindInterpolation"/>
+                <Detect2Chars attribute="Variable" context="Variable" char="-" char1="-"/>
+                <keyword attribute="Property" String="properties"/>
+                <keyword attribute="Property" String="sub-properties"/>
+                <IncludeRules context="FindVendorProperty"/>
+                <RegExpr attribute="Unknown Property" String="[-_a-zA-Z0-9]++(?!\.)"/>
+                <RegExpr attribute="Normal Text" String="[-_a-zA-Z0-9]+\."/>
+            </context>
+
+            <context name="PropertyValues" attribute="Normal Text">
+                <DetectSpaces attribute="Normal Text"/>
+                <DetectChar attribute="Separator Symbol" context="#pop#pop" char=";"/>
+                <DetectChar attribute="Block Symbol" context="#pop#pop!SubProperty" char="{" beginRegion="ruleset"/>
+                <DetectChar attribute="Block Symbol" context="#pop#pop" char="}" endRegion="ruleset"/>
+                <DetectChar attribute="Separator Symbol" char=","/>
+                <DetectChar attribute="Selector Symbol" char="&amp;"/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindInterpolationWithUnit"/>
+                <IncludeRules context="FindComments"/>
+                <IncludeRules context="FindFunctions"/>
+                <IncludeRules context="FindValues"/>
+            </context>
+
+            <context name="SubProperty" attribute="Normal Text">
+                <DetectSpaces attribute="Normal Text"/>
+                <DetectChar attribute="Error" char=";"/>
+                <DetectChar attribute="Block Symbol" context="SubProperty" char="{" beginRegion="ruleset"/>
+                <DetectChar attribute="Block Symbol" context="#pop" char="}" endRegion="ruleset"/>
+                <DetectChar attribute="Property Separator" context="SubPropertyValues" char=":"/>
+                <IncludeRules context="Property"/>
+            </context>
+            <context name="SubPropertyValues" attribute="Normal Text">
+                <DetectChar attribute="Separator Symbol" context="#pop" char=";"/>
+                <DetectChar attribute="Block Symbol" context="#pop!SubProperty" char="{" beginRegion="ruleset"/>
+                <IncludeRules context="PropertyValues"/>
+            </context>
+
+
+            <!-- find strings // "some words" 'some words' -->
+            <context name="FindInterpolation" attribute="Normal Text">
+                <Detect2Chars attribute="Interpolation" context="Interpolation" char="#" char1="{"/>
+            </context>
+            <context name="FindInterpolationWithUnit" attribute="Normal Text">
+                <Detect2Chars attribute="Interpolation" context="InterpolationWithUnit" char="#" char1="{"/>
+            </context>
+
+            <!-- interpolation // #{...} -->
+
+            <context name="Interpolation" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar attribute="Interpolation" context="#pop" char="}"/>
+                <IncludeRules context="FindValueInterpolation"/>
+            </context>
+            <context name="InterpolationWithUnit" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar attribute="Interpolation" context="#pop!FindUnits" char="}"/>
+                <IncludeRules context="FindValueInterpolation"/>
+            </context>
+            <context name="FindValueInterpolation" attribute="Normal Text" lineEndContext="#pop">
+                <DetectChar attribute="Value Keyword" char="&amp;"/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindInterpolation"/>
+                <IncludeRules context="FindComments"/>
+                <AnyChar attribute="Operator" String="*/+%=&lt;>!"/>
+                <IncludeRules context="FindVariable"/>
+                <IncludeRules context="FindFunctions"/>
+                <keyword attribute="Operator" String="operators"/>
+                <keyword attribute="Value Keyword" String="special values"/>
+                <IncludeRules context="FindNumber"/>
+                <DetectChar context="OperatorOrIdentifer" char="-" lookAhead="1"/>
+                <IncludeRules context="FindIdentifier"/>
+            </context>
+
+            <context name="FindVariable" attribute="Normal Text">
+                <DetectChar attribute="Variable" context="Variable" char="$"/>
+            </context>
+            <context name="Variable" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+                <RegExpr attribute="Variable" context="#pop" String="[-_a-zA-Z0-9]*"/>
+            </context>
+
+            <!-- find functions // rgba(255,255,255,0.75) -->
+            <context name="FindFunctions" attribute="Normal Text">
+                <RegExpr attribute="Function" context="Function" String="&func;\(" lookAhead="1"/>
+            </context>
+            <context name="FindNestedFunctions" attribute="Normal Text">
+                <RegExpr context="NestedFunction" String="(&func;)?\(" lookAhead="1"/>
+            </context>
+
+            <!-- find values //  10px 12pt 2.5em 1rem 75% #ffcc99 red solid -->
+            <context name="FindValues" attribute="Normal Text">
+                <AnyChar attribute="Operator" String="*/+%=&lt;>"/>
+                <DetectChar attribute="Annotation" context="Annotation" char="!" lookAhead="1"/>
+                <IncludeRules context="FindVariable"/>
+                <keyword attribute="Operator" String="operators"/>
+                <keyword attribute="Value Keyword" String="value keywords" weakDeliminator="."/>
+                <keyword attribute="Value Keyword" String="special values" weakDeliminator="."/>
+                <keyword attribute="Value" String="values" weakDeliminator="."/>
+                <keyword attribute="Named Color" String="colors"/>
+                <RegExpr attribute="Color" String="#([0-9A-Fa-f]{8}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{3,4})"/>
+                <IncludeRules context="FindNumber"/>
+                <DetectChar context="OperatorOrIdentifer" char="-" lookAhead="1"/>
+                <IncludeRules context="FindIdentifier"/>
+            </context>
+
+            <context name="OperatorOrIdentifer" attribute="Normal Text">
+                <RegExpr context="#pop" String="-(?![0-9])&ident2;\.?\s*"/>
+                <DetectChar context="#pop" attribute="Operator" char="-"/>
+            </context>
+
+            <context name="FindNumber" attribute="Normal Text" lineEndContext="#pop">
+                <RegExpr attribute="Number" context="FindUnits" String="([0-9]+(\.[0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?"/>
+            </context>
+
+            <context name="FindIdentifier" attribute="Normal Text" lineEndContext="#pop">
+                <RegExpr String="&ident2;\.?\s*"/>
+            </context>
+
+            <context name="FindVendorProperty" attribute="Normal Text" lineEndContext="#pop">
+                <RegExpr attribute="Vendor Property" String="-(webkit|moz|o|ms)-[-_a-zA-Z0-9]*"/>
+            </context>
+
+            <context name="Annotation" attribute="Normal Text" lineEndContext="#pop">
+                <WordDetect attribute="Annotation" context="#pop" String="!important"/>
+                <WordDetect attribute="Annotation" context="#pop" String="!default"/>
+                <WordDetect attribute="Annotation" context="#pop" String="!global"/>
+                <DetectChar attribute="Operator" context="#pop" char="!"/>
+            </context>
+
+            <context name="FindUnits" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+                <RegExpr attribute="Unit" context="#pop" String="(%|(em|ex|cap|ch|ic|rem|lh|rlh|vw|vh|vi|vb|vmin|vmax|cqw|cqh|cqi|cqb|cqmin|cqmax|cm|mm|Q|in|pc|pt|px|deg|grad|rad|turn|s|ms|Hz|kHz|fr|dpi|dpcm|dppx|x)\b)"/>
+            </context>
+
+            <!-- find strings // "some words" 'some words' -->
+            <context name="FindStrings" attribute="Normal Text">
+                <DetectChar attribute="String" context="StringDQ" char="&quot;"/>
+                <DetectChar attribute="String" context="StringSQ" char="'"/>
+            </context>
+
+            <!-- find comments // /* comment */ -->
+            <context name="FindComments" attribute="Normal Text">
+                <Detect2Chars attribute="Comment" context="IsComments" char="/" char1="/" lookAhead="1"/>
+                <Detect2Chars attribute="Comment" context="IsComments" char="/" char1="*" lookAhead="1"/>
+            </context>
+
+            <context name="IsComments" attribute="Normal Text">
+                <RegExpr attribute="Region Marker" String="/\*\s*BEGIN\b.*\*/|//\s*BEGIN\b.*" beginRegion="UserDefined"/>
+                <RegExpr attribute="Region Marker" String="/\*\s*END\b.*\*/|//\s*END\b.*" endRegion="UserDefined"/>
+                <Detect2Chars attribute="Comment" context="Comment" char="/" char1="*" beginRegion="comment"/>
+                <Detect2Chars attribute="Comment" context="SassComment" char="/" char1="/"/>
+            </context>
+
+            <context name="SassComment" attribute="Comment" lineEndContext="#pop#pop">
+                <DetectSpaces/>
+                <IncludeRules context="##Comments"/>
+                <DetectIdentifier/>
+            </context>
+
+            <context name="SelectAtRule" attribute="At Rule" lineEndContext="#pop">
+                <!-- scss -->
+                <WordDetect attribute="At Rule" context="@use" String="@use"/>
+                <WordDetect attribute="At Rule" context="@mixin" String="@include"/>
+                <WordDetect attribute="At Rule" context="@mixin" String="@function"/>
+                <WordDetect attribute="At Rule" context="@mixin" String="@mixin"/>
+                <WordDetect attribute="At Rule" context="@extend" String="@extend"/>
+                <WordDetect attribute="At Rule" context="@expression" String="@content"/>
+                <WordDetect attribute="At Rule" context="@use" String="@forward"/>
+                <WordDetect attribute="At Rule" context="@expressionBlock" String="@if"/>
+                <WordDetect attribute="At Rule" context="@else" String="@else"/>
+                <WordDetect attribute="At Rule" context="@each" String="@each"/>
+                <WordDetect attribute="At Rule" context="@for" String="@for"/>
+                <WordDetect attribute="At Rule" context="@expressionBlock" String="@while"/>
+                <WordDetect attribute="At Rule" context="@expression" String="@return"/>
+                <WordDetect attribute="At Rule" context="@expression" String="@error"/>
+                <WordDetect attribute="At Rule" context="@expression" String="@warn"/>
+                <WordDetect attribute="At Rule" context="@expression" String="@debug"/>
+                <WordDetect attribute="At Rule" context="@at-root" String="@at-root"/>
+                <!-- css -->
+                <WordDetect attribute="At Rule" context="@keyframes" String="@keyframes"/>
+                <WordDetect attribute="At Rule" context="@layer" String="@layer"/>
+                <WordDetect attribute="At Rule" context="@page" String="@page"/>
+                <WordDetect attribute="At Rule" context="@supports" String="@supports"/>
+                <keyword attribute="At Rule" context="@property" String="at-rules definitions"/>
+                <RegExpr attribute="At Rule" context="@media" String="@[-a-zA-Z0-9_]*"/>
+            </context>
+
+            <context name="AtRuleEnd" attribute="Normal Text">
+                <DetectChar attribute="Separator Symbol" context="#pop#pop" char=";"/>
+                <DetectChar attribute="Block Symbol" context="#pop#pop" char="{" beginRegion="ruleset"/>
+                <DetectChar attribute="Block Symbol" context="#pop#pop" char="}" endRegion="ruleset"/>
+            </context>
+            <context name="AtRuleEndLvl3" attribute="Normal Text">
+                <DetectChar attribute="Error" context="#pop#pop#pop" char=";"/>
+                <DetectChar attribute="Error" context="#pop#pop#pop" char="{" beginRegion="ruleset"/>
+                <DetectChar attribute="Error" context="#pop#pop#pop" char="}" endRegion="ruleset"/>
+            </context>
+            <context name="AtRuleBlockEnd" attribute="Normal Text">
+                <DetectChar attribute="Error" context="#pop#pop" char=";"/>
+                <DetectChar attribute="Block Symbol" context="#pop#pop" char="{" beginRegion="ruleset"/>
+                <DetectChar attribute="Error" context="#pop#pop" char="}" endRegion="ruleset"/>
+            </context>
+
+            <context name="AtRuleCommon" attribute="At Rule Text">
+                <IncludeRules context="FindVariable"/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindInterpolation"/>
+                <IncludeRules context="FindComments"/>
+                <IncludeRules context="AtRuleEnd"/>
+            </context>
+            <context name="AtRuleDefinitionCommon" attribute="At Rule Text">
+                <DetectChar attribute="Separator Symbol" context="#pop#pop" char=";"/>
+                <DetectChar attribute="Block Symbol" context="#pop#pop!SubProperty" char="{" beginRegion="ruleset"/>
+                <DetectChar attribute="Block Symbol" context="#pop#pop" char="}" endRegion="ruleset"/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindInterpolation"/>
+                <IncludeRules context="FindComments"/>
+            </context>
+
+
+            <context name="@at-root" attribute="At Rule Text">
+                <DetectSpaces/>
+                <DetectChar char="(" context="#pop!AtRuleMediaCondition" attribute="Condition Open/Close"/>
+                <IncludeRules context="AtRuleBlockEnd"/>
+                <IncludeRules context="FindComments"/>
+            </context>
+
+            <context name="@use" attribute="At Rule Text">
+                <DetectSpaces/>
+                <DetectChar attribute="Separator Symbol" context="#pop#pop" char=";"/>
+                <DetectChar attribute="Separator Symbol" char=","/>
+                <DetectChar context="@useWith" char="(" attribute="Function"/>
+                <IncludeRules context="AtRuleCommon"/>
+                <WordDetect attribute="Keyword" String="with"/>
+                <WordDetect attribute="Keyword" String="hide"/>
+                <WordDetect attribute="Keyword" context="@useAs" String="as"/>
+            </context>
+            <context name="@useAs" attribute="At Rule Text">
+                <DetectSpaces/>
+                <DetectIdentifier/>
+                <DetectChar attribute="Operator" char="*"/>
+                <DetectChar attribute="At Rule Text" char="-"/>
+                <DetectChar attribute="Separator Symbol" context="#pop#pop#pop" char=";"/>
+                <DetectChar attribute="Error" context="#pop#pop#pop" char="{" beginRegion="ruleset"/>
+                <DetectChar attribute="Error" context="#pop#pop#pop" char="}" endRegion="ruleset"/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindInterpolation"/>
+                <IncludeRules context="FindComments"/>
+                <IncludeRules context="FindFunctions"/>
+                <IncludeRules context="FindValues"/>
+            </context>
+            <context name="@useWith" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar context="#pop" char=")" attribute="Function"/>
+                <DetectChar attribute="Property Separator" char=":"/>
+                <DetectChar attribute="Separator Symbol" char=","/>
+                <DetectChar attribute="Selector Symbol" char="&amp;"/>
+                <IncludeRules context="AtRuleEndLvl3"/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindInterpolationWithUnit"/>
+                <IncludeRules context="FindComments"/>
+                <StringDetect attribute="Operator" String="..."/>
+                <IncludeRules context="FindFunctions"/>
+                <IncludeRules context="FindValues"/>
+            </context>
+
+            <context name="@mixin" attribute="Function">
+                <DetectSpaces attribute="At Rule Text"/>
+                <DetectChar context="@useWith" char="(" attribute="Function"/>
+                <DetectChar char="-"/>
+                <IncludeRules context="AtRuleCommon"/>
+                <WordDetect attribute="Keyword" String="using"/>
+                <DetectIdentifier/>
+            </context>
+
+            <context name="@extend" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar attribute="Block Symbol" context="#pop#pop" char="{" beginRegion="ruleset"/>
+                <DetectChar attribute="Block Symbol" context="#pop#pop" char="}" endRegion="ruleset"/>
+                <DetectChar attribute="Separator Symbol" context="#pop#pop" char=";"/>
+                <WordDetect attribute="Annotation" String="!optional"/>
+                <IncludeRules context="FindSelector"/>
+            </context>
+
+            <context name="@expression" attribute="At Rule Text">
+                <DetectSpaces/>
+                <IncludeRules context="AtRuleEnd"/>
+                <IncludeRules context="FindValueInterpolation"/>
+            </context>
+            <context name="@expressionBlock" attribute="At Rule Text">
+                <DetectSpaces/>
+                <IncludeRules context="AtRuleBlockEnd"/>
+                <IncludeRules context="FindValueInterpolation"/>
+            </context>
+
+            <context name="@else" attribute="At Rule Text" fallthroughContext="#pop!@expressionBlock">
+                <DetectSpaces/>
+                <WordDetect attribute="At Rule" context="#pop!@expression" String="if"/>
+                <IncludeRules context="FindComments"/>
+                <DetectChar attribute="Block Symbol" context="#pop#pop" char="{" beginRegion="ruleset"/>
+            </context>
+
+            <context name="@each" attribute="At Rule Text">
+                <DetectSpaces/>
+                <IncludeRules context="AtRuleBlockEnd"/>
+                <WordDetect attribute="Keyword" String="in"/>
+                <IncludeRules context="FindValueInterpolation"/>
+            </context>
+
+            <context name="@for" attribute="At Rule Text">
+                <DetectSpaces/>
+                <IncludeRules context="AtRuleBlockEnd"/>
+                <WordDetect attribute="Keyword" String="to"/>
+                <WordDetect attribute="Keyword" String="from"/>
+                <WordDetect attribute="Keyword" String="through"/>
+                <IncludeRules context="FindValueInterpolation"/>
+            </context>
+
+
+            <context name="@media" attribute="At Rule Text">
+                <DetectSpaces/>
+                <DetectChar char="(" context="AtRuleMediaCondition" attribute="Condition Open/Close"/>
+                <IncludeRules context="AtRuleCommon"/>
+                <IncludeRules context="FindFunctions"/>
+                <keyword String="media operators" attribute="Keyword"/>
+                <keyword String="media types" attribute="Media Type"/>
+                <DetectIdentifier/>
+            </context>
+
+            <context name="AtRuleMediaCondition" attribute="At Rule Text">
+                <DetectSpaces/>
+                <IncludeRules context="AtRuleEndLvl3"/>
+                <IncludeRules context="AtRuleMediaConditionValue"/>
+            </context>
+            <context name="NestedAtRuleMediaCondition" attribute="At Rule Text">
+                <DetectSpaces attribute="At Rule Text"/>
+                <AnyChar String=";{}" context="#pop" lookAhead="1"/>
+                <IncludeRules context="AtRuleMediaConditionValue"/>
+            </context>
+            <context name="AtRuleMediaConditionValue" attribute="At Rule Text">
+                <DetectChar char=")" context="#pop" attribute="Condition Open/Close"/>
+                <DetectChar char="(" context="NestedAtRuleMediaCondition" attribute="Condition Open/Close"/>
+                <DetectChar char=":" attribute="Property Separator"/>
+                <IncludeRules context="FindVariable"/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindInterpolation"/>
+                <IncludeRules context="FindComments"/>
+                <AnyChar attribute="Operator" String="*/+%=&lt;>"/>
+                <IncludeRules context="FindFunctions"/>
+                <IncludeRules context="FindNumber"/>
+                <keyword String="media operators" attribute="Keyword"/>
+                <keyword String="media features" attribute="Condition Property"/>
+                <IncludeRules context="FindIdentifier"/>
+                <DetectChar context="OperatorOrIdentifer" char="-" lookAhead="1"/>
+            </context>
+
+
+            <context name="@supports" attribute="At Rule Text">
+                <DetectSpaces/>
+                <DetectChar char="(" context="AtRuleSupportsCondition" lookAhead="1"/>
+                <IncludeRules context="AtRuleCommon"/>
+                <keyword String="media operators" attribute="Keyword"/>
+                <WordDetect String="selector(" context="FunctionSelector" attribute="Function"/>
+                <IncludeRules context="FindFunctions"/>
+                <DetectIdentifier/>
+            </context>
+
+            <context name="AtRuleSupportsCondition" attribute="At Rule Text" fallthroughContext="#pop">
+                <DetectChar char="(" context="SupportsCondition" attribute="Condition Open/Close"/>
+                <IncludeRules context="AtRuleEndLvl3"/>
+            </context>
+            <context name="SupportsCondition" attribute="At Rule Text" fallthroughContext="#pop!SupportsConditionValue">
+                <DetectSpaces/>
+                <DetectChar char="(" context="SupportsCondition" attribute="Condition Open/Close"/>
+                <DetectChar char=":" context="#pop!SupportsConditionValue" attribute="Property Separator"/>
+                <IncludeRules context="FindComments"/>
+                <keyword String="media operators" attribute="Keyword"/>
+                <keyword String="properties" attribute="Property"/>
+                <IncludeRules context="FindVendorProperty"/>
+            </context>
+            <context name="SupportsConditionValue" attribute="At Rule Text">
+                <AnyChar String=";{}" context="#pop" lookAhead="1"/>
+                <DetectChar char=")" context="#pop" attribute="Condition Open/Close"/>
+                <DetectChar char="(" context="SupportsCondition" attribute="Condition Open/Close"/>
+                <DetectChar char=":" attribute="Property Separator"/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindInterpolationWithUnit"/>
+                <IncludeRules context="FindComments"/>
+                <IncludeRules context="FindFunctions"/>
+                <IncludeRules context="FindValues"/>
+            </context>
+
+            <context name="FunctionSelector" attribute="At Rule Text">
+                <DetectSpaces/>
+                <AnyChar String=";{}" context="#pop" lookAhead="1"/>
+                <DetectChar char=")" context="#pop" attribute="Function"/>
+                <IncludeRules context="FindSelector"/>
+            </context>
+
+
+            <context name="@layer" attribute="At Rule Text">
+                <DetectSpaces/>
+                <DetectIdentifier/>
+                <DetectChar attribute="Separator Symbol" char=","/>
+                <IncludeRules context="AtRuleCommon"/>
+            </context>
+
+
+            <context name="@page" attribute="At Rule Text">
+                <DetectSpaces/>
+                <DetectChar attribute="Selector Pseudo" char=":"/>
+                <IncludeRules context="AtRuleDefinitionCommon"/>
+                <keyword attribute="Selector Pseudo" String="@page pseudo-classes"/>
+                <DetectIdentifier/>
+            </context>
+
+
+            <context name="@property" attribute="At Rule Text">
+                <DetectSpaces/>
+                <DetectChar char="-"/>
+                <IncludeRules context="AtRuleDefinitionCommon"/>
+                <DetectIdentifier/>
+            </context>
+
+
+            <context name="@keyframes" attribute="At Rule Text">
+                <DetectSpaces/>
+                <DetectChar char="{" context="KeyFramesBlock" attribute="Block Symbol" beginRegion="ruleset"/>
+                <IncludeRules context="AtRuleCommon"/>
+                <DetectIdentifier/>
+            </context>
+            <context name="KeyFramesBlock" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar char="{" context="SubProperty" attribute="Block Symbol" beginRegion="ruleset"/>
+                <DetectChar char="}" context="#pop#pop#pop" attribute="Block Symbol" endRegion="ruleset"/>
+                <DetectChar char="," attribute="Separator Symbol"/>
+                <IncludeRules context="FindComments"/>
+                <IncludeRules context="FindInterpolation"/>
+                <RegExpr attribute="Value" String="\b(from|to)\b|[-+]?[0-9.]*%"/>
+            </context>
+
+
+            <!-- attribute // [name=value]-->
+
+            <context name="SelectorAttr" attribute="Attribute Name">
+                <DetectChar attribute="Selector Attribute" context="#pop" char="]"/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindInterpolation"/>
+                <DetectChar attribute="Attribute Operator" context="SelectorAttrValue" char="="/>
+                <AnyChar attribute="Attribute Operator" String="~^$*|"/>
+                <IncludeRules context="FindComments"/>
+                <DetectIdentifier/>
+                <AnyChar context="#pop" String="{};#.,:>" lookAhead="1"/>
+            </context>
+
+            <context name="SelectorAttrValue" attribute="String" fallthroughContext="SelectorAttrEnd">
+                <DetectSpaces/>
+                <AnyChar context="SelectorAttrValueQuoted" String="&quot;'" lookAhead="1"/>
+                <Detect2Chars context="SelectorAttrValueQuoted" char="#" char1="{" lookAhead="1"/>
+                <RegExpr context="SelectorAttrEnd" attribute="String" String="-?(\w|&escaped;)([-\w]+|&escaped;)*"/>
+                <IncludeRules context="FindComments"/>
+            </context>
+            <context name="SelectorAttrValueQuoted" attribute="String" fallthroughContext="#pop!SelectorAttrEnd">
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindInterpolation"/>
+            </context>
+            <context name="SelectorAttrEnd" attribute="String" fallthroughContext="#pop#pop#pop">
+                <DetectSpaces/>
+                <DetectChar attribute="Selector Attribute" context="#pop#pop#pop" char="]"/>
+                <Detect2Chars context="SelectorAttrValueSensitiveOp" char="i" char1="]" lookAhead="1"/>
+                <Detect2Chars context="SelectorAttrValueSensitiveOp" char="I" char1="]" lookAhead="1"/>
+                <Detect2Chars context="SelectorAttrValueSensitiveOp" char="s" char1="]" lookAhead="1"/>
+                <Detect2Chars context="SelectorAttrValueSensitiveOp" char="S" char1="]" lookAhead="1"/>
+                <IncludeRules context="FindComments"/>
+                <IncludeRules context="FindInterpolation"/>
+            </context>
+            <context name="SelectorAttrValueSensitiveOp" attribute="String">
+                <DetectChar attribute="Selector Attribute" context="#pop#pop#pop#pop" char="]"/>
+                <AnyChar attribute="Attribute Operator" String="isIS"/>
+            </context>
+
+
+            <context name="PseudoClassOrElement" attribute="Selector Pseudo" lineEndContext="#pop" fallthroughContext="#pop">
+                <DetectChar char=":" attribute="Selector Pseudo"/>
+                <WordDetect String="lang" attribute="Selector Pseudo" context="PseudoClassStr"/>
+                <WordDetect String="part" attribute="Selector Pseudo" context="PseudoClassStr"/>
+                <RegExpr String="nth-[-a-zA-Z0-9]*" attribute="Selector Pseudo" context="PseudoClassNth"/>
+                <RegExpr String="[-a-zA-Z]+" attribute="Selector Pseudo" context="#pop"/>
+                <IncludeRules context="FindComments"/>
+                <IncludeRules context="FindInterpolation"/>
+            </context>
+
+            <context name="PseudoClassStr" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
+                <DetectChar char="(" context="PseudoClassStrInner" attribute="Selector Pseudo"/>
+                <IncludeRules context="FindComments"/>
+            </context>
+            <context name="PseudoClassStrInner" attribute="Error">
+                <DetectChar char=")" attribute="Selector Pseudo" context="#pop#pop#pop"/>
+                <DetectChar char="{" context="#pop#pop#pop" attribute="Error" beginRegion="ruleset"/>
+                <DetectChar char=":" context="#pop#pop#pop!PseudoClassOrElement" attribute="Error"/>
+                <RegExpr String="\s*&ident;(\s+&ident;|\s+)*" attribute="String"/>
+                <IncludeRules context="FindComments"/>
+                <IncludeRules context="FindInterpolation"/>
+            </context>
+
+            <context name="PseudoClassNth" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
+                <DetectChar char="(" context="PseudoClassNthInner" attribute="Selector Pseudo"/>
+                <IncludeRules context="FindComments"/>
+            </context>
+            <context name="PseudoClassNthInner" attribute="Normal Text" fallthroughContext="#pop#pop!PseudoClassSelector">
+                <Int attribute="Number" additionalDeliminator="-"/>
+                <AnyChar String="+-" attribute="Operator"/>
+                <DetectChar char="n" attribute="Unit"/>
+                <DetectChar char=")" attribute="Selector Pseudo" context="#pop#pop#pop"/>
+                <WordDetect String="odd" attribute="Value"/>
+                <WordDetect String="even" attribute="Value"/>
+                <WordDetect String="of" attribute="Keyword" context="#pop#pop!PseudoClassSelector"/>
+                <IncludeRules context="FindComments"/>
+                <IncludeRules context="FindInterpolation"/>
+                <DetectSpaces/>
+            </context>
+
+            <context name="PseudoClassSelector" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar char=")" context="#pop" attribute="Selector Pseudo"/>
+                <AnyChar String=";{}" context="#pop" lookAhead="1"/>
+                <IncludeRules context="FindSelector"/>
+            </context>
+
+
+            <context name="Comment" attribute="Comment">
+                <DetectSpaces/>
+                <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="comment"/>
+                <IncludeRules context="##Comments"/>
+                <DetectIdentifier/>
+            </context>
+
+            <context name="Function" attribute="Normal Text">
+                <IncludeRules context="FunctionInc"/>
+                <IncludeRules context="AtRuleEndLvl3"/>
+            </context>
+            <context name="NestedFunction" attribute="Normal Text">
+                <IncludeRules context="FunctionInc"/>
+                <AnyChar context="#pop" String="{};" lookAhead="1"/>
+            </context>
+            <context name="FunctionInc" attribute="Normal Text">
+                <DetectChar attribute="Function" context="FunctionParameters" char="("/>
+                <StringDetect attribute="Function" context="FunctionVar" String="var("/>
+                <StringDetect attribute="Function" context="FunctionCalc" String="calc("/>
+                <StringDetect attribute="Function" context="FunctionUrl" String="url("/>
+                <StringDetect attribute="Function" context="FunctionEnv" String="env("/>
+                <keyword attribute="Function" String="functions"/>
+                <RegExpr attribute="Function" context="FunctionParameters" String="&func;\("/>
+            </context>
+
+            <!-- From CSS with interpolation -->
+            <!-- @{ -->
+
+            <context name="FunctionVar" attribute="Normal Text" fallthroughContext="FunctionVarSep">
+                <RegExpr String="&var;" context="FunctionVarSep" attribute="Variable"/>
+                <DetectSpaces/>
+                <IncludeRules context="FindComments"/>
+            </context>
+            <context name="FunctionVarSep" attribute="Normal Text" fallthroughContext="FunctionVarParam">
+                <DetectChar char=")" context="#pop#pop#pop" attribute="Function"/>
+                <DetectChar char="," context="FunctionVarParam" attribute="Separator Symbol"/>
+            </context>
+            <context name="FunctionVarParam" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar char=")" context="#pop#pop#pop#pop" attribute="Function"/>
+                <AnyChar String=";{}" context="#pop#pop#pop" lookAhead="1"/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindInterpolationWithUnit"/>
+                <IncludeRules context="FindComments"/>
+                <IncludeRules context="FindNestedFunctions"/>
+                <IncludeRules context="FindValues"/>
+            </context>
+
+            <context name="FunctionEnv" attribute="Normal Text" fallthroughContext="FunctionVarSep">
+                <RegExpr String="&ident;" context="FunctionVarSep" attribute="Normal Text"/>
+                <DetectSpaces/>
+                <IncludeRules context="FindComments"/>
+            </context>
+
+            <context name="FunctionCalc" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar attribute="Function" context="#pop#pop" char=")"/>
+                <IncludeRules context="Calc"/>
+            </context>
+            <context name="NestedCalc" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+                <IncludeRules context="Calc"/>
+            </context>
+            <context name="Calc" attribute="Normal Text">
+                <DetectChar attribute="Separator Symbol" char=","/>
+                <DetectChar attribute="Normal Text" context="NestedCalc" char="("/>
+                <AnyChar String=";{}" context="#pop" lookAhead="1"/>
+                <!-- ATTENTION not in CSS --> <IncludeRules context="FindVariable"/>
+                <IncludeRules context="FindStrings"/>
+                <!-- ATTENTION not in CSS --> <IncludeRules context="FindInterpolationWithUnit"/>
+                <IncludeRules context="FindComments"/>
+                <AnyChar attribute="Operator" String="*/%"/>
+                <IncludeRules context="FindNestedFunctions"/>
+                <!-- ATTENTION FindNumber in CSS --> <RegExpr attribute="Number" context="FindUnits" String="[-+]?([0-9]+(\.[0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?(?![-+])"/>
+                <RegExpr String="[-+]?((?i:infinity|e|pi)|NaN)($|[^-\w])|[-+]($|[\s(,;]|/\*)" context="CalcConstantOrOperator" lookAhead="1"/>
+                <IncludeRules context="FindIdentifier"/>
+            </context>
+            <context name="CalcConstantOrOperator" attribute="Normal Text" fallthroughContext="#pop">
+                <DetectIdentifier context="#pop" attribute="Calc Constant"/>
+                <AnyChar String="-+" attribute="Operator"/>
+            </context>
+
+            <context name="FunctionUrl" attribute="Normal Text" fallthroughContext="UrlValue">
+                <DetectSpaces/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindInterpolation"/>
+            </context>
+            <context name="UrlValue" attribute="String">
+                <DetectChar attribute="Function" context="#pop#pop#pop" char=")"/>
+                <AnyChar String=";{}" context="#pop#pop" lookAhead="1"/>
+            </context>
+
+            <context name="FunctionParameters" attribute="Normal Text">
+                <DetectSpaces/>
+                <DetectChar attribute="Function" context="#pop#pop" char=")"/>
+                <DetectChar attribute="Separator Symbol" char=","/>
+                <IncludeRules context="FindStrings"/>
+                <IncludeRules context="FindInterpolationWithUnit"/>
+                <IncludeRules context="FindComments"/>
+                <!-- ATTENTION not in CSS --> <DetectChar attribute="Value Keyword" char="&amp;"/>
+                <!-- ATTENTION not in CSS --> <StringDetect attribute="Operator" String="..."/>
+                <AnyChar String=";{}" context="#pop" lookAhead="1"/>
+                <IncludeRules context="FindNestedFunctions"/>
+                <IncludeRules context="FindValues"/>
+            </context>
+
+            <!-- @} -->
+
+            <!-- string contexts -->
+            <context name="StringDQ" attribute="String">
+                <DetectChar attribute="String" context="#pop" char="&quot;"/>
+                <IncludeRules context="InsideString"/>
+            </context>
+
+            <context name="StringSQ" attribute="String">
+                <DetectChar attribute="String" context="#pop" char="'"/>
+                <IncludeRules context="InsideString"/>
+            </context>
+
+            <context name="InsideString" attribute="String">
+                <IncludeRules context="FindInterpolation"/>
+                <RegExpr attribute="SpecialChar" String="\\([0-9A-Fa-f]{1,6}|.?)"/>
+                <RegExpr attribute="String" String="\\?[^#&quot;'\\]+"/>
+            </context>
+
+        </contexts>
+
+        <itemDatas>
+            <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="At Rule" defStyleNum="dsImport" spellChecking="false"/>
+            <itemData name="At Rule Text" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="Media Type" defStyleNum="dsAnnotation" spellChecking="false"/>
+            <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
+            <itemData name="Property" defStyleNum="dsKeyword" spellChecking="false"/>
+            <itemData name="Vendor Property" defStyleNum="dsKeyword" spellChecking="false" italic="1"/>
+            <itemData name="Unknown Property" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="Property Separator" defStyleNum="dsChar" spellChecking="false"/>
+            <itemData name="String" defStyleNum="dsString"/>
+            <itemData name="SpecialChar" defStyleNum="dsSpecialChar" spellChecking="false"/>
+            <itemData name="Interpolation" defStyleNum="dsOperator" spellChecking="false"/>
+            <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>
+            <itemData name="Separator Symbol" defStyleNum="dsOperator" spellChecking="false"/>
+            <itemData name="Block Symbol" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="Value" defStyleNum="dsDecVal" spellChecking="false"/>
+            <itemData name="Number" defStyleNum="dsDecVal" spellChecking="false"/>
+            <itemData name="Value Keyword" defStyleNum="dsBuiltIn" spellChecking="false"/>
+            <itemData name="Named Color" defStyleNum="dsConstant" spellChecking="false"/>
+            <itemData name="Color" defStyleNum="dsConstant" spellChecking="false"/>
+            <itemData name="Unit" defStyleNum="dsDataType" spellChecking="false"/>
+            <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/>
+            <itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/>
+            <itemData name="Calc Constant" defStyleNum="dsDecVal" spellChecking="false"/>
+            <itemData name="Annotation" defStyleNum="dsAttribute" spellChecking="false"/>
+            <itemData name="Condition Open/Close" defStyleNum="dsFunction" spellChecking="false"/>
+            <itemData name="Condition Property" defStyleNum="dsKeyword" spellChecking="false"/>
+            <itemData name="Selector Id" defStyleNum="dsPreprocessor" bold="1" spellChecking="false"/>
+            <itemData name="Selector Class" defStyleNum="dsFunction" spellChecking="false"/>
+            <itemData name="Selector Attribute" defStyleNum="dsExtension" spellChecking="false"/>
+            <itemData name="Selector Pseudo" defStyleNum="dsInformation" italic="1" spellChecking="false"/>
+            <itemData name="Selector Tag" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="Selector Symbol" defStyleNum="dsOperator" spellChecking="false"/>
+            <itemData name="Placeholder Selector" defStyleNum="dsBuiltIn" spellChecking="false"/>
+            <itemData name="Attribute Name" defStyleNum="dsSpecialString" spellChecking="false"/>
+            <itemData name="Attribute Operator" defStyleNum="dsOperator" spellChecking="false"/>
+            <itemData name="Comment" defStyleNum="dsComment"/>
+            <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
+            <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
+        </itemDatas>
+    </highlighting>
+
+    <general>
+        <keywords casesensitive="0" weakDeliminator="-%@"/>
+        <comments>
+            <comment name="singleLine" start="//" position="afterwhitespace"/>
+            <comment name="multiLine" start="/*" end="*/" region="comment"/>
+        </comments>
+    </general>
+
+</language>
+<!-- kate: replace-tabs on; tab-width 4; indent-width 4; -->
diff --git a/syntax/sed.xml b/syntax/sed.xml
--- a/syntax/sed.xml
+++ b/syntax/sed.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="sed" section="Scripts" version="8" kateversion="5.0" extensions="*.sed" mimetype="text/x-sed" author="Bart Sas (bart.sas@gmail.com)" license="GPL">
         <highlighting>
                 <contexts>
diff --git a/syntax/sgml.xml b/syntax/sgml.xml
--- a/syntax/sgml.xml
+++ b/syntax/sgml.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
-<language name="SGML" version="4" kateversion="5.0" section="Markup" extensions="*.sgml" mimetype="text/sgml">
+<!DOCTYPE language>
+<language name="SGML" version="5" kateversion="5.0" section="Markup" extensions="*.sgml" mimetype="text/sgml">
   <highlighting>
     <contexts>
        <context attribute="Normal Text" lineEndContext="#stay" name="Normal Text" >
@@ -33,9 +33,9 @@
     </contexts>
     <itemDatas>
       <itemData name="Normal Text" defStyleNum="dsNormal"/>
-      <itemData name="Tag" defStyleNum="dsKeyword"/>
-      <itemData name="Attribute Name" defStyleNum="dsOthers"/>
-      <itemData name="Attribute Value" defStyleNum="dsDataType"/>
+      <itemData name="Tag" defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Attribute Name" defStyleNum="dsOthers" spellChecking="false"/>
+      <itemData name="Attribute Value" defStyleNum="dsDataType" spellChecking="false"/>
       <itemData name="Comment" defStyleNum="dsComment"/>
     </itemDatas>
   </highlighting>
diff --git a/syntax/sml.xml b/syntax/sml.xml
--- a/syntax/sml.xml
+++ b/syntax/sml.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="SML" version="6" kateversion="5.0" section="Sources" extensions="*.sml;*.ml" mimetype="" author="Christoph Cullmann (cullmann@kde.org)" license="MIT">
   <highlighting>
     <list name="keywords">
diff --git a/syntax/spdx-comments.xml b/syntax/spdx-comments.xml
--- a/syntax/spdx-comments.xml
+++ b/syntax/spdx-comments.xml
@@ -1,7 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
+<!-- ***** THIS FILE WAS GENERATED BY A SCRIPT - DO NOT EDIT *****
+  cd data/generators
+  # increase version of spdx-comments.xml.tpl then
+  ./generate-spdx-syntax.py > ../syntax/spdx-comments.xml
+-->
 <language
-    version="5"
+    version="6"
     kateversion="3.1"
     name="SPDX-Comments"
     section="Other"
@@ -26,494 +31,520 @@
     </list>
 
     <list name="licenses">
-      <item>0BSD</item>
-      <item>AAL</item>
-      <item>ADSL</item>
-      <item>AFL-1.1</item>
-      <item>AFL-1.2</item>
-      <item>AFL-2.0</item>
-      <item>AFL-2.1</item>
-      <item>AFL-3.0</item>
-      <item>AGPL-1.0-only</item>
-      <item>AGPL-1.0-or-later</item>
-      <item>AGPL-3.0-only</item>
-      <item>AGPL-3.0-or-later</item>
-      <item>AMDPLPA</item>
-      <item>AML</item>
-      <item>AMPAS</item>
-      <item>ANTLR-PD</item>
-      <item>ANTLR-PD-fallback</item>
-      <item>APAFML</item>
-      <item>APL-1.0</item>
-      <item>APSL-1.0</item>
+      <item>bzip2-1.0.6</item>
+      <item>Intel-ACPI</item>
+      <item>XSkat</item>
+      <item>CC-BY-NC-SA-2.0</item>
+      <item>Plexus</item>
+      <item>Giftware</item>
+      <item>BitTorrent-1.0</item>
       <item>APSL-1.1</item>
-      <item>APSL-1.2</item>
-      <item>APSL-2.0</item>
-      <item>Abstyles</item>
+      <item>UPL-1.0</item>
+      <item>Caldera</item>
+      <item>Zend-2.0</item>
+      <item>CUA-OPL-1.0</item>
+      <item>JPNIC</item>
+      <item>SAX-PD</item>
+      <item>CC-BY-ND-2.5</item>
+      <item>eGenix</item>
+      <item>LGPLLR</item>
+      <item>OLDAP-2.2.2</item>
+      <item>CC-BY-ND-3.0-DE</item>
+      <item>IPA</item>
+      <item>NCSA</item>
+      <item>W3C</item>
       <item>Adobe-2006</item>
-      <item>Adobe-Glyph</item>
-      <item>Afmparse</item>
-      <item>Aladdin</item>
-      <item>Apache-1.0</item>
-      <item>Apache-1.1</item>
-      <item>Apache-2.0</item>
-      <item>Artistic-1.0</item>
-      <item>Artistic-1.0-Perl</item>
-      <item>Artistic-1.0-cl8</item>
-      <item>Artistic-2.0</item>
-      <item>BSD-1-Clause</item>
-      <item>BSD-2-Clause</item>
-      <item>BSD-2-Clause-Patent</item>
-      <item>BSD-2-Clause-Views</item>
-      <item>BSD-3-Clause</item>
-      <item>BSD-3-Clause-Attribution</item>
-      <item>BSD-3-Clause-Clear</item>
-      <item>BSD-3-Clause-LBNL</item>
+      <item>Net-SNMP</item>
+      <item>CC-BY-SA-4.0</item>
+      <item>YPL-1.0</item>
+      <item>MITNFA</item>
+      <item>PHP-3.01</item>
+      <item>BSD-Source-Code</item>
+      <item>CC-BY-SA-2.5</item>
+      <item>Motosoto</item>
+      <item>OSL-1.1</item>
+      <item>NGPL</item>
+      <item>CC-BY-2.5-AU</item>
+      <item>Unicode-TOU</item>
       <item>BSD-3-Clause-No-Nuclear-License</item>
-      <item>BSD-3-Clause-No-Nuclear-License-2014</item>
+      <item>OPUBL-1.0</item>
+      <item>CC-BY-NC-SA-2.0-UK</item>
+      <item>NLOD-2.0</item>
+      <item>gnuplot</item>
+      <item>EPICS</item>
+      <item>Info-ZIP</item>
+      <item>OLDAP-2.0</item>
+      <item>CERN-OHL-P-2.0</item>
       <item>BSD-3-Clause-No-Nuclear-Warranty</item>
-      <item>BSD-3-Clause-Open-MPI</item>
-      <item>BSD-4-Clause</item>
-      <item>BSD-4-Clause-UC</item>
+      <item>AML</item>
+      <item>MulanPSL-1.0</item>
+      <item>Multics</item>
+      <item>VSL-1.0</item>
+      <item>RSA-MD</item>
+      <item>CC-PDDC</item>
+      <item>CC-BY-SA-2.1-JP</item>
+      <item>LPPL-1.2</item>
+      <item>Spencer-94</item>
+      <item>OLDAP-1.2</item>
+      <item>O-UDA-1.0</item>
+      <item>OLDAP-2.7</item>
+      <item>Glulxe</item>
+      <item>iMatix</item>
+      <item>TAPR-OHL-1.0</item>
+      <item>NBPL-1.0</item>
+      <item>LiLiQ-R-1.1</item>
+      <item>Noweb</item>
+      <item>CC0-1.0</item>
       <item>BSD-Protection</item>
-      <item>BSD-Source-Code</item>
-      <item>BSL-1.0</item>
-      <item>BUSL-1.1</item>
-      <item>Bahyph</item>
-      <item>Barr</item>
-      <item>Beerware</item>
-      <item>BitTorrent-1.0</item>
-      <item>BitTorrent-1.1</item>
-      <item>BlueOak-1.0.0</item>
-      <item>Borceux</item>
-      <item>CAL-1.0</item>
-      <item>CAL-1.0-Combined-Work-Exception</item>
-      <item>CATOSL-1.1</item>
-      <item>CC-BY-1.0</item>
-      <item>CC-BY-2.0</item>
-      <item>CC-BY-2.5</item>
-      <item>CC-BY-3.0</item>
+      <item>CC-BY-NC-2.5</item>
+      <item>Zlib</item>
+      <item>GFDL-1.3-invariants-or-later</item>
       <item>CC-BY-3.0-AT</item>
+      <item>LPPL-1.3c</item>
+      <item>EPL-1.0</item>
+      <item>GFDL-1.1-invariants-or-later</item>
+      <item>ANTLR-PD-fallback</item>
+      <item>OLDAP-2.4</item>
+      <item>OLDAP-2.3</item>
+      <item>ZPL-2.1</item>
+      <item>Apache-2.0</item>
+      <item>SGI-B-2.0</item>
+      <item>Hippocratic-2.1</item>
+      <item>CC-BY-SA-3.0-DE</item>
+      <item>CC-BY-NC-SA-1.0</item>
+      <item>LGPL-2.1-or-later</item>
       <item>CC-BY-3.0-US</item>
-      <item>CC-BY-4.0</item>
+      <item>TCP-wrappers</item>
+      <item>GFDL-1.2-invariants-or-later</item>
+      <item>Eurosym</item>
+      <item>LPPL-1.0</item>
+      <item>SGI-B-1.0</item>
+      <item>APL-1.0</item>
+      <item>libtiff</item>
+      <item>AFL-2.1</item>
       <item>CC-BY-NC-1.0</item>
-      <item>CC-BY-NC-2.0</item>
-      <item>CC-BY-NC-2.5</item>
-      <item>CC-BY-NC-3.0</item>
+      <item>GD</item>
+      <item>AFL-1.1</item>
+      <item>CC-BY-NC-ND-3.0-IGO</item>
+      <item>Unicode-DFS-2015</item>
+      <item>GFDL-1.2-only</item>
+      <item>MPL-1.1</item>
+      <item>GPL-2.0-only</item>
       <item>CC-BY-NC-4.0</item>
-      <item>CC-BY-NC-ND-1.0</item>
-      <item>CC-BY-NC-ND-2.0</item>
+      <item>FreeImage</item>
+      <item>SHL-0.51</item>
+      <item>CNRI-Jython</item>
+      <item>ZPL-1.1</item>
+      <item>Afmparse</item>
+      <item>OLDAP-2.1</item>
+      <item>Rdisc</item>
+      <item>Imlib2</item>
+      <item>BSD-4-Clause-Shortened</item>
+      <item>Sendmail</item>
+      <item>CC-BY-2.5</item>
+      <item>AAL</item>
+      <item>MPL-2.0-no-copyleft-exception</item>
       <item>CC-BY-NC-ND-2.5</item>
-      <item>CC-BY-NC-ND-3.0</item>
-      <item>CC-BY-NC-ND-3.0-IGO</item>
-      <item>CC-BY-NC-ND-4.0</item>
-      <item>CC-BY-NC-SA-1.0</item>
-      <item>CC-BY-NC-SA-2.0</item>
-      <item>CC-BY-NC-SA-2.5</item>
-      <item>CC-BY-NC-SA-3.0</item>
-      <item>CC-BY-NC-SA-4.0</item>
-      <item>CC-BY-ND-1.0</item>
-      <item>CC-BY-ND-2.0</item>
-      <item>CC-BY-ND-2.5</item>
-      <item>CC-BY-ND-3.0</item>
-      <item>CC-BY-ND-4.0</item>
-      <item>CC-BY-SA-1.0</item>
-      <item>CC-BY-SA-2.0</item>
-      <item>CC-BY-SA-2.0-UK</item>
-      <item>CC-BY-SA-2.5</item>
+      <item>CC-BY-3.0-NL</item>
+      <item>LPL-1.02</item>
+      <item>ECL-1.0</item>
+      <item>OFL-1.0-no-RFN</item>
+      <item>CC-BY-NC-SA-3.0-DE</item>
       <item>CC-BY-SA-3.0</item>
-      <item>CC-BY-SA-3.0-AT</item>
-      <item>CC-BY-SA-4.0</item>
-      <item>CC-PDDC</item>
-      <item>CC0-1.0</item>
-      <item>CDDL-1.0</item>
-      <item>CDDL-1.1</item>
-      <item>CDLA-Permissive-1.0</item>
+      <item>NTP</item>
+      <item>MPL-2.0</item>
+      <item>APSL-1.2</item>
+      <item>GFDL-1.2-no-invariants-only</item>
+      <item>Artistic-2.0</item>
+      <item>RSCPL</item>
+      <item>Sleepycat</item>
+      <item>xpp</item>
       <item>CDLA-Sharing-1.0</item>
-      <item>CECILL-1.0</item>
-      <item>CECILL-1.1</item>
-      <item>CECILL-2.0</item>
-      <item>CECILL-2.1</item>
-      <item>CECILL-B</item>
-      <item>CECILL-C</item>
-      <item>CERN-OHL-1.1</item>
-      <item>CERN-OHL-1.2</item>
-      <item>CERN-OHL-P-2.0</item>
-      <item>CERN-OHL-S-2.0</item>
-      <item>CERN-OHL-W-2.0</item>
-      <item>CNRI-Jython</item>
-      <item>CNRI-Python</item>
-      <item>CNRI-Python-GPL-Compatible</item>
-      <item>CPAL-1.0</item>
-      <item>CPL-1.0</item>
-      <item>CPOL-1.02</item>
-      <item>CUA-OPL-1.0</item>
-      <item>Caldera</item>
       <item>ClArtistic</item>
-      <item>Condor-1.1</item>
-      <item>Crossword</item>
+      <item>AGPL-1.0-only</item>
+      <item>CC-BY-3.0-DE</item>
+      <item>AFL-2.0</item>
+      <item>Intel</item>
+      <item>GFDL-1.1-no-invariants-or-later</item>
+      <item>APAFML</item>
+      <item>SISSL</item>
+      <item>Naumen</item>
+      <item>HTMLTIDY</item>
+      <item>OLDAP-2.8</item>
+      <item>blessing</item>
+      <item>CC-BY-ND-2.0</item>
+      <item>OGTSL</item>
+      <item>LGPL-2.0-or-later</item>
+      <item>Parity-7.0.0</item>
+      <item>CC-BY-ND-1.0</item>
+      <item>dvipdfm</item>
+      <item>CNRI-Python</item>
+      <item>BSD-4-Clause-UC</item>
+      <item>NLOD-1.0</item>
+      <item>MS-RL</item>
+      <item>CC-BY-NC-SA-4.0</item>
+      <item>HaskellReport</item>
+      <item>CC-BY-1.0</item>
+      <item>UCL-1.0</item>
+      <item>Mup</item>
+      <item>SMPPL</item>
+      <item>PHP-3.0</item>
+      <item>GL2PS</item>
       <item>CrystalStacker</item>
-      <item>Cube</item>
-      <item>D-FSL-1.0</item>
-      <item>DOC</item>
-      <item>DSDP</item>
-      <item>Dotseqn</item>
-      <item>ECL-1.0</item>
-      <item>ECL-2.0</item>
-      <item>EFL-1.0</item>
-      <item>EFL-2.0</item>
-      <item>EPICS</item>
-      <item>EPL-1.0</item>
-      <item>EPL-2.0</item>
-      <item>EUDatagrid</item>
-      <item>EUPL-1.0</item>
-      <item>EUPL-1.1</item>
-      <item>EUPL-1.2</item>
-      <item>Entessa</item>
-      <item>ErlPL-1.1</item>
-      <item>Eurosym</item>
-      <item>FSFAP</item>
-      <item>FSFUL</item>
-      <item>FSFULLR</item>
-      <item>FTL</item>
-      <item>Fair</item>
+      <item>W3C-20150513</item>
+      <item>NIST-PD-fallback</item>
+      <item>OGL-UK-1.0</item>
+      <item>CPL-1.0</item>
+      <item>LGPL-2.1-only</item>
+      <item>ZPL-2.0</item>
       <item>Frameworx-1.0</item>
-      <item>FreeImage</item>
+      <item>AGPL-3.0-only</item>
+      <item>DRL-1.0</item>
+      <item>EFL-2.0</item>
+      <item>Spencer-99</item>
+      <item>CAL-1.0-Combined-Work-Exception</item>
       <item>GFDL-1.1-invariants-only</item>
-      <item>GFDL-1.1-invariants-or-later</item>
-      <item>GFDL-1.1-no-invariants-only</item>
-      <item>GFDL-1.1-no-invariants-or-later</item>
+      <item>TCL</item>
+      <item>SHL-0.5</item>
+      <item>OFL-1.0-RFN</item>
+      <item>CERN-OHL-W-2.0</item>
+      <item>Glide</item>
+      <item>mpich2</item>
+      <item>psutils</item>
+      <item>SPL-1.0</item>
+      <item>Apache-1.1</item>
+      <item>CC-BY-ND-4.0</item>
+      <item>FreeBSD-DOC</item>
+      <item>SCEA</item>
+      <item>Latex2e</item>
+      <item>Artistic-1.0-cl8</item>
+      <item>SGI-B-1.1</item>
+      <item>NRL</item>
+      <item>SWL</item>
+      <item>Zed</item>
+      <item>CERN-OHL-1.1</item>
+      <item>RHeCos-1.1</item>
+      <item>JasPer-2.0</item>
+      <item>SSPL-1.0</item>
+      <item>OLDAP-1.4</item>
+      <item>libpng-2.0</item>
+      <item>CNRI-Python-GPL-Compatible</item>
+      <item>Aladdin</item>
+      <item>CECILL-1.0</item>
+      <item>Ruby</item>
+      <item>NPL-1.1</item>
+      <item>ImageMagick</item>
+      <item>Cube</item>
       <item>GFDL-1.1-only</item>
-      <item>GFDL-1.1-or-later</item>
+      <item>CC-BY-2.0</item>
+      <item>AFL-1.2</item>
+      <item>CC-BY-SA-2.0</item>
+      <item>CECILL-2.0</item>
+      <item>MIT-advertising</item>
+      <item>CC-BY-NC-SA-2.5</item>
+      <item>Artistic-1.0</item>
+      <item>OSL-3.0</item>
+      <item>X11</item>
+      <item>Bahyph</item>
+      <item>OLDAP-2.0.1</item>
+      <item>EUDatagrid</item>
+      <item>MTLL</item>
       <item>GFDL-1.2-invariants-only</item>
-      <item>GFDL-1.2-invariants-or-later</item>
-      <item>GFDL-1.2-no-invariants-only</item>
-      <item>GFDL-1.2-no-invariants-or-later</item>
-      <item>GFDL-1.2-only</item>
+      <item>GFDL-1.3-no-invariants-or-later</item>
+      <item>curl</item>
+      <item>LAL-1.3</item>
+      <item>DSDP</item>
+      <item>CERN-OHL-1.2</item>
+      <item>TOSL</item>
+      <item>CC-BY-3.0</item>
+      <item>Qhull</item>
+      <item>GFDL-1.3-no-invariants-only</item>
+      <item>TORQUE-1.1</item>
+      <item>MS-PL</item>
+      <item>Apache-1.0</item>
+      <item>copyleft-next-0.3.1</item>
       <item>GFDL-1.2-or-later</item>
+      <item>MulanPSL-2.0</item>
+      <item>FSFAP</item>
+      <item>Xerox</item>
+      <item>CDDL-1.0</item>
       <item>GFDL-1.3-invariants-only</item>
-      <item>GFDL-1.3-invariants-or-later</item>
-      <item>GFDL-1.3-no-invariants-only</item>
-      <item>GFDL-1.3-no-invariants-or-later</item>
-      <item>GFDL-1.3-only</item>
+      <item>etalab-2.0</item>
+      <item>XFree86-1.1</item>
+      <item>SNIA</item>
+      <item>LPPL-1.1</item>
+      <item>CATOSL-1.1</item>
+      <item>TU-Berlin-2.0</item>
       <item>GFDL-1.3-or-later</item>
-      <item>GL2PS</item>
-      <item>GLWTPL</item>
-      <item>GPL-1.0-only</item>
+      <item>LAL-1.2</item>
+      <item>ICU</item>
+      <item>FTL</item>
+      <item>MirOS</item>
+      <item>CC-BY-NC-ND-3.0</item>
+      <item>OSET-PL-2.1</item>
+      <item>CC-BY-NC-ND-2.0</item>
+      <item>SISSL-1.2</item>
+      <item>Wsuipa</item>
+      <item>Zimbra-1.4</item>
+      <item>Linux-OpenIB</item>
+      <item>OLDAP-2.5</item>
+      <item>AMPAS</item>
       <item>GPL-1.0-or-later</item>
-      <item>GPL-2.0-only</item>
-      <item>GPL-2.0-or-later</item>
-      <item>GPL-3.0-only</item>
+      <item>BUSL-1.1</item>
+      <item>Adobe-Glyph</item>
+      <item>0BSD</item>
+      <item>W3C-19980720</item>
+      <item>FSFUL</item>
+      <item>CC-BY-NC-SA-3.0</item>
+      <item>DOC</item>
+      <item>TMate</item>
+      <item>MIT-open-group</item>
+      <item>AMDPLPA</item>
+      <item>Condor-1.1</item>
+      <item>PolyForm-Noncommercial-1.0.0</item>
+      <item>BSD-3-Clause-No-Military-License</item>
+      <item>CC-BY-4.0</item>
+      <item>OGL-Canada-2.0</item>
+      <item>CC-BY-NC-SA-3.0-IGO</item>
+      <item>EFL-1.0</item>
+      <item>Newsletr</item>
+      <item>copyleft-next-0.3.0</item>
       <item>GPL-3.0-or-later</item>
-      <item>Giftware</item>
-      <item>Glide</item>
-      <item>Glulxe</item>
-      <item>HPND</item>
-      <item>HPND-sell-variant</item>
-      <item>HTMLTIDY</item>
-      <item>HaskellReport</item>
-      <item>Hippocratic-2.1</item>
-      <item>IBM-pibs</item>
-      <item>ICU</item>
-      <item>IJG</item>
-      <item>IPA</item>
-      <item>IPL-1.0</item>
-      <item>ISC</item>
-      <item>ImageMagick</item>
-      <item>Imlib2</item>
-      <item>Info-ZIP</item>
-      <item>Intel</item>
-      <item>Intel-ACPI</item>
-      <item>Interbase-1.0</item>
-      <item>JPNIC</item>
-      <item>JSON</item>
-      <item>JasPer-2.0</item>
-      <item>LAL-1.2</item>
-      <item>LAL-1.3</item>
+      <item>CDLA-Permissive-2.0</item>
+      <item>CC-BY-ND-3.0</item>
+      <item>C-UDA-1.0</item>
+      <item>Barr</item>
+      <item>Vim</item>
+      <item>BitTorrent-1.1</item>
+      <item>CDL-1.0</item>
+      <item>CC-BY-SA-1.0</item>
+      <item>ADSL</item>
+      <item>PostgreSQL</item>
+      <item>OFL-1.1</item>
+      <item>NPL-1.0</item>
+      <item>xinetd</item>
       <item>LGPL-2.0-only</item>
-      <item>LGPL-2.0-or-later</item>
-      <item>LGPL-2.1-only</item>
-      <item>LGPL-2.1-or-later</item>
+      <item>zlib-acknowledgement</item>
+      <item>OLDAP-2.2.1</item>
+      <item>APSL-1.0</item>
+      <item>BSD-3-Clause-LBNL</item>
+      <item>GLWTPL</item>
       <item>LGPL-3.0-only</item>
-      <item>LGPL-3.0-or-later</item>
-      <item>LGPLLR</item>
-      <item>LPL-1.0</item>
-      <item>LPL-1.02</item>
-      <item>LPPL-1.0</item>
-      <item>LPPL-1.1</item>
-      <item>LPPL-1.2</item>
-      <item>LPPL-1.3a</item>
-      <item>LPPL-1.3c</item>
-      <item>Latex2e</item>
-      <item>Leptonica</item>
-      <item>LiLiQ-P-1.1</item>
-      <item>LiLiQ-R-1.1</item>
-      <item>LiLiQ-Rplus-1.1</item>
+      <item>OGC-1.0</item>
+      <item>Dotseqn</item>
+      <item>MakeIndex</item>
+      <item>GPL-3.0-only</item>
+      <item>BSD-3-Clause-No-Nuclear-License-2014</item>
+      <item>GPL-1.0-only</item>
+      <item>IJG</item>
+      <item>AGPL-1.0-or-later</item>
+      <item>OFL-1.1-no-RFN</item>
+      <item>BSL-1.0</item>
       <item>Libpng</item>
-      <item>Linux-OpenIB</item>
-      <item>MIT</item>
-      <item>MIT-0</item>
-      <item>MIT-CMU</item>
-      <item>MIT-advertising</item>
+      <item>CC-BY-NC-3.0</item>
+      <item>CC-BY-NC-2.0</item>
+      <item>Unlicense</item>
+      <item>LPL-1.0</item>
+      <item>bzip2-1.0.5</item>
+      <item>Entessa</item>
+      <item>BSD-2-Clause-Patent</item>
+      <item>ECL-2.0</item>
+      <item>Crossword</item>
+      <item>CC-BY-NC-ND-1.0</item>
+      <item>OCLC-2.0</item>
+      <item>CECILL-1.1</item>
+      <item>CECILL-2.1</item>
+      <item>OGDL-Taiwan-1.0</item>
+      <item>Abstyles</item>
+      <item>libselinux-1.0</item>
+      <item>ANTLR-PD</item>
+      <item>GPL-2.0-or-later</item>
+      <item>IPL-1.0</item>
       <item>MIT-enna</item>
-      <item>MIT-feh</item>
-      <item>MIT-open-group</item>
-      <item>MITNFA</item>
-      <item>MPL-1.0</item>
-      <item>MPL-1.1</item>
-      <item>MPL-2.0</item>
-      <item>MPL-2.0-no-copyleft-exception</item>
-      <item>MS-PL</item>
-      <item>MS-RL</item>
-      <item>MTLL</item>
-      <item>MakeIndex</item>
-      <item>MirOS</item>
-      <item>Motosoto</item>
-      <item>MulanPSL-1.0</item>
-      <item>MulanPSL-2.0</item>
-      <item>Multics</item>
-      <item>Mup</item>
-      <item>NASA-1.3</item>
-      <item>NBPL-1.0</item>
-      <item>NCGL-UK-2.0</item>
-      <item>NCSA</item>
-      <item>NGPL</item>
-      <item>NIST-PD</item>
-      <item>NIST-PD-fallback</item>
-      <item>NLOD-1.0</item>
-      <item>NLPL</item>
-      <item>NOSL</item>
-      <item>NPL-1.0</item>
-      <item>NPL-1.1</item>
-      <item>NPOSL-3.0</item>
-      <item>NRL</item>
-      <item>NTP</item>
+      <item>CPOL-1.02</item>
+      <item>CC-BY-SA-3.0-AT</item>
+      <item>BSD-1-Clause</item>
       <item>NTP-0</item>
-      <item>Naumen</item>
-      <item>Net-SNMP</item>
-      <item>NetCDF</item>
-      <item>Newsletr</item>
-      <item>Nokia</item>
-      <item>Noweb</item>
-      <item>O-UDA-1.0</item>
-      <item>OCCT-PL</item>
-      <item>OCLC-2.0</item>
-      <item>ODC-By-1.0</item>
-      <item>ODbL-1.0</item>
-      <item>OFL-1.0</item>
-      <item>OFL-1.0-RFN</item>
-      <item>OFL-1.0-no-RFN</item>
-      <item>OFL-1.1</item>
+      <item>SugarCRM-1.1.3</item>
+      <item>MIT</item>
       <item>OFL-1.1-RFN</item>
-      <item>OFL-1.1-no-RFN</item>
-      <item>OGC-1.0</item>
-      <item>OGL-Canada-2.0</item>
-      <item>OGL-UK-1.0</item>
-      <item>OGL-UK-2.0</item>
-      <item>OGL-UK-3.0</item>
-      <item>OGTSL</item>
-      <item>OLDAP-1.1</item>
-      <item>OLDAP-1.2</item>
+      <item>Watcom-1.0</item>
+      <item>CC-BY-NC-SA-2.0-FR</item>
+      <item>ODbL-1.0</item>
+      <item>FSFULLR</item>
       <item>OLDAP-1.3</item>
-      <item>OLDAP-1.4</item>
-      <item>OLDAP-2.0</item>
-      <item>OLDAP-2.0.1</item>
-      <item>OLDAP-2.1</item>
-      <item>OLDAP-2.2</item>
-      <item>OLDAP-2.2.1</item>
-      <item>OLDAP-2.2.2</item>
-      <item>OLDAP-2.3</item>
-      <item>OLDAP-2.4</item>
-      <item>OLDAP-2.5</item>
+      <item>SSH-OpenSSH</item>
+      <item>BSD-2-Clause</item>
+      <item>HPND</item>
+      <item>Zimbra-1.3</item>
+      <item>Borceux</item>
+      <item>OLDAP-1.1</item>
+      <item>OFL-1.0</item>
+      <item>NASA-1.3</item>
+      <item>VOSTROM</item>
+      <item>MIT-0</item>
+      <item>ISC</item>
+      <item>Unicode-DFS-2016</item>
+      <item>BlueOak-1.0.0</item>
+      <item>LiLiQ-Rplus-1.1</item>
+      <item>NOSL</item>
+      <item>SMLNJ</item>
+      <item>CPAL-1.0</item>
+      <item>PSF-2.0</item>
+      <item>RPL-1.5</item>
+      <item>MIT-Modern-Variant</item>
+      <item>Nokia</item>
+      <item>GFDL-1.1-no-invariants-only</item>
+      <item>PDDL-1.0</item>
+      <item>EUPL-1.0</item>
+      <item>CDDL-1.1</item>
+      <item>GFDL-1.3-only</item>
       <item>OLDAP-2.6</item>
-      <item>OLDAP-2.7</item>
-      <item>OLDAP-2.8</item>
-      <item>OML</item>
-      <item>OPL-1.0</item>
-      <item>OSET-PL-2.1</item>
-      <item>OSL-1.0</item>
-      <item>OSL-1.1</item>
-      <item>OSL-2.0</item>
+      <item>JSON</item>
+      <item>LGPL-3.0-or-later</item>
+      <item>Fair</item>
       <item>OSL-2.1</item>
-      <item>OSL-3.0</item>
-      <item>OpenSSL</item>
-      <item>PDDL-1.0</item>
-      <item>PHP-3.0</item>
-      <item>PHP-3.01</item>
-      <item>PSF-2.0</item>
-      <item>Parity-6.0.0</item>
-      <item>Parity-7.0.0</item>
-      <item>Plexus</item>
-      <item>PolyForm-Noncommercial-1.0.0</item>
-      <item>PolyForm-Small-Business-1.0.0</item>
-      <item>PostgreSQL</item>
-      <item>Python-2.0</item>
+      <item>LPPL-1.3a</item>
+      <item>NAIST-2003</item>
+      <item>CC-BY-NC-ND-4.0</item>
+      <item>CC-BY-NC-3.0-DE</item>
+      <item>OPL-1.0</item>
+      <item>HPND-sell-variant</item>
       <item>QPL-1.0</item>
-      <item>Qhull</item>
-      <item>RHeCos-1.1</item>
+      <item>EUPL-1.2</item>
+      <item>GFDL-1.2-no-invariants-or-later</item>
+      <item>NCGL-UK-2.0</item>
+      <item>Beerware</item>
+      <item>BSD-3-Clause-Open-MPI</item>
+      <item>CECILL-B</item>
+      <item>EPL-2.0</item>
+      <item>MIT-feh</item>
       <item>RPL-1.1</item>
-      <item>RPL-1.5</item>
-      <item>RPSL-1.0</item>
-      <item>RSA-MD</item>
-      <item>RSCPL</item>
-      <item>Rdisc</item>
-      <item>Ruby</item>
-      <item>SAX-PD</item>
-      <item>SCEA</item>
-      <item>SGI-B-1.0</item>
-      <item>SGI-B-1.1</item>
-      <item>SGI-B-2.0</item>
-      <item>SHL-0.5</item>
-      <item>SHL-0.51</item>
-      <item>SISSL</item>
-      <item>SISSL-1.2</item>
-      <item>SMLNJ</item>
-      <item>SMPPL</item>
-      <item>SNIA</item>
-      <item>SPL-1.0</item>
-      <item>SSH-OpenSSH</item>
+      <item>CDLA-Permissive-1.0</item>
+      <item>Python-2.0</item>
+      <item>MPL-1.0</item>
+      <item>GFDL-1.1-or-later</item>
+      <item>diffmark</item>
+      <item>OpenSSL</item>
+      <item>OSL-1.0</item>
+      <item>Parity-6.0.0</item>
+      <item>YPL-1.1</item>
       <item>SSH-short</item>
-      <item>SSPL-1.0</item>
-      <item>SWL</item>
+      <item>IBM-pibs</item>
+      <item>Xnet</item>
+      <item>TU-Berlin-1.0</item>
+      <item>CAL-1.0</item>
+      <item>AFL-3.0</item>
+      <item>CECILL-C</item>
+      <item>OGL-UK-3.0</item>
+      <item>BSD-3-Clause-Clear</item>
+      <item>BSD-3-Clause-Modification</item>
+      <item>CC-BY-SA-2.0-UK</item>
       <item>Saxpath</item>
-      <item>Sendmail</item>
-      <item>Sendmail-8.23</item>
+      <item>NLPL</item>
       <item>SimPL-2.0</item>
-      <item>Sleepycat</item>
+      <item>psfrag</item>
       <item>Spencer-86</item>
-      <item>Spencer-94</item>
-      <item>Spencer-99</item>
-      <item>SugarCRM-1.1.3</item>
-      <item>TAPR-OHL-1.0</item>
-      <item>TCL</item>
-      <item>TCP-wrappers</item>
-      <item>TMate</item>
-      <item>TORQUE-1.1</item>
-      <item>TOSL</item>
-      <item>TU-Berlin-1.0</item>
-      <item>TU-Berlin-2.0</item>
-      <item>UCL-1.0</item>
-      <item>UPL-1.0</item>
-      <item>Unicode-DFS-2015</item>
-      <item>Unicode-DFS-2016</item>
-      <item>Unicode-TOU</item>
-      <item>Unlicense</item>
-      <item>VOSTROM</item>
-      <item>VSL-1.0</item>
-      <item>Vim</item>
-      <item>W3C</item>
-      <item>W3C-19980720</item>
-      <item>W3C-20150513</item>
+      <item>OCCT-PL</item>
+      <item>CERN-OHL-S-2.0</item>
+      <item>ErlPL-1.1</item>
+      <item>MIT-CMU</item>
+      <item>NIST-PD</item>
+      <item>OSL-2.0</item>
+      <item>APSL-2.0</item>
+      <item>Leptonica</item>
+      <item>PolyForm-Small-Business-1.0.0</item>
+      <item>LiLiQ-P-1.1</item>
+      <item>NetCDF</item>
+      <item>OML</item>
+      <item>AGPL-3.0-or-later</item>
+      <item>OLDAP-2.2</item>
+      <item>BSD-3-Clause</item>
       <item>WTFPL</item>
-      <item>Watcom-1.0</item>
-      <item>Wsuipa</item>
-      <item>X11</item>
-      <item>XFree86-1.1</item>
-      <item>XSkat</item>
-      <item>Xerox</item>
-      <item>Xnet</item>
-      <item>YPL-1.0</item>
-      <item>YPL-1.1</item>
-      <item>ZPL-1.1</item>
-      <item>ZPL-2.0</item>
-      <item>ZPL-2.1</item>
-      <item>Zed</item>
-      <item>Zend-2.0</item>
-      <item>Zimbra-1.3</item>
-      <item>Zimbra-1.4</item>
-      <item>Zlib</item>
-      <item>blessing</item>
-      <item>bzip2-1.0.5</item>
-      <item>bzip2-1.0.6</item>
-      <item>copyleft-next-0.3.0</item>
-      <item>copyleft-next-0.3.1</item>
-      <item>curl</item>
-      <item>diffmark</item>
-      <item>dvipdfm</item>
-      <item>eGenix</item>
-      <item>etalab-2.0</item>
+      <item>OGL-UK-2.0</item>
+      <item>BSD-3-Clause-Attribution</item>
+      <item>RPSL-1.0</item>
+      <item>CC-BY-NC-ND-3.0-DE</item>
+      <item>EUPL-1.1</item>
+      <item>Sendmail-8.23</item>
+      <item>ODC-By-1.0</item>
+      <item>D-FSL-1.0</item>
+      <item>BSD-4-Clause</item>
+      <item>BSD-2-Clause-Views</item>
+      <item>Artistic-1.0-Perl</item>
+      <item>NPOSL-3.0</item>
       <item>gSOAP-1.3b</item>
-      <item>gnuplot</item>
-      <item>iMatix</item>
-      <item>libpng-2.0</item>
-      <item>libselinux-1.0</item>
-      <item>libtiff</item>
-      <item>mpich2</item>
-      <item>psfrag</item>
-      <item>psutils</item>
-      <item>xinetd</item>
-      <item>xpp</item>
-      <item>zlib-acknowledgement</item>
+      <item>Interbase-1.0</item>
     </list>
 
     <list name="deprecated-licenses">
-      <item>AGPL-1.0</item>
-      <item>AGPL-3.0</item>
-      <item>BSD-2-Clause-FreeBSD</item>
-      <item>BSD-2-Clause-NetBSD</item>
+      <item>GPL-1.0</item>
+      <item>GPL-2.0-with-GCC-exception</item>
+      <item>wxWindows</item>
+      <item>Nunit</item>
       <item>GFDL-1.1</item>
+      <item>GPL-2.0</item>
       <item>GFDL-1.2</item>
+      <item>LGPL-2.0</item>
+      <item>GPL-3.0-with-autoconf-exception</item>
       <item>GFDL-1.3</item>
-      <item>GPL-1.0</item>
-      <item>GPL-2.0</item>
-      <item>GPL-2.0-with-GCC-exception</item>
-      <item>GPL-2.0-with-autoconf-exception</item>
-      <item>GPL-2.0-with-bison-exception</item>
+      <item>BSD-2-Clause-NetBSD</item>
+      <item>LGPL-3.0</item>
       <item>GPL-2.0-with-classpath-exception</item>
-      <item>GPL-2.0-with-font-exception</item>
-      <item>GPL-3.0</item>
       <item>GPL-3.0-with-GCC-exception</item>
-      <item>GPL-3.0-with-autoconf-exception</item>
-      <item>LGPL-2.0</item>
+      <item>BSD-2-Clause-FreeBSD</item>
+      <item>GPL-3.0</item>
+      <item>GPL-2.0-with-font-exception</item>
+      <item>eCos-2.0</item>
+      <item>GPL-2.0-with-bison-exception</item>
+      <item>GPL-2.0-with-autoconf-exception</item>
+      <item>AGPL-1.0</item>
+      <item>AGPL-3.0</item>
       <item>LGPL-2.1</item>
-      <item>LGPL-3.0</item>
-      <item>Nunit</item>
       <item>StandardML-NJ</item>
-      <item>eCos-2.0</item>
-      <item>wxWindows</item>
     </list>
 
     <list name="exceptions">
-      <item>GCC-exception-2.0</item>
+      <item>GPL-CC-1.0</item>
       <item>openvpn-openssl-exception</item>
+      <item>WxWindows-exception-3.1</item>
       <item>GPL-3.0-linking-exception</item>
-      <item>Fawkes-Runtime-exception</item>
-      <item>u-boot-exception-2.0</item>
-      <item>PS-or-PDF-font-exception-20170817</item>
-      <item>gnu-javamail-exception</item>
-      <item>LGPL-3.0-linking-exception</item>
-      <item>DigiRule-FOSS-exception</item>
-      <item>LLVM-exception</item>
-      <item>Linux-syscall-note</item>
-      <item>GPL-3.0-linking-source-exception</item>
-      <item>Qwt-exception-1.0</item>
-      <item>389-exception</item>
+      <item>i2p-gpl-java-exception</item>
+      <item>OpenJDK-assembly-exception-1.0</item>
       <item>mif-exception</item>
-      <item>eCos-exception-2.0</item>
       <item>CLISP-exception-2.0</item>
+      <item>freertos-exception-2.0</item>
       <item>Bison-exception-2.2</item>
-      <item>Libtool-exception</item>
-      <item>LZMA-exception</item>
-      <item>OpenJDK-assembly-exception-1.0</item>
+      <item>OCCT-exception-1.0</item>
+      <item>Autoconf-exception-2.0</item>
+      <item>LLVM-exception</item>
+      <item>GCC-exception-3.1</item>
       <item>Font-exception-2.0</item>
+      <item>Libtool-exception</item>
+      <item>u-boot-exception-2.0</item>
+      <item>Swift-exception</item>
+      <item>eCos-exception-2.0</item>
       <item>OCaml-LGPL-linking-exception</item>
-      <item>GCC-exception-3.1</item>
+      <item>Qt-GPL-exception-1.0</item>
+      <item>Linux-syscall-note</item>
       <item>Bootloader-exception</item>
-      <item>SHL-2.0</item>
-      <item>Classpath-exception-2.0</item>
-      <item>Swift-exception</item>
-      <item>Autoconf-exception-2.0</item>
-      <item>FLTK-exception</item>
-      <item>freertos-exception-2.0</item>
+      <item>PS-or-PDF-font-exception-20170817</item>
       <item>Universal-FOSS-exception-1.0</item>
-      <item>WxWindows-exception-3.1</item>
-      <item>OCCT-exception-1.0</item>
+      <item>Classpath-exception-2.0</item>
+      <item>Qwt-exception-1.0</item>
+      <item>LZMA-exception</item>
       <item>Autoconf-exception-3.0</item>
-      <item>i2p-gpl-java-exception</item>
-      <item>GPL-CC-1.0</item>
+      <item>DigiRule-FOSS-exception</item>
+      <item>389-exception</item>
+      <item>SHL-2.0</item>
+      <item>GCC-exception-2.0</item>
+      <item>GPL-3.0-linking-source-exception</item>
       <item>Qt-LGPL-exception-1.1</item>
+      <item>Fawkes-Runtime-exception</item>
+      <item>gnu-javamail-exception</item>
+      <item>FLTK-exception</item>
+      <item>LGPL-3.0-linking-exception</item>
       <item>SHL-2.1</item>
-      <item>Qt-GPL-exception-1.0</item>
     </list>
 
     <list name="deprecated-exceptions">
diff --git a/syntax/sql-mysql.xml b/syntax/sql-mysql.xml
--- a/syntax/sql-mysql.xml
+++ b/syntax/sql-mysql.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!--
   MySQL syntax definition based on sql.xml by Yury Lebedev
   original by Shane Wright (me@shanewright.co.uk)
diff --git a/syntax/sql-postgresql.xml b/syntax/sql-postgresql.xml
--- a/syntax/sql-postgresql.xml
+++ b/syntax/sql-postgresql.xml
@@ -1,9 +1,34 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language
+[
+
+  <!-- Regular expression matching case-insensitively a single hexadecial digit. -->
+  <!ENTITY hexDigit "[0-9a-fA-F]">
+
+  <!-- Regular expression matching all potential names of PostgresSQL built-in
+  functions and PostGIS functions. -->
+  <!ENTITY functionName "[a-zA-Z][a-zA-Z0-9_]*">
+
+]>
+
 <!-- PostgreSQL SQL, syntax definition based on sql.xml by Yury Lebedev
      v5 fix comments by Gene Thomas <gene@genethomas.com>
   -->
-<language name="SQL (PostgreSQL)" version="13" kateversion="5.44" section="Database" extensions="*.sql;*.SQL;*.ddl;*.DDL" mimetype="text/x-sql" casesensitive="0" author="Shane Wright (me@shanewright.co.uk)" license="">
+
+<!-- Support for escape characters in strings and identifiers, PostGIS highlighting
+     and better functioni highlighting by Lukas Sommer <sommerluk@gamil.com>. These
+     modifications are under MIT License.
+  -->
+
+<language name="SQL (PostgreSQL)"
+          version="16"
+          kateversion="5.44"
+          section="Database"
+          extensions="*.sql;*.SQL;*.ddl;*.DDL"
+          mimetype="text/x-sql"
+          casesensitive="0"
+          author="Shane Wright (me@shanewright.co.uk)"
+          license="">
   <highlighting>
     <list name="controlFlow">
       <item>BEGIN</item>
@@ -750,6 +775,8 @@
       <item>BIT_LENGTH</item>
       <item>CHAR_LENGTH</item>
       <item>CHARACTER_LENGTH</item>
+      <item>CONCAT</item>
+      <item>CONCAT_WS</item>
       <item>CONVERT</item>
       <item>GET_BYTE</item>
       <item>GET_BIT</item>
@@ -927,6 +954,257 @@
       <item>PG_READ_FILE</item>
       <item>PG_STAT_FILE</item>
     </list>
+    <list name="postgisFunctions">
+      <!-- From https://postgis.net/docs/PostGIS_Special_Functions_Index.html#PostGIS_TypeFunctionMatrix at 2022-09-16 19:15 GMT -->
+      <item>Box2D</item>
+      <item>Box3D</item>
+      <item>GeometryType</item>
+      <item>PostGIS_AddBBox</item>
+      <item>PostGIS_DropBBox</item>
+      <item>PostGIS_Extensions_Upgrade</item>
+      <item>PostGIS_Full_Version</item>
+      <item>PostGIS_GEOS_Version</item>
+      <item>PostGIS_HasBBox</item>
+      <item>PostGIS_LibXML_Version</item>
+      <item>PostGIS_Lib_Build_Date</item>
+      <item>PostGIS_Lib_Version</item>
+      <item>PostGIS_Liblwgeom_Version</item>
+      <item>PostGIS_PROJ_Version</item>
+      <item>PostGIS_Scripts_Build_Date</item>
+      <item>PostGIS_Scripts_Installed</item>
+      <item>PostGIS_Scripts_Released</item>
+      <item>PostGIS_Version</item>
+      <item>PostGIS_Wagyu_Version</item>
+      <item>ST_3DArea</item>
+      <item>ST_3DClosestPoint</item>
+      <item>ST_3DConvexHull</item>
+      <item>ST_3DDifference</item>
+      <item>ST_3DDistance</item>
+      <item>ST_3DExtent</item>
+      <item>ST_3DIntersection</item>
+      <item>ST_3DLength</item>
+      <item>ST_3DLineInterpolatePoint</item>
+      <item>ST_3DLongestLine</item>
+      <item>ST_3DMakeBox</item>
+      <item>ST_3DMaxDistance</item>
+      <item>ST_3DPerimeter</item>
+      <item>ST_3DShortestLine</item>
+      <item>ST_3DUnion</item>
+      <item>ST_AddMeasure</item>
+      <item>ST_AddPoint</item>
+      <item>ST_Affine</item>
+      <item>ST_AlphaShape</item>
+      <item>ST_Angle</item>
+      <item>ST_ApproximateMedialAxis</item>
+      <item>ST_Area</item>
+      <item>ST_Azimuth</item>
+      <item>ST_Boundary</item>
+      <item>ST_BoundingDiagonal</item>
+      <item>ST_Buffer</item>
+      <item>ST_BuildArea</item>
+      <item>ST_CPAWithin</item>
+      <item>ST_Centroid</item>
+      <item>ST_ChaikinSmoothing</item>
+      <item>ST_ClipByBox2D</item>
+      <item>ST_ClosestPoint</item>
+      <item>ST_ClosestPointOfApproach</item>
+      <item>ST_ClusterDBSCAN</item>
+      <item>ST_ClusterIntersecting</item>
+      <item>ST_ClusterKMeans</item>
+      <item>ST_ClusterWithin</item>
+      <item>ST_Collect</item>
+      <item>ST_CollectionExtract</item>
+      <item>ST_CollectionHomogenize</item>
+      <item>ST_ConcaveHull</item>
+      <item>ST_ConstrainedDelaunayTriangles</item>
+      <item>ST_ConvexHull</item>
+      <item>ST_CoordDim</item>
+      <item>ST_CurveToLine</item>
+      <item>ST_DelaunayTriangles</item>
+      <item>ST_Difference</item>
+      <item>ST_Dimension</item>
+      <item>ST_Distance</item>
+      <item>ST_DistanceCPA</item>
+      <item>ST_DistanceSphere</item>
+      <item>ST_DistanceSpheroid</item>
+      <item>ST_Dump</item>
+      <item>ST_DumpPoints</item>
+      <item>ST_DumpRings</item>
+      <item>ST_DumpSegments</item>
+      <item>ST_EndPoint</item>
+      <item>ST_Envelope</item>
+      <item>ST_EstimatedExtent</item>
+      <item>ST_Expand</item>
+      <item>ST_Extent</item>
+      <item>ST_ExteriorRing</item>
+      <item>ST_Extrude</item>
+      <item>ST_FilterByM</item>
+      <item>ST_FlipCoordinates</item>
+      <item>ST_Force2D</item>
+      <item>ST_ForceCurve</item>
+      <item>ST_ForceLHR</item>
+      <item>ST_ForcePolygonCCW</item>
+      <item>ST_ForcePolygonCW</item>
+      <item>ST_ForceRHR</item>
+      <item>ST_ForceSFS</item>
+      <item>ST_Force3D</item>
+      <item>ST_Force3DM</item>
+      <item>ST_Force3DZ</item>
+      <item>ST_Force4D</item>
+      <item>ST_ForceCollection</item>
+      <item>ST_FrechetDistance</item>
+      <item>ST_GeneratePoints</item>
+      <item>ST_GeometricMedian</item>
+      <item>ST_GeometryN</item>
+      <item>ST_GeometryType</item>
+      <item>ST_HasArc</item>
+      <item>ST_HausdorffDistance</item>
+      <item>ST_Hexagon</item>
+      <item>ST_HexagonGrid</item>
+      <item>ST_InteriorRingN</item>
+      <item>ST_InterpolatePoint</item>
+      <item>ST_Intersection</item>
+      <item>ST_IsClosed</item>
+      <item>ST_IsCollection</item>
+      <item>ST_IsEmpty</item>
+      <item>ST_IsPlanar</item>
+      <item>ST_IsPolygonCCW</item>
+      <item>ST_IsPolygonCW</item>
+      <item>ST_IsRing</item>
+      <item>ST_IsSimple</item>
+      <item>ST_IsSolid</item>
+      <item>ST_IsValid</item>
+      <item>ST_IsValidDetail</item>
+      <item>ST_IsValidReason</item>
+      <item>ST_IsValidTrajectory</item>
+      <item>ST_Length</item>
+      <item>ST_Length2D</item>
+      <item>ST_LengthSpheroid</item>
+      <item>ST_Letters</item>
+      <item>ST_LineFromMultiPoint</item>
+      <item>ST_LineInterpolatePoint</item>
+      <item>ST_LineInterpolatePoints</item>
+      <item>ST_LineLocatePoint</item>
+      <item>ST_LineMerge</item>
+      <item>ST_LineSubstring</item>
+      <item>ST_LineToCurve</item>
+      <item>ST_LocateAlong</item>
+      <item>ST_LocateBetween</item>
+      <item>ST_LocateBetweenElevations</item>
+      <item>ST_LongestLine</item>
+      <item>ST_M</item>
+      <item>ST_MakeBox2D</item>
+      <item>ST_MakeEnvelope</item>
+      <item>ST_MakeLine</item>
+      <item>ST_MakePoint</item>
+      <item>ST_MakePointM</item>
+      <item>ST_MakePolygon</item>
+      <item>ST_MakeSolid</item>
+      <item>ST_MakeValid</item>
+      <item>ST_MaxDistance</item>
+      <item>ST_MaximumInscribedCircle</item>
+      <item>ST_MemSize</item>
+      <item>ST_MemUnion</item>
+      <item>ST_MinimumBoundingCircle</item>
+      <item>ST_MinimumBoundingRadius</item>
+      <item>ST_MinimumClearance</item>
+      <item>ST_MinimumClearanceLine</item>
+      <item>ST_MinkowskiSum</item>
+      <item>ST_Multi</item>
+      <item>ST_NDims</item>
+      <item>ST_NPoints</item>
+      <item>ST_NRings</item>
+      <item>ST_Node</item>
+      <item>ST_Normalize</item>
+      <item>ST_NumGeometries</item>
+      <item>ST_NumInteriorRing</item>
+      <item>ST_NumInteriorRings</item>
+      <item>ST_NumPatches</item>
+      <item>ST_NumPoints</item>
+      <item>ST_OffsetCurve</item>
+      <item>ST_OptimalAlphaShape</item>
+      <item>ST_Orientation</item>
+      <item>ST_OrientedEnvelope</item>
+      <item>ST_PatchN</item>
+      <item>ST_Perimeter</item>
+      <item>ST_Perimeter2D</item>
+      <item>ST_Point</item>
+      <item>ST_PointM</item>
+      <item>ST_PointN</item>
+      <item>ST_PointOnSurface</item>
+      <item>ST_PointZ</item>
+      <item>ST_PointZM</item>
+      <item>ST_Points</item>
+      <item>ST_Polygon</item>
+      <item>ST_Polygonize</item>
+      <item>ST_Project</item>
+      <item>ST_QuantizeCoordinates</item>
+      <item>ST_ReducePrecision</item>
+      <item>ST_RemovePoint</item>
+      <item>ST_RemoveRepeatedPoints</item>
+      <item>ST_Reverse</item>
+      <item>ST_Rotate</item>
+      <item>ST_RotateX</item>
+      <item>ST_RotateY</item>
+      <item>ST_RotateZ</item>
+      <item>ST_SRID</item>
+      <item>ST_Scale</item>
+      <item>ST_Scroll</item>
+      <item>ST_Segmentize</item>
+      <item>ST_SetEffectiveArea</item>
+      <item>ST_SetPoint</item>
+      <item>ST_SetSRID</item>
+      <item>ST_SharedPaths</item>
+      <item>ST_ShiftLongitude</item>
+      <item>ST_ShortestLine</item>
+      <item>ST_Simplify</item>
+      <item>ST_SimplifyPolygonHull</item>
+      <item>ST_SimplifyPreserveTopology</item>
+      <item>ST_SimplifyVW</item>
+      <item>ST_Snap</item>
+      <item>ST_SnapToGrid</item>
+      <item>ST_Split</item>
+      <item>ST_Square</item>
+      <item>ST_SquareGrid</item>
+      <item>ST_StartPoint</item>
+      <item>ST_StraightSkeleton</item>
+      <item>ST_Subdivide</item>
+      <item>ST_Summary</item>
+      <item>ST_SwapOrdinates</item>
+      <item>ST_SymDifference</item>
+      <item>ST_Tesselate</item>
+      <item>ST_TileEnvelope</item>
+      <item>ST_TransScale</item>
+      <item>ST_Transform</item>
+      <item>ST_Translate</item>
+      <item>ST_TriangulatePolygon</item>
+      <item>ST_UnaryUnion</item>
+      <item>ST_Union</item>
+      <item>ST_Volume</item>
+      <item>ST_VoronoiLines</item>
+      <item>ST_VoronoiPolygons</item>
+      <item>ST_WrapX</item>
+      <item>ST_X</item>
+      <item>ST_XMax</item>
+      <item>ST_XMin</item>
+      <item>ST_Y</item>
+      <item>ST_YMax</item>
+      <item>ST_YMin</item>
+      <item>ST_Z</item>
+      <item>ST_ZMax</item>
+      <item>ST_ZMin</item>
+      <item>ST_Zmflag</item>
+      <!--<item>postgis.backend</item>--><!-- Commenting out because inner dot is incompatible with the keyword delimiters. -->
+      <!--<item>postgis.enable_outdb_rasters</item>--><!-- Commenting out because inner dot is incompatible with the keyword delimiters. -->
+      <!--<item>postgis.gdal_datapath</item>--><!-- Commenting out because inner dot is incompatible with the keyword delimiters. -->
+      <!--<item>postgis.gdal_enabled_drivers</item>--><!-- Commenting out because inner dot is incompatible with the keyword delimiters. -->
+      <!--<item>postgis.gdal_config_options</item>--><!-- Commenting out because inner dot is incompatible with the keyword delimiters. -->
+      <item>postgis_sfcgal_full_version</item>
+      <item>postgis_sfcgal_version</item>
+
+      <!-- Further functions from https://postgis.net/docs/PostGIS_Special_Functions_Index.html -->
+      <item>ST_DWithin</item>
+    </list>
     <list name="types">
       <!-- https://www.postgresql.org/docs/current/static/datatype.html#DATATYPE-TABLE -->
       <item>BIGINT</item>
@@ -988,12 +1266,11 @@
       <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
 
         <!-- comments before operators -->
-        <DetectChar attribute="Comment" context="SingleLineComment" char="#"/>
         <Detect2Chars attribute="Comment" context="SingleLineComment" char="-" char1="-"/>
         <Detect2Chars attribute="Comment" context="MultiLineComment" char="/" char1="*" beginRegion="Comment"/>
         <WordDetect attribute="Comment" context="SingleLineComment" String="rem" insensitive="true" column="0"/>
 
-        <!-- HACK: don't jump into MultiLineString for CREATE FUNCTION $funcName$...$funcName$ -->
+        <!-- HACK: don't jump into DollarQuotedString for CREATE FUNCTION $funcName$...$funcName$ -->
         <RegExpr String="create\s+(or\s+replace\s+)?function" insensitive="true" context="CreateFunction" attribute="Keyword"/>
 
         <RegExpr String="do\s+\$([^\$\n\r]*)\$" insensitive="true" context="FunctionBody" attribute="Keyword"/>
@@ -1001,13 +1278,34 @@
         <keyword attribute="Keyword" context="#stay" String="keywords"/>
         <keyword attribute="Operator Keyword" context="#stay" String="operators"/>
         <keyword attribute="ControlFlow" context="#stay" String="controlFlow"/>
-        <keyword attribute="Function" context="#stay" String="functions"/>
         <keyword attribute="Data Type" context="#stay" String="types"/>
         <RegExpr attribute="Data Type" context="#stay" String="%(bulk_(exceptions|rowcount)|(not)?found|isopen|rowcount|(row)?type)\b" insensitive="true"/>
+        <!-- Highlight the names of functions when they are followed by a “(” character.
+        NOTE Some names are both, function names and data type names. Currently:
+        BOX|CIRCLE|LSEG|PATH|POINT|POLYGON|TEXT|TIMESTAMPTZ Those are always
+        catched by the above rule as data types. Highlighting them differently when
+        used as function would be tricky… -->
+        <RegExpr context="HighlightFunction" String="(?&lt;=\b)&functionName;(?=[\t ]*\()" lookAhead="true" insensitive="true"/>
         <Float attribute="Float" context="#stay"/>
         <Int attribute="Decimal" context="#stay"/>
-        <DetectChar attribute="String" context="String" char="'"/>
+        <DetectChar attribute="Verbatim string" context="SingleQuotedString" char="'"/>
+        <Detect2Chars attribute="String delimiter" context="EscapeString" char='e' char1="'"/>
+        <Detect2Chars attribute="String delimiter" context="EscapeString" char='E' char1="'"/>
+        <!-- Supports Unicode Escape String with user-defined escape character. Example:
+             u&'y+000065' UESCAPE  'y'
+             The user-defined escape character is available to dynamic rules as capture-group 1.
+             NOTE As KSyntaxHighlighing is line-based, this highlighting rule works only if all the
+             above code is within the same line (though Postgre allows it to be on different lines). -->
+        <RegExpr attribute="String delimiter" context="UnicodeEscapeStringModified" String="U&amp;'(?=(?:[^']|'')*'[ \t]*UESCAPE[ \t]*'([^0-9a-fA-F+'&quot; \t])')" insensitive="true"/>
+        <StringDetect attribute="String delimiter" context="UnicodeEscapeString" String="U&amp;'" insensitive="true"/>
         <DetectChar attribute="Identifier" context="Identifier" char="&quot;"/>
+        <!-- Supports Unicode Escape Identifiers with user-defined escape character. Example:
+             u&"y+000065" UESCAPE  'y'
+             The user-defined escape character is available to dynamic rules as capture-group 1.
+             NOTE As KSyntaxHighlighing is line-based, this highlighting rule works only if all the
+             above code is within the same line (though Postgre allows it to be on different lines). -->
+        <RegExpr attribute="Identifier" context="UnicodeEscapeIdentifierModified" String="U&amp;&quot;(?=(?:[^&quot;]|&quot;&quot;)*&quot;[ \t]*UESCAPE[ \t]*'([^0-9a-fA-F+'&quot; \t])')" insensitive="true"/>
+        <StringDetect attribute="Identifier" context="UnicodeEscapeIdentifier" String="U&amp;&quot;" insensitive="true"/>
         <Detect2Chars attribute="Operator" context="#stay" char=":" char1="="/>
         <AnyChar attribute="Symbol" context="#stay" String=":&amp;"/>
         <Detect2Chars attribute="Operator" context="#stay" char="." char1="."/>
@@ -1016,9 +1314,24 @@
         <Detect2Chars attribute="Operator" context="#stay" char="?" char1="-"/>
         <Detect2Chars attribute="Operator" context="#stay" char="?" char1="|"/>
         <RegExpr attribute="Preprocessor" context="Preprocessor" String="^@@?[^@ \t\r\n]" column="0"/>
-        <RegExpr attribute="Operator" context="MultiLineString" String="\$([^\$\n\r]*)\$"/>
+        <RegExpr attribute="Operator" context="DollarQuotedString" String="\$([^\$\n\r]*)\$"/>
         <AnyChar attribute="Operator" context="#stay" String="+-*/=%^!&lt;&gt;&amp;|@~#"/>
       </context>
+      <context attribute="Normal Text" name="HighlightFunction" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop">
+        <!-- Helper context that expects to see a function on its very beginning.
+        If it’s a PostgreSQL or PostGIS function, it is highlighted accordingly.
+        If not, by a catch-all, it gets the "Normal Text" attribute. After that,
+        it pops back to the previous context. -->
+        <keyword attribute="PostgreSQL function" context="#pop" String="functions"/>
+        <keyword attribute="PostGIS function" context="#pop" String="postgisFunctions"/>
+        <!-- Highlight user-defined functions like "Normal Text". It is not
+        possible to have an own style for this, because the syntax is
+        difficult and we could catch here strings that are not actual
+        user-defined functions. "Normal Text" is a safe alternative. Using
+        &functionName; which is the same regular expression that is used
+        by the rule that calls this context: -->
+        <RegExpr attribute="Normal Text" context="#pop" String="&functionName;" insensitive="true"/>
+      </context>
       <context name="CreateFunction" attribute="Normal Text" lineEndContext="#stay">
         <RegExpr attribute="Function" context="FunctionBody" String="\$([^\$\n\r]*)\$"/>
         <IncludeRules context="Normal"/>
@@ -1027,15 +1340,69 @@
         <StringDetect attribute="Function" context="#pop#pop" String="$%1$" dynamic="true"/>
         <IncludeRules context="Normal"/>
       </context>
-      <context name="MultiLineString" attribute="String" lineEndContext="#stay" dynamic="true">
+      <context name="SingleQuotedString" attribute="Verbatim string" lineEndContext="#stay">
+        <Detect2Chars attribute="Escape sequence" context="#stay" char="'" char1="'"/>
+        <DetectChar attribute="String delimiter" context="#pop" char="'"/>
+      </context>
+      <context name="DollarQuotedString" attribute="Verbatim string" lineEndContext="#stay" dynamic="true">
         <StringDetect attribute="Operator" context="#pop" String="$%1$" dynamic="true"/>
       </context>
-      <context name="String" attribute="String" lineEndContext="#stay">
-        <LineContinue attribute="String" context="#pop"/>
-        <HlCStringChar attribute="String Char" context="#stay"/>
-        <DetectChar attribute="Symbol" context="#stay" char="&amp;"/>
-        <DetectChar attribute="String" context="#pop" char="'"/>
+      <context name="EscapeString" attribute="String" lineEndContext="#stay">
+        <Detect2Chars attribute="Escape sequence" context="#stay" char="'" char1="'"/>
+        <!-- Default C style escapes: \n \101 \x41 … : -->
+        <HlCStringChar attribute="Escape sequence" context="#stay"/>
+        <!-- \u escapes: -->
+        <RegExpr attribute="Escape sequence" context="#stay" String="\\u&hexDigit;{4}"/>
+        <!-- Incomplete \u escape sequences are errors: -->
+        <Detect2Chars attribute="Error" context="#stay" char="\" char1="u"/>
+        <!-- \U escapes: -->
+        <RegExpr attribute="Escape sequence" context="#stay" String="\\U&hexDigit;{8}"/>
+        <!-- Incomplete \U escape sequences are errors: -->
+        <Detect2Chars attribute="Error" context="#stay" char="\" char1="U"/>
+        <!-- All other escape sequences are interpreted as escape of the concerned character: \y → y -->
+        <RegExpr attribute="Escape sequence" context="#stay" String="\\."/>
+        <!-- Even an escape sequence with the line break (means: backslash as last character of a line) is possible: -->
+        <LineContinue attribute="Escape sequence" context="#stay" char="\"/>
+        <!-- end of the string -->
+        <DetectChar attribute="String delimiter" context="#pop" char="'"/>
       </context>
+      <context attribute="Normal Text" name="IncludeUnicodeEscapeSequences" lineEndContext="#pop">
+        <!-- four-digit/six-digit escapes: -->
+        <RegExpr attribute="Escape sequence" context="#stay" String="(\\&hexDigit;{4})|(\\\+&hexDigit;{6})"/>
+        <!-- \\ is a valid escape for the backslash: -->
+        <Detect2Chars attribute="Escape sequence" context="#stay" char="\" char1="\"/>
+        <!-- All other occurences of \ are errors: -->
+        <DetectChar attribute="Error" context="#stay" char="\"/>
+      </context>
+      <context attribute="Normal Text" name="IncludeUnicodeEscapeSequencesModified" lineEndContext="#pop">
+        <!-- Context meant to be included in other contexts, not to be used on its own.
+             Containt dynamic rules. Expects that the escape character is available
+             at capture group #1.
+             NOTE The capture group expands literally for the StringDetect and DetectChar
+             rules. For the RegExpr rule, special characters (and only special characters)
+             seem to become escaped automatically: The capture “.” is available as “\.”
+             while the capture “t” is available as “t” (and not as “\t” which would mean a
+             tabulator character). So this works fine out-of-the-box even for special
+             characters.-->
+        <!-- four-digit/six-digit escapes: -->
+        <RegExpr attribute="Escape sequence" context="#stay" String="(%1&hexDigit;{4})|(%1\+&hexDigit;{6})" dynamic="true"/>
+        <!-- The escape character can escape himself: -->
+        <StringDetect attribute="Escape sequence" context="#stay" String="%1%1" dynamic="true"/>
+        <!-- All other occurences of \ are errors: -->
+        <DetectChar attribute="Error" context="#stay" char="1" dynamic="true"/>
+      </context>
+      <context name="UnicodeEscapeString" attribute="String" lineEndContext="#stay">
+        <Detect2Chars attribute="Escape sequence" context="#stay" char="'" char1="'"/>
+        <IncludeRules context="IncludeUnicodeEscapeSequences" />
+        <!-- end of the string -->
+        <DetectChar attribute="String delimiter" context="#pop" char="'"/>
+      </context>
+      <context name="UnicodeEscapeStringModified" attribute="String" lineEndContext="#stay">
+        <Detect2Chars attribute="Escape sequence" context="#stay" char="'" char1="'"/>
+        <IncludeRules context="IncludeUnicodeEscapeSequencesModified" />
+        <!-- end of the string -->
+        <DetectChar attribute="String delimiter" context="#pop" char="'"/>
+      </context>
       <context name="SingleLineComment" attribute="Comment" lineEndContext="#pop">
         <DetectSpaces />
         <IncludeRules context="##Comments"/>
@@ -1044,29 +1411,51 @@
         <LineContinue attribute="Comment" context="#pop"/>
         <DetectSpaces />
         <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+        <Detect2Chars attribute="Comment" context="MultiLineComment" char="/" char1="*" beginRegion="Comment"/>
         <IncludeRules context="##Comments"/>
       </context>
-      <context name="Identifier" attribute="Identifier" lineEndContext="#pop">
+      <context name="Identifier" attribute="Identifier" lineEndContext="#stay">
+        <Detect2Chars attribute="Escape sequence" context="#stay" char="&quot;" char1="&quot;"/>
         <DetectChar attribute="Identifier" context="#pop" char="&quot;"/>
       </context>
+      <context name="UnicodeEscapeIdentifier" attribute="Identifier" lineEndContext="#stay">
+        <Detect2Chars attribute="Escape sequence" context="#stay" char="&quot;" char1="&quot;"/>
+        <IncludeRules context="IncludeUnicodeEscapeSequences" />
+        <!-- end of the string -->
+        <DetectChar attribute="Identifier" context="#pop" char="&quot;"/>
+      </context>
+      <context name="UnicodeEscapeIdentifierModified" attribute="Identifier" lineEndContext="#stay">
+        <Detect2Chars attribute="Escape sequence" context="#stay" char="&quot;" char1="&quot;"/>
+        <IncludeRules context="IncludeUnicodeEscapeSequencesModified" />
+        <!-- end of the string -->
+        <DetectChar attribute="Identifier" context="#pop" char="&quot;"/>
+      </context>
       <context name="Preprocessor" attribute="Preprocessor" lineEndContext="#pop"/>
     </contexts>
     <itemDatas>
-      <itemData name="Normal Text"       defStyleNum="dsNormal" spellChecking="false"/>
-      <itemData name="Keyword"           defStyleNum="dsKeyword" spellChecking="false"/>
-      <itemData name="ControlFlow"       defStyleNum="dsControlFlow" spellChecking="false"/>
-      <itemData name="Operator"          defStyleNum="dsOperator" spellChecking="false"/>
-      <itemData name="Operator Keyword"  defStyleNum="dsKeyword" spellChecking="false"/>
-      <itemData name="Function"          defStyleNum="dsFunction" spellChecking="false"/>
-      <itemData name="Data Type"         defStyleNum="dsDataType" spellChecking="false"/>
-      <itemData name="Decimal"           defStyleNum="dsDecVal" spellChecking="false"/>
-      <itemData name="Float"             defStyleNum="dsFloat" spellChecking="false"/>
-      <itemData name="String"            defStyleNum="dsString"/>
-      <itemData name="String Char"       defStyleNum="dsChar" spellChecking="false"/>
-      <itemData name="Comment"           defStyleNum="dsComment"/>
-      <itemData name="Identifier"        defStyleNum="dsOthers" spellChecking="false"/>
-      <itemData name="Symbol"            defStyleNum="dsChar" spellChecking="false"/>
-      <itemData name="Preprocessor"      defStyleNum="dsOthers" spellChecking="false"/>
+      <itemData name="Normal Text"         defStyleNum="dsNormal"      spellChecking="false"/>
+      <itemData name="Keyword"             defStyleNum="dsKeyword"     spellChecking="false"/>
+      <itemData name="ControlFlow"         defStyleNum="dsControlFlow" spellChecking="false"/>
+      <itemData name="Operator"            defStyleNum="dsOperator"    spellChecking="false"/>
+      <itemData name="Operator Keyword"    defStyleNum="dsKeyword"     spellChecking="false"/>
+      <itemData name="Function"            defStyleNum="dsFunction"    spellChecking="false"/>
+      <itemData name="PostgreSQL function" defStyleNum="dsFunction"    spellChecking="false"/>
+      <itemData name="PostGIS function"    defStyleNum="dsExtension"   spellChecking="false"/>
+      <itemData name="Data Type"           defStyleNum="dsDataType"    spellChecking="false"/>
+      <itemData name="Decimal"             defStyleNum="dsDecVal"      spellChecking="false"/>
+      <itemData name="Float"               defStyleNum="dsFloat"       spellChecking="false"/>
+      <itemData name="String"              defStyleNum="dsString"/>
+      <!-- The only purpose of "String delimiter" is correct spell checking. If we would use
+           "String" also for the delimiters, code like E'test' would generate spell checking
+           errors because the E is considered part of the word that will be checked. -->
+      <itemData name="String delimiter"    defStyleNum="dsString"      spellChecking="false"/>
+      <itemData name="Verbatim string"     defStyleNum="dsVerbatimString"/>
+      <itemData name="Escape sequence"     defStyleNum="dsChar"        spellChecking="false"/>
+      <itemData name="Comment"             defStyleNum="dsComment"/>
+      <itemData name="Identifier"          defStyleNum="dsOthers"      spellChecking="false"/>
+      <itemData name="Symbol"              defStyleNum="dsChar"        spellChecking="false"/>
+      <itemData name="Preprocessor"        defStyleNum="dsOthers"      spellChecking="false"/>
+      <itemData name="Error"               defStyleNum="dsError"       spellChecking="false"/>
     </itemDatas>
   </highlighting>
   <general>
diff --git a/syntax/sql.xml b/syntax/sql.xml
--- a/syntax/sql.xml
+++ b/syntax/sql.xml
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!-- Oracle10g SQL and PL/SQL syntax - ANSI SQL 2003 superset -->
 <!-- This file is maintained by Anders Lund <anders@alweb.dk> since 2005-11-06
      v3 fix comments by Gene Thomas <gene@genethomas.com>
   -->
 <!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
-<language name="SQL" version="8" kateversion="5.44" section="Database" extensions="*.sql;*.SQL;*.ddl;*.DDL" mimetype="text/x-sql" casesensitive="0" author="Yury Lebedev (yurylebedev@mail.ru)" license="LGPL">
+<language name="SQL" version="9" kateversion="5.44" section="Database" extensions="*.sql;*.SQL;*.ddl;*.DDL" mimetype="text/x-sql" casesensitive="0" author="Yury Lebedev (yurylebedev@mail.ru)" license="LGPL">
   <highlighting>
     <list name="controlFlow">
       <item>BEGIN</item>
@@ -921,6 +921,7 @@
       <context name="Multiline C-style comment" attribute="Comment" lineEndContext="#stay">
         <DetectSpaces />
         <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+        <Detect2Chars attribute="Comment" context="Multiline C-style comment" char="/" char1="*" beginRegion="Comment"/>
         <IncludeRules context="##Comments"/>
       </context>
       <context name="SQL*Plus remark directive" attribute="Comment" lineEndContext="#pop">
diff --git a/syntax/stan.xml b/syntax/stan.xml
new file mode 100644
--- /dev/null
+++ b/syntax/stan.xml
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language>
+<language name="Stan"
+          section="Scientific"
+          version="7"
+          kateversion="5.0"
+          indenter="cstyle"
+          extensions="*.stan;*.stanfunctions"
+          license="MIT">
+  <highlighting>
+    <list name="controlflow">
+      <item>break</item>
+      <item>continue</item>
+      <item>else</item>
+      <item>for</item>
+      <item>if</item>
+      <item>in</item>
+      <item>return</item>
+      <item>while</item>
+      <item>profile</item>
+    </list>
+    <list name="keywords">
+      <item>reject</item>
+      <item>print</item>
+      <item>integrate_ode</item>
+      <item>integrate_ode_bdf</item>
+      <item>integrate_ode_rk45</item>
+      <item>algebra_solver</item>
+    </list>
+    <list name="types">
+      <item>lower</item>
+      <item>upper</item>
+      <item>offset</item>
+      <item>multiplier</item>
+      <item>int</item>
+      <item>real</item>
+      <item>vector</item>
+      <item>complex</item>
+      <item>ordered</item>
+      <item>positive_ordered</item>
+      <item>simplex</item>
+      <item>unit_vector</item>
+      <item>row_vector</item>
+      <item>matrix</item>
+      <item>array</item>
+      <item>tuple</item>
+      <item>cholesky_factor_corr</item>
+      <item>cholesky_factor_cov</item>
+      <item>corr_matrix</item>
+      <item>cov_matrix</item>
+      <item>void</item>
+      <item>complex_matrix</item>
+      <item>complex_vector</item>
+      <item>complex_row_vector</item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <DetectSpaces />
+        <DetectChar attribute="Comment" context="Hash comment" char="#"/>
+        <Detect2Chars attribute="Comment" context="C-style comment" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="Block comment" char="/" char1="*" beginRegion="Comment"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\btarget\s*\+=" />
+        <DetectChar attribute="Operator" context="After less-than" char="&lt;" />
+        <DetectChar attribute="Punctuation" context="After comma" char="," />
+        <DetectChar attribute="Operator" context="After Right Paren" char=")" />
+        <RegExpr attribute="Keyword" context="#stay" String="\b(functions|(transformed\s+)?(data|parameters)|model|generated\s+quantities)\b" />
+        <keyword attribute="Control Flow" context="#stay" String="controlflow" />
+        <keyword attribute="Keyword" context="#stay" String="keywords" />
+        <keyword attribute="Data Type" context="#stay" String="types" />
+        <RegExpr attribute="Identifier" context="#stay" String="[A-Za-z][A-Za-z0-9_]*" />
+        <RegExpr attribute="Complex" context="#stay" String="(\d+(\.\d+)?|\.\d+)([eE][+-]?\d+)?i" />
+        <Float attribute="Real" />
+        <Int attribute="Int" />
+        <DetectChar attribute="Punctuation" context="#stay" char="{" beginRegion="Brace1" />
+        <DetectChar attribute="Punctuation" context="#stay" char="}" endRegion="Brace1" />
+        <DetectChar attribute="String" context="String" char="&quot;" />
+        <RegExpr attribute="Assignment" context="#stay" String="([+-]?=|\.?[*/]=)" />
+        <RegExpr attribute="Operator" context="#stay" String="(:|\?|\|\||&amp;&amp;|==|!=|&lt;=?|&gt;=?|\+|-|\.?\*|\.?/|%|\\|'|^)" />
+        <AnyChar attribute="Punctuation" context="#stay" String="[]()" />
+      </context>
+      <context attribute="String" lineEndContext="#stay" name="String">
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Hash comment">
+        <DetectSpaces />
+        <IncludeRules context="##Comments" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="C-style comment">
+        <DetectSpaces />
+        <IncludeRules context="##Comments" />
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="Block comment">
+        <DetectSpaces />
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+        <WordDetect attribute="Doc Tag" String="@return" context="#stay" />
+        <WordDetect attribute="Doc Tag" String="@param" context="#stay" />
+        <IncludeRules context="##Comments" />
+      </context>
+      <context attribute="Normal Text" name="After comma" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop" >
+        <DetectSpaces />
+        <RegExpr context="Upper Bound" String="upper\s*=" lookAhead="true" />
+      </context>
+      <context attribute="Normal Text" name="After less-than" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop" >
+        <DetectSpaces />
+        <RegExpr context="Upper Bound" String="upper\s*=" lookAhead="true" />
+        <RegExpr context="Lower Bound" String="lower\s*=" lookAhead="true" />
+      </context>
+      <context attribute="Normal Text" name="After Right Paren" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop" >
+        <DetectSpaces />
+        <RegExpr context="Truncation" String="T\s*\[" lookAhead="true" />
+      </context>
+      <context attribute="Normal Text" name="Upper Bound" lineEndContext="#stay" >
+        <StringDetect attribute="Keyword" String="upper" context="#stay" />
+        <DetectChar attribute="Punctuation" char="=" context="#pop" />
+      </context>
+      <context attribute="Normal Text" name="Lower Bound" lineEndContext="#stay" >
+        <StringDetect attribute="Keyword" String="lower" context="#stay" />
+        <DetectChar attribute="Punctuation" char="=" context="#pop" />
+      </context>
+      <context attribute="Normal Text" name="Truncation" lineEndContext="#stay" >
+        <DetectChar attribute="Keyword" char="T" context="#stay" />
+        <DetectChar attribute="Punctuation" char="[" context="#pop" />
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"  defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="false"/>
+      <itemData name="Keyword"      defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Data Type"    defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Int"          defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="Real"         defStyleNum="dsFloat" spellChecking="false"/>
+      <itemData name="Complex"      defStyleNum="dsFloat" spellChecking="false"/>
+      <itemData name="String"       defStyleNum="dsString"/>
+      <itemData name="Comment"      defStyleNum="dsComment"/>
+      <itemData name="Assignment"   defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Operator"     defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Punctuation"  defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Identifier"   defStyleNum="dsNormal" spellChecking="false" />
+      <itemData name="Doc Tag"      defStyleNum="dsAnnotation" spellChecking="false" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="//" />
+      <comment name="multiLine" start="/*" end="*/" region="Comment" />
+    </comments>
+    <keywords casesensitive="1" />
+  </general>
+</language>
+<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
diff --git a/syntax/stata.xml b/syntax/stata.xml
--- a/syntax/stata.xml
+++ b/syntax/stata.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="Stata" version="12" kateversion="5.0" section="Scientific" extensions="*.do;*.ado;*.doh;*.DO;*.ADO;*.DOH"
  casesensitive="1" priority="5" author="Larry Radbill (Larry.Radbill gmail com)" license="LGPL" >
 
diff --git a/syntax/swift.xml b/syntax/swift.xml
--- a/syntax/swift.xml
+++ b/syntax/swift.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
     <!ENTITY int "(?:[0-9]++(_++[0-9]++)*+)">
     <!ENTITY hex "(?:[0-9a-fA-F]++(_++[0-9a-fA-F]++)*+)">
diff --git a/syntax/systemverilog.xml b/syntax/systemverilog.xml
new file mode 100644
--- /dev/null
+++ b/syntax/systemverilog.xml
@@ -0,0 +1,993 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--***********************************************************************-->
+<!-- $Id: systemverilog.xml 10 2009-06-25 03:41:39Z seanoboyle $            -->
+<!--***********************************************************************-->
+<!--  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 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 Kate Editor    -->
+<!-- Description:  This file contains the SV keywords defined in the       -->
+<!--               IEEE1800-2009 Draft Standard in the format expected by  -->
+<!--               the Kate Editor.                                        -->
+<!--                                                                       -->
+<!-- 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.xml                                               -->
+<!-- $LastChangedBy: seanoboyle $                                          -->
+<!-- $LastChangedDate: 2009-06-24 20:41:39 -0700 (Wed, 24 Jun 2009) $      -->
+<!-- $LastChangedRevision: 10 $                                             -->
+<!--                                                                       -->
+<!--***********************************************************************-->
+<!DOCTYPE language>
+<language name="SystemVerilog" version="11" kateversion="5.0" section="Hardware" extensions="*.sv;*.svh" mimetype="text/x-systemverilog-src" author="Sean O'Boyle (seanoboyle@intelligentdv.com)" license="GPLv3+">
+  <highlighting>
+    <list name="key_deprecated">
+       <item>defparam</item>
+       <item>deassign</item>
+    </list>
+
+    <list name="key_dpi">
+       <item>DPI</item>
+       <item>DPI-C</item>
+       <item>import</item>
+       <item>export</item>
+       <item>context</item>
+    </list>
+
+    <list name="key_assert">
+       <item>assert</item>
+       <item>assume</item>
+       <item>cover</item>
+       <item>expect</item>
+       <item>disable</item>
+       <item>iff</item>
+       <item>binsof</item>
+       <item>intersect</item>
+       <item>first_match</item>
+       <item>throughout</item>
+       <item>within</item>
+    </list>
+
+    <list name="key_coverage">
+       <item>coverpoint</item>
+       <item>cross</item>
+       <item>wildcard</item>
+       <item>bins</item>
+       <item>ignore_bins</item>
+       <item>illegal_bins</item>
+    </list>
+
+    <list name="key_generator">
+       <item>genvar</item>
+    </list>
+
+    <list name="key_conditional">
+       <item>if</item>
+       <item>else</item>
+       <item>unique</item>
+       <item>priority</item>
+       <item>matches</item>
+    </list>
+
+    <list name="key_case">
+       <item>default</item>
+    </list>
+
+    <list name="key_loop">
+       <item>forever</item>
+       <item>repeat</item>
+       <item>while</item>
+       <item>for</item>
+       <item>do</item>
+       <item>foreach</item>
+       <item>break</item>
+       <item>continue</item>
+       <item>return</item>
+    </list>
+
+    <list name="key_specify">
+       <item>pulsestyle_onevent</item>
+       <item>pulsestyle_ondetect</item>
+       <item>noshowcancelled</item>
+       <item>showcancelled</item>
+       <item>ifnone</item>
+    </list>
+
+    <list name="key_procblock">
+       <item>initial</item>
+       <item>final</item>
+       <item>always</item>
+       <item>always_comb</item>
+       <item>always_ff</item>
+       <item>always_latch</item>
+    </list>
+
+    <list name="key_contassign">
+       <item>alias</item>
+       <item>assign</item>
+       <item>force</item>
+       <item>release</item>
+    </list>
+
+    <list name="key_event">
+       <item>posedge</item>
+       <item>negedge</item>
+       <item>edge</item>
+       <item>wait</item>
+       <item>wait_order</item>
+    </list>
+
+    <list name="key_time">
+       <item>timeunit</item>
+       <item>timeprecision</item>
+       <item>s</item>
+       <item>ms</item>
+       <item>ns</item>
+       <item>us</item>
+       <item>ns</item>
+       <item>ps</item>
+       <item>fs</item>
+       <item>step</item>
+    </list>
+
+    <list name="key_class">
+       <item>new</item>
+       <item>extends</item>
+       <item>this</item>
+       <item>super</item>
+       <item>protected</item>
+       <item>local</item>
+       <item>rand</item>
+       <item>randc</item>
+       <item>bind</item>
+    </list>
+
+    <list name="key_constraint">
+       <item>constraint</item>
+       <item>solve</item>
+       <item>before</item>
+       <item>dist</item>
+       <item>inside</item>
+       <item>with</item>
+    </list>
+
+    <list name="key_methods">
+       <item>virtual</item>
+       <item>pure</item>
+       <item>extern</item>
+       <item>forkjoin</item>
+    </list>
+
+    <list name="key_config">
+       <item>design</item>
+       <item>instance</item>
+       <item>cell</item>
+       <item>liblist</item>
+       <item>use</item>
+    </list>
+
+    <list name="key_library">
+       <item>library</item>
+       <item>incdir</item>
+       <item>include</item>
+    </list>
+
+    <list name="key_interface">
+       <item>modport</item>
+    </list>
+
+    <list name="key_checker">
+        <item>sync_accept_on</item>
+        <item>reject_on</item>
+        <item>accept_on</item>
+        <item>sync_reject_on</item>
+        <item>restrict</item>
+        <item>let</item>
+        <item>until</item>
+        <item>until_with</item>
+        <item>unique0</item>
+        <item>eventually</item>
+        <item>s_until</item>
+        <item>s_always</item>
+        <item>s_eventually</item>
+        <item>s_nexttime</item>
+        <item>s_until_with</item>
+        <item>global</item>
+        <item>untyped</item>
+        <item>implies</item>
+        <item>weak</item>
+        <item>strong</item>
+        <item>nexttime</item>
+    </list>
+
+    <list name="key_types">
+       <!-- parameters -->
+       <item>parameter</item>
+       <item>localparam</item>
+       <item>specparam</item>
+       <!-- port direction -->
+       <item>input</item>
+       <item>output</item>
+       <item>inout</item>
+       <item>ref</item>
+       <!-- integer atom type -->
+       <item>byte</item>
+       <item>shortint</item>
+       <item>int</item>
+       <item>integer</item>
+       <item>longint</item>
+       <item>time</item>
+       <!-- integer vector type -->
+       <item>bit</item>
+       <item>logic</item>
+       <item>reg</item>
+       <!-- net type -->
+       <item>supply0</item>
+       <item>supply1</item>
+       <item>tri</item>
+       <item>triand</item>
+       <item>trior</item>
+       <item>trireg</item>
+       <item>tri0</item>
+       <item>tri1</item>
+       <item>wire</item>
+       <item>uwire</item>
+       <item>wand</item>
+       <item>wor</item>
+       <!-- signing -->
+       <item>signed</item>
+       <item>unsigned</item>
+       <!-- noninteger type -->
+       <item>shortreal</item>
+       <item>real</item>
+       <item>realtime</item>
+       <!-- type reference -->
+       <item>type</item>
+       <item>void</item>
+       <!-- struct union -->
+       <item>struct</item>
+       <item>union</item>
+       <item>tagged</item>
+       <!-- modifier -->
+       <item>const</item>
+       <item>var</item>
+       <item>automatic</item>
+       <item>static</item>
+       <item>packed</item>
+       <item>vectored</item>
+       <item>scalared</item>
+       <!-- other types -->
+       <item>typedef</item>
+       <item>enum</item>
+       <item>string</item>
+       <item>chandle</item>
+       <item>event</item>
+       <!-- misc -->
+       <item>null</item>
+    </list>
+
+    <list name="key_preprocessor">
+        <item>`__FILE__</item>
+        <item>`__LINE__</item>
+        <item>`begin_keywords</item>
+        <item>`celldefine</item>
+        <item>`default_nettype</item>
+        <item>`define</item>
+        <item>`else</item>
+        <item>`elsif</item>
+        <item>`end_keywords</item>
+        <item>`endcelldefine</item>
+        <item>`endif</item>
+        <item>`ifdef</item>
+        <item>`ifndef</item>
+        <item>`include</item>
+        <item>`line</item>
+        <item>`nounconnected_drive</item>
+        <item>`pragma</item>
+        <item>`resetall</item>
+        <item>`timescale</item>
+        <item>`unconnected_drive</item>
+        <item>`undef</item>
+        <item>`undefineall</item>
+    </list>
+
+    <list name="key_system">
+        <item>$finish</item>
+        <item>$stop</item>
+        <item>$exit</item>
+        <item>$realtime</item>
+        <item>$stime</item>
+        <item>$time</item>
+        <item>$printtimescale</item>
+        <item>$timeformat</item>
+        <item>$bitstoreal</item>
+        <item>$realtobits</item>
+        <item>$bitstoshortreal</item>
+        <item>$shortrealtobits</item>
+        <item>$itor</item>
+        <item>$rtoi</item>
+        <item>$signed</item>
+        <item>$unsigned</item>
+        <item>$cast</item>
+        <item>$bits</item>
+        <item>$isunbounded</item>
+        <item>$typename</item>
+        <item>$unpacked_dimensions</item>
+        <item>$dimensions</item>
+        <item>$left</item>
+        <item>$right</item>
+        <item>$low</item>
+        <item>$high</item>
+        <item>$increment</item>
+        <item>$size</item>
+        <item>$clog2</item>
+        <item>$asin</item>
+        <item>$ln</item>
+        <item>$acos</item>
+        <item>$log10</item>
+        <item>$atan</item>
+        <item>$exp</item>
+        <item>$atan2</item>
+        <item>$sqrt</item>
+        <item>$hypot</item>
+        <item>$pow</item>
+        <item>$sinh</item>
+        <item>$floor</item>
+        <item>$cosh</item>
+        <item>$ceil</item>
+        <item>$tanh</item>
+        <item>$sin</item>
+        <item>$asinh</item>
+        <item>$cos</item>
+        <item>$acosh</item>
+        <item>$tan</item>
+        <item>$atanh</item>
+        <item>$fatal</item>
+        <item>$error</item>
+        <item>$warning</item>
+        <item>$info</item>
+        <item>$fatal</item>
+        <item>$error</item>
+        <item>$warning</item>
+        <item>$info</item>
+        <item>$asserton</item>
+        <item>$assertoff</item>
+        <item>$assertkill</item>
+        <item>$assertpasson</item>
+        <item>$assertpassoff</item>
+        <item>$assertfailon</item>
+        <item>$assertfailoff</item>
+        <item>$assertnonvacuouson</item>
+        <item>$assertvacuousoff</item>
+        <item>$onehot</item>
+        <item>$onehot0</item>
+        <item>$isunknown</item>
+        <item>$sampled</item>
+        <item>$rose</item>
+        <item>$fell</item>
+        <item>$stable</item>
+        <item>$changed</item>
+        <item>$past</item>
+        <item>$countones</item>
+        <item>$past_gclk</item>
+        <item>$rose_gclk</item>
+        <item>$fell_gclk</item>
+        <item>$stable_gclk</item>
+        <item>$changed_gclk</item>
+        <item>$future_gclk</item>
+        <item>$rising_gclk</item>
+        <item>$falling_gclk</item>
+        <item>$steady_gclk</item>
+        <item>$changing_gclk</item>
+        <item>$coverage_control</item>
+        <item>$coverage_get_max</item>
+        <item>$coverage_get</item>
+        <item>$coverage_merge</item>
+        <item>$coverage_save</item>
+        <item>$get_coverage</item>
+        <item>$set_coverage_db_name</item>
+        <item>$load_coverage_db</item>
+        <item>$random</item>
+        <item>$dist_chi_square</item>
+        <item>$dist_erlang</item>
+        <item>$dist_exponential</item>
+        <item>$dist_normal</item>
+        <item>$dist_poisson</item>
+        <item>$dist_t</item>
+        <item>$dist_uniform</item>
+        <item>$q_initialize</item>
+        <item>$q_add</item>
+        <item>$q_remove</item>
+        <item>$q_full</item>
+        <item>$q_exam</item>
+        <item>$async$and$array</item>
+        <item>$async$and$plane</item>
+        <item>$async$nand$array</item>
+        <item>$async$nand$plane</item>
+        <item>$async$or$array</item>
+        <item>$async$or$plane</item>
+        <item>$async$nor$array</item>
+        <item>$async$nor$plane</item>
+        <item>$sync$and$array</item>
+        <item>$sync$and$plane</item>
+        <item>$sync$nand$array</item>
+        <item>$sync$nand$plane</item>
+        <item>$sync$or$array</item>
+        <item>$sync$or$plane</item>
+        <item>$sync$nor$array</item>
+        <item>$sync$nor$plane</item>
+        <item>$system</item>
+        <item>$display</item>
+        <item>$write</item>
+        <item>$displayb</item>
+        <item>$writeb</item>
+        <item>$displayh</item>
+        <item>$writeh</item>
+        <item>$displayo</item>
+        <item>$writeo</item>
+        <item>$strobe</item>
+        <item>$monitor</item>
+        <item>$strobeb</item>
+        <item>$monitorb</item>
+        <item>$strobeh</item>
+        <item>$monitorh</item>
+        <item>$strobeo</item>
+        <item>$monitoro</item>
+        <item>$monitoroff</item>
+        <item>$monitoron</item>
+        <item>$fclose</item>
+        <item>$fopen</item>
+        <item>$fdisplay</item>
+        <item>$fwrite</item>
+        <item>$fdisplayb</item>
+        <item>$fwriteb</item>
+        <item>$fdisplayh</item>
+        <item>$fwriteh</item>
+        <item>$fdisplayo</item>
+        <item>$fwriteo</item>
+        <item>$fstrobe</item>
+        <item>$fmonitor</item>
+        <item>$fstrobeb</item>
+        <item>$fmonitorb</item>
+        <item>$fstrobeh</item>
+        <item>$fmonitorh</item>
+        <item>$fstrobeo</item>
+        <item>$fmonitoro</item>
+        <item>$swrite</item>
+        <item>$sformat</item>
+        <item>$swriteb</item>
+        <item>$sformatf</item>
+        <item>$swriteh</item>
+        <item>$fgetc</item>
+        <item>$swriteo</item>
+        <item>$ungetc</item>
+        <item>$fscanf</item>
+        <item>$fgets</item>
+        <item>$fread</item>
+        <item>$sscanf</item>
+        <item>$fseek</item>
+        <item>$rewind</item>
+        <item>$fflush</item>
+        <item>$ftell</item>
+        <item>$feof</item>
+        <item>$ferror</item>
+        <item>$readmemb</item>
+        <item>$readmemh</item>
+        <item>$writememb</item>
+        <item>$writememh</item>
+        <item>$test$plusargs</item>
+        <item>$value$plusargs</item>
+        <item>$dumpfile</item>
+        <item>$dumpvars</item>
+        <item>$dumpoff</item>
+        <item>$dumpon</item>
+        <item>$dumpall</item>
+        <item>$dumplimit</item>
+        <item>$dumpflush</item>
+        <item>$dumpports</item>
+        <item>$dumpportsoff</item>
+        <item>$dumpportson</item>
+        <item>$dumpportsall</item>
+        <item>$dumpportslimit</item>
+        <item>$dumpportsflush</item>
+    </list>
+
+    <list name="key_gates">
+       <item>pullup</item>
+       <item>pulldown</item>
+       <item>cmos</item>
+       <item>rcmos</item>
+       <item>nmos</item>
+       <item>pmos</item>
+       <item>rnmos</item>
+       <item>rpmos</item>
+       <item>and</item>
+       <item>nand</item>
+       <item>or</item>
+       <item>nor</item>
+       <item>xor</item>
+       <item>xnor</item>
+       <item>not</item>
+       <item>buf</item>
+       <item>tran</item>
+       <item>rtran</item>
+       <item>tranif0</item>
+       <item>tranif1</item>
+       <item>rtranif0</item>
+       <item>rtranif1</item>
+       <item>bufif0</item>
+       <item>bufif1</item>
+       <item>notif0</item>
+       <item>notif1</item>
+    </list>
+
+    <list name="key_strength">
+       <!-- drive strength -->
+       <item>strong0</item>
+       <item>strong1</item>
+       <item>pull0</item>
+       <item>pull1</item>
+       <item>weak0</item>
+       <item>weak1</item>
+       <item>highz0</item>
+       <item>highz1</item>
+       <!-- charge strength -->
+       <item>small</item>
+       <item>medium</item>
+       <item>large</item>
+    </list>
+    <list name="key_stdlib">
+       <item>randomize</item>
+       <item>mailbox</item>
+       <item>semaphore</item>
+       <item>put</item>
+       <item>get</item>
+       <item>try_put</item>
+       <item>try_get</item>
+       <item>peek</item>
+       <item>try_peek</item>
+       <item>process</item>
+       <item>state</item>
+       <item>self</item>
+       <item>status</item>
+       <item>kill</item>
+       <item>await</item>
+       <item>suspend</item>
+       <item>resume</item>
+       <!-- Array -->
+       <item>size</item>
+       <item>delete</item>
+       <item>insert</item>
+       <item>num</item>
+       <item>first</item>
+       <item>last</item>
+       <item>next</item>
+       <item>prev</item>
+       <item>pop_front</item>
+       <item>pop_back</item>
+       <item>push_front</item>
+       <item>push_back</item>
+       <item>find</item>
+       <item>find_index</item>
+       <item>find_first</item>
+       <item>find_last</item>
+       <item>find_last_index</item>
+       <item>min</item>
+       <item>max</item>
+       <item>unique_index</item>
+       <item>reverse</item>
+       <item>sort</item>
+       <item>rsort</item>
+       <item>shuffle</item>
+       <item>sum</item>
+       <item>product</item>
+       <!-- List_pkg -->
+       <item>List</item>
+       <item>List_Iterator</item>
+       <item>neq</item>
+       <item>eq</item>
+       <item>data</item>
+       <item>empty</item>
+       <item>front</item>
+       <item>back</item>
+       <item>start</item>
+       <item>finish</item>
+       <item>insert_range</item>
+       <item>erase</item>
+       <item>erase_range</item>
+       <item>set</item>
+       <item>swap</item>
+       <item>clear</item>
+       <item>purge</item>
+    </list>
+
+    <list name="begin">
+       <item>begin</item>
+    </list>
+    <list name="end">
+       <item>end</item>
+    </list>
+    <list name="package">
+       <item>package</item>
+    </list>
+    <list name="endpackage">
+       <item>endpackage</item>
+    </list>
+    <list name="macromodule">
+       <item>macromodule</item>
+    </list>
+    <list name="module">
+       <item>module</item>
+    </list>
+    <list name="endmodule">
+       <item>endmodule</item>
+    </list>
+    <list name="generate">
+       <item>generate</item>
+    </list>
+    <list name="endgenerate">
+       <item>endgenerate</item>
+    </list>
+    <list name="program">
+       <item>program</item>
+    </list>
+    <list name="endprogram">
+       <item>endprogram</item>
+    </list>
+    <list name="class">
+       <item>class</item>
+    </list>
+    <list name="endclass">
+       <item>endclass</item>
+    </list>
+    <list name="function">
+       <item>function</item>
+    </list>
+    <list name="endfunction">
+       <item>endfunction</item>
+    </list>
+    <list name="case">
+       <item>case</item>
+    </list>
+    <list name="casex">
+       <item>casex</item>
+    </list>
+    <list name="casez">
+       <item>casez</item>
+    </list>
+    <list name="randcase">
+       <item>randcase</item>
+    </list>
+    <list name="endcase">
+       <item>endcase</item>
+    </list>
+    <list name="interface">
+       <item>interface</item>
+    </list>
+    <list name="endinterface">
+       <item>endinterface</item>
+    </list>
+    <list name="clocking">
+       <item>clocking</item>
+    </list>
+    <list name="endclocking">
+       <item>endclocking</item>
+    </list>
+    <list name="task">
+       <item>task</item>
+    </list>
+    <list name="endtask">
+       <item>endtask</item>
+    </list>
+    <list name="primitive">
+       <item>primitive</item>
+    </list>
+    <list name="endprimitive">
+       <item>endprimitive</item>
+    </list>
+    <list name="fork">
+       <item>fork</item>
+    </list>
+    <list name="join">
+       <item>join</item>
+    </list>
+    <list name="join_any">
+       <item>join_any</item>
+    </list>
+    <list name="join_none">
+       <item>join_none</item>
+    </list>
+    <list name="covergroup">
+       <item>covergroup</item>
+    </list>
+    <list name="endgroup">
+       <item>endgroup</item>
+    </list>
+    <list name="checker">
+       <item>checker</item>
+    </list>
+    <list name="endchecker">
+       <item>endchecker</item>
+    </list>
+    <list name="property">
+       <item>property</item>
+    </list>
+    <list name="endproperty">
+       <item>endproperty</item>
+    </list>
+    <list name="randsequence">
+       <item>randsequence</item>
+    </list>
+    <list name="sequence">
+       <item>sequence</item>
+    </list>
+    <list name="endsequence">
+       <item>endsequence</item>
+    </list>
+    <list name="specify">
+       <item>specify</item>
+    </list>
+    <list name="endspecify">
+       <item>endspecify</item>
+    </list>
+    <list name="config">
+       <item>config</item>
+    </list>
+    <list name="endconfig">
+       <item>endconfig</item>
+    </list>
+    <list name="table">
+       <item>table</item>
+    </list>
+    <list name="endtable">
+       <item>endtable</item>
+    </list>
+    <list name="extern">
+       <item>extern</item>
+    </list>
+    <list name="pure">
+       <item>pure</item>
+    </list>
+    <list name="typedef">
+       <item>typedef</item>
+    </list>
+    <list name="import">
+       <item>import</item>
+    </list>
+
+
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1"/>
+        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"/>
+        <RegExpr attribute="Block Keyword" context="Block Name" String="begin\ *:" beginRegion="beginEnd"/>
+        <keyword attribute="Method Keyword" context="Extern Context" String="extern"/>
+        <keyword attribute="Method Keyword" context="Extern Context" String="pure"/>
+        <keyword attribute="Method Keyword" context="Extern Context" String="import"/>
+        <keyword attribute="Type Keyword" context="Typedef Context" String="typedef"/>
+        <keyword attribute="Block Keyword" context="#stay" String="begin" beginRegion="beginEnd"/>
+        <keyword attribute="Block Keyword" context="#stay" String="end" endRegion="beginEnd"/>
+        <keyword attribute="Block Keyword" context="#stay" String="package" beginRegion="packageEndpackage"/>
+        <keyword attribute="Block Keyword" context="#stay" String="endpackage" endRegion="packageEndpackage"/>
+        <keyword attribute="Block Keyword" context="#stay" String="macromodule" beginRegion="moduleEndmodule"/>
+        <keyword attribute="Block Keyword" context="#stay" String="module" beginRegion="moduleEndmodule"/>
+        <keyword attribute="Block Keyword" context="#stay" String="endmodule" endRegion="moduleEndmodule"/>
+        <keyword attribute="Block Keyword" context="#stay" String="generate" beginRegion="generateEndgenerate"/>
+        <keyword attribute="Block Keyword" context="#stay" String="endgenerate" endRegion="generateEndgenerate"/>
+        <keyword attribute="Block Keyword" context="#stay" String="program" beginRegion="programEndprogram"/>
+        <keyword attribute="Block Keyword" context="#stay" String="endprogram" endRegion="programEndprogram"/>
+        <keyword attribute="Block Keyword" context="#stay" String="class" beginRegion="classEndclass"/>
+        <keyword attribute="Block Keyword" context="#stay" String="endclass" endRegion="classEndclass"/>
+        <keyword attribute="Block Keyword" context="#stay" String="function" beginRegion="functionEndfunction"/>
+        <keyword attribute="Block Keyword" context="#stay" String="endfunction" endRegion="functionEndfunction"/>
+        <keyword attribute="Block Keyword" context="#stay" String="case" beginRegion="caseEndcase"/>
+        <keyword attribute="Block Keyword" context="#stay" String="casex" beginRegion="caseEndcase"/>
+        <keyword attribute="Block Keyword" context="#stay" String="casez" beginRegion="caseEndcase"/>
+        <keyword attribute="Block Keyword" context="#stay" String="randcase" beginRegion="caseEndcase"/>
+        <keyword attribute="Block Keyword" context="#stay" String="endcase" endRegion="caseEndcase"/>
+        <keyword attribute="Block Keyword" context="#stay" String="interface" beginRegion="interfaceEndinterface"/>
+        <keyword attribute="Block Keyword" context="#stay" String="endinterface" endRegion="interfaceEndinterface"/>
+        <keyword attribute="Block Keyword" context="#stay" String="clocking" beginRegion="clockingEndclocking"/>
+        <keyword attribute="Block Keyword" context="#stay" String="endclocking" endRegion="clockingEndclocking"/>
+        <keyword attribute="Block Keyword" context="#stay" String="task" beginRegion="taskEndtask"/>
+        <keyword attribute="Block Keyword" context="#stay" String="endtask" endRegion="taskEndtask"/>
+        <keyword attribute="Block Keyword" context="#stay" String="primitive" beginRegion="primitiveEndprimitive"/>
+        <keyword attribute="Block Keyword" context="#stay" String="endprimitive" endRegion="primitiveEndprimitive"/>
+        <keyword attribute="Block Keyword" context="#stay" String="fork" beginRegion="forkJoin"/>
+        <keyword attribute="Block Keyword" context="#stay" String="join" endRegion="forkJoin"/>
+        <keyword attribute="Block Keyword" context="#stay" String="join_any" endRegion="forkJoin"/>
+        <keyword attribute="Block Keyword" context="#stay" String="join_none" endRegion="forkJoin"/>
+        <keyword attribute="Block Keyword" context="#stay" String="covergroup" beginRegion="covergroupEndgroup"/>
+        <keyword attribute="Block Keyword" context="#stay" String="endgroup" endRegion="covergroupEndgroup"/>
+        <keyword attribute="Block Keyword" context="#stay" String="checker" beginRegion="checkerEndchecker"/>
+        <keyword attribute="Block Keyword" context="#stay" String="endchecker" endRegion="checkerEndchecker"/>
+        <keyword attribute="Block Keyword" context="#stay" String="property" beginRegion="propertyEndproperty"/>
+        <keyword attribute="Block Keyword" context="#stay" String="endproperty" endRegion="propertyEndproperty"/>
+        <keyword attribute="Block Keyword" context="#stay" String="randsequence" beginRegion="sequenceEndsequence"/>
+        <keyword attribute="Block Keyword" context="#stay" String="sequence" beginRegion="sequenceEndsequence"/>
+        <keyword attribute="Block Keyword" context="#stay" String="endsequence" endRegion="sequenceEndsequence"/>
+        <keyword attribute="Block Keyword" context="#stay" String="specify" beginRegion="specifyEndspecify"/>
+        <keyword attribute="Block Keyword" context="#stay" String="endspecify" endRegion="specifyEndspecify"/>
+        <keyword attribute="Block Keyword" context="#stay" String="config" beginRegion="configEndconfig"/>
+        <keyword attribute="Block Keyword" context="#stay" String="endconfig" endRegion="configEndconfig"/>
+        <keyword attribute="Block Keyword" context="#stay" String="table" beginRegion="tableEndtable"/>
+        <keyword attribute="Block Keyword" context="#stay" String="endtable" endRegion="tableEndtable"/>
+        <keyword attribute="Deprecated Keyword" context="#stay" String="key_deprecated"/>
+        <keyword attribute="DPI Keyword" context="#stay" String="key_dpi"/>
+        <keyword attribute="Assert Keyword" context="#stay" String="key_assert"/>
+        <keyword attribute="Coverage Keyword" context="#stay" String="key_coverage"/>
+        <keyword attribute="Generator Keyword" context="#stay" String="key_generator"/>
+        <keyword attribute="Confitional Keyword" context="#stay" String="key_conditional"/>
+        <keyword attribute="Case Keyword" context="#stay" String="key_case"/>
+        <keyword attribute="Loop Keyword" context="#stay" String="key_loop"/>
+        <keyword attribute="Specify Keyword" context="#stay" String="key_specify"/>
+        <keyword attribute="Process Block Keyword" context="#stay" String="key_procblock"/>
+        <keyword attribute="Continuous Assign Keyword" context="#stay" String="key_contassign"/>
+        <keyword attribute="Event Keyword" context="#stay" String="key_event"/>
+        <keyword attribute="Time Keyword" context="#stay" String="key_time"/>
+        <keyword attribute="Class Keyword" context="#stay" String="key_class"/>
+        <keyword attribute="Constraint Keyword" context="#stay" String="key_constraint"/>
+        <keyword attribute="Method Keyword" context="#stay" String="key_methods"/>
+        <keyword attribute="Config Keyword" context="#stay" String="key_config"/>
+        <keyword attribute="Library Keyword" context="#stay" String="key_library"/>
+        <keyword attribute="Interface Keyword" context="#stay" String="key_interface"/>
+        <keyword attribute="Checker Keyword" context="#stay" String="key_checker"/>
+        <keyword attribute="Data Type Keyword" context="#stay" String="key_types"/>
+        <keyword attribute="Preprocessor Keyword" context="#stay" String="key_preprocessor"/>
+        <keyword attribute="System Task Keyword" context="#stay" String="key_system"/>
+        <keyword attribute="Drive/Charge Strength Keyword" context="#stay" String="key_strength"/>
+        <keyword attribute="Gate Instantiation Keyword" context="#stay" String="key_gates"/>
+        <keyword attribute="Standard Library" context="#stay" String="key_stdlib"/>
+
+        <RegExpr attribute="Decimal" context="#stay" String="[\d_]*'d[\d_]+"/>
+        <RegExpr attribute="Octal" context="#stay" String="[\d_]*'o[0-7xXzZ_]+"/>
+        <RegExpr attribute="Hex" context="#stay" String="[\d_]*'h[\da-fA-FxXzZ_]+"/>
+        <RegExpr attribute="Binary" context="#stay" String="[\d_]*'b[01_zZxX]+"/>
+        <Float attribute="Float" context="#stay"/>
+        <Int attribute="Integer" context="#stay"/>
+
+        <RegExpr attribute="Port Connection" context="#stay" String="[^\w$]\.[a-zA-Z]+[\w$]*"/>
+
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <IncludeRules context="FindComments" />
+        <AnyChar attribute="Symbol" context="#stay" String="!%&amp;()+,-&lt;=+/:;&gt;?[]^{|}~@"/>
+
+        <DetectChar attribute="Preprocessor" context="Preprocessor" char="`" column="0"/>
+        <RegExpr attribute="Preprocessor" context="#stay" String="\`[a-zA-Z_]+\w*" />
+        <RegExpr attribute="PLI Task" context="#stay" String="\$[a-zA-Z_]+\w*"/>
+        <RegExpr attribute="Delay" context="#stay" String="#[\d_]+"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Extern Context">
+         <keyword attribute="Method Keyword" context="#stay" String="key_methods"/>
+         <keyword attribute="DPI Keyword" context="#stay" String="key_dpi"/>
+         <keyword attribute="Class Keyword" context="#stay" String="key_class"/>
+	      <keyword attribute="Constraint Keyword" context="#stay" String="key_constraint"/>
+         <keyword attribute="Block Keyword" context="#pop" String="function"/>
+         <keyword attribute="Block Keyword" context="#pop" String="task"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Typedef Context">
+         <keyword attribute="Block Keyword" context="#pop" String="class"/>
+         <keyword attribute="Type Keyword" context="#pop" String="key_types"/>
+         <keyword attribute="Interface Keyword" context="#pop" String="key_interface"/>
+         <keyword attribute="Checker Keyword" context="#pop" String="key_checker"/>
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <LineContinue attribute="String" context="#stay"/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+
+      <context name="FindComments" attribute="Normal Text" lineEndContext="#pop">
+        <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="/" lookAhead="true" />
+        <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true" />
+      </context>
+
+      <context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="#pop!Commentar 1" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="#pop!Commentar 2" char="/" char1="*" beginRegion="Comment"/>
+      </context>
+
+      <context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
+        <LineContinue attribute="Comment" context="#stay"/>
+        <DetectSpaces />
+        <IncludeRules context="##Comments" />
+        <DetectIdentifier />
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
+        <DetectSpaces />
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+        <IncludeRules context="##Comments" />
+        <DetectIdentifier />
+      </context>
+     
+      <context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor">
+        <LineContinue attribute="Preprocessor" context="#stay"/>
+        <RangeDetect attribute="Prep. Lib" context="#stay" char="&quot;" char1="&quot;"/>
+        <RangeDetect attribute="Prep. Lib" context="#stay" char="&lt;" char1="&gt;"/>
+        <IncludeRules context="FindComments" />
+      </context>
+
+      <context attribute="Block Name" lineEndContext="#pop" name="Block Name">
+          <RegExpr attribute="Data Type Keyword" context="#pop" String="[^ ]+"/>
+      </context>
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Block Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="DPI Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Assert Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Coverage Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Generator Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Confitional Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Case Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Loop Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Specify Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Process Block Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Continuous Assign Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Event Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Time Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Class Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Constraint Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Method Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Config Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Library Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Interface Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Checker Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Type Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Preprocessor Keyword" defStyleNum="dsOthers"/>
+      <itemData name="Preprocessor" defStyleNum="dsOthers"/>
+      <itemData name="System Task Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Data Type Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Drive/Charge Strength Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Gate Instantiation Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Decimal" defStyleNum="dsBaseN"/>
+      <itemData name="Octal" defStyleNum="dsBaseN"/>
+      <itemData name="Hex" defStyleNum="dsBaseN"/>
+      <itemData name="Binary" defStyleNum="dsBaseN"/>
+      <itemData name="Float" defStyleNum="dsFloat"/>
+      <itemData name="String" defStyleNum="dsString"/>
+      <itemData name="String Char" defStyleNum="dsChar"/>
+      <itemData name="Comment" defStyleNum="dsComment"/>
+      <itemData name="Deprecated Keyword" defStyleNum="dsError"/>
+      <itemData name="Symbol" defStyleNum="dsNormal"/>
+      <itemData name="Prep. Lib" defStyleNum="dsFloat"/>
+      <itemData name="PLI Task" defStyleNum="dsDataType"/>
+      <itemData name="Integer" defStyleNum="dsDecVal"/>
+      <itemData name="Delay" defStyleNum="dsBaseN"/>
+      <itemData name="Block Name" defStyleNum="dsDataType"/>
+      <itemData name="Port Connection" defStyleNum="dsDataType"/>
+      <itemData name="Standard Library" defStyleNum="dsOthers"/>
+      </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="//" position="afterwhitespace" />
+      <comment name="multiLine" start="/*" end="*/" region="Comment"/>
+    </comments>
+    <keywords casesensitive="1"/>
+  </general>
+</language>
+<!-- kate: replace-tabs on; tab-width 2; indent-width 2; -->
diff --git a/syntax/tcl.xml b/syntax/tcl.xml
--- a/syntax/tcl.xml
+++ b/syntax/tcl.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 
 <!-- Authors: Alexander Dederer & JM. Philippe -->
 <!-- Copyright: BSD copyright & Irsid - Arcelor Innovation R&D -->
diff --git a/syntax/tcsh.xml b/syntax/tcsh.xml
--- a/syntax/tcsh.xml
+++ b/syntax/tcsh.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
         <!ENTITY funcname "[A-Za-z_:][A-Za-z0-9_:#&#37;@-]*">
         <!ENTITY varname  "[A-Za-z_][A-Za-z0-9_]*">
diff --git a/syntax/terraform.xml b/syntax/terraform.xml
new file mode 100644
--- /dev/null
+++ b/syntax/terraform.xml
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language>
+
+<language name="Terraform"
+          section="Sources"
+          version="3"
+          kateversion="5.0"
+          indenter="normal"
+          extensions="*.tf;*.tfvars"
+          mimetype="text/x-terraform"
+          priority="1"
+          author="Thuck (denisdoria@gmail.com)"
+          license="MIT">
+    <highlighting>
+        <list name="blocks">
+            <item>resource</item>
+            <item>data</item>
+            <item>variable</item>
+            <item>output</item>
+            <item>locals</item>
+            <item>module</item>
+            <item>provider</item>
+            <item>terraform</item>
+        </list>
+        <list name="sub blocks">
+            <item>dynamic</item>
+            <item>content</item>
+            <item>provisioner</item>
+            <item>required_providers</item>
+            <item>backend</item>
+        </list>
+        <list name="meta arguments">
+            <item>depends_on</item>
+            <item>count</item>
+            <item>for_each</item>
+            <!--<item>provider</item> needs context to behave like an argument -->
+            <item>lifecycle</item>
+        </list>
+        <list name="keywords">
+            <item>source</item>
+            <item>required_version</item>
+            <!--<item>index</item> can also be a function-->
+        </list>
+
+        <list name="controlflow">
+            <item>for</item>
+            <item>in</item>
+            <item>if</item>
+        </list>
+
+        <list name="variables">
+            <item>var</item>
+            <item>local</item>
+            <item>each</item>
+            <item>self</item>
+        </list>
+        <list name="built in functions">
+            <item>abs</item>
+            <item>ceil</item>
+            <item>floor</item>
+            <item>log</item>
+            <item>max</item>
+            <item>min</item>
+            <item>parseint</item>
+            <item>pow</item>
+            <item>signum</item>
+            <item>chomp</item>
+            <item>format</item>
+            <item>formatlist</item>
+            <item>indent</item>
+            <item>join</item>
+            <item>lower</item>
+            <item>regex</item>
+            <item>regexall</item>
+            <item>replace</item>
+            <item>split</item>
+            <item>strrev</item>
+            <item>substr</item>
+            <item>title</item>
+            <item>trim</item>
+            <item>trimprefix</item>
+            <item>trimsuffix</item>
+            <item>trimspace</item>
+            <item>upper</item>
+            <item>alltrue</item>
+            <item>anytrue</item>
+            <item>chunklist</item>
+            <item>coalesce</item>
+            <item>coalescelist</item>
+            <item>compact</item>
+            <item>concat</item>
+            <item>contains</item>
+            <item>distinct</item>
+            <item>element</item>
+            <item>flatten</item>
+            <item>index</item>
+            <item>keys</item>
+            <item>length</item>
+            <item>lookup</item>
+            <item>matchkeys</item>
+            <item>merge</item>
+            <item>one</item>
+            <item>range</item>
+            <item>reverse</item>
+            <item>setintersection</item>
+            <item>setproduct</item>
+            <item>setsubtract</item>
+            <item>setunion</item>
+            <item>slice</item>
+            <item>sort</item>
+            <item>sum</item>
+            <item>transpose</item>
+            <item>values</item>
+            <item>zipmap</item>
+            <item>base64decode</item>
+            <item>base64encode</item>
+            <item>base64gzip</item>
+            <item>csvdecode</item>
+            <item>jsondecode</item>
+            <item>jsonencode</item>
+            <item>textdecodebase64</item>
+            <item>textencodebase64</item>
+            <item>urlencode</item>
+            <item>yamldecode</item>
+            <item>yamlencode</item>
+            <item>abspath</item>
+            <item>dirname</item>
+            <item>pathexpand</item>
+            <item>basename</item>
+            <item>file</item>
+            <item>fileexists</item>
+            <item>fileset</item>
+            <item>filebase64</item>
+            <item>templatefile</item>
+            <item>formatdate</item>
+            <item>timeadd</item>
+            <item>timestamp</item>
+            <item>base64sha256</item>
+            <item>base64sha512</item>
+            <item>bcrypt</item>
+            <item>filebase64sha256</item>
+            <item>filebase64sha512</item>
+            <item>filemd5</item>
+            <item>filesha1</item>
+            <item>filesha256</item>
+            <item>filesha512</item>
+            <item>md5</item>
+            <item>rsadecrypt</item>
+            <item>sha1</item>
+            <item>sha256</item>
+            <item>sha512</item>
+            <item>uuid</item>
+            <item>uuidv5</item>
+            <item>cidrhost</item>
+            <item>cidrnetmask</item>
+            <item>cidrsubnet</item>
+            <item>cidrsubnets</item>
+            <item>can</item>
+            <item>defaults</item>
+            <item>nonsensitive</item>
+            <item>sensitive</item>
+            <item>tobool</item>
+            <item>tolist</item>
+            <item>tomap</item>
+            <item>tonumber</item>
+            <item>toset</item>
+            <item>tostring</item>
+            <item>try</item>
+            <item>optional</item> <!-- not exactly a function -->
+        </list>
+        <list name="primitive types">
+            <item>string</item>
+            <item>number</item>
+            <item>bool</item>
+        </list>
+        <list name="complex types">
+            <item>list</item>
+            <item>map</item>
+            <item>set</item>
+        </list>
+        <list name="structural types">
+            <item>object</item>
+            <item>tuple</item>
+        </list>
+        <list name="dynamic types">
+            <item>any</item>
+        </list>
+        <list name="special vars">
+            <item>true</item>
+            <item>false</item>
+            <item>null</item>
+        </list>
+
+        <contexts>
+            <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+                <DetectSpaces />
+
+                <keyword attribute="Control Flow" context="#stay" String="controlflow"/>
+                <keyword attribute="Keyword" context="#stay" String="keywords"/>
+                <keyword attribute="Meta Argument" context="#stay" String="meta arguments"/>
+                <keyword attribute="Block" context="#stay" String="blocks"/>
+                <keyword attribute="Sub Block" context="#stay" String="sub blocks"/>
+                <keyword attribute="Built In" context="#stay" String="built in functions" />
+                <keyword attribute="Variable" context="#stay" String="variables" />
+                <keyword attribute="Variable" context="#stay" String="special vars" />
+                <keyword attribute="Data Type" context="#stay" String="primitive types"/>
+                <keyword attribute="Data Type" context="#stay" String="complex types"/>
+                <keyword attribute="Data Type" context="#stay" String="structural types"/>
+                <keyword attribute="Data Type" context="#stay" String="dynamic types"/>
+                <DetectIdentifier />
+
+                <Float attribute="Float" context="#stay"/>
+                <Int attribute="Decimal" context="#stay"/>
+                <HlCHex attribute="Hex" context="#stay"/>
+                <HlCOct attribute="Octal" context="#stay"/>
+
+                <DetectChar attribute="String" context="DoubleQuoteString" char="&quot;"/>
+                <DetectChar attribute="Comment" char="#" context="Comment"/>
+                <StringDetect attribute="Operator" context="#stay" String="..." />
+                <AnyChar attribute="Operator" String="-+*/%\|=;&lt;&gt;!&amp;" context="#stay"/>
+
+            </context>
+
+            <context attribute="String" lineEndContext="#pop" name="DoubleQuoteString">
+                <Detect2Chars attribute="Special String" context="Interpolation" char="$" char1="{"/>
+                <DetectChar attribute="String" context="#pop" char="&quot;"/>
+            </context>
+
+            <context attribute="Variable" lineEndContext="#pop" name="Interpolation">
+                <DetectChar attribute="Special String" context="#pop" char="}"/>
+            </context>
+
+            <context attribute="Comment" lineEndContext="#pop" name="Comment">
+                <DetectSpaces/>
+                <IncludeRules context="##Comments"/>
+                <DetectIdentifier/>
+            </context>
+
+
+        </contexts>
+
+        <itemDatas>
+            <itemData name="Normal Text"    defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="Control Flow"   defStyleNum="dsControlFlow" spellChecking="false"/>
+            <itemData name="Keyword"        defStyleNum="dsKeyword" spellChecking="false"/>
+            <itemData name="Block"          defStyleNum="dsKeyword" spellChecking="false"/>
+            <itemData name="Sub Block"      defStyleNum="dsKeyword" spellChecking="false"/>
+            <itemData name="Meta Argument"  defStyleNum="dsAttribute" spellChecking="false"/>
+            <itemData name="Built In"       defStyleNum="dsBuiltIn" spellChecking="false" />
+            <itemData name="Operator"       defStyleNum="dsOperator" spellChecking="false" />
+            <itemData name="Variable"       defStyleNum="dsVariable" spellChecking="false" />
+            <itemData name="Data Type"      defStyleNum="dsDataType" spellChecking="false"/>
+            <itemData name="Decimal"        defStyleNum="dsDecVal" spellChecking="false"/>
+            <itemData name="Octal"          defStyleNum="dsBaseN" spellChecking="false"/>
+            <itemData name="Hex"            defStyleNum="dsBaseN" spellChecking="false"/>
+            <itemData name="Float"          defStyleNum="dsFloat" spellChecking="false"/>
+            <itemData name="String"         defStyleNum="dsString"/>
+            <itemData name="Special String" defStyleNum="dsSpecialString"/>
+            <itemData name="Comment"        defStyleNum="dsComment"/>
+        </itemDatas>
+    </highlighting>
+    <general>
+        <comments>
+            <comment name="singleLine" start="#" />
+        </comments>
+        <keywords casesensitive="true" />
+    </general>
+</language>
diff --git a/syntax/texinfo.xml b/syntax/texinfo.xml
--- a/syntax/texinfo.xml
+++ b/syntax/texinfo.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="Texinfo" extensions="*.texi" section="Markup" mimetype="application/x-texinfo" author="Daniel Franke (franke.daniel@gmail.com)" license="LGPL" version="3" kateversion="5.0">
 
   <highlighting>
diff --git a/syntax/toml.xml b/syntax/toml.xml
--- a/syntax/toml.xml
+++ b/syntax/toml.xml
@@ -1,139 +1,183 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
-	<!ENTITY more "(_\d+)*">
-	<!ENTITY int  "[+-]?(0|[1-9]\d*&more;)">
-	<!ENTITY frac "\.\d+&more;">
-	<!ENTITY exp  "[eE][+-]?\d+&more;">
-	
-	<!ENTITY offset   "[+-]\d\d:\d\d">
-	<!ENTITY time     "\d\d:\d\d:\d\d(\.\d+)?(&offset;|Z)?">
-	<!ENTITY datetime "\d\d\d\d-\d\d-\d\d(T&time;)?">
+    <!ENTITY more "(_[0-9]++)*+">
+    <!ENTITY int  "(0|[1-9][0-9]*+&more;)">
+    <!ENTITY frac "\.[0-9]+&more;">
+    <!ENTITY exp  "[eE][+-]?[0-9]+&more;">
+
+    <!ENTITY offset   "[+-][0-9][0-9]:[0-9][0-9]">
+    <!ENTITY time     "[0-9][0-9]:[0-9][0-9]:[0-9][0-9](\.[0-9]+)?">
+    <!ENTITY datetime "[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]([T ]&time;(&offset;|Z)?)?|&time;">
 ]>
 <!-- https://github.com/toml-lang/toml -->
-<language name="TOML" section="Configuration" extensions="*.toml" mimetype="text/x-toml" version="9" kateversion="5.0" author="flying-sheep@web.de" license="LGPLv2+">
+<!-- https://toml.io/en/v1.0.0 -->
+<language
+    name="TOML"
+    section="Configuration"
+    extensions="Cargo.lock;*.toml;*.rc;*.conf;*.cfg;*.cf;*.cnf;*.ini;mirrorlist"
+    mimetype="text/x-toml;application/toml"
+    version="13"
+    kateversion="5.0"
+    author="flying-sheep@web.de"
+    license="LGPLv2+"
+    priority="-1"
+  >
 <highlighting>
-	<list name="bools">
-		<item>true</item>
-		<item>false</item>
-	</list>
-	<contexts>
-		<context attribute="Error" lineEndContext="#stay" name="Toml">
-			<DetectSpaces attribute="Whitespace"/>
-			<Detect2Chars attribute="TableHeader" context="NestedTableHeader" char="[" char1="[" endRegion="Table"/>
-			<DetectChar attribute="TableHeader" context="TableHeader" char="[" endRegion="Table"/>
-			<RegExpr    attribute="Key" context="#stay"   String="[\w-]+" firstNonSpace="true"/>
-			<DetectChar attribute="Key" context="QuotedKey" char="&quot;" firstNonSpace="true"/>
-			<DetectChar attribute="Key" context="LitQuotedKey" char="'" firstNonSpace="true"/>
-			<DetectChar attribute="Assignment" context="Value" char="="/>
-			<DetectChar char="#" attribute="Comment" context="Comment"/>
-		</context>
-		<!-- table headers -->
-		<context attribute="TableHeader" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop" name="TableHeader">
-			<IncludeRules context="TableHeaderCommon"/>
-			<DetectChar attribute="TableHeader" context="#pop" char="]" beginRegion="Table"/>
-		</context>
-		<context attribute="TableHeader" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop" name="NestedTableHeader">
-			<IncludeRules context="TableHeaderCommon"/>
-			<Detect2Chars attribute="TableHeader" context="#pop" char="]" char1="]" beginRegion="Table"/>
-		</context>
-		<context attribute="TableHeader" lineEndContext="#pop" name="TableHeaderCommon">
-			<DetectSpaces attribute="Whitespace"/>
-			<DetectChar attribute="TableHeader" context="#stay" char="."/>
-			<RegExpr    attribute="Key" context="#stay" String="[\w-]+"/>
-			<DetectChar attribute="Key" context="QuotedKey" char="&quot;"/>
-			<DetectChar attribute="Key" context="LitQuotedKey" char="'"/>
-		</context>
-		<!-- values -->
-		<context attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" name="Value">
-			<DetectSpaces attribute="Whitespace"/>
-			<RegExpr attribute="Date"  context="#stay" String="&datetime;"/>
-			<keyword attribute="Bool" String="bools" context="#stay"/>
-			<RegExpr attribute="Float" context="#stay" String="&int;(&frac;&exp;|&frac;|&exp;)"/>
-			<RegExpr attribute="Int"   context="#stay" String="&int;"/>
-			<StringDetect attribute="String" context="MultilineString"    String="&quot;&quot;&quot;"/>
-			<DetectChar   attribute="String" context="String"               char="&quot;"/>
-			<StringDetect attribute="String" context="LitMultilineString" String="'''"/>
-			<DetectChar   attribute="String" context="LitString"            char="'"/>
-			<DetectChar attribute="Array" context="Array" char="["/>
-			<DetectChar attribute="InlineTable" context="InlineTable" char="{"/>
-			<DetectChar char="#" attribute="Comment" context="Comment"/>
-		</context>
-		<context attribute="Comment" lineEndContext="#pop" name="Comment">
-			<DetectSpaces/>
-			<IncludeRules context="##Comments" />
-			<DetectIdentifier/>
-		</context>
-		<!-- Quoted keys and Strings -->
-		<context attribute="Key" lineEndContext="#pop" name="QuotedKey">
-			<LineContinue attribute="Escape" context="#stay"/>
-			<RegExpr attribute="Escape" String="\\[btnfr&quot;\\]|\\(u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})" context="#stay" />
-			<RegExpr attribute="Error" String="\\." context="#stay" />
-			<DetectChar attribute="Key" context="#pop" char="&quot;"/>
-		</context>
-		<context attribute="String" lineEndContext="#pop" name="String">
-			<LineContinue attribute="Escape" context="#stay"/>
-			<RegExpr attribute="Escape" String="\\[btnfr&quot;\\]|\\(u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})" context="#stay" />
-			<RegExpr attribute="Error" String="\\." context="#stay" />
-			<DetectChar attribute="String" context="#pop" char="&quot;"/>
-		</context>
-		<context attribute="String" lineEndContext="#stay" name="MultilineString">
-			<LineContinue attribute="Escape" context="#stay"/>
-			<RegExpr attribute="Escape" String="\\[btnfr&quot;\\]|\\(u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})" context="#stay" />
-			<RegExpr attribute="Error" String="\\." context="#stay" />
-			<StringDetect attribute="String" context="#pop" String="&quot;&quot;&quot;"/>
-		</context>
-		<context attribute="Key" lineEndContext="#pop" name="LitQuotedKey">
-			<DetectChar attribute="Key" context="#pop" char="'"/>
-		</context>
-		<context attribute="LitString" lineEndContext="#pop" name="LitString">
-			<DetectChar attribute="String" context="#pop" char="'"/>
-		</context>
-		<context attribute="LitString" lineEndContext="#stay" name="LitMultilineString">
-			<StringDetect attribute="String" context="#pop" String="'''"/>
-		</context>
-		<!-- Arrays -->
-		<context attribute="Array" lineEndContext="#stay" name="Array">
-			<IncludeRules context="Value" />
-			<DetectChar context="#pop" attribute="Array" char="]" />
-			<DetectChar context="#stay" attribute="NextEntry" char="," />
-		</context>
-		<context attribute="InlineTable" lineEndContext="#stay" name="InlineTable">
-			<RegExpr    attribute="Key" context="#stay"   String="[\w-]+"/>
-			<DetectChar attribute="Key" context="QuotedKey" char="&quot;"/>
-			<DetectChar attribute="Key" context="LitQuotedKey" char="'"/>
-			<DetectChar attribute="Assignment" context="Value" char="="/>
-			<DetectChar char="#" attribute="Comment" context="Comment"/>
-			<DetectChar context="#pop" attribute="InlineTable" char="}" />
-			<DetectChar context="#stay" attribute="NextEntry" char="," />
-		</context>
-	</contexts>
-	<itemDatas>
-		<itemData name="Normal Text" defStyleNum="dsNormal"/>
-		<itemData name="Key"         defStyleNum="dsDataType"/>
-		<itemData name="TableHeader" defStyleNum="dsKeyword"/>
-		<itemData name="Assignment"  defStyleNum="dsOperator"/>
-		<itemData name="Comment"     defStyleNum="dsComment"/>
-		
-		<itemData name="Date"        defStyleNum="dsBaseN"/>
-		<itemData name="Float"       defStyleNum="dsFloat"/>
-		<itemData name="Int"         defStyleNum="dsDecVal"/>
-		<itemData name="Bool"        defStyleNum="dsConstant"/>
-		<itemData name="String"      defStyleNum="dsString"/>
-		<itemData name="LitString"   defStyleNum="dsVerbatimString"/>
-		<itemData name="Escape"      defStyleNum="dsSpecialChar"/>
-		<itemData name="Array"       defStyleNum="dsOperator"/>
-		<itemData name="InlineTable" defStyleNum="dsOperator"/>
-		<itemData name="NextEntry"   defStyleNum="dsOperator"/>
-		
-		<itemData name="Whitespace"  defStyleNum="dsNormal"/>
-		<itemData name="Error"       defStyleNum="dsError"/>
-	</itemDatas>
+    <list name="bools">
+        <item>true</item>
+        <item>false</item>
+    </list>
+
+    <contexts>
+        <context attribute="Error" lineEndContext="#stay" name="Toml">
+            <DetectSpaces attribute="Whitespace"/>
+            <Detect2Chars attribute="TableHeader" context="NestedTableHeader" char="[" char1="[" endRegion="Table"/>
+            <DetectChar attribute="TableHeader" context="TableHeader" char="[" endRegion="Table"/>
+            <DetectChar attribute="Assignment" context="Value" char="="/>
+            <DetectChar char="#" attribute="Comment" context="Comment"/>
+            <IncludeRules context="FindKey"/>
+        </context>
+
+
+        <context attribute="Key" lineEndContext="#stay" name="FindKey">
+            <DetectChar attribute="Key" char="."/>
+            <RegExpr    attribute="Key" context="#stay" String="[A-Za-z0-9_-]+"/>
+            <DetectChar attribute="Key" context="QuotedKey" char="&quot;"/>
+            <DetectChar attribute="Key" context="LitQuotedKey" char="'"/>
+        </context>
+
+
+        <!-- table headers -->
+        <context attribute="TableHeader" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop" name="TableHeader">
+            <DetectChar attribute="TableHeader" context="#pop" char="]" beginRegion="Table"/>
+            <IncludeRules context="TableHeaderCommon"/>
+        </context>
+
+        <context attribute="TableHeader" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop" name="NestedTableHeader">
+            <Detect2Chars attribute="TableHeader" context="#pop" char="]" char1="]" beginRegion="Table"/>
+            <IncludeRules context="TableHeaderCommon"/>
+        </context>
+
+        <context attribute="TableHeader" lineEndContext="#pop" name="TableHeaderCommon">
+            <DetectSpaces attribute="Whitespace"/>
+            <DetectChar attribute="TableHeader" char="."/>
+            <RegExpr    attribute="TableHeader" context="#stay" String="[A-Za-z0-9_-]+"/>
+            <DetectChar attribute="TableHeader" context="QuotedKey" char="&quot;"/>
+            <DetectChar attribute="TableHeader" context="LitQuotedKey" char="'"/>
+        </context>
+
+
+        <!-- values -->
+        <context attribute="Error" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" name="Value">
+            <DetectSpaces attribute="Whitespace"/>
+            <WordDetect attribute="Boolean true" context="#pop" String="true"/>
+            <WordDetect attribute="Boolean false" context="#pop" String="false"/>
+            <StringDetect attribute="String" context="#pop!MultilineString"    String="&quot;&quot;&quot;"/>
+            <DetectChar   attribute="String" context="#pop!String"               char="&quot;"/>
+            <StringDetect attribute="String" context="#pop!LitMultilineString" String="'''"/>
+            <DetectChar   attribute="String" context="#pop!LitString"            char="'"/>
+            <DetectChar attribute="Array" context="#pop!Array" char="["/>
+            <DetectChar attribute="InlineTable" context="#pop!InlineTable" char="{"/>
+            <RegExpr attribute="Date"  context="#pop" String="&datetime;"/>
+            <RegExpr attribute="Int"   context="#pop" String="[+-]?(0x[0-9a-fA-F]+(_[0-9a-fA-F]+)*|0o[0-7]+(_[0-7]+)*|0b[01]+(_[01]+)*|&int;(?!(\.|[eE][+-]?)[0-9]))"/>
+            <RegExpr attribute="Float" context="#pop" String="[+-]?(&int;(&frac;(&exp;)?|&exp;)|inf|nan)"/>
+        </context>
+
+        <context attribute="Comment" lineEndContext="#pop" name="Comment">
+            <DetectSpaces/>
+            <IncludeRules context="##Comments"/>
+            <DetectIdentifier/>
+        </context>
+
+
+        <!-- Quoted keys and Strings-->
+        <context attribute="Key" lineEndContext="#pop" name="QuotedKey">
+            <DetectChar attribute="Key" context="#pop" char="&quot;"/>
+            <IncludeRules context="FindEscapedChar"/>
+        </context>
+
+        <context attribute="String" lineEndContext="#pop" name="String">
+            <DetectChar attribute="String" context="#pop" char="&quot;"/>
+            <IncludeRules context="FindEscapedChar"/>
+        </context>
+
+        <context attribute="String" lineEndContext="#stay" name="MultilineString">
+            <StringDetect attribute="String" context="#pop" String="&quot;&quot;&quot;&quot;&quot;"/>
+            <StringDetect attribute="String" context="#pop" String="&quot;&quot;&quot;&quot;"/>
+            <StringDetect attribute="String" context="#pop" String="&quot;&quot;&quot;"/>
+            <LineContinue attribute="Escape" context="#stay"/>
+            <IncludeRules context="FindEscapedChar"/>
+        </context>
+
+        <context attribute="String" lineEndContext="#pop" name="FindEscapedChar">
+            <RegExpr attribute="Escape" String="\\[btnfr&quot;\\]|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}" context="#stay"/>
+            <RegExpr attribute="Error" String="\\[uU][0-9a-fA-F]*|\\." context="#stay"/>
+        </context>
+
+        <context attribute="Key" lineEndContext="#pop" name="LitQuotedKey">
+            <DetectChar attribute="Key" context="#pop" char="'"/>
+        </context>
+
+        <context attribute="LitString" lineEndContext="#pop" name="LitString">
+            <DetectChar attribute="String" context="#pop" char="'"/>
+        </context>
+
+        <context attribute="LitString" lineEndContext="#stay" name="LitMultilineString">
+            <StringDetect attribute="String" context="#pop" String="'''''"/>
+            <StringDetect attribute="String" context="#pop" String="''''"/>
+            <StringDetect attribute="String" context="#pop" String="'''"/>
+        </context>
+
+
+        <!-- Arrays -->
+        <context attribute="Array" lineEndContext="#stay" name="Array" fallthrough="true" fallthroughContext="InArray">
+            <DetectSpaces attribute="Whitespace"/>
+            <DetectChar context="#pop" attribute="Array" char="]"/>
+            <DetectChar attribute="Comment" context="Comment" char="#"/>
+            <DetectChar context="InArray" attribute="NextEntry" char=","/>
+        </context>
+        <context attribute="Error" lineEndContext="#stay" name="InArray">
+            <DetectChar context="#pop#pop" attribute="Array" char="]"/>
+            <DetectChar context="#stay" attribute="Error" char=","/>
+            <DetectChar attribute="Comment" context="Comment" char="#"/>
+            <IncludeRules context="Value"/>
+        </context>
+
+        <context attribute="InlineTable" lineEndContext="#stay" name="InlineTable">
+            <DetectChar attribute="Assignment" context="Value" char="="/>
+            <DetectChar char="#" attribute="Comment" context="Comment"/>
+            <DetectChar context="#pop" attribute="InlineTable" char="}"/>
+            <DetectChar context="#stay" attribute="NextEntry" char=","/>
+            <IncludeRules context="FindKey"/>
+        </context>
+
+    </contexts>
+    <itemDatas>
+        <itemData name="Whitespace"    defStyleNum="dsNormal"/>
+        <itemData name="Key"           defStyleNum="dsDataType"/>
+        <itemData name="TableHeader"   defStyleNum="dsKeyword"/>
+        <itemData name="Assignment"    defStyleNum="dsOperator"/>
+        <itemData name="Comment"       defStyleNum="dsComment"/>
+
+        <itemData name="Date"          defStyleNum="dsBaseN"/>
+        <itemData name="Float"         defStyleNum="dsFloat"/>
+        <itemData name="Int"           defStyleNum="dsDecVal"/>
+        <itemData name="Boolean true"  defStyleNum="dsConstant"/>
+        <itemData name="Boolean false" defStyleNum="dsConstant"/>
+        <itemData name="String"        defStyleNum="dsString"/>
+        <itemData name="LitString"     defStyleNum="dsVerbatimString"/>
+        <itemData name="Escape"        defStyleNum="dsSpecialChar"/>
+        <itemData name="Array"         defStyleNum="dsOperator"/>
+        <itemData name="InlineTable"   defStyleNum="dsOperator"/>
+        <itemData name="NextEntry"     defStyleNum="dsOperator"/>
+
+        <itemData name="Error"         defStyleNum="dsError"/>
+    </itemDatas>
 </highlighting>
 <general>
-	<comments>
-		<comment name="singleLine" start="#" position="afterwhitespace" />
-	</comments>
+    <comments>
+        <comment name="singleLine" start="#" position="afterwhitespace"/>
+    </comments>
 </general>
 </language>
-<!-- kate: replace-tabs off; -->
diff --git a/syntax/typescript.xml b/syntax/typescript.xml
--- a/syntax/typescript.xml
+++ b/syntax/typescript.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
-	<!ENTITY identifier     "[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*">
+	<!ENTITY identifier     "[a-zA-Z_$[:^ascii:]][\w$[:^ascii:]]*+">
 	<!ENTITY numSuffix      "(?=n?(?:[^\w]|$))">
 	<!ENTITY objectOp       "[\?!]?">
 	<!ENTITY objectPoint    "\s*&objectOp;\.">
@@ -13,6 +13,12 @@
 	<!ENTITY functionSuffix "(?=\s*(?:&lt;(?:\{(?:[^\{\}]|\{[^\{\}]*\})*\}|\((?:[^\(\)]|\([^\(\)]*\))*\)|\[(?:[^\[\]]|\[[^\[\]]*\])*\]|'(?:\\.|[^'])*'|&quot;(?:\\.|[^&quot;])*&quot;|`(?:\\.|[^`])*`|[^&lt;&gt;]|&lt;.*&gt;)*&gt;)?\()">
 
 	<!ENTITY codeContent    "&quot;(?:[^&quot;]|\\.)*&quot;|'(?:[^']|\\.)*'|`(?:[^`]|\\.)`|/\*.*\*/|/(?:[^/\\\[]|\\.|\[(?:[^\]\\]|\\.)+\])+/">
+
+  <!-- https://tc39.es/ecma262/#sec-literals-numeric-literals -->
+  <!ENTITY DecimalIntegerLiteral "(0|[1-9][0-9]*+(_[0-9]++)*+)">
+  <!ENTITY DecimalDigits "([0-9]++(_[0-9]++)*+)">
+  <!ENTITY ExponentPart "([eE][+-]?&DecimalDigits;)">
+  <!ENTITY float "\b&DecimalIntegerLiteral;(\.&DecimalDigits;?&ExponentPart;?|&ExponentPart;)|\.&DecimalDigits;&ExponentPart;?">
 ]>
 
 <!--
@@ -61,10 +67,11 @@
 -->
 
 <language name="TypeScript"
-          version="13"
+          alternativeNames="TS"
+          version="18"
           kateversion="5.53"
           section="Scripts"
-          extensions="*.ts"
+          extensions="*.ts;*.mts;*.cts"
           priority="9"
           mimetype="text/typescript;application/typescript;text/x-typescript;application/x-typescript"
           indenter="cstyle"
@@ -242,10 +249,26 @@
 		</context>
 
 		<context name="Normal Pt1" attribute="Normal Text" lineEndContext="#stay">
+			<IncludeRules context="JSBaseSomeSymboles##JavaScript" />
+			<DetectChar context="Types" attribute="Symbol" char=":" />
+
+			<!-- Symbols & Operators -->
+			<!-- NOTE: - The brackets {}()[] are highlighted as Normal Text.
+			           - Bracket highlighting rules must be explicitly included here
+			             for the "Animate Bracket Highlighting" feature to work properly. -->
+			<DetectChar context="Object" attribute="Normal Text" char="{" beginRegion="Brace" />
+			<DetectChar context="#stay" attribute="Normal Text" char="[" beginRegion="List" />
+			<DetectChar context="NoRegExp" attribute="Normal Text" char="]" endRegion="List" />
+			<DetectChar context="#stay" attribute="Normal Text" char="(" />
+			<DetectChar context="NoRegExp" attribute="Normal Text" char=")" />
+
 			<StringDetect context="#stay" attribute="Symbol" String="..." />
 			<IncludeRules context="FindNumbers" />
+			<DetectChar context="MemberObject" attribute="Symbol" char="." />
 			<IncludeRules context="FindStrings" />
 
+			<IncludeRules context="FindPrivateOperator##JavaScript" />
+
 			<!-- Abstract -->
 			<RegExpr context="#stay" attribute="Reserved" String="\babstract(?=\s+(?:class|interface)\b)" />
 			<!-- New -->
@@ -271,7 +294,6 @@
 			<IncludeRules context="BuiltInConstants" />
 			<!-- Objects -->
 			<RegExpr context="MemberObject" attribute="Objects" String="&identifier;(?=&objectPoint;)" />
-			<DetectChar context="MemberObject" attribute="Symbol" char="." />
 
 			<RegExpr context="Types" attribute="Module" String="\bas(?=\s)" />
 			<!-- Import -->
@@ -289,16 +311,6 @@
 			<!-- Tagged Template Literals -->
 			<RegExpr context="#stay" attribute="Function Name" String="&identifier;(?=\s*`)" />
 
-			<!-- Symbols & Operators -->
-			<!-- NOTE: - The brackets {}()[] are highlighted as Normal Text.
-			           - Bracket highlighting rules must be explicitly included here
-			             for the "Animate Bracket Highlighting" feature to work properly. -->
-			<DetectChar context="Object" attribute="Normal Text" char="{" beginRegion="Brace" />
-			<DetectChar context="#stay" attribute="Normal Text" char="[" beginRegion="List" />
-			<DetectChar context="NoRegExp" attribute="Normal Text" char="]" endRegion="List" />
-			<DetectChar context="#stay" attribute="Normal Text" char="(" />
-			<DetectChar context="NoRegExp" attribute="Normal Text" char=")" />
-
 			<Detect2Chars context="#stay" attribute="Symbol" char="?" char1="?" /> <!-- Null operator -->
 			<!-- Conditional Expressions:
 			       CASE 1:  '?' ... <identifier> ':'
@@ -308,7 +320,6 @@
 			<RegExpr context="ConditionalExpression" attribute="Symbol" String="\?(?=\s*(?:(?:[^/&quot;'`\s\?:\.;,\=\}\]\)]|&codeContent;)(?:[^/&quot;'`]|&codeContent;)*)?&identifier;\s*(?:/\*.*\*/\s*)*:|(?:&amp;&amp;|\|\||\s*(?:/\*.*\*/\s*)*&identifier;)?&endLine;)" minimal="true" />
 
 			<!-- Type Parameter: Highlight types after ":" and between "<" and ">" -->
-			<DetectChar context="Types" attribute="Symbol" char=":" />
 			<RegExpr context="TypesAngleBracket" attribute="Symbol" String="&lt;(?=(?:&identifier;|[\[\{\(&lt;]).*&gt;)" />
 
 			<IncludeRules context="JSBase##JavaScript" />
@@ -375,12 +386,22 @@
 
 		<!-- Numbers -->
 		<context name="FindNumbers" attribute="Normal Text" lineEndContext="#stay">
-			<RegExpr context="NoRegExp" attribute="Hexadecimal" String="\b0[xX][\da-fA-F][\da-fA-F_]*&numSuffix;" />
-			<RegExpr context="NoRegExp" attribute="Binary" String="\b0[bB][01][01_]*&numSuffix;" />
-			<RegExpr context="NoRegExp" attribute="Float" String="(?:\b\d[\d_]*\.?|(?:\b\d[\d_]*)?\.\d[\d_]*)[eE][\+\-]?\d[\d_]*&numSuffix;|(?:\.\d[\d_]*|\b\d[\d_]*\.(?:\d[\d_]*)?)&numSuffix;" />
-			<RegExpr context="NoRegExp" attribute="Octal" String="\b0[oO]?[0-7][0-7_]*&numSuffix;" />
-			<RegExpr context="NoRegExp" attribute="Decimal" String="\b\d[\d_]*&numSuffix;" />
+			<RegExpr attribute="Float" context="NoRegExp" String="&float;" />
+			<AnyChar context="Integer" String="0123456789" lookAhead="1"/>
 		</context>
+		<!-- same as JS, but with Hexadecimal instead of Hex -->
+		<context name="Integer" attribute="Normal Text" lineEndContext="#stay">
+			<RegExpr attribute="Hexadecimal" context="#pop!NumericSufix" String="\b0[xX][0-9a-fA-F]++(_[0-9a-fA-F]++)*+"/>
+			<!-- 07 is octal, 08 is decimal -->
+			<RegExpr attribute="Octal" context="#pop!NumericSufix" String="\b0([oO][0-7]++(_[0-7]++)*+|0*+[1-7][0-7]*+(_[0-7]++)*+(?!_?[89]))" />
+			<RegExpr attribute="Binary" context="#pop!NumericSufix" String="\b0[bB][01]++(_[01]++)*+" />
+			<!-- 0000_8 is invalid -->
+			<RegExpr attribute="Decimal" context="#pop!NumericSufix" String="\b0*+([1-9][0-9]*+(_[0-9]++)*+)?"/>
+		</context>
+		<context attribute="Normal Text" lineEndContext="#pop" name="NumericSufix" fallthrough="true" fallthroughContext="#pop!NoRegExp">
+			<DetectChar attribute="Normal Text" context="#pop!NoRegExp" char="n" />
+			<IncludeRules context="NumericSufixError##JavaScript" />
+		</context>
 
 		<!-- Function Name -->
 		<context name="Function" attribute="Normal Text" lineEndContext="#pop">
@@ -575,7 +596,7 @@
 			<keyword context="#pop!NoRegExp" attribute="Object Property (Built-in)" String="variable_property" />
 			<keyword context="#pop!NoRegExp" attribute="Constant" String="dom_constant" />
 
-			<RegExpr context="#stay" attribute="Normal Text" String="#(?=&identifier;)" /> <!-- Private-Named Instance Fields -->
+			<IncludeRules context="FindPrivateOperator##JavaScript" />
 			<RegExpr context="#stay" attribute="Object Member" String="&identifier;(?=&objectPoint;)" />
 			<RegExpr context="#pop!NoRegExp" attribute="Object Member" String="&identifier;" />
 			<IncludeRules context="NoRegExp" />
@@ -741,11 +762,11 @@
 
 <general>
 	<comments>
-		<comment name="singleLine" start="//" />
+		<comment name="singleLine" start="//" position="afterwhitespace" />
 		<comment name="multiLine" start="/*" end="*/" />
 	</comments>
 	<keywords casesensitive="1" additionalDeliminator="&quot;&apos;`" weakDeliminator="$" />
 </general>
 
 </language>
-<!-- kate: replace-tabs off; tab-width 3; indent-width 3; remove-trailing-spaces mod; dynamic-word-wrap off; -->
+<!-- kate: replace-tabs off; tab-width 3; indent-width 3; remove-trailing-spaces mod; -->
diff --git a/syntax/verilog.xml b/syntax/verilog.xml
--- a/syntax/verilog.xml
+++ b/syntax/verilog.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="Verilog" version="8" kateversion="5.0" section="Hardware" extensions="*.v;*.V;*.vl" mimetype="text/x-verilog-src" author="Yevgen Voronenko (ysv22@drexel.edu), Ryan Dalzell (ryan@tullyroan.com)" license="">
   <highlighting>
     <list name="keywords">
diff --git a/syntax/vhdl.xml b/syntax/vhdl.xml
--- a/syntax/vhdl.xml
+++ b/syntax/vhdl.xml
@@ -1,769 +1,1612 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd" [
-  <!ENTITY funcname "[A-Za-z_:][A-Za-z0-9_:#&#37;@-]*">
-  <!ENTITY varname  "[A-Za-z_][A-Za-z0-9_]*">
-  <!ENTITY identifier "\b(?:[A-Za-z_][A-Za-z0-9_]*)\b|/(?:[^/]++(?://)?+)*+/">
-  <!ENTITY bos      "\b">                        <!-- bol or space following -->
-]>
-<language name="VHDL" version="13" kateversion="5.62" section="Hardware" extensions="*.vhdl;*.vhd" mimetype="text/x-vhdl" author="Rocky Scaletta (rocky@purdue.edu), Stefan Endrullis (stefan@endrullis.de), Florent Ouchet (outchy@users.sourceforge.net), Chris Higgs (chiggs.99@gmail.com), Jan Michel (jan@mueschelsoft.de), Luigi Calligaris (luigi.calligaris@stfc.ac.uk)">
-  <highlighting>
-    <list name="keywordsToplevel">
-      <item>file</item>
-      <item>library</item>
-      <item>use</item>
-      <item>with</item>
-    </list>
-
-    <list name="keywords">
-      <item>access</item>
-      <item>after</item>
-      <item>alias</item>
-      <item>all</item>
-      <item>array</item>
-      <item>assert</item>
-      <item>assume</item>
-      <item>assume_guarantee</item>
-      <item>attribute</item>
-      <item>begin</item>
-      <item>block</item>
-      <item>body</item>
-      <item>bus</item>
-      <item>case</item>
-      <item>component</item>
-      <item>constant</item>
-      <item>context</item>
-      <item>cover</item>
-      <item>default</item>
-      <item>disconnect</item>
-      <item>downto</item>
-      <item>else</item>
-      <item>elsif</item>
-      <item>end</item>
-      <item>fairness</item>
-      <item>falling_edge</item>
-      <item>file</item>
-      <item>for</item>
-      <item>force</item>
-      <item>function</item>
-      <item>generate</item>
-      <item>generic</item>
-      <item>group</item>
-      <item>guarded</item>
-      <item>if</item>
-      <item>impure</item>
-      <item>inertial</item>
-      <item>is</item>
-      <item>label</item>
-      <item>linkage</item>
-      <item>literal</item>
-      <item>map</item>
-      <item>new</item>
-      <item>null</item>
-      <item>of</item>
-      <item>on</item>
-      <item>open</item>
-      <item>others</item>
-      <item>parameter</item>
-      <item>port</item>
-      <item>postponed</item>
-      <item>procedure</item>
-      <item>process</item>
-      <item>property</item>
-      <item>protected</item>
-      <item>pure</item>
-      <item>range</item>
-      <item>record</item>
-      <item>register</item>
-      <item>reject</item>
-      <item>release</item>
-      <item>report</item>
-      <item>rising_edge</item>
-      <item>select</item>
-      <item>sequence</item>
-      <item>severity</item>
-      <item>signal</item>
-      <item>shared</item>
-      <item>strong</item>
-      <item>subtype</item>
-      <item>then</item>
-      <item>to</item>
-      <item>transport</item>
-      <item>type</item>
-      <item>unaffected</item>
-      <item>units</item>
-      <item>until</item>
-      <item>variable</item>
-      <item>vmode</item>
-      <item>vprop</item>
-      <item>vunit</item>
-      <item>wait</item>
-      <item>when</item>
-      <item>with</item>
-      <item>note</item>
-      <item>warning</item>
-      <item>error</item>
-      <item>failure</item>
-      <item>in</item>
-      <item>inout</item>
-      <item>out</item>
-      <item>buffer</item>
-      <item>and</item>
-      <item>abs</item>
-      <item>or</item>
-      <item>xor</item>
-      <item>xnor</item>
-      <item>not</item>
-      <item>mod</item>
-      <item>nand</item>
-      <item>nor</item>
-      <item>rem</item>
-      <item>rol</item>
-      <item>ror</item>
-      <item>sla</item>
-      <item>sra</item>
-      <item>sll</item>
-      <item>srl</item>
-    </list>
-
-    <list name="controls">
-      <item>exit</item>
-      <item>next</item>
-      <item>return</item>
-    </list>
-
-    <list name="signals">
-      <item>signal</item>
-      <item>variable</item>
-      <item>constant</item>
-      <item>type</item>
-      <item>attribute</item>
-    </list>
-
-    <list name="range">
-      <item>to</item>
-      <item>downto</item>
-      <item>others</item>
-    </list>
-
-    <list name="timeunits">
-      <item>fs</item>
-      <item>ps</item>
-      <item>ns</item>
-      <item>us</item>
-      <item>ms</item>
-      <item>sec</item>
-      <item>min</item>
-      <item>hr</item>
-    </list>
-
-
-    <list name="types">
-      <item>bit</item>
-      <item>bit_vector</item>
-      <item>character</item>
-      <item>boolean</item>
-      <item>boolean_vector</item>
-      <item>integer</item>
-      <item>integer_vector</item>
-      <item>real</item>
-      <item>real_vector</item>
-      <item>time</item>
-      <item>time_vector</item>
-      <item>delay_length</item>
-      <item>string</item>
-      <item>severity_level</item>
-      <item>positive</item>
-      <item>natural</item>
-      <item>file_open_kind</item>
-      <item>file_open_status</item>
-      <item>signed</item>
-      <item>unsigned</item>
-      <item>unresolved_unsigned</item>
-      <item>unresolved_signed</item>
-      <item>line</item>
-      <item>text</item>
-      <item>side</item>
-      <item>width</item>
-      <item>std_logic</item>
-      <item>std_logic_vector</item>
-      <item>std_ulogic</item>
-      <item>std_ulogic_vector</item>
-      <item>x01</item>
-      <item>x01z</item>
-      <item>ux01</item>
-      <item>ux01z</item>
-      <item>qsim_state</item>
-      <item>qsim_state_vector</item>
-      <item>qsim_12state</item>
-      <item>qsim_12state_vector</item>
-      <item>qsim_strength</item>
-      <item>mux_bit</item>
-      <item>mux_vector</item>
-      <item>reg_bit</item>
-      <item>reg_vector</item>
-      <item>wor_bit</item>
-      <item>wor_vector</item>
-    </list>
-
-
-    <contexts>
-
-<!-- start / global environment -->
-      <context name="start" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preDeclaration"/>
-
-        <WordDetect attribute="Control" context="entity" insensitive="1" String="entity"/>
-        <WordDetect attribute="Control" context="configuration" insensitive="1" String="configuration"/>
-        <WordDetect attribute="Control" context="architecture" insensitive="1" String="architecture"/>
-        <WordDetect attribute="Control" context="package" insensitive="1" String="package"/>
-
-        <keyword attribute="Keyword" context="#stay" String="keywordsToplevel"/>
-
-        <IncludeRules context="postDeclaration"/>
-      </context>
-
-
-      <context name="package" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
-        <IncludeRules context="blank"/>
-        <WordDetect attribute="Control" context="#pop!packagebody" insensitive="true" String="body"/>
-        <RegExpr attribute="Name" context="package_main" beginRegion="PackageRegion1"
-                 String="(&identifier;)"/>
-      </context>
-
-      <context name="package_main" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="package_decl">
-        <RegExpr attribute="Control" context="#pop#pop" dynamic="1" insensitive="1"
-                 String="&bos;end(\s+package\b)?(\s+%1)?\s*;" endRegion="EntityRegion1"/>
-        <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="true"
-                    String="end" endRegion="EntityRegion1"/>
-      </context>
-
-      <context name="package_decl" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preDeclaration"/>
-        <WordDetect attribute="Control" context="#pop" insensitive="true" String="end" lookAhead="1"/>
-        <IncludeRules context="postDeclaration"/>
-      </context>
-
-      <!-- package body environment -->
-
-      <context name="packagebody" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
-        <IncludeRules context="blank"/>
-        <RegExpr attribute="Name" context="packagebody_main" beginRegion="PackageBodyRegion1"
-                 String="(&identifier;)"/>
-      </context>
-
-      <context name="packagebody_main" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="package_decl">
-        <RegExpr attribute="Control" context="#pop#pop" dynamic="1" insensitive="1"
-                 String="&bos;end(\s+package\s+body\b)?(\s+%1)?\s*;" endRegion="EntityRegion1"/>
-        <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="true"
-                    String="end" endRegion="EntityRegion1"/>
-      </context>
-
-<!--====ARCHITECTURE ===============-->
-      <context name="architecture" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="blank"/>
-        <RegExpr attribute="Name" context="arch_of" beginRegion="ArchitectureRegion1"
-                 String="(&identifier;)"/>
-      </context>
-
-      <context name="arch_of" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="arch_decl">
-        <IncludeRules context="blank"/>
-        <WordDetect attribute="Keyword" context="arch_ref" insensitive="1" String="of"/>
-        <RegExpr attribute="Control" context="#pop#pop" insensitive="1" dynamic="1"
-                 String="&bos;end(\s+architecture\b)?(\s+%1)?\s*;" endRegion="ArchitectureRegion1"/>
-        <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="1"
-                    String="end" endRegion="ArchitectureRegion1"/>
-      </context>
-
-      <context name="arch_ref" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!arch_decl">
-        <IncludeRules context="blank"/>
-        <WordDetect attribute="Keyword" context="#pop!arch_decl" insensitive="1" String="is" />
-        <RegExpr attribute="Reference" context="#pop!arch_decl" String="&identifier;"/>
-      </context>
-
-      <context name="arch_decl" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preDeclaration"/>
-        <WordDetect attribute="Control" context="#pop!parallel_stmt" insensitive="true" String="begin"/>
-        <WordDetect attribute="Control" context="#pop" insensitive="true" String="end" lookAhead="1"/>
-        <IncludeRules context="postDeclaration"/>
-      </context>
-
-<!--====if ===============-->
-      <context name="if_start" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="if_expr">
-        <RegExpr attribute="Control" context="#pop" insensitive="true" endRegion="IfRegion1"
-                 String="&bos;end\s+if(\s+&varname;)?\s*;"/>
-        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
-                    String="end" endRegion="IfRegion1"/>
-      </context>
-
-      <context name="if_expr" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preExpression"/>
-        <WordDetect attribute="Control" context="#pop" insensitive="true" String="end" lookAhead="1"/>
-        <WordDetect attribute="Control" context="if_body" insensitive="true" String="then"/>
-        <IncludeRules context="postExpression"/>
-      </context>
-
-      <context name="if_body" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_decl">
-        <IncludeRules context="blank"/>
-        <WordDetect attribute="Control" context="#pop#pop" insensitive="true" String="end" lookAhead="1"/>
-        <WordDetect attribute="Control" context="#pop" insensitive="true" String="elsif"/>
-        <WordDetect attribute="Control" context="#pop#pop!sequential_stmt" insensitive="true" String="else"/>
-        <IncludeRules context="sequentialStatementKw"/>
-        <IncludeRules context="label"/>
-      </context>
-
-<!--====case ===============-->
-      <context name="case" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preExpression"/>
-        <WordDetect attribute="Keyword" context="#pop!case_stmt" insensitive="true" String="is"/>
-        <IncludeRules context="postExpression"/>
-      </context>
-
-      <context name="case_stmt" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="case_when">
-        <RegExpr attribute="Control" context="#pop" insensitive="true" endRegion="CaseRegion1"
-                 String="&bos;end\s+case(&varname;)?\s*;"/>
-        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
-                    String="end" endRegion="CaseRegion1"/>
-      </context>
-
-      <context name="case_when" attribute="Normal Text" lineEndContext="#stay">
-        <Detect2Chars char="=" char1="&gt;" attribute="Operator" context="case_when2" beginRegion="CaseWhenRegion1"/>
-        <IncludeRules context="preExpression"/>
-        <WordDetect attribute="Control" insensitive="true" String="when"/>
-        <IncludeRules context="postExpression"/>
-      </context>
-
-      <context name="case_when2" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_decl">
-        <IncludeRules context="blank"/>
-        <WordDetect attribute="Control" context="#pop" insensitive="true" String="when" endRegion="CaseWhenRegion1"/>
-        <WordDetect attribute="Control" context="#pop#pop" insensitive="true" String="end" lookAhead="1" endRegion="CaseWhenRegion1"/>
-        <IncludeRules context="sequentialStatementKw"/>
-        <IncludeRules context="label"/>
-      </context>
-      <!-- 'when' and 'end case' are checked at the beginning of the line for better code folding -->
-
-<!--====while ===============-->
-      <context name="while" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preExpression"/>
-        <WordDetect attribute="Control" context="#pop!loop" insensitive="true" String="loop" beginRegion="LoopRegion1"/>
-        <IncludeRules context="postExpression"/>
-      </context>
-
-<!--====loop ===============-->
-      <context name="loop" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt">
-        <RegExpr attribute="Control" context="#pop" insensitive="true" endRegion="LoopRegion1"
-                 String="&bos;end\s+loop(&varname;)?\s*;"/>
-        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
-                    String="end" endRegion="CaseRegion1"/>
-      </context>
-
-<!--====declare ===============-->
-      <context name="declare" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preExpression"/>
-        <WordDetect attribute="Redirection" context="#pop!declare_begin" insensitive="true"
-                    String="begin"/>
-        <keyword attribute="Signal" context="signal" String="signals"/>
-        <IncludeRules context="postExpression"/>
-      </context>
-
-      <context name="declare_begin" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt">
-        <RegExpr attribute="Redirection" context="#pop" insensitive="true" endRegion="DeclareRegion1"
-                 String="&bos;end(\s+declare)?\s*;"/>
-        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
-                    String="end" endRegion="ProcedureRegion1"/>
-      </context>
-
-
-<!--====ENTITY ===============-->
-<!-- entity environment -->
-      <context name="entity" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
-        <IncludeRules context="blank"/>
-        <RegExpr attribute="Name" context="entity_main" beginRegion="EntityRegion1"
-                 String="(&identifier;)"/>
-      </context>
-
-      <context name="entity_main" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="entity_decl">
-        <RegExpr attribute="Control" context="#pop#pop" dynamic="1" insensitive="1"
-                 String="&bos;end(\s+entity\b)?(\s+%1)?\s*;" endRegion="EntityRegion1"/>
-        <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="true"
-                    String="end" endRegion="EntityRegion1"/>
-      </context>
-
-      <context name="entity_decl" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preDeclaration"/>
-        <WordDetect attribute="Control" context="#stay" insensitive="true" String="generic"/>
-        <WordDetect attribute="Control" context="#stay" insensitive="true" String="port"/>
-        <WordDetect attribute="Keyword" context="#pop!parallel_stmt" insensitive="true" String="begin"/>
-        <WordDetect attribute="Control" context="#pop" insensitive="true" String="end" lookAhead="1"/>
-        <IncludeRules context="postDeclaration"/>
-      </context>
-
-<!--====Configuration ===============-->
-<!-- configuration environment -->
-      <context name="configuration" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
-        <IncludeRules context="blank"/>
-        <RegExpr attribute="Name" context="conf_of" beginRegion="ConfigurationRegion1"
-                 String="(&identifier;)"/>
-      </context>
-
-      <context name="conf_of" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="conf_is">
-        <IncludeRules context="blank"/>
-        <WordDetect attribute="Keyword" context="conf_ref" insensitive="1" String="of"/>
-        <RegExpr attribute="Control" context="#pop#pop" insensitive="1" dynamic="1"
-                 String="&bos;end(\s+configuration\b)?(\s+%1)?\s*;" endRegion="ConfigurationRegion1"/>
-        <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="1"
-                    String="end" endRegion="ConfigurationRegion1"/>
-      </context>
-
-      <context name="conf_ref" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!conf_decl">
-        <IncludeRules context="blank"/>
-        <WordDetect attribute="Keyword" context="#pop!conf_decl" insensitive="1" String="is" />
-        <RegExpr attribute="Reference" context="#pop!conf_is" String="&identifier;"/>
-      </context>
-
-      <context name="conf_is" attribute="Control" lineEndContext="#stay" fallthroughContext="#pop#pop#pop">
-        <IncludeRules context="blank"/>
-        <WordDetect attribute="Keyword" context="#pop!conf_decl" insensitive="1" String="is" />
-      </context>
-
-      <context name="conf_decl" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preDeclaration"/>
-        <WordDetect attribute="Control" context="conf_for" insensitive="1" String="for"/>
-        <WordDetect attribute="Control" context="#pop" insensitive="1" lookAhead="1" String="end"/>
-        <IncludeRules context="postDeclaration"/>
-      </context>
-
-      <context name="conf_for" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preDeclaration"/>
-        <WordDetect attribute="Control" context="conf_for" insensitive="1" String="for"/>
-        <WordDetect attribute="Control" context="conf_for_end" insensitive="1" lookAhead="1" String="end"/>
-        <IncludeRules context="postDeclaration"/>
-      </context>
-
-      <context name="conf_for_end" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop#pop!expressionError">
-        <RegExpr attribute="Control" context="#pop#pop" insensitive="true"  String="&bos;end(\s+for\b)?\s*;"/>
-      </context>
-
-
-<!--====Basic Stuff ===============-->
-<!-- comment and spaces -->
-      <context name="blank" attribute="Normal Text" lineEndContext="#stay">
-        <DetectSpaces attribute="Normal Text" context="#stay"/>
-        <Detect2Chars attribute="Comment" context="comment" char="-" char1="-"/>
-      </context>
-
-<!-- declaration -->
-      <context name="preDeclaration" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="blank"/>
-        <AnyChar attribute="Operator" context="#stay" String="[&amp;&gt;&lt;=:+-*/|`].,"/>
-        <DetectChar attribute="Vector" context="string" char="&quot;"/>
-        <DetectChar attribute="Attribute" context="attribute" char="'"/>
-        <Int attribute="Integer" context="#stay"/>
-      </context>
-
-      <context name="postDeclaration" attribute="Normal Text" lineEndContext="#stay">
-        <WordDetect attribute="Signal" context="type" insensitive="1" String="type"/>
-        <WordDetect attribute="Control" context="function" insensitive="1" String="function"/>
-        <WordDetect attribute="Keyword" context="procedure" insensitive="1" String="procedure"/>
-        <WordDetect attribute="Keyword" context="component" insensitive="1" String="component"/>
-        <keyword attribute="Data Type" context="#stay" String="types"/>
-        <keyword attribute="Data Type" context="#stay" String="timeunits"/>
-        <keyword attribute="Signal" context="signal" String="signals"/>
-        <keyword attribute="Range" context="#stay" String="range"/>
-        <keyword attribute="Keyword" context="#stay" String="keywords"/>
-        <keyword attribute="Control" context="#stay" String="controls"/>
-        <DetectIdentifier attribute="Normal Text"/>
-      </context>
-
-<!-- label -->
-      <context name="label" attribute="Normal Text" lineEndContext="#stay">
-        <RegExpr attribute="Name" context="after_label" String="\b(?!process|constant|signal|variable)&varname;(?=\s*:(?!=))"/>
-      </context>
-
-      <context name="after_label" attribute="Normal Text" lineEndContext="#stay">
-        <DetectChar attribute="Operator" context="#pop" char=":"/>
-        <DetectSpaces attribute="Normal Text"/>
-      </context>
-
-<!-- parallel statement -->
-      <context name="parallel_stmt" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="parallel_stmt_decl">
-        <IncludeRules context="blank"/>
-        <WordDetect attribute="Control" context="#pop" insensitive="true" String="end" lookAhead="1"/>
-        <IncludeRules context="parallelStatementKw"/>
-        <IncludeRules context="label"/>
-      </context>
-
-      <context name="parallelStatementKw" attribute="Normal Text" lineEndContext="#stay">
-        <WordDetect attribute="Control" context="generate" insensitive="1" String="if" beginRegion="GenerateRegion1"/>
-        <WordDetect attribute="Control" context="generate" insensitive="1" String="for" beginRegion="GenerateRegion1"/>
-        <WordDetect attribute="Control" context="block" insensitive="1" String="block" beginRegion="BlockRegion1"/>
-        <WordDetect attribute="Process" context="process" insensitive="1" String="process" beginRegion="ProcessRegion1"/>
-        <WordDetect attribute="Keyword" context="#stay" insensitive="1" String="postponed"/>
-      </context>
-
-      <context name="parallel_stmt_decl" attribute="Normal Text" lineEndContext="#stay">
-        <DetectChar attribute="Normal Text" context="#pop" char=";"/>
-        <IncludeRules context="preDeclaration"/>
-        <WordDetect attribute="Keyword" context="#stay" insensitive="true" String="generic"/>
-        <WordDetect attribute="Keyword" context="#stay" insensitive="true" String="port"/>
-        <WordDetect attribute="Keyword" context="#stay" insensitive="true" String="map"/>
-        <IncludeRules context="postDeclaration"/>
-      </context>
-
-<!-- sequential statement -->
-      <context name="sequential_stmt" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_decl">
-        <IncludeRules context="blank"/>
-        <WordDetect attribute="Control" context="#pop" insensitive="true" String="end" lookAhead="1"/>
-        <IncludeRules context="sequentialStatementKw"/>
-        <IncludeRules context="label"/>
-      </context>
-
-      <context name="sequentialStatementKw" attribute="Normal Text" lineEndContext="#stay">
-        <WordDetect attribute="Control" context="if_start" insensitive="1" String="if" beginRegion="IfRegion1"/>
-        <WordDetect attribute="Control" context="case" insensitive="1" String="case" beginRegion="CaseRegion1"/>
-        <WordDetect attribute="Control" context="while" insensitive="1" String="while"/>
-        <WordDetect attribute="Control" context="while" insensitive="1" String="for"/>
-        <WordDetect attribute="Control" context="loop" insensitive="1" String="loop" beginRegion="LoopRegion1"/>
-        <WordDetect attribute="Keyword" context="declare" insensitive="1" String="declare" beginRegion="DeclareRegion1"/>
-      </context>
-
-      <context name="sequential_stmt_decl" attribute="Normal Text" lineEndContext="#stay">
-        <DetectChar attribute="Normal Text" context="#pop" char=";"/>
-        <IncludeRules context="preDeclaration"/>
-        <IncludeRules context="postDeclaration"/>
-      </context>
-
-<!-- if/for generate -->
-      <context name="generate" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preExpression"/>
-        <WordDetect attribute="Control" context="generate_stmt" insensitive="1" String="generate"/>
-        <IncludeRules context="postExpression"/>
-      </context>
-
-      <context name="generate_stmt" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="parallel_stmt">
-        <RegExpr attribute="Control" context="#pop#pop" insensitive="1"
-                 String="&bos;end(\s+generate\b)?(\s+&varname;)?\s*;" endRegion="GenerateRegion1"/>
-        <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="true"
-                    String="end" endRegion="GenerateRegion1"/>
-      </context>
-
-<!-- block -->
-      <context name="block" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="entity_decl">
-        <RegExpr attribute="Control" context="#pop#pop" insensitive="1"
-                 String="&bos;end(\s+block\b)?(\s+&varname;)?\s*;" endRegion="BlockRegion1"/>
-        <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="true"
-                    String="end" endRegion="BlockRegion1"/>
-      </context>
-
-<!-- process -->
-      <context name="process" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="process_decl">
-        <RegExpr attribute="Process" context="#pop" insensitive="1"
-                 String="&bos;end(\s+postponed)?(\s+process\b)?(\s+&varname;)?\s*;" endRegion="ProcessRegion1"/>
-        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
-                    String="end" endRegion="ProcessRegion1"/>
-      </context>
-
-      <context name="process_decl" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preDeclaration"/>
-        <WordDetect attribute="Process" context="#pop!sequential_stmt" insensitive="true" String="begin"/>
-        <WordDetect attribute="Control" context="#pop" insensitive="true" String="end" lookAhead="1"/>
-        <IncludeRules context="postDeclaration"/>
-      </context>
-
-<!-- expression -->
-      <context name="preExpression" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="blank"/>
-        <AnyChar attribute="Operator" context="#stay" String="[&amp;&gt;&lt;=:+-*/|`].,"/>
-        <DetectChar attribute="Vector" context="string" char="&quot;"/>
-        <DetectChar attribute="Attribute" context="attribute" char="'"/>
-        <Int attribute="Integer" context="#stay"/>
-      </context>
-
-      <context name="postExpression" attribute="Normal Text" lineEndContext="#stay">
-        <keyword attribute="Data Type" context="#stay" String="types"/>
-        <keyword attribute="Data Type" context="#stay" String="timeunits"/>
-        <keyword attribute="Range" context="#stay" String="range"/>
-        <keyword attribute="Keyword" context="#stay" String="keywords"/>
-        <DetectIdentifier attribute="Normal Text"/>
-      </context>
-
-<!-- expression error -->
-      <context name="expressionError" attribute="Error" lineEndContext="#stay">
-        <Detect2Chars attribute="Comment" context="comment" char="-" char1="-"/>
-        <DetectChar attribute="Error" context="#pop" char=";"/>
-      </context>
-
-<!-- other environments -->
-      <context name="comment" attribute="Comment" lineEndContext="#pop">
-        <DetectSpaces />
-        <IncludeRules context="##Comments"/>
-      </context>
-
-      <context name="string" attribute="Vector" lineEndContext="#stay">
-        <DetectChar attribute="Vector" context="#pop" char="&quot;"/>
-      </context>
-
-      <context name="attribute" attribute="Attribute" lineEndContext="#pop">
-        <DetectChar attribute="Attribute" context="quot in att" char="&quot;"/>
-        <DetectChar attribute="Attribute" context="par in att" char="("/>
-        <DetectChar attribute="Normal Text" context="#pop" char=" "/>
-        <DetectChar attribute="Attribute" context="#pop" char="'"/>
-        <AnyChar attribute="Attribute" context="#pop" String=")=&lt;&gt;;" lookAhead="true" />
-       </context>
-
-      <context name="quot in att" attribute="Attribute" lineEndContext="#stay">
-        <DetectChar attribute="Attribute" context="#pop" char="&quot;"/>
-      </context>
-      <context name="par in att" attribute="Attribute" lineEndContext="#stay">
-        <DetectChar attribute="Attribute" context="#pop" char=")"/>
-      </context>
-
-      <context name="signal" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preExpression"/>
-        <DetectChar attribute="Normal Text" context="#pop" char=";"/>
-        <IncludeRules context="postExpression"/>
-      </context>
-
-<!-- type -->
-      <context name="type" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="blank"/>
-        <WordDetect attribute="Signal" context="type_is" insensitive="1" String="is"/>
-        <DetectIdentifier attribute="Normal Text"/>
-      </context>
-
-      <context name="type_is" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop#pop!signal">
-        <IncludeRules context="blank"/>
-        <WordDetect attribute="Keyword" context="#pop#pop!type_record" insensitive="1" String="record" beginRegion="sig"/>
-        <WordDetect attribute="Keyword" context="#pop#pop!type_range" insensitive="1" String="range"/>
-      </context>
-
-<!-- type range -->
-      <context name="type_range" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preExpression"/>
-        <WordDetect attribute="Control" context="type_range_units" insensitive="1" String="units" beginRegion="UnitRegion1"/>
-        <IncludeRules context="postExpression"/>
-      </context>
-
-      <context name="type_range_units" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="type_range_units_decl">
-        <RegExpr attribute="Control" context="#pop#pop" insensitive="1"
-                 String="&bos;end\s+units(\s+&varname;)?\s*;" endRegion="UnitRegion1"/>
-        <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="true"
-                    String="end" endRegion="GenerateRegion1"/>
-      </context>
-
-      <context name="type_range_units_decl" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preExpression"/>
-        <WordDetect attribute="Control" context="#pop" insensitive="true" String="end" lookAhead="1"/>
-        <IncludeRules context="postExpression"/>
-      </context>
-
-<!-- type record -->
-      <context name="type_record" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="type_record_body">
-        <IncludeRules context="blank"/>
-        <RegExpr attribute="Keyword" context="#pop" insensitive="1"
-                 String="&bos;end\s+record;" endRegion="sig"/>
-        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
-                    String="end" endRegion="sig"/>
-      </context>
-
-      <context name="type_record_body" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="blank"/>
-        <DetectChar attribute="Normal Text" context="#stay" char=";"/>
-        <DetectChar attribute="Operator" context="#stay" char=":"/>
-        <WordDetect attribute="Keyword" context="#pop" insensitive="true" String="end" lookAhead="1"/>
-        <DetectIdentifier attribute="Normal Text"/>
-      </context>
-
-<!-- function -->
-      <context name="function" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="function_name">
-        <IncludeRules context="blank"/>
-        <DetectIdentifier attribute="Name" context="function_name"/>
-      </context>
-
-      <context name="function_name" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preExpression"/>
-        <WordDetect attribute="Control" context="function_return" insensitive="true" String="return"/>
-        <IncludeRules context="postExpression"/>
-      </context>
-
-      <context name="function_return" attribute="Normal Text" lineEndContext="#stay">
-        <DetectSpaces attribute="Normal Text" context="#stay"/>
-        <DetectChar attribute="Normal Text" context="#pop#pop#pop" char=";"/>
-        <WordDetect attribute="Keyword" context="#pop#pop#pop!function_is" insensitive="1" String="is" beginRegion="FunctionRegion1"/>
-        <keyword attribute="Data Type" context="#stay" String="types"/>
-      </context>
-
-      <context name="function_is" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preExpression"/>
-        <WordDetect attribute="Redirection" context="#pop!function_begin" insensitive="true"
-                    String="begin" beginRegion="FunctionRegion1"/>
-        <keyword attribute="Signal" context="signal" String="signals"/>
-        <IncludeRules context="postExpression"/>
-      </context>
-
-      <context name="function_begin" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt">
-        <RegExpr attribute="Redirection" context="#pop" insensitive="1"
-                 String="&bos;end(\s+function\b)?(\s+(&varname;|&quot;[^&quot;]+&quot;))?\s*;" endRegion="FunctionRegion1"/>
-        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
-                    String="end" endRegion="FunctionRegion1"/>
-      </context>
-
-<!-- procedure -->
-      <context name="procedure" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="blank"/>
-        <DetectIdentifier attribute="Name" context="procedure_name"/>
-      </context>
-
-      <context name="procedure_name" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preExpression"/>
-        <WordDetect attribute="Control" context="#pop#pop!procedure_is" insensitive="true" String="is"/>
-        <keyword attribute="Signal" context="signal" String="signals"/>
-        <IncludeRules context="postExpression"/>
-      </context>
-
-      <context name="procedure_is" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preExpression"/>
-        <WordDetect attribute="Redirection" context="#pop!procedure_begin" insensitive="true"
-                    String="begin" endRegion="ProcedureRegion1"/>
-        <keyword attribute="Signal" context="signal" String="signals"/>
-        <IncludeRules context="postExpression"/>
-      </context>
-
-      <context name="procedure_begin" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt">
-        <RegExpr attribute="Redirection" context="#pop" insensitive="1"
-                 String="&bos;end(\s+procedure)?(\s+&varname;)?\s*;" endRegion="ProcedureRegion1"/>
-        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
-                    String="end" endRegion="ProcedureRegion1"/>
-      </context>
-
-<!-- component -->
-      <context name="component" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
-        <IncludeRules context="blank"/>
-        <RegExpr attribute="Name" context="component_main" beginRegion="ComponentRegion1"
-                 String="(&identifier;)"/>
-      </context>
-
-      <context name="component_main" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="component_body">
-        <RegExpr attribute="Control" context="#pop#pop" dynamic="1" insensitive="1"
-                 String="&bos;end\s+component\b(\s+%1)?\s*;" endRegion="ComponentRegion1"/>
-        <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="true"
-                    String="end" endRegion="ComponentRegion1"/>
-      </context>
-
-      <context name="component_body" attribute="Normal Text" lineEndContext="#stay">
-        <IncludeRules context="preExpression"/>
-        <WordDetect attribute="Keyword" context="#stay" insensitive="true" String="generic"/>
-        <WordDetect attribute="Keyword" context="#stay" insensitive="true" String="port"/>
-        <WordDetect attribute="Control" context="#pop" insensitive="true" String="end" lookAhead="1"/>
-        <IncludeRules context="postExpression"/>
-      </context>
-
-    </contexts>
-    <itemDatas>
-      <itemData name="Normal Text" defStyleNum="dsNormal"/>
-      <itemData name="Keyword" defStyleNum="dsKeyword"/>
-      <itemData name="Data Type" defStyleNum="dsDataType"/>
-      <itemData name="Comment" defStyleNum="dsComment"/>
-      <itemData name="Integer" defStyleNum="dsDecVal"/>
+<!DOCTYPE language [
+  <!ENTITY varname  "[A-Za-z_][A-Za-z0-9_]*">
+  <!ENTITY identifier "(?:\b&varname;\b|\\[^\\]*\\)">
+  <!ENTITY designator "(?:\b&varname;\b|\\[^\\]*\\|&quot;[^&quot;]*&quot;)">
+  <!ENTITY label    "\b&varname;(?=\s*:(?!=))">
+  <!ENTITY bos      "\b">                        <!-- bol or space following -->
+]>
+<language name="VHDL" version="16" kateversion="5.62" section="Hardware" extensions="*.vhdl;*.vhd" mimetype="text/x-vhdl" author="Rocky Scaletta (rocky@purdue.edu), Stefan Endrullis (stefan@endrullis.de), Florent Ouchet (outchy@users.sourceforge.net), Chris Higgs (chiggs.99@gmail.com), Jan Michel (jan@mueschelsoft.de), Luigi Calligaris (luigi.calligaris@stfc.ac.uk)">
+  <!-- BNF: https://github.com/antlr/grammars-v4/blob/master/vhdl/vhdl.g4 (VHDL-2005) -->
+  <!-- Based on VHDL-2008 -->
+  <highlighting>
+    <list name="keywordsToplevel">
+      <item>file</item>
+      <item>library</item>
+      <item>use</item>
+      <item>with</item>
+    </list>
+
+    <list name="keywords">
+      <item>access</item>
+      <item>after</item>
+      <item>alias</item>
+      <item>all</item>
+      <item>array</item>
+      <item>assert</item>
+      <item>assume</item>
+      <item>assume_guarantee</item>
+      <item>attribute</item>
+      <item>begin</item>
+      <item>block</item>
+      <item>body</item>
+      <item>bus</item>
+      <item>case</item>
+      <item>component</item>
+      <item>constant</item>
+      <item>context</item>
+      <item>cover</item>
+      <item>default</item>
+      <item>disconnect</item>
+      <item>downto</item>
+      <item>else</item>
+      <item>elsif</item>
+      <item>end</item>
+      <item>fairness</item>
+      <item>falling_edge</item>
+      <item>false</item>
+      <item>file</item>
+      <item>for</item>
+      <item>force</item>
+      <item>function</item>
+      <item>generate</item>
+      <item>generic</item>
+      <item>group</item>
+      <item>guarded</item>
+      <item>if</item>
+      <item>impure</item>
+      <item>inertial</item>
+      <item>is</item>
+      <item>label</item>
+      <item>linkage</item>
+      <item>literal</item>
+      <item>map</item>
+      <item>new</item>
+      <item>null</item>
+      <item>of</item>
+      <item>on</item>
+      <item>open</item>
+      <item>others</item>
+      <item>package</item>
+      <item>parameter</item>
+      <item>port</item>
+      <item>postponed</item>
+      <item>procedure</item>
+      <item>process</item>
+      <item>property</item>
+      <item>protected</item>
+      <item>pure</item>
+      <item>range</item>
+      <item>record</item>
+      <item>register</item>
+      <item>reject</item>
+      <item>release</item>
+      <item>report</item>
+      <item>rising_edge</item>
+      <item>select</item>
+      <item>sequence</item>
+      <item>severity</item>
+      <item>signal</item>
+      <item>shared</item>
+      <item>strong</item>
+      <item>subtype</item>
+      <item>then</item>
+      <item>to</item>
+      <item>transport</item>
+      <item>true</item>
+      <item>type</item>
+      <item>use</item>
+      <item>unaffected</item>
+      <item>units</item>
+      <item>until</item>
+      <item>variable</item>
+      <item>view</item>
+      <item>vmode</item>
+      <item>vprop</item>
+      <item>vunit</item>
+      <item>wait</item>
+      <item>when</item>
+      <item>with</item>
+      <item>note</item>
+      <item>warning</item>
+      <item>error</item>
+      <item>failure</item>
+      <item>in</item>
+      <item>inout</item>
+      <item>out</item>
+      <item>buffer</item>
+      <item>and</item>
+      <item>abs</item>
+      <item>or</item>
+      <item>xor</item>
+      <item>xnor</item>
+      <item>not</item>
+      <item>mod</item>
+      <item>nand</item>
+      <item>nor</item>
+      <item>rem</item>
+      <item>rol</item>
+      <item>ror</item>
+      <item>sla</item>
+      <item>sra</item>
+      <item>sll</item>
+      <item>srl</item>
+    </list>
+
+    <list name="controls">
+      <item>exit</item>
+      <item>next</item>
+      <item>return</item>
+    </list>
+
+    <list name="signals">
+      <item>signal</item>
+      <item>variable</item>
+      <item>constant</item>
+      <item>type</item>
+      <item>attribute</item>
+    </list>
+
+    <list name="range">
+      <item>to</item>
+      <item>downto</item>
+      <item>others</item>
+    </list>
+
+    <list name="timeunits">
+      <item>fs</item>
+      <item>ps</item>
+      <item>ns</item>
+      <item>us</item>
+      <item>ms</item>
+      <item>sec</item>
+      <item>min</item>
+      <item>hr</item>
+    </list>
+
+    <list name="types">
+      <item>bit</item>
+      <item>bit_vector</item>
+      <item>character</item>
+      <item>boolean</item>
+      <item>boolean_vector</item>
+      <item>integer</item>
+      <item>integer_vector</item>
+      <item>real</item>
+      <item>real_vector</item>
+      <item>time</item>
+      <item>time_vector</item>
+      <item>delay_length</item>
+      <item>string</item>
+      <item>severity_level</item>
+      <item>positive</item>
+      <item>natural</item>
+      <item>file_open_kind</item>
+      <item>file_open_status</item>
+      <item>signed</item>
+      <item>unsigned</item>
+      <item>unresolved_unsigned</item>
+      <item>unresolved_signed</item>
+      <item>line</item>
+      <item>text</item>
+      <item>side</item>
+      <item>width</item>
+      <item>std_logic</item>
+      <item>std_logic_vector</item>
+      <item>std_ulogic</item>
+      <item>std_ulogic_vector</item>
+      <item>x01</item>
+      <item>x01z</item>
+      <item>ux01</item>
+      <item>ux01z</item>
+      <item>qsim_state</item>
+      <item>qsim_state_vector</item>
+      <item>qsim_12state</item>
+      <item>qsim_12state_vector</item>
+      <item>qsim_strength</item>
+      <item>mux_bit</item>
+      <item>mux_vector</item>
+      <item>reg_bit</item>
+      <item>reg_vector</item>
+      <item>wor_bit</item>
+      <item>wor_vector</item>
+    </list>
+
+    <list name="instantiated">
+      <item>configuration</item>
+      <item>component</item>
+      <item>entity</item>
+    </list>
+
+    <contexts>
+
+
+<!-- start / global environment -->
+      <context name="start" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+
+        <WordDetect attribute="Control" context="entity" insensitive="1" String="entity"/>
+        <WordDetect attribute="Control" context="configuration" insensitive="1" String="configuration"/>
+        <WordDetect attribute="Control" context="architecture" insensitive="1" String="architecture"/>
+        <WordDetect attribute="Control" context="package" insensitive="1" String="package"/>
+        <WordDetect attribute="Keyword" context="context" insensitive="1" String="context"/>
+
+        <keyword attribute="Keyword" context="#stay" String="keywordsToplevel"/>
+
+        <WordDetect attribute="Signal" context="type" insensitive="1" String="type"/>
+        <WordDetect attribute="Redirection" context="function" insensitive="1" String="function"/>
+        <WordDetect attribute="Keyword" context="procedure" insensitive="1" String="procedure" beginRegion="ProcedureRegion1"/>
+        <WordDetect attribute="Control" context="component" insensitive="1" String="component"/>
+        <WordDetect attribute="Keyword" context="view" insensitive="1" String="view" beginRegion="sig"/>
+        <keyword attribute="Data Type" context="#stay" String="types"/>
+        <keyword attribute="Data Type" context="#stay" String="timeunits"/>
+        <keyword attribute="Range" context="#stay" String="range"/>
+        <keyword attribute="Signal" context="signal" String="signals"/>
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Control" context="#stay" String="controls"/>
+        <DetectIdentifier attribute="Normal Text"/>
+      </context>
+
+<!--
+package ::=
+    *package* identifier *is* *new* name
+        [ *generic* *map* ( association_list ) ] ;
+
+  | *package* identifier *is*
+        [ *generic* ( interface_list ) ;
+        [ *generic* *map* ( association_list ) ; ] ]
+        { package_declarative_item }
+    *end* [ *package* ] [ identifier ] ;
+
+  | *package *body* identifier *is*
+        { process_declarative_item }
+    *end* [ *package* *body* ] [ identifier ] ;
+-->
+      <context name="package" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
+        <IncludeRules context="blank"/>
+        <WordDetect attribute="Control" context="#pop!packagebody" insensitive="true" String="body"/>
+        <RegExpr attribute="Name" context="package_main" beginRegion="PackageRegion1"
+                 String="(&identifier;)"/>
+      </context>
+
+      <context name="package_main" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="package_is">
+        <RegExpr attribute="Control" context="#pop#pop" dynamic="1" insensitive="1"
+                 String="&bos;end(\s+package\b)?(\s+%1)?\s*;" endRegion="PackageRegion1"/>
+        <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="true"
+                    String="end" endRegion="PackageRegion1"/>
+      </context>
+
+      <context name="package_is" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!package_decl">
+        <IncludeRules context="blank"/>
+        <WordDetect attribute="Keyword" insensitive="1" String="is"/>
+        <WordDetect attribute="Keyword" insensitive="1" String="new" context="#pop#pop#pop!package_is_new"/>
+      </context>
+
+      <context name="package_is_new" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!package_is_new_main">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="pop_end"/>
+        <DetectIdentifier attribute="Name" context="#pop!package_is_new_main"/>
+        <RangeDetect attribute="Name" context="#pop!package_is_new_main" char="&quot;" char1="&quot;"/>
+        <RangeDetect attribute="Name" context="#pop!package_is_new_main" char="\" char1="\"/>
+      </context>
+
+      <context name="package_is_new_main" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="blank"/>
+        <DetectChar attribute="Normal Text" context="#pop" char=";" endRegion="PackageRegion1"/>
+        <DetectChar attribute="Operator" char="."/>
+        <IncludeRules context="pop_end"/>
+        <IncludeRules context="find_instantiated_map"/>
+      </context>
+
+      <context name="package_decl" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!package_declarative_list">
+        <IncludeRules context="blank"/>
+        <DetectChar attribute="Normal Text" char=";"/>
+        <IncludeRules context="enclosed_interface_list"/>
+        <IncludeRules context="find_instantiated_map"/>
+        <WordDetect attribute="Control" insensitive="true" String="generic"/>
+      </context>
+
+      <context name="package_declarative_list" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_expr">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="package_declarative_start_expr"/>
+        <IncludeRules context="start_simple_expr"/>
+      </context>
+
+      <!-- package body environment -->
+
+      <context name="packagebody" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
+        <IncludeRules context="blank"/>
+        <RegExpr attribute="Name" context="packagebody_main" beginRegion="PackageBodyRegion1"
+                 String="(&identifier;)"/>
+      </context>
+
+      <context name="packagebody_main" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="packagebody_is">
+        <RegExpr attribute="Control" context="#pop#pop" dynamic="1" insensitive="1"
+                 String="&bos;end(\s+package\s+body\b)?(\s+%1)?\s*;" endRegion="PackageBodyRegion1"/>
+        <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="true"
+                    String="end" endRegion="PackageBodyRegion1"/>
+      </context>
+
+      <context name="packagebody_is" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!package_declarative_list">
+        <IncludeRules context="blank"/>
+        <WordDetect attribute="Keyword" context="#pop!package_declarative_list" insensitive="1" String="is"/>
+      </context>
+
+<!--
+architecture ::=
+    *architecture* identifier *of* name *is*
+        { block_declarative_item }
+    *begin*
+        { concurrent_statement }
+    *end* [ *architecture* ] [ identifier ] ;
+-->
+      <context name="architecture" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="blank"/>
+        <RegExpr attribute="Name" context="arch_end" beginRegion="ArchitectureRegion1"
+                 String="(&identifier;)"/>
+      </context>
+
+      <context name="arch_end" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="arch_of">
+        <RegExpr attribute="Control" context="#pop#pop" insensitive="1" dynamic="1"
+                 String="&bos;end(\s+architecture\b)?(\s+%1)?\s*;" endRegion="ArchitectureRegion1"/>
+        <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="1"
+                    String="end" endRegion="ArchitectureRegion1"/>
+      </context>
+
+      <context name="arch_of" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!block_declarative_stmt">
+        <IncludeRules context="blank"/>
+        <WordDetect attribute="Keyword" context="#pop!arch_ref" insensitive="1" String="of"/>
+      </context>
+
+      <context name="arch_ref" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!block_declarative_stmt">
+        <IncludeRules context="blank"/>
+        <WordDetect attribute="Keyword" context="#pop!block_declarative_stmt" insensitive="1" String="is" />
+        <IncludeRules context="reference"/>
+      </context>
+
+      <context name="reference" attribute="Normal Text" lineEndContext="#stay">
+        <DetectIdentifier attribute="Reference"/>
+        <RangeDetect attribute="Reference" char="&quot;" char1="&quot;"/>
+        <RangeDetect attribute="Reference" char="\" char1="\"/>
+        <DetectChar attribute="Reference" char="."/>
+      </context>
+
+<!-- { block_declarative_item } -->
+      <context name="block_declarative_stmt" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_expr">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="block_declarative_start_expr"/>
+        <WordDetect attribute="Control" context="#pop!concurrent_stmt" insensitive="1" String="begin"/>
+        <IncludeRules context="start_simple_expr"/>
+      </context>
+
+      <context name="block_declarative_start_expr" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="package_declarative_start_expr"/>
+        <WordDetect attribute="Control" context="for_block_decl" insensitive="1" String="for" beginRegion="LoopRegion1"/>
+      </context>
+
+      <context name="package_declarative_start_expr" attribute="Normal Text" lineEndContext="#stay">
+        <WordDetect attribute="Control" context="component" insensitive="1" String="component"/>
+        <IncludeRules context="process_declarative_start_expr"/>
+      </context>
+
+      <context name="process_declarative_start_expr" attribute="Normal Text" lineEndContext="#stay">
+        <WordDetect attribute="Control" context="package" insensitive="1" String="package"/>
+        <WordDetect attribute="Signal" context="type" insensitive="1" String="type"/>
+        <WordDetect attribute="Redirection" context="function" insensitive="1" String="function"/>
+        <WordDetect attribute="Keyword" context="procedure" insensitive="1" String="procedure" beginRegion="ProcedureRegion1"/>
+        <!-- *shared* *variable* ... -->
+        <WordDetect attribute="Keyword" insensitive="1" String="shared"/>
+        <!-- *impure* *function* ... -->
+        <WordDetect attribute="Keyword" insensitive="1" String="impure"/>
+        <!-- *pure* *function* ... -->
+        <WordDetect attribute="Keyword" insensitive="1" String="pure"/>
+        <WordDetect attribute="Keyword" context="view" insensitive="1" String="view" beginRegion="sig"/>
+        <keyword attribute="Signal" context="signal" String="signals"/>
+      </context>
+
+      <context name="start_simple_expr" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="pop_end"/>
+        <keyword attribute="Keyword" context="sequential_stmt_expr" String="keywords"/>
+        <DetectIdentifier attribute="Normal Text" context="sequential_stmt_expr"/>
+      </context>
+
+      <context name="start_simple_expr_then_pop" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="pop_end"/>
+        <keyword attribute="Keyword" context="#pop!sequential_stmt_expr" String="keywords"/>
+        <DetectIdentifier attribute="Normal Text" context="#pop!sequential_stmt_expr"/>
+      </context>
+
+<!-- { concurrent_statement } -->
+      <context name="concurrent_stmt" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="concurrent_stmt_item">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="pop_end"/>
+        <IncludeRules context="concurrent_label"/>
+      </context>
+
+      <context name="concurrent_label" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Name" context="concurrent_stmt_label" String="\b(?!(process|constant|signal|variable)\b)&label;"/>
+      </context>
+
+      <context name="concurrent_stmt_label" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar attribute="Operator" context="#pop!concurrent_stmt_labelized_item" char=":"/>
+        <DetectSpaces attribute="Normal Text"/>
+      </context>
+
+      <context name="concurrent_stmt_labelized_item" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!sequential_stmt_expr">
+        <IncludeRules context="blank"/>
+        <WordDetect attribute="Control" context="#pop!case_generate" insensitive="1" String="case" beginRegion="CaseRegion1"/>
+        <WordDetect attribute="Control" context="#pop!for_generate" insensitive="1" String="for" beginRegion="LoopRegion1"/>
+        <WordDetect attribute="Control" context="#pop!if_generate" insensitive="1" String="if" beginRegion="IfRegion1"/>
+        <keyword attribute="Keyword" context="#pop!instantiated_unit" String="instantiated"/>
+        <IncludeRules context="concurrent_stmt_item_start"/>
+        <IncludeRules context="instantiated_unit_name"/>
+        <DetectIdentifier attribute="Normal Text" context="#pop!sequential_stmt_expr"/>
+      </context>
+
+      <context name="concurrent_stmt_item" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!sequential_stmt_expr">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="concurrent_stmt_item_start"/>
+        <DetectIdentifier attribute="Normal Text" context="#pop!sequential_stmt_expr"/>
+      </context>
+
+      <context name="concurrent_stmt_item_start" attribute="Normal Text" lineEndContext="#stay">
+        <WordDetect attribute="Keyword" context="#stay" insensitive="1" String="postponed"/>
+        <WordDetect attribute="Control" context="#pop!package" insensitive="1" String="package"/>
+        <WordDetect attribute="Signal" context="#pop!type" insensitive="1" String="type"/>
+        <WordDetect attribute="Redirection" context="#pop!function" insensitive="1" String="function"/>
+        <WordDetect attribute="Keyword" context="#pop!procedure" insensitive="1" String="procedure" beginRegion="ProcedureRegion1"/>
+        <WordDetect attribute="Process" context="#pop!process" insensitive="1" String="process" beginRegion="ProcessRegion1"/>
+        <WordDetect attribute="Control" context="#pop!block" insensitive="1" String="block" beginRegion="BlockRegion1"/>
+        <WordDetect attribute="Keyword" context="#pop!view" insensitive="1" String="view"/>
+        <keyword attribute="Signal" context="#pop!signal" String="signals" beginRegion="sig"/>
+        <IncludeRules context="sequential_stmt_item_start"/>
+        <keyword attribute="Keyword" context="#pop!sequential_stmt_expr" String="keywords"/>
+      </context>
+
+<!--
+block_declarative_item_for ::=
+    *for* instantiation_list : name
+        [ *use* entity_aspect ]
+        [ generic_map_aspect ]
+        [ port_map_aspect ] ;
+    [ block_declarative_item_for_end ]
+
+block_declarative_item_for ::=
+        [ *use* *vunit* name_list ;
+          { *use* *vunit* name_list ; } ]
+      *end* *for* ;
+    | *end* *for* ;
+-->
+      <context name="for_block_decl" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+        <DetectChar attribute="Normal Text" context="#pop!for_block_unit" char=";" endRegion="InstanceRegion1"/>
+        <WordDetect context="#pop!expressionError" insensitive="1" String="end"/>
+        <IncludeRules context="find_instantiated_map"/>
+        <IncludeRules context="postExpression"/>
+      </context>
+
+      <context name="for_block_unit" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!for_block_end_region">
+        <IncludeRules context="blank"/>
+        <WordDetect context="sequential_stmt_expr" insensitive="1" String="use"/>
+        <WordDetect context="for_block_end" insensitive="1" String="end"/>
+      </context>
+
+      <context name="for_block_end" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Control" context="#pop#pop" insensitive="1"
+                 String="&bos;end\s+for\s*;" endRegion="LoopRegion1"/>
+        <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="1"
+                    String="end" endRegion="LoopRegion1"/>
+      </context>
+
+      <context name="for_block_end_region" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr context="#pop" String="." lookAhead="1" endRegion="LoopRegion1"/>
+      </context>
+
+<!--
+instantiated ::=
+    instantiated_unit
+    instantiated_unit_decl
+
+instantiated_unit ::=
+      [ *component* ] name
+    | *entity* name [ ( identifier ) ]
+    | *configuration* name
+
+instantiated_unit_decl ::=
+    [ generic_map_aspect ] [ port_map_aspect ] ;
+
+port_map_aspect ::=
+    *port* *map* ( association_list )
+
+generic_map_aspect ::=
+    *generic* *map* ( association_list )
+-->
+      <context name="instantiated_unit" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!instantiated_unit_decl">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="instantiated_unit_name"/>
+      </context>
+
+      <context name="instantiated_unit_name" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Reference" context="#pop!instantiated_unit_decl" String="&varname;(\s*\.\s*&varname;)?" beginRegion="InstanceRegion1"/>
+      </context>
+
+      <context name="instantiated_unit_decl" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!end_instance_region">
+        <IncludeRules context="blank"/>
+        <DetectChar attribute="Normal Text" context="#pop" char=";" endRegion="InstanceRegion1"/>
+        <!-- *entity* name ( identifier ) -->
+        <!--               ^_____________ -->
+        <DetectChar attribute="Normal Text" context="instantiated_unit_identifier" char="("/>
+        <IncludeRules context="find_instantiated_map"/>
+      </context>
+
+      <context name="find_instantiated_map" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Keyword" context="instance_map_start" insensitive="true" String="&bos;(port|generic)\s+map\b\s*"/>
+      </context>
+
+      <context name="instantiated_unit_identifier" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop#pop!end_instance_region">
+        <IncludeRules context="blank"/>
+        <DetectChar attribute="Error" context="#pop" char=")"/>
+        <RegExpr attribute="Normal Text" context="#pop!instantiated_unit_identifier_end" String="&identifier;"/>
+      </context>
+      <context name="instantiated_unit_identifier_end" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop#pop!end_instance_region">
+        <IncludeRules context="blank"/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+      </context>
+
+      <context name="end_instance_region" attribute="Normal Text" lineEndContext="#stay">
+        <WordDetect context="#pop" insensitive="1" String="end" lookAhead="1" endRegion="InstanceRegion1"/>
+        <DetectIdentifier context="#pop" lookAhead="1" endRegion="InstanceRegion1"/>
+        <RegExpr context="#pop" String="." lookAhead="1" endRegion="InstanceRegion1"/>
+      </context>
+
+      <context name="instance_map_start" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
+        <IncludeRules context="blank"/>
+        <DetectChar attribute="Normal Text" context="#pop!instance_map" char="(" beginRegion="InstanceMapRegion"/>
+      </context>
+
+      <!-- Inside a port or generic map -->
+      <context name="instance_map" attribute="Normal Text" lineEndContext="#stay">
+        <AnyChar attribute="Error" context="#stay" String="&lt;;:"/>
+        <IncludeRules context="preExpression"/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" endRegion="InstanceMapRegion"/>
+        <IncludeRules context="enclosed_association_list"/>
+        <IncludeRules context="postExpression"/>
+      </context>
+
+<!--
+if ::=
+    *if* expression *then*
+        { sequential_statement }
+    { *elsif* expression *then*
+        { sequential_statement } }
+    [ *else*
+        { sequential_statement } ]
+    *end* *if* [ label ] ;
+-->
+      <context name="if_start" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="if_expr">
+        <RegExpr attribute="Control" context="#pop" insensitive="true" endRegion="IfRegion1"
+                 String="&bos;end\s+if(\s+&varname;)?\s*;"/>
+        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
+                    String="end" endRegion="IfRegion1"/>
+      </context>
+
+      <context name="if_expr" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+        <IncludeRules context="pop_end"/>
+        <WordDetect attribute="Control" context="if_body" insensitive="true" String="then"/>
+        <IncludeRules context="postExpression"/>
+      </context>
+
+      <context name="if_body" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_item">
+        <IncludeRules context="blank"/>
+        <WordDetect attribute="Control" context="#pop" insensitive="true" String="elsif"/>
+        <WordDetect attribute="Control" context="#pop#pop!sequential_stmt" insensitive="true" String="else"/>
+        <WordDetect attribute="Control" context="#pop#pop" insensitive="true" String="end" lookAhead="1"/>
+        <IncludeRules context="sequential_label"/>
+      </context>
+
+<!--
+case ::=
+    *case* [ ? ] expression *is*
+        *when* choices => { sequential_statement }
+        { *when* choices => { sequential_statement } }
+    *end* *case* [ ? ] [ label ] ;
+-->
+      <context name="case" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="case_expr">
+        <RegExpr attribute="Control" context="#pop" insensitive="true" endRegion="CaseRegion1"
+                 String="&bos;end\s+case(\s*[?])?(?:\s*\b&varname;)?\s*;"/>
+        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
+                    String="end" endRegion="CaseRegion1"/>
+      </context>
+
+      <context name="case_expr" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+        <IncludeRules context="pop_end"/>
+        <WordDetect attribute="Keyword" context="#pop!case_is" insensitive="true" String="is"/>
+        <DetectChar char=";" attribute="Normal Text" context="#pop!case_body" beginRegion="CaseWhenRegion1"/>
+        <IncludeRules context="postExpression"/>
+      </context>
+
+      <context name="case_is" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!case_when">
+        <IncludeRules context="blank"/>
+        <WordDetect attribute="Control" context="#pop!case_when" insensitive="true" String="when"/>
+      </context>
+
+      <context name="case_when" attribute="Normal Text" lineEndContext="#stay">
+        <Detect2Chars char="=" char1="&gt;" attribute="Operator" context="#pop!case_body" beginRegion="CaseWhenRegion1"/>
+        <IncludeRules context="preExpression"/>
+        <DetectChar char=";" attribute="Normal Text" context="#pop!case_body" beginRegion="CaseWhenRegion1"/>
+        <IncludeRules context="case_when_post_expr"/>
+      </context>
+
+      <context name="case_when_post_expr" attribute="Normal Text" lineEndContext="#stay">
+        <WordDetect attribute="Keyword" insensitive="1" String="others"/>
+        <IncludeRules context="pop_end"/>
+        <IncludeRules context="keywordExpression"/>
+        <DetectIdentifier attribute="Name"/>
+      </context>
+
+      <context name="case_body" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_item">
+        <IncludeRules context="blank"/>
+        <WordDetect attribute="Control" context="#pop!case_when" insensitive="1" String="when" endRegion="CaseWhenRegion1"/>
+        <WordDetect context="#pop" insensitive="1" String="end" lookAhead="1" endRegion="CaseWhenRegion1"/>
+        <IncludeRules context="sequential_label"/>
+      </context>
+      <!-- 'when' and 'end case' are checked at the beginning of the line for better code folding -->
+
+<!--
+while ::=
+    *while* expression *loop*
+        { sequential_statement }
+    *end* *loop* [ label ] ;
+
+for ::=
+    *for* identifier *in* discrete_range *loop*
+        { sequential_statement }
+    *end* *loop* [ label ] ;
+-->
+      <context name="while" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+        <WordDetect attribute="Control" context="#pop!loop" insensitive="true" String="loop" beginRegion="LoopRegion1"/>
+        <IncludeRules context="pop_end"/>
+        <IncludeRules context="postExpression"/>
+      </context>
+
+<!--
+loop ::=
+    *loop*
+        { sequential_statement }
+    *end* *loop* [ label ] ;
+-->
+      <context name="loop" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt">
+        <RegExpr attribute="Control" context="#pop" insensitive="true" endRegion="LoopRegion1"
+                 String="&bos;end\s+loop(\s+&varname;)?\s*;"/>
+        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
+                    String="end" endRegion="LoopRegion1"/>
+      </context>
+
+<!--====declare ===============-->
+      <context name="declare" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="block_body">
+        <RegExpr attribute="Keyword" context="#pop" insensitive="true" endRegion="DeclareRegion1"
+                 String="&bos;end(\s+declare)?\s*;"/>
+        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
+                    String="end" endRegion="DeclareRegion1"/>
+      </context>
+
+<!--
+entity ::=
+    *entity* identifier *is*
+        [ entity_header ]
+        { entity_declarative_item }
+    [ *begin*
+        { entity_statement } ]
+    *end* [ *entity* ] [ identifier ] ;
+
+entity_header ::=
+    [ *generic* ( interface_list ) ; ]
+    [ *port* ( interface_list ) ; ]
+-->
+      <context name="entity" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
+        <IncludeRules context="blank"/>
+        <RegExpr attribute="Name" context="entity_main" beginRegion="EntityRegion1"
+                 String="(&identifier;)"/>
+      </context>
+
+      <context name="entity_main" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="entity_header">
+        <RegExpr attribute="Control" context="#pop#pop" dynamic="1" insensitive="1"
+                 String="&bos;end(\s+entity)?(\s+%1)?\s*;" endRegion="EntityRegion1"/>
+        <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="true"
+                    String="end" endRegion="EntityRegion1"/>
+      </context>
+
+      <context name="entity_header" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!entity_decl">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="enclosed_interface_list"/>
+        <DetectChar attribute="Normal Text" char=";"/>
+        <WordDetect attribute="Control" insensitive="true" String="generic"/>
+        <WordDetect attribute="Control" insensitive="true" String="port"/>
+        <WordDetect attribute="Keyword" insensitive="true" String="is"/>
+      </context>
+
+      <context name="entity_decl" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_expr">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="process_declarative_start_expr"/>
+        <WordDetect attribute="Keyword" context="#pop!entity_stmt" insensitive="1" String="begin"/>
+        <IncludeRules context="start_simple_expr"/>
+      </context>
+
+      <context name="entity_stmt" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="entity_stmt_item">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="pop_end"/>
+        <RegExpr attribute="Name" context="entity_stmt_label" String="&label;"/>
+      </context>
+
+      <context name="entity_stmt_label" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar attribute="Operator" context="#pop!entity_stmt_item" char=":"/>
+        <DetectSpaces attribute="Normal Text"/>
+      </context>
+
+      <context name="entity_stmt_item" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!sequential_stmt_expr">
+        <IncludeRules context="blank"/>
+        <WordDetect attribute="Keyword" context="#stay" insensitive="1" String="postponed"/>
+        <WordDetect attribute="Process" context="#pop!process" insensitive="1" String="process" beginRegion="ProcessRegion1"/>
+        <IncludeRules context="start_simple_expr_then_pop"/>
+      </context>
+
+<!--
+configuration ::=
+    *configuration* identifier *of* name *is*
+        { configuration_declarative_item }
+        { verification_unit_binding_indication ; }
+        *for* block_specification
+            { use_clause }
+            { configuration_item }
+        *end* *for* ;
+    *end* [ *configuration* ] [ identifier ] ;
+-->
+      <context name="configuration" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
+        <IncludeRules context="blank"/>
+        <RegExpr attribute="Name" context="conf_of" beginRegion="ConfigurationRegion1"
+                 String="(&identifier;)"/>
+      </context>
+
+      <context name="conf_of" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="conf_is">
+        <IncludeRules context="blank"/>
+        <WordDetect attribute="Keyword" context="conf_ref" insensitive="1" String="of"/>
+        <RegExpr attribute="Control" context="#pop#pop" insensitive="1" dynamic="1"
+                 String="&bos;end(\s+configuration\b)?(\s+%1)?\s*;" endRegion="ConfigurationRegion1"/>
+        <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="1"
+                    String="end" endRegion="ConfigurationRegion1"/>
+      </context>
+
+      <context name="conf_ref" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!conf_decl">
+        <IncludeRules context="blank"/>
+        <WordDetect attribute="Keyword" context="#pop!conf_decl" insensitive="1" String="is" />
+        <IncludeRules context="reference"/>
+      </context>
+
+      <context name="conf_is" attribute="Control" lineEndContext="#stay" fallthroughContext="#pop#pop#pop">
+        <IncludeRules context="blank"/>
+        <WordDetect attribute="Keyword" context="#pop!conf_decl" insensitive="1" String="is" />
+      </context>
+
+      <context name="conf_decl" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+        <WordDetect attribute="Control" context="conf_for" insensitive="1" String="for" beginRegion="LoopRegion1"/>
+        <IncludeRules context="pop_end"/>
+        <IncludeRules context="postExpression"/>
+      </context>
+
+      <context name="conf_for" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+        <WordDetect attribute="Control" context="conf_for" insensitive="1" String="for" beginRegion="LoopRegion1"/>
+        <WordDetect attribute="Control" context="conf_for_end" insensitive="1" lookAhead="1" String="end" endRegion="LoopRegion1"/>
+        <IncludeRules context="postExpression"/>
+      </context>
+
+      <context name="conf_for_end" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop#pop!expressionError">
+        <RegExpr attribute="Control" context="#pop#pop" insensitive="true"  String="&bos;end(\s+for\b)?\s*;"/>
+      </context>
+
+<!--
+context ::=
+    *context* identifier *is*
+        { context_item }
+    *end* [ *context* ] [ identifier ] ;
+
+  | *context* selected_name { , selected_name } ;
+
+ context_item ::=
+      *library* identifier { , identifier } ;
+    | *use* selected_name { , selected_name } ;
+    | *context* selected_name { , selected_name } ;
+
+selected_name ::= prefix . suffix
+-->
+      <context name="context" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!sequential_stmt_expr">
+        <IncludeRules context="blank"/>
+        <RegExpr attribute="Name" context="#pop!context_main" beginRegion="ContextRegion1"
+                 String="(&identifier;)(?!\.)"/>
+      </context>
+
+      <context name="context_main" attribute="Control" lineEndContext="#stay" fallthroughContext="context_decl">
+        <RegExpr attribute="Keyword" context="#pop" dynamic="1" insensitive="1"
+                 String="&bos;end(\s+context)?(\s+%1)?\s*;" endRegion="ContextRegion1"/>
+        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="1"
+                    String="end" endRegion="ContextRegion1"/>
+      </context>
+
+      <context name="context_decl" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+        <keyword attribute="Keyword" context="sequential_stmt_expr" String="keywordsToplevel"/>
+        <IncludeRules context="pop_end"/>
+        <IncludeRules context="postExpression"/>
+      </context>
+
+
+<!--====Basic Stuff ===============-->
+<!-- comment and spaces -->
+      <context name="blank" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces attribute="Normal Text" context="#stay"/>
+        <Detect2Chars attribute="Comment" context="comment" char="-" char1="-"/>
+        <Detect2Chars attribute="Comment" context="block_comment" char="/" char1="*"/>
+      </context>
+
+<!--
+abstract_literal ::=
+    integer [ . integer ] [ exponent ]
+  | base # based_integer [ . based_integer ] # [ exponent ]
+
+base ::= integer
+integer ::= digit { [ _ ] digit }
+exponent ::= E [ + ] integer | E – integer
+based_integer ::= extended_digit { [ _ ] extended_digit }
+extended_digit ::= digit | letter
+-->
+      <context name="abstract_literal" attribute="Integer" lineEndContext="#pop" fallthroughContext="exponent">
+        <DetectChar attribute="Operator" char="."/>
+        <DetectChar attribute="Operator" context="based_integer" char="#"/>
+        <RegExpr attribute="Integer" context="exponent" String="_?[0-9]++(_[0-9]+)*"/>
+      </context>
+      <context name="exponent" attribute="Integer" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
+        <RegExpr attribute="Exponent" context="#pop#pop" String="[eE][+-]?[0-9]++(_[0-9]+)*+"/>
+        <AnyChar attribute="Error" context="#pop#pop" String="eE_"/>
+      </context>
+      <context name="based_integer" attribute="Integer" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
+        <DetectChar attribute="Operator" char="."/>
+        <DetectChar attribute="Error" char="_"/>
+        <DetectChar attribute="Operator" context="#pop!exponent" char="#"/>
+        <RegExpr attribute="Based Integer" String="[0-9a-fA-F]++(_[0-9a-fA-F]+)*"/>
+      </context>
+
+<!--
+external_name ::=
+    << *constant* external_pathname : subtype_indication >>
+  | << *signal* external_pathname : subtype_indication >>
+  | << *variable* external_pathname : subtype_indication >>
+-->
+      <context name="external_name" attribute="Integer" lineEndContext="#stay" fallthroughContext="#pop">
+        <IncludeRules context="blank"/>
+        <!-- back to expression context -->
+        <keyword attribute="Signal" context="#pop" String="signals"/>
+      </context>
+
+<!--
+interface_list ::=
+    interface_element { ; interface_element }
+
+interface_element ::=
+      [ *constant* ] identifier_list : [ *in* ] subtype_indication [ := expression ]
+    | [ *signal* ] identifier_list : [ *in* | *out* ] subtype_indication [ *bus* ] [ := expression ]
+    | [ *variable* ] identifier_list : [ *in* | *out* ] subtype_indication [ := expression ]
+    | *file* identifier_list : subtype_indication
+    | *type* identifier
+    | interface_subprogram_specification [ *is* name ]
+    | interface_subprogram_specification [ *is* <> ]
+    | *package* identifier *is* *new* name *generic* *map* ( association_list )
+    | *package* identifier *is* *new* name *generic* *map* ( <> )
+    | *package* identifier *is* *new* name *generic* *map* ( *default* )
+
+interface_subprogram_specification ::=
+      *procedure* designator [ [ *parameter* ] ( interface_list ) ]
+    | [ *pure* | *impure* ] *function* designator
+         [ [ *parameter* ] ( interface_list ) ] *return* name
+
+designator ::= identifier | string_literal
+-->
+      <context name="enclosed_interface_list" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar attribute="Normal Text" context="interface_list" char="("/>
+      </context>
+
+      <context name="interface_list" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+        <IncludeRules context="pop_end"/>
+        <keyword attribute="Signal" String="signals"/>
+        <IncludeRules context="postExpression"/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+        <IncludeRules context="enclosed_association_list"/>
+      </context>
+
+<!--
+association_list ::=
+    association_element { , association_element }
+
+association_element ::=
+    [ name [ ( name ) ] => ] actual_part
+
+actual_part ::=
+      actual_designator
+    | name ( actual_designator )
+
+actual_designator ::=
+      [ *inertial* ] expression
+    | name
+    | subtype_indication
+    | *open*
+-->
+      <context name="enclosed_association_list" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar attribute="Normal Text" context="association_list" char="("/>
+      </context>
+
+      <context name="association_list" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+        <IncludeRules context="pop_end"/>
+        <IncludeRules context="postExpression"/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+        <IncludeRules context="enclosed_association_list"/>
+        <DetectChar context="#pop" char=";" lookAhead="1"/>
+      </context>
+
+
+<!-- sequential statement -->
+      <context name="sequential_stmt" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_item">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="pop_end"/>
+        <IncludeRules context="sequential_label"/>
+      </context>
+
+      <context name="sequential_label" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Name" context="sequential_stmt_label" String="&label;"/>
+      </context>
+
+      <context name="sequential_stmt_label" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar attribute="Operator" context="#pop!sequential_stmt_item" char=":"/>
+        <DetectSpaces attribute="Normal Text"/>
+      </context>
+
+      <context name="sequential_stmt_item" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!sequential_stmt_expr">
+        <IncludeRules context="blank"/>
+        <DetectChar attribute="Normal Text" context="#pop" char=";"/>
+        <IncludeRules context="sequential_stmt_item_start"/>
+        <IncludeRules context="start_simple_expr_then_pop"/>
+      </context>
+
+      <context name="sequential_stmt_item_start" attribute="Normal Text" lineEndContext="#stay">
+        <WordDetect attribute="Control" context="#pop!if_start" insensitive="1" String="if" beginRegion="IfRegion1"/>
+        <WordDetect attribute="Control" context="#pop!case" insensitive="1" String="case" beginRegion="CaseRegion1"/>
+        <WordDetect attribute="Control" context="#pop!while" insensitive="1" String="for"/>
+        <WordDetect attribute="Control" context="#pop!while" insensitive="1" String="while"/>
+        <WordDetect attribute="Control" context="#pop!loop" insensitive="1" String="loop" beginRegion="LoopRegion1"/>
+        <WordDetect attribute="Keyword" context="#pop!declare" insensitive="1" String="declare" beginRegion="DeclareRegion1"/>
+        <keyword attribute="Control" context="#pop!sequential_stmt_expr" String="controls"/>
+      </context>
+
+      <context name="sequential_stmt_expr" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+        <DetectChar attribute="Normal Text" context="#pop" char=";"/>
+        <IncludeRules context="pop_end"/>
+        <IncludeRules context="postExpression"/>
+      </context>
+
+<!--
+if_generate ::=
+    *if* [ alternative_label : ] expression *generate*
+        generate_statement_body
+    { *elsif* [ alternative_label : ] expression *generate*
+        generate_statement_body }
+    [ *else* [ alternative_label : ] *generate*
+        generate_statement_body ]
+    *end* *generate* [ label ] ;
+
+generate_statement_body ::=
+        generate_body
+    [ *end* [ alternative_label ] ; ]
+-->
+      <context name="if_generate" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="if_generate_label">
+        <RegExpr attribute="Control" context="#pop" insensitive="1" endRegion="IfRegion1"
+                 String="&bos;end\s+generate(\s+&varname;)?\s*;"/>
+        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="1"
+                    String="end" endRegion="IfRegion1"/>
+      </context>
+
+      <context name="if_generate_label" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!if_generate_expr">
+        <IncludeRules context="blank"/>
+        <RegExpr attribute="Name" context="if_generate_after_label" String="&label;"/>
+      </context>
+
+      <context name="if_generate_after_label" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop#pop!if_generate_expr">
+        <DetectChar attribute="Operator" context="#pop#pop!if_generate_expr" char=":"/>
+        <DetectSpaces attribute="Normal Text"/>
+      </context>
+
+      <context name="if_generate_expr" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+        <IncludeRules context="pop_end"/>
+        <WordDetect attribute="Control" context="#pop!if_generate_body" insensitive="1" String="generate"/>
+        <IncludeRules context="postExpression"/>
+      </context>
+
+      <context name="if_generate_body" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_expr">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="generate_body_pre_start"/>
+        <WordDetect attribute="Control" context="#pop!if_generate_label" insensitive="1" String="elsif"/>
+        <WordDetect attribute="Control" context="#pop!if_generate_label" insensitive="1" String="else"/>
+        <WordDetect context="if_generate_body_end" insensitive="1" String="end" lookAhead="1"/>
+        <IncludeRules context="generate_body_post_start"/>
+      </context>
+
+      <context name="if_generate_body_end" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!expressionError">
+        <RegExpr context="#pop#pop" insensitive="1" String="end\s+generate\b" lookAhead="1"/>
+        <RegExpr attribute="Control" context="#pop" insensitive="1" String="end(\s+&varname;)?\s*;"/>
+      </context>
+
+<!--
+generate_body ::=
+        [ { block_declarative_item }
+    *begin* ]
+        { concurrent_statement }
+-->
+      <context name="generate_body" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_expr">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="generate_body_pre_start"/>
+        <IncludeRules context="pop_end"/>
+        <IncludeRules context="generate_body_post_start"/>
+      </context>
+
+      <context name="generate_body_pre_start" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="block_declarative_start_expr"/>
+
+        <!-- concurrent_stmt_item -->
+        <WordDetect attribute="Keyword" context="#stay" insensitive="1" String="postponed"/>
+        <WordDetect attribute="Process" context="process" insensitive="1" String="process" beginRegion="ProcessRegion1"/>
+        <WordDetect attribute="Control" context="block" insensitive="1" String="block" beginRegion="BlockRegion1"/>
+
+        <!-- sequential_stmt_item -->
+        <WordDetect attribute="Control" context="if_start" insensitive="1" String="if" beginRegion="IfRegion1"/>
+        <WordDetect attribute="Control" context="case" insensitive="1" String="case" beginRegion="CaseRegion1"/>
+        <WordDetect attribute="Control" context="while" insensitive="1" String="while"/>
+        <WordDetect attribute="Control" context="loop" insensitive="1" String="loop" beginRegion="LoopRegion1"/>
+        <WordDetect attribute="Keyword" context="declare" insensitive="1" String="declare" beginRegion="DeclareRegion1"/>
+        <keyword attribute="Control" context="sequential_stmt_expr" String="controls"/>
+
+        <WordDetect attribute="Control" insensitive="1" String="begin"/>
+      </context>
+
+      <context name="generate_body_post_start" attribute="Normal Text" lineEndContext="#stay">
+        <keyword attribute="Keyword" context="sequential_stmt_expr" String="keywords"/>
+        <IncludeRules context="concurrent_label"/>
+        <DetectIdentifier attribute="Normal Text" context="sequential_stmt_expr"/>
+      </context>
+
+<!--
+case_generate ::=
+    *case* expression *generate*
+        *when* [ label : ] choices => generate_statement_body
+        { *when* [ label : ] choices => generate_statement_body }
+    *end* *generate* [ label ] ;
+
+generate_statement_body ::=
+        generate_body
+    [ *end* [ alternative_label ] ; ]
+-->
+      <context name="case_generate" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="case_generate_expr">
+        <RegExpr attribute="Control" context="#pop" insensitive="1" endRegion="CaseRegion1"
+                 String="&bos;end\s+generate(\s+&varname;)?\s*;"/>
+        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="1"
+                    String="end" endRegion="CaseRegion1"/>
+      </context>
+
+      <context name="case_generate_expr" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+        <IncludeRules context="pop_end"/>
+        <WordDetect attribute="Control" context="#pop!case_generate_is" insensitive="1" String="generate"/>
+        <!-- fallback to case ... is -->
+        <WordDetect attribute="Keyword" context="#pop!case_is" insensitive="1" String="is"/>
+        <IncludeRules context="postExpression"/>
+      </context>
+
+      <context name="case_generate_is" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!case_generate_when">
+        <IncludeRules context="blank"/>
+        <WordDetect attribute="Control" context="case_generate_when" insensitive="1" String="when"/>
+      </context>
+
+      <context name="case_generate_when" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!case_generate_when_expr">
+        <IncludeRules context="blank"/>
+        <RegExpr attribute="Name" context="case_generate_when_label" String="&label;"/>
+      </context>
+
+      <context name="case_generate_when_label" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop#pop!case_generate_when_expr">
+        <DetectChar attribute="Operator" context="#pop#pop!case_generate_when_expr" char=":"/>
+        <DetectSpaces attribute="Normal Text"/>
+      </context>
+
+      <context name="case_generate_when_expr" attribute="Normal Text" lineEndContext="#stay">
+        <Detect2Chars char="=" char1="&gt;" attribute="Operator" context="#pop!case_generate_body" beginRegion="CaseWhenRegion1"/>
+        <IncludeRules context="preExpression"/>
+        <DetectChar char=";" attribute="Normal Text" context="#pop!case_generate_body" beginRegion="CaseWhenRegion1"/>
+        <IncludeRules context="case_when_post_expr"/>
+      </context>
+
+      <context name="case_generate_body" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_expr">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="generate_body_pre_start"/>
+        <WordDetect attribute="Control" context="#pop!case_generate_when" insensitive="1" String="when" endRegion="CaseWhenRegion1"/>
+        <WordDetect context="#pop!if_generate_body_end" insensitive="1" String="end" lookAhead="1" endRegion="CaseWhenRegion1"/>
+        <IncludeRules context="generate_body_post_start"/>
+      </context>
+
+<!--
+for_generate ::=
+    *for* parameter_specification *generate*
+        generate_body
+    *end* *generate* [ label ] ;
+-->
+      <context name="for_generate" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="for_generate_expr">
+        <RegExpr attribute="Control" context="#pop" insensitive="1" endRegion="LoopRegion1"
+                 String="&bos;end\s+generate(\s+&varname;)?\s*;"/>
+        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="1"
+                    String="end" endRegion="LoopRegion1"/>
+      </context>
+
+      <context name="for_generate_expr" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+        <IncludeRules context="pop_end"/>
+        <WordDetect attribute="Control" context="#pop!generate_body" insensitive="1" String="generate"/>
+        <IncludeRules context="postExpression"/>
+      </context>
+
+<!--
+block ::=
+    *block* [ ( condition ) ] [ *is* ]
+        [ generic_clause
+        [ generic_map_aspect ; ] ]
+        [ port_clause
+        [ port_map_aspect ; ] ]
+        { block_declarative_item }
+    *begin*
+        { concurrent_statement }
+    *end* *block* [ block_label ] ;
+-->
+      <context name="block" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="block_cont">
+        <RegExpr attribute="Control" context="#pop" insensitive="1"
+                 String="&bos;end\s+block(\s+&varname;)?\s*;" endRegion="BlockRegion1"/>
+        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
+                    String="end" endRegion="BlockRegion1"/>
+      </context>
+
+      <context name="block_cont" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!block_is">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="enclosed_association_list"/>
+        <WordDetect attribute="Keyword" context="#pop!block_is" insensitive="true" String="is"/>
+      </context>
+
+      <context name="block_is" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!block_body">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="enclosed_interface_list"/>
+        <DetectChar attribute="Normal Text" char=";"/>
+        <IncludeRules context="find_instantiated_map"/>
+        <WordDetect attribute="Control" insensitive="true" String="generic"/>
+        <WordDetect attribute="Control" insensitive="true" String="port"/>
+      </context>
+
+      <!-- as block_declarative_stmt but with begin as Keyword -->
+      <context name="block_body" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_expr">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="block_declarative_start_expr"/>
+        <WordDetect attribute="Keyword" context="#pop!concurrent_stmt" insensitive="1" String="begin"/>
+        <IncludeRules context="start_simple_expr"/>
+      </context>
+
+<!--
+process  ::=
+    *process* [ ( *all* | name_list ) ] [ *is* ]
+        { process_declarative_item }
+    *begin*
+        { sequential_statement }
+    *end* [ *postponed* ] *process* [ label ] ;
+-->
+      <context name="process" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="process_params">
+        <RegExpr attribute="Process" context="#pop" insensitive="1"
+                 String="&bos;end(\s+postponed)?(\s+process\b)?(\s+&varname;)?\s*;" endRegion="ProcessRegion1"/>
+        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
+                    String="end" endRegion="ProcessRegion1"/>
+      </context>
+
+      <context name="process_params" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!process_decl">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="enclosed_association_list"/>
+        <WordDetect attribute="Keyword" context="#pop!process_decl" String="is"/>
+      </context>
+
+      <context name="process_decl" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_expr">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="process_declarative_start_expr"/>
+        <WordDetect attribute="Process" context="#pop!sequential_stmt" insensitive="true" String="begin"/>
+        <IncludeRules context="start_simple_expr"/>
+      </context>
+
+<!-- expression -->
+      <context name="preExpression" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="blank"/>
+        <Detect2Chars attribute="Operator" context="external_name" char="&lt;" char1="&lt;"/>
+        <AnyChar attribute="Operator" context="#stay" String="[]&amp;&gt;&lt;=:+-*/|`.,?@"/>
+        <DetectChar attribute="Vector" context="string" char="&quot;"/>
+        <DetectChar attribute="Attribute" context="attribute" char="'"/>
+        <Int attribute="Integer" context="abstract_literal"/>
+      </context>
+
+      <context name="postExpression" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="keywordExpression"/>
+        <DetectIdentifier attribute="Normal Text"/>
+      </context>
+
+      <context name="keywordExpression" attribute="Normal Text" lineEndContext="#stay">
+        <keyword attribute="Data Type" context="#stay" String="types"/>
+        <keyword attribute="Data Type" context="#stay" String="timeunits"/>
+        <keyword attribute="Range" context="#stay" String="range"/>
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+      </context>
+
+<!-- expression error -->
+      <context name="expressionError" attribute="Error" lineEndContext="#pop">
+        <Detect2Chars attribute="Comment" context="comment" char="-" char1="-"/>
+        <DetectChar attribute="Error" context="#pop" char=";"/>
+      </context>
+
+<!-- other environments -->
+      <context name="comment" attribute="Comment" lineEndContext="#pop">
+        <DetectSpaces/>
+        <IncludeRules context="##Comments"/>
+      </context>
+
+      <context name="block_comment" attribute="Comment" lineEndContext="#stay">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/"/>
+        <IncludeRules context="comment"/>
+      </context>
+
+      <context name="string" attribute="Vector" lineEndContext="#stay">
+        <DetectChar attribute="Vector" context="#pop" char="&quot;"/>
+      </context>
+
+      <context name="attribute" attribute="Attribute" lineEndContext="#pop">
+        <!-- character_literal or end attribute -->
+        <RegExpr attribute="Attribute" context="#pop" String="[^']?'"/>
+        <DetectIdentifier attribute="Attribute"/>
+        <DetectChar attribute="Attribute" context="quot in att" char="&quot;"/>
+        <DetectChar attribute="Attribute" context="par in att" char="("/>
+        <DetectSpaces attribute="Normal Text" context="#pop"/>
+        <AnyChar attribute="Attribute" context="#pop" String=")=&lt;&gt;;" lookAhead="true" />
+       </context>
+
+      <context name="quot in att" attribute="Attribute" lineEndContext="#stay">
+        <DetectChar attribute="Attribute" context="#pop" char="&quot;"/>
+      </context>
+      <context name="par in att" attribute="Attribute" lineEndContext="#stay">
+        <DetectChar attribute="Attribute" context="#pop" char=")"/>
+      </context>
+
+      <context name="signal" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+        <DetectChar attribute="Normal Text" context="#pop" char=";"/>
+        <IncludeRules context="pop_end"/>
+        <IncludeRules context="postExpression"/>
+      </context>
+
+<!--
+type ::= *type* identifier [ *is* type_definition ] ;
+
+type_definition ::=
+      type_definition_range
+    | type_definition_record
+    | type_definition_protected
+    | ......
+-->
+      <context name="type" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="blank"/>
+        <DetectChar attribute="Normal Text" context="#pop" char=";"/>
+        <WordDetect attribute="Signal" context="type_is" insensitive="1" String="is"/>
+        <DetectIdentifier attribute="Normal Text"/>
+      </context>
+
+      <context name="type_is" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop#pop!signal">
+        <IncludeRules context="blank"/>
+        <WordDetect attribute="Keyword" context="#pop#pop!type_record" insensitive="1" String="record" beginRegion="sig"/>
+        <WordDetect attribute="Keyword" context="#pop#pop!type_range" insensitive="1" String="range"/>
+        <WordDetect attribute="Keyword" context="#pop#pop!type_protected" insensitive="1" String="protected" beginRegion="BlockRegion1"/>
+      </context>
+
+<!-- type range
+
+type_definition_range ::=
+    *range* range
+        [ *units*
+            identifier
+            { identifier = physical_literal ; }
+          *end* *units* [ identifier ] ]
+
+range ::=
+      attribute_name
+    | simple_expression direction simple_expression
+
+attribute_name ::=
+    prefix [ signature ] ' identifier [ ( expression ) ]
+-->
+      <context name="type_range" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+        <DetectChar attribute="Normal Text" context="#pop" char=";"/>
+        <WordDetect attribute="Control" context="#pop!type_range_units" insensitive="1" String="units" beginRegion="UnitRegion1"/>
+        <IncludeRules context="postExpression"/>
+      </context>
+
+      <context name="type_range_units" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="type_body">
+        <RegExpr attribute="Control" context="#pop" insensitive="1"
+                 String="&bos;end\s+units(\s+&identifier;)?\s*;" endRegion="UnitRegion1"/>
+        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
+                    String="end" endRegion="UnitRegion1"/>
+      </context>
+
+      <context name="type_body" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+        <IncludeRules context="pop_end"/>
+        <IncludeRules context="postExpression"/>
+      </context>
+
+<!-- type record
+
+type_definition_record ::=
+    *record*
+        element_declaration
+        { element_declaration }
+    *end* *record* [ identifier ]
+-->
+      <context name="type_record" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="type_body">
+        <RegExpr attribute="Keyword" context="#pop" insensitive="1"
+                 String="&bos;end\s+record(\s+&identifier;)?\s*;" endRegion="sig"/>
+        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
+                    String="end" endRegion="sig"/>
+      </context>
+
+<!-- type protected
+
+type_definition_protected ::=
+      *protected*
+         { protected_type_declarative_item }
+      *end* *protected* [ identifier ]
+    | *protected* *body*
+          { process_declarative_item }
+      *end *protected* *body* [ simple name ]
+-->
+      <context name="type_protected" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="type_protected_stmt">
+        <IncludeRules context="blank"/>
+        <WordDetect attribute="Keyword" context="type_protected_stmt" insensitive="1" String="body"/>
+        <RegExpr attribute="Keyword" context="#pop" insensitive="1"
+                 String="&bos;end\s+protected(\s+body)?(\s+&identifier;)?\s*;" endRegion="BlockRegion1"/>
+        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
+                    String="end" endRegion="BlockRegion1"/>
+      </context>
+
+      <context name="type_protected_stmt" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_expr">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="process_declarative_start_expr"/>
+        <IncludeRules context="start_simple_expr"/>
+      </context>
+
+<!--
+view ::=
+    *view* identifier *of* name *is*
+        element_declaration
+        { element_declaration }
+    *end* *view* [ identifier ] ;
+-->
+      <context name="view" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="type_body">
+        <RegExpr attribute="Keyword" context="#pop" insensitive="1"
+                 String="&bos;end\s+view(\s+&identifier;)?\s*;" endRegion="sig"/>
+        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
+                    String="end" endRegion="sig"/>
+      </context>
+
+<!--
+function ::=
+    *function* designator
+        [ *generic* ( interface_list )
+        [ generic_map_aspect ] ]
+        [ [ *parameter* ] ( interface_list ) ] *return* name ;
+
+  | *function* identifier *is* *new* name
+        [ name_list ]
+        [ *return* name ]
+        [ generic_map_aspect ] ;
+
+  | *function* identifier *is*
+        { process_declarative_item }
+    *begin*
+        { sequential_statement }
+    *end* [ *function* ] [ designator ] ;
+-->
+      <context name="function" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="function_name">
+        <IncludeRules context="blank"/>
+        <DetectIdentifier attribute="Name" context="function_name"/>
+        <RangeDetect attribute="Vector" context="function_name" char="&quot;" char1="&quot;"/>
+        <RangeDetect attribute="Name" context="function_name" char="\" char1="\"/>
+      </context>
+
+      <context name="function_name" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="blank"/>
+        <DetectChar attribute="Normal Text" context="function_params" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop#pop" char=";"/>
+        <WordDetect attribute="Control" context="function_return" insensitive="1" String="return"/>
+        <WordDetect attribute="Keyword" context="#pop#pop!function_is" insensitive="1" String="is" beginRegion="FunctionRegion1"/>
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+      </context>
+
+      <context name="function_params" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+         <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+        <IncludeRules context="pop_end"/>
+        <DetectChar attribute="Normal Text" context="function_params_recursive" char="("/>
+        <WordDetect attribute="Error" context="#pop!function_return" insensitive="1" String="return"/>
+        <keyword attribute="Signal" String="signals"/>
+        <IncludeRules context="postExpression"/>
+      </context>
+      <context name="function_params_recursive" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+        <DetectChar attribute="Normal Text" context="function_params_recursive" char="("/>
+        <WordDetect context="#pop" insensitive="1" String="return" lookAhead="1"/>
+        <IncludeRules context="postExpression"/>
+      </context>
+
+      <context name="function_return" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preExpression"/>
+        <DetectChar attribute="Normal Text" context="#pop#pop#pop" char=";"/>
+        <WordDetect attribute="Keyword" context="#pop#pop#pop!function_is" insensitive="1" String="is" beginRegion="FunctionRegion1"/>
+        <IncludeRules context="postExpression"/>
+      </context>
+
+      <context name="function_is" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!function_decl">
+        <IncludeRules context="blank"/>
+        <WordDetect attribute="Keyword" context="#pop!function_new" insensitive="1" String="new"/>
+      </context>
+
+      <context name="function_new" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!sequential_stmt_expr">
+        <IncludeRules context="blank"/>
+        <WordDetect attribute="Control" context="#pop!sequential_stmt_expr" insensitive="1" String="return"/>
+        <IncludeRules context="start_simple_expr_then_pop"/>
+      </context>
+
+      <context name="function_decl" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_expr">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="process_declarative_start_expr"/>
+        <WordDetect attribute="Redirection" context="#pop!function_begin" insensitive="true" String="begin"/>
+        <IncludeRules context="start_simple_expr"/>
+      </context>
+
+      <context name="function_begin" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt">
+        <RegExpr attribute="Redirection" context="#pop" insensitive="1"
+                 String="&bos;end(\s+function\b)?(\s+&designator;)?\s*;" endRegion="FunctionRegion1"/>
+        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
+                    String="end" endRegion="FunctionRegion1"/>
+      </context>
+
+<!--
+procedure ::=
+      *procedure* designator
+          [ *generic* ( interface_list )
+          [ generic_map_aspect ] ]
+          [ [ *parameter* ] ( interface_list ) ] ;
+
+    | *procedure* identifier *is* *new* name
+          [ name_list ]
+          [ *return* name ]
+          [ generic_map_aspect ] ;
+
+    | *procedure* designator
+          [ [ *parameter* ] ( interface_list ) ] *is*
+          { process_declarative_item }
+      *begin*
+          { sequential_statement }
+      *end* [ *procedure* ] [ designator ] ;
+-->
+      <context name="procedure" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="blank"/>
+        <DetectIdentifier attribute="Name" context="procedure_name"/>
+        <RangeDetect attribute="Vector" context="procedure_name" char="&quot;" char1="&quot;"/>
+        <RangeDetect attribute="Name" context="procedure_name" char="\" char1="\"/>
+      </context>
+
+      <context name="procedure_name" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="enclosed_interface_list"/>
+        <DetectChar attribute="Normal Text" context="#pop#pop" char=";" endRegion="ProcedureRegion1"/>
+        <WordDetect attribute="Control" context="#pop#pop!procedure_is" insensitive="true" String="is"/>
+        <!-- ghdl extension ?
+          procedure readline (variable f: in text; l: inout line)  <- no ;
+          procedure readline (file f: text; l: inout line)
+          is ...
+        -->
+        <WordDetect attribute="Keyword" context="#pop" insensitive="true" String="procedure" endRegion="ProcedureRegion1" beginRegion="ProcedureRegion1"/>
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+      </context>
+
+      <context name="procedure_is" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!procedure_is2">
+        <IncludeRules context="function_is"/>
+      </context>
+
+      <!-- ghdl extension ?
+        *procedure* designator
+          (...) is
+          (...) is                <- here
+        begin ...
+      -->
+      <context name="procedure_is2" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!procedure_decl">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="enclosed_interface_list"/>
+        <WordDetect attribute="Control" context="#pop!procedure_is" insensitive="true" String="is"/>
+        <WordDetect attribute="Keyword" insensitive="true" String="parameter"/>
+      </context>
+
+      <context name="procedure_decl" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_expr">
+        <IncludeRules context="blank"/>
+        <IncludeRules context="process_declarative_start_expr"/>
+        <WordDetect attribute="Keyword" context="#pop!procedure_begin" insensitive="true" String="begin" endRegion="ProcedureRegion1" beginRegion="ProcedureRegion1"/>
+        <IncludeRules context="start_simple_expr"/>
+      </context>
+
+      <context name="procedure_begin" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt">
+        <RegExpr attribute="Keyword" context="#pop" insensitive="1"
+                 String="&bos;end(\s+procedure)?(\s+&designator;)?\s*;" endRegion="ProcedureRegion1"/>
+        <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"
+                    String="end" endRegion="ProcedureRegion1"/>
+      </context>
+
+<!--
+component ::=
+    *component* identifier [ *is* ]
+        entity_header
+    *end* *component* [ identifier ] ;
+-->
+      <context name="component" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">
+        <IncludeRules context="blank"/>
+        <RegExpr attribute="Name" context="component_main" beginRegion="ComponentRegion1"
+                 String="(&identifier;)"/>
+      </context>
+
+      <context name="component_main" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="component_body">
+        <RegExpr attribute="Control" context="#pop#pop" dynamic="1" insensitive="1"
+                 String="&bos;end\s+component\b(\s+%1)?\s*;" endRegion="ComponentRegion1"/>
+        <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="true"
+                    String="end" endRegion="ComponentRegion1"/>
+      </context>
+
+      <context name="component_body" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="entity_header"/>
+        <IncludeRules context="pop_end"/>
+        <DetectIdentifier attribute="Error"/>
+      </context>
+
+      <context name="pop_end" attribute="Normal Text" lineEndContext="#stay">
+        <WordDetect context="#pop" insensitive="1" String="end" lookAhead="1"/>
+      </context>
+
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Data Type" defStyleNum="dsDataType"/>
+      <itemData name="Comment" defStyleNum="dsComment"/>
+      <itemData name="Integer" defStyleNum="dsDecVal"/>
+      <itemData name="Exponent" defStyleNum="dsFloat"/>
+      <itemData name="Based Integer" defStyleNum="dsBaseN"/>
       <itemData name="Reference" defStyleNum="dsFunction"/>
       <itemData name="Error" defStyleNum="dsError" bold="1"/>
       <itemData name="Vector" defStyleNum="dsString"/>
diff --git a/syntax/xml.xml b/syntax/xml.xml
--- a/syntax/xml.xml
+++ b/syntax/xml.xml
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
 	<!-- names must start with a letter, ideogram or underscore. \w matches any
 		 word character *or* a number, hence the lookahead -->
 	<!ENTITY name    "(?![0-9])[\w_:][\w.:_-]*">
 	<!ENTITY entref  "&amp;(?:#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);">
 ]>
-<language name="XML" version="14" kateversion="5.0" section="Markup" extensions="*.docbook;*.xml;*.rc;*.daml;*.rdf;*.rss;*.xspf;*.xsd;*.svg;*.ui;*.kcfg;*.qrc;*.wsdl;*.scxml;*.xbel;*.dae;*.sch;*.brd" mimetype="text/xml;text/book;text/daml;text/rdf;application/rss+xml;application/xspf+xml;image/svg+xml;application/x-designer;application/x-xbel;application/xml;application/scxml+xml" casesensitive="1" indenter="xml" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
+<language name="XML" version="20" kateversion="5.0" section="Markup" extensions="*.page;*.docbook;*.xml;*ui.rc;*.daml;*.rdf;*.rss;*.xspf;*.xsd;*.svg;*.ui;*.kcfg;*.qrc;*.wsdl;*.scxml;*.xbel;*.dae;*.sch;*.brd" mimetype="text/xml;text/book;text/daml;text/rdf;application/rss+xml;application/xspf+xml;image/svg+xml;application/x-designer;application/x-xbel;application/xml;application/scxml+xml;application/vnd.oasis.opendocument.text-flat-xml;application/vnd.oasis.opendocument.graphics-flat-xml;application/vnd.oasis.opendocument.presentation-flat-xml;application/vnd.oasis.opendocument.spreadsheet-flat-xml;application/gpx+xml" casesensitive="1" indenter="xml" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
 
 <highlighting>
 <contexts>
@@ -33,7 +33,7 @@
   <context name="FindPEntityRefs" attribute="Other Text" lineEndContext="#stay">
     <RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
     <RegExpr attribute="PEntityRef" context="#stay" String="%&name;;" />
-    <AnyChar attribute="Error" context="#stay" String="&amp;%" />
+    <AnyChar attribute="Error" context="#stay" String="&amp;%&lt;" />
   </context>
 
 
@@ -86,6 +86,7 @@
   </context>
 
   <context name="Doctype Internal Subset" attribute="Other Text" lineEndContext="#stay">
+    <DetectSpaces />
     <DetectChar attribute="Doctype Symbols" context="#pop" char="]" endRegion="int_subset" />
     <RegExpr attribute="Doctype Symbols" context="Doctype Markupdecl TagName" String="&lt;!(?=(ELEMENT|ENTITY|ATTLIST|NOTATION)\b)" />
     <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
@@ -94,7 +95,7 @@
   </context>
 
   <context name="Doctype Markupdecl TagName" attribute="Other Text" lineEndContext="#pop">
-    <StringDetect attribute="Doctype" context="#pop!Doctype Markupdecl VariableName" String="%1" dynamic="true" />
+    <DetectIdentifier attribute="Doctype" context="#pop!Doctype Markupdecl VariableName" />
   </context>
   <context name="Doctype Markupdecl VariableName" attribute="Other Text" lineEndContext="#pop!Doctype Markupdecl" fallthrough="true" fallthroughContext="#pop!Doctype Markupdecl">
     <DetectSpaces />
@@ -164,7 +165,7 @@
 <itemDatas>
   <itemData name="Normal Text"     defStyleNum="dsNormal" />
   <itemData name="Other Text"      defStyleNum="dsNormal" />
-  <itemData name="Comment"         defStyleNum="dsComment" spellChecking="false" />
+  <itemData name="Comment"         defStyleNum="dsComment" spellChecking="true" />
   <itemData name="CDATA"           defStyleNum="dsBaseN"    bold="1" italic="0" spellChecking="false" />
   <itemData name="CDATA Symbols"   defStyleNum="dsBaseN"    bold="0" italic="0" spellChecking="false" />
   <itemData name="Processing Instruction" defStyleNum="dsFunction" bold="1" italic="0" spellChecking="false" />
diff --git a/syntax/xorg.xml b/syntax/xorg.xml
--- a/syntax/xorg.xml
+++ b/syntax/xorg.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <language name="x.org Configuration" section="Configuration" extensions="xorg.conf" mimetype="" version="4" kateversion="5.0" author="Jan Janssen (medhefgo@web.de)" license="LGPL">
 
 <highlighting>
diff --git a/syntax/xslt.xml b/syntax/xslt.xml
--- a/syntax/xslt.xml
+++ b/syntax/xslt.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
   <!ENTITY qname   "[A-Za-z_:][\w.:_-]*">
 	<!ENTITY name    "(?![0-9])[\w_:][\w.:_-]*">
diff --git a/syntax/xul.xml b/syntax/xul.xml
--- a/syntax/xul.xml
+++ b/syntax/xul.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
 	<!ENTITY name    "[A-Za-z_:][\w.:_-]*">
 	<!ENTITY entref  "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);">
diff --git a/syntax/yacc.xml b/syntax/yacc.xml
--- a/syntax/yacc.xml
+++ b/syntax/yacc.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd">
+<!DOCTYPE language>
 <!--
 ========================================================================
 YACC.XML supports syntax highlighting for Yacc/Bison source under Kate.
@@ -32,7 +32,7 @@
 
 ========================================================================
 -->
-<language name="Yacc/Bison" version="9" kateversion="5.0" section="Sources" extensions="*.y;*.yy;*.ypp;*.y++" mimetype="text/x-yacc;text/x-bison" priority="5" author="Jan Villat (jan.villat@net2000.ch)" license="LGPL">
+<language name="Yacc/Bison" version="9" kateversion="5.79" section="Sources" extensions="*.y;*.yy;*.ypp;*.y++" mimetype="text/x-yacc;text/x-bison" priority="5" author="Jan Villat (jan.villat@net2000.ch)" license="LGPL">
 
 <highlighting>
 <contexts>
@@ -112,7 +112,7 @@
     <IncludeRules context="Symbol-Variable" />
     <IncludeRules context="##C++" />
   </context>
-  <context name="Code-Symbols End" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!Percent Command In">
+  <context name="Code-Symbols End" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!Percent Command In">
     <IncludeRules context="Comment" />
     <DetectSpaces />
     <DetectChar attribute="Normal Text" context="#pop" char=";" lookAhead="true" />
@@ -145,7 +145,7 @@
   </context>
   <!-- The Bison parser allows to have ';' followed by '|', without the rule ending.
        The problem here is that the ';' char has endRegion="rule" (although it is not very relevant). -->
-  <context name="Rule End" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop">
+  <context name="Rule End" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop#pop">
     <DetectSpaces />
     <DetectChar attribute="Normal Text" context="#stay" char=";" />
     <DetectChar attribute="Normal Text" context="#pop" char="|" />
@@ -231,10 +231,10 @@
     <DetectChar attribute="Directive" context="Dol" char="$" />
     <RegExpr attribute="Directive" context="#stay" String="@\$?(?:\d+|[A-Za-z_]\w*)?" />
   </context>
-  <context name="Dol" attribute="Normal Text" fallthrough="true" fallthroughContext="DolEnd" lineEndContext="#stay">
+  <context name="Dol" attribute="Normal Text" fallthroughContext="DolEnd" lineEndContext="#stay">
     <RegExpr attribute="Data Type" context="DolEnd" String="&lt;[^&gt;]+&gt;" />
   </context>
-  <context name="DolEnd" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop">
+  <context name="DolEnd" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop#pop">
     <RegExpr attribute="Directive" context="#pop#pop" String="@?\d+" />
     <DetectChar attribute="Directive" context="#pop#pop" char="$" />
     <DetectIdentifier attribute="Directive" context="#pop#pop" />
diff --git a/syntax/yaml.xml b/syntax/yaml.xml
--- a/syntax/yaml.xml
+++ b/syntax/yaml.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
   <!ENTITY null "(?:null|Null|NULL|~)">
   <!ENTITY bool "(?:y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)">
@@ -53,7 +53,7 @@
 <!-- Modifications (YAML 1.2), values & support for literal/folded style:
        Nibaldo González S. <nibgonz@gmail.com>
        These modifications are under the MIT license. //-->
-<language name="YAML" version="10" kateversion="5.0" section="Markup"
+<language name="YAML" alternativeNames="YML" version="12" kateversion="5.0" section="Markup"
           extensions="*.yaml;*.yml" mimetype="text/yaml" priority="9"
           author="Dr Orlovsky MA (dr.orlovsky@gmail.com), Nibaldo González (nibgonz@gmail.com)" license="LGPL">
   <highlighting>
@@ -304,8 +304,7 @@
       <context attribute="Error" lineEndContext="#pop#pop#pop" name="attribute-end-inline">
           <RegExpr attribute="Comment" context="comment" String="(?:^|\s+)#" />
           <DetectSpaces attribute="Normal Text" context="#stay"/>
-          <AnyChar attribute="String" context="#pop#pop#pop"  lookAhead="true" String="}]"/>
-          <DetectChar attribute="Operator" context="#pop#pop#pop" lookAhead="true" char="," />
+          <AnyChar context="#pop#pop#pop" lookAhead="true" String="}],"/>
       </context>
 
       <context attribute="String" lineEndContext="#stay" name="string" noIndentationBasedFolding="true">
diff --git a/syntax/zig.xml b/syntax/zig.xml
new file mode 100644
--- /dev/null
+++ b/syntax/zig.xml
@@ -0,0 +1,311 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language [
+    <!ENTITY bin_int "(?:[01]+(?:_[01]+)*)">
+    <!ENTITY oct_int "(?:[0-7]+(?:_[0-7]+)*)">
+    <!ENTITY dec_int "(?:[0-9]+(?:_[0-9]+)*)">
+    <!ENTITY hex_int "(?:[0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*)">
+    <!ENTITY exp_float "(?:[eE][+-]?&dec_int;)">
+    <!ENTITY exp_hexfloat "(?:[pP][-+]?&dec_int;)">
+]>
+<language name="Zig" section="Sources" version="2" kateversion="5.62" indenter="cstyle" extensions="*.zig" mimetype="text/x-zig" priority="1" author="Waqar Ahmed (waqar.17a@gmail.com)" license="MIT">
+    <highlighting>
+        <list name="keywords">
+            <item>addrspace</item>
+            <item>align</item>
+            <item>and</item>
+            <item>anyframe</item>
+            <item>anytype</item>
+            <item>asm</item>
+            <item>callconv</item>
+            <item>enum</item>
+            <item>error</item>
+            <item>export</item>
+            <item>fn</item>
+            <item>inline</item>
+            <item>noalias</item>
+            <item>nosuspend</item>
+            <item>noinline</item>
+            <item>opaque</item>
+            <item>or</item>
+            <item>orelse</item>
+            <item>packed</item>
+            <item>pub</item>
+            <item>resume</item>
+            <item>linksection</item>
+            <item>struct</item>
+            <item>suspend</item>
+            <item>test</item>
+            <item>union</item>
+            <item>unreachable</item>
+            <item>usingnamespace</item>
+        </list>
+        <list name="controlflow">
+            <item>while</item>
+            <item>try</item>
+            <item>switch</item>
+            <item>return</item>
+            <item>for</item>
+            <item>if</item>
+            <item>continue</item>
+            <item>else</item>
+            <item>break</item>
+            <item>catch</item>
+            <item>defer</item>
+            <item>errdefer</item>
+        </list>
+        <list name="types">
+            <item>i8</item>
+            <item>u8</item>
+            <item>i16</item>
+            <item>u16</item>
+            <item>i32</item>
+            <item>u32</item>
+            <item>i64</item>
+            <item>u64</item>
+            <item>i128</item>
+            <item>u128</item>
+            <item>isize</item>
+            <item>usize</item>
+            <item>c_short</item>
+            <item>c_ushort</item>
+            <item>c_int</item>
+            <item>c_uint</item>
+            <item>c_long</item>
+            <item>c_ulong</item>
+            <item>c_longlong</item>
+            <item>c_ulonglong</item>
+            <item>c_longdouble</item>
+            <item>f16</item>
+            <item>f32</item>
+            <item>f64</item>
+            <item>f80</item>
+            <item>f128</item>
+            <item>bool</item>
+            <item>anyopaque</item>
+            <item>void</item>
+            <item>noreturn</item>
+            <item>type</item>
+            <item>anyerror</item>
+            <item>comptime_int</item>
+            <item>comptime_float</item>
+        </list>
+        <list name="modifiers">
+            <item>async</item>
+            <item>await</item>
+            <item>const</item>
+            <item>threadlocal</item>
+            <item>extern</item>
+            <item>allowzero</item>
+            <item>comptime</item>
+            <item>var</item>
+            <item>volatile</item>
+        </list>
+        <list name="literals">
+            <item>false</item>
+            <item>null</item>
+            <item>true</item>
+            <item>undefined</item>
+        </list>
+        <list name="builtin_functions">
+            <item>@addrSpaceCast</item>
+            <item>@addWithOverflow</item>
+            <item>@alignCast</item>
+            <item>@alignOf</item>
+            <item>@as</item>
+            <item>@atomicLoad</item>
+            <item>@atomicRmw</item>
+            <item>@atomicStore</item>
+            <item>@bitCast</item>
+            <item>@bitOffsetOf</item>
+            <item>@boolToInt</item>
+            <item>@bitSizeOf</item>
+            <item>@breakpoint</item>
+            <item>@mulAdd</item>
+            <item>@byteSwap</item>
+            <item>@bitReverse</item>
+            <item>@offsetOf</item>
+            <item>@call</item>
+            <item>@cDefine</item>
+            <item>@cImport</item>
+            <item>@cInclude</item>
+            <item>@clz</item>
+            <item>@cmpxchgStrong</item>
+            <item>@cmpxchgWeak</item>
+            <item>@compileError</item>
+            <item>@compileLog</item>
+            <item>@ctz</item>
+            <item>@cUndef</item>
+            <item>@cVaArg</item>
+            <item>@cVaCopy</item>
+            <item>@cVaEnd</item>
+            <item>@cVaStart</item>
+            <item>@divExact</item>
+            <item>@divFloor</item>
+            <item>@divTrunc</item>
+            <item>@embedFile</item>
+            <item>@enumToInt</item>
+            <item>@errorName</item>
+            <item>@errorReturnTrace</item>
+            <item>@errorToInt</item>
+            <item>@errSetCast</item>
+            <item>@export</item>
+            <item>@extern</item>
+            <item>@fence</item>
+            <item>@field</item>
+            <item>@fieldParentPtr</item>
+            <item>@floatCast</item>
+            <item>@floatToInt</item>
+            <item>@frameAddress</item>
+            <item>@hasDecl</item>
+            <item>@hasField</item>
+            <item>@import</item>
+            <item>@intCast</item>
+            <item>@intToEnum</item>
+            <item>@intToError</item>
+            <item>@intToFloat</item>
+            <item>@intToPtr</item>
+            <item>@max</item>
+            <item>@memcpy</item>
+            <item>@memset</item>
+            <item>@min</item>
+            <item>@wasmMemorySize</item>
+            <item>@wasmMemoryGrow</item>
+            <item>@mod</item>
+            <item>@mulWithOverflow</item>
+            <item>@panic</item>
+            <item>@popCount</item>
+            <item>@prefetch</item>
+            <item>@ptrCast</item>
+            <item>@ptrToInt</item>
+            <item>@rem</item>
+            <item>@returnAddress</item>
+            <item>@select</item>
+            <item>@setAlignStack</item>
+            <item>@setCold</item>
+            <item>@setEvalBranchQuota</item>
+            <item>@setFloatMode</item>
+            <item>@setRuntimeSafety</item>
+            <item>@shlExact</item>
+            <item>@shlWithOverflow</item>
+            <item>@shrExact</item>
+            <item>@shuffle</item>
+            <item>@sizeOf</item>
+            <item>@splat</item>
+            <item>@reduce</item>
+            <item>@src</item>
+            <item>@sqrt</item>
+            <item>@sin</item>
+            <item>@cos</item>
+            <item>@tan</item>
+            <item>@exp</item>
+            <item>@exp2</item>
+            <item>@log</item>
+            <item>@log2</item>
+            <item>@log10</item>
+            <item>@fabs</item>
+            <item>@floor</item>
+            <item>@ceil</item>
+            <item>@trunc</item>
+            <item>@round</item>
+            <item>@subWithOverflow</item>
+            <item>@tagName</item>
+            <item>@This</item>
+            <item>@truncate</item>
+            <item>@Type</item>
+            <item>@typeInfo</item>
+            <item>@typeName</item>
+            <item>@TypeOf</item>
+            <item>@unionInit</item>
+            <item>@Vector</item>
+        </list>
+        <contexts>
+            <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+                <DetectSpaces/>
+                <Detect2Chars char="/" char1="/" attribute="Comment" context="Comment"/>
+                <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;+,-/.*&lt;=&gt;?|~^"/>
+                <AnyChar context="Number" String="0123456789" lookAhead="1"/>
+                <DetectChar attribute="String" context="DoubleQuoteString" char="&quot;"/>
+                <DetectChar attribute="Character" context="SingleQuoteString" char="'"/>
+                <Detect2Chars char="\" char1="\" attribute="String" context="Multiline String"/>
+                <keyword String="keywords" attribute="Keyword" context="#stay"/>
+                <keyword String="types" attribute="Type" context="#stay"/>
+                <keyword attribute="Constant" context="#stay" String="literals"/>
+                <keyword attribute="Builtin Functions" context="#stay" String="builtin_functions"/>
+                <keyword attribute="Control Flow" context="#stay" String="controlflow"/>
+                <keyword attribute="Modifiers" context="#stay" String="modifiers"/>
+                <WordDetect attribute="Self Variable" String="self"/>
+                <!-- <AnyChar context="SpecialType" String="iu" lookAhead="1"/> -->
+                <DetectIdentifier/>
+            </context>
+            <!-- Strings -->
+            <context attribute="String" lineEndContext="#pop" name="DoubleQuoteString">
+                <DetectChar context="EscapeChar" char="\" lookAhead="1"/>
+                <DetectChar attribute="String" context="#pop" char="&quot;"/>
+            </context>
+            <context attribute="Character" lineEndContext="#pop" name="SingleQuoteString">
+                <DetectChar context="EscapeChar" char="\" lookAhead="1"/>
+                <DetectChar attribute="Character" context="#pop" char="'"/>
+            </context>
+            <context attribute="String" lineEndContext="#pop" name="Multiline String"/>
+            <context attribute="String Char" lineEndContext="#pop" name="EscapeChar">
+                <RegExpr attribute="String Char" context="#pop" String="\\([nrt'&quot;\\]|x[0-9a-fA-F]{2}|u\{[0-9a-fA-F]+\})"/>
+                <RegExpr attribute="Error" context="#pop" String="\\(x[0-9a-fA-F]?|u\{[0-9a-fA-F]{0,8}\}?)?"/>
+            </context>
+            <!-- Comment -->
+            <context attribute="Comment" lineEndContext="#pop" name="Comment">
+                <DetectSpaces attribute="Comment"/>
+                <IncludeRules context="##Comments"/>
+                <DetectIdentifier attribute="Comment"/>
+            </context>
+            <!-- Integer / Float -->
+            <context name="Number" attribute="Normal Text" lineEndContext="#pop">
+                <RegExpr attribute="Float" context="#pop!SuffixNumber" String="&dec_int;(\.&dec_int;&exp_float;?|&exp_float;)"/>
+                <RegExpr attribute="Decimal" context="#pop!SuffixNumber" String="0(?=[^xob]|$)|(?=0[xob])|&dec_int;"/>
+                <RegExpr attribute="Hex Float" context="#pop!SuffixNumber" String="0x&hex_int;(\.&hex_int;&exp_hexfloat;?|&exp_hexfloat;)"/>
+                <RegExpr attribute="Hex" context="#pop!SuffixNumber" String="0x&hex_int;"/>
+                <RegExpr attribute="Octal" context="#pop!SuffixNumber" String="0o&oct_int;"/>
+                <RegExpr attribute="Binary" context="#pop!SuffixNumber" String="0b&bin_int;"/>
+                <DetectChar attribute="Decimal" context="#pop!SuffixNumber" char="0"/>
+            </context>
+            <context name="SuffixNumber" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
+                <AnyChar attribute="Error" String=".0123456789" context="#pop"/>
+                <DetectIdentifier attribute="Error" context="#pop"/>
+            </context>
+            <!-- Integer type -->
+            <!-- i or u followed by digits. The maximum allowed bit-width of an integer type is 65535 -->
+            <!--<context name="SpecialType" attribute="Normal Text" lineEndContext="#pop">
+                <RegExpr attribute="Type" context="#pop" String="\b[ui]([0-9]{1,4}|[1-5][0-9]{4}|6([0-4][0-9]{3}|5([0-4][0-9]{2}|5([0-2][0-9]|3[0-5]))))\b"/>
+                <DetectIdentifier attribute="Normal Text" context="#pop"/>
+            </context>-->
+        </contexts>
+        <itemDatas>
+            <itemData name="Normal Text" defStyleNum="dsNormal"/>
+            <itemData name="Self Variable" defStyleNum="dsVariable" spellChecking="false"/>
+            <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
+            <itemData name="Type" defStyleNum="dsDataType" spellChecking="false"/>
+            <itemData name="Builtin Functions" defStyleNum="dsBuiltIn" spellChecking="false"/>
+            <itemData name="Constant" defStyleNum="dsConstant" spellChecking="false"/>
+            <itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="false"/>
+            <itemData name="Modifiers" defStyleNum="dsAttribute" spellChecking="false"/>
+            <itemData name="Comment" defStyleNum="dsComment" spellChecking="true"/>
+            <itemData name="Binary" defStyleNum="dsBaseN" spellChecking="false"/>
+            <itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false"/>
+            <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/>
+            <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false"/>
+            <itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>
+            <itemData name="Hex Float" defStyleNum="dsFloat" spellChecking="false"/>
+            <itemData name="String" defStyleNum="dsString"/>
+            <itemData name="String Char" defStyleNum="dsSpecialChar"/>
+            <itemData name="Character" defStyleNum="dsChar" spellChecking="false"/>
+            <itemData name="Symbol" defStyleNum="dsOperator" spellChecking="false"/>
+            <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
+        </itemDatas>
+    </highlighting>
+    <general>
+        <comments>
+            <comment name="singleLine" start="//"/>
+        </comments>
+        <keywords casesensitive="true"/>
+    </general>
+</language>
+<!-- kate: replace-tabs on; tab-width 4; indent-width 4; -->
diff --git a/syntax/zsh.xml b/syntax/zsh.xml
--- a/syntax/zsh.xml
+++ b/syntax/zsh.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE language SYSTEM "language.dtd"
+<!DOCTYPE language
 [
         <!ENTITY tab      "&#009;">
         <!ENTITY funcname "[^&_fragpathseps;=]*+">
@@ -12,20 +12,36 @@
         <!ENTITY wordseps   " &tab;&symbolseps;">
         <!ENTITY wordseps_or_extglog " &tab;>|&amp;;)`"> <!-- wordseps without < and ( -->
 
-        <!ENTITY _fragpathseps  "*?#^~[&wordseps;&substseps;">
+        <!ENTITY bq_string  "`[^`]*+`">
+        <!ENTITY sq_string  "'[^']*+'">
+        <!ENTITY dq_string  "&quot;(?:[^&quot;\\`]*+|&bq_string;|\\.)*+&quot;">
+        <!ENTITY strings    "(?:&sq_string;|&dq_string;|&bq_string;)">
+
+        <!ENTITY simpleglob "*?#^~">
+        <!ENTITY globrange  "&lt;[0-9]*-[0-9]*>">
+        <!ENTITY globany    "\[(?:[^&wordseps;&quot;'`\\\[\]]+|\\.|&strings;|\[:\w+:\]|\[)*\]">
+
+        <!ENTITY _fragpathseps  "&simpleglob;[&wordseps;&substseps;">
         <!ENTITY _fragpathnosep "(?:&_brace_noexpansion;)?+">
         <!ENTITY path        "(?:[^&_fragpathseps;]*+&_fragpathnosep;)*+">
         <!ENTITY fragpath    "(?:[^&_fragpathseps;/]*+&_fragpathnosep;)*+">
         <!ENTITY fragpathesc "\\.(?:[^&_fragpathseps;/]*+(?:\\.|&_brace_noexpansion;)?+)*+">
         <!ENTITY opt         "(?:[^&_fragpathseps;=/]*+&_fragpathnosep;)*+">
-        <!ENTITY assumepath  "/&path;|(?=[*?#^~([]|&lt;[0-9]*-[0-9]*>)">
+        <!ENTITY assumepath  "/&path;|(?=[&simpleglob;([]|&globrange;)">
         <!ENTITY pathpart    "(?:~(?:/&path;|(?=[&wordseps;]|$))|&fragpath;(?:&assumepath;|(?=&fragpathesc;&assumepath;))|\.\.?(?=[&wordseps;]|$))">
 
+        <!-- Path only with / -->
+        <!ENTITY path_with_sep_text  "[^[&wordseps;'&quot;`\\/]">
+        <!ENTITY path_with_sep_text2 "[^[()&lt;>'&quot;`\\/]">
+        <!ENTITY path_with_sep_expr  "\\.|&strings;|&globany;|&globrange;">
+        <!ENTITY path_with_sep_spe   "(~|\.\.?)($|[/ &tab;&lt;>|&amp;;)])">
+        <!ENTITY path_with_sep_sub   "\((&path_with_sep_text2;++|&path_with_sep_expr;)*+(\)|(?=/))">
+        <!ENTITY path_with_sep "/|&path_with_sep_spe;|(&path_with_sep_text;++|&path_with_sep_expr;|&path_with_sep_sub;)*+/">
+
         <!ENTITY _braceexpansion_spe     " &tab;&lt;>|&amp;;{}\\`'&quot;$">
         <!ENTITY _brace_noexpansion      "\{[^&_braceexpansion_spe;,]*+\}">
         <!ENTITY _braceexpansion_var     "\$(?:\{[^\[\]&_braceexpansion_spe;]*+(?:\[[*@a-zA-Z0-9]\])\})?">
-        <!ENTITY _braceexpansion_string  "'[^']*'|&quot;([^&quot;\`]*+|`[^`]*`)*+&quot;">
-        <!ENTITY _braceexpansion_elems   "\\.|`[^`]*`|&_braceexpansion_string;|&_braceexpansion_var;|&_brace_noexpansion;">
+        <!ENTITY _braceexpansion_elems   "\\.|&strings;|&_braceexpansion_var;|&_brace_noexpansion;">
         <!ENTITY _braceexpansion_consume "&_braceexpansion_elems;|{(?:[^&_braceexpansion_spe;,]++|&_braceexpansion_elems;)*?}|(?R)?+">
         <!ENTITY _braceexpansion "(?:[^&_braceexpansion_spe;,]++|&_braceexpansion_consume;)*?,(?:[^&_braceexpansion_spe;]++|&_braceexpansion_consume;)*?}">
         <!ENTITY braceexpansion "{&_braceexpansion;">
@@ -45,19 +61,23 @@
         <!ENTITY _ispattern_ugeP_2    "{(?:[^}'`&quot;\\|()]*+(?:&_ispattern_q;)?)*(?:}(?=[|()]))">
         <!ENTITY _ispattern_ugeP_3 "&lt;(?:[^>'`&quot;\\|()]*+(?:&_ispattern_q;)?)*(?:>|(?=[|()]))">
         <!ENTITY _ispattern_ugeP_4  "([^&wordseps;{}'&quot;`\\])(?:(?:(?!\1)[^'`&quot;\\\1|()])*+(?:&_ispattern_q;)?)*(?:\1|(?=[|()]))">
-        <!ENTITY _ispattern_dq "&quot;(?:[^&quot;\\`]*+(?:`[^`]`|\\.)?)*&quot;">
-        <!ENTITY _ispattern_q "\\.|'[^']*'|`[^`]`|&_ispattern_dq;">
+        <!ENTITY _ispattern_q "\\.|&strings;">
         <!ENTITY _ispattern_check "(?:\)(?:[^ &tab;}&lt;>|&amp;;)]|&nogroupend;)|[ &tab;|(]|$)">
         <!ENTITY ispattern "(?:[^ &tab;\\'&quot;|()`ugeP]*+(?:&_ispattern_ugN;|&_ispattern_ugeP;|&_ispattern_q;)?)*&_ispattern_check;">
 
         <!ENTITY heredocq "(?|&quot;([^&quot;]+)&quot;|'([^']+)'|\\(.[^&wordseps;&substseps;]*))">
 
-        <!ENTITY arithmetic_as_subshell "\(((?:[^`'&quot;()$]++|\$\{[^`'&quot;(){}$]+\}|\$(?=[^{`'&quot;()])|`[^`]*+`|\((?1)(?:[)]|(?=['&quot;])))++)(?:[)](?=$|[^)])|[&quot;'])">
+        <!ENTITY arithmetic_as_subshell "\(((?:[^`'&quot;()$]++|\$\{[^`'&quot;(){}$]+\}|\$(?=[^{`'&quot;()])|&bq_string;|\((?1)(?:[)]|(?=['&quot;])))++)(?:[)](?=$|[^)])|[&quot;'])">
 
+        <!ENTITY unary_operators  "-[abcdefghknoprstuvwxzLOGNS]&eos;">
+        <!ENTITY binary_operators "(?:-(?:e[fq]|[nolg]t|[nlg]e)|==?|!=)&eos;">
+
+        <!ENTITY dblbracket_close "\]\](?=($|[ &tab;;|&amp;)]))">
+
         <!ENTITY int "(?:[0-9]++[_0-9]*+)">
         <!ENTITY exp "(?:[eE][-+]?&int;)">
 ]>
-<language name="Zsh" version="22" kateversion="5.79" section="Scripts" extensions="*.sh;*.zsh;.zshrc;.zprofile;.zlogin;.zlogout;.profile" mimetype="application/x-shellscript" casesensitive="1" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">
+<language name="Zsh" version="32" kateversion="5.79" section="Scripts" extensions="*.sh;*.zsh;.zshrc;.zprofile;.zlogin;.zlogout;.profile" mimetype="application/x-shellscript" casesensitive="1" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">
 
   <highlighting>
     <list name="keywords">
@@ -214,7 +234,7 @@
         <!-- start expression in single/double brackets -->
         <DetectChar context="MaybeBracketExpression" char="[" lookAhead="1"/>
         <!-- start a group command or BraceExpansion with { -->
-        <DetectChar attribute="Keyword" context="Group" char="{"/>
+        <DetectChar attribute="Keyword" context="Group" char="{" beginRegion="group"/>
 
         <!-- handle ` -->
         <DetectChar attribute="Backquote" context="CommandBackq" char="`"/>
@@ -237,6 +257,7 @@
         <!-- handle commands that have variable names as argument -->
         <keyword attribute="Builtin" context="VarName" String="builtins_var" lookAhead="1"/>
         <WordDetect attribute="Builtin" context="#stay" String="noglob"/>
+        <WordDetect attribute="Builtin" context="#stay" String="coproc"/>
         <!-- mark function definitions without function keyword -->
         <RegExpr attribute="Function" context="#stay" String="&funcname;[ &tab;]*\(\)"/>
         <keyword attribute="Builtin" context="CommandArgs" String="builtins"/>
@@ -249,6 +270,8 @@
         <DetectChar context="MaybeGroupEnd" char="}" lookAhead="1"/>
 
         <LineContinue attribute="Escape" context="#stay"/>
+
+        <Detect2Chars attribute="Expression" context="#stay" char="!" char1=" "/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="MaybeGroupEnd">
         <RegExpr context="#pop!Command" String="&nogroupend;" lookAhead="1"/>
@@ -276,7 +299,7 @@
 
       <!-- Group is called after a { is encountered -->
       <context attribute="Normal Text" lineEndContext="#stay" name="Group" fallthroughContext="Command">
-        <DetectChar attribute="Keyword" context="#pop!GroupEnd" char="}"/>
+        <DetectChar attribute="Keyword" context="#pop!GroupEnd" char="}" endRegion="group"/>
         <IncludeRules context="Start"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="GroupEnd" fallthroughContext="#pop!CommandArgs">
@@ -334,17 +357,12 @@
         <Detect2Chars attribute="String Transl." context="#pop!StringDQ" char="$" char1="&quot;"/>
       </context>
       <context attribute="Variable" lineEndContext="#pop" name="DispatchVarNameVariables">
-        <Detect2Chars context="#pop!VarNameSpe" char="$" char1="#" lookAhead="1"/>
-        <RegExpr attribute="Variable" context="#pop!AfterVarName" String="\$(?:&varname;|[0-9]+|[-*@?$!])"/>
-        <Detect2Chars context="#pop!VarNameSpe" char="$" char1="~" lookAhead="1"/>
-        <Detect2Chars context="#pop!VarNameSpe" char="$" char1="=" lookAhead="1"/>
-        <Detect2Chars context="#pop!VarNameSpe" char="$" char1="^" lookAhead="1"/>
-        <Detect2Chars context="#pop!VarNameSpe" char="$" char1="+" lookAhead="1"/>
-      </context>
-      <context attribute="Variable" lineEndContext="#pop" name="VarNameSpe">
-        <DetectChar attribute="Variable" context="#pop!VarNameSpeParam" char="$"/>
+        <RegExpr attribute="Dollar Prefix" context="#pop!VarNamePrefixedWithDollar" String="\$(?=&varname;|[0-9]+|[-*@?$!#~=^+])"/>
       </context>
-      <context attribute="Variable" lineEndContext="#pop" name="VarNameSpeParam">
+      <context attribute="Variable" lineEndContext="#pop" name="VarNamePrefixedWithDollar">
+        <DetectIdentifier attribute="Variable" context="#pop!AfterVarName"/>
+        <Int attribute="Variable" context="#pop!AfterVarName" additionalDeliminator="$"/>
+        <AnyChar attribute="Variable" context="#pop!AfterVarName" String="-*@?$!"/>
         <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarNameSubstLen" char="#"/>
         <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarNameParam+" char="+"/>
         <AnyChar attribute="Parameter Expansion Operator" context="#pop!VarNameParam" String="~=^"/>
@@ -405,6 +423,7 @@
         <IncludeRules context="FindWord"/>
         <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="/"/>
         <AnyChar context="#pop#pop" String=" &tab;&lt;>|&amp;;()" lookAhead="1"/>
+        <DetectIdentifier attribute="String SingleQ"/>
       </context>
 
       <context attribute="Normal Text" lineEndContext="#stay" name="CommandBackq" fallthroughContext="Command">
@@ -480,6 +499,7 @@
         <DetectChar context="NormalOptionMaybeBraceExpansion" char="{" lookAhead="1"/>
         <DetectChar attribute="Normal Text" context="#pop" char="}"/>
         <DetectChar context="MaybeGlobRangeOrPop" char="&lt;" lookAhead="1"/>
+        <DetectIdentifier/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="NormalOptionMaybeGroupEnd">
         <IncludeRules context="FindNoGroupEndThenPop"/>
@@ -542,11 +562,13 @@
         <AnyChar context="#pop#pop" String="&wordseps_or_extglog;" lookAhead="1"/>
         <IncludeRules context="IncPath"/>
         <DetectChar context="PathMaybeGroupEnd" char="}" lookAhead="1"/>
+        <DetectIdentifier attribute="Path"/>
       </context>
       <context attribute="Path" lineEndContext="#pop" name="PathRecBrace">
         <AnyChar context="#pop" String="&wordseps_or_extglog;" lookAhead="1"/>
         <IncludeRules context="IncPath"/>
         <DetectChar attribute="Path" context="#pop" char="}"/>
+        <DetectIdentifier attribute="Path"/>
       </context>
       <context attribute="Glob" lineEndContext="#stay" name="MaybeGlobRangeOrPop" fallthroughContext="#pop#pop">
         <IncludeRules context="FindGlobRangeThenPop"/>
@@ -570,7 +592,7 @@
 
       <!-- FindPathThenPopInAlternateValue consumes path in ${xx:here}-->
       <context attribute="Normal Text" lineEndContext="#pop" name="FindPathThenPopInAlternateValue">
-        <AnyChar attribute="Glob" context="PathThenPopInAlternateValue" String="?*#^~|"/>
+        <AnyChar attribute="Glob" context="PathThenPopInAlternateValue" String="&simpleglob;|"/>
         <Detect2Chars context="PathThenPopInAlternateValue" char="(" char1="#" lookAhead="1"/>
         <AnyChar context="PathThenPopInAlternateValue" String="[(" lookAhead="1"/>
         <RegExpr attribute="Path" context="PathThenPopInAlternateValue" String="&pathpart;"/>
@@ -578,6 +600,7 @@
       <context attribute="Path" lineEndContext="#pop" name="PathThenPopInAlternateValue">
         <AnyChar context="#pop" String="&wordseps_or_extglog;}" lookAhead="1"/>
         <IncludeRules context="IncPath"/>
+        <DetectIdentifier/>
       </context>
 
       <context attribute="Glob" lineEndContext="#stay" name="FindGlobAny">
@@ -587,22 +610,25 @@
         <DetectChar attribute="Glob Flag" context="#pop!GlobAny" char="^"/>
       </context>
       <context attribute="String SingleQ" lineEndContext="#pop" name="GlobAny">
+        <DetectIdentifier attribute="String SingleQ"/>
         <DetectChar context="AssumeEscape" char="\" lookAhead="1"/>
         <DetectChar attribute="Glob Flag" context="#stay" char="-"/>
-        <Detect2Chars attribute="Glob" context="GlobClass" char="[" char1=":"/>
+        <IncludeRules context="FindStrings"/>
         <DetectChar attribute="Glob" context="#pop" char="]"/>
+        <Detect2Chars attribute="Glob" context="GlobClass" char="[" char1=":"/>
       </context>
       <context attribute="Glob" lineEndContext="#pop#pop" name="GlobClass">
+        <DetectIdentifier attribute="Pattern"/>
         <Detect2Chars attribute="Glob" context="#pop" char=":" char1="]"/>
         <DetectChar attribute="Error" context="#pop" char="]"/>
       </context>
 
       <context attribute="Pattern" lineEndContext="#stay" name="FindSingleGlob">
-        <AnyChar attribute="Glob" context="#stay" String="?*#^~"/>
+        <AnyChar attribute="Glob" context="#stay" String="&simpleglob;"/>
       </context>
 
       <context attribute="Pattern" lineEndContext="#stay" name="FindGlobPattern">
-        <AnyChar attribute="Glob" context="#stay" String="?*#^~|"/>
+        <AnyChar attribute="Glob" context="#stay" String="&simpleglob;|"/>
         <IncludeRules context="FindGlobAny"/>
         <IncludeRules context="FindGroupPattern"/>
       </context>
@@ -642,11 +668,13 @@
         <DetectChar attribute="Glob" context="#pop" char=")"/>
         <IncludeRules context="FindWord"/>
         <IncludeRules context="FindSubPattern"/>
+        <DetectIdentifier attribute="Pattern"/>
       </context>
       <context attribute="Pattern" lineEndContext="#stay" name="ExtGlobPatternThenPath">
         <DetectChar attribute="Glob" context="#pop!PathThenPop" char=")"/>
         <IncludeRules context="FindWord"/>
         <IncludeRules context="FindSubPattern"/>
+        <DetectIdentifier attribute="Pattern"/>
       </context>
 
       <context attribute="Normal Text" lineEndContext="#pop" name="VarAssign" fallthroughContext="#pop">
@@ -795,6 +823,7 @@
       <context attribute="Normal Text" lineEndContext="#pop" name="StringRedirection2">
         <AnyChar context="#pop" String="&wordseps;`" lookAhead="1"/>
         <IncludeRules context="FindWord"/>
+        <DetectIdentifier attribute="Normal Text"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="CloseFile" fallthroughContext="#pop">
         <DetectChar attribute="Keyword" context="#pop" char="-"/>
@@ -815,7 +844,11 @@
         <Detect2Chars attribute="Redirection" context="#pop"  char="&lt;" char1="&lt;"/><!-- always met -->
       </context>
 
-      <context attribute="Normal Text" lineEndContext="#pop" name="HereDocRemainder" fallthroughContext="Command">
+      <context attribute="Normal Text" lineEndContext="#pop" name="HereDocRemainder" fallthroughContext="CommandArg">
+        <AnyChar context="ZshOneLine" String="&amp;|;`" lookAhead="1"/>
+        <IncludeRules context="CommandArgs"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="ZshOneLine" fallthroughContext="Command">
         <IncludeRules context="Start"/>
       </context>
 
@@ -824,7 +857,7 @@
       </context>
 
       <context attribute="Here Doc" lineEndContext="#stay" name="HereDocNQ" dynamic="1" fallthroughContext="HereDocSubstitutions">
-        <RegExpr attribute="Redirection" context="#pop#pop" String="^%1$" dynamic="1" column="0"/>
+        <IncludeRules context="HereDocQ" />
       </context>
 
       <context attribute="Here Doc" lineEndContext="#stay" name="HereDocIQ" dynamic="1" fallthroughContext="HereDocText">
@@ -832,33 +865,40 @@
       </context>
 
       <context attribute="Here Doc" lineEndContext="#stay" name="HereDocINQ" dynamic="1" fallthroughContext="HereDocSubstitutions">
-        <RegExpr attribute="Redirection" context="#pop#pop" String="^\t*%1$" dynamic="1" column="0"/>
+        <IncludeRules context="HereDocIQ" />
       </context>
 
+      <context attribute="Here Doc" lineEndContext="#stay" name="HereDocCmd">
+        <!-- Only if the redirect is before the command, but as this is too complicated,
+             check if the redirect is at the beginning of the line. -->
+        <StringDetect attribute="Redirection" context="ZshOneLine" String="%1" dynamic="true" firstNonSpace="1"/>
+        <StringDetect attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true"/>
+      </context>
+
       <context attribute="Here Doc" lineEndContext="#stay" name="HereDocQCmd" dynamic="1" fallthroughContext="HereDocText">
-        <StringDetect attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="1"/>
+        <IncludeRules context="HereDocCmd"/>
         <RegExpr attribute="Redirection" context="#pop#pop" String="^%2$" dynamic="1" column="0"/>
       </context>
 
       <context attribute="Here Doc" lineEndContext="#stay" name="HereDocNQCmd" dynamic="1" fallthroughContext="HereDocSubstitutions">
-        <StringDetect attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="1"/>
-        <RegExpr attribute="Redirection" context="#pop#pop" String="^%2$" dynamic="1" column="0"/>
+        <IncludeRules context="HereDocQCmd"/>
       </context>
 
       <context attribute="Here Doc" lineEndContext="#stay" name="HereDocIQCmd" dynamic="1" fallthroughContext="HereDocText">
-        <StringDetect attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="1"/>
+        <IncludeRules context="HereDocCmd"/>
         <RegExpr attribute="Redirection" context="#pop#pop" String="^\t*%2$" dynamic="1" column="0"/>
       </context>
 
       <context attribute="Here Doc" lineEndContext="#stay" name="HereDocINQCmd" dynamic="1" fallthroughContext="HereDocSubstitutions">
-        <StringDetect attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="1"/>
-        <RegExpr attribute="Redirection" context="#pop#pop" String="^\t*%2$" dynamic="1" column="0"/>
+        <IncludeRules context="HereDocIQCmd"/>
       </context>
 
       <context attribute="Here Doc" lineEndContext="#pop" name="HereDocText">
       </context>
 
       <context attribute="Here Doc" lineEndContext="#pop" name="HereDocSubstitutions">
+        <DetectSpaces attribute="Here Doc"/>
+        <DetectIdentifier attribute="Here Doc"/>
         <DetectChar context="HereDocVariables" char="$" lookAhead="1"/>
         <DetectChar attribute="Backquote" context="CommandBackq" char="`"/>
         <DetectChar context="AssumeEscape" char="\" lookAhead="1"/>
@@ -950,11 +990,15 @@
 
       <!-- StringSQ consumes anything till ' -->
       <context attribute="String SingleQ" lineEndContext="#stay" name="StringSQ">
+        <DetectSpaces attribute="String SingleQ"/>
+        <DetectIdentifier attribute="String SingleQ"/>
         <DetectChar attribute="String SingleQ" context="#pop" char="'"/>
       </context>
 
       <!-- StringDQ consumes anything till ", substitutes vars and expressions -->
       <context attribute="String DoubleQ" lineEndContext="#stay" name="StringDQ">
+        <DetectSpaces attribute="String DoubleQ"/>
+        <DetectIdentifier attribute="String DoubleQ"/>
         <DetectChar attribute="String DoubleQ" context="#pop" char="&quot;"/>
         <DetectChar context="StringDQEscape" char="\" lookAhead="1"/>
         <DetectChar context="StringDQDispatchVariables" char="$" lookAhead="1"/>
@@ -983,6 +1027,8 @@
 
       <!-- StringEsc eats till ', but escaping many characters -->
       <context attribute="String SingleQ" lineEndContext="#stay" name="StringEsc">
+        <DetectSpaces attribute="String SingleQ"/>
+        <DetectIdentifier attribute="String SingleQ"/>
         <DetectChar attribute="String SingleQ" context="#pop" char="'"/>
         <RegExpr attribute="String Escape" context="#stay" String="\\(?:[abefnrtv\\']|[0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)"/>
       </context>
@@ -1021,7 +1067,7 @@
         <DetectChar attribute="Error" context="#pop" char="$"/>
       </context>
       <context attribute="Error" lineEndContext="#stay" name="VarError">
-        <DetectChar attribute="Variable" context="#pop" char="}"/>
+        <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="CheckVarAlt" fallthroughContext="#pop!VarError">
         <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
@@ -1083,7 +1129,7 @@
 
       <!-- called as soon as ${xxx: is encoutered -->
       <context attribute="Normal Text" lineEndContext="#stay" name="VarSub">
-        <DetectChar attribute="Variable" context="#pop" char="}"/>
+        <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
         <AnyChar context="VarOffset" String="0123456789" lookAhead="1"/>
         <AnyChar attribute="Operator" context="#stay" String="+-!~*/%&lt;>=&amp;^|"/>
         <DetectChar attribute="Parameter Expansion Operator" context="#stay" char=":"/>
@@ -1109,12 +1155,14 @@
         <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
         <IncludeRules context="FindWord"/>
         <IncludeRules context="FindPathThenPopInAlternateValue"/>
+        <DetectIdentifier attribute="String DoubleQ"/>
       </context>
       <context attribute="String DoubleQ" lineEndContext="#stay" name="RecursiveAlternateValue">
         <DetectChar attribute="String DoubleQ" context="RecursiveAlternateValue" char="{"/>
         <DetectChar attribute="String DoubleQ" context="#pop" char="}"/>
         <IncludeRules context="FindWord"/>
         <IncludeRules context="FindPathThenPopInAlternateValue"/>
+        <DetectIdentifier attribute="String DoubleQ"/>
       </context>
 
       <!-- called as soon as ${xxx%, etc are encoutered -->
@@ -1123,12 +1171,14 @@
         <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
         <IncludeRules context="FindWord"/>
         <IncludeRules context="FindStringDQPattern"/>
+        <DetectIdentifier attribute="String DoubleQ"/>
       </context>
       <context attribute="String DoubleQ" lineEndContext="#stay" name="RecursiveAlternatePatternValue">
         <DetectChar attribute="String DoubleQ" context="RecursiveAlternateValue" char="{"/>
         <DetectChar attribute="String DoubleQ" context="#pop" char="}"/>
         <IncludeRules context="FindWord"/>
         <IncludeRules context="FindStringDQPattern"/>
+        <DetectIdentifier attribute="String DoubleQ"/>
       </context>
 
       <!-- called as soon as ${xxx/ ${xxx// ${xxx:/ are encoutered -->
@@ -1142,12 +1192,12 @@
         <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
         <IncludeRules context="FindWord"/>
         <IncludeRules context="FindSubPattern"/>
-        <DetectIdentifier attribute="Pattern" context="#stay"/>
+        <DetectIdentifier attribute="Pattern"/>
       </context>
 
       <!-- called as soon as ${( is encoutered -->
       <context attribute="Parameter Expansion" lineEndContext="#stay" name="VarFlags">
-        <AnyChar attribute="Parameter Expansion Operator" context="#stay" String="#q@AabcCDefFikLnoOPqQ+-tuUvVwWXz0~mSBEMNR"/>
+        <AnyChar attribute="Parameter Expansion Operator" context="#stay" String="#%*q@AabcCDefFikLnoOPqQ+-tuUvVwWXz0~mSBEMNR"/>
         <AnyChar attribute="Parameter Expansion Operator" context="VarFlag_s" String="sjgZ_"/>
         <AnyChar attribute="Parameter Expansion Operator" context="VarFlag_l" String="lrI"/>
         <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlagsSubs" char="p"/>
@@ -1170,10 +1220,16 @@
         <DetectChar attribute="String DoubleQ" context="StringDQ" char="&quot;"/>
         <AnyChar attribute="Parameter Expansion Operator" context="#stay" String="#+^=~"/>
         <DetectIdentifier attribute="Variable" context="#pop!CheckVarAlt"/>
-        <AnyChar attribute="Variable" context="#pop!CheckVarAlt" String="*@?$!-"/>
+        <AnyChar attribute="Variable" context="#pop!CheckVarAlt" String="*@?$-"/>
         <Int attribute="Variable" context="#pop!CheckVarAlt" additionalDeliminator="#~=^+{}[]:-/$"/>
+        <Detect2Chars context="#pop!VarSubShell" char="!" char1="}" lookAhead="1"/>
+        <DetectChar attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char="!"/>
       </context>
 
+      <context attribute="Parameter Expansion" lineEndContext="#stay" name="VarSubShell">
+        <DetectChar attribute="Variable" context="#pop!CheckVarAlt" char="!"/>
+      </context>
+
       <context attribute="Parameter Expansion" lineEndContext="#stay" name="VarFlag_s">
         <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlag_s[" char="["/>
         <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarFlag_s&lt;" char="&lt;"/>
@@ -1344,6 +1400,7 @@
         <DetectChar context="BraceExpansionVariables" char="$" lookAhead="1"/>
         <IncludeRules context="FindStrings"/>
         <IncludeRules context="FindPattern"/>
+        <DetectIdentifier attribute="Escape"/>
       </context>
       <context attribute="Escape" lineEndContext="#pop" name="EscapeMaybeBraceExpansion">
         <IncludeRules context="DispatchBraceExpansion"/>
@@ -1363,6 +1420,7 @@
         <DetectChar context="PathMaybeBraceExpansion" char="{" lookAhead="1"/>
         <IncludeRules context="FindWord"/>
         <IncludeRules context="FindPattern"/>
+        <DetectIdentifier attribute="Path"/>
       </context>
 
       <context attribute="Normal Text" lineEndContext="#pop" name="SequenceExpression">
@@ -1436,7 +1494,7 @@
       <!-- ExprDblParenSubst like ExprDblParen but matches )) as Variable -->
       <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParenSubst">
         <DetectSpaces attribute="Normal Text" context="#stay"/>
-        <Detect2Chars attribute="Variable" context="#pop" char=")" char1=")" endRegion="expression"/>
+        <Detect2Chars attribute="Parameter Expansion" context="#pop" char=")" char1=")" endRegion="expression"/>
         <IncludeRules context="FindExprDblParen"/>
         <!-- $((cmd
               ) # jump to SubstCommand context -->
@@ -1472,6 +1530,7 @@
         <IncludeRules context="FindPathThenPop"/>
         <DetectChar context="ExprBracketValueMaybeBraceExpansion" char="{" lookAhead="1"/>
         <DetectChar context="NormalOptionMaybeGroupEnd" char="}" lookAhead="1"/>
+        <DetectIdentifier attribute="Normal Text"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="ExprBracketValueRecBrace">
         <AnyChar context="#pop#pop" String=" &tab;" lookAhead="1"/>
@@ -1480,6 +1539,7 @@
         <IncludeRules context="FindGlobAny"/>
         <DetectChar context="ExprBracketValueMaybeBraceExpansion" char="{" lookAhead="1"/>
         <DetectChar attribute="Normal Text" context="#pop" char="}"/>
+        <DetectIdentifier attribute="Normal Text"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="ExprBracketValueMaybeBraceExpansion">
         <IncludeRules context="DispatchBraceExpansion"/>
@@ -1500,6 +1560,7 @@
       <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracketFinal" fallthroughContext="ExprBracketValue">
         <DetectSpaces attribute="Normal Text" context="#stay"/>
         <IncludeRules context="FindExprBracketEnd"/>
+        <RegExpr attribute="Expression" context="#pop!ExprBracket" String="-[ao]&eos;"/>
         <RegExpr attribute="Error" context="#pop" String="(?:[^] &tab;]++|\][^ &tab;])++" endRegion="expression"/>
       </context>
 
@@ -1509,10 +1570,10 @@
       </context>
 
       <context attribute="Normal Text" lineEndContext="#pop" name="TestMaybeUnary" fallthroughContext="#pop!ExprBracketValue">
-        <RegExpr attribute="Expression" context="#pop" String="-[abcdefghknoprstuvwxzLOGNS](?=[ &tab;])"/>
+        <RegExpr attribute="Expression" context="#pop#pop!ExprBracketParam2" String="&unary_operators;"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="TestMaybeBinary" fallthroughContext="#pop!ExprBracketValue">
-        <RegExpr attribute="Expression" context="#pop" String="(?:-(?:e[fq]|[nolg]t|[nlg]e)|==?|!=)(?=[ &tab;])"/>
+        <RegExpr attribute="Expression" context="#pop" String="&binary_operators;"/>
       </context>
 
 
@@ -1520,64 +1581,126 @@
       <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracket" fallthroughContext="#pop!ExprDblBracketNot">
         <DetectSpaces attribute="Normal Text" context="#stay"/>
         <IncludeRules context="FindExprDblBracketEnd"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
       </context>
 
       <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketNot" fallthroughContext="#pop!ExprDblBracketParam1">
-        <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketParam1"/>
         <DetectChar context="ExprDblBracketTestMaybeNot" char="!" lookAhead="1"/>
+        <DetectSpaces attribute="Normal Text" context="#stay"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketTestMaybeNot" fallthroughContext="#pop#pop!ExprDblBracketParam1">
         <RegExpr attribute="Expression" context="#pop" String="!(?=$|[ &tab;(])"/>
       </context>
 
-      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam1" fallthroughContext="ExprDblBracketValue">
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam1" fallthroughContext="#pop!ExprDblBracketParam1_2">
+        <DetectSpaces attribute="Normal Text" context="#stay"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam1_2" fallthroughContext="ExprDblBracketValueText">
         <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketParam2"/>
-        <DetectChar context="TestMaybeUnary" char="-" lookAhead="1"/>
-        <AnyChar attribute="Expression" context="#pop!ExprDblBracketParam3Spe" String="&lt;>"/>
+        <DetectChar context="TestMaybeUnary2" char="-" lookAhead="1"/>
         <DetectChar context="ExprDblBracketSubValue" char="(" lookAhead="1"/>
         <IncludeRules context="FindExprDblBracketEnd"/>
       </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="TestMaybeUnary2" fallthroughContext="#pop!ExprDblBracketValueText">
+        <RegExpr attribute="Expression" context="#pop!ExprDblBracketUnary" String="&unary_operators;(?!\s+(?:=~|&binary_operators;))"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketUnary" fallthroughContext="#pop!ExprDblBracketValueText">
+        <DetectSpaces attribute="Normal Text"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
+      </context>
       <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketSubValue" fallthroughContext="#pop">
         <DetectChar attribute="Operator" context="ExprDblBracketNot" char="("/>
         <DetectChar attribute="Operator" context="#pop" char=")"/>
       </context>
 
-      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValue">
+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValueText" fallthroughContext="#pop!ExprDblBracketValueText2">
+        <Detect2Chars context="#pop!ExprDblBracketValueTextMaybeEnd" char="]" char1="]" lookAhead="1"/>
+        <IncludeRules context="FindExprDblBracketValueTextPath"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="FindExprDblBracketValueTextPath">
+        <RegExpr context="#pop!ExprDblBracketValueTextPath" String="&path_with_sep;|" lookAhead="1"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValueTextMaybeEnd">
+        <RegExpr attribute="Keyword" context="#pop#pop" String="&dblbracket_close;" endRegion="expression"/>
+        <IncludeRules context="FindExprDblBracketValueTextPath"/>
+        <Detect2Chars context="#pop!ExprDblBracketValueText2" char="]" char1="]" lookAhead="1"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValueText2">
+        <DetectIdentifier/>
+        <AnyChar String="*?+@~^:%+-/,"/>
         <Detect2Chars attribute="Control" context="#pop#pop!ExprDblBracket" char="&amp;" char1="&amp;"/>
         <Detect2Chars attribute="Control" context="#pop#pop!ExprDblBracket" char="|" char1="|"/>
+        <AnyChar context="#pop" String=" &tab;)" lookAhead="1"/>
+        <IncludeRules context="FindWord"/>
+        <IncludeRules context="FindGroupPattern"/>
         <AnyChar attribute="Error" context="#stay" String="&amp;;|"/>
+        <DetectChar context="ExprDblBracketValueTextMaybeRange" char="&lt;" lookAhead="1"/>
+        <DetectChar attribute="Expression" context="#pop!ExprDblBracketValuePattern" char=">"/>
+      </context>
+      <context attribute="Path" lineEndContext="#pop" name="ExprDblBracketValueTextPath">
+        <IncludeRules context="ExprDblBracketValueText2"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValueTextMaybeRange">
+        <RegExpr context="#pop" String="&globrange;"/>
+        <DetectChar attribute="Expression" context="#pop#pop!ExprDblBracketValuePattern" char="&lt;"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValuePattern" fallthroughContext="#pop!ExprDblBracketValuePattern2">
+        <RegExpr context="ExprDblBracketValuePatternPath" String="&path_with_sep;|" lookAhead="1"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValuePatternPath" fallthroughContext="#pop!PathThenPop">
+        <DetectChar attribute="Path" context="#pop!PathThenPop" char="~"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValuePattern2">
+        <DetectIdentifier attribute="Normal Text"/>
+        <Detect2Chars attribute="Control" context="#pop#pop!ExprDblBracket" char="&amp;" char1="&amp;"/>
+        <Detect2Chars attribute="Control" context="#pop#pop!ExprDblBracket" char="|" char1="|"/>
         <AnyChar context="#pop" String=" &tab;)" lookAhead="1"/>
         <IncludeRules context="FindWord"/>
         <IncludeRules context="FindSingleGlob"/>
         <IncludeRules context="FindGlobAny"/>
         <IncludeRules context="FindGroupPattern"/>
-        <DetectChar context="MaybeGlobRangeOrPop" char="&lt;" lookAhead="1"/>
-        <DetectChar context="#pop" char="&gt;" lookAhead="1"/>
+        <DetectChar context="ExprDblBracketValueMaybeGlobRange" char="&lt;" lookAhead="1"/>
+        <AnyChar attribute="Error" context="#stay" String=">&amp;|;"/>
       </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketValueMaybeGlobRange">
+        <IncludeRules context="FindGlobRangeThenPop"/>
+        <DetectChar attribute="Error" context="#pop" char="&lt;"/>
+      </context>
 
-      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam2" fallthroughContext="ExprDblBracketValue">
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam2" fallthroughContext="#pop!ExprDblBracketParam2_2">
+        <DetectSpaces attribute="Normal Text" context="#stay"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam2_2" fallthroughContext="ExprDblBracketValuePattern">
         <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketParam3"/>
         <AnyChar context="TestMaybeBinary2" String="-=!" lookAhead="1"/>
         <AnyChar attribute="Expression" context="#pop!ExprDblBracketParam3Spe" String="&lt;>"/>
         <IncludeRules context="FindExprDblBracketEnd"/>
       </context>
-      <context attribute="Normal Text" lineEndContext="#pop" name="TestMaybeBinary2" fallthroughContext="#pop!ExprDblBracketValue">
+      <context attribute="Normal Text" lineEndContext="#pop" name="TestMaybeBinary2" fallthroughContext="#pop!ExprDblBracketValuePattern">
         <IncludeRules context="TestMaybeBinary"/>
-        <RegExpr attribute="Expression" context="#pop#pop!ExprDblBracketRegex" String="=~(?=[ &tab;(])"/>
+        <RegExpr attribute="Expression" context="#pop#pop!ExprDblBracketRegex" String="=~&eos;"/>
       </context>
 
       <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam3Spe" fallthroughContext="#pop!ExprDblBracketParam3">
         <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketParam3"/>
       </context>
 
-      <context attribute="Normal Text" lineEndContext="ExprDblBracketFinal" name="ExprDblBracketParam3" fallthroughContext="ExprDblBracketValue">
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam3" fallthroughContext="#pop!ExprDblBracketParam3_2">
+        <DetectSpaces attribute="Normal Text" context="#stay"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop!ExprDblBracketFinal" name="ExprDblBracketParam3_2" fallthroughContext="ExprDblBracketValuePattern">
         <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketFinal"/>
         <IncludeRules context="FindExprDblBracketEnd"/>
       </context>
 
-      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketFinal" fallthroughContext="ExprDblBracketValue">
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketFinal" fallthroughContext="ExprDblBracketValuePattern">
         <DetectSpaces attribute="Normal Text" context="#stay"/>
         <IncludeRules context="FindExprDblBracketEnd"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
         <RegExpr attribute="Error" context="#pop" String="(?:[^] &tab;]++|\](?:[^]]|\][^ &tab;]))++" endRegion="expression"/>
       </context>
 
@@ -1586,20 +1709,23 @@
         <DetectChar context="#pop" char=")" lookAhead="1"/>
         <Detect2Chars attribute="Control" context="#pop!ExprDblBracket" char="&amp;" char1="&amp;"/>
         <Detect2Chars attribute="Control" context="#pop!ExprDblBracket" char="|" char1="|"/>
-        <RegExpr attribute="Keyword" context="#pop" String="\]\](?=($|[ &tab;;|&amp;)]))" endRegion="expression"/>
+        <RegExpr attribute="Keyword" context="#pop" String="&dblbracket_close;" endRegion="expression"/>
       </context>
 
-      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketRegex">
-        <DetectSpaces attribute="Normal Text" context="#pop!Regex"/>
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketRegex" fallthroughContext="#pop!Regex">
+        <DetectSpaces attribute="Normal Text" context="#stay"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
       </context>
       <context attribute="Pattern" lineEndContext="#stay" name="Regex">
+        <DetectIdentifier attribute="Pattern"/>
         <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketFinal"/>
-        <DetectChar attribute="Error" context="#stay" char=")"/>
+        <DetectChar attribute="Operator" context="#pop" char=")"/>
         <Detect2Chars attribute="Operator" context="RegexChar" char="[" char1="^"/>
         <DetectChar attribute="Operator" context="RegexChar" char="["/>
         <IncludeRules context="FindRegex"/>
       </context>
       <context attribute="Pattern" lineEndContext="#stay" name="ExprDblBracketSubRegex">
+        <DetectIdentifier attribute="Pattern"/>
         <DetectSpaces attribute="Pattern" context="#stay"/>
         <DetectChar attribute="Operator" context="#pop" char=")"/>
         <Detect2Chars attribute="Operator" context="RegexSubChar" char="[" char1="^"/>
@@ -1626,7 +1752,7 @@
       </context>
 
       <context attribute="Normal Text" lineEndContext="#pop" name="RegexDup">
-        <AnyChar attribute="Number" context="#stay" String="0123456789"/>
+        <Int attribute="Number"/>
         <DetectChar attribute="Parameter Expansion Operator" context="#stay" char=","/>
         <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>
       </context>
@@ -1649,6 +1775,7 @@
         <DetectChar context="RegexCharClassSelect" char="[" lookAhead="1"/>
         <DetectChar attribute="Operator" context="#pop" char="]"/>
         <AnyChar context="#pop" String="() &tab;" lookAhead="1"/>
+        <IncludeRules context="FindStrings"/>
       </context>
       <context attribute="Operator" lineEndContext="#stay" name="RegexInCharEnd">
         <DetectChar attribute="Pattern" context="#stay" char="-"/>
@@ -1662,14 +1789,17 @@
       </context>
 
       <context attribute="Parameter Expansion" lineEndContext="#pop#pop#pop" name="RegexCharClass">
+        <DetectIdentifier attribute="Parameter Expansion"/>
         <Detect2Chars attribute="Parameter Expansion Operator" context="#pop" char=":" char1="]"/>
         <DetectChar attribute="Error" context="#pop" char="]"/>
       </context>
       <context attribute="Parameter Expansion" lineEndContext="#pop#pop#pop" name="RegexCollatingSymbols">
+        <DetectIdentifier attribute="Parameter Expansion"/>
         <Detect2Chars attribute="Parameter Expansion Operator" context="#pop" char="." char1="]"/>
         <DetectChar attribute="Error" context="#pop" char="]"/>
       </context>
       <context attribute="Parameter Expansion" lineEndContext="#pop#pop#pop" name="RegexEquivalenceClass">
+        <DetectIdentifier attribute="Parameter Expansion"/>
         <Detect2Chars attribute="Parameter Expansion Operator" context="#pop" char="=" char1="]"/>
         <DetectChar attribute="Error" context="#pop" char="]"/>
       </context>
@@ -1714,6 +1844,7 @@
         <AnyChar attribute="Number" context="#stay" String="0123456789-"/>
       </context>
       <context attribute="Normal Text" lineEndContext="#stay" name="Subscript2">
+        <DetectIdentifier attribute="Normal Text"/>
         <DetectChar attribute="Parameter Expansion Operator" context="#pop#pop" char="]"/>
         <DetectChar attribute="Parameter Expansion Operator" context="#pop" char=","/>
         <IncludeRules context="FindGroupPattern"/>
@@ -1742,19 +1873,21 @@
         <IncludeRules context="FindWord"/>
         <DetectChar context="FunctionNameMaybeBraceExpansion" char="{" lookAhead="1"/>
         <DetectChar context="NormalOptionMaybeGroupEnd" char="}" lookAhead="1"/>
+        <DetectIdentifier attribute="Function"/>
       </context>
       <context attribute="Function" lineEndContext="#pop" name="FunctionNameRecBrace" fallthroughContext="#pop">
         <IncludeRules context="FindWord"/>
         <DetectChar context="FunctionNameMaybeBraceExpansion" char="{" lookAhead="1"/>
         <DetectChar attribute="Function" context="#pop" char="}"/>
+        <DetectIdentifier attribute="Function"/>
       </context>
       <context attribute="Function" lineEndContext="#pop" name="FunctionNameStartMaybeBraceExpansion">
         <IncludeRules context="DispatchBraceExpansion"/>
-        <DetectChar attribute="Keyword" context="#pop#pop#pop!Group" char="{"/>
+        <DetectChar attribute="Keyword" context="#pop#pop#pop!Group" char="{" beginRegion="group"/>
       </context>
       <context attribute="Function" lineEndContext="#pop" name="FunctionNameMaybeBraceExpansion">
         <IncludeRules context="DispatchBraceExpansion"/>
-        <DetectChar attribute="Function" context="#pop!FunctionNameRecBrace" char="{"/>
+        <DetectChar attribute="Function" context="#pop!FunctionNameRecBrace" char="{" beginRegion="group"/>
       </context>
 
       <!-- Case is called after the case keyword is encoutered. We handle this because of
@@ -1833,6 +1966,7 @@
         <DetectChar attribute="Operator" context="#stay" char=","/>
         <DetectChar attribute="Parameter Expansion Operator" context="#pop!GlobModifier" char=":"/>
         <DetectChar attribute="Glob Flag" context="#pop" char=")"/>
+        <IncludeRules context="FindWord"/>
       </context>
 
       <context attribute="Normal Text" lineEndContext="#pop" name="GlobQualifier_o" fallthroughContext="#pop">
@@ -1959,17 +2093,20 @@
         <IncludeRules context="FindWord"/>
         <IncludeRules context="FindSubPattern"/>
         <DetectChar attribute="Error" context="#pop#pop" char=")"/>
+        <DetectIdentifier attribute="Pattern"/>
       </context>
       <context attribute="String DoubleQ" lineEndContext="#stay" name="GlobModifier_s_Rep">
         <DetectChar attribute="Glob Flag" context="#pop#pop" char=")"/>
         <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="/"/>
         <DetectChar attribute="String DoubleQ" context="GlobModifier_s_RecursiveRep" char="("/>
         <IncludeRules context="FindWord"/>
+        <DetectIdentifier attribute="String DoubleQ"/>
       </context>
       <context attribute="String DoubleQ" lineEndContext="#stay" name="GlobModifier_s_RecursiveRep">
         <DetectChar attribute="String DoubleQ" context="#pop" char=")"/>
         <DetectChar attribute="String DoubleQ" context="GlobModifier_s_RecursiveRep" char="("/>
         <IncludeRules context="FindWord"/>
+        <DetectIdentifier attribute="String DoubleQ"/>
       </context>
 
     </contexts>
@@ -1977,37 +2114,38 @@
     <itemDatas>
       <itemData name="Normal Text"    defStyleNum="dsNormal"/>
       <itemData name="Comment"        defStyleNum="dsComment"/>
-      <itemData name="Keyword"        defStyleNum="dsKeyword"/>
-      <itemData name="Control"        defStyleNum="dsKeyword"/>
-      <itemData name="Control Flow"   defStyleNum="dsControlFlow"/>
-      <itemData name="Builtin"        defStyleNum="dsBuiltIn"/>
-      <itemData name="Command"        defStyleNum="dsFunction"/>
-      <itemData name="OtherCommand"   defStyleNum="dsExtension"/>
-      <itemData name="Redirection"    defStyleNum="dsOperator"/>
-      <itemData name="Escape"         defStyleNum="dsDataType"/>
+      <itemData name="Keyword"        defStyleNum="dsKeyword"       spellChecking="false"/>
+      <itemData name="Control"        defStyleNum="dsKeyword"       spellChecking="false"/>
+      <itemData name="Control Flow"   defStyleNum="dsControlFlow"   spellChecking="false"/>
+      <itemData name="Builtin"        defStyleNum="dsBuiltIn"       spellChecking="false"/>
+      <itemData name="Command"        defStyleNum="dsFunction"      spellChecking="false"/>
+      <itemData name="OtherCommand"   defStyleNum="dsExtension"     spellChecking="false"/>
+      <itemData name="Redirection"    defStyleNum="dsOperator"      spellChecking="false"/>
+      <itemData name="Escape"         defStyleNum="dsDataType"      spellChecking="false"/>
       <itemData name="String SingleQ" defStyleNum="dsString"/>
       <itemData name="String DoubleQ" defStyleNum="dsString"/>
       <itemData name="Here Doc"       defStyleNum="dsString"/>
-      <itemData name="Backquote"      defStyleNum="dsKeyword"/>
+      <itemData name="Backquote"      defStyleNum="dsKeyword"       spellChecking="false"/>
       <itemData name="String Transl." defStyleNum="dsString"/>
       <itemData name="String Escape"  defStyleNum="dsDataType"/>
-      <itemData name="Variable"       defStyleNum="dsVariable"/>
-      <itemData name="Expression"     defStyleNum="dsOthers"/>
-      <itemData name="Function"       defStyleNum="dsFunction"/>
-      <itemData name="Pattern"        defStyleNum="dsSpecialString"/>
-      <itemData name="Path"           defStyleNum="dsNormal"/>
-      <itemData name="Glob"           defStyleNum="dsPreprocessor"/>
-      <itemData name="Glob Flag"      defStyleNum="dsOperator"/>
-      <itemData name="Option"         defStyleNum="dsAttribute"/>
-      <itemData name="Hex"            defStyleNum="dsBaseN"/>
-      <itemData name="Number"         defStyleNum="dsDecVal"/>
-      <itemData name="Base"           defStyleNum="dsDataType"/>
-      <itemData name="BaseN"          defStyleNum="dsBaseN"/>
-      <itemData name="File Descriptor" defStyleNum="dsDecVal"/>
-      <itemData name="Parameter Expansion" defStyleNum="dsVariable"/>
-      <itemData name="Parameter Expansion Operator" defStyleNum="dsOperator"/>
-      <itemData name="Operator"       defStyleNum="dsOperator"/>
-      <itemData name="Error"          defStyleNum="dsError"/>
+      <itemData name="Variable"       defStyleNum="dsVariable"      spellChecking="false"/>
+      <itemData name="Dollar Prefix"  defStyleNum="dsVariable"      spellChecking="false"/>
+      <itemData name="Expression"     defStyleNum="dsOthers"        spellChecking="false"/>
+      <itemData name="Function"       defStyleNum="dsFunction"      spellChecking="false"/>
+      <itemData name="Pattern"        defStyleNum="dsSpecialString" spellChecking="false"/>
+      <itemData name="Path"           defStyleNum="dsNormal"        spellChecking="false"/>
+      <itemData name="Glob"           defStyleNum="dsPreprocessor"  spellChecking="false"/>
+      <itemData name="Glob Flag"      defStyleNum="dsOperator"      spellChecking="false"/>
+      <itemData name="Option"         defStyleNum="dsAttribute"     spellChecking="false"/>
+      <itemData name="Hex"            defStyleNum="dsBaseN"         spellChecking="false"/>
+      <itemData name="Number"         defStyleNum="dsDecVal"        spellChecking="false"/>
+      <itemData name="Base"           defStyleNum="dsDataType"      spellChecking="false"/>
+      <itemData name="BaseN"          defStyleNum="dsBaseN"         spellChecking="false"/>
+      <itemData name="File Descriptor" defStyleNum="dsDecVal"       spellChecking="false"/>
+      <itemData name="Parameter Expansion" defStyleNum="dsVariable" spellChecking="false"/>
+      <itemData name="Parameter Expansion Operator" defStyleNum="dsOperator" spellChecking="false"/>
+      <itemData name="Operator"       defStyleNum="dsOperator"      spellChecking="false"/>
+      <itemData name="Error"          defStyleNum="dsError"         spellChecking="false"/>
     </itemDatas>
   </highlighting>
   <general>
