Created
January 5, 2025 22:34
-
-
Save cppio/9d260c9579773a2fadf5543e6a3ff1b8 to your computer and use it in GitHub Desktop.
ANSI escape codes in Python
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from collections import namedtuple | |
colors = namedtuple("colors", "black red green yellow blue magenta cyan white default")(0, 1, 2, 3, 4, 5, 6, 7, 9) | |
brightcolors = namedtuple("brightcolors", "black red green yellow blue magenta cyan white")(60, 61, 62, 63, 64, 65, 66, 67) | |
color = namedtuple("color", "r g b") | |
del namedtuple | |
def ansi(*, bold=None, underlined=None, inverse=None, foreground=None, background=None): | |
params = [] | |
if bold is not None: | |
assert isinstance(bold, bool) | |
params.append("1" if bold else "22") | |
if underlined is not None: | |
assert isinstance(underlined, bool) | |
params.append("4" if underlined else "24") | |
if inverse is not None: | |
assert isinstance(inverse, bool) | |
params.append("7" if inverse else "27") | |
if foreground is not None: | |
if isinstance(foreground, color): | |
assert isinstance(foreground.r, int) and isinstance(foreground.g, int) and isinstance(foreground.b, int) and 0 <= foreground.r < 256 and 0 <= foreground.g < 256 and 0 <= foreground.b < 256 | |
params.extend(str(i) for i in (38, 2) + foreground) | |
else: | |
assert foreground in colors or foreground in brightcolors | |
params.append(str(foreground + 30)) | |
if background is not None: | |
if isinstance(background, color): | |
assert isinstance(background.r, int) and isinstance(background.g, int) and isinstance(background.b, int) and 0 <= background.r < 256 and 0 <= background.g < 256 and 0 <= background.b < 256 | |
params.extend(str(i) for i in (48, 2) + background) | |
else: | |
assert background in colors or background in brightcolors | |
params.append(str(background + 40)) | |
if len(params) > 0: | |
return "\x1b[" + ";".join(params) + "m" | |
return "" | |
def reset(): | |
ansi(bold=False, underlined=False, inverse=False, foreground=colors.default, background=colors.default) | |
def bold(string): | |
return ansi(bold=True) + string + ansi(bold=False) | |
def underlined(string): | |
return ansi(underlined=True) + string + ansi(underlined=False) | |
def inverse(string): | |
return ansi(inverse=True) + string + ansi(inverse=False) | |
def foreground(color, string): | |
return ansi(foreground=color) + string + ansi(foreground=colors.default) | |
def background(color, string): | |
return ansi(background=color) + string + ansi(background=colors.default) | |
if __name__ == "__main__": | |
print("styles:") | |
print(bold("bold")) | |
print(underlined("underlined")) | |
print(inverse("inverse")) | |
print("\ncolors:") | |
for name in colors._fields: | |
print(end=background(getattr(colors, name), " ")) | |
print() | |
for name in brightcolors._fields: | |
print(end=background(getattr(brightcolors, name), " ")) | |
print("\n\ncolor cube:") | |
for g in range(0, 256, 32): # type: int | |
for r in range(0, 256, 32): # type: int | |
for b in range(0, 256, 32): # type: int | |
print(end=background(color(r, g, b), " ")) | |
print(end=" ") | |
print() | |
print("\ngrayscale ramp:") | |
for v in range(0, 256, 2): # type: int | |
print(end=background(color(v, v, v), " ")) | |
print() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
styles: | |
[1mbold[22m | |
[4munderlined[24m | |
[7minverse[27m | |
colors: | |
[40m [49m[41m [49m[42m [49m[43m [49m[44m [49m[45m [49m[46m [49m[47m [49m[49m [49m | |
[100m [49m[101m [49m[102m [49m[103m [49m[104m [49m[105m [49m[106m [49m[107m [49m | |
color cube: | |
[48;2;0;0;0m [49m[48;2;0;0;32m [49m[48;2;0;0;64m [49m[48;2;0;0;96m [49m[48;2;0;0;128m [49m[48;2;0;0;160m [49m[48;2;0;0;192m [49m[48;2;0;0;224m [49m [48;2;32;0;0m [49m[48;2;32;0;32m [49m[48;2;32;0;64m [49m[48;2;32;0;96m [49m[48;2;32;0;128m [49m[48;2;32;0;160m [49m[48;2;32;0;192m [49m[48;2;32;0;224m [49m [48;2;64;0;0m [49m[48;2;64;0;32m [49m[48;2;64;0;64m [49m[48;2;64;0;96m [49m[48;2;64;0;128m [49m[48;2;64;0;160m [49m[48;2;64;0;192m [49m[48;2;64;0;224m [49m [48;2;96;0;0m [49m[48;2;96;0;32m [49m[48;2;96;0;64m [49m[48;2;96;0;96m [49m[48;2;96;0;128m [49m[48;2;96;0;160m [49m[48;2;96;0;192m [49m[48;2;96;0;224m [49m [48;2;128;0;0m [49m[48;2;128;0;32m [49m[48;2;128;0;64m [49m[48;2;128;0;96m [49m[48;2;128;0;128m [49m[48;2;128;0;160m [49m[48;2;128;0;192m [49m[48;2;128;0;224m [49m [48;2;160;0;0m [49m[48;2;160;0;32m [49m[48;2;160;0;64m [49m[48;2;160;0;96m [49m[48;2;160;0;128m [49m[48;2;160;0;160m [49m[48;2;160;0;192m [49m[48;2;160;0;224m [49m [48;2;192;0;0m [49m[48;2;192;0;32m [49m[48;2;192;0;64m [49m[48;2;192;0;96m [49m[48;2;192;0;128m [49m[48;2;192;0;160m [49m[48;2;192;0;192m [49m[48;2;192;0;224m [49m [48;2;224;0;0m [49m[48;2;224;0;32m [49m[48;2;224;0;64m [49m[48;2;224;0;96m [49m[48;2;224;0;128m [49m[48;2;224;0;160m [49m[48;2;224;0;192m [49m[48;2;224;0;224m [49m | |
[48;2;0;32;0m [49m[48;2;0;32;32m [49m[48;2;0;32;64m [49m[48;2;0;32;96m [49m[48;2;0;32;128m [49m[48;2;0;32;160m [49m[48;2;0;32;192m [49m[48;2;0;32;224m [49m [48;2;32;32;0m [49m[48;2;32;32;32m [49m[48;2;32;32;64m [49m[48;2;32;32;96m [49m[48;2;32;32;128m [49m[48;2;32;32;160m [49m[48;2;32;32;192m [49m[48;2;32;32;224m [49m [48;2;64;32;0m [49m[48;2;64;32;32m [49m[48;2;64;32;64m [49m[48;2;64;32;96m [49m[48;2;64;32;128m [49m[48;2;64;32;160m [49m[48;2;64;32;192m [49m[48;2;64;32;224m [49m [48;2;96;32;0m [49m[48;2;96;32;32m [49m[48;2;96;32;64m [49m[48;2;96;32;96m [49m[48;2;96;32;128m [49m[48;2;96;32;160m [49m[48;2;96;32;192m [49m[48;2;96;32;224m [49m [48;2;128;32;0m [49m[48;2;128;32;32m [49m[48;2;128;32;64m [49m[48;2;128;32;96m [49m[48;2;128;32;128m [49m[48;2;128;32;160m [49m[48;2;128;32;192m [49m[48;2;128;32;224m [49m [48;2;160;32;0m [49m[48;2;160;32;32m [49m[48;2;160;32;64m [49m[48;2;160;32;96m [49m[48;2;160;32;128m [49m[48;2;160;32;160m [49m[48;2;160;32;192m [49m[48;2;160;32;224m [49m [48;2;192;32;0m [49m[48;2;192;32;32m [49m[48;2;192;32;64m [49m[48;2;192;32;96m [49m[48;2;192;32;128m [49m[48;2;192;32;160m [49m[48;2;192;32;192m [49m[48;2;192;32;224m [49m [48;2;224;32;0m [49m[48;2;224;32;32m [49m[48;2;224;32;64m [49m[48;2;224;32;96m [49m[48;2;224;32;128m [49m[48;2;224;32;160m [49m[48;2;224;32;192m [49m[48;2;224;32;224m [49m | |
[48;2;0;64;0m [49m[48;2;0;64;32m [49m[48;2;0;64;64m [49m[48;2;0;64;96m [49m[48;2;0;64;128m [49m[48;2;0;64;160m [49m[48;2;0;64;192m [49m[48;2;0;64;224m [49m [48;2;32;64;0m [49m[48;2;32;64;32m [49m[48;2;32;64;64m [49m[48;2;32;64;96m [49m[48;2;32;64;128m [49m[48;2;32;64;160m [49m[48;2;32;64;192m [49m[48;2;32;64;224m [49m [48;2;64;64;0m [49m[48;2;64;64;32m [49m[48;2;64;64;64m [49m[48;2;64;64;96m [49m[48;2;64;64;128m [49m[48;2;64;64;160m [49m[48;2;64;64;192m [49m[48;2;64;64;224m [49m [48;2;96;64;0m [49m[48;2;96;64;32m [49m[48;2;96;64;64m [49m[48;2;96;64;96m [49m[48;2;96;64;128m [49m[48;2;96;64;160m [49m[48;2;96;64;192m [49m[48;2;96;64;224m [49m [48;2;128;64;0m [49m[48;2;128;64;32m [49m[48;2;128;64;64m [49m[48;2;128;64;96m [49m[48;2;128;64;128m [49m[48;2;128;64;160m [49m[48;2;128;64;192m [49m[48;2;128;64;224m [49m [48;2;160;64;0m [49m[48;2;160;64;32m [49m[48;2;160;64;64m [49m[48;2;160;64;96m [49m[48;2;160;64;128m [49m[48;2;160;64;160m [49m[48;2;160;64;192m [49m[48;2;160;64;224m [49m [48;2;192;64;0m [49m[48;2;192;64;32m [49m[48;2;192;64;64m [49m[48;2;192;64;96m [49m[48;2;192;64;128m [49m[48;2;192;64;160m [49m[48;2;192;64;192m [49m[48;2;192;64;224m [49m [48;2;224;64;0m [49m[48;2;224;64;32m [49m[48;2;224;64;64m [49m[48;2;224;64;96m [49m[48;2;224;64;128m [49m[48;2;224;64;160m [49m[48;2;224;64;192m [49m[48;2;224;64;224m [49m | |
[48;2;0;96;0m [49m[48;2;0;96;32m [49m[48;2;0;96;64m [49m[48;2;0;96;96m [49m[48;2;0;96;128m [49m[48;2;0;96;160m [49m[48;2;0;96;192m [49m[48;2;0;96;224m [49m [48;2;32;96;0m [49m[48;2;32;96;32m [49m[48;2;32;96;64m [49m[48;2;32;96;96m [49m[48;2;32;96;128m [49m[48;2;32;96;160m [49m[48;2;32;96;192m [49m[48;2;32;96;224m [49m [48;2;64;96;0m [49m[48;2;64;96;32m [49m[48;2;64;96;64m [49m[48;2;64;96;96m [49m[48;2;64;96;128m [49m[48;2;64;96;160m [49m[48;2;64;96;192m [49m[48;2;64;96;224m [49m [48;2;96;96;0m [49m[48;2;96;96;32m [49m[48;2;96;96;64m [49m[48;2;96;96;96m [49m[48;2;96;96;128m [49m[48;2;96;96;160m [49m[48;2;96;96;192m [49m[48;2;96;96;224m [49m [48;2;128;96;0m [49m[48;2;128;96;32m [49m[48;2;128;96;64m [49m[48;2;128;96;96m [49m[48;2;128;96;128m [49m[48;2;128;96;160m [49m[48;2;128;96;192m [49m[48;2;128;96;224m [49m [48;2;160;96;0m [49m[48;2;160;96;32m [49m[48;2;160;96;64m [49m[48;2;160;96;96m [49m[48;2;160;96;128m [49m[48;2;160;96;160m [49m[48;2;160;96;192m [49m[48;2;160;96;224m [49m [48;2;192;96;0m [49m[48;2;192;96;32m [49m[48;2;192;96;64m [49m[48;2;192;96;96m [49m[48;2;192;96;128m [49m[48;2;192;96;160m [49m[48;2;192;96;192m [49m[48;2;192;96;224m [49m [48;2;224;96;0m [49m[48;2;224;96;32m [49m[48;2;224;96;64m [49m[48;2;224;96;96m [49m[48;2;224;96;128m [49m[48;2;224;96;160m [49m[48;2;224;96;192m [49m[48;2;224;96;224m [49m | |
[48;2;0;128;0m [49m[48;2;0;128;32m [49m[48;2;0;128;64m [49m[48;2;0;128;96m [49m[48;2;0;128;128m [49m[48;2;0;128;160m [49m[48;2;0;128;192m [49m[48;2;0;128;224m [49m [48;2;32;128;0m [49m[48;2;32;128;32m [49m[48;2;32;128;64m [49m[48;2;32;128;96m [49m[48;2;32;128;128m [49m[48;2;32;128;160m [49m[48;2;32;128;192m [49m[48;2;32;128;224m [49m [48;2;64;128;0m [49m[48;2;64;128;32m [49m[48;2;64;128;64m [49m[48;2;64;128;96m [49m[48;2;64;128;128m [49m[48;2;64;128;160m [49m[48;2;64;128;192m [49m[48;2;64;128;224m [49m [48;2;96;128;0m [49m[48;2;96;128;32m [49m[48;2;96;128;64m [49m[48;2;96;128;96m [49m[48;2;96;128;128m [49m[48;2;96;128;160m [49m[48;2;96;128;192m [49m[48;2;96;128;224m [49m [48;2;128;128;0m [49m[48;2;128;128;32m [49m[48;2;128;128;64m [49m[48;2;128;128;96m [49m[48;2;128;128;128m [49m[48;2;128;128;160m [49m[48;2;128;128;192m [49m[48;2;128;128;224m [49m [48;2;160;128;0m [49m[48;2;160;128;32m [49m[48;2;160;128;64m [49m[48;2;160;128;96m [49m[48;2;160;128;128m [49m[48;2;160;128;160m [49m[48;2;160;128;192m [49m[48;2;160;128;224m [49m [48;2;192;128;0m [49m[48;2;192;128;32m [49m[48;2;192;128;64m [49m[48;2;192;128;96m [49m[48;2;192;128;128m [49m[48;2;192;128;160m [49m[48;2;192;128;192m [49m[48;2;192;128;224m [49m [48;2;224;128;0m [49m[48;2;224;128;32m [49m[48;2;224;128;64m [49m[48;2;224;128;96m [49m[48;2;224;128;128m [49m[48;2;224;128;160m [49m[48;2;224;128;192m [49m[48;2;224;128;224m [49m | |
[48;2;0;160;0m [49m[48;2;0;160;32m [49m[48;2;0;160;64m [49m[48;2;0;160;96m [49m[48;2;0;160;128m [49m[48;2;0;160;160m [49m[48;2;0;160;192m [49m[48;2;0;160;224m [49m [48;2;32;160;0m [49m[48;2;32;160;32m [49m[48;2;32;160;64m [49m[48;2;32;160;96m [49m[48;2;32;160;128m [49m[48;2;32;160;160m [49m[48;2;32;160;192m [49m[48;2;32;160;224m [49m [48;2;64;160;0m [49m[48;2;64;160;32m [49m[48;2;64;160;64m [49m[48;2;64;160;96m [49m[48;2;64;160;128m [49m[48;2;64;160;160m [49m[48;2;64;160;192m [49m[48;2;64;160;224m [49m [48;2;96;160;0m [49m[48;2;96;160;32m [49m[48;2;96;160;64m [49m[48;2;96;160;96m [49m[48;2;96;160;128m [49m[48;2;96;160;160m [49m[48;2;96;160;192m [49m[48;2;96;160;224m [49m [48;2;128;160;0m [49m[48;2;128;160;32m [49m[48;2;128;160;64m [49m[48;2;128;160;96m [49m[48;2;128;160;128m [49m[48;2;128;160;160m [49m[48;2;128;160;192m [49m[48;2;128;160;224m [49m [48;2;160;160;0m [49m[48;2;160;160;32m [49m[48;2;160;160;64m [49m[48;2;160;160;96m [49m[48;2;160;160;128m [49m[48;2;160;160;160m [49m[48;2;160;160;192m [49m[48;2;160;160;224m [49m [48;2;192;160;0m [49m[48;2;192;160;32m [49m[48;2;192;160;64m [49m[48;2;192;160;96m [49m[48;2;192;160;128m [49m[48;2;192;160;160m [49m[48;2;192;160;192m [49m[48;2;192;160;224m [49m [48;2;224;160;0m [49m[48;2;224;160;32m [49m[48;2;224;160;64m [49m[48;2;224;160;96m [49m[48;2;224;160;128m [49m[48;2;224;160;160m [49m[48;2;224;160;192m [49m[48;2;224;160;224m [49m | |
[48;2;0;192;0m [49m[48;2;0;192;32m [49m[48;2;0;192;64m [49m[48;2;0;192;96m [49m[48;2;0;192;128m [49m[48;2;0;192;160m [49m[48;2;0;192;192m [49m[48;2;0;192;224m [49m [48;2;32;192;0m [49m[48;2;32;192;32m [49m[48;2;32;192;64m [49m[48;2;32;192;96m [49m[48;2;32;192;128m [49m[48;2;32;192;160m [49m[48;2;32;192;192m [49m[48;2;32;192;224m [49m [48;2;64;192;0m [49m[48;2;64;192;32m [49m[48;2;64;192;64m [49m[48;2;64;192;96m [49m[48;2;64;192;128m [49m[48;2;64;192;160m [49m[48;2;64;192;192m [49m[48;2;64;192;224m [49m [48;2;96;192;0m [49m[48;2;96;192;32m [49m[48;2;96;192;64m [49m[48;2;96;192;96m [49m[48;2;96;192;128m [49m[48;2;96;192;160m [49m[48;2;96;192;192m [49m[48;2;96;192;224m [49m [48;2;128;192;0m [49m[48;2;128;192;32m [49m[48;2;128;192;64m [49m[48;2;128;192;96m [49m[48;2;128;192;128m [49m[48;2;128;192;160m [49m[48;2;128;192;192m [49m[48;2;128;192;224m [49m [48;2;160;192;0m [49m[48;2;160;192;32m [49m[48;2;160;192;64m [49m[48;2;160;192;96m [49m[48;2;160;192;128m [49m[48;2;160;192;160m [49m[48;2;160;192;192m [49m[48;2;160;192;224m [49m [48;2;192;192;0m [49m[48;2;192;192;32m [49m[48;2;192;192;64m [49m[48;2;192;192;96m [49m[48;2;192;192;128m [49m[48;2;192;192;160m [49m[48;2;192;192;192m [49m[48;2;192;192;224m [49m [48;2;224;192;0m [49m[48;2;224;192;32m [49m[48;2;224;192;64m [49m[48;2;224;192;96m [49m[48;2;224;192;128m [49m[48;2;224;192;160m [49m[48;2;224;192;192m [49m[48;2;224;192;224m [49m | |
[48;2;0;224;0m [49m[48;2;0;224;32m [49m[48;2;0;224;64m [49m[48;2;0;224;96m [49m[48;2;0;224;128m [49m[48;2;0;224;160m [49m[48;2;0;224;192m [49m[48;2;0;224;224m [49m [48;2;32;224;0m [49m[48;2;32;224;32m [49m[48;2;32;224;64m [49m[48;2;32;224;96m [49m[48;2;32;224;128m [49m[48;2;32;224;160m [49m[48;2;32;224;192m [49m[48;2;32;224;224m [49m [48;2;64;224;0m [49m[48;2;64;224;32m [49m[48;2;64;224;64m [49m[48;2;64;224;96m [49m[48;2;64;224;128m [49m[48;2;64;224;160m [49m[48;2;64;224;192m [49m[48;2;64;224;224m [49m [48;2;96;224;0m [49m[48;2;96;224;32m [49m[48;2;96;224;64m [49m[48;2;96;224;96m [49m[48;2;96;224;128m [49m[48;2;96;224;160m [49m[48;2;96;224;192m [49m[48;2;96;224;224m [49m [48;2;128;224;0m [49m[48;2;128;224;32m [49m[48;2;128;224;64m [49m[48;2;128;224;96m [49m[48;2;128;224;128m [49m[48;2;128;224;160m [49m[48;2;128;224;192m [49m[48;2;128;224;224m [49m [48;2;160;224;0m [49m[48;2;160;224;32m [49m[48;2;160;224;64m [49m[48;2;160;224;96m [49m[48;2;160;224;128m [49m[48;2;160;224;160m [49m[48;2;160;224;192m [49m[48;2;160;224;224m [49m [48;2;192;224;0m [49m[48;2;192;224;32m [49m[48;2;192;224;64m [49m[48;2;192;224;96m [49m[48;2;192;224;128m [49m[48;2;192;224;160m [49m[48;2;192;224;192m [49m[48;2;192;224;224m [49m [48;2;224;224;0m [49m[48;2;224;224;32m [49m[48;2;224;224;64m [49m[48;2;224;224;96m [49m[48;2;224;224;128m [49m[48;2;224;224;160m [49m[48;2;224;224;192m [49m[48;2;224;224;224m [49m | |
grayscale ramp: | |
[48;2;0;0;0m [49m[48;2;2;2;2m [49m[48;2;4;4;4m [49m[48;2;6;6;6m [49m[48;2;8;8;8m [49m[48;2;10;10;10m [49m[48;2;12;12;12m [49m[48;2;14;14;14m [49m[48;2;16;16;16m [49m[48;2;18;18;18m [49m[48;2;20;20;20m [49m[48;2;22;22;22m [49m[48;2;24;24;24m [49m[48;2;26;26;26m [49m[48;2;28;28;28m [49m[48;2;30;30;30m [49m[48;2;32;32;32m [49m[48;2;34;34;34m [49m[48;2;36;36;36m [49m[48;2;38;38;38m [49m[48;2;40;40;40m [49m[48;2;42;42;42m [49m[48;2;44;44;44m [49m[48;2;46;46;46m [49m[48;2;48;48;48m [49m[48;2;50;50;50m [49m[48;2;52;52;52m [49m[48;2;54;54;54m [49m[48;2;56;56;56m [49m[48;2;58;58;58m [49m[48;2;60;60;60m [49m[48;2;62;62;62m [49m[48;2;64;64;64m [49m[48;2;66;66;66m [49m[48;2;68;68;68m [49m[48;2;70;70;70m [49m[48;2;72;72;72m [49m[48;2;74;74;74m [49m[48;2;76;76;76m [49m[48;2;78;78;78m [49m[48;2;80;80;80m [49m[48;2;82;82;82m [49m[48;2;84;84;84m [49m[48;2;86;86;86m [49m[48;2;88;88;88m [49m[48;2;90;90;90m [49m[48;2;92;92;92m [49m[48;2;94;94;94m [49m[48;2;96;96;96m [49m[48;2;98;98;98m [49m[48;2;100;100;100m [49m[48;2;102;102;102m [49m[48;2;104;104;104m [49m[48;2;106;106;106m [49m[48;2;108;108;108m [49m[48;2;110;110;110m [49m[48;2;112;112;112m [49m[48;2;114;114;114m [49m[48;2;116;116;116m [49m[48;2;118;118;118m [49m[48;2;120;120;120m [49m[48;2;122;122;122m [49m[48;2;124;124;124m [49m[48;2;126;126;126m [49m[48;2;128;128;128m [49m[48;2;130;130;130m [49m[48;2;132;132;132m [49m[48;2;134;134;134m [49m[48;2;136;136;136m [49m[48;2;138;138;138m [49m[48;2;140;140;140m [49m[48;2;142;142;142m [49m[48;2;144;144;144m [49m[48;2;146;146;146m [49m[48;2;148;148;148m [49m[48;2;150;150;150m [49m[48;2;152;152;152m [49m[48;2;154;154;154m [49m[48;2;156;156;156m [49m[48;2;158;158;158m [49m[48;2;160;160;160m [49m[48;2;162;162;162m [49m[48;2;164;164;164m [49m[48;2;166;166;166m [49m[48;2;168;168;168m [49m[48;2;170;170;170m [49m[48;2;172;172;172m [49m[48;2;174;174;174m [49m[48;2;176;176;176m [49m[48;2;178;178;178m [49m[48;2;180;180;180m [49m[48;2;182;182;182m [49m[48;2;184;184;184m [49m[48;2;186;186;186m [49m[48;2;188;188;188m [49m[48;2;190;190;190m [49m[48;2;192;192;192m [49m[48;2;194;194;194m [49m[48;2;196;196;196m [49m[48;2;198;198;198m [49m[48;2;200;200;200m [49m[48;2;202;202;202m [49m[48;2;204;204;204m [49m[48;2;206;206;206m [49m[48;2;208;208;208m [49m[48;2;210;210;210m [49m[48;2;212;212;212m [49m[48;2;214;214;214m [49m[48;2;216;216;216m [49m[48;2;218;218;218m [49m[48;2;220;220;220m [49m[48;2;222;222;222m [49m[48;2;224;224;224m [49m[48;2;226;226;226m [49m[48;2;228;228;228m [49m[48;2;230;230;230m [49m[48;2;232;232;232m [49m[48;2;234;234;234m [49m[48;2;236;236;236m [49m[48;2;238;238;238m [49m[48;2;240;240;240m [49m[48;2;242;242;242m [49m[48;2;244;244;244m [49m[48;2;246;246;246m [49m[48;2;248;248;248m [49m[48;2;250;250;250m [49m[48;2;252;252;252m [49m[48;2;254;254;254m [49m |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment