hPdZddlZddlmZddlmZmZdgZGddeZdS)z pygments.formatters.groff ~~~~~~~~~~~~~~~~~~~~~~~~~ Formatter for groff output. :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N) Formatter) get_bool_opt get_int_optGroffFormattercLeZdZdZdZgdZgZdZdZdZ dZ dZ d Z d Z d S) ra Format tokens with groff escapes to change their color and font style. .. versionadded:: 2.11 Additional options accepted: `style` The style to use, can be a string or a Style subclass (default: ``'default'``). `monospaced` If set to true, monospace font will be used (default: ``true``). `linenos` If set to true, print the line numbers (default: ``false``). `wrap` Wrap lines to the specified number of characters. Disabled if set to 0 (default: ``0``). groff)rtroffroffc tj|fi|t|dd|_t|dd|_d|_t |dd|_d|_i|_ | dS)N monospacedTlinenosFrwrap) r__init__rr r _linenorr_linelenstyles _make_styles)selfoptionss /builddir/build/BUILD/imunify360-venv-2.5.2/opt/imunify360/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/groff.pyrzGroffFormatter.__init__-s4++7+++&w dCC#GY>>  33    cv|jrdnd}|jrdnd}|jrdnd}|jD]\}}dx}}|dr#|d |dz }d |z}|d r ||z }||z}|d r ||z }||z}|d r#|d|d z }d|z}||f|j|<dS)Nz\f[CR]z\f[R]z\f[CB]z\f[B]z\f[CI]z\f[I]colorz\m[{}]z\m[]bolditalicbgcolorz\M[{}]z\M[])r styleformatr)rregularrrttypendefstartends rrzGroffFormatter._make_styles:s #<))H O9yy"o;8: , ,KE4 ECG} $))$w-888mF| $ mH~ $mI $))$y/:::m!&DK   , ,rct}|jD](\}}|d||d)t|D]#}|d|zdz|zdz$dS)Nrz .defcolor z rgb # )setraddsortedwrite)routfilecolors_r"rs r_define_colorszGroffFormatter._define_colorsQsz * *GAtG}( 4=)))F^^ J JE MM,.9EADH I I I I J Jrc~|xjdz c_|d|jdkrdpd|jfzdS)Nz%s% 4d r&r)rr*)rr+s r _write_linenozGroffFormatter._write_lineno[sG   i4<1#4#=#CT\"RRSSSSSrct|d}|jrdnd}d}||jkrt dt j||jz D]/}|||jz||jz|jz}||dz|zz }0||jz}|dkr||| dz dz }||_n5|j|z|jkrd|z|z}||_n|}|xj|z c_|S)Nr&z rrr0)lenrstripr rrangemathfloorr)rlinelengthspacenewlineichunk remainders r _wrap_linezGroffFormatter._wrap_line`sT[[&&''</R DI  1dj$));<<== 2 2Qty[49TY)>>?EDL501*I1}}4 1 .. ) ]V #di / /e|t+G"DMMG MMV #MMrc6|ddddddddd d }|}|D]}t|t|kry|d d dd d}||d|d dzdz}|S)N\z\[u005C].z \[char46]'z\[u0027]`z\[u0060]~z\[u007E]unicode_escaper0xu00z\[u])replacer3encodedecodeupper)rtextcopycharunis r _escape_charszGroffFormatter._escape_charsws||D+..GC..GD+..GC--GC--  B BD4yyC ....kk"233VXXabb"WS%((UWW||D&3qrr7*:S*@AA rc r|||d|jr|||D]W\}}||jvr|j}||jv|j|\}}|dD]}|jdkr||}|r\|rZ| | d}|dkr+|d |||fn;|| | d| dr@|jr||d|_ |dd|_ Y|ddS)Nz .nf \f[CR] Trr&rz .fi)r.r*r r1rparent splitlinesrr?rRr4joinendswithr) r tokensourcer+r!valuer#r$r8rNs rformat_unencodedzGroffFormatter.format_unencodeds G$$$ &''' < (   w ' ' '' * *LE5t{** t{**U+JE3((.. * *9q==??400DISI--dkk$.?.?@@Drzz bggudC.@&A&ABBBMM$"4"4T[[5F5F"G"GHHH==&&*|***7333()  d+++() # *&  grN)__name__ __module__ __qualname____doc__namealiases filenamesrrr.r1r?rRrZrrrrs, D&&&GI   ,,,.JJJTTT .&     r) r^r6pip._vendor.pygments.formatterrpip._vendor.pygments.utilrr__all__rrbrrrfs 444444????????  XXXXXYXXXXXr