YBFjdZddlZddlmZmZmZmZmZmZm Z m Z m Z ddl m Z mZmZmZmZmZmZmZmZgdZGddeZGdd eZGd d eZeZGd d eZGddeZGddeZGddeZGddeZGddeZ GddeZ!GddeZ"GddeZ#dS)z pygments.lexers.dsls ~~~~~~~~~~~~~~~~~~~~ Lexers for various domain-specific languages. :copyright: Copyright 2006-present by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N) ExtendedRegexLexer RegexLexerbygroupswordsincludedefaultthisusingcombined) TextCommentOperatorKeywordNameStringNumber Punctuation Whitespace) ProtoBufLexer ZeekLexer PuppetLexerRslLexer MscgenLexerVGLLexer AlloyLexerPanLexer CrmshLexer ThriftLexer FlatlineLexer SnowballLexerc2eZdZdZdZdZddgZdgZdZde fd e fd e j fd e j fed d d efedd ejfdejfdeeje dfdeeje dfdeeje dfdefdefdejfdejfdejfdejfdejfdejfd efd!eeje efd"efgd#ejd$fed$gd%ejd$fed$gd%ed$fed$gd&Z d'S)(rz5 Lexer for Protocol Buffer definition files. zProtocol Bufferz/https://developers.google.com/protocol-buffers/protobufprotoz*.protoz1.4z[ \t]+z[,;{}\[\]()<>]z/(\\\n)?/(\n|(.|\n)*?[^\\]\n)z/(\\\n)?\*(.|\n)*?\*(\\\n)?/)importoptionoptionalrequiredrepeatedreservedrpackedctype extensionstomaxrpcreturnsoneofsyntax\bprefixsuffix)int32int64uint32uint64sint32sint64fixed32fixed64sfixed32sfixed64floatdoubleboolstringbytesr6(true|false)\bz(package)(\s+)packagez(message|extend)(\s+)messagez(enum|group|service)(\s+)typez\".*?\"z\'.*?\'z'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*z(\d+\.\d*|\.\d+|\d+[fF])[fF]?z(\-?(inf|nan))\bz0x[0-9a-fA-F]+[LlUu]*z0[0-7]+[LlUu]*z \d+[LlUu]*z[+-=]z([a-zA-Z_][\w.]*)([ \t]*)(=)z[a-zA-Z_][\w.]*z[a-zA-Z_][\w\.]*#pop [a-zA-Z_]\w*)rootrHrIrJN)!__name__ __module__ __qualname____doc__nameurlaliases filenames version_addedrrr Single MultilinerrTypeConstantr Namespace DeclarationrrFloatHexOctIntegerrr AttributerClasstokensBC:\PYTHON\_runtimes\venv\Lib\site-packages\pygments/lexers/dsls.pyrrs D ;C7#G IM #  , -w~ > ,g.? @ U<EJRWYYY   U>GLMMM\    0 1 ):J G G S % Xg): 6 6  C ) Xg): 6 6 @   7 F -v| < &, / %vz 2  + FN + x , Xdnj( ; ; =  &A! F!$.& 9 GFOO dj& 1 GFOO dF + GFOO W//FFFrerceZdZdZdZdZdgZdgZdgZdZ e de d d e j e d d fd e je d dfdeejedfdeejedfdeeeejeefe de ddefdefdefg defdefgdefdefdejfgde jfgd e j dfd e j fgd!e jdfd"e jfgd#ejdfedgd$ejdfedgd%efd&ejfd'ejfe d(d)*ejfe d+d)*ej!fe d,d)d)-ej"fgd.e#j$fd/e#j%fd0e#j&fgd1 Z'd2S)3rz+ For Thrift interface definitions. Thriftzhttps://thrift.apache.org/thriftz*.thriftzapplication/x-thrift2.1 whitespacecomments" stringescapedqsz\'sqsz(namespace)(\s+) namespacez*(enum|union|struct|service|exception)(\s+)classzE((?:(?:[^\W\d]|\$)[\w.\[\]$<>]*\s+)+?)((?:[^\W\d]|\$)[\w$]*)(\s*)(\()keywordsnumbersz[&=]z[:;,{}()<>\[\]]z[a-zA-Z_](\.\w|\w)*\n\s+#.*$z//.*?\n/\*[\w\W]*?\*/z\\([\\nrt"\'])rKz [^\\"\n]+'z [^\\\'\n]+z[a-z*](\.\w|\w)*rLz1(async|oneway|extends|throws|required|optional)\brGz(const|typedef)\b) cpp_namespace cpp_includecpp_type java_package cocoa_prefixcsharp_namespacedelphi_namespace php_namespace py_module perl_packageruby_namespacesmalltalk_categorysmalltalk_prefixxsd_all xsd_optional xsd_nillable xsd_namespace xsd_attrsrr3rF)voidrCbytei16i32i64rBrDbinarymaplistsetslistsenum)eBEGINEND __CLASS____DIR____FILE__ __FUNCTION____LINE__ __METHOD__ __NAMESPACE__abstractaliasandargsasassertbeginbreakcasecatchrrclonecontinuedeclaredefrdeldeletedodynamicelifelseelseifelsifend enddeclareendfor endforeachendif endswitchendwhileensureexceptexecfinallyrAforforeachfunctionglobalgotoif implementsr$ininline instanceof interfaceislambdamodulenativenewnextnilnotorpasspublicprintprivate protectedraiseredorescueretryregisterreturnselfsizeofstaticsuperswitch synchronizedthenr throw transienttryundefunlessunsigneduntilusevarvirtualvolatilewhenwhilewithxoryieldr4z1[+-]?(\d+\.\d+([eE][+-]?\d+)?|\.?\d+[eE][+-]?\d+)z[+-]?0x[0-9A-Fa-f]+z [+-]?[0-9]+) rMrkrlrnrorprqrrrsrtN)(rNrOrPrQrRrSrTrU mimetypesrVrrDoubler rWrrr[rr\r r rFunctionrrr rXEscaperrbrZrrYReservedrr]r^r`rcrdrerfrrTs D &CjG I'(IM GL ! ! GJ   6=((>5"A"A B FM88NE#B#B C *J77 F :,j997 DXeeDkk4=*h G G I GJ   GI   h   - #T *# (J  Z  g   !  1 2  . 6=& ) 6= ) 6=& ) FM * !$.& 9 GFOO dj& 1 GFOO B7 K  0 1 !7#6 7 U( 16 777  U"'(((\   UE$U%,,,& ' #% NB6< P #VZ 0 V^ , m[[FFFrerceZdZdZdZdZddgZddgZdZd Z d Z d Z e d e d e de de de de de de dde jfe dg defdefdeeefgdefgdejfdejfdeejeejfgeddd !ejfged"d #ejfd$eejeejeejfd%eeee jeeeejfd&eeee eefd'eeeejee jfged(d #efd)efd*ejfd+eejee jfgd,ed-fd.ejd/fd0ejfd1e fd2e fd3e fd4e zd5ze j!fe d6ze j"fe d ze j"fd7e j#fe d8ze zd9zefg d:efd;efde$fd?e$fgd@ee e$fdAe fgdBej%fdCej%fd,edDfdEefgdBej%fdFejdDfdEejfgdG Z&dHS)Irz For Zeek scripts. Zeekzhttps://www.zeek.org/zeekbroz*.zeekz*.broz2.5z [0-9a-fA-F]z(((\d*\.?\d+)|(\d+\.?\d*))([eE][-+]?\d+)?z[A-Za-z0-9][-A-Za-z0-9]*rkrl directives attributestypesrsliterals operators punctuationz2((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(?=\s*\() identifiersrurvz(\\)(\n)rwz)@(load-plugin|load-sigs|load|unload)\b.*$z=@(DEBUG|DIR|FILENAME|deprecated|if|ifdef|ifndef|else|endif)\bz(@prefixes)(\s*)((\+?=).*)$)redefprioritylogr&radd_func delete_func expire_func read_expire write_expire create_expirer persistentrotate_interval rotate_sizeencrypt raw_output mergeable error_handler type_column deprecated&r3r4)anyenumrecordrtablevectorrhookeventaddrrCcountrBfileintintervalpatternportrDsubnettimerFzA(opaque)(\s+)(of)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)\bzR(type)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(\s*)(:)(\s*)\b(record|enum)\bz<(type)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)(\s*)(:)zI(redef)(\s+)(record|enum)(\s+)((?:[A-Za-z_]\w*)(?:::(?:[A-Za-z_]\w*))*)\b)rexportrrrrrrrr fallthroughrrraddrrtimeoutschedulez (print)\bz(global|local|const|option)\bz4(module)(\s+)(([A-Za-z_]\w*)(?:::([A-Za-z_]\w*))*)\brmrDz/(?=.*/)regexz(T|F)\bz \d{1,5}/(udp|tcp|icmp|unknown)\bz(\d{1,3}.){3}(\d{1,3})\bzH\[([0-9a-fA-F]{0,4}:){2,7}([0-9a-fA-F]{0,4})?((\d{1,3}.){3}(\d{1,3}))?\]z0[xX]z+\bz!\s*(day|hr|min|sec|msec|usec)s?\bz(\d+)\bz(\.z)+z[!%*/+<=>~|&^-]z([-+=&|]{2}|[+=!><-]=)z(in|as|is|of)\bz\??\$z [{}()\[\],;.]z[?:]z([a-zA-Z_]\w*)(::)rLz\\.z%-?[0-9]*(\.[0-9]+)?[DTd-gsx]rK./) rMrkrlrrrrsrrrrrDr/N)'rNrOrPrQrRrSrTrUrV_hex_float_hrrrrrr r PreprocrrPseudorYrWordrbr\r[rRegexrZrr^r]r`rrrcrdrerfrrs D !CuoG7#IM D 8F $B GL ! ! GJ   GL ! ! GL ! ! GG   GJ   GJ   GK GM " " B   GM " "  J  Z ((444 5 g  :7? K Mw _ +XXgoGO.-.- . U1 E +++ ^   UC   \  Rz8=*gl[[ ]c*dj*hPZ\c\hii kM*dJII KZ*glJ SS U% .U3     7 # -w/B C D*JGG I  68 $ &, 0 ) *1& 9)& 1YZ` a_v %vz 2 : :FL I e^V\ *  (&[2  %v .5 <  * & 1  / x  { + k "  #HHT;$?$? @ d # V] # -v} = 66 " 6N  V] # 6< ( 6<  QMMFFFrerc eZdZdZdZdZdgZdgZdZe de de d e d e d e d d e fde fgde e e fde jfgdefdejfgdejfde eje ee fdejfgdejfdejfdejfdejfdejjfdejfgedddefgd efd!efgd"Zd#S)$rz' For Puppet configuration DSL. Puppetzhttps://puppet.com/puppetz*.pp1.6rlrsnamesrtrstringsz []{}:(),;[]rvz (\s*)(#.*)$z/(\\\n)?[*](.|\n)*?[*](\\\n)?/z(=>|\?|<|>|=|\+|-|/|\*|~|!|\|)z(in|and|or|not)\brLz(\$\S+)(\[)(\S+)(\])z\$\S+z'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?z\d+[eE][+-]?[0-9]+j?z 0[0-7]+j?z0[xX][a-fA-F0-9]+z\d+Lz\d+j?)mabsentalertrauditaugeasbeforercheckrrcomputer configured containedcreate_resourcescritcrondebugrdefinedefined directoryrremergerrr extlookupfailfalser# filebucket fqdn_randgeneratehostrr$rinfoinheritsinline_template installedrk5loginlatestlinkloglevelmacauthorization mailaliasmaillistmcxmd5mountmountednagios_commandnagios_contactnagios_contactgroup nagios_hostnagios_hostdependencynagios_hostescalationnagios_hostextinfonagios_hostgroupnagios_servicenagios_servicedependencynagios_serviceescalationnagios_serviceextinfonagios_servicegroupnagios_timeperiodnodenoopnoticenotifyrHpresentpurgedrealizeregsubst resourcesrolerouterrunningr.scheduled_tasksearch selboolean selmoduleservicesha1 shellquotesplitsprintfssh_authorized_keysshkeystagestopped subscribetagtaggedtemplatetidytruer unmounteduser versioncmpvlanwarningyumrepozfszonezpoolz(?i)r3r4z "([^"])*"z '(\\'|[^'])*')rMrlrr=rtrsr>N)rNrOrPrQrRrSrTrUrVrrrrr rXrr7rraVariablerrr]r_r^r`Longrrrcrdrerfrr^s D CjGIM GJ   GJ   GG   GI   GK GI   [ ) Z   XXj':: ; .0A B / 9 !8= 1 dn - $hht}k/5{'D'D E t} %  8 F $fl 3 6: & !6: . fn) * v~ & U,"(-777./  <6 " v & KJJFFFrercxeZdZdZdZdZdgZdgZdgZdZ e j e j zZ ded d d efd ejfd efdefdefdefdeeejeejfdeeejeeeefdejfdejfdefdejfdefdejfdejfdejfdefdefgiZ dZ!dS)rz RSL is the formal specification language used in RAISE (Rigorous Approach to Industrial Software Engineering) method. RSLz"http://en.wikipedia.org/wiki/RAISErslz*.rslztext/rsl2.0rM)JBoolCharIntNatRealr Unitabsallalwaysrraxiomcardrchannelchaosrr devt_relationdomelemsrrrexistsextendrSrhdhiderrrinds initialiser$interisinlenletlocal ltl_assertionobjectofoutpostprereadrealrngschemeskipstopswaprtheory test_casetltransition_systemrrJunionrrvaluevariablerrwritez~isinz-inflistz-infsetz-listz-setr3r4z(variable|value)\bz--.*?\nz<:.*?:>z \{!.*?!\} /\*.*?\*/z^([ \t]*)([\w]+)([ \t]*)(:[^:])z5(^[ \t]*)([\w]+)([ \t]*)(\([\w\s,]*\))([ \t]*)(is|as)z \b[A-Z]\w*\brGz".*"z\'.\'zq(><|->|-m->|/\\|<=|<<=|<\.|\|\||\|\^\||-~->|-~m->|\\/|>=|>>|\.>|\+\+|-\\|<->|=>|:-|~=|\*\*|<<|>>=|\+>|!!|\|=\||#)z [0-9]+\.[0-9]+([eE][0-9]+)?[fd]?z 0x[0-9a-f]+[0-9]+rvr0cJtjd|tjdSdS)zP Check for the most common text in the beginning of a RSL file. zscheme\s*.*?=\s*class\s*typeNg?)rerI)texts rf analyse_textzRslLexer.analyse_texts) 94dBD A A M3 N MreN)"rNrOrPrQrRrSrTrUrrVr MULTILINEDOTALLflagsrrr\r rrrrr rYrZrrrrr]r^r`rcrrdrerfrrsz D .CgG I IM L29 $E  U !&e 5 5 5 #G$7 8  !  ! 7 # 7 # /* z4=2:2: ; E Xj$-TW&& 'gl +  0 1 f  v{ #F  1&, ? VZ (  ' Z 4LG$ &FPrerc 8eZdZdZdZdZddgZdgZdZdZ d e j fd e j fd ejfd e fd efde jfe e jfdedfdefedg dedfe dze zee jeeeefdefedgdejfdejfdefgdZdS)rz For Mscgen files. Mscgenz!http://www.mcternan.me.uk/mscgen/mscgenmscz*.mscr<z(\w+|"(?:\\"|[^"])*")zmsc\bzO(hscale|HSCALE|width|WIDTH|wordwraparcs|WORDWRAPARCS|arcgradient|ARCGRADIENT)\bz)(abox|ABOX|rbox|RBOX|box|BOX|note|NOTE)\bz (\.|-|\|){3}zT(?:-|=|\.|:){2}|<<=>>|<->|<=>|<<>>|<:>|->|=>>|>>|=>|:>|-x|-X|<-|<<=|<<|<=|<:|x-|X-|=z\*z\[attrsz \{|\}|,|;rlz\]rKz (\s*)(=)(\s*),z (?://|#).*?\nz/\*(?:.|\n)*?\*/z [ \t\r\n]+)rMrrlN)rNrOrPrQrRrSrTrUrV_varrrYrPropertyrr7Builtinrrrrrarrr rWrXrcrdrerfrrs> D -CG IM #Dw| $,-1] <:8= I g &)+3 4 DL ! 4= ! K ) ; ' GJ  % *K ( $ $t + Xdnj(J ;  GJ    w~ . '"3 4 J ' ;""FFFrerc eZdZdZdZdZdgZdgZdZe j e j ze j zZ ddejfd ejfd efd ejfd efd efdeeejfdefdefdefdefg iZdS)rz, For SampleManager VGL source code. VGLz-http://www.thermoscientific.com/samplemanagervglz*.rpfr<rMz \{[^}]*\}rz(if|then|else|endif|while|do|endwhile|and|or|prompt|object|create|on|line|with|global|routine|value|endroutine|constant|global|set|join|library|compile_option|file|exists|create|copy|delete|enable|windows|name|notprotected)(?! *[=<>.,()])z$(true|false|null|empty|error|locked)z[~^*#!%&\[\]()<>|+=:;,./?-]z"[^"]*"z(\.)([a-z_$][\w$]*)z&[0-9][0-9]*(\.[0-9]+(e[+\-]?[0-9]+)?)?z [a-z_$][\w$]*z[\r\n]+rvN)rNrOrPrQrRrSrTrUrVrrr IGNORECASErr rXrrZrrrrrarrrcrdrerfrr%s D 9CgG IM L29 $r} 4E  7, - ) *I   5g6F G +X 6  #XXh%G%G H 6 ? t $  $ Z  FFFrerceZdZdZdZdZdgZdgZdgZdZ e j e j zZ dZd Zd efZd ed feefed efded fgeeed fgeded feed fgedeed fgdejfdejfdejfedeejedfdeejedfdejfdejfdefdefdefdefdefdej fdeeedfd eeed!fd"efd#efeefd$efd%e!j"feefd&efgd'Z#d(S))rz For Alloy source code. Alloyzhttp://alloy.mit.edualloyz*.alsz text/x-alloyrz[a-zA-Z_][\w]*"*z"\b(\\\\|\\[^\\]|[^"\\])*"z[^\S\n]+z (extends)\brKr\{funz--.*?$z//.*?$rz(module|open)(\s+)rz(sig|enum)(\s+)sigz(iden|univ|none)\bz (int|Int)\bz2(var|this|abstract|extends|set|seq|one|lone|let)\bz"(all|some|no|sum|disj|when|else)\bz-(run|check|for|but|exactly|expect|as|steps)\bz)(always|after|eventually|until|release)\bz,(historically|before|once|since|triggered)\bz(and|or|implies|iff|in)\bz(fun|pred|assert)(\s+)z (fact)(\s+)factz&!|#|&&|\+\+|<<|>>|>=|<=>|<=|\.\.|\.|->z[-+/*%=<>&!^|~{}\[\]().\';]z[:,]rru)rrrrrMN)$rNrOrPrQrRrSrTrUrrVrrrriden_rex string_rexr text_tuplerrrrrrr rWrXrr[r\rZrYr7rr`rcrdrerfrrFs D CiG I IM L29 $E"H.Jz*JWf - t   ;  Hf %    tV $  Hf % tV $ GENN  (  '  ' 7, -  "HHW-> $K$K  '*=z!J!JE R "G$4 5 W\ * BG L 2G < =w G 97 C z>=racosrzall-butzall-with-defaultszall-with-numeric-defaultrasinatanavgz avg-windowz bin-centerz bin-countcallzcategory-countceilcondz cond-windowconscoscoshr"z diff-windowdivz ensure-valuezensure-weighted-valueepochz epoch-dayz epoch-fieldsz epoch-hourzepoch-millisecondz epoch-minutez epoch-monthz epoch-secondz epoch-weekdayz epoch-yearexpffieldz field-propfieldsfilterrfloorheadrrintegerlanguager levenshteinzlinear-regressionrlnr log10rrzmatches?r.maximumrdmeanmedianminminimummissingz missing-countzmissing? missing_countmodmode normalizernth occurrencesr percentilezpercentile-label populationzpopulation-fractionpow preferredz preferred?zquantile-labelrandzrand-intz random-valuezre-quoterrz replace-firstrestroundz row-numberz segment-labelrsha256sinsinhsqrtsquarezstandard-deviationstandard_deviationstrsubssumz sum-squaresz sum-window sum_squaressummaryz summary-noz summary-strtailtantanhz to-degreesz to-radiansvariance vectorizezweighted-random-valuewindowwinnowzwithin-percentiles?zz-scorez(?!#)[\w!$%*+<=>?/.#-]+rMz[,]+rvz -?\d+\.\d+z-?\d+z 0x-?[a-f\d]+z"(\\\\|\\[^\\]|[^"\\])*"z \\(.|[a-z]+)_ rFz(?<=\()z(\(|\))N)rNrOrPrQrRrSrTrUrrV special_formsbuiltins valid_namer rrr]r`r^rrSymbolrrrrrrrrcrdrerfrrs  D 0ClGI"#IMMH2,J  dO Z FL ) v~ & fj ))& 1 fk *6= !U= - - -w 7U8C ( ( ($, 7* $dm 4 ' %= !FFFrercJeZdZdZdZdZdgZdgZdZdZ dZ d Z d Z d Z d ejfd ejfedgde defdejfdejdfdefdejfdejfdefeddejfeddejdfeddejfeddejfde d e d!eejeejfd"e d#e d$e fd%efgd&ed'fed(ded)fedgd*e d+fgd*e d,fgd-Z d0d/Z!d.S)1r z) Lexer for Snowball source code. Snowballzhttps://snowballstem.org/snowballz*.sblrZz\n\r\t c R|tj|fi|dSN)_reset_stringescapesr__init__)roptionss rfrzSnowballLexer.__init__ls3 !!####D44G44444rec"d|_d|_dS)Nry)_start_end)rs rfrz"SnowballLexer._reset_stringescapesps  recfd}|S)Nc3K|}|}tjdtj|jdj}tjdtj|jdj}d} }|t|kr|r|||}||dztj |dfV|ddkrT||dztj |dfV|j n||dztj |dfV|}|||}||ztj |fV|d|jkr d|j d<n*|}d }|t|k||z|_dS) Nz([^]*)(.)rryrT)startr4rcompilerrrrrrrWstackpoprrpos) lexerrctxsrrDrr do_stringdo_string_firsts rfcallbackz'SnowballLexer._string..callbackus A;;==DZ Fry'>'> F F FGGMFZ Dry'<'< D D DEEKFC'ID //&"F4--Eekk!nn,fmU[[^^KKKK{{1~~,,%++a..0&-QOOOO ekk!nn,fmU[[^^KKKK))++CtS))%++--' EEEE;;q>>UZ//$,CIbMiikk !D //"%))++oCGGGrerd)rrs` rf_stringzSnowballLexer._stringts# & & & & &2rec|d|_|d|_ttjt tjt tj|||S)N) r4rrrrrrrr)rrrs rf_stringescapeszSnowballLexer._stringescapess]{{1~~ [[^^ 'x(*fmZ ''',eS:: :rezlen\bzlenof\broot1[z]+z\d+ryrDz[()]rxz//.*z)[!*+\-/<=>]=|[-=]>|<[+-]|[$*+\-/<=>?\[\]])rgethexamongrLdecimal backwardmoder3rF)r>booleansintegersroutines externals groupingsr)!rrrrhopnonrrrrRrlooprtestrrSunsetatmarkattachrgopastinsertrepeatrtomarkatleastatlimitreversesetmarktolimitsetlimit backwards substring)sizelimitcursormaxintminintz(stringdef\b)([z]*)([^z]+)z(stringescapes\b)([z]*)(.)([rz [A-Za-z]\w*r.rK)rlenof)rrz[^']*'TF)rMrrrDrNcV|tj|||Sr)rrget_tokens_unprocessed)rrcontexts rfrz$SnowballLexer.get_tokens_unprocesseds) !!###!8tWMMMre)NN)"rNrOrPrQrRrSrTrUrV_wsrrrrrrrr7rrrr`rrWrr rXrrrrrrcrrdrerfr r _s D %ClG IM C5558:::t| $  ' GG   #\\\: & V^ $ 6=( + k "  1 2 gn % 98 D U$,1333   U!).000  } .U. 7< === ]  UB!!! \ 4 3 33 3 3 3 Xg& FM B B D K ( U#E 2 2 2D % ' GG     &  ' [00FdNNNNNNrer )$rQrpygments.lexerrrrrrrr r r pygments.tokenr r rrrrrrr__all__rrrBroLexerrrrrrrrrr rdrerfrsk ,,,,,,,,,,,,,,,,,,,,,,$$$$$$$$$$$$$$$$$$$$$$ J J J :::::J:::zfffff*fffR[[[[[ [[[| TTTTT*TTTn<<<<<z<<<~.....*...bzBAAAAAAAAHAAAAAzAAAHBBBBBBBBJIIIIIJIIIXkNkNkNkNkN&kNkNkNkNkNre