<language name="Jinja/Bash" version="1771861648" kateversion="5.79" section="Other" extensions="*.sh.jinja;*.sh.jinja2;*.sh.j2;*.bash.jinja;*.bash.jinja2;*.bash.j2;*.ebuild.jinja;*.ebuild.jinja2;*.ebuild.j2;*.eclass.jinja;*.eclass.jinja2;*.eclass.j2;*.exlib.jinja;*.exlib.jinja2;*.exlib.j2;*.exheres-0.jinja;*.exheres-0.jinja2;*.exheres-0.j2;.bashrc.jinja;.bashrc.jinja2;.bashrc.j2;.bash_profile.jinja;.bash_profile.jinja2;.bash_profile.j2;.bash_login.jinja;.bash_login.jinja2;.bash_login.j2;.profile.jinja;.profile.jinja2;.profile.j2;PKGBUILD.jinja;PKGBUILD.jinja2;PKGBUILD.j2;APKBUILD.jinja;APKBUILD.jinja2;APKBUILD.j2" mimetype="application/x-shellscript.jinja" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="MIT" priority="0" generated="true">



  <!--Generated by generate_jinja.py, the Jinja infusion script for KDE Syntax Highlighting-->



  <highlighting>
    <list name="keywords">
      <item>break</item>
      <item>case</item>
      <item>continue</item>
      <item>do</item>
      <item>done</item>
      <item>elif</item>
      <item>else</item>
      <item>esac</item>
      <item>fi</item>
      <item>for</item>
      <item>function</item>
      <item>if</item>
      <item>in</item>
      <item>return</item>
      <item>select</item>
      <item>then</item>
      <item>until</item>
      <item>while</item>
    </list>

    <list name="builtins">
      <item>.</item>
      <item>:</item>
      <item>source</item>
      <item>alias</item>
      <item>bg</item>
      <item>bind</item>
      <item>builtin</item>
      <item>cd</item>
      <item>caller</item>
      <item>command</item>
      <item>compgen</item>
      <item>complete</item>
      <item>coproc</item>
      <item>dirs</item>
      <item>disown</item>
      <item>echo</item>
      <item>enable</item>
      <item>eval</item>
      <item>exec</item>
      <item>exit</item>
      <item>fc</item>
      <item>fg</item>
      <item>hash</item>
      <item>help</item>
      <item>history</item>
      <item>jobs</item>
      <item>kill</item>
      <item>logout</item>
      <item>popd</item>
      <item>printf</item>
      <item>pushd</item>
      <item>pwd</item>
      <item>set</item>
      <item>shift</item>
      <item>shopt</item>
      <item>suspend</item>
      <item>test</item>
      <item>time</item>
      <item>times</item>
      <item>trap</item>
      <item>type</item>
      <item>ulimit</item>
      <item>umask</item>
      <item>unalias</item>
      <item>wait</item>
    </list>

    <list name="builtins_var">
      <item>export</item>
      <item>declare</item>
      <item>getopts</item>
      <item>let</item>
      <item>local</item>
      <item>read</item>
      <item>readonly</item>
      <item>typeset</item>
      <item>unset</item>
    </list>

    <list name="unixcommands">
      
      <item>arch</item>
      <item>awk</item>
      <item>b2sum</item>
      <item>base32</item>
      <item>base64</item>
      <item>bash</item>
      <item>bunzip2</item>
      <item>bzcat</item>
      <item>bzcmp</item>
      <item>bzdiff</item>
      <item>bzegrep</item>
      <item>bzfgrep</item>
      <item>bzgrep</item>
      <item>bzip2</item>
      <item>bzip2recover</item>
      <item>bzless</item>
      <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>
      <item>df</item>
      <item>dir</item>
      <item>dircolors</item>
      <item>dmesg</item>
      <item>dnsdomainname</item>
      <item>domainname</item>
      <item>du</item>
      <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>
      <item>gocr</item>
      <item>grep</item>
      <item>groff</item>
      <item>groups</item>
      <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>
      <item>kbdrate</item>
      <item>killall</item>
      <item>last</item>
      <item>lastb</item>
      <item>link</item>
      <item>ln</item>
      <item>loadkeys</item>
      <item>loadunimap</item>
      <item>login</item>
      <item>ls</item>
      <item>lsattr</item>
      <item>lsmod</item>
      <item>lsmod.old</item>
      <item>lzcat</item>
      <item>lzcmp</item>
      <item>lzdiff</item>
      <item>lzegrep</item>
      <item>lzfgrep</item>
      <item>lzgrep</item>
      <item>lzless</item>
      <item>lzma</item>
      <item>lzmainfo</item>
      <item>lzmore</item>
      <item>mapscrn</item>
      <item>md5sum</item>
      <item>mesg</item>
      <item>mkdir</item>
      <item>mkfifo</item>
      <item>mknod</item>
      <item>mktemp</item>
      <item>more</item>
      <item>mount</item>
      <item>mv</item>
      <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>
      <item>setkeycodes</item>
      <item>setleds</item>
      <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>
      <item>unlzma</item>
      <item>unxz</item>
      <item>utmpdump</item>
      <item>uuidgen</item>
      <item>vdir</item>
      <item>vi</item>
      <item>wall</item>
      <item>wc</item>
      <item>xz</item>
      <item>xzcat</item>
      <item>ypdomainname</item>
      <item>zcat</item>
      <item>zcmp</item>
      <item>zdiff</item>
      <item>zegrep</item>
      <item>zfgrep</item>
      <item>zforce</item>
      <item>zgrep</item>
      <item>zless</item>
      <item>zmore</item>
      <item>znew</item>
      <item>zsh</item>

      
      <item>aclocal</item>
      <item>aconnect</item>
      <item>aplay</item>
      <item>apm</item>
      <item>apmsleep</item>
      <item>apropos</item>
      <item>ar</item>
      <item>arecord</item>
      <item>as</item>
      <item>as86</item>
      <item>autoconf</item>
      <item>autoheader</item>
      <item>automake</item>
      <item>basename</item>
      <item>bc</item>
      <item>bison</item>
      <item>c++</item>
      <item>cal</item>
      <item>cc</item>
      <item>cdda2wav</item>
      <item>cdparanoia</item>
      <item>cdrdao</item>
      <item>cd-read</item>
      <item>cdrecord</item>
      <item>chfn</item>
      <item>chroot</item>
      <item>chsh</item>
      <item>clear</item>
      <item>cmp</item>
      <item>co</item>
      <item>col</item>
      <item>comm</item>
      <item>cpio</item>
      <item>cpp</item>
      <item>cut</item>
      <item>dc</item>
      <item>diff</item>
      <item>diff3</item>
      <item>directomatic</item>
      <item>dirname</item>
      <item>env</item>
      <item>expr</item>
      <item>fbset</item>
      <item>file</item>
      <item>find</item>
      <item>flex</item>
      <item>flex++</item>
      <item>fmt</item>
      <item>free</item>
      <item>ftp</item>
      <item>funzip</item>
      <item>g++</item>
      <item>gc</item>
      <item>gcc</item>
      <item>clang</item>
      <item>clang++</item>
      <item>valgrind</item>
      <item>xdg-open</item>
      <item>cmake</item>
      <item>qmake</item>
      <item>svn</item>
      <item>git</item>
      <item>rsync</item>
      <item>gdb</item>
      <item>getent</item>
      <item>getopt</item>
      <item>gettext</item>
      <item>gettextize</item>
      <item>gimp</item>
      <item>gimp-remote</item>
      <item>gimptool</item>
      <item>gmake</item>
      <item>gs</item>
      <item>head</item>
      <item>hexdump</item>
      <item>id</item>
      <item>join</item>
      <item>ld</item>
      <item>ld86</item>
      <item>ldd</item>
      <item>less</item>
      <item>lex</item>
      <item>locate</item>
      <item>lockfile</item>
      <item>logname</item>
      <item>lp</item>
      <item>lpr</item>
      <item>lynx</item>
      <item>m4</item>
      <item>make</item>
      <item>man</item>
      <item>msgfmt</item>
      <item>namei</item>
      <item>nasm</item>
      <item>nawk</item>
      <item>nice</item>
      <item>nl</item>
      <item>nm</item>
      <item>nm86</item>
      <item>nmap</item>
      <item>nohup</item>
      <item>nop</item>
      <item>od</item>
      <item>passwd</item>
      <item>patch</item>
      <item>pcregrep</item>
      <item>pcretest</item>
      <item>perl</item>
      <item>perror</item>
      <item>pr</item>
      <item>procmail</item>
      <item>prune</item>
      <item>ps2ascii</item>
      <item>ps2epsi</item>
      <item>ps2frag</item>
      <item>ps2pdf</item>
      <item>ps2ps</item>
      <item>psbook</item>
      <item>psmerge</item>
      <item>psnup</item>
      <item>psresize</item>
      <item>psselect</item>
      <item>pstops</item>
      <item>rcs</item>
      <item>rev</item>
      <item>scp</item>
      <item>seq</item>
      <item>setterm</item>
      <item>size</item>
      <item>size86</item>
      <item>skill</item>
      <item>slogin</item>
      <item>snice</item>
      <item>sort</item>
      <item>sox</item>
      <item>split</item>
      <item>ssh</item>
      <item>ssh-add</item>
      <item>ssh-agent</item>
      <item>ssh-keygen</item>
      <item>ssh-keyscan</item>
      <item>strings</item>
      <item>strip</item>
      <item>sudo</item>
      <item>suidperl</item>
      <item>sum</item>
      <item>tac</item>
      <item>tail</item>
      <item>tee</item>
      <item>tr</item>
      <item>tsort</item>
      <item>uniq</item>
      <item>unzip</item>
      <item>updatedb</item>
      <item>updmap</item>
      <item>uptime</item>
      <item>users</item>
      <item>vmstat</item>
      <item>w</item>
      <item>wget</item>
      <item>whatis</item>
      <item>whereis</item>
      <item>which</item>
      <item>who</item>
      <item>whoami</item>
      <item>write</item>
      <item>xargs</item>
      <item>yacc</item>
      <item>yes</item>
      <item>zip</item>
      <item>zsoelim</item>

      
      <item>dcop</item>
      <item>kdialog</item>
      <item>kfile</item>
      <item>xhost</item>
      <item>xmodmap</item>
      <item>xset</item>
    </list>


    <contexts>
      <context attribute="Normal Text" lineEndContext="#stay" name="Start" fallthroughContext="Command">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="BashOneLine" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#pop" name="FindOneLineBackq" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Backquote" context="OneLineBackq" char="`" />
      </context>
      <context attribute="Normal Text" lineEndContext="#stay" name="OneLineBackq" fallthroughContext="Command">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Backquote" context="#pop" char="`" />
        <IncludeRules context="Start" />
      </context>

      <context attribute="Normal Text" lineEndContext="#pop" name="BashOneLine" fallthroughContext="Command">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#stay" />
        <DetectChar attribute="Comment" context="Comment" char="#" />
        
        <Detect2Chars context="ExprDblParenOrSubShell" char="(" char1="(" lookAhead="1" />
        
        <DetectChar attribute="Keyword" context="SubShell" char="(" beginRegion="subshell" />
        
        <DetectChar context="MaybeBracketExpression" char="[" lookAhead="1" />
        
        <DetectChar context="MaybeGroup" char="{" lookAhead="1" />

        
        <DetectChar attribute="Backquote" context="CommandBackq" char="`" />

        
        <StringDetect attribute="Redirection" context="WordRedirection" String="&amp;&gt;&gt;" />
        <Detect2Chars attribute="Redirection" context="FdRedirection" char="&amp;" char1="&gt;" />

        
        <Detect2Chars attribute="Control" context="#stay" char="&amp;" char1="&amp;" />
        <Detect2Chars attribute="Control" context="#stay" char="|" char1="|" />

        
        <AnyChar attribute="Control" context="#stay" String="&amp;|;" />

        
        <RegExpr attribute="Variable" context="VarAssign" String="[A-Za-z_][A-Za-z0-9_]*(?=\+?=|\[(?:$|[^]]))" />
        
        <keyword context="DispatchKeyword" String="keywords" lookAhead="1" />
        
        <keyword attribute="Builtin" context="VarName" String="builtins_var" lookAhead="1" />
        
        <RegExpr attribute="Function" context="#stay" String="([^*?+!@  &lt;&gt;|&amp;;()${'&quot;`\\}=#$]|[+!@](?!\())([^*?+!@  &lt;&gt;|&amp;;()${'&quot;`\\}=$]*+([+!@](?!\())?+)*+[  ]*\(\)" />
        
        <RegExpr attribute="Normal Text" context="PreHereDocMLComment" String="^:[  ]+&lt;&lt;[  ]*'#([^']+)'$" 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" />

        
        <AnyChar context="CommandMaybeRedirection" String="&lt;&gt;0123456789" lookAhead="1" />

        <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">
        
        <IncludeRules context="jinja_boot##Jinja" />
        
        <RegExpr attribute="Keyword" context="#pop!ExprDblBracket" String="\[\[(?=$|[  (])" beginRegion="expression" />
        
        <RegExpr attribute="Builtin" context="#pop!ExprBracket" String="\[(?=$|[  ])" beginRegion="expression" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="MaybeGroup">
        
        <IncludeRules context="jinja_boot##Jinja" />
        
        <RegExpr attribute="Keyword" context="#pop!Group" String="\{(?=$|[  ])" beginRegion="group" />
        <DetectChar context="#pop!Command" char="{" lookAhead="1" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="CommandMaybeRedirection" fallthroughContext="#pop!Command">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="FindRedirection" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="Return" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#stay" />
        <Int attribute="Decimal" context="#stay" />
      </context>
      
      <context attribute="Comment" lineEndContext="#pop" name="Comment">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Comment" />
        <IncludeRules context="##Jinja/Comments" />
        <DetectIdentifier attribute="Comment" context="#stay" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#stay" name="Group" fallthroughContext="Command">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar context="MaybeGroupEnd" char="}" lookAhead="1" />
        <IncludeRules context="Start" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="MaybeGroupEnd">
        
        <IncludeRules context="jinja_boot##Jinja" />
        
        <RegExpr attribute="Keyword" context="#pop#pop" String="\}(?=$|[  &lt;&gt;|&amp;;)])" endRegion="group" />
        <DetectChar context="#pop!Command" char="}" lookAhead="1" />
      </context>

      <context attribute="Normal Text" lineEndContext="#pop" name="Coproc" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" />
        <LineContinue attribute="Escape" context="#stay" />
        <RegExpr context="CoprocName" String="(\$?[A-Za-z_][A-Za-z0-9_]*|\$\{[A-Za-z_][A-Za-z0-9_]*\}|'[A-Za-z_][A-Za-z0-9_]*'|&quot;(\$?[A-Za-z_][A-Za-z0-9_]*|\$\{[A-Za-z_][A-Za-z0-9_]*\}|[a-zA-Z0-9_])+&quot;)+(?=\s+\{($|\s))" lookAhead="1" />
      </context>
      <context attribute="Normal Text" lineEndContext="#stay" name="CoprocName">
        <IncludeRules context="jinja_boot##Jinja" />
        <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">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#pop!CommandArgs" />
        <DetectChar context="CommandVariables" char="$" lookAhead="1" />
        <IncludeRules context="FindStrings" />
        <DetectChar context="#pop" char="`" lookAhead="1" />
        <RegExpr attribute="OtherCommand" context="CommandName" String="(?:[^  &lt;&gt;|&amp;;()${'&quot;`\\]++|\\.)+" />
        <LineContinue attribute="Escape" context="#stay" />
        <DetectChar context="CommandMaybeBraceExpansion" char="{" lookAhead="1" />
      </context>
      <context attribute="Command" lineEndContext="#pop#pop" name="CommandVariables">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="DispatchVariables" />
        <DetectChar attribute="OtherCommand" context="#pop" char="$" />
      </context>
      <context attribute="Command" lineEndContext="#pop#pop" name="DispatchVariables">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="DispatchSubstVariables" />
        <IncludeRules context="DispatchStringVariables" />
        <IncludeRules context="DispatchVarnameVariables" />
      </context>
      <context attribute="Command" lineEndContext="#pop#pop" name="DispatchSubstVariables">
        <IncludeRules context="jinja_boot##Jinja" />
        <Detect2Chars attribute="Parameter Expansion" context="#pop!VarBraceStart" char="$" char1="{" />
        <StringDetect context="#pop!ExprDblParenSubstOrSubstCommand" String="$((" lookAhead="1" />
        <Detect2Chars attribute="Parameter Expansion" context="#pop!SubstCommand" char="$" char1="(" beginRegion="subshell" />
      </context>
      <context attribute="Command" lineEndContext="#pop#pop" name="DispatchStringVariables">
        <IncludeRules context="jinja_boot##Jinja" />
        <Detect2Chars attribute="String SingleQ" context="#pop!StringEsc" char="$" char1="'" />
        <Detect2Chars attribute="String Transl." context="#pop!StringDQ" char="$" char1="&quot;" />
      </context>
      <context attribute="Command" lineEndContext="#pop#pop" name="DispatchVarnameVariables">
        <IncludeRules context="jinja_boot##Jinja" />
        <RegExpr attribute="Dollar Prefix" context="#pop!VarNamePrefixedWithDollar" String="\$(?=[A-Za-z_][A-Za-z0-9_]*|[*@#?$!0-9-])" />
      </context>
      <context attribute="Variable" lineEndContext="#pop" name="VarNamePrefixedWithDollar">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectIdentifier attribute="Variable" context="#pop" />
        <AnyChar attribute="Variable" context="#pop" String="*@#?$!0123456789-" />
      </context>
      <context attribute="OtherCommand" lineEndContext="#pop#pop" name="CommandName">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#pop#pop!CommandArgs" />
        <DetectIdentifier attribute="OtherCommand" context="#stay" />
        <DetectChar context="CommandVariables" char="$" lookAhead="1" />
        <IncludeRules context="FindStrings" />
        <Detect2Chars attribute="Control" context="#pop#pop" char="&amp;" char1="&amp;" />
        <Detect2Chars attribute="Control" context="#pop#pop" char="|" char1="|" />
        <DetectChar attribute="Control" context="#pop#pop" char="|" />
        <AnyChar context="#pop#pop" String=";)`" lookAhead="1" />
        <AnyChar context="#pop#pop!CommandArgs" String="&amp;&lt;&gt;" lookAhead="1" />
        
        <Detect2Chars attribute="Error" context="#pop#pop!ExprDblParen" char="(" char1="(" beginRegion="expression" />
        
        <DetectChar attribute="Error" context="#pop#pop!SubShell" char="(" beginRegion="subshell" />
        <LineContinue attribute="Escape" context="#stay" />
        <DetectChar context="#pop!CommandMaybeBraceExpansion" char="{" lookAhead="1" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="CommandMaybeBraceExpansion">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="DispatchBraceExpansion" />
        <DetectChar attribute="OtherCommand" context="#pop" char="{" />
      </context>

      <context attribute="Normal Text" lineEndContext="#stay" name="CommandBackq" fallthroughContext="Command">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Backquote" context="#pop!CommandArgs" char="`" />
        <DetectChar attribute="Comment" context="CommentBackq" char="#" />
        <IncludeRules context="Start" />
      </context>
      
      <context attribute="Comment" lineEndContext="#pop" name="CommentBackq">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar context="#pop" char="`" lookAhead="1" />
        <IncludeRules context="Comment" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#pop" name="CommandArgs" fallthroughContext="CommandArg">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#stay" />

        
        <StringDetect attribute="Redirection" context="WordRedirection" String="&amp;&gt;&gt;" />
        <Detect2Chars attribute="Redirection" context="FdRedirection" char="&amp;" char1="&gt;" />

        
        <AnyChar context="#pop" String="&amp;|;`" lookAhead="1" />

        
        <AnyChar context="CommandArgMaybeRedirection" String="&lt;&gt;0123456789" lookAhead="1" />

        <DetectChar context="#pop" char=")" lookAhead="1" />
        <DetectChar attribute="Error" context="#pop!SubShell" char="(" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop#pop" name="CommandArg" fallthroughContext="#pop!NormalOption">
        
        <IncludeRules context="jinja_boot##Jinja" />
        
        <DetectChar context="#pop#pop" char="#" lookAhead="1" />
        <Detect2Chars attribute="Option" context="#pop!LongOption" char="-" char1="-" />
        <DetectChar attribute="Option" context="#pop!ShortOption" char="-" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="CommandArgMaybeRedirection" fallthroughContext="#pop!NormalOption">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="FindRedirection" />
      </context>

      <context attribute="Option" lineEndContext="#pop" name="ShortOption" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Path" context="PathThenPop" char="/" />
        <IncludeRules context="LongOption" />
      </context>
      <context attribute="Option" lineEndContext="#pop" name="LongOption" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <AnyChar context="#pop" String="  &lt;&gt;|&amp;;()`" lookAhead="1" />
        <DetectChar attribute="Operator" context="#pop!NormalOption" char="=" />
        <IncludeRules context="FindWord" />
        <IncludeRules context="FindGlobAndPop" />
        <DetectChar context="OptionMaybeBraceExpansion" char="{" lookAhead="1" />
        <DetectChar context="LongOptionMaybeGlobAny" char="[" lookAhead="1" />
        <RegExpr attribute="Option" context="#stay" String="(?:[^*?+!@  &lt;&gt;|&amp;;()${'&quot;`\\\[=/]*+(?:[+!@](?!\()|\\.|\{[^  &lt;&gt;|&amp;;{}\\`'&quot;$,]*+\})?+)*+" />
      </context>
      <context attribute="Option" lineEndContext="#pop#pop" name="LongOptionMaybeGlobAny" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="FindGlobAny" />
        <DetectChar attribute="Option" context="#pop" char="[" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="NormalOption" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <AnyChar context="#pop" String="  &lt;&gt;|&amp;;()`" lookAhead="1" />
        <IncludeRules context="FindWord" />
        <DetectChar context="NormalMaybeBraceExpansion" char="{" lookAhead="1" />
        <IncludeRules context="FindNormalText" />
      </context>
      <context attribute="Normal Text" lineEndContext="#stay" name="FindNormalText">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="FindGlobAndPop" />
        <RegExpr attribute="Path" context="PathThenPop" String="(?:~|\.\.?|(?:[^*?+!@  &lt;&gt;|&amp;;()${'&quot;`\\\[/]*+(?:[+!@](?!\()|\\.|\{[^  &lt;&gt;|&amp;;{}\\`'&quot;$,]*+\})?+)*+)(?:/(?:[^*?+!@  &lt;&gt;|&amp;;()${'&quot;`\\\[]*+(?:[+!@](?!\()|\\.|\{[^  &lt;&gt;|&amp;;{}\\`'&quot;$,]*+\})?+)*+|(?=[*?]|[+!@]\(|(?:[^*?+!@  &lt;&gt;|&amp;;()${'&quot;`\\\[/]*+(?:[+!@](?!\()|\\.|\{[^  &lt;&gt;|&amp;;{}\\`'&quot;$,]*+\})?+)*+(?:[/*?]|\[(?:\^?\]\]|(?:\^?\]?)?(?:\\.|[^'&quot;  &lt;&gt;|&amp;;()\\[\]]+|(?:'[^']*+'|&quot;(?:[^&quot;\\`]*+|`[^`]*+`|\\.)*+&quot;|`[^`]*+`)|\[:\w+:\])+\])|[+!@]\()))|(?:~|\.\.?)(?=[  &lt;&gt;|&amp;;()]|$)" />
        <DetectChar context="FindPathThenPopMaybeGlobAny" char="[" lookAhead="1" />
        <RegExpr attribute="Normal Text" context="#stay" String="[^  &lt;&gt;|&amp;;()${'&quot;`\\\[]+" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="OptionMaybeBraceExpansion">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="DispatchBraceExpansion" />
        <DetectChar attribute="Option" context="#pop" char="{" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="NormalMaybeBraceExpansion">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="DispatchBraceExpansion" />
        <DetectChar attribute="Normal Text" context="#pop" char="{" />
      </context>

      <context attribute="Normal Text" lineEndContext="#pop" name="AssumeEscape">
        <IncludeRules context="jinja_boot##Jinja" />
        <LineContinue attribute="Escape" context="#pop" />
        <RegExpr attribute="Escape" context="#pop" String="\\." />
      </context>



      
      <context attribute="Normal Text" lineEndContext="#pop" name="FindRedirection">
        <IncludeRules context="jinja_boot##Jinja" />
        <RegExpr attribute="File Descriptor" context="#pop!AssumeRedirection" String="[0-9]++(?=[&lt;&gt;])" />
        <IncludeRules context="AssumeRedirection" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#pop" name="DispatchBraceExpansion">
        
        <IncludeRules context="jinja_boot##Jinja" />
        
        <RegExpr context="#pop!BraceExpansion" String="{(?:[^  &lt;&gt;|&amp;;{}\\`'&quot;$,]++|\\.|`[^`]*`|'[^']*'|&quot;([^&quot;\`]*+|`[^`]*`)*+&quot;|\$(?:\{[^\[\]  &lt;&gt;|&amp;;{}\\`'&quot;$]*+(?:\[[*@a-zA-Z0-9]\])\})?|\{[^  &lt;&gt;|&amp;;{}\\`'&quot;$,]*+\}|{(?:[^  &lt;&gt;|&amp;;{}\\`'&quot;$,]++|\\.|`[^`]*`|'[^']*'|&quot;([^&quot;\`]*+|`[^`]*`)*+&quot;|\$(?:\{[^\[\]  &lt;&gt;|&amp;;{}\\`'&quot;$]*+(?:\[[*@a-zA-Z0-9]\])\})?|\{[^  &lt;&gt;|&amp;;{}\\`'&quot;$,]*+\})*?}|(?R)?+)*?,(?:[^  &lt;&gt;|&amp;;{}\\`'&quot;$]++|\\.|`[^`]*`|'[^']*'|&quot;([^&quot;\`]*+|`[^`]*`)*+&quot;|\$(?:\{[^\[\]  &lt;&gt;|&amp;;{}\\`'&quot;$]*+(?:\[[*@a-zA-Z0-9]\])\})?|\{[^  &lt;&gt;|&amp;;{}\\`'&quot;$,]*+\}|{(?:[^  &lt;&gt;|&amp;;{}\\`'&quot;$,]++|\\.|`[^`]*`|'[^']*'|&quot;([^&quot;\`]*+|`[^`]*`)*+&quot;|\$(?:\{[^\[\]  &lt;&gt;|&amp;;{}\\`'&quot;$]*+(?:\[[*@a-zA-Z0-9]\])\})?|\{[^  &lt;&gt;|&amp;;{}\\`'&quot;$,]*+\})*?}|(?R)?+)*?}" lookAhead="1" />
        <RegExpr attribute="Escape" context="#pop!SequenceExpression" String="{(?=([-+]?[0-9]+\.\.[-+]?[0-9]+|[a-zA-Z]\.\.[a-zA-Z])(\.\.[-+]?[0-9]+)?\})" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#pop#pop" name="FindPathThenPopMaybeGlobAny" fallthroughContext="#pop!PathThenPop">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="FindGlobAny" />
        <DetectChar attribute="Normal Text" context="#pop" char="[" />
      </context>
      <context attribute="Path" lineEndContext="#pop" name="FindGlobAndPop">
        <IncludeRules context="jinja_boot##Jinja" />
        <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="(" />
      </context>
      <context attribute="Path" lineEndContext="#stay" name="ExtGlobAndPop">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Glob" context="#pop!PathThenPop" char=")" />
        <IncludeRules context="FindWord" />
        <IncludeRules context="IncExtGlob" />
      </context>
      <context attribute="Path" lineEndContext="#stay" name="FindExtGlob">
        <IncludeRules context="jinja_boot##Jinja" />
        <Detect2Chars attribute="Glob" context="RecursiveExtGlob" char="?" char1="(" />
        <Detect2Chars attribute="Glob" context="RecursiveExtGlob" char="*" char1="(" />
        <Detect2Chars attribute="Glob" context="RecursiveExtGlob" char="+" char1="(" />
        <Detect2Chars attribute="Glob" context="RecursiveExtGlob" char="@" char1="(" />
        <Detect2Chars attribute="Glob" context="RecursiveExtGlob" char="!" char1="(" />
        <AnyChar attribute="Glob" context="#stay" String="|?*" />
      </context>
      <context attribute="Path" lineEndContext="#stay" name="RecursiveExtGlob">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Glob" context="#pop" char=")" />
        <IncludeRules context="FindWord" />
        <IncludeRules context="IncExtGlob" />
        <IncludeRules context="PathThenPopMaybeGlobAny" />
      </context>
      <context attribute="Path" lineEndContext="#stay" name="IncExtGlob">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectIdentifier attribute="Path" />
        <IncludeRules context="FindExtGlob" />
        <DetectChar context="PathMaybeBraceExpansion" char="{" lookAhead="1" />
      </context>
      <context attribute="Path" lineEndContext="#pop#pop" name="PathThenPop">
        <IncludeRules context="jinja_boot##Jinja" />
        <AnyChar context="#pop#pop" String="  &lt;&gt;|&amp;;()`" lookAhead="1" />
        <IncludeRules context="FindWord" />
        <IncludeRules context="FindExtGlob" />
        <DetectChar context="PathMaybeBraceExpansion" char="{" lookAhead="1" />
        <DetectChar context="PathThenPopMaybeGlobAny" char="[" lookAhead="1" />
        <RegExpr attribute="Path" context="#stay" String="(?:[^*?+!@  &lt;&gt;|&amp;;()${'&quot;`\\\[]*+(?:[+!@](?!\()|\\.|\{[^  &lt;&gt;|&amp;;{}\\`'&quot;$,]*+\})?+)*+" />
      </context>
      <context attribute="Path" lineEndContext="#pop#pop" name="PathThenPopMaybeGlobAny" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="FindGlobAny" />
        <DetectChar attribute="Path" context="#pop" char="[" />
      </context>
      <context attribute="Path" lineEndContext="#pop" name="PathMaybeBraceExpansion" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="DispatchBraceExpansion" />
        <DetectChar attribute="Path" context="#pop" char="{" />
      </context>

      <context attribute="Glob" lineEndContext="#stay" name="FindGlobAny">
        <IncludeRules context="jinja_boot##Jinja" />
        <RegExpr attribute="Glob" context="GlobAnyFlag" String="\[(?=(?:\^?\]\]|(?:\^?\]?)?(?:\\.|[^'&quot;  &lt;&gt;|&amp;;()\\[\]]+|(?:'[^']*+'|&quot;(?:[^&quot;\\`]*+|`[^`]*+`|\\.)*+&quot;|`[^`]*+`)|\[:\w+:\])+\]))" />
      </context>
      <context attribute="Pattern" lineEndContext="#pop" name="GlobAnyFlag" fallthroughContext="#pop!GlobAny">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Glob" context="#pop!GlobAny" char="^" />
      </context>
      <context attribute="Pattern" lineEndContext="#pop" name="GlobAny">
        <IncludeRules context="jinja_boot##Jinja" />
        <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">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectIdentifier attribute="Pattern" />
        <Detect2Chars attribute="Glob" context="#pop" char=":" char1="]" />
        <DetectChar attribute="Error" context="#pop" char="]" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#pop" name="FindPathThenPopInAlternateValue">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Variable" char="&amp;" />
        <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="(?:~|\.\.?|(?:[^*?+!@${'&quot;`\\}/]*+(?:[+!@](?!\()|\\.)?+)*+)(?:/(?:[^*?+!@${'&quot;`\\}]*+(?:[+!@](?!\()|\\.)?+)*+|(?=[*?]|[+!@]\(|(?:[^*?+!@${'&quot;`\\}/]*+(?:[+!@](?!\()|\\.)?+)*+(?:[/*?]|[+!@]\()))|(?:~|\.\.?)(?=\}|$)" />
      </context>
      <context attribute="Path" lineEndContext="#pop#pop" name="PathThenPopInAlternateValue">
        <IncludeRules context="jinja_boot##Jinja" />
        <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="(?:[^*?+!@${'&quot;`\\}]*+(?:[+!@](?!\()|\\.)?+)*+" />
      </context>
      <context attribute="Path" lineEndContext="#stay" name="ExtGlobAndPopInAlternateValue">
        <IncludeRules context="jinja_boot##Jinja" />
        <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">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectIdentifier attribute="Path" />
        <Detect2Chars attribute="Glob" context="RecursiveExtGlobInAlternateValue" char="?" char1="(" />
        <Detect2Chars attribute="Glob" context="RecursiveExtGlobInAlternateValue" char="*" char1="(" />
        <Detect2Chars attribute="Glob" context="RecursiveExtGlobInAlternateValue" char="+" char1="(" />
        <Detect2Chars attribute="Glob" context="RecursiveExtGlobInAlternateValue" char="@" char1="(" />
        <Detect2Chars attribute="Glob" context="RecursiveExtGlobInAlternateValue" char="!" char1="(" />
        <AnyChar attribute="Glob" context="#stay" String="|?*" />
      </context>
      <context attribute="Path" lineEndContext="#stay" name="RecursiveExtGlobInAlternateValue">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Glob" context="#pop" char=")" />
        <DetectChar context="#pop" char="}" lookAhead="1" />
        <IncludeRules context="FindWord" />
        <IncludeRules context="FindExtGlobInAlternateValue" />
      </context>

      <context attribute="Pattern" lineEndContext="#stay" name="FindPattern">
        <IncludeRules context="jinja_boot##Jinja" />
        <Detect2Chars attribute="Glob" context="ExtPattern" char="?" char1="(" />
        <Detect2Chars attribute="Glob" context="ExtPattern" char="*" char1="(" />
        <Detect2Chars attribute="Glob" context="ExtPattern" char="+" char1="(" />
        <Detect2Chars attribute="Glob" context="ExtPattern" char="@" char1="(" />
        <Detect2Chars attribute="Glob" context="ExtPattern" char="!" char1="(" />
        <AnyChar attribute="Glob" context="#stay" String="?*" />
      </context>
      <context attribute="Pattern" lineEndContext="#stay" name="ExtPattern">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectIdentifier attribute="Pattern" />
        <DetectChar attribute="Glob" context="#stay" char="|" />
        <IncludeRules context="FindWord" />
        <DetectChar attribute="Glob" context="#pop" char=")" />
        <IncludeRules context="FindPattern" />
      </context>

      <context attribute="Normal Text" lineEndContext="#pop" name="VarAssign" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Parameter Expansion Operator" context="Subscript" char="[" />
        <DetectChar attribute="Operator" context="#pop!Assign" char="=" />
        <Detect2Chars attribute="Operator" context="#pop!Assign" char="+" char1="=" />
      </context>

      <context attribute="Normal Text" lineEndContext="#pop" name="DispatchKeyword">
        
        <IncludeRules context="jinja_boot##Jinja" />
        
        <Detect2Chars attribute="Control Flow" context="#pop!NotCond" char="i" char1="f" beginRegion="if" />
        <Detect2Chars attribute="Control Flow" context="#pop" char="f" char1="i" endRegion="if" />
        <StringDetect attribute="Control Flow" context="#pop" String="done" endRegion="do" />
        <Detect2Chars attribute="Control Flow" context="#pop" char="d" char1="o" beginRegion="do" />
        
        <StringDetect attribute="Control Flow" context="#pop!NotCond" String="while" />
        <StringDetect attribute="Control Flow" context="#pop!NotCond" String="until" />
        
        <StringDetect attribute="Control Flow" context="#pop!For" String="for" />
        
        <StringDetect attribute="Control Flow" context="#pop!For" String="select" />
        
        <StringDetect attribute="Control Flow" context="#pop!Case" String="case" beginRegion="case" />
        
        <StringDetect attribute="Keyword" context="#pop!FunctionDef" String="function" />
        <StringDetect attribute="Control Flow" context="#pop!Return" String="return" />
        
        <Detect2Chars attribute="Error" context="#pop" char="i" char1="n" />
        <StringDetect attribute="Error" context="#pop" String="esac" />
        
        <DetectIdentifier attribute="Control Flow" context="#pop" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#pop" name="NotCond" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#pop!NotCond2" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="NotCond2" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <Detect2Chars attribute="Expression" context="#pop" char="!" char1=" " />
        <Detect2Chars attribute="Expression" context="#pop" char="!" char1=" " />
        <LineContinue attribute="Expression" context="#pop" char="!" />
      </context>

      <context attribute="Normal Text" lineEndContext="#pop" name="For" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <LineContinue attribute="Escape" context="#stay" />
        <DetectSpaces attribute="Normal Text" context="#stay" />
        <DetectIdentifier attribute="Normal Text" context="#pop!ForIn" />
        <Detect2Chars attribute="Keyword" context="#pop!ForArithmeticExpr" char="(" char1="(" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="ForIn" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#stay" />
        <DetectChar attribute="Control" context="#pop" char=";" />
        <WordDetect attribute="Keyword" context="#pop!CommandArgs" String="in" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="ForArithmeticExpr">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#stay" />
        <DetectChar attribute="Control" context="#stay" char=";" />
        <Detect2Chars attribute="Keyword" context="#pop" char=")" char1=")" />
        <IncludeRules context="FindExprDblParen" />
      </context>

      <context attribute="Normal Text" lineEndContext="#pop" name="AssumeRedirection">
        
        <IncludeRules context="jinja_boot##Jinja" />
        
        <Detect2Chars attribute="Redirection" context="#pop!WordRedirection" char="&gt;" char1="&gt;" />
        <Detect2Chars attribute="Redirection" context="#pop!WordRedirection" char="&gt;" char1="|" />
        <Detect2Chars attribute="Redirection" context="#pop!FdRedirection" char="&gt;" char1="&amp;" />
        <Detect2Chars attribute="Redirection" context="#pop!ProcessSubst" char="&gt;" char1="(" />
        <DetectChar attribute="Redirection" context="#pop!WordRedirection" char="&gt;" />
        <StringDetect attribute="Redirection" context="#pop!StringRedirection" String="&lt;&lt;&lt;" />
        
        <Detect2Chars context="#pop!HereDoc" char="&lt;" char1="&lt;" lookAhead="1" />
        
        <Detect2Chars attribute="Redirection" context="#pop!FdRedirection" char="&lt;" char1="&amp;" />
        <Detect2Chars attribute="Redirection" context="#pop!WordRedirection" char="&lt;" char1="&gt;" />
        <Detect2Chars attribute="Redirection" context="#pop!ProcessSubst" char="&lt;" char1="(" />
        <DetectChar attribute="Redirection" context="#pop!WordRedirection" char="&lt;" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="FdRedirection" fallthroughContext="#pop!FdRedirection2">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" />
        <DetectChar attribute="Comment" context="#pop!Comment" char="#" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="FdRedirection2" fallthroughContext="#pop!WordRedirection2">
        <IncludeRules context="jinja_boot##Jinja" />
        <RegExpr attribute="File Descriptor" context="#pop!CloseFile" String="[0-9]+(?=-?(?=$|[  &lt;&gt;|&amp;;)]))" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="WordRedirection" fallthroughContext="#pop!WordRedirection2">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" />
        <DetectChar attribute="Comment" context="#pop!Comment" char="#" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="WordRedirection2" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <AnyChar context="#pop" String="  &lt;&gt;|&amp;;()`" lookAhead="1" />
        <IncludeRules context="FindWord" />
        <RegExpr attribute="Path" context="PathThenPop" String="(?:[^*?+!@  &lt;&gt;|&amp;;()${'&quot;`\\\[]*+(?:[+!@](?!\()|\\.|\{[^  &lt;&gt;|&amp;;{}\\`'&quot;$,]*+\})?+)*+" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="StringRedirection" fallthroughContext="#pop!StringRedirection2">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" />
        <DetectChar attribute="Comment" context="#pop!Comment" char="#" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="StringRedirection2">
        <IncludeRules context="jinja_boot##Jinja" />
        <AnyChar context="#pop" String="  &lt;&gt;|&amp;;()`" lookAhead="1" />
        <IncludeRules context="FindWord" />
        <DetectIdentifier attribute="Normal Text" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="CloseFile" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Keyword" context="#pop" char="-" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#stay" name="HereDoc">
        <IncludeRules context="jinja_boot##Jinja" />
        <RegExpr attribute="Redirection" context="HereDocMLComment" String="^[  ]*&lt;&lt;[  ]*'#([^']+)'$" column="0" />
        <RegExpr attribute="Redirection" context="HereDocIQ" String="&lt;&lt;-[  ]*(?|&quot;([^&quot;]+)&quot;|'([^']+)'|\\(.[^  &lt;&gt;|&amp;;()${'&quot;`\\]*))(?=[  ]*$)" />
        <RegExpr attribute="Redirection" context="HereDocINQ" String="&lt;&lt;-[  ]*([^  &lt;&gt;|&amp;;()]+)(?=[  ]*$)" />
        <RegExpr attribute="Redirection" context="HereDocQ" String="&lt;&lt;[  ]*(?|&quot;([^&quot;]+)&quot;|'([^']+)'|\\(.[^  &lt;&gt;|&amp;;()${'&quot;`\\]*))(?=[  ]*$)" />
        <RegExpr attribute="Redirection" context="HereDocNQ" String="&lt;&lt;[  ]*([^  &lt;&gt;|&amp;;()]+)(?=[  ]*$)" />

        <RegExpr context="HereDocIQCmd" String="(&lt;&lt;-[  ]*(?|&quot;([^&quot;]+)&quot;|'([^']+)'|\\(.[^  &lt;&gt;|&amp;;()${'&quot;`\\]*)))" lookAhead="1" />
        <RegExpr context="HereDocINQCmd" String="(&lt;&lt;-[  ]*([^  &lt;&gt;|&amp;;()]+))" lookAhead="1" />
        <RegExpr context="HereDocQCmd" String="(&lt;&lt;[  ]*(?|&quot;([^&quot;]+)&quot;|'([^']+)'|\\(.[^  &lt;&gt;|&amp;;()${'&quot;`\\]*)))" lookAhead="1" />
        <RegExpr context="HereDocNQCmd" String="(&lt;&lt;[  ]*([^  &lt;&gt;|&amp;;()]+))" lookAhead="1" />

        <Detect2Chars attribute="Redirection" context="#pop" char="&lt;" char1="&lt;" />
      </context>

      <context attribute="Normal Text" lineEndContext="#pop" name="HereDocRemainder" fallthroughContext="CommandArg">
        <IncludeRules context="jinja_boot##Jinja" />
        <AnyChar context="BashOneLine" String="&amp;|;`" lookAhead="1" />
        <IncludeRules context="CommandArgs" />
      </context>

      
      <context attribute="Comment" lineEndContext="#stay" name="PreHereDocMLComment">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Builtin" context="#stay" char=":" column="0" />
        <RegExpr attribute="Redirection" context="HereDocMLComment" String="&lt;&lt;[  ]*'#([^']+)'$" />
      </context>

      <context attribute="Comment" lineEndContext="#stay" name="HereDocMLComment" dynamic="true" fallthroughContext="Comment">
        <IncludeRules context="jinja_boot##Jinja" />
        <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">
        <IncludeRules context="jinja_boot##Jinja" />
        <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="##Jinja/reStructuredText" />
      </context>

      <context attribute="Here Doc" lineEndContext="#stay" name="HereDocQ" dynamic="true" fallthroughContext="HereDocText">
        <IncludeRules context="jinja_boot##Jinja" />
        <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">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="HereDocQ" />
      </context>

      <context attribute="Here Doc" lineEndContext="#stay" name="HereDocIQ" dynamic="true" fallthroughContext="HereDocText">
        <IncludeRules context="jinja_boot##Jinja" />
        <RegExpr attribute="Redirection" context="#pop#pop" String="^\t*%1$" dynamic="true" column="0" />
      </context>

      <context attribute="Here Doc" lineEndContext="#stay" name="HereDocINQ" dynamic="true" fallthroughContext="HereDocSubstitutions">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="HereDocIQ" />
      </context>

      <context attribute="Here Doc" lineEndContext="#stay" name="HereDocCmd">
        
        <IncludeRules context="jinja_boot##Jinja" />
        
        <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="jinja_boot##Jinja" />
        <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">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="HereDocQCmd" />
      </context>

      <context attribute="Here Doc" lineEndContext="#stay" name="HereDocIQCmd" dynamic="true" fallthroughContext="HereDocText">
        <IncludeRules context="jinja_boot##Jinja" />
        <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">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="HereDocIQCmd" />
      </context>

      <context attribute="Here Doc" lineEndContext="#pop" name="HereDocText">
      <IncludeRules context="jinja_boot##Jinja" />
      </context>

      <context attribute="Here Doc" lineEndContext="#pop" name="HereDocSubstitutions">
        <IncludeRules context="jinja_boot##Jinja" />
        <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" />
      </context>
      <context attribute="Here Doc" lineEndContext="#pop" name="HereDocVariables">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="DispatchSubstVariables" />
        <IncludeRules context="DispatchVarnameVariables" />
        <DetectChar attribute="Here Doc" context="#pop" char="$" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#pop" name="VarName">
        <IncludeRules context="jinja_boot##Jinja" />
        <StringDetect attribute="Builtin" context="#pop!BuiltinGetopts" String="getopts" />
        <StringDetect attribute="Builtin" context="#pop!BuiltinLet" String="let" />
        <DetectIdentifier attribute="Builtin" context="#pop!VarNameArgs" />
        <AnyChar attribute="Builtin" context="#pop!VarNameArgs" String=".:" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="VarNameArgs" fallthroughContext="#pop!CommandArgs">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="VarNameArg" />
        <LineContinue attribute="Escape" context="#stay" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop#pop" name="VarNameArg" fallthroughContext="#pop!VarNameArg2">
        
        <IncludeRules context="jinja_boot##Jinja" />
        
        <DetectChar context="#pop#pop" char="#" lookAhead="1" />
        <DetectChar attribute="Option" context="#pop!ShortOption" char="-" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="VarNameArg2" fallthroughContext="#pop!NormalOption">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Variable" context="Subscript" char="[" />
        <DetectChar attribute="Operator" context="Assign" char="=" />
        <DetectChar attribute="Variable" context="AssignArray" char="(" />
        <DetectIdentifier attribute="Variable" context="#stay" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="BuiltinGetopts" fallthroughContext="#pop!CommandArgs">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#pop!BuiltinGetoptsOpt" />
        <LineContinue attribute="Escape" context="#stay" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop#pop" name="BuiltinGetoptsOpt" fallthroughContext="#pop!BuiltinGetoptsOpt2">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar context="#pop#pop" char="#" lookAhead="1" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="BuiltinGetoptsOpt2" fallthroughContext="#pop!NormalOption">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Operator" context="#stay" char=":" />
        <DetectIdentifier attribute="Normal Text" context="#stay" />
        <DetectSpaces attribute="Normal Text" context="#pop!BuiltinGetoptsVar" />
        <AnyChar context="#pop" String="  &lt;&gt;|&amp;;()`" lookAhead="1" />
        <IncludeRules context="FindWord" />
        <DetectChar context="NormalMaybeBraceExpansion" char="{" lookAhead="1" />
        <AnyChar attribute="Normal Text" context="#stay" String="/%.0123456789" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="BuiltinGetoptsVar" fallthroughContext="#pop!CommandArgs">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectIdentifier attribute="Variable" context="#pop!CommandArgs" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="BuiltinLet" fallthroughContext="#pop!CommandArgs">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#pop!BuiltinLetArgs" />
        <LineContinue attribute="Escape" context="#stay" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="BuiltinLetArgs" fallthroughContext="BuiltinLetArg">
        <IncludeRules context="jinja_boot##Jinja" />
        <AnyChar context="BuiltinLetArgsNumber" String="0123456789" lookAhead="1" />
        <IncludeRules context="CommandArgs" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="BuiltinLetArgsNumber" fallthroughContext="#pop!BuiltinLetArg">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="FindRedirection" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop#pop" name="BuiltinLetArg" fallthroughContext="#pop!BuiltinLetExpr">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar context="#pop#pop" char="#" lookAhead="1" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="BuiltinLetExpr" fallthroughContext="#pop!NormalOption">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectIdentifier attribute="Variable" context="#stay" />
        <AnyChar context="#pop" String="  &lt;&gt;|&amp;;()`" lookAhead="1" />
        <AnyChar attribute="Operator" context="#stay" String="+-/%=^:" />
        <AnyChar context="Number" String="0123456789" lookAhead="1" />
        <DetectChar attribute="Parameter Expansion Operator" context="Subscript" char="[" />
        <IncludeRules context="FindWord" />
        <DetectChar attribute="Error" context="#stay" char="#" />
        <DetectChar context="NormalMaybeBraceExpansion" char="{" lookAhead="1" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#stay" name="ProcessSubst" fallthroughContext="Command">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Redirection" context="#pop" char=")" />
        <IncludeRules context="Start" />
      </context>

      
      <context attribute="String SingleQ" lineEndContext="#stay" name="StringSQ">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="String SingleQ" />
        <DetectIdentifier attribute="String SingleQ" />
        <DetectChar attribute="String SingleQ" context="#pop" char="'" />
      </context>

      
      <context attribute="String DoubleQ" lineEndContext="#stay" name="StringDQ">
        <IncludeRules context="jinja_boot##Jinja" />
        <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" />
        <DetectChar attribute="Backquote" context="RegularBackq" char="`" />
      </context>
      <context attribute="String DoubleQ" lineEndContext="#stay" name="StringDQDispatchVariables">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="DispatchSubstVariables" />
        <IncludeRules context="DispatchVarnameVariables" />
        <DetectChar attribute="String DoubleQ" context="#pop" char="$" />
      </context>
      <context attribute="String DoubleQ" lineEndContext="#pop" name="StringDQEscape">
        <IncludeRules context="jinja_boot##Jinja" />
        <Detect2Chars attribute="String Escape" context="#pop" char="\" char1="&quot;" />
        <Detect2Chars attribute="String Escape" context="#pop" char="\" char1="\" />
        <Detect2Chars attribute="String Escape" context="#pop" char="\" char1="`" />
        <Detect2Chars attribute="String Escape" context="#pop" char="\" char1="$" />
        <LineContinue attribute="String Escape" context="#pop" />
        <DetectChar attribute="String DoubleQ" context="#pop" char="\" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#stay" name="RegularBackq" fallthroughContext="Command">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Backquote" context="#pop" char="`" />
        <DetectChar attribute="Comment" context="CommentBackq" char="#" />
        <IncludeRules context="Start" />
      </context>

      
      <context attribute="String SingleQ" lineEndContext="#stay" name="StringEsc">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="String SingleQ" />
        <DetectIdentifier attribute="String SingleQ" />
        <DetectChar attribute="String SingleQ" context="#pop" char="'" />
        <RegExpr attribute="String Escape" context="#stay" String="\\(?:[abeEfnrtv\\'&quot;?]|[0-7]{1,3}|x[A-Fa-f0-9]{1,2}|u[A-Fa-f0-9]{1,4}|U[A-Fa-f0-9]{1,8}|c.)" />
      </context>

      <context attribute="Normal Text" lineEndContext="#stay" name="FindWord">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="FindStrings" />
        <DetectChar context="RegularVariable" char="$" lookAhead="1" />
        <DetectChar attribute="Backquote" context="RegularBackq" char="`" />
        <DetectChar context="AssumeEscape" char="\" lookAhead="1" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="RegularVariable">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="DispatchVariables" />
        <DetectChar attribute="Normal Text" context="#pop" char="$" />
      </context>

      <context attribute="Normal Text" lineEndContext="#pop" name="FindStrings">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="String SingleQ" context="StringSQ" char="'" />
        <DetectChar attribute="String DoubleQ" context="StringDQ" char="&quot;" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#stay" name="SubstCommand" fallthroughContext="Command">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Parameter Expansion" context="#pop" char=")" endRegion="subshell" />
        <IncludeRules context="Start" />
      </context>

      
      <context attribute="Variable" lineEndContext="SubstBraceCommand" name="VarBraceStart" fallthroughContext="#pop!VarBrace">
        
        <IncludeRules context="jinja_boot##Jinja" />
        
        <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="#" />
        
        <DetectSpaces attribute="Normal Text" context="SubstBraceCommand" />
        
        <DetectChar attribute="Control" context="SubstBraceCommand" char="|" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#stay" name="SubstBraceCommand" fallthroughContext="Command">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Parameter Expansion" context="#pop" char="}" />
        <IncludeRules context="Start" />
      </context>

      
      <context attribute="Variable" lineEndContext="#pop" name="VarBracePrefix">
        <IncludeRules context="jinja_boot##Jinja" />
        <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">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Parameter Expansion" context="#pop" char="}" />
        <AnyChar attribute="Parameter Expansion Operator" context="#stay" String="@*" />
        <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">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Parameter Expansion" context="#pop" char="}" />
        <DetectChar attribute="Parameter Expansion Operator" char="#" />
      </context>

      
      <context attribute="Variable" lineEndContext="#stay" name="VarBrace" fallthroughContext="#pop!VarError">
        <IncludeRules context="jinja_boot##Jinja" />
        <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">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Parameter Expansion" context="#pop" char="}" />
      </context>
      <context attribute="Normal Text" lineEndContext="#stay" name="CheckVarAlt" fallthroughContext="#pop!VarError">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Parameter Expansion" context="#pop" char="}" />
        <StringDetect attribute="Parameter Expansion Operator" context="#stay" String="[@]" />
        <StringDetect attribute="Parameter Expansion Operator" context="#stay" String="[*]" />
        <DetectChar attribute="Parameter Expansion Operator" context="Subscript" char="[" />
        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char=":" char1="-" />
        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char=":" char1="=" />
        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char=":" char1="?" />
        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char=":" char1="+" />
        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char="#" char1="#" />
        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char="%" char1="%" />
        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternatePatternValue" char="^" char1="^" />
        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternatePatternValue" char="," char1="," />
        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarSub" char=":" />
        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarSubst" char="/" />
        <AnyChar attribute="Parameter Expansion Operator" context="#pop!AlternateValue" String="-+=?#%" />
        <AnyChar attribute="Parameter Expansion Operator" context="#pop!AlternatePatternValue" String="^," />
        <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarTransformation" char="@" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#stay" name="VarSub">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Parameter Expansion" context="#pop" char="}" />
        
        <AnyChar attribute="Decimal" String="0123456789" />
        <DetectChar attribute="Parameter Expansion Operator" context="#stay" char=":" />
        <DetectChar context="VarVariables" char="$" lookAhead="1" />
        <IncludeRules context="FindStrings" />
        <DetectChar attribute="Backquote" context="RegularBackq" char="`" />
        <DetectChar context="AssumeEscape" char="\" lookAhead="1" />
      </context>
      <context attribute="Command" lineEndContext="#pop" name="VarVariables">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="DispatchVariables" />
        <DetectChar attribute="Error" context="#pop" char="$" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#stay" name="AlternateValue">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Parameter Expansion" context="#pop" char="}" />
        <IncludeRules context="FindWord" />
        <IncludeRules context="FindPathThenPopInAlternateValue" />
        <DetectIdentifier attribute="Normal Text" />
      </context>

      
      <context attribute="Pattern" lineEndContext="#stay" name="AlternatePatternValue">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Parameter Expansion" context="#pop" char="}" />
        <IncludeRules context="FindWord" />
        <IncludeRules context="FindPattern" />
        <DetectIdentifier attribute="Pattern" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#stay" name="VarSubst" fallthroughContext="#pop!VarSubstPat">
        <IncludeRules context="jinja_boot##Jinja" />
        <AnyChar attribute="Parameter Expansion Operator" context="#pop!VarSubstPat" String="/#%" />
      </context>
      <context attribute="Pattern" lineEndContext="#stay" name="VarSubstPat">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char="/" />
        <IncludeRules context="AlternatePatternValue" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#stay" name="VarTransformation" fallthroughContext="#pop!VarError">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Parameter Expansion" context="#pop" char="}" />
        <AnyChar attribute="Parameter Expansion" context="#stay" String="UuLQEPAKak" />
      </context>

      <context attribute="Escape" lineEndContext="#pop" name="BraceExpansion">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Escape" context="#pop!BraceExpansion2" char="{" />
      </context>
      <context attribute="Escape" lineEndContext="#pop" name="BraceExpansion2">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Operator" context="#stay" char="," />
        <DetectChar attribute="Escape" context="#pop" char="}" />
        <DetectChar context="EscapeMaybeBraceExpansion" char="{" lookAhead="1" />
        <DetectChar context="AssumeEscape" char="\" lookAhead="1" />
        <DetectChar attribute="Backquote" context="CommandBackq" char="`" />
        <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="jinja_boot##Jinja" />
        <IncludeRules context="DispatchBraceExpansion" />
        <DetectChar attribute="Escape" context="#pop!BraceExpansion2" char="{" />
      </context>
      <context attribute="Escape" lineEndContext="#pop" name="BraceExpansionVariables">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="DispatchVariables" />
        <DetectChar attribute="Escape" context="#pop" char="$" />
      </context>

      <context attribute="Normal Text" lineEndContext="#pop" name="SequenceExpression">
        <IncludeRules context="jinja_boot##Jinja" />
        <AnyChar attribute="Decimal" context="#stay" String="0123456789-+" />
        <Detect2Chars attribute="Escape" context="#stay" char="." char1="." />
        <DetectChar attribute="Escape" context="#pop" char="}" />
      </context>



      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParenOrSubShell">
        <IncludeRules context="jinja_boot##Jinja" />
        <RegExpr attribute="Keyword" context="#pop!SubShell" String="\((?=\(((?:[^`'&quot;()$]++|\$\{[^`'&quot;(){}$]+\}|\$(?=[^{`'&quot;()])|`[^`]*+`|\((?1)(?:[)]|(?=['&quot;])))++)(?:[)](?=$|[^)])|[&quot;']))|" beginRegion="subshell" />
        <Detect2Chars attribute="Keyword" context="#pop!ExprDblParen" char="(" char1="(" beginRegion="expression" />
      </context>
      
      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParen">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#stay" />
        <Detect2Chars attribute="Keyword" context="#pop" char=")" char1=")" endRegion="expression" />
        <IncludeRules context="FindExprDblParen" />
        
        <DetectChar attribute="Keyword" context="#pop!SubShell" char=")" endRegion="expression" beginRegion="subshell" />
      </context>
      <context attribute="Normal Text" lineEndContext="#stay" name="FindExprDblParen">
        <IncludeRules context="jinja_boot##Jinja" />
        <Detect2Chars attribute="Control" context="#stay" char="&amp;" char1="&amp;" />
        <Detect2Chars attribute="Control" context="#stay" char="|" char1="|" />
        <AnyChar attribute="Operator" context="#stay" String="+-!~*/%&lt;&gt;=&amp;^|?:" />
        <AnyChar context="Number" String="0123456789" lookAhead="1" />
        <DetectChar attribute="Control" context="#stay" char="," />
        <DetectChar attribute="Normal Text" context="ExprSubDblParen" char="(" />
        <DetectChar attribute="Parameter Expansion Operator" context="Subscript" char="[" />
        <IncludeRules context="FindWord" />
        <DetectChar attribute="Error" context="#stay" char="#" />
        <DetectChar context="MaybeArithmeticBrace" char="{" lookAhead="1" />
        <DetectIdentifier attribute="Variable" context="#stay" />
      </context>
      <context attribute="Normal Text" lineEndContext="#stay" name="ExprSubDblParen">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#stay" />
        <DetectChar attribute="Normal Text" context="#pop" char=")" />
        <IncludeRules context="FindExprDblParen" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="MaybeArithmeticBrace">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="DispatchBraceExpansion" />
        <DetectChar attribute="Error" context="#pop" char="{" />
      </context>

      <context attribute="Decimal" lineEndContext="#pop" name="Number">
        <IncludeRules context="jinja_boot##Jinja" />
        <HlCHex attribute="Hex" context="#pop" additionalDeliminator="^%#[]$.{}:-/" />
        <HlCOct attribute="Octal" context="#pop!NumberError" additionalDeliminator="^%#[]$.{}:-/" />
        <RegExpr attribute="Base" context="#pop!BaseN" String="[1-9][0-9]*#" />
        <DetectChar attribute="Decimal" context="#pop!NumberError" char="0" />
        <Int attribute="Decimal" context="#pop" additionalDeliminator="^%#[]$.{}:-/" />
      </context>
      <context attribute="BaseN" lineEndContext="#pop" name="BaseN" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <RegExpr attribute="BaseN" context="#pop" String="[0-9a-zA-Z@_]+" />
      </context>
      <context attribute="Error" lineEndContext="#pop" name="NumberError" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <Int attribute="Error" context="#pop" additionalDeliminator="0123456789" />
      </context>

      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParenSubstOrSubstCommand">
        <IncludeRules context="jinja_boot##Jinja" />
        <RegExpr attribute="Parameter Expansion" context="#pop!SubstCommand" String="\$\((?=\(((?:[^`'&quot;()$]++|\$\{[^`'&quot;(){}$]+\}|\$(?=[^{`'&quot;()])|`[^`]*+`|\((?1)(?:[)]|(?=['&quot;])))++)(?:[)](?=$|[^)])|[&quot;']))|" beginRegion="subshell" />
        <StringDetect attribute="Parameter Expansion" context="#pop!ExprDblParenSubst" String="$((" beginRegion="expression" />
      </context>
      
      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParenSubst">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#stay" />
        <Detect2Chars attribute="Parameter Expansion" context="#pop" char=")" char1=")" endRegion="expression" />
        <IncludeRules context="FindExprDblParen" />
        
        <DetectChar attribute="Parameter Expansion" context="#pop!SubstCommand" char=")" endRegion="expression" beginRegion="subshell" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracket" fallthroughContext="#pop!ExprBracketNot">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#stay" />
        <IncludeRules context="FindExprBracketEnd" />
      </context>

      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracketNot" fallthroughContext="#pop!ExprBracketParam1">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#pop!ExprBracketParam1" />
        <Detect2Chars attribute="Expression" context="ExprBracketTestMaybeNot" char="!" char1=" " lookAhead="1" />
        <Detect2Chars attribute="Expression" context="ExprBracketTestMaybeNot" char="!" char1=" " lookAhead="1" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="ExprBracketTestMaybeNot">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Expression" context="#pop" char="!" />
      </context>

      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracketParam1" fallthroughContext="ExprBracketValue">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#pop!ExprBracketParam2" />
        <DetectChar context="TestMaybeUnary" char="-" lookAhead="1" />
        <IncludeRules context="FindExprBracketEnd" />
      </context>

      <context attribute="Normal Text" lineEndContext="#pop" name="ExprBracketValue">
        <IncludeRules context="jinja_boot##Jinja" />
        <AnyChar attribute="Error" context="#stay" String="&lt;&gt;|&amp;;()" />
        <AnyChar context="#pop" String="  " lookAhead="1" />
        <IncludeRules context="FindWord" />
        <DetectChar context="NormalMaybeBraceExpansion" char="{" lookAhead="1" />
        <IncludeRules context="FindNormalText" />
      </context>

      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracketParam2" fallthroughContext="#pop!ExprBracketParam2_Value">
        <IncludeRules context="jinja_boot##Jinja" />
        <LineContinue attribute="Escape" context="SkipSpaces" />
      </context>
      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracketParam2_Value" fallthroughContext="ExprBracketValue">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#pop!ExprBracketParam3" />
        <AnyChar context="TestMaybeBinary" String="-=!" lookAhead="1" />
        <IncludeRules context="FindExprBracketEnd" />
      </context>

      <context attribute="Normal Text" lineEndContext="ExprBracketFinal" name="ExprBracketParam3" fallthroughContext="#pop!ExprBracketParam3_Value">
        <IncludeRules context="jinja_boot##Jinja" />
        <LineContinue attribute="Escape" context="SkipSpaces" />
      </context>
      <context attribute="Normal Text" lineEndContext="ExprBracketFinal" name="ExprBracketParam3_Value" fallthroughContext="ExprBracketValue">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#pop!ExprBracketFinal" />
        <IncludeRules context="FindExprBracketEnd" />
      </context>

      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracketFinal" fallthroughContext="ExprBracketValue">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#stay" />
        <IncludeRules context="FindExprBracketEnd" />
        <RegExpr attribute="Expression" context="#pop!ExprBracket" String="-[ao](?=$|[  ])" />
        <RegExpr attribute="Error" context="#pop" String="(?:[^]  ]++|\][^  ])++" endRegion="expression" />
      </context>

      <context attribute="Normal Text" lineEndContext="#stay" name="FindExprBracketEnd">
        <IncludeRules context="jinja_boot##Jinja" />
        <LineContinue attribute="Escape" context="#stay" />
        <RegExpr attribute="Builtin" context="#pop" String="\](?=($|[  ;|&amp;&lt;&gt;)]))" endRegion="expression" />
      </context>

      <context attribute="Normal Text" lineEndContext="#pop" name="TestMaybeUnary" fallthroughContext="#pop!ExprBracketValue">
        <IncludeRules context="jinja_boot##Jinja" />
        <RegExpr attribute="Expression" context="#pop#pop!ExprBracketParam2" String="-[abcdefghkprstuwxGLNOSovRnz](?=\\?$|[  ])" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="TestMaybeBinary" fallthroughContext="#pop!ExprBracketValue">
        <IncludeRules context="jinja_boot##Jinja" />
        <RegExpr attribute="Expression" context="#pop" String="(?:-(?:e[fq]|[nolg]t|[nlg]e)|==?|!=)(?=\\?$|[  ])" />
      </context>

      <context attribute="Normal Text" lineEndContext="#pop" name="SkipSpaces" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces context="#pop" />
      </context>


      
      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracket" fallthroughContext="#pop!ExprDblBracketNot">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#stay" />
        <DetectChar attribute="Comment" context="Comment" char="#" />
        <IncludeRules context="FindExprDblBracketEnd" />
      </context>

      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketNot" fallthroughContext="#pop!ExprDblBracketParam1">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketParam1" />
        <DetectChar context="ExprDblBracketTestMaybeNot" char="!" lookAhead="1" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketTestMaybeNot" fallthroughContext="#pop#pop!ExprDblBracketParam1">
        <IncludeRules context="jinja_boot##Jinja" />
        <RegExpr attribute="Expression" context="#pop" String="!(?=$|[  (])" />
      </context>

      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam1" fallthroughContext="ExprDblBracketValueText">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketParam2" />
        <DetectChar context="TestMaybeUnary2" char="-" lookAhead="1" />
        <AnyChar attribute="Expression" context="#pop!ExprDblBracketParam3Spe" String="&lt;&gt;" />
        <IncludeRules context="FindExprDblBracketEnd" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="TestMaybeUnary2" fallthroughContext="#pop!ExprDblBracketValueText">
        <IncludeRules context="jinja_boot##Jinja" />
        <RegExpr attribute="Expression" context="#pop!ExprDblBracketUnary" String="-[abcdefghkprstuwxGLNOSovRnz](?=\\?$|[  ])(?!\s+(?:=~|(?:-(?:e[fq]|[nolg]t|[nlg]e)|==?|!=)(?=\\?$|[  ])))" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketUnary">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketValueText" />
      </context>

      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValueText" fallthroughContext="#pop!ExprDblBracketValueText2">
        <IncludeRules context="jinja_boot##Jinja" />
        <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">
        <IncludeRules context="jinja_boot##Jinja" />
        <RegExpr context="#pop!ExprDblBracketValueTextPath" String="/|(~|\.\.?)($|[/  &lt;&gt;|&amp;;)])|([^?*+!@  &lt;&gt;|&amp;;()'&quot;`\\/]++|\\.|(?:'[^']*+'|&quot;(?:[^&quot;\\`]*+|`[^`]*+`|\\.)*+&quot;|`[^`]*+`)|\[(?:[^  &lt;&gt;|&amp;;()&quot;'`\\\[\]]+|\\.|(?:'[^']*+'|&quot;(?:[^&quot;\\`]*+|`[^`]*+`|\\.)*+&quot;|`[^`]*+`)|\[:\w+:\]|\[)*\]|[?*+](?!\()|[?*+!@]\(([^?*+!@()'&quot;`\\/]++|\\.|(?:'[^']*+'|&quot;(?:[^&quot;\\`]*+|`[^`]*+`|\\.)*+&quot;|`[^`]*+`)|\[(?:[^  &lt;&gt;|&amp;;()&quot;'`\\\[\]]+|\\.|(?:'[^']*+'|&quot;(?:[^&quot;\\`]*+|`[^`]*+`|\\.)*+&quot;|`[^`]*+`)|\[:\w+:\]|\[)*\]|[?*+](?!\())*+(\)|(?=/)))*+/|" lookAhead="1" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValueTextMaybeEnd">
        <IncludeRules context="jinja_boot##Jinja" />
        <RegExpr attribute="Keyword" context="#pop#pop" String="\]\](?=($|[  ;|&amp;)]))" endRegion="expression" />
        <IncludeRules context="FindExprDblBracketValueTextPath" />
        <Detect2Chars context="#pop!ExprDblBracketValueText2" char="]" char1="]" lookAhead="1" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValueText2">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectIdentifier />
        <AnyChar String="*?+!@~^:%+-/," />
        <IncludeRules context="ExprDblBracketValueCommon" />
      </context>
      <context attribute="Path" lineEndContext="#pop" name="ExprDblBracketValueTextPath">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="ExprDblBracketValueText2" />
      </context>

      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValuePattern" fallthroughContext="#pop!ExprDblBracketValuePattern2">
        <IncludeRules context="jinja_boot##Jinja" />
        <RegExpr context="PathThenPop" String="/|(~|\.\.?)($|[/  &lt;&gt;|&amp;;)])|([^?*+!@  &lt;&gt;|&amp;;()'&quot;`\\/]++|\\.|(?:'[^']*+'|&quot;(?:[^&quot;\\`]*+|`[^`]*+`|\\.)*+&quot;|`[^`]*+`)|\[(?:[^  &lt;&gt;|&amp;;()&quot;'`\\\[\]]+|\\.|(?:'[^']*+'|&quot;(?:[^&quot;\\`]*+|`[^`]*+`|\\.)*+&quot;|`[^`]*+`)|\[:\w+:\]|\[)*\]|[?*+](?!\()|[?*+!@]\(([^?*+!@()'&quot;`\\/]++|\\.|(?:'[^']*+'|&quot;(?:[^&quot;\\`]*+|`[^`]*+`|\\.)*+&quot;|`[^`]*+`)|\[(?:[^  &lt;&gt;|&amp;;()&quot;'`\\\[\]]+|\\.|(?:'[^']*+'|&quot;(?:[^&quot;\\`]*+|`[^`]*+`|\\.)*+&quot;|`[^`]*+`)|\[:\w+:\]|\[)*\]|[?*+](?!\())*+(\)|(?=/)))*+/|" lookAhead="1" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketValuePattern2">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectIdentifier attribute="Normal Text" />
        <IncludeRules context="ExprDblBracketValueCommon" />
        <IncludeRules context="FindExprDblBracketValueExtGlob" />
        <AnyChar attribute="Glob" String="?*" />
      </context>
      <context attribute="Glob" lineEndContext="#stay" name="FindExprDblBracketValueExtGlob">
        <IncludeRules context="jinja_boot##Jinja" />
        <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="jinja_boot##Jinja" />
        <IncludeRules context="FindGlobAny" />
        <DetectChar attribute="Normal Text" context="#pop" char="[" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop#pop" name="ExprDblBracketValueExtGlob">
        <IncludeRules context="jinja_boot##Jinja" />
        <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">
        <IncludeRules context="jinja_boot##Jinja" />
        <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">
        <IncludeRules context="jinja_boot##Jinja" />
        <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 context="#pop" String="  &lt;&gt;" lookAhead="1" />
        <IncludeRules context="FindWord" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketSubValue" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Operator" context="ExprDblBracketNot" char="(" />
        <Detect2Chars context="#pop#pop" char="]" char1="]" lookAhead="1" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketDblParentOrSubValue">
        <IncludeRules context="jinja_boot##Jinja" />
        <RegExpr context="#pop!ExprDblBracketSubValue" String="\((?=\(((?:[^`'&quot;()$]++|\$\{[^`'&quot;(){}$]+\}|\$(?=[^{`'&quot;()])|`[^`]*+`|\((?1)(?:[)]|(?=['&quot;])))++)(?:[)](?=$|[^)])|[&quot;']))|" lookAhead="1" />
        <Detect2Chars attribute="Keyword" context="#pop!ExprDblBracketExprDblParen" char="(" char1="(" beginRegion="expression" />
      </context>
      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketExprDblParen">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#stay" />
        <Detect2Chars attribute="Keyword" context="#pop" char=")" char1=")" endRegion="expression" />
        <IncludeRules context="FindExprDblParen" />
        
        <DetectChar attribute="Operator" context="ExprDblBracketValuePattern" char=")" endRegion="expression" beginRegion="subshell" />
      </context>

      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam2" fallthroughContext="#pop!ExprDblBracketParam2_Value">
        <IncludeRules context="jinja_boot##Jinja" />
        <LineContinue attribute="Escape" context="SkipSpaces" />
      </context>
      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam2_Value" fallthroughContext="ExprDblBracketValuePattern">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketParam3" />
        <AnyChar context="TestMaybeBinary2" String="-=!" lookAhead="1" />
        <AnyChar attribute="Expression" context="#pop!ExprDblBracketParam3Spe" String="&lt;&gt;" />
        <IncludeRules context="FindExprDblBracketEnd" />
        <DetectChar attribute="Comment" context="Comment" char="#" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="TestMaybeBinary2" fallthroughContext="#pop!ExprDblBracketValuePattern">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="TestMaybeBinary" />
        <RegExpr attribute="Expression" context="#pop!ExprDblBracketRegex" String="=~(?=[  (])" />
      </context>

      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam3Spe" fallthroughContext="#pop!ExprDblBracketParam3">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketParam3" />
      </context>

      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam3" fallthroughContext="#pop!ExprDblBracketParam3_Value">
        <IncludeRules context="jinja_boot##Jinja" />
        <LineContinue attribute="Escape" context="SkipSpaces" />
      </context>
      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketParam3_Value" fallthroughContext="ExprDblBracketValuePattern">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketFinal" />
        <IncludeRules context="FindExprDblBracketEnd" />
        <AnyChar attribute="Error" context="#stay" String="&lt;&gt;" />
        <DetectChar attribute="Comment" context="Comment" char="#" />
      </context>

      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketFinal" fallthroughContext="ExprDblBracketValuePattern">
        <IncludeRules context="jinja_boot##Jinja" />
        <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="(?:[^]  ]++|\](?:[^]]|\][^  ]))++" endRegion="expression" />
      </context>

      <context attribute="Normal Text" lineEndContext="#stay" name="FindExprDblBracketEnd">
        <IncludeRules context="jinja_boot##Jinja" />
        <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="\]\](?=($|[  ;|&amp;)]))" endRegion="expression" />
      </context>

      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketRegex" fallthroughContext="#pop!ExprDblBracketRegexCheck">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketRegexCheck" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="ExprDblBracketRegexCheck" fallthroughContext="#pop#pop!Regex">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Error" context="Comment" char="#" />
      </context>
      <context attribute="Pattern" lineEndContext="#stay" name="Regex">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectIdentifier attribute="Pattern" />
        <DetectSpaces attribute="Normal Text" context="#pop!ExprDblBracketFinal" />
        <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">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectIdentifier attribute="Pattern" />
        <DetectSpaces attribute="Pattern" context="#stay" />
        <DetectChar attribute="Operator" context="#pop" char=")" />
        <Detect2Chars attribute="Operator" context="RegexSubChar" char="[" char1="^" />
        <DetectChar attribute="Operator" context="RegexSubChar" char="[" />
        <IncludeRules context="FindRegex" />
      </context>

      <context attribute="Pattern" lineEndContext="#stay" name="FindRegex">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Operator" context="ExprDblBracketSubRegex" char="(" />
        <DetectChar attribute="Escape" context="RegexEscape" char="\" />
        <DetectChar attribute="Parameter Expansion" context="RegexDup" char="{" />
        <AnyChar attribute="Glob" context="#stay" String="^?+*.|" />
        <IncludeRules context="FindStrings" />
        <DetectChar context="RegexDispatchVariables" char="$" lookAhead="1" />
        <DetectChar attribute="Backquote" context="RegularBackq" char="`" />
      </context>
      <context attribute="Normal Text" lineEndContext="#stay" name="RegexDispatchVariables">
        <IncludeRules context="jinja_boot##Jinja" />
        <IncludeRules context="DispatchVariables" />
        <DetectChar attribute="Operator" context="#pop" char="$" />
      </context>

      <context attribute="Normal Text" lineEndContext="#pop" name="RegexEscape">
        <IncludeRules context="jinja_boot##Jinja" />
        <RegExpr attribute="Escape" context="#pop" String="x[0-9a-fA-F]{1,2}|[0-7]{1,3}|." />
      </context>

      <context attribute="Normal Text" lineEndContext="#pop" name="RegexDup">
        <IncludeRules context="jinja_boot##Jinja" />
        <Int attribute="Decimal" additionalDeliminator="{" />
        <DetectChar attribute="Parameter Expansion Operator" context="#stay" char="," />
        <DetectChar attribute="Parameter Expansion" context="#pop" char="}" />
      </context>

      <context attribute="Pattern" lineEndContext="#pop" name="RegexSubChar" fallthroughContext="#pop!RegexSubInChar">
        <IncludeRules context="jinja_boot##Jinja" />
        <AnyChar attribute="Pattern" context="#pop!RegexSubInChar" String="-]" />
      </context>
      <context attribute="Pattern" lineEndContext="#pop" name="RegexSubInChar">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Pattern" context="#stay" />
        <IncludeRules context="RegexInChar" />
      </context>

      <context attribute="Pattern" lineEndContext="#pop" name="RegexChar" fallthroughContext="#pop!RegexInChar">
        <IncludeRules context="jinja_boot##Jinja" />
        <AnyChar attribute="Pattern" context="#pop!RegexInChar" String="-]" />
      </context>
      <context attribute="Pattern" lineEndContext="#pop" name="RegexInChar">
        <IncludeRules context="jinja_boot##Jinja" />
        <Detect2Chars context="RegexInCharEnd" char="-" char1="]" lookAhead="1" />
        <DetectChar attribute="Operator" context="#stay" char="-" />
        <DetectChar attribute="Escape" context="RegexEscape" char="\" />
        <DetectChar context="RegexCharClassSelect" char="[" lookAhead="1" />
        <DetectChar attribute="Operator" context="#pop" char="]" />
        <AnyChar context="#pop" String="()  " lookAhead="1" />
        <IncludeRules context="FindStrings" />
      </context>
      <context attribute="Operator" lineEndContext="#stay" name="RegexInCharEnd">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Pattern" context="#stay" char="-" />
        <DetectChar attribute="Operator" context="#pop#pop" char="]" />
      </context>
      <context attribute="Parameter Expansion" lineEndContext="#pop#pop#pop" name="RegexCharClassSelect">
        <IncludeRules context="jinja_boot##Jinja" />
        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!RegexCharClass" char="[" char1=":" />
        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!RegexCollatingSymbols" char="[" char1="." />
        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!RegexEquivalenceClass" char="[" char1="=" />
        <DetectChar attribute="Pattern" context="#pop" char="[" />
      </context>

      <context attribute="Parameter Expansion" lineEndContext="#pop#pop#pop" name="RegexCharClass">
        <IncludeRules context="jinja_boot##Jinja" />
        <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">
        <IncludeRules context="jinja_boot##Jinja" />
        <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">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectIdentifier attribute="Parameter Expansion" />
        <Detect2Chars attribute="Parameter Expansion Operator" context="#pop" char="=" char1="]" />
        <DetectChar attribute="Error" context="#pop" char="]" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#stay" name="SubShell" fallthroughContext="Command">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Keyword" context="#pop" char=")" endRegion="subshell" />
        <IncludeRules context="Start" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#pop" name="Assign" fallthroughContext="#pop!Assign2">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Variable" context="#pop!AssignArray" char="(" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="Assign2" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Backquote" context="RegularBackq" char="`" />
        <IncludeRules context="NormalOption" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#stay" name="AssignArray" fallthroughContext="NormalOption">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#stay" />
        <DetectChar attribute="Comment" context="Comment" char="#" />
        <DetectChar attribute="Variable" context="#pop!Assign2" char=")" />
        <DetectChar context="AssignArrayKey" char="[" lookAhead="1" />
        <DetectChar attribute="Backquote" context="AssignArrayBackq" char="`" />
        <AnyChar attribute="Error" context="#stay" String="&lt;&gt;|&amp;;()" />
      </context>
      <context attribute="Normal Text" lineEndContext="#pop" name="AssignArrayKey" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Parameter Expansion Operator" context="Subscript" char="[" />
        <DetectChar attribute="Variable" context="#pop" char="=" />
      </context>
      <context attribute="Normal Text" lineEndContext="#stay" name="AssignArrayBackq" fallthroughContext="Command">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Backquote" context="#pop!NormalOption" char="`" />
        <DetectChar attribute="Comment" context="CommentBackq" char="#" />
        <IncludeRules context="Start" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#stay" name="Subscript" fallthroughContext="#pop!Subscript2">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="]" />
        <AnyChar attribute="Decimal" context="#stay" String="0123456789" />
      </context>
      <context attribute="Normal Text" lineEndContext="#stay" name="Subscript2">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectIdentifier attribute="Normal Text" />
        <DetectChar attribute="Parameter Expansion Operator" context="#pop" char="]" />
        <IncludeRules context="FindWord" />
        <IncludeRules context="FindPattern" />
      </context>

      
      <context attribute="Function" lineEndContext="#pop" name="FunctionDef" fallthroughContext="#pop">
        <IncludeRules context="jinja_boot##Jinja" />
        <RegExpr attribute="Function" context="#pop" String="[  ]+([^*?+!@  &lt;&gt;|&amp;;()${'&quot;`\\}=#$]|[+!@](?!\())([^*?+!@  &lt;&gt;|&amp;;()${'&quot;`\\}=$]*+([+!@](?!\())?+)*+(?:[  ]*\(\))?" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#stay" name="Case">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#stay" />
        <WordDetect attribute="Keyword" context="#pop!CaseIn" String="in" />
        <IncludeRules context="FindWord" />
        <DetectIdentifier attribute="Normal Text" context="#stay" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#stay" name="CaseIn" fallthroughContext="CasePattern">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#stay" />
        <DetectChar attribute="Keyword" context="CasePattern" char="(" />
        <DetectChar attribute="Comment" context="Comment" char="#" />
      </context>
      <context attribute="Pattern" lineEndContext="#stay" name="CasePattern">
        <IncludeRules context="jinja_boot##Jinja" />
        <DetectSpaces attribute="Normal Text" context="#stay" />
        <DetectChar attribute="Keyword" context="#pop!CaseExpr" char=")" beginRegion="caseexpr" />
        <DetectChar context="AssumeEscape" char="\" lookAhead="1" />
        <DetectChar attribute="Keyword" context="#stay" char="|" />
        <IncludeRules context="FindWord" />
        <IncludeRules context="FindPattern" />
        <WordDetect attribute="Control Flow" context="#pop#pop" String="esac" endRegion="case" />
        <DetectIdentifier attribute="Pattern" context="#stay" />
      </context>

      
      <context attribute="Normal Text" lineEndContext="#stay" name="CaseExpr" fallthroughContext="Command">
        <IncludeRules context="jinja_boot##Jinja" />
        <StringDetect attribute="Control Flow" context="#pop" String=";;&amp;" endRegion="caseexpr" />
        <Detect2Chars attribute="Control Flow" context="#pop" char=";" char1=";" endRegion="caseexpr" />
        <Detect2Chars attribute="Control Flow" context="#pop" char=";" char1="&amp;" endRegion="caseexpr" />
        <WordDetect context="#pop" String="esac" endRegion="caseexpr" lookAhead="1" />
        <IncludeRules context="Start" />
      </context>

    </contexts>

    <itemDatas>
      <itemData name="Normal Text" defStyleNum="dsNormal" />
      <itemData name="Comment" defStyleNum="dsComment" />
      <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" spellChecking="false" />
      <itemData name="String Transl." defStyleNum="dsString" />
      <itemData name="String Escape" defStyleNum="dsDataType" />
      <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="`" />
  </general>
</language>