�
|�e�- � �t � d Z ddlmZ ddlmZ ddlmZ ddgZ G d� d� Z G d � de� Z G d
� de � Z
y)a�
pygments.formatters.terminal256
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Formatter for 256-color terminal output with ANSI sequences.
RGB-to-XTERM color conversion routines adapted from xterm256-conv
tool (http://frexx.de/xterm-256-notes/data/xterm256-conv2.tar.bz2)
by Wolfgang Frisch.
Formatter version 1.
:copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
� )� Formatter)�codes)�
ansicolors�Terminal256Formatter�TerminalTrueColorFormatterc �, � e Zd Zdd�Zd� Zd� Zd� Zd� Zy)�EscapeSequenceNc �J � || _ || _ || _ || _ || _ y �N)�fg�bg�bold� underline�italic)�selfr r
r r r s �A/usr/lib/python3/dist-packages/pygments/formatters/terminal256.py�__init__zEscapeSequence.__init__# s% � ��������� �"������ c �H � t |� rddj |� z dz S y)Nz[�;�m� )�len�join�r �attrss r �escapezEscapeSequence.escape* s$ � ��u�:��S�X�X�e�_�,�s�2�2�r c �� � g }| j �v| j t v rCt | j j dd� }d|v rd| _ |j |dd � n!|j
ddd | j z f� | j ��| j t v rMt | j j dd� }|j t t |dd � d
z � � n!|j
ddd | j z f� | j r|j d� | j r|j d
� | j r|j d� | j |� S )N�ansir z;01mT� � �38�5z%i�
�48�01�04�03)
r r r �replacer �append�extendr
�str�intr r r )r r �escs r �color_stringzEscapeSequence.color_string/ s# � ����7�7���w�w�*�$��D�G�G�O�O�F�2�6�7���S�=� $�D�I����S��1�X�&����d�C������8�9��7�7���w�w�*�$��D�G�G�O�O�F�2�6�7�����S��S��1�X��r�!1�2�3����d�C������8�9��9�9��L�L����>�>��L�L����;�;��L�L����{�{�5�!�!r c
�f � g }| j rX|j ddt | j d � t | j d � t | j d � f� | j rX|j ddt | j d � t | j d � t | j d � f� | j r|j d� | j r|j d� | j r|j d � | j |� S )
Nr" |