Terminal emulator parses SGR, bold/underline
This commit is contained in:
parent
d37dcd9bb3
commit
9208a874e4
8 changed files with 1130 additions and 34 deletions
|
|
@ -42,7 +42,7 @@
|
|||
<Option Name="IPUserFilesDir" Val="$PIPUSERFILESDIR"/>
|
||||
<Option Name="IPStaticSourceDir" Val="$PIPUSERFILESDIR/ipstatic"/>
|
||||
<Option Name="EnableBDX" Val="FALSE"/>
|
||||
<Option Name="WTXSimLaunchSim" Val="307"/>
|
||||
<Option Name="WTXSimLaunchSim" Val="355"/>
|
||||
<Option Name="WTModelSimLaunchSim" Val="0"/>
|
||||
<Option Name="WTQuestaLaunchSim" Val="0"/>
|
||||
<Option Name="WTIesLaunchSim" Val="0"/>
|
||||
|
|
@ -229,6 +229,14 @@
|
|||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<File Path="$PPRDIR/src/term_emu.v">
|
||||
<FileInfo>
|
||||
<Attr Name="AutoDisabled" Val="1"/>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
<Attr Name="UsedIn" Val="implementation"/>
|
||||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<Config>
|
||||
<Option Name="DesignMode" Val="RTL"/>
|
||||
<Option Name="TopModule" Val="hdmi_design"/>
|
||||
|
|
@ -250,8 +258,16 @@
|
|||
</FileSet>
|
||||
<FileSet Name="sim_1" Type="SimulationSrcs" RelSrcDir="$PSRCDIR/sim_1">
|
||||
<Filter Type="Srcs"/>
|
||||
<File Path="$PPRDIR/test_bench/term_emu_tb.v">
|
||||
<FileInfo>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
<Attr Name="UsedIn" Val="implementation"/>
|
||||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<File Path="$PPRDIR/test_bench/term_renderer_tb.v">
|
||||
<FileInfo>
|
||||
<Attr Name="AutoDisabled" Val="1"/>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
<Attr Name="UsedIn" Val="implementation"/>
|
||||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
|
|
@ -331,9 +347,14 @@
|
|||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<File Path="$PPRDIR/term_emu_tb_behav.wcfg">
|
||||
<FileInfo>
|
||||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<Config>
|
||||
<Option Name="DesignMode" Val="RTL"/>
|
||||
<Option Name="TopModule" Val="term_renderer_tb"/>
|
||||
<Option Name="TopModule" Val="term_emu_tb"/>
|
||||
<Option Name="TopLib" Val="xil_defaultlib"/>
|
||||
<Option Name="TransportPathDelay" Val="0"/>
|
||||
<Option Name="TransportIntDelay" Val="0"/>
|
||||
|
|
@ -346,6 +367,7 @@
|
|||
<Option Name="XSimWcfgFile" Val="$PPRDIR/tb_hdmi_decode_behav.wcfg"/>
|
||||
<Option Name="XSimWcfgFile" Val="$PPRDIR/window_matcher_tb_behav.wcfg"/>
|
||||
<Option Name="XSimWcfgFile" Val="$PPRDIR/term_renderer_tb_behav.wcfg"/>
|
||||
<Option Name="XSimWcfgFile" Val="$PPRDIR/term_emu_tb_behav.wcfg"/>
|
||||
<Option Name="xsim.simulate.runtime" Val="10ms"/>
|
||||
<Option Name="NLNetlistMode" Val="funcsim"/>
|
||||
</Config>
|
||||
|
|
|
|||
312
src/term_emu.v
Normal file
312
src/term_emu.v
Normal file
|
|
@ -0,0 +1,312 @@
|
|||
`timescale 1ns / 1ps
|
||||
|
||||
module term_emu(
|
||||
input clk, rst,
|
||||
|
||||
input in_byte_valid,
|
||||
input [7:0] in_byte,
|
||||
output reg in_byte_ack,
|
||||
|
||||
output reg glyph_buffer_w_valid,
|
||||
output [15:0] glyph_buffer_w_addr,
|
||||
output reg [19:0] glyph_buffer_w_data
|
||||
);
|
||||
|
||||
parameter GLYPHMEM_W = 256; /* glyphs */
|
||||
parameter GLYPHMEM_H = 128; /* glyphs */
|
||||
|
||||
localparam ST_PARSE_TEXT = 9'b000000001,
|
||||
ST_PARSE_ESC = 9'b000000010,
|
||||
ST_PARSE_CSI = 9'b000000100,
|
||||
ST_PARSE_SEP = 9'b000100000,
|
||||
ST_PARSE_INVAL = 9'b010000000;
|
||||
|
||||
|
||||
assign glyph_buffer_w_addr = (GLYPHMEM_W*glyph_y) + glyph_x;
|
||||
|
||||
reg [8:0] parser_state;
|
||||
reg [3:0] cur_fg;
|
||||
reg [3:0] cur_bg;
|
||||
reg cur_bold;
|
||||
reg cur_underline;
|
||||
localparam NUM_BUF_SZ = 8;
|
||||
reg [NUM_BUF_SZ*12-1:0] num_buf;
|
||||
wire [11:0] num_buf_last;
|
||||
assign num_buf_last = num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-11];
|
||||
reg [7:0] parser_action;
|
||||
reg parser_valid;
|
||||
reg [4:0] num_buf_idx;
|
||||
reg [9:0] glyph_x;
|
||||
reg [9:0] glyph_y;
|
||||
reg [11:0] csi_act_ctr;
|
||||
reg cursor_movement_x_pos;
|
||||
reg cursor_movement_x_neg;
|
||||
reg cursor_movement_y_pos;
|
||||
reg cursor_movement_y_neg;
|
||||
reg esc_inval;
|
||||
|
||||
always @(posedge clk) begin
|
||||
in_byte_ack <= 0;
|
||||
|
||||
if (rst) begin
|
||||
parser_state <= ST_PARSE_TEXT;
|
||||
num_buf <= 0;
|
||||
parser_valid <= 0;
|
||||
parser_action <= 0;
|
||||
glyph_x <= 0;
|
||||
glyph_y <= 0;
|
||||
|
||||
end else if (!parser_valid && in_byte_valid) begin
|
||||
in_byte_ack <= 1;
|
||||
|
||||
case (parser_state)
|
||||
(ST_PARSE_TEXT): begin
|
||||
if (in_byte == 8'h1b) begin /* \e */
|
||||
parser_state <= ST_PARSE_ESC;
|
||||
|
||||
end else if (in_byte == 8'h0a) begin /* \n */
|
||||
glyph_x <= 0;
|
||||
if (glyph_y != GLYPHMEM_H-1) begin
|
||||
glyph_y <= glyph_y + 1;
|
||||
end
|
||||
|
||||
end else begin
|
||||
glyph_buffer_w_valid <= 1;
|
||||
glyph_buffer_w_data <= {cur_underline, cur_bold, 2'b00, cur_bg, cur_fg, in_byte};
|
||||
if (glyph_x != GLYPHMEM_W-1) begin
|
||||
glyph_x <= glyph_x + 1;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
(ST_PARSE_ESC): begin
|
||||
if (in_byte == 8'h5b) begin /* [ */
|
||||
parser_state <= ST_PARSE_CSI;
|
||||
num_buf[NUM_BUF_SZ*12-1:12] <= {{0}};
|
||||
num_buf[11:0] <= 12'hfff;
|
||||
|
||||
end else begin
|
||||
parser_state <= ST_PARSE_INVAL;
|
||||
end
|
||||
end
|
||||
|
||||
(ST_PARSE_CSI), (ST_PARSE_SEP): begin
|
||||
if (in_byte >= 8'h30 && in_byte <= 8'h39) begin /* 0-9 */
|
||||
num_buf <= {num_buf[NUM_BUF_SZ*12-1:12], num_buf[7:0], ~in_byte[3:0]};
|
||||
parser_state = ST_PARSE_CSI;
|
||||
|
||||
end else if (in_byte == 8'h3b) begin /* ; */
|
||||
num_buf <= {num_buf[NUM_BUF_SZ*12-1-12:0], 12'hfff};
|
||||
parser_state <= ST_PARSE_SEP;
|
||||
|
||||
end else if (in_byte >= 8'h40 && in_byte <= 8'h7e) begin
|
||||
parser_action <= in_byte;
|
||||
parser_valid <= 1;
|
||||
num_buf_idx <= 0;
|
||||
esc_inval <= 0;
|
||||
csi_act_ctr <= 0;
|
||||
cursor_movement_x_pos <= 0;
|
||||
cursor_movement_x_neg <= 0;
|
||||
cursor_movement_y_pos <= 0;
|
||||
cursor_movement_y_neg <= 0;
|
||||
parser_state <= ST_PARSE_TEXT;
|
||||
|
||||
end else begin
|
||||
parser_state <= ST_PARSE_INVAL;
|
||||
end
|
||||
end
|
||||
|
||||
(ST_PARSE_INVAL): begin
|
||||
if (in_byte >= 8'h40 && in_byte <= 8'h7e) begin
|
||||
parser_state <= ST_PARSE_TEXT;
|
||||
end
|
||||
end
|
||||
endcase
|
||||
end
|
||||
end
|
||||
|
||||
function [11:0] bcd12_inc;
|
||||
input [11:0] in;
|
||||
begin
|
||||
if (in[3:0] != 4'h9) begin
|
||||
bcd12_inc[3:0] = in[3:0]+1;
|
||||
end else begin
|
||||
bcd12_inc[3:0] = 4'h0;
|
||||
if (in[7:4] != 4'h9) begin
|
||||
bcd12_inc[7:4] = in[7:4] + 1;
|
||||
end else begin
|
||||
bcd12_inc[7:4] = 0;
|
||||
if (in[11:8] != 4'h9) begin
|
||||
bcd12_inc[11:8] = in[11:8] + 1;
|
||||
end else begin
|
||||
bcd12_inc[11:8] = 0;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
endfunction
|
||||
|
||||
always @(posedge clk) begin
|
||||
if (rst) begin
|
||||
cur_fg <= 7;
|
||||
cur_bg <= 0;
|
||||
cur_bold <= 0;
|
||||
cur_underline <= 0;
|
||||
num_buf_idx <= 0;
|
||||
csi_act_ctr <= 0;
|
||||
esc_inval <= 0;
|
||||
cursor_movement_x_pos <= 0;
|
||||
cursor_movement_x_neg <= 0;
|
||||
cursor_movement_y_pos <= 0;
|
||||
cursor_movement_y_neg <= 0;
|
||||
|
||||
end else begin
|
||||
if (parser_valid) begin
|
||||
if (cursor_movement_x_pos || cursor_movement_x_neg || cursor_movement_y_pos || cursor_movement_y_neg) begin
|
||||
csi_act_ctr <= bcd12_inc(csi_act_ctr);
|
||||
|
||||
if (!csi_act_ctr == ~num_buf_last) begin
|
||||
if (cursor_movement_x_pos) begin
|
||||
if (glyph_x != GLYPHMEM_W-1) glyph_x <= glyph_x + 1;
|
||||
end else if (cursor_movement_x_neg) begin
|
||||
if (glyph_x != 0) glyph_x <= glyph_x - 1;
|
||||
end else if (cursor_movement_y_pos) begin
|
||||
if (glyph_y != GLYPHMEM_H-1) glyph_y <= glyph_y + 1;
|
||||
end else if (cursor_movement_y_neg) begin
|
||||
if (glyph_y != 0) glyph_y <= glyph_y - 1;
|
||||
end
|
||||
end
|
||||
|
||||
if (num_buf_last == 0 || ~num_buf_last == 12'h001 || csi_act_ctr == ~num_buf_last) begin
|
||||
if (cursor_movement_x_pos && cursor_movement_y_pos) begin
|
||||
num_buf <= {num_buf[NUM_BUF_SZ*12-1-12:0], 12'h000};
|
||||
cursor_movement_x_pos <= 0;
|
||||
end else begin
|
||||
parser_valid <= 0;
|
||||
end
|
||||
end
|
||||
|
||||
end else if (parser_action == 8'h41 && !esc_inval) begin /* A; Cursor up */
|
||||
cursor_movement_y_neg <= 1;
|
||||
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-12] <= num_buf[11:0];
|
||||
|
||||
end else if (parser_action == 8'h42 && !esc_inval) begin /* B; Cursor down */
|
||||
cursor_movement_y_pos <= 1;
|
||||
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-12] <= num_buf[11:0];
|
||||
|
||||
end else if (parser_action == 8'h43 && !esc_inval) begin /* C; Cursor forward */
|
||||
cursor_movement_x_pos <= 1;
|
||||
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-12] <= num_buf[11:0];
|
||||
|
||||
end else if (parser_action == 8'h44 && !esc_inval) begin /* D; Cursor back */
|
||||
cursor_movement_x_neg <= 1;
|
||||
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-12] <= num_buf[11:0];
|
||||
|
||||
end else if (parser_action == 8'h45 && !esc_inval) begin /* E; Cursor next line */
|
||||
glyph_x <= 0;
|
||||
cursor_movement_y_pos <= 1;
|
||||
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-12] <= num_buf[11:0];
|
||||
|
||||
end else if (parser_action == 8'h46 && !esc_inval) begin /* F: Cursor previous line */
|
||||
glyph_x <= 0;
|
||||
cursor_movement_y_neg <= 1;
|
||||
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-12] <= num_buf[11:0];
|
||||
|
||||
end else if (parser_action == 8'h47 && !esc_inval) begin /* G: Cursor horizontal absolute */
|
||||
glyph_x <= 0;
|
||||
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-12] <= num_buf[11:0];
|
||||
if (num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-12] != 0) begin
|
||||
cursor_movement_x_pos <= 1;
|
||||
end
|
||||
|
||||
end else if (parser_action == 8'h48 && !esc_inval) begin /* H: Cursor x/y absolute */
|
||||
glyph_x <= 0;
|
||||
glyph_y <= 0;
|
||||
num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-24] <= num_buf[23:0];
|
||||
if (num_buf[NUM_BUF_SZ*12-1:NUM_BUF_SZ*12-1-12] != 0) begin
|
||||
cursor_movement_x_pos <= 1;
|
||||
cursor_movement_y_pos <= 1;
|
||||
end
|
||||
|
||||
end else if (parser_action == 8'h6d && !esc_inval) begin /* m; CSI SGR */
|
||||
if (num_buf_idx == NUM_BUF_SZ-1) begin
|
||||
parser_valid <= 0;
|
||||
end
|
||||
|
||||
case (~num_buf_last)
|
||||
(12'h000): begin /* reset */
|
||||
cur_fg <= 7;
|
||||
cur_bg <= 0;
|
||||
cur_bold <= 0;
|
||||
cur_underline <= 0;
|
||||
end
|
||||
(12'h001): begin /* bold */
|
||||
cur_bold <= 1;
|
||||
end
|
||||
(12'h004): begin /* underlined */
|
||||
cur_underline <= 1;
|
||||
end
|
||||
(12'h007): begin /* reverse video */
|
||||
cur_fg = cur_bg;
|
||||
cur_bg = cur_fg;
|
||||
end
|
||||
(12'h022): begin /* not bold */
|
||||
cur_bold <= 0;
|
||||
end
|
||||
(12'h024): begin /* not underlined */
|
||||
cur_underline <= 0;
|
||||
end
|
||||
|
||||
(12'h030): cur_fg <= 0;
|
||||
(12'h031): cur_fg <= 1;
|
||||
(12'h032): cur_fg <= 2;
|
||||
(12'h033): cur_fg <= 3;
|
||||
(12'h034): cur_fg <= 4;
|
||||
(12'h035): cur_fg <= 5;
|
||||
(12'h036): cur_fg <= 6;
|
||||
(12'h037): cur_fg <= 7;
|
||||
(12'h038): esc_inval <= 1;
|
||||
(12'h039): cur_fg <= 7;
|
||||
|
||||
(12'h040): cur_bg <= 0;
|
||||
(12'h041): cur_bg <= 1;
|
||||
(12'h042): cur_bg <= 2;
|
||||
(12'h043): cur_bg <= 3;
|
||||
(12'h044): cur_bg <= 4;
|
||||
(12'h045): cur_bg <= 5;
|
||||
(12'h046): cur_bg <= 6;
|
||||
(12'h047): cur_bg <= 7;
|
||||
(12'h048): esc_inval <= 1;
|
||||
(12'h049): cur_bg <= 0;
|
||||
|
||||
(12'h090): cur_fg <= 8;
|
||||
(12'h091): cur_fg <= 9;
|
||||
(12'h092): cur_fg <= 10;
|
||||
(12'h093): cur_fg <= 11;
|
||||
(12'h094): cur_fg <= 12;
|
||||
(12'h095): cur_fg <= 13;
|
||||
(12'h096): cur_fg <= 14;
|
||||
(12'h097): cur_fg <= 15;
|
||||
|
||||
(12'h100): cur_bg <= 8;
|
||||
(12'h101): cur_bg <= 9;
|
||||
(12'h102): cur_bg <= 10;
|
||||
(12'h103): cur_bg <= 11;
|
||||
(12'h104): cur_bg <= 12;
|
||||
(12'h105): cur_bg <= 13;
|
||||
(12'h106): cur_bg <= 14;
|
||||
(12'h107): cur_bg <= 15;
|
||||
/* (12'hfff): ignore! */
|
||||
endcase
|
||||
|
||||
num_buf_idx <= num_buf_idx + 1;
|
||||
num_buf <= {num_buf[NUM_BUF_SZ*12-1-12:0], 12'h000};
|
||||
|
||||
end else begin
|
||||
parser_valid <= 0;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
endmodule
|
||||
|
|
@ -34,24 +34,24 @@ initial $readmemh("../../../../src/gen/gen_glyphtable_bold.hex", glyph_table_bol
|
|||
function [23:0] color_palette;
|
||||
input [3:0] index;
|
||||
begin
|
||||
/* Nord color palette: https://github.com/arcticicestudio/nord */
|
||||
/* Peppermint color palette: https://noahfrederick.com/log/lion-terminal-theme-peppermint */
|
||||
case (index)
|
||||
default: color_palette = 24'h2e3440;
|
||||
(1): color_palette = 24'h3b4252;
|
||||
(2): color_palette = 24'h434c5e;
|
||||
(3): color_palette = 24'h4c566a;
|
||||
(4): color_palette = 24'hd8dee9;
|
||||
(5): color_palette = 24'he5e9f0;
|
||||
(6): color_palette = 24'heceff4;
|
||||
(7): color_palette = 24'h8fbcbb;
|
||||
(8): color_palette = 24'h88c0d0;
|
||||
(9): color_palette = 24'h81a1c1;
|
||||
(10): color_palette = 24'h5e81ac;
|
||||
(11): color_palette = 24'hbf616a;
|
||||
(12): color_palette = 24'hd08770;
|
||||
(13): color_palette = 24'hebcb8b;
|
||||
(14): color_palette = 24'ha3be8c;
|
||||
(15): color_palette = 24'hb48ead;
|
||||
default: color_palette = 24'h353535;
|
||||
(1): color_palette = 24'he64569;
|
||||
(2): color_palette = 24'h89d287;
|
||||
(3): color_palette = 24'hdab752;
|
||||
(4): color_palette = 24'h439ecf;
|
||||
(5): color_palette = 24'hd961dc;
|
||||
(6): color_palette = 24'h64aaaf;
|
||||
(7): color_palette = 24'hb3b3b3;
|
||||
(8): color_palette = 24'h535353;
|
||||
(9): color_palette = 24'he4859a;
|
||||
(10): color_palette = 24'ha2cca1;
|
||||
(11): color_palette = 24'he1e387;
|
||||
(12): color_palette = 24'h6fbbe2;
|
||||
(13): color_palette = 24'he586e7;
|
||||
(14): color_palette = 24'h96dcda;
|
||||
(15): color_palette = 24'hdedede;
|
||||
endcase
|
||||
end
|
||||
endfunction
|
||||
|
|
|
|||
146
term_emu_tb_behav.wcfg
Normal file
146
term_emu_tb_behav.wcfg
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<wave_config>
|
||||
<wave_state>
|
||||
</wave_state>
|
||||
<db_ref_list>
|
||||
<db_ref path="term_emu_tb_behav.wdb" id="1">
|
||||
<top_modules>
|
||||
<top_module name="glbl" />
|
||||
<top_module name="term_emu_tb" />
|
||||
</top_modules>
|
||||
</db_ref>
|
||||
</db_ref_list>
|
||||
<zoom_setting>
|
||||
<ZoomStartTime time="0fs"></ZoomStartTime>
|
||||
<ZoomEndTime time="3804001fs"></ZoomEndTime>
|
||||
<Cursor1Time time="3602108fs"></Cursor1Time>
|
||||
</zoom_setting>
|
||||
<column_width_setting>
|
||||
<NameColumnWidth column_width="175"></NameColumnWidth>
|
||||
<ValueColumnWidth column_width="154"></ValueColumnWidth>
|
||||
</column_width_setting>
|
||||
<WVObjectSize size="28" />
|
||||
<wvobject fp_name="/term_emu_tb/testcase_id" type="array">
|
||||
<obj_property name="ElementShortName">testcase_id[31:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">testcase_id[31:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/clk" type="logic">
|
||||
<obj_property name="ElementShortName">clk</obj_property>
|
||||
<obj_property name="ObjectShortName">clk</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/rst" type="logic">
|
||||
<obj_property name="ElementShortName">rst</obj_property>
|
||||
<obj_property name="ObjectShortName">rst</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/read_pos" type="array">
|
||||
<obj_property name="ElementShortName">read_pos[31:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">read_pos[31:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/in_byte_valid" type="logic">
|
||||
<obj_property name="ElementShortName">in_byte_valid</obj_property>
|
||||
<obj_property name="ObjectShortName">in_byte_valid</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/in_byte" type="array">
|
||||
<obj_property name="ElementShortName">in_byte[7:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">in_byte[7:0]</obj_property>
|
||||
<obj_property name="Radix">ASCIIRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/in_byte_ack" type="logic">
|
||||
<obj_property name="ElementShortName">in_byte_ack</obj_property>
|
||||
<obj_property name="ObjectShortName">in_byte_ack</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/parser_state" type="array">
|
||||
<obj_property name="ElementShortName">parser_state[8:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">parser_state[8:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/cur_fg" type="array">
|
||||
<obj_property name="ElementShortName">cur_fg[3:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">cur_fg[3:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/cur_bg" type="array">
|
||||
<obj_property name="ElementShortName">cur_bg[3:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">cur_bg[3:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/cur_bold" type="logic">
|
||||
<obj_property name="ElementShortName">cur_bold</obj_property>
|
||||
<obj_property name="ObjectShortName">cur_bold</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/cur_underline" type="logic">
|
||||
<obj_property name="ElementShortName">cur_underline</obj_property>
|
||||
<obj_property name="ObjectShortName">cur_underline</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/num_buf" type="array">
|
||||
<obj_property name="ElementShortName">num_buf[95:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">num_buf[95:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/num_buf_last" type="array">
|
||||
<obj_property name="ElementShortName">num_buf_last[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">num_buf_last[11:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/parser_action" type="array">
|
||||
<obj_property name="ElementShortName">parser_action[7:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">parser_action[7:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/parser_valid" type="logic">
|
||||
<obj_property name="ElementShortName">parser_valid</obj_property>
|
||||
<obj_property name="ObjectShortName">parser_valid</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/num_buf_idx" type="array">
|
||||
<obj_property name="ElementShortName">num_buf_idx[4:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">num_buf_idx[4:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/csi_act_ctr" type="array">
|
||||
<obj_property name="ElementShortName">csi_act_ctr[11:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">csi_act_ctr[11:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/cursor_movement_x_pos" type="logic">
|
||||
<obj_property name="ElementShortName">cursor_movement_x_pos</obj_property>
|
||||
<obj_property name="ObjectShortName">cursor_movement_x_pos</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/cursor_movement_x_neg" type="logic">
|
||||
<obj_property name="ElementShortName">cursor_movement_x_neg</obj_property>
|
||||
<obj_property name="ObjectShortName">cursor_movement_x_neg</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/cursor_movement_y_pos" type="logic">
|
||||
<obj_property name="ElementShortName">cursor_movement_y_pos</obj_property>
|
||||
<obj_property name="ObjectShortName">cursor_movement_y_pos</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/cursor_movement_y_neg" type="logic">
|
||||
<obj_property name="ElementShortName">cursor_movement_y_neg</obj_property>
|
||||
<obj_property name="ObjectShortName">cursor_movement_y_neg</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/esc_inval" type="logic">
|
||||
<obj_property name="ElementShortName">esc_inval</obj_property>
|
||||
<obj_property name="ObjectShortName">esc_inval</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/glyph_y" type="array">
|
||||
<obj_property name="ElementShortName">glyph_y[9:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">glyph_y[9:0]</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FFFF00</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/glyph_x" type="array">
|
||||
<obj_property name="ElementShortName">glyph_x[9:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">glyph_x[9:0]</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FFFF00</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/glyph_buffer_w_valid" type="logic">
|
||||
<obj_property name="ElementShortName">glyph_buffer_w_valid</obj_property>
|
||||
<obj_property name="ObjectShortName">glyph_buffer_w_valid</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FFFF00</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/glyph_buffer_w_addr" type="array">
|
||||
<obj_property name="ElementShortName">glyph_buffer_w_addr[15:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">glyph_buffer_w_addr[15:0]</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FFFF00</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="/term_emu_tb/term_emu_dut/glyph_buffer_w_data" type="array">
|
||||
<obj_property name="ElementShortName">glyph_buffer_w_data[19:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">glyph_buffer_w_data[19:0]</obj_property>
|
||||
<obj_property name="CustomSignalColor">#FFFF00</obj_property>
|
||||
<obj_property name="UseCustomSignalColor">true</obj_property>
|
||||
</wvobject>
|
||||
</wave_config>
|
||||
77
test_bench/term_emu_tb.v
Normal file
77
test_bench/term_emu_tb.v
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
`timescale 1ns / 1ps
|
||||
|
||||
module term_emu_tb();
|
||||
|
||||
parameter GLYPHMEM_W = 256; /* glyphs */
|
||||
parameter GLYPHMEM_H = 128; /* glyphs */
|
||||
|
||||
localparam period = 4;
|
||||
|
||||
reg clk, rst;
|
||||
reg in_byte_valid;
|
||||
reg [7:0] in_byte;
|
||||
|
||||
wire in_byte_ack;
|
||||
wire glyph_buffer_w_valid;
|
||||
wire [15:0] glyph_buffer_w_addr;
|
||||
wire [19:0] glyph_buffer_w_data;
|
||||
|
||||
reg [19:0] glyph_buffer;
|
||||
|
||||
initial begin
|
||||
rst = 1;
|
||||
clk = 0;
|
||||
repeat(2) #period clk = ~clk;
|
||||
rst = 0;
|
||||
forever #period clk = ~clk;
|
||||
end
|
||||
|
||||
|
||||
`include "test_data/00TEMU_TEST_STR_LOADERS.v"
|
||||
|
||||
integer testcase_id;
|
||||
integer read_pos;
|
||||
initial begin
|
||||
`include "test_data/00TEMU_TEST_STR_RUNNERS.v"
|
||||
$finish;
|
||||
end
|
||||
|
||||
|
||||
reg [19:0] glyphmem [0:GLYPHMEM_W*GLYPHMEM_H-1];
|
||||
reg last_rst;
|
||||
always @(posedge clk) begin
|
||||
last_rst <= rst;
|
||||
|
||||
if (~last_rst && rst) begin
|
||||
for (integer i=0; i<GLYPHMEM_W*GLYPHMEM_H; i=i+1) begin
|
||||
glyphmem[i] = 20'h00000;
|
||||
end
|
||||
|
||||
end else begin
|
||||
if (glyph_buffer_w_valid) begin
|
||||
if (glyph_buffer_w_addr < GLYPHMEM_W*GLYPHMEM_H) begin
|
||||
glyphmem[glyph_buffer_w_addr] <= glyph_buffer_w_data;
|
||||
|
||||
end else begin
|
||||
$display("Glyph memory write access out of bounds");
|
||||
$finish();
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
term_emu #(
|
||||
.GLYPHMEM_W(GLYPHMEM_W),
|
||||
.GLYPHMEM_H(GLYPHMEM_H)
|
||||
) term_emu_dut (
|
||||
.clk(clk), .rst(rst),
|
||||
|
||||
.in_byte_valid(in_byte_valid),
|
||||
.in_byte(in_byte),
|
||||
.in_byte_ack(in_byte_ack),
|
||||
|
||||
.glyph_buffer_w_valid(glyph_buffer_w_valid),
|
||||
.glyph_buffer_w_addr(glyph_buffer_w_addr),
|
||||
.glyph_buffer_w_data(glyph_buffer_w_data)
|
||||
);
|
||||
endmodule
|
||||
466
test_bench/term_emu_tb_gen.ipynb
Normal file
466
test_bench/term_emu_tb_gen.ipynb
Normal file
|
|
@ -0,0 +1,466 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 280,
|
||||
"id": "super-tunisia",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from enum import Enum\n",
|
||||
"from functools import wraps\n",
|
||||
"from itertools import product\n",
|
||||
"from pathlib import Path\n",
|
||||
"from contextlib import redirect_stdout\n",
|
||||
"import math\n",
|
||||
"import sys\n",
|
||||
"import string\n",
|
||||
"import re\n",
|
||||
"\n",
|
||||
"import jinja2\n",
|
||||
"import numpy as np\n",
|
||||
"from matplotlib import pyplot as plt\n",
|
||||
"%matplotlib inline"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 281,
|
||||
"id": "scenic-jungle",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"test_data_dir = Path('test_data')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 282,
|
||||
"id": "secondary-thunder",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"TESTCASES = {\n",
|
||||
" 'empty_str': '',\n",
|
||||
" 'one_char': 'a',\n",
|
||||
" 'simple_str': 'Foobar',\n",
|
||||
" 'newline': 'Foobar\\baz',\n",
|
||||
"# 'long_str': 'foo'*100*4,\n",
|
||||
"# 'long_lines': 'foo'*100*4 + '\\n' + 'bar'*100*4 + '\\n' + 'narf',\n",
|
||||
" 'bold': 'Foo \\033[1mtest\\033[22m bar',\n",
|
||||
" 'underline': 'Foo \\033[4mtest\\033[24m bar',\n",
|
||||
" 'basic_fg': 'Foobar\\033[33mbaz\\033[0m this is a test', # yellow fg\n",
|
||||
" 'basic_bg': 'Foobar\\033[43mbaz\\033[0m this is a test', # yellow bg\n",
|
||||
" 'separate': 'Foobar\\033[43m\\033[35mbaz\\033[0m this is a test', # yellow bg, magenta fg\n",
|
||||
" 'combined': 'Foobar\\033[43;35mbaz\\033[0m this is a test', # yellow bg, magenta fg\n",
|
||||
" 'complex': 'Foobar\\033[43;35mbaz\\033[49m this is a test', # yellow bg, magenta fg\n",
|
||||
" 'reset': 'Foobar\\033[43;0;35mbaz\\033[49m this is a test', # magenta fg\n",
|
||||
" 'fg_newline': 'Foobar\\033[35mbaz\\nthis \\033[1mis\\033[22m a test', # magenta fg\n",
|
||||
" 'color_palette': ''.join(f'\\033[{c}m//' for c in range(30, 38)) + ' ' + ''.join(f'\\033[{c}m//' for c in range(90, 98)) + '\\n'\n",
|
||||
" +''.join(f'\\033[{c}m//' for c in range(40, 48)) + '\\033[0m ' + ''.join(f'\\033[{c}m//' for c in range(100, 108)) + '\\n',\n",
|
||||
"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 283,
|
||||
"id": "imported-complaint",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"'0xf6f'"
|
||||
]
|
||||
},
|
||||
"execution_count": 283,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"hex((~0x90)&0xfff)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 284,
|
||||
"id": "imported-currency",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def gen_loaders(testcases=TESTCASES):\n",
|
||||
" with open(test_data_dir / '00TEMU_TEST_STR_LOADERS.v', 'w') as f, redirect_stdout(f):\n",
|
||||
" print()\n",
|
||||
" for name, le_str in testcases.items():\n",
|
||||
" print(f'reg [31:0] test_temu_{name} [0:{len(le_str)}];')\n",
|
||||
"\n",
|
||||
" print()\n",
|
||||
" print('initial begin')\n",
|
||||
" for name, le_str in testcases.items():\n",
|
||||
" print(f'$readmemh(\"../../../../test_bench/{test_data_dir / name}.hex\", test_temu_{name});')\n",
|
||||
" print('end')\n",
|
||||
"\n",
|
||||
"gen_loaders()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 285,
|
||||
"id": "governmental-legislation",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def write_hexfiles(testcases=TESTCASES):\n",
|
||||
" for name, le_str in testcases.items():\n",
|
||||
" with open(test_data_dir / f'{name}.hex', 'w') as f, redirect_stdout(f):\n",
|
||||
" for c in le_str + ' ': # pad at the end to take 1-cycle pipeline delay into account\n",
|
||||
" print(f'{ord(c):02x}')\n",
|
||||
"write_hexfiles()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 286,
|
||||
"id": "resident-broadcasting",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Testcase 0: empty_str\n",
|
||||
"Testcase 1: one_char\n",
|
||||
"Testcase 2: simple_str\n",
|
||||
"Testcase 3: newline\n",
|
||||
"Testcase 4: bold\n",
|
||||
"Testcase 5: underline\n",
|
||||
"Testcase 6: basic_fg\n",
|
||||
"Testcase 7: basic_bg\n",
|
||||
"Testcase 8: separate\n",
|
||||
"Testcase 9: combined\n",
|
||||
"Testcase 10: complex\n",
|
||||
"Testcase 11: reset\n",
|
||||
"Testcase 12: fg_newline\n",
|
||||
"Testcase 13: color_palette\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"RUNNER_TPL = '''\n",
|
||||
"/* Start of generated test case {{name}} */\n",
|
||||
"\n",
|
||||
"testcase_id = {{testcase_id}};\n",
|
||||
"rst = 1;\n",
|
||||
"repeat(2) @(posedge clk);\n",
|
||||
"rst = 0;\n",
|
||||
"repeat(8) @(posedge clk);\n",
|
||||
"\n",
|
||||
"$display(\"Running {{name}}\");\n",
|
||||
"for (read_pos=0; read_pos<{{str_len}}; read_pos=read_pos+1) begin\n",
|
||||
" in_byte = {{mem}}[read_pos];\n",
|
||||
" in_byte_valid = 1;\n",
|
||||
" @(posedge clk);\n",
|
||||
" while (!in_byte_ack) begin\n",
|
||||
" @(posedge clk);\n",
|
||||
" end\n",
|
||||
" in_byte_valid = 0;\n",
|
||||
"end\n",
|
||||
"\n",
|
||||
"$writememh(\"test_term_emu_dump_{{name}}.hex\", glyphmem);\n",
|
||||
"\n",
|
||||
"/* End of generated test case {{name}} */\n",
|
||||
"'''\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"def gen_runners(testcases=TESTCASES):\n",
|
||||
" with open(test_data_dir / '00TEMU_TEST_STR_RUNNERS.v', 'w') as f, redirect_stdout(f):\n",
|
||||
" tpl = jinja2.Environment().from_string(RUNNER_TPL, globals=globals())\n",
|
||||
" for i, (name, le_str) in enumerate(testcases.items()):\n",
|
||||
" print(tpl.render(name=name, str_len=len(le_str) + 1, mem=f'test_temu_{name}', testcase_id=i))\n",
|
||||
" print(f'Testcase {i:>3}: {name}', file=sys.stderr)\n",
|
||||
" \n",
|
||||
"gen_runners()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 287,
|
||||
"id": "interested-postage",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def read_hexfile(filename):\n",
|
||||
" with open(filename) as f:\n",
|
||||
" gen = ((int(line, 16) if re.match(r'^[0-9a-f]+$', line) else 0) for line in f if line.strip())\n",
|
||||
" return list(gen)\n",
|
||||
"\n",
|
||||
"def show_tc(tc_id, w=100, h=5, glyphmem_w=256, glyphmem_h=128):\n",
|
||||
" data = read_hexfile(f'../Artix-7-HDMI-processing.sim/sim_1/behav/xsim/test_term_emu_dump_{tc_id}.hex')\n",
|
||||
" data = data[1:]\n",
|
||||
" for y in range(h):\n",
|
||||
" for x in range(w):\n",
|
||||
" entry = data[y*glyphmem_w + x]\n",
|
||||
" char = chr(entry&0xff)\n",
|
||||
"\n",
|
||||
" style = (entry>>8)&0xfff\n",
|
||||
" bold = 1 if style&(1<<10) else 22\n",
|
||||
" underline = 4 if style&(1<<11) else 24\n",
|
||||
" bg = (style>>4) & 0xf\n",
|
||||
" bg = 40 + bg if bg < 8 else 100 + bg - 8\n",
|
||||
" fg = style & 0xf\n",
|
||||
" fg = 30 + fg if fg < 8 else 90 + fg - 8\n",
|
||||
" print(f'\\033[{bold};{underline};{bg};{fg}m', end='')\n",
|
||||
"\n",
|
||||
" if char == '\\n':\n",
|
||||
" print('↵', end='')\n",
|
||||
" elif char in string.printable:\n",
|
||||
" print(char, end='')\n",
|
||||
" elif char in ' \\0':\n",
|
||||
" print(' ', end='')\n",
|
||||
" else:\n",
|
||||
" print('\\033[40;37m?', end='')\n",
|
||||
" print()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 288,
|
||||
"id": "electronic-china",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"\u001b[22;24;40;30m/\u001b[22;24;40;30m/\u001b[22;24;40;31m/\u001b[22;24;40;31m/\u001b[22;24;40;32m/\u001b[22;24;40;32m/\u001b[22;24;40;33m/\u001b[22;24;40;33m/\u001b[22;24;40;34m/\u001b[22;24;40;34m/\u001b[22;24;40;35m/\u001b[22;24;40;35m/\u001b[22;24;40;36m/\u001b[22;24;40;36m/\u001b[22;24;40;37m/\u001b[22;24;40;37m/\u001b[22;24;40;37m \u001b[22;24;40;37m \u001b[22;24;40;90m/\u001b[22;24;40;90m/\u001b[22;24;40;91m/\u001b[22;24;40;91m/\u001b[22;24;40;92m/\u001b[22;24;40;92m/\u001b[22;24;40;93m/\u001b[22;24;40;93m/\u001b[22;24;40;94m/\u001b[22;24;40;94m/\u001b[22;24;40;95m/\u001b[22;24;40;95m/\u001b[22;24;40;96m/\u001b[22;24;40;96m/\u001b[22;24;40;97m/\u001b[22;24;40;97m/\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;97m/\u001b[22;24;40;97m/\u001b[22;24;41;97m/\u001b[22;24;41;97m/\u001b[22;24;42;97m/\u001b[22;24;42;97m/\u001b[22;24;43;97m/\u001b[22;24;43;97m/\u001b[22;24;44;97m/\u001b[22;24;44;97m/\u001b[22;24;45;97m/\u001b[22;24;45;97m/\u001b[22;24;46;97m/\u001b[22;24;46;97m/\u001b[22;24;47;97m/\u001b[22;24;47;97m/\u001b[22;24;47;97m \u001b[22;24;47;97m \u001b[22;24;100;97m/\u001b[22;24;100;97m/\u001b[22;24;101;97m/\u001b[22;24;101;97m/\u001b[22;24;102;97m/\u001b[22;24;102;97m/\u001b[22;24;103;97m/\u001b[22;24;103;97m/\u001b[22;24;104;97m/\u001b[22;24;104;97m/\u001b[22;24;105;97m/\u001b[22;24;105;97m/\u001b[22;24;106;97m/\u001b[22;24;106;97m/\u001b[22;24;107;97m/\u001b[22;24;107;97m/\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"show_tc('color_palette')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 289,
|
||||
"id": "blessed-slide",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"#show_tc('long_str')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 290,
|
||||
"id": "genetic-participation",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"\u001b[22;24;40;37mF\u001b[22;24;40;37mo\u001b[22;24;40;37mo\u001b[22;24;40;37mb\u001b[22;24;40;37ma\u001b[22;24;40;37mr\u001b[22;24;40;37m\u001b[40;37m?\u001b[22;24;40;37ma\u001b[22;24;40;37mz\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"show_tc('newline')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 291,
|
||||
"id": "limiting-benefit",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"#show_tc('long_lines')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 292,
|
||||
"id": "asian-internet",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"\u001b[22;24;40;37mF\u001b[22;24;40;37mo\u001b[22;24;40;37mo\u001b[22;24;40;37m \u001b[1;24;40;37mt\u001b[1;24;40;37me\u001b[1;24;40;37ms\u001b[1;24;40;37mt\u001b[22;24;40;37m \u001b[22;24;40;37mb\u001b[22;24;40;37ma\u001b[22;24;40;37mr\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"show_tc('bold')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 293,
|
||||
"id": "tough-pillow",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"\u001b[22;24;40;37mF\u001b[22;24;40;37mo\u001b[22;24;40;37mo\u001b[22;24;40;37m \u001b[22;4;40;37mt\u001b[22;4;40;37me\u001b[22;4;40;37ms\u001b[22;4;40;37mt\u001b[22;24;40;37m \u001b[22;24;40;37mb\u001b[22;24;40;37ma\u001b[22;24;40;37mr\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"show_tc('underline')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 294,
|
||||
"id": "appropriate-collect",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"\u001b[22;24;40;37mF\u001b[22;24;40;37mo\u001b[22;24;40;37mo\u001b[22;24;40;37mb\u001b[22;24;40;37ma\u001b[22;24;40;37mr\u001b[22;24;40;33mb\u001b[22;24;40;33ma\u001b[22;24;40;33mz\u001b[22;24;40;37m \u001b[22;24;40;37mt\u001b[22;24;40;37mh\u001b[22;24;40;37mi\u001b[22;24;40;37ms\u001b[22;24;40;37m \u001b[22;24;40;37mi\u001b[22;24;40;37ms\u001b[22;24;40;37m \u001b[22;24;40;37ma\u001b[22;24;40;37m \u001b[22;24;40;37mt\u001b[22;24;40;37me\u001b[22;24;40;37ms\u001b[22;24;40;37mt\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"show_tc('basic_fg')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 295,
|
||||
"id": "norwegian-warren",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"\u001b[22;24;40;37mF\u001b[22;24;40;37mo\u001b[22;24;40;37mo\u001b[22;24;40;37mb\u001b[22;24;40;37ma\u001b[22;24;40;37mr\u001b[22;24;43;37mb\u001b[22;24;43;37ma\u001b[22;24;43;37mz\u001b[22;24;40;37m \u001b[22;24;40;37mt\u001b[22;24;40;37mh\u001b[22;24;40;37mi\u001b[22;24;40;37ms\u001b[22;24;40;37m \u001b[22;24;40;37mi\u001b[22;24;40;37ms\u001b[22;24;40;37m \u001b[22;24;40;37ma\u001b[22;24;40;37m \u001b[22;24;40;37mt\u001b[22;24;40;37me\u001b[22;24;40;37ms\u001b[22;24;40;37mt\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"show_tc('basic_bg')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 296,
|
||||
"id": "civic-elder",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"\u001b[22;24;40;37mF\u001b[22;24;40;37mo\u001b[22;24;40;37mo\u001b[22;24;40;37mb\u001b[22;24;40;37ma\u001b[22;24;40;37mr\u001b[22;24;43;35mb\u001b[22;24;43;35ma\u001b[22;24;43;35mz\u001b[22;24;40;37m \u001b[22;24;40;37mt\u001b[22;24;40;37mh\u001b[22;24;40;37mi\u001b[22;24;40;37ms\u001b[22;24;40;37m \u001b[22;24;40;37mi\u001b[22;24;40;37ms\u001b[22;24;40;37m \u001b[22;24;40;37ma\u001b[22;24;40;37m \u001b[22;24;40;37mt\u001b[22;24;40;37me\u001b[22;24;40;37ms\u001b[22;24;40;37mt\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"show_tc('separate')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 297,
|
||||
"id": "gentle-mount",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"\u001b[22;24;40;37mF\u001b[22;24;40;37mo\u001b[22;24;40;37mo\u001b[22;24;40;37mb\u001b[22;24;40;37ma\u001b[22;24;40;37mr\u001b[22;24;43;35mb\u001b[22;24;43;35ma\u001b[22;24;43;35mz\u001b[22;24;40;37m \u001b[22;24;40;37mt\u001b[22;24;40;37mh\u001b[22;24;40;37mi\u001b[22;24;40;37ms\u001b[22;24;40;37m \u001b[22;24;40;37mi\u001b[22;24;40;37ms\u001b[22;24;40;37m \u001b[22;24;40;37ma\u001b[22;24;40;37m \u001b[22;24;40;37mt\u001b[22;24;40;37me\u001b[22;24;40;37ms\u001b[22;24;40;37mt\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"show_tc('combined')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 298,
|
||||
"id": "complete-fellow",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"\u001b[22;24;40;37mF\u001b[22;24;40;37mo\u001b[22;24;40;37mo\u001b[22;24;40;37mb\u001b[22;24;40;37ma\u001b[22;24;40;37mr\u001b[22;24;43;35mb\u001b[22;24;43;35ma\u001b[22;24;43;35mz\u001b[22;24;40;35m \u001b[22;24;40;35mt\u001b[22;24;40;35mh\u001b[22;24;40;35mi\u001b[22;24;40;35ms\u001b[22;24;40;35m \u001b[22;24;40;35mi\u001b[22;24;40;35ms\u001b[22;24;40;35m \u001b[22;24;40;35ma\u001b[22;24;40;35m \u001b[22;24;40;35mt\u001b[22;24;40;35me\u001b[22;24;40;35ms\u001b[22;24;40;35mt\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n",
|
||||
"\u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \u001b[22;24;40;30m \n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"show_tc('complex')"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.9.2"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
||||
52
test_bench/term_emu_tb_show.py
Normal file
52
test_bench/term_emu_tb_show.py
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import re
|
||||
import string
|
||||
|
||||
def read_hexfile(filename):
|
||||
with open(filename) as f:
|
||||
gen = ((int(line, 16) if re.match(r'^[0-9a-f]+$', line) else 0) for line in f if line.strip())
|
||||
return list(gen)
|
||||
|
||||
def show_tc(tc_id, w=100, h=5, glyphmem_w=256, glyphmem_h=128):
|
||||
data = read_hexfile(f'../Artix-7-HDMI-processing.sim/sim_1/behav/xsim/test_term_emu_dump_{tc_id}.hex')
|
||||
data = data[1:]
|
||||
for y in range(h):
|
||||
for x in range(w):
|
||||
entry = data[y*glyphmem_w + x]
|
||||
char = chr(entry&0xff)
|
||||
|
||||
style = (entry>>8)&0xfff
|
||||
bold = 1 if style&(1<<10) else 22
|
||||
underline = 4 if style&(1<<11) else 24
|
||||
bg = (style>>4) & 0xf
|
||||
bg = 40 + bg if bg < 8 else 100 + bg - 8
|
||||
fg = style & 0xf
|
||||
fg = 30 + fg if fg < 8 else 90 + fg - 8
|
||||
print(f'\033[{bold};{underline};{bg};{fg}m', end='')
|
||||
|
||||
if char == '\n':
|
||||
print('↵', end='')
|
||||
elif char in string.printable:
|
||||
print(char, end='')
|
||||
elif char in ' \0':
|
||||
print(' ', end='')
|
||||
else:
|
||||
print('\033[40;37m?', end='')
|
||||
print()
|
||||
|
||||
if __name__ == '__main__':
|
||||
for tc in [
|
||||
'bold',
|
||||
'underline',
|
||||
'basic_fg',
|
||||
'basic_bg',
|
||||
'separate',
|
||||
'combined',
|
||||
'complex',
|
||||
'reset',
|
||||
'fg_newline',
|
||||
'color_palette']:
|
||||
print()
|
||||
print(f'\033[0m=== Testcase {tc} ===')
|
||||
show_tc(tc)
|
||||
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue