From bee95280e5ed22c62fcce77b30f35baa09c1f46e Mon Sep 17 00:00:00 2001 From: OGAWA Keiji <70509917+kibi2@users.noreply.github.com> Date: Tue, 7 Apr 2026 07:43:02 +0900 Subject: [PATCH 1/4] refactor: api.nvim_buf_line_count(bufnr) -> buffer.line_count(bufnr) --- lua/tirenvi/core/tir_vim.lua | 3 ++- lua/tirenvi/editor/motion.lua | 3 ++- lua/tirenvi/render.lua | 3 +-- lua/tirenvi/state/buffer.lua | 6 +++--- lua/tirenvi/util/log.lua | 4 ++-- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/lua/tirenvi/core/tir_vim.lua b/lua/tirenvi/core/tir_vim.lua index b57bedd..525d19a 100644 --- a/lua/tirenvi/core/tir_vim.lua +++ b/lua/tirenvi/core/tir_vim.lua @@ -1,5 +1,6 @@ local config = require("tirenvi.config") local util = require("tirenvi.util.util") +local buffer = require("tirenvi.state.buffer") local log = require("tirenvi.util.log") local pipen = config.marks.pipe @@ -205,7 +206,7 @@ function M.get_block_rect(line_provider, count, is_around, allow_plain) brow = M.get_block_bottom_nrow(line_provider, irow) else trow = 1 - brow = api.nvim_buf_line_count(0) + brow = buffer.line_count(0) end local tline = line_provider.get_line(trow) or "" local bline = line_provider.get_line(brow) or "" diff --git a/lua/tirenvi/editor/motion.lua b/lua/tirenvi/editor/motion.lua index 8df8258..70b5e37 100644 --- a/lua/tirenvi/editor/motion.lua +++ b/lua/tirenvi/editor/motion.lua @@ -1,5 +1,6 @@ local config = require("tirenvi.config") local buf_state = require("tirenvi.state.buf_state") +local buffer = require("tirenvi.state.buffer") local LinProvider = require("tirenvi.state.buffer_line_provider") local tir_vim = require("tirenvi.core.tir_vim") local util = require("tirenvi.util.util") @@ -53,7 +54,7 @@ function M.block_bottom() local bottom local parser = util.get_parser(bufnr) if not parser or not parser.allow_plain then - bottom = vim.api.nvim_buf_line_count(bufnr) + bottom = buffer.line_count(bufnr) else local line_provider = LinProvider.new(0) bottom = tir_vim.get_block_bottom_nrow(line_provider, row) diff --git a/lua/tirenvi/render.lua b/lua/tirenvi/render.lua index c776530..8a56580 100644 --- a/lua/tirenvi/render.lua +++ b/lua/tirenvi/render.lua @@ -10,8 +10,7 @@ local M = {} ---@param last integer ---@param id integer function M.set_range(bufnr, first, last, id) - local line_count = vim.api.nvim_buf_line_count(bufnr) - last = math.min(last, line_count - 1) + last = math.min(last, buffer.line_count(bufnr) - 1) local line = buffer.get_line(bufnr, last) local end_col = #line local opts = { diff --git a/lua/tirenvi/state/buffer.lua b/lua/tirenvi/state/buffer.lua index a8a8e4c..99f0237 100644 --- a/lua/tirenvi/state/buffer.lua +++ b/lua/tirenvi/state/buffer.lua @@ -181,7 +181,7 @@ end function M.get_lines(bufnr, i_start, i_end) bufnr = bufnr == 0 and api.nvim_get_current_buf() or bufnr i_start = math.max(0, i_start) - local nline = api.nvim_buf_line_count(bufnr) + local nline = M.line_count(bufnr) if i_end == -1 then i_end = nline end @@ -210,7 +210,7 @@ function M.get_line(bufnr, iline) get_lines_and_cache(bufnr, iline - 2 * STEP, iline + 1) end else - if iline < api.nvim_buf_line_count(bufnr) then + if iline < M.line_count(bufnr) then get_lines_and_cache(bufnr, iline, iline + 2 * STEP) end end @@ -218,7 +218,7 @@ function M.get_line(bufnr, iline) end ---@param bufnr number ----@return string|nil +---@return integer function M.line_count(bufnr) return api.nvim_buf_line_count(bufnr) end diff --git a/lua/tirenvi/util/log.lua b/lua/tirenvi/util/log.lua index 240080d..d886668 100644 --- a/lua/tirenvi/util/log.lua +++ b/lua/tirenvi/util/log.lua @@ -123,7 +123,7 @@ local function get_bufnr_by_name(name) return nil end ----@return boolean +---@return number local function ensure_log_buf() if log_bufnr and api.nvim_buf_is_valid(log_bufnr) then return log_bufnr @@ -132,7 +132,7 @@ local function ensure_log_buf() if log_bufnr then return log_bufnr end - + ---@type number log_bufnr = api.nvim_create_buf(false, true) api.nvim_buf_set_name(log_bufnr, config.log.buffer_name) From d5b899dfcc8a88cc00a66efe8fed395c3f70cfef Mon Sep 17 00:00:00 2001 From: OGAWA Keiji <70509917+kibi2@users.noreply.github.com> Date: Tue, 7 Apr 2026 08:31:07 +0900 Subject: [PATCH 2/4] refactor: leverage buffer cache to minimize line fetching Avoid reading the entire buffer and fetch only required lines. --- lua/tirenvi/state/buf_state.lua | 4 ++-- lua/tirenvi/state/buffer.lua | 6 ++++-- tests/cases/ut/state/buffer/out-expected.txt | 10 +++++----- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/lua/tirenvi/state/buf_state.lua b/lua/tirenvi/state/buf_state.lua index 65e2c37..d3fb88f 100644 --- a/lua/tirenvi/state/buf_state.lua +++ b/lua/tirenvi/state/buf_state.lua @@ -25,8 +25,8 @@ end ---@param bufnr number ---@return boolean local function has_pipe(bufnr) - local fl_lines = buffer.get_lines(bufnr, 0, -1) - for _, fl_line in ipairs(fl_lines) do + for iline = 0, buffer.line_count(bufnr) do + local fl_line = buffer.get_line(bufnr, iline) if tir_vim.has_pipe(fl_line) then return true end diff --git a/lua/tirenvi/state/buffer.lua b/lua/tirenvi/state/buffer.lua index 99f0237..a2db4a8 100644 --- a/lua/tirenvi/state/buffer.lua +++ b/lua/tirenvi/state/buffer.lua @@ -73,8 +73,10 @@ end ---@param i_start integer ---@param i_end integer integer local function get_lines_and_cache(bufnr, i_start, i_end) - local start = math.max(0, i_start) - local lines = api.nvim_buf_get_lines(bufnr, start, i_end, false) + local start = math.max(i_start, 0) + local end_ = math.min(math.max(i_end, start + 2 * STEP), M.line_count(bufnr)) + local start = math.max(math.min(start, end_ - 2 * STEP), 0) + local lines = api.nvim_buf_get_lines(bufnr, start, end_, false) cache = { bufnr = bufnr, start = start, lines = lines, } log.debug("===== bufnr=%d, start=%d, end=%d, lines[1]=%s, line[%d]=%s, ", cache.bufnr, cache.start, cache.start + #cache.lines, diff --git a/tests/cases/ut/state/buffer/out-expected.txt b/tests/cases/ut/state/buffer/out-expected.txt index a12773d..493768d 100644 --- a/tests/cases/ut/state/buffer/out-expected.txt +++ b/tests/cases/ut/state/buffer/out-expected.txt @@ -1,23 +1,23 @@ === MESSAGE === [TIR][🟧PROBE][[string ":lua"]:14] buffer.get_lines(0, 0, -1) -[TIR][DEBUG][buffer.lua:79] ===== bufnr=1, start=0, end=21, lines[1]=0, line[21]=20, +[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=0, end=21, lines[1]=0, line[21]=20, [TIR][DEBUG][[string ":lua"]:16] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" } [TIR][DEBUG][[string ":lua"]:18]
{ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" } [TIR][🟧PROBE][[string ":lua"]:19] buffer.get_lines(0, -100, 100) [TIR][DEBUG][[string ":lua"]:21]
{ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" } [TIR][🟧PROBE][[string ":lua"]:22] clear & buffer.get_lines(0, 9, 13) -[TIR][DEBUG][buffer.lua:79] ===== bufnr=1, start=6, end=16, lines[1]=6, line[10]=15, +[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=6, end=16, lines[1]=6, line[10]=15, [TIR][DEBUG][[string ":lua"]:25]
{ "9", "10", "11", "12" } [TIR][🟧PROBE][[string ":lua"]:26] buffer.get_line(0, 6) [TIR][DEBUG][[string ":lua"]:28] 6 [TIR][🟧PROBE][[string ":lua"]:29] buffer.get_line(0, 2) -[TIR][DEBUG][buffer.lua:79] ===== bufnr=1, start=0, end=3, lines[1]=0, line[3]=2, +[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=0, end=6, lines[1]=0, line[6]=5, [TIR][DEBUG][[string ":lua"]:31] 2 [TIR][🟧PROBE][[string ":lua"]:32] buffer.get_line(0, 19) -[TIR][DEBUG][buffer.lua:79] ===== bufnr=1, start=19, end=21, lines[1]=19, line[2]=20, +[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=15, end=21, lines[1]=15, line[6]=20, [TIR][DEBUG][[string ":lua"]:34] 19 [TIR][🟧PROBE][[string ":lua"]:35] buffer.get_line(0, 10) -[TIR][DEBUG][buffer.lua:79] ===== bufnr=1, start=4, end=11, lines[1]=4, line[7]=10, +[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=4, end=11, lines[1]=4, line[7]=10, [TIR][DEBUG][[string ":lua"]:37] 10 [TIR][🟧PROBE][[string ":lua"]:38] buffer.get_line(0, -1) [TIR][DEBUG][[string ":lua"]:40] nil From 380e0bba498384155ac4b3dae532794c05de8c00 Mon Sep 17 00:00:00 2001 From: OGAWA Keiji <70509917+kibi2@users.noreply.github.com> Date: Tue, 7 Apr 2026 08:58:30 +0900 Subject: [PATCH 3/4] feat: implement pipe-aware f/t motions for cell navigation --- lua/tirenvi/core/attr.lua | 50 +--- lua/tirenvi/core/block.lua | 165 ++++++++----- lua/tirenvi/core/blocks.lua | 101 +++----- lua/tirenvi/core/cell.lua | 74 +++++- lua/tirenvi/core/flat_parser.lua | 45 ++-- lua/tirenvi/core/record.lua | 96 +++----- lua/tirenvi/core/repair.lua | 2 +- lua/tirenvi/core/tir_vim.lua | 8 +- lua/tirenvi/core/vim_parser.lua | 2 +- lua/tirenvi/editor/motion.lua | 24 +- lua/tirenvi/editor/textobj.lua | 14 +- lua/tirenvi/init.lua | 15 +- lua/tirenvi/state/buf_state.lua | 3 +- lua/tirenvi/state/buffer.lua | 2 +- lua/tirenvi/util/util.lua | 24 +- tests/cases/edit/csv-main/out-expected.txt | 228 +++++++++--------- .../error/invalid-table/out-expected.txt | 14 +- tests/cases/file/csv/out-expected.txt | 21 +- tests/cases/file/csv/run.vim | 2 +- tests/cases/file/foo/out-expected.txt | 14 +- tests/cases/file/tsv/out-expected.txt | 14 +- tests/cases/filetype/csv2csv/out-expected.txt | 14 +- .../cases/insert/lf-at-start/out-expected.txt | 16 +- .../cases/insert/lf-in-cell/out-expected.txt | 16 +- .../cases/insert/tab-expand/out-expected.txt | 14 +- tests/cases/motion/ftg/out-expected.txt | 2 +- tests/cases/motion/ftg/run.vim | 15 +- tests/cases/motion/g-csv/out-expected.txt | 224 ++++++++--------- tests/cases/motion/g-csv/run.vim | 2 + tests/cases/normal/join/out-expected.txt | 16 +- tests/cases/normal/o/out-expected.txt | 19 +- tests/cases/normal/o/run.vim | 10 +- tests/cases/save/as-csv/out-expected.txt | 228 +++++++++--------- tests/cases/save/as-csv2tsv/out-expected.txt | 14 +- tests/cases/save/as-csv2xxx/out-expected.txt | 228 +++++++++--------- tests/cases/save/csv/out-expected.txt | 228 +++++++++--------- tests/cases/textobj/val/out-expected.txt | 14 +- tests/cases/textobj/vil/run.vim | 4 + tests/cases/tir/on/out-expected.txt | 228 +++++++++--------- tests/cases/tir/redraw/run.vim | 3 + tests/cases/ut/state/buffer/out-expected.txt | 10 +- 41 files changed, 1127 insertions(+), 1096 deletions(-) diff --git a/lua/tirenvi/core/attr.lua b/lua/tirenvi/core/attr.lua index db8df12..9a49df3 100644 --- a/lua/tirenvi/core/attr.lua +++ b/lua/tirenvi/core/attr.lua @@ -1,4 +1,3 @@ -local CONST = require("tirenvi.constants") local Cell = require("tirenvi.core.cell") local log = require("tirenvi.util.log") @@ -48,28 +47,6 @@ local function new_from_columns(columns) return { columns = columns } end ----@param records Record_grid[] ----@return Attr -local function new_merged_attr(records) - local attr = M.grid.new() - for _, record in ipairs(records) do - merge(attr, M.grid.new_from_record(record)) - end - return attr -end - ----@self Attr ----@param source Attr -local function extend(self, source) - if #self.columns == 0 then - self.columns = source.columns - else - for index, column in ipairs(self.columns) do - column.width = column.width or source.columns[index].width - end - end -end - ----------------------------------------------------------------------- -- Public API ----------------------------------------------------------------------- @@ -131,29 +108,14 @@ function M.grid.new_from_record(record) return new_from_columns(get_columns(record.row)) end ----@self Attr ---@param records Record_grid[] -function M.grid:extend(records) - extend(self, new_merged_attr(records)) -end - ----@self Attr ----@return boolean -function M.grid:has_all() - if not self or self.kind ~= CONST.KIND.ATTR_GRID then - return false - end - local cols = self.columns - if not cols or #cols == 0 then - return false - end - for index = 1, #cols do - local col = cols[index] - if not col or not col.width or not col.align then - return false - end +---@return Attr +function M.new_merged_attr(records) + local attr = M.grid.new() + for _, record in ipairs(records) do + merge(attr, M.grid.new_from_record(record)) end - return true + return attr end return M diff --git a/lua/tirenvi/core/block.lua b/lua/tirenvi/core/block.lua index a844ebb..ab501c6 100644 --- a/lua/tirenvi/core/block.lua +++ b/lua/tirenvi/core/block.lua @@ -1,6 +1,5 @@ local CONST = require("tirenvi.constants") local Record = require("tirenvi.core.record") -local Cell = require("tirenvi.core.cell") local config = require("tirenvi.config") local Attr = require("tirenvi.core.attr") local util = require("tirenvi.util.util") @@ -12,20 +11,32 @@ M.grid = {} -- constants / defaults +---@param map {[string]: string} +---@return {[string]: string} +local function prepare_replace_map(map) + local out = {} + for key, value in pairs(map) do + out[vim.pesc(key)] = value + end + return out +end + +local ESCAPE_MAP = prepare_replace_map({ + ["\n"] = config.marks.lf, + ["\t"] = config.marks.tab, +}) + +local UNESCAPE_MAP = prepare_replace_map({ + [config.marks.lf] = "\n", + [config.marks.tab] = "\t", +}) + ----------------------------------------------------------------------- -- Private helpers ----------------------------------------------------------------------- local function nop(...) end ----@self Block_grid -local function reset_master_attr(self) - if Attr.grid.has_all(self.attr) then - return - end - Attr.grid.extend(self.attr, self.records) -end - ---@self Block ---@param kind Block_kind local function initialize(self, kind) @@ -45,16 +56,25 @@ local function serialize_records(self) end ---@param self Block_grid -local function split_lf(self) +local function wrap_lf(self) + local records = {} + for _, record in ipairs(self.records) do + util.extend(records, Record.grid.wrap_lf(record)) + end + self.records = records +end + +---@param self Block_grid +local function wrap_width(self) local records = {} for _, record in ipairs(self.records) do - util.extend(records, Record.grid.split_lf(record)) + util.extend(records, Record.grid.wrap_width(record, self.attr.columns)) end self.records = records end ---@param self Block_grid -local function fill_padding(self) +local function apply_column_widths(self) for _, record in ipairs(self.records) do Record.grid.fill_padding(record, self.attr.columns) end @@ -68,7 +88,7 @@ local function remove_padding(self) end ---@self Block_grid -local function concat_record(self) +local function unwrap(self) local records = {} ---@type Record_grid local new_record = nil @@ -85,6 +105,44 @@ local function concat_record(self) self.records = records end +--- Normalize all rows in a grid block to have the same number of columns. +---@self Block_grid +local function apply_column_count(self, ncol) + for _, record in ipairs(self.records) do + Record.apply_column_count(record, ncol) + end +end + +local function derive_column_count(self) + local ncol = 0 + for _, record in ipairs(self.records) do + ncol = math.max(ncol, #record.row) + end + return ncol +end + +---@self Block +local function ensure_table_attr(self) + if #self.attr.columns == 0 then + self.attr = Attr.new_merged_attr(self.records) + end +end + +---@self Block +---@self Block_grid +---@param replace {[string]:string} +local function apply_replacements(self, replace) + for _, record in ipairs(self.records) do + assert(record.kind == CONST.KIND.GRID, "unexpected record kind") + for icol, cell in ipairs(record.row) do + for key, val in pairs(replace) do + cell = cell:gsub(key, val) + end + record.row[icol] = cell + end + end +end + ----------------------------------------------------------------------- -- Public API ----------------------------------------------------------------------- @@ -128,13 +186,6 @@ function M.plain:serialize() return serialize_records(self) end -M.plain.normalize = nop -M.plain.to_vim = nop -M.plain.apply_replacements = nop -M.plain.from_vim = nop -M.plain.set_attr = nop -M.plain.set_attr_from_vi = nop - ---@self Block_plain ---@return Block_grid function M.plain:to_grid() @@ -147,70 +198,62 @@ function M.plain:to_grid() return block end +M.plain.set_attr = nop +M.plain.from_flat = nop +M.plain.to_flat = nop +M.plain.from_vim = nop +M.plain.to_vim = nop + ---@self Block_grid ---@return Ndjson[] function M.grid:serialize() return serialize_records(self) end ---- Normalize all rows in a grid block to have the same number of columns. ---@self Block_grid -function M.grid:normalize() - reset_master_attr(self) - local ncol = #self.attr.columns - for _, record in ipairs(self.records) do - Record.normalize_and_resize(record, ncol) +---@return Block_grid +function M.grid:to_grid() + return self +end + +---@self Block +---@param attr Attr|nil +function M.grid:set_attr(attr) + if not attr or Attr.is_plain(attr) then + return end + self.attr = attr end --- Normalize all rows in a grid block to have the same number of columns. ---@self Block_grid -function M.grid:to_vim() - split_lf(self) - fill_padding(self) +function M.grid:from_flat() + local ncol = derive_column_count(self) + apply_column_count(self, ncol) + apply_replacements(self, ESCAPE_MAP) end ---@self Block_grid ----@param replace {[string]:string} -function M.grid:apply_replacements(replace) - for _, record in ipairs(self.records) do - assert(record.kind == CONST.KIND.GRID, "unexpected record kind") - for icol, cell in ipairs(record.row) do - for key, val in pairs(replace) do - cell = cell:gsub(key, val) - end - record.row[icol] = cell - end - end +function M.grid:to_flat() + apply_replacements(self, UNESCAPE_MAP) end ---@self Block_grid function M.grid:from_vim() + ensure_table_attr(self) remove_padding(self) - concat_record(self) + apply_column_count(self, #self.attr.columns) + unwrap(self) end +--- Normalize all rows in a grid block to have the same number of columns. ---@self Block_grid ----@return Block_grid -function M.grid:to_grid() - return self -end - ----@self Block ----@param attr Attr|nil -function M.grid:set_attr(attr) - if not attr or Attr.is_plain(attr) then - return - end - self.attr = attr -end - ----@self Block -function M.grid:set_attr_from_vi() - if #self.records == 0 then - return - end - self.attr = Attr.grid.new_from_record(self.records[1]) +function M.grid:to_vim() + wrap_lf(self) + ensure_table_attr(self) + wrap_width(self) + apply_column_count(self, #self.attr.columns) + apply_column_widths(self) end return M diff --git a/lua/tirenvi/core/blocks.lua b/lua/tirenvi/core/blocks.lua index 063fe5b..e571778 100644 --- a/lua/tirenvi/core/blocks.lua +++ b/lua/tirenvi/core/blocks.lua @@ -18,16 +18,6 @@ M.VERSION = "tir/0.1" -- constants / defaults -local ESCAPE_MAP = { - ["\n"] = config.marks.lf, - ["\t"] = config.marks.tab, -} - -local UNESCAPE_MAP = { - [config.marks.lf] = "\n", - [config.marks.tab] = "\t", -} - ----------------------------------------------------------------------- -- Utility ----------------------------------------------------------------------- @@ -37,28 +27,6 @@ local function new_attr_file() return { kind = CONST.KIND.ATTR_FILE, version = M.VERSION } end ----@self Blocks ----@param replace {[string]: string} -local function apply_replacements(self, replace) - for _, block in ipairs(self) do - Block[block.kind].apply_replacements(block, replace) - end -end - ----@self Blocks -local function set_attr(self) - for _, block in ipairs(self) do - Block[block.kind].set_attr_from_vi(block) - end -end - ----@self Blocks -local function from_vim(self) - for _, block in ipairs(self) do - Block[block.kind].from_vim(block) - end -end - ----------------------------------------------------------------------- -- Block construction ----------------------------------------------------------------------- @@ -67,12 +35,12 @@ end ---@param records Ndjson[] ---@return Blocks local function build_blocks(records) - local blocks = {} + local self = {} ---@type Block local block = Block.new() local function flush_block() if #(block.records) ~= 0 then - table.insert(blocks, block) + table.insert(self, block) end block = Block.new() end @@ -91,7 +59,7 @@ local function build_blocks(records) end end flush_block() - return blocks + return self end ----------------------------------------------------------------------- @@ -163,20 +131,13 @@ end ---@param blocks Blocks ---@param attr_prev Attr|nil ---@param attr_next Attr|nil +---@return boolean local function apply_reference_attr_multi(blocks, attr_prev, attr_next) insert_plain_block(blocks, attr_prev, attr_next) attach_attr(blocks, attr_prev, attr_next) + return true end ----@param map {[string]: string} ----@return {[string]: string} -local function prepare_replace_map(map) - local out = {} - for key, value in pairs(map) do - out[vim.pesc(key)] = value - end - return out -end ----------------------------------------------------------------------- -- Public API ----------------------------------------------------------------------- @@ -200,54 +161,57 @@ function M.merge_blocks(self) end end ---- Convert NDJSON records into normalized blocks. ----@param ndjsons Ndjson[] ----@return Blocks -function M.new_from_flat(ndjsons) - local self = build_blocks(ndjsons) - local map = prepare_replace_map(ESCAPE_MAP) - apply_replacements(self, map) - return self +---@self Blocks +function M:reset_attr() + for _, block in ipairs(self) do + Block.reset_attr(block) + end end --- Convert NDJSON records into normalized blocks. ----@param records Record[] +---@param ndjsons Ndjson[] ---@return Blocks -function M.new_from_vim(records) - local self = build_blocks(records) - set_attr(self) - from_vim(self) - return self -end - ----@self Blocks -function M:reset_attr() +function M.new_from_flat(ndjsons, allow_plain) + local self = build_blocks(ndjsons) + if not allow_plain then + M.merge_blocks(self) + end for _, block in ipairs(self) do - Block.reset_attr(block) + Block[block.kind].from_flat(block) end + return self end ---@self Blocks ---@return Ndjson[] function M:serialize_to_flat() - local map = prepare_replace_map(UNESCAPE_MAP) - apply_replacements(self, map) local ndjsons = { new_attr_file() } for _, block in ipairs(self) do local impl = Block[block.kind] - impl.normalize(block) + impl.to_flat(block) util.extend(ndjsons, impl.serialize(block)) end return ndjsons end +--- Convert NDJSON records into normalized blocks. +---@param records Record[] +---@return Blocks +function M.new_from_vim(records) + local self = build_blocks(records) + for _, block in ipairs(self) do + Block[block.kind].from_vim(block) + end + + return self +end + ---@self Blocks ---@return Ndjson[] function M:serialize_to_vim() local ndjsons = {} for _, block in ipairs(self) do local impl = Block[block.kind] - impl.normalize(block) impl.to_vim(block) util.extend(ndjsons, impl.serialize(block)) end @@ -262,8 +226,7 @@ end ---@return RefAttrError|nil function M:repair(attr_prev, attr_next, allow_plain) if allow_plain then - apply_reference_attr_multi(self, attr_prev, attr_next) - return true + return apply_reference_attr_multi(self, attr_prev, attr_next) else return apply_reference_attr_single(self, attr_prev, attr_next) end diff --git a/lua/tirenvi/core/cell.lua b/lua/tirenvi/core/cell.lua index 4aa4caf..01eea75 100644 --- a/lua/tirenvi/core/cell.lua +++ b/lua/tirenvi/core/cell.lua @@ -1,4 +1,5 @@ local config = require("tirenvi.config") +local util = require("tirenvi.util.util") local M = {} @@ -6,6 +7,9 @@ local M = {} local fn = vim.fn local padding = config.marks.padding local escaped_padding = vim.pesc(padding) +local lf = config.marks.lf + +local multiline_lf = true ----------------------------------------------------------------------- -- Private helpers @@ -42,14 +46,23 @@ function M.normalize(cells, ncol) local cell = cells[index] if cell == nil then cells[index] = "" - elseif type(cell) == "string" then - -- do nothing - else + elseif type(cell) ~= "string" then cells[index] = tostring(cell) end end end +---@param cells Cell[] +---@param ncol integer +---@return Cell[] +function M.merge_tail(cells, ncol) + if #cells <= ncol then + return cells + end + cells[ncol] = table.concat(cells, " ", ncol) + return vim.list_slice(cells, 1, ncol) +end + ---@param self Cell ---@param target_width integer ---@return string @@ -71,4 +84,59 @@ function M:remove_padding() return (self:gsub(escaped_padding, "")) end +---@param self Cell +---@param _has_continuation boolean +---@return Cell[] +function M:wrap_lf(_has_continuation) + if not multiline_lf then + return { self } + end + local cells = vim.split(self, lf) + for irow = 1, #cells - 1 do + cells[irow] = cells[irow] .. lf + end + if #cells > 1 and cells[#cells] == "" and _has_continuation then + cells[#cells] = nil + end + return cells +end + +---@param self Cell +---@param width integer +---@return Cell[] +function M:wrap_width(width) + local cells = {} + + -- 空やwidth不正はそのまま返す + if not self or self == "" or width <= 0 then + return { self } + end + + local chars = util.utf8_chars(self) + + local current = "" + local current_width = 0 + + for _, ch in ipairs(chars) do + local ch_width = display_width(ch) + + -- 追加すると幅オーバーする場合は確定 + if current ~= "" and current_width + ch_width > width then + cells[#cells + 1] = current + current = ch + current_width = ch_width + else + current = current .. ch + current_width = current_width + ch_width + end + end + + -- 残りを追加 + if current ~= "" then + cells[#cells + 1] = current + end + + return cells +end + return M diff --git a/lua/tirenvi/core/flat_parser.lua b/lua/tirenvi/core/flat_parser.lua index 0a70587..f1a1c66 100644 --- a/lua/tirenvi/core/flat_parser.lua +++ b/lua/tirenvi/core/flat_parser.lua @@ -156,30 +156,6 @@ end -- public API ----@param fl_lines string[] ----@param parser Parser ----@return Blocks -function M.parse(fl_lines, parser) - local js_lines = flat_to_js_lines(fl_lines, parser) - local ndjsons = js_lines_to_ndjsons(js_lines) - local blocks = Blocks.new_from_flat(ndjsons) - if not parser.allow_plain then - Blocks.merge_blocks(blocks) - end - return blocks -end - ---- Convert display lines back to TSV format ----@param blocks Blocks ----@param parser Parser ----@return string[] -function M.unparse(blocks, parser) - local ndjsons = Blocks.serialize_to_flat(blocks) - local js_lines = ndjsons_to_lines(ndjsons) - log.debug({ #js_lines, js_lines[1], js_lines[#js_lines] }) - return js_lines_to_flat(js_lines, parser) -end - ---@class HealthItem ---@field status "ok"|"warn"|"error" ---@field message string @@ -241,4 +217,25 @@ function M.check_command(parser) return results end +---@param fl_lines string[] +---@param parser Parser +---@return Blocks +function M.parse(fl_lines, parser) + local js_lines = flat_to_js_lines(fl_lines, parser) + local ndjsons = js_lines_to_ndjsons(js_lines) + local blocks = Blocks.new_from_flat(ndjsons, parser.allow_plain) + return blocks +end + +--- Convert display lines back to TSV format +---@param blocks Blocks +---@param parser Parser +---@return string[] +function M.unparse(blocks, parser) + local ndjsons = Blocks.serialize_to_flat(blocks) + local js_lines = ndjsons_to_lines(ndjsons) + log.debug({ #js_lines, js_lines[1], js_lines[#js_lines] }) + return js_lines_to_flat(js_lines, parser) +end + return M diff --git a/lua/tirenvi/core/record.lua b/lua/tirenvi/core/record.lua index eb00509..50c632a 100644 --- a/lua/tirenvi/core/record.lua +++ b/lua/tirenvi/core/record.lua @@ -9,65 +9,27 @@ M.plain = {} M.grid = {} -- constants / defaults -local lf = config.marks.lf ----------------------------------------------------------------------- -- Private helpers ----------------------------------------------------------------------- ----@param line string ----@return Record_plain -local function plain_new(line) - return { kind = CONST.KIND.PLAIN, line = line } -end - ----@param self Record_grid ----@param new_count integer ----@return nil -local function decrease_cols(self, new_count) - local row = self.row - row[new_count] = table.concat(row, " ", new_count) - for i = #row, new_count + 1, -1 do - row[i] = nil - end -end +----------------------------------------------------------------------- +-- Public API +----------------------------------------------------------------------- ---@param self Record_grid ---@param ncol integer -local function resize_columns(self, ncol) - local old_count = #self.row - if old_count > ncol then - decrease_cols(self, ncol) - end -end - ----@param self Record_grid -local function normalize_row(self, ncol) +function M:apply_column_count(ncol) self.row = self.row or {} Cell.normalize(self.row, ncol) -end - ------------------------------------------------------------------------ --- Public API ------------------------------------------------------------------------ - ----@param cells Cell[]|nil ----@return Record_grid -function M.grid.new(cells) - return { kind = CONST.KIND.GRID, row = cells or {} } + self.row = Cell.merge_tail(self.row, ncol) -- TODO join end ---@param vi_line string ---@return Record_plain function M.plain.new_from_vi_line(vi_line) - return plain_new(vi_line) -end - ----@param self Record_grid ----@param ncol integer -function M:normalize_and_resize(ncol) - normalize_row(self, ncol) - resize_columns(self, ncol) + return { kind = CONST.KIND.PLAIN, line = vi_line } end ---@param self Record_plain @@ -76,6 +38,12 @@ function M.plain:to_grid() return M.grid.new({ self.line }) end +---@param cells Cell[]|nil +---@return Record_grid +function M.grid.new(cells) + return { kind = CONST.KIND.GRID, row = cells or {} } +end + ---@param vi_line string ---@param has_continuation boolean ---@return Record_grid @@ -102,32 +70,42 @@ function M.grid:remove_padding() end end -local multiline_lf = true - ---@param self Record_grid ---@return Record_grid[] -function M.grid:split_lf() +function M.grid:wrap_lf() local records = {} - local nrow = 0 for icol, cell in ipairs(self.row) do - local cells = { cell } - if multiline_lf then - cells = vim.split(cell, lf) - if #cells > 1 and cells[#cells] == "" and self._has_continuation then - cells[#cells] = nil - end + local cells = Cell.wrap_lf(cell, self._has_continuation) + for irow, cell in ipairs(cells) do + records[irow] = records[irow] or M.grid.new() + records[irow].row[icol] = cell end + end + local ncol = #self.row + for irow = 1, #records do + records[irow]._has_continuation = true + Cell.normalize(records[irow].row, ncol) + end + records[#records]._has_continuation = self._has_continuation + return records +end + +---@param self Record_grid +---@param columns Attr_column[] +---@return Record_grid[] +function M.grid:wrap_width(columns) + local records = {} + for icol, cell in ipairs(self.row) do + local cells = Cell.wrap_width(cell, columns[icol].width) for irow, cell in ipairs(cells) do records[irow] = records[irow] or M.grid.new() - local append = irow ~= #cells and lf or "" - records[irow].row[icol] = cell .. append + records[irow].row[icol] = cell end - nrow = math.max(nrow, #cells) end local ncol = #self.row - for irow = 1, nrow do + for irow = 1, #records do records[irow]._has_continuation = true - normalize_row(records[irow], ncol) + Cell.normalize(records[irow].row, ncol) end records[#records]._has_continuation = self._has_continuation return records diff --git a/lua/tirenvi/core/repair.lua b/lua/tirenvi/core/repair.lua index 219c966..fff8c20 100644 --- a/lua/tirenvi/core/repair.lua +++ b/lua/tirenvi/core/repair.lua @@ -104,7 +104,6 @@ end ---@param bufnr number ---@param ranges Range[] local function repair_ranges(bufnr, ranges) - buffer.set_undo_tree_last(bufnr) for index = 1, #ranges do local first = ranges[index].first local last = ranges[index].last + 1 @@ -133,6 +132,7 @@ local function repair(bufnr, first, last, new_last) ui.diagnostic_set(bufnr, ranges) return end + buffer.set_undo_tree_last(bufnr) pcall(vim.cmd, "undojoin") repair_ranges(bufnr, ranges) end diff --git a/lua/tirenvi/core/tir_vim.lua b/lua/tirenvi/core/tir_vim.lua index 525d19a..6662d91 100644 --- a/lua/tirenvi/core/tir_vim.lua +++ b/lua/tirenvi/core/tir_vim.lua @@ -46,7 +46,7 @@ local function is_block_boundary(base_pipe, target) if not target then return true end - return base_pipe ~= (M.has_pipe(target) ~= nil) + return base_pipe ~= (M.get_pipe_char(target) ~= nil) end ---@param provider LineProvider @@ -55,7 +55,7 @@ end ---@return integer local function find_block_edge(provider, irow, step) local line = provider.get_line(irow) - local base_pipe = (M.has_pipe(line) ~= nil) + local base_pipe = (M.get_pipe_char(line) ~= nil) while true do irow = irow + step local line = provider.get_line(irow) @@ -159,7 +159,7 @@ end ---@param line string|nil ---@return string|nil -function M.has_pipe(line) +function M.get_pipe_char(line) if not line then return nil end @@ -178,7 +178,7 @@ function M.is_continue_line(line) if not line then return false end - return M.has_pipe(line) == pipec + return M.get_pipe_char(line) == pipec end ---@param line_provider LineProvider diff --git a/lua/tirenvi/core/vim_parser.lua b/lua/tirenvi/core/vim_parser.lua index 70d7a08..ba4f995 100644 --- a/lua/tirenvi/core/vim_parser.lua +++ b/lua/tirenvi/core/vim_parser.lua @@ -42,7 +42,7 @@ end ---@param vi_line string ---@return Record local function tir_vim_to_ndjson(vi_line) - local pipe = tir_vim.has_pipe(vi_line) + local pipe = tir_vim.get_pipe_char(vi_line) if pipe then return Record.grid.new_from_vi_line(vi_line, pipe == pipec) else diff --git a/lua/tirenvi/editor/motion.lua b/lua/tirenvi/editor/motion.lua index 70b5e37..136547f 100644 --- a/lua/tirenvi/editor/motion.lua +++ b/lua/tirenvi/editor/motion.lua @@ -1,5 +1,3 @@ -local config = require("tirenvi.config") -local buf_state = require("tirenvi.state.buf_state") local buffer = require("tirenvi.state.buffer") local LinProvider = require("tirenvi.state.buffer_line_provider") local tir_vim = require("tirenvi.core.tir_vim") @@ -7,23 +5,21 @@ local util = require("tirenvi.util.util") local M = {} +---@return string +local function get_pipe() + local irow = vim.api.nvim_win_get_cursor(0)[1] + local bufnr = vim.api.nvim_get_current_buf() + local line = buffer.get_line(bufnr, irow - 1) + return tir_vim.get_pipe_char(line) or "" +end + ---@param op string ---@return function local function build_motion(op) return function() - local bufnr = vim.api.nvim_get_current_buf() - if not buf_state.is_tir_vim(bufnr) then - return op - end - - local delim = config.marks.pipe local count = vim.v.count - - if count > 0 then - return count .. op .. delim - end - - return op .. delim + local prefix = (count > 0) and tostring(count) or "" + return prefix .. op .. get_pipe() end end diff --git a/lua/tirenvi/editor/textobj.lua b/lua/tirenvi/editor/textobj.lua index f39df76..c17c679 100644 --- a/lua/tirenvi/editor/textobj.lua +++ b/lua/tirenvi/editor/textobj.lua @@ -1,5 +1,4 @@ local tir_vim = require("tirenvi.core.tir_vim") -local buffer = require("tirenvi.state.buffer") local config = require("tirenvi.config") local util = require("tirenvi.util.util") local LinProvider = require("tirenvi.state.buffer_line_provider") @@ -25,24 +24,23 @@ local function setup_vl(line_provider, is_around) vim.api.nvim_win_set_cursor(0, { pos.end_row, pos.end_col - 1, }) end --- public API - -function M.setup_vil() +local function setup_vil() local line_provider = LinProvider.new(0) setup_vl(line_provider) end -function M.setup_val() +local function setup_val() local line_provider = LinProvider.new(0) setup_vl(line_provider, true) end +-- public API + function M.setup() - vim.keymap.set({ "x" }, "i" .. config.textobj.column, M.setup_vil, { + vim.keymap.set({ "x" }, "i" .. config.textobj.column, setup_vil, { desc = "Inner column", }) - - vim.keymap.set({ "x" }, "a" .. config.textobj.column, M.setup_val, { + vim.keymap.set({ "x" }, "a" .. config.textobj.column, setup_val, { desc = "Around column", }) end diff --git a/lua/tirenvi/init.lua b/lua/tirenvi/init.lua index 174ac47..1de53ce 100644 --- a/lua/tirenvi/init.lua +++ b/lua/tirenvi/init.lua @@ -171,7 +171,7 @@ end ---@return nil function M.restore_tir_vim(bufnr) pcall(vim.cmd, "undojoin") - from_flat(bufnr) + from_flat(bufnr) -- TODO recover Attr_grid end ---@param bufnr number|nil Buffer number. @@ -213,15 +213,16 @@ function M.insert_char_in_newline(bufnr) local winid = api.nvim_get_current_win() local row = api.nvim_win_get_cursor(winid)[1] local line_prev, line_next = buffer.get_lines_around(bufnr, row - 1, row) - local ref_line = line_prev and line_prev or line_next - if not ref_line or not tir_vim.start_with_pipe(ref_line) then + local line_ref = line_prev and line_prev or line_next + if not line_ref or not tir_vim.start_with_pipe(line_ref) then return end - if buffer.get_line(bufnr, row - 1) ~= "" then + local line_new = buffer.get_line(bufnr, row - 1) + if line_new ~= "" then return end local ch = vim.v.char - local pipe = fn.strcharpart(ref_line, 0, 1) + local pipe = fn.strcharpart(line_ref, 0, 1) vim.v.char = pipe .. ch end @@ -229,7 +230,7 @@ end function M.keymap_lf() local col = fn.col(".") local line = fn.getline(".") - if not tir_vim.has_pipe(line) then + if not tir_vim.get_pipe_char(line) then return api.nvim_replace_termcodes("", true, true, true) end if col == 1 or col > #line then @@ -241,7 +242,7 @@ end ---@return string function M.keymap_tab() local line = fn.getline(".") - if not tir_vim.has_pipe(line) then + if not tir_vim.get_pipe_char(line) then return api.nvim_replace_termcodes("", true, true, true) end if bo.expandtab then diff --git a/lua/tirenvi/state/buf_state.lua b/lua/tirenvi/state/buf_state.lua index d3fb88f..c10c8d4 100644 --- a/lua/tirenvi/state/buf_state.lua +++ b/lua/tirenvi/state/buf_state.lua @@ -27,7 +27,7 @@ end local function has_pipe(bufnr) for iline = 0, buffer.line_count(bufnr) do local fl_line = buffer.get_line(bufnr, iline) - if tir_vim.has_pipe(fl_line) then + if tir_vim.get_pipe_char(fl_line) then return true end end @@ -56,6 +56,7 @@ end function M.is_undo_mode(bufnr) local pre = buffer.get(bufnr, buffer.IKEY.UNDO_TREE_LAST) local next = fn.undotree(bufnr).seq_last + --log.probe("===-===-===-=== und/redo mode[%d] (%d, %d) ===-===-===-===", bufnr, pre, next) if pre == next then log.debug("===-===-===-=== und/redo mode[%d] (%d, %d) ===-===-===-===", bufnr, pre, next) return true diff --git a/lua/tirenvi/state/buffer.lua b/lua/tirenvi/state/buffer.lua index a2db4a8..039fbff 100644 --- a/lua/tirenvi/state/buffer.lua +++ b/lua/tirenvi/state/buffer.lua @@ -65,7 +65,6 @@ local function set_lines(bufnr, i_start, i_end, strict, lines, no_undo) end api.nvim_buf_set_lines(bufnr, i_start, i_end, strict, lines) fix_cursor_utf8() - M.set_undo_tree_last(bufnr) bo[bufnr].undolevels = undolevels end @@ -231,6 +230,7 @@ end ---@return string|nil ---@return string|nil function M.get_lines_around(bufnr, start, end_) + M.get_lines(bufnr, start - 1, end_ + 1) return M.get_line(bufnr, start - 1), M.get_line(bufnr, end_) end diff --git a/lua/tirenvi/util/util.lua b/lua/tirenvi/util/util.lua index f2ea30b..eb52faa 100644 --- a/lua/tirenvi/util/util.lua +++ b/lua/tirenvi/util/util.lua @@ -35,17 +35,6 @@ local function get_parser_for_file(bufnr) return config.parser_map[filetype] end ----@param str string ----@return string[] -local function utf8_chars(str) - local chars = {} - local nStr = fn.strchars(str) - for iStr = 0, nStr - 1 do - chars[#chars + 1] = fn.strcharpart(str, iStr, 1) - end - return chars -end - ---@return {[string]:string} local function collect_reserved_chars() local set = {} @@ -63,7 +52,7 @@ local function find_reserved_marks(fl_lines) local char_to_name = collect_reserved_chars() local found_names = {} for _, line in ipairs(fl_lines) do - for _, ch in ipairs(utf8_chars(line)) do + for _, ch in ipairs(M.utf8_chars(line)) do local name = char_to_name[ch] if name then found_names[name] = true @@ -81,6 +70,17 @@ end -- Public API ----------------------------------------------------------------------- +---@param str string +---@return string[] +function M.utf8_chars(str) + local chars = {} + local nStr = fn.strchars(str) + for iStr = 0, nStr - 1 do + chars[#chars + 1] = fn.strcharpart(str, iStr, 1) + end + return chars +end + --- Get file extension. ---@param filename string ---@return string|nil diff --git a/tests/cases/edit/csv-main/out-expected.txt b/tests/cases/edit/csv-main/out-expected.txt index 12c8222..487b549 100644 --- a/tests/cases/edit/csv-main/out-expected.txt +++ b/tests/cases/edit/csv-main/out-expected.txt @@ -1,117 +1,117 @@ === MESSAGE === === DISPLAY === -│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│ -│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│ -┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊ -┊"1"2h", 34567890a⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│ -│⇥ l⇥ongtext01⠀⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │ -│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│ -│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│ -┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│ -│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│ -│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│ -│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│ -│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│ -│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│ -│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│ -│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│ -│longvalue1⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ -│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│ -│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│ -│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│ -│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│ -│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│ -│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│longertext⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│ -│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│ -│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│ -│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│ -│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│ -│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│ -│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│ -│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│abcde12345⠀⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│ -│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│ -│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│ +│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│ +┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊ +┊"1"2h", 34567890a┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│ +│⇥ l⇥ongtext01⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │ +│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│ +│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│ +┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│ +│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│ +│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│ +│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│ +│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│ +│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│ +│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│ +│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│ +│longvalue1⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ +│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│ +│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│ +│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│ +│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│ +│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│ +│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│longertext⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│ +│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│ +│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│ +│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│ +│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│ +│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│ +│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│ +│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│abcde12345⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│ +│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│ +│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ diff --git a/tests/cases/error/invalid-table/out-expected.txt b/tests/cases/error/invalid-table/out-expected.txt index e542d9a..fc20694 100644 --- a/tests/cases/error/invalid-table/out-expected.txt +++ b/tests/cases/error/invalid-table/out-expected.txt @@ -1,10 +1,10 @@ === MESSAGE === === DISPLAY === -│1a⠀│2 a│ 3a⠀│ -┊1↲⠀┊2b⠀┊3↲⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│ -┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│ +│1a│2 a│ 3a│ +┊1↲┊2b⠀┊3↲⠀┊ +│⠀⠀│⠀⠀⠀│b⇥⠀│ +┊↲⠀┊⠀⠀⠀┊⇥c⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +│⠀⠀│⠀⠀⠀│⠀⠀⠀│ diff --git a/tests/cases/file/csv/out-expected.txt b/tests/cases/file/csv/out-expected.txt index c359450..ec193e6 100644 --- a/tests/cases/file/csv/out-expected.txt +++ b/tests/cases/file/csv/out-expected.txt @@ -1,10 +1,21 @@ === MESSAGE === -"gen.csv" [New] 2L, 8B written +"gen.csv" [New] 8L, 36B written === DISPLAY === -│a│b│ -│c│d│ +│1a│2 a│ 3a│ +┊1↲┊2b⠀┊3↲⠀┊ +│⠀⠀│⠀⠀⠀│b⇥⠀│ +┊↲⠀┊⠀⠀⠀┊⇥c⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +│⠀⠀│⠀⠀⠀│⠀⠀⠀│ === FILE === -a,b -c,d +1a,2 a, 3a +"1 +",2b,"3 +b " +" + + +",, c diff --git a/tests/cases/file/csv/run.vim b/tests/cases/file/csv/run.vim index a7c5902..478cd2b 100644 --- a/tests/cases/file/csv/run.vim +++ b/tests/cases/file/csv/run.vim @@ -3,7 +3,7 @@ source $TIRENVI_ROOT/tests/common.vim let outfile = 'gen.csv' -edit ./input +edit $TIRENVI_ROOT/tests/data/simple.csv execute 'file ' . outfile write execute 'edit ' . outfile diff --git a/tests/cases/file/foo/out-expected.txt b/tests/cases/file/foo/out-expected.txt index 24d2f53..14c928d 100644 --- a/tests/cases/file/foo/out-expected.txt +++ b/tests/cases/file/foo/out-expected.txt @@ -2,13 +2,13 @@ "gen.foo" [New] 8L, 36B written === DISPLAY === -│1a⠀│2 a│ 3a⠀│ -┊1↲⠀┊2b⠀┊3↲⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│ -┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│ +│1a│2 a│ 3a│ +┊1↲┊2b⠀┊3↲⠀┊ +│⠀⠀│⠀⠀⠀│b⇥⠀│ +┊↲⠀┊⠀⠀⠀┊⇥c⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +│⠀⠀│⠀⠀⠀│⠀⠀⠀│ === FILE === 1a,2 a, 3a diff --git a/tests/cases/file/tsv/out-expected.txt b/tests/cases/file/tsv/out-expected.txt index 11a0a7b..97f59ce 100644 --- a/tests/cases/file/tsv/out-expected.txt +++ b/tests/cases/file/tsv/out-expected.txt @@ -2,13 +2,13 @@ "gen.tsv" [New] 8L, 36B written === DISPLAY === -│1a⠀│2 a│ 3a⠀│ -┊1↲⠀┊2b⠀┊3↲⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│ -┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│ +│1a│2 a│ 3a│ +┊1↲┊2b⠀┊3↲⠀┊ +│⠀⠀│⠀⠀⠀│b⇥⠀│ +┊↲⠀┊⠀⠀⠀┊⇥c⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +│⠀⠀│⠀⠀⠀│⠀⠀⠀│ === FILE === 1a,2 a, 3a diff --git a/tests/cases/filetype/csv2csv/out-expected.txt b/tests/cases/filetype/csv2csv/out-expected.txt index e542d9a..fc20694 100644 --- a/tests/cases/filetype/csv2csv/out-expected.txt +++ b/tests/cases/filetype/csv2csv/out-expected.txt @@ -1,10 +1,10 @@ === MESSAGE === === DISPLAY === -│1a⠀│2 a│ 3a⠀│ -┊1↲⠀┊2b⠀┊3↲⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│ -┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│ +│1a│2 a│ 3a│ +┊1↲┊2b⠀┊3↲⠀┊ +│⠀⠀│⠀⠀⠀│b⇥⠀│ +┊↲⠀┊⠀⠀⠀┊⇥c⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +│⠀⠀│⠀⠀⠀│⠀⠀⠀│ diff --git a/tests/cases/insert/lf-at-start/out-expected.txt b/tests/cases/insert/lf-at-start/out-expected.txt index e5e50f3..0c357f2 100644 --- a/tests/cases/insert/lf-at-start/out-expected.txt +++ b/tests/cases/insert/lf-at-start/out-expected.txt @@ -2,11 +2,11 @@ [TIR][ERROR][[string ":lua"]:5] [CI] key = 0D === DISPLAY === -│1a⠀│2 a│ 3a⠀│ -│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│ -┊1↲⠀┊2b⠀┊3↲⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│ -┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│ +│1a│2 a│ 3a│ +│⠀⠀│⠀⠀⠀│⠀⠀⠀│ +┊1↲┊2b⠀┊3↲⠀┊ +│⠀⠀│⠀⠀⠀│b⇥⠀│ +┊↲⠀┊⠀⠀⠀┊⇥c⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +│⠀⠀│⠀⠀⠀│⠀⠀⠀│ diff --git a/tests/cases/insert/lf-in-cell/out-expected.txt b/tests/cases/insert/lf-in-cell/out-expected.txt index e7da441..cfdcaf7 100644 --- a/tests/cases/insert/lf-in-cell/out-expected.txt +++ b/tests/cases/insert/lf-in-cell/out-expected.txt @@ -4,11 +4,11 @@ [TIR][ERROR][[string ":lua"]:5] [CI] key = B2 === DISPLAY === -│1a⠀│2 a│ 3a⠀│ -┊↲⠀⠀┊2b⠀┊3↲⠀⠀┊ -┊1↲⠀┊⠀⠀⠀┊b⇥⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│ -┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│ +│1a│2 a│ 3a│ +┊↲⠀┊2b┊3↲┊ +┊1↲┊⠀⠀┊b⇥┊ +│⠀⠀│⠀⠀│⠀⠀│ +┊↲⠀┊⠀⠀⠀┊⇥c⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +│⠀⠀│⠀⠀⠀│⠀⠀⠀│ diff --git a/tests/cases/insert/tab-expand/out-expected.txt b/tests/cases/insert/tab-expand/out-expected.txt index bc33b9c..afbc389 100644 --- a/tests/cases/insert/tab-expand/out-expected.txt +++ b/tests/cases/insert/tab-expand/out-expected.txt @@ -1,10 +1,10 @@ === MESSAGE === === DISPLAY === -│1a⠀│2 a│ 3a⠀│ -┊ 1↲┊2b⠀┊3↲⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│ -┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│ +│1a│2 a│ 3a│ +┊ 1↲┊2b┊3↲┊ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀│b⇥│ +┊↲⠀┊⠀⠀⠀┊⇥c⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +│⠀⠀│⠀⠀⠀│⠀⠀⠀│ diff --git a/tests/cases/motion/ftg/out-expected.txt b/tests/cases/motion/ftg/out-expected.txt index c5ca91e..8f93224 100644 --- a/tests/cases/motion/ftg/out-expected.txt +++ b/tests/cases/motion/ftg/out-expected.txt @@ -21,7 +21,7 @@ This should *not* be part of any table. │Left│Center│Right│ │:---│:----:│----:│ -│a⠀⠀⠀ +│a⠀⠀⠀│⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀│ │10⠀⠀│20⠀⠀⠀⠀│30⠀⠀⠀│ │foo⠀│bar⠀⠀⠀│baz⠀⠀│ diff --git a/tests/cases/motion/ftg/run.vim b/tests/cases/motion/ftg/run.vim index 293c3a6..95d2ce0 100644 --- a/tests/cases/motion/ftg/run.vim +++ b/tests/cases/motion/ftg/run.vim @@ -14,17 +14,22 @@ EOF edit $TIRENVI_ROOT/tests/data/complex.md call cursor(2, 1) -call feedkeys("gtg", "x") +execute "normal gtg" execute "normal dd" -call feedkeys("gtG", "x") +sleep 1m +execute "normal gtG" execute "normal dd" +sleep 1m call cursor(11, 1) -call feedkeys("gtg", "x") +execute "normal gtg" execute "normal dd" -call feedkeys("gtG", "x") +sleep 1m +execute "normal gtG" execute "normal dd" +sleep 1m call cursor(21, 1) -call feedkeys("gtf", "x") +execute "normal gtf" execute "normal D" +sleep 1m call RunTest({}) \ No newline at end of file diff --git a/tests/cases/motion/g-csv/out-expected.txt b/tests/cases/motion/g-csv/out-expected.txt index d1d2815..4675092 100644 --- a/tests/cases/motion/g-csv/out-expected.txt +++ b/tests/cases/motion/g-csv/out-expected.txt @@ -1,115 +1,115 @@ === MESSAGE === === DISPLAY === -│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│ -┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊ -┊"1"2h", 34567890a⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│ -│⇥ l⇥ongtext01⠀⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │ -│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│ -│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│ -┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│ -│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│ -│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│ -│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│ -│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│ -│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│ -│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│ -│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│ -│longvalue1⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ -│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│ -│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│ -│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│ -│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│ -│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│ -│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│longertext⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│ -│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│ -│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│ -│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│ -│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│ -│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│ -│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│ -│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│abcde12345⠀⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│ -│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│ -│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│ +┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊ +┊"1"2h", 34567890a┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│ +│⇥ l⇥ongtext01⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │ +│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│ +│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│ +┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│ +│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│ +│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│ +│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│ +│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│ +│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│ +│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│ +│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│ +│longvalue1⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ +│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│ +│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│ +│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│ +│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│ +│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│ +│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│longertext⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│ +│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│ +│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│ +│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│ +│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│ +│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│ +│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│ +│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│abcde12345⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│ +│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│ +│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ diff --git a/tests/cases/motion/g-csv/run.vim b/tests/cases/motion/g-csv/run.vim index 0e2ef74..4ec6f84 100644 --- a/tests/cases/motion/g-csv/run.vim +++ b/tests/cases/motion/g-csv/run.vim @@ -17,8 +17,10 @@ call cursor(2, 1) call feedkeys("gtg", "x") call feedkeys("j", "x") execute "normal dd" +sleep 1m call feedkeys("gtG", "x") call feedkeys("k", "x") execute "normal dd" +sleep 1m call RunTest({}) \ No newline at end of file diff --git a/tests/cases/normal/join/out-expected.txt b/tests/cases/normal/join/out-expected.txt index dd5c0ac..cb4cf3c 100644 --- a/tests/cases/normal/join/out-expected.txt +++ b/tests/cases/normal/join/out-expected.txt @@ -1,12 +1,10 @@ === MESSAGE === === DISPLAY === -│1a⠀│2 a│ 3a⠀│ -┊1a⠀┊2 a┊ 3a 1↲┊ -┊⠀⠀⠀┊⠀⠀⠀┊ 2b 3↲┊ -│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│ -│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│ -┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│ +│1a│2 a│ 3a│ +┊1a┊2 a┊ 3a 1↲ 2b 3↲┊ +│⠀⠀│⠀⠀⠀│b⇥⠀│ +┊↲⠀┊⠀⠀⠀┊⇥c⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +│⠀⠀│⠀⠀⠀│⠀⠀⠀│ diff --git a/tests/cases/normal/o/out-expected.txt b/tests/cases/normal/o/out-expected.txt index 12be85b..487e983 100644 --- a/tests/cases/normal/o/out-expected.txt +++ b/tests/cases/normal/o/out-expected.txt @@ -1,13 +1,12 @@ === MESSAGE === === DISPLAY === -│1a⠀⠀⠀⠀│2 a│ 3a⠀│ -│ abc⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│ -│123⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│ -┊1↲⠀⠀⠀⠀┊2b⠀┊3↲⠀⠀┊ -│⠀⠀⠀⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│ -┊↲⠀⠀⠀⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊ -┊↲⠀⠀⠀⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -┊↲⠀⠀⠀⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│ -│ 1 | 2│⠀⠀⠀│⠀⠀⠀⠀│ +│ abc│⠀⠀⠀│⠀⠀⠀│ +│1a│2 a│ 3a│ +┊1↲┊2b⠀┊3↲⠀┊ +│123│⠀⠀⠀│b⇥⠀│ +┊↲⠀┊⠀⠀⠀┊⇥c⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +│⠀⠀│⠀⠀⠀│⠀⠀⠀│ +│ 1 | 2│⠀⠀⠀│⠀⠀⠀│ diff --git a/tests/cases/normal/o/run.vim b/tests/cases/normal/o/run.vim index e82643b..35430d9 100644 --- a/tests/cases/normal/o/run.vim +++ b/tests/cases/normal/o/run.vim @@ -1,11 +1,13 @@ source $TIRENVI_ROOT/tests/common.vim edit $TIRENVI_ROOT/tests/data/simple.csv -call cursor(1, 1) +call cursor(2, 2) execute "normal! o123\" -call cursor(0, 1) +sleep 1m +call cursor(1, 5) execute "normal! O abc\" +sleep 1m execute "normal! Go 1 | 2\" -Tir redraw +sleep 1m -call RunTest({}) \ No newline at end of file +call RunTest({}) diff --git a/tests/cases/save/as-csv/out-expected.txt b/tests/cases/save/as-csv/out-expected.txt index e7a1f27..73d9319 100644 --- a/tests/cases/save/as-csv/out-expected.txt +++ b/tests/cases/save/as-csv/out-expected.txt @@ -2,120 +2,120 @@ "gen.csv" [New] 115L, 2239B written === DISPLAY === -│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│ -│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│ -┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊ -┊"1"2h", 34567890a⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│ -│⇥ l⇥ongtext01⠀⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │ -│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│ -│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│ -┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│ -│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│ -│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│ -│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│ -│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│ -│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│ -│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│ -│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│ -│longvalue1⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ -│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│ -│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│ -│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│ -│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│ -│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│ -│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│longertext⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│ -│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│ -│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│ -│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│ -│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│ -│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│ -│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│ -│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│abcde12345⠀⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│ -│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│ -│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│ +│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│ +┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊ +┊"1"2h", 34567890a┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│ +│⇥ l⇥ongtext01⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │ +│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│ +│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│ +┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│ +│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│ +│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│ +│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│ +│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│ +│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│ +│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│ +│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│ +│longvalue1⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ +│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│ +│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│ +│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│ +│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│ +│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│ +│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│longertext⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│ +│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│ +│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│ +│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│ +│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│ +│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│ +│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│ +│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│abcde12345⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│ +│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│ +│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ === FILE === A1,B22,C333,D4444,E55555,F666666 diff --git a/tests/cases/save/as-csv2tsv/out-expected.txt b/tests/cases/save/as-csv2tsv/out-expected.txt index 11a0a7b..97f59ce 100644 --- a/tests/cases/save/as-csv2tsv/out-expected.txt +++ b/tests/cases/save/as-csv2tsv/out-expected.txt @@ -2,13 +2,13 @@ "gen.tsv" [New] 8L, 36B written === DISPLAY === -│1a⠀│2 a│ 3a⠀│ -┊1↲⠀┊2b⠀┊3↲⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│ -┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│ +│1a│2 a│ 3a│ +┊1↲┊2b⠀┊3↲⠀┊ +│⠀⠀│⠀⠀⠀│b⇥⠀│ +┊↲⠀┊⠀⠀⠀┊⇥c⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +│⠀⠀│⠀⠀⠀│⠀⠀⠀│ === FILE === 1a,2 a, 3a diff --git a/tests/cases/save/as-csv2xxx/out-expected.txt b/tests/cases/save/as-csv2xxx/out-expected.txt index d756bca..34b6bd5 100644 --- a/tests/cases/save/as-csv2xxx/out-expected.txt +++ b/tests/cases/save/as-csv2xxx/out-expected.txt @@ -2,120 +2,120 @@ "gen.xxx" [New] 115L, 2239B written === DISPLAY === -│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│ -│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│ -┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊ -┊"1"2h", 34567890a⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│ -│⇥ l⇥ongtext01⠀⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │ -│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│ -│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│ -┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│ -│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│ -│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│ -│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│ -│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│ -│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│ -│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│ -│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│ -│longvalue1⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ -│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│ -│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│ -│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│ -│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│ -│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│ -│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│longertext⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│ -│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│ -│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│ -│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│ -│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│ -│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│ -│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│ -│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│abcde12345⠀⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│ -│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│ -│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│ +│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│ +┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊ +┊"1"2h", 34567890a┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│ +│⇥ l⇥ongtext01⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │ +│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│ +│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│ +┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│ +│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│ +│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│ +│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│ +│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│ +│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│ +│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│ +│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│ +│longvalue1⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ +│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│ +│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│ +│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│ +│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│ +│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│ +│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│longertext⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│ +│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│ +│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│ +│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│ +│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│ +│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│ +│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│ +│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│abcde12345⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│ +│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│ +│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ === FILE === A1,B22,C333,D4444,E55555,F666666 diff --git a/tests/cases/save/csv/out-expected.txt b/tests/cases/save/csv/out-expected.txt index 82d3e35..e2dbbd3 100644 --- a/tests/cases/save/csv/out-expected.txt +++ b/tests/cases/save/csv/out-expected.txt @@ -2,120 +2,120 @@ "gen.csv" 115L, 2239B written === DISPLAY === -│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│ -│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│ -┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊ -┊"1"2h", 34567890a⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│ -│⇥ l⇥ongtext01⠀⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │ -│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│ -│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│ -┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│ -│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│ -│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│ -│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│ -│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│ -│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│ -│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│ -│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│ -│longvalue1⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ -│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│ -│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│ -│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│ -│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│ -│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│ -│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│longertext⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│ -│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│ -│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│ -│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│ -│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│ -│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│ -│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│ -│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│abcde12345⠀⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│ -│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│ -│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│ +│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│ +┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊ +┊"1"2h", 34567890a┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│ +│⇥ l⇥ongtext01⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │ +│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│ +│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│ +┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│ +│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│ +│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│ +│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│ +│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│ +│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│ +│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│ +│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│ +│longvalue1⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ +│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│ +│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│ +│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│ +│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│ +│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│ +│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│longertext⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│ +│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│ +│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│ +│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│ +│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│ +│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│ +│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│ +│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│abcde12345⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│ +│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│ +│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ === FILE === A1,B22,C333,D4444,E55555,F666666 diff --git a/tests/cases/textobj/val/out-expected.txt b/tests/cases/textobj/val/out-expected.txt index 72a24d1..e3012dc 100644 --- a/tests/cases/textobj/val/out-expected.txt +++ b/tests/cases/textobj/val/out-expected.txt @@ -2,10 +2,10 @@ block of 7 lines yanked === DISPLAY === -│1a⠀│2 a│ 3a⠀│2 a│ -┊1↲⠀┊2b⠀┊3↲⠀⠀┊2b⠀┊ -│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│⠀⠀⠀│ -┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊⠀⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊⠀⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊⠀⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│⠀⠀⠀│ +│1a│2 a│ 3a│2 a│ +┊1↲┊2b⠀┊3↲⠀┊2b⠀┊ +│⠀⠀│⠀⠀⠀│b⇥⠀│⠀⠀⠀│ +┊↲⠀┊⠀⠀⠀┊⇥c⠀┊⠀⠀⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊⠀⠀⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊⠀⠀⠀┊ +│⠀⠀│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀│ diff --git a/tests/cases/textobj/vil/run.vim b/tests/cases/textobj/vil/run.vim index 636ab92..7fa576e 100644 --- a/tests/cases/textobj/vil/run.vim +++ b/tests/cases/textobj/vil/run.vim @@ -4,10 +4,14 @@ edit $TIRENVI_ROOT/tests/data/simple.md call cursor(2, 1) call feedkeys("vil", "x") execute "normal d" +sleep 1m call cursor(4, 15) call feedkeys("vil", "x") execute "normal d" +sleep 1m execute "normal 0" +sleep 1m execute "normal p" +sleep 1m call RunTest({}) \ No newline at end of file diff --git a/tests/cases/tir/on/out-expected.txt b/tests/cases/tir/on/out-expected.txt index 12c8222..487b549 100644 --- a/tests/cases/tir/on/out-expected.txt +++ b/tests/cases/tir/on/out-expected.txt @@ -1,117 +1,117 @@ === MESSAGE === === DISPLAY === -│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│ -│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│ -┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊ -┊"1"2h", 34567890a⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│ -│⇥ l⇥ongtext01⠀⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │ -│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│ -│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│ -┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│ -│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│ -│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│ -│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│ -│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│ -│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│ -│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│ -│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│ -│longvalue1⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ -│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│ -│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│ -│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│ -│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│ -│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│ -│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│longertext⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│ -│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│ -│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│ -│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│ -│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│ -│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│ -│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│ -│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│abcde12345⠀⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│ -│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│ -│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│ +│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│ +┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊ +┊"1"2h", 34567890a┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│ +│⇥ l⇥ongtext01⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │ +│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│ +│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│ +│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│ +┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│ +│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│ +│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│ +│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│ +│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│ +│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│ +│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│ +│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│ +│longvalue1⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ +│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│ +│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│ +│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│ +│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│ +│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│ +│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│longertext⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│ +│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│ +│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│ +│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│ +│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│ +│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│ +│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│ +│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│abcde12345⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│ +│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│ +│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│ +│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ diff --git a/tests/cases/tir/redraw/run.vim b/tests/cases/tir/redraw/run.vim index 11a082e..7648bcc 100644 --- a/tests/cases/tir/redraw/run.vim +++ b/tests/cases/tir/redraw/run.vim @@ -4,8 +4,11 @@ source $TIRENVI_ROOT/tests/common.vim edit input.csv +sleep 1m call cursor(2, 1) execute "normal! aADD\" +sleep 1m Tir redraw +sleep 1m call RunTest({}) \ No newline at end of file diff --git a/tests/cases/ut/state/buffer/out-expected.txt b/tests/cases/ut/state/buffer/out-expected.txt index 493768d..136f5e5 100644 --- a/tests/cases/ut/state/buffer/out-expected.txt +++ b/tests/cases/ut/state/buffer/out-expected.txt @@ -1,23 +1,23 @@ === MESSAGE === [TIR][🟧PROBE][[string ":lua"]:14] buffer.get_lines(0, 0, -1) -[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=0, end=21, lines[1]=0, line[21]=20, +[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=0, end=21, lines[1]=0, line[21]=20, [TIR][DEBUG][[string ":lua"]:16]
{ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" } [TIR][DEBUG][[string ":lua"]:18]
{ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" } [TIR][🟧PROBE][[string ":lua"]:19] buffer.get_lines(0, -100, 100) [TIR][DEBUG][[string ":lua"]:21]
{ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" } [TIR][🟧PROBE][[string ":lua"]:22] clear & buffer.get_lines(0, 9, 13) -[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=6, end=16, lines[1]=6, line[10]=15, +[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=6, end=16, lines[1]=6, line[10]=15, [TIR][DEBUG][[string ":lua"]:25]
{ "9", "10", "11", "12" } [TIR][🟧PROBE][[string ":lua"]:26] buffer.get_line(0, 6) [TIR][DEBUG][[string ":lua"]:28] 6 [TIR][🟧PROBE][[string ":lua"]:29] buffer.get_line(0, 2) -[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=0, end=6, lines[1]=0, line[6]=5, +[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=0, end=6, lines[1]=0, line[6]=5, [TIR][DEBUG][[string ":lua"]:31] 2 [TIR][🟧PROBE][[string ":lua"]:32] buffer.get_line(0, 19) -[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=15, end=21, lines[1]=15, line[6]=20, +[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=15, end=21, lines[1]=15, line[6]=20, [TIR][DEBUG][[string ":lua"]:34] 19 [TIR][🟧PROBE][[string ":lua"]:35] buffer.get_line(0, 10) -[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=4, end=11, lines[1]=4, line[7]=10, +[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=4, end=11, lines[1]=4, line[7]=10, [TIR][DEBUG][[string ":lua"]:37] 10 [TIR][🟧PROBE][[string ":lua"]:38] buffer.get_line(0, -1) [TIR][DEBUG][[string ":lua"]:40] nil From 66b927e66ff0217bf8be73d8a53aec3f1ef0f6c0 Mon Sep 17 00:00:00 2001 From: OGAWA Keiji <70509917+kibi2@users.noreply.github.com> Date: Wed, 8 Apr 2026 11:01:34 +0900 Subject: [PATCH 4/4] feat: wrap cell content to fit column width --- docs/testing.md | 25 ++ lua/tirenvi/config.lua | 2 +- lua/tirenvi/core/attr.lua | 21 +- lua/tirenvi/core/block.lua | 18 +- lua/tirenvi/core/blocks.lua | 10 +- lua/tirenvi/core/cell.lua | 18 +- lua/tirenvi/core/repair.lua | 32 ++- lua/tirenvi/core/vim_parser.lua | 8 +- lua/tirenvi/editor/commands.lua | 15 +- lua/tirenvi/init.lua | 35 ++- lua/tirenvi/state/buf_state.lua | 1 - lua/tirenvi/state/buffer.lua | 15 +- lua/tirenvi/ui.lua | 15 +- tests/cases/check/health-ng/out-expected.txt | 2 +- tests/cases/check/health/out-expected.txt | 2 +- tests/cases/filetype/md2csv/out-expected.txt | 3 +- .../cases/insert/lf-in-cell/out-expected.txt | 6 +- .../cases/insert/tab-expand/out-expected.txt | 8 +- tests/cases/insert/tab/out-expected.txt | 15 +- tests/cases/normal/join/out-expected.txt | 8 +- tests/cases/normal/o/out-expected.txt | 10 +- tests/cases/normal/o/run.vim | 2 +- tests/cases/normal/yyp/out-expected.txt | 16 +- tests/cases/normal/yyp/run.vim | 7 + tests/cases/save/as-csv/out-expected.txt | 241 +----------------- tests/cases/save/as-csv/run.vim | 15 +- tests/cases/textobj/vil/out-expected.txt | 12 +- tests/cases/textobj/width/out-expected.txt | 22 +- tests/cases/textobj/width/run.vim | 11 + tests/cases/tir/on/run.vim | 2 +- tests/cases/ut/state/buffer/out-expected.txt | 10 +- tests/data/simple.md | 3 +- 32 files changed, 259 insertions(+), 351 deletions(-) create mode 100644 docs/testing.md diff --git a/docs/testing.md b/docs/testing.md new file mode 100644 index 0000000..5c79215 --- /dev/null +++ b/docs/testing.md @@ -0,0 +1,25 @@ +# Test Specification + +## About This Test Specification + +* Define specifications first following a test-first approach +* Each test case corresponds to a single commit +* Tests are written in GFM (GitHub Flavored Markdown) table format +* The table format also serves as a real-world usage test for tirenvi + +### Notes + +* Since cell content can become lengthy, it may be difficult to read with standard Markdown rendering +* Viewing with tirenvi is recommended + +--- + +## Test Case Template + +### Column Width Restoration + +| No | Preconditions | Action | Expected | Date | Notes | Commit | +| --- | --- | --- | --- | --- | --- | --- | +| | CSV is displayed in tir-vim mode

csv tir-vim表示中 | Switch back to flat mode with `Tir toggle`
`echo b:tirenvi`
Tir toggleでflat表示に戻す
echo b:tirenvi | `columns` field exists

columnsフィールドあり | 2026/4/9 | | | + + diff --git a/lua/tirenvi/config.lua b/lua/tirenvi/config.lua index 675c620..7b6eb0b 100644 --- a/lua/tirenvi/config.lua +++ b/lua/tirenvi/config.lua @@ -25,7 +25,7 @@ local defaults = { parser_map = { csv = { executable = "tir-csv", required_version = "0.1.4" }, tsv = { executable = "tir-csv", options = { "--delimiter", "\t" }, required_version = "0.1.4" }, - markdown = { executable = "tir-gfm-lite", allow_plain = true, required_version = "0.1.3" }, + markdown = { executable = "tir-gfm-lite", allow_plain = true, required_version = "0.1.5" }, pukiwiki = { executable = "tir-pukiwiki", allow_plain = true, required_version = "0.1.0" }, }, log = { diff --git a/lua/tirenvi/core/attr.lua b/lua/tirenvi/core/attr.lua index 9a49df3..561f27a 100644 --- a/lua/tirenvi/core/attr.lua +++ b/lua/tirenvi/core/attr.lua @@ -17,6 +17,7 @@ local function get_columns(cells) local columns = {} local widths = Cell.get_widths(cells) for _, width in ipairs(widths) do + width = math.max(width, 2) columns[#columns + 1] = { width = width } end return columns @@ -96,26 +97,34 @@ end ---@return Attr function M.grid.new(record) if record then - return M.grid.new_from_record(record) + return M.grid.new_from_record(record.row) else return new_from_columns({}) end end ----@param record Record_grid +---@param cells Cell[] ---@return Attr -function M.grid.new_from_record(record) - return new_from_columns(get_columns(record.row)) +function M.grid.new_from_record(cells) + return new_from_columns(get_columns(cells)) end ---@param records Record_grid[] ---@return Attr -function M.new_merged_attr(records) +function M.grid.new_merged_attr(records) local attr = M.grid.new() for _, record in ipairs(records) do - merge(attr, M.grid.new_from_record(record)) + merge(attr, M.grid.new_from_record(record.row)) end return attr end +---@self Attr +---@param icol integer +---@param width integer +function M.grid:set_width(icol, width) + self.columns[icol] = self.columns[icol] or {} + self.columns[icol].width = math.max(width, 2) +end + return M diff --git a/lua/tirenvi/core/block.lua b/lua/tirenvi/core/block.lua index ab501c6..c895af7 100644 --- a/lua/tirenvi/core/block.lua +++ b/lua/tirenvi/core/block.lua @@ -92,15 +92,16 @@ local function unwrap(self) local records = {} ---@type Record_grid local new_record = nil - local cont = false + local cont_prev = false for _, record in ipairs(self.records) do - if not cont then + if not cont_prev then new_record = Record.grid.new(record.row) records[#records + 1] = new_record else Record.grid.concat(new_record, record) end - cont = record._has_continuation + cont_prev = record._has_continuation + new_record._has_continuation = cont_prev end self.records = records end @@ -124,7 +125,7 @@ end ---@self Block local function ensure_table_attr(self) if #self.attr.columns == 0 then - self.attr = Attr.new_merged_attr(self.records) + self.attr = Attr.grid.new_merged_attr(self.records) end end @@ -239,11 +240,14 @@ function M.grid:to_flat() end ---@self Block_grid -function M.grid:from_vim() +---@param no_unwrap boolean +function M.grid:from_vim(no_unwrap) ensure_table_attr(self) remove_padding(self) apply_column_count(self, #self.attr.columns) - unwrap(self) + if not no_unwrap then + unwrap(self) + end end --- Normalize all rows in a grid block to have the same number of columns. @@ -251,8 +255,8 @@ end function M.grid:to_vim() wrap_lf(self) ensure_table_attr(self) - wrap_width(self) apply_column_count(self, #self.attr.columns) + wrap_width(self) apply_column_widths(self) end diff --git a/lua/tirenvi/core/blocks.lua b/lua/tirenvi/core/blocks.lua index e571778..1fb464b 100644 --- a/lua/tirenvi/core/blocks.lua +++ b/lua/tirenvi/core/blocks.lua @@ -78,6 +78,8 @@ end local function apply_reference_attr_single(blocks, attr_prev, attr_next) M.merge_blocks(blocks) if Attr.is_conflict(attr_prev, attr_next, false) then + log.debug("===-===-===-=== conflict") + log.debug(blocks[1].records[1]) return false, "conflict" end if #blocks == 0 then @@ -94,6 +96,9 @@ local function apply_reference_attr_single(blocks, attr_prev, attr_next) end elseif Attr.is_plain(attr) then if block.kind == CONST.KIND.GRID then + log.debug("===-===-===-=== grid in plain") + log.debug(attr_prev) + log.debug(attr_next) return false, "grid in plain" end end @@ -196,11 +201,12 @@ end --- Convert NDJSON records into normalized blocks. ---@param records Record[] +---@param no_unwrap boolean ---@return Blocks -function M.new_from_vim(records) +function M.new_from_vim(records, no_unwrap) local self = build_blocks(records) for _, block in ipairs(self) do - Block[block.kind].from_vim(block) + Block[block.kind].from_vim(block, no_unwrap) end return self diff --git a/lua/tirenvi/core/cell.lua b/lua/tirenvi/core/cell.lua index 01eea75..1d3d597 100644 --- a/lua/tirenvi/core/cell.lua +++ b/lua/tirenvi/core/cell.lua @@ -106,36 +106,26 @@ end ---@return Cell[] function M:wrap_width(width) local cells = {} - - -- 空やwidth不正はそのまま返す if not self or self == "" or width <= 0 then return { self } end - local chars = util.utf8_chars(self) - local current = "" local current_width = 0 - - for _, ch in ipairs(chars) do - local ch_width = display_width(ch) - - -- 追加すると幅オーバーする場合は確定 + for _, char in ipairs(chars) do + local ch_width = display_width(char) if current ~= "" and current_width + ch_width > width then cells[#cells + 1] = current - current = ch + current = char current_width = ch_width else - current = current .. ch + current = current .. char current_width = current_width + ch_width end end - - -- 残りを追加 if current ~= "" then cells[#cells + 1] = current end - return cells end diff --git a/lua/tirenvi/core/repair.lua b/lua/tirenvi/core/repair.lua index fff8c20..8daa464 100644 --- a/lua/tirenvi/core/repair.lua +++ b/lua/tirenvi/core/repair.lua @@ -17,6 +17,7 @@ local Blocks = require("tirenvi.core.blocks") local Attr = require("tirenvi.core.attr") local vim_parser = require("tirenvi.core.vim_parser") local flat_parser = require("tirenvi.core.flat_parser") +local tir_vim = require("tirenvi.core.tir_vim") local ui = require("tirenvi.ui") ----------------------------------------------------------------------- @@ -39,19 +40,22 @@ local api = vim.api --- If a new line is added above a table, it is treated as a plain line, --- so no modification is applied. ---@param vi_lines string[] ----@param attr_prev Attr|nil -local function fix_empty_line_after_table(vi_lines, attr_prev) - if not attr_prev then +---@param line_prev string|nil +local function fix_empty_line_after_table(vi_lines, line_prev) + if not line_prev then return end if #vi_lines == 0 then return end - if not Attr.is_plain(attr_prev) then - if vi_lines[1] == "" then - vi_lines[1] = config.marks.pipe .. config.marks.pipe - end + if vi_lines[1] ~= "" then + return + end + local pipe = tir_vim.get_pipe_char(line_prev) + if not pipe then + return end + vi_lines[1] = pipe .. pipe end ---@param bufnr number @@ -61,8 +65,9 @@ end ---@return Blocks local function get_blocks(bufnr, start_row, end_row, attr_prev) local vi_lines = buffer.get_lines(bufnr, start_row, end_row) - fix_empty_line_after_table(vi_lines, attr_prev) - return vim_parser.parse(vi_lines) + local line_prev = buffer.get_line(bufnr, start_row - 1) + fix_empty_line_after_table(vi_lines, line_prev) + return vim_parser.parse(vi_lines, true) end ---@param bufnr number @@ -72,9 +77,11 @@ end ---@return Attr|nil local function get_reference_attrs(bufnr, start_row, end_row) local line_prev, line_next = buffer.get_lines_around(bufnr, start_row, end_row) - log.debug("[prev] %s [next] %s", tostring(line_prev), tostring(line_next)) + local target = buffer.get_line(bufnr, start_row) + log.debug("[prev] %s [target] %s [next] %s", tostring(line_prev), tostring(target), tostring(line_next)) local attr_prev = vim_parser.parse_to_attr(line_prev) local attr_next = vim_parser.parse_to_attr(line_next) + log.debug({ attr_prev, attr_next }) return attr_prev, attr_next end @@ -86,10 +93,15 @@ local function get_repaired_lines(bufnr, start_row, end_row) log.debug("===-===-===-=== validation start (%d, %d) ===-===-===-===", start_row, end_row) local attr_prev, attr_next = get_reference_attrs(bufnr, start_row, end_row) local blocks = get_blocks(bufnr, start_row, end_row, attr_prev) + log.debug(#blocks ~= 0 and blocks[1].records) local parser = util.get_parser(bufnr) local allow_plain = parser.allow_plain + log.debug(#blocks ~= 0 and blocks[1].records[1]) local success, reason = Blocks.repair(blocks, attr_prev, attr_next, allow_plain) + log.debug(#blocks ~= 0 and blocks[1].attr) + log.debug(#blocks ~= 0 and blocks[1].records[1]) if not success then + log.debug("===-===-===-=== not success: %s", reason) if reason == "grid in plain" then return flat_parser.unparse(blocks, parser) elseif reason == "conflict" then diff --git a/lua/tirenvi/core/vim_parser.lua b/lua/tirenvi/core/vim_parser.lua index ba4f995..0764087 100644 --- a/lua/tirenvi/core/vim_parser.lua +++ b/lua/tirenvi/core/vim_parser.lua @@ -65,10 +65,12 @@ end ----------------------------------------------------------------------- ---@param vi_lines string[] +---@param no_unwrap boolean|nil ---@return Blocks -function M.parse(vi_lines) +function M.parse(vi_lines, no_unwrap) + no_unwrap = no_unwrap or false local records = tir_vim_to_ndjsons(vi_lines) - local blocks = Blocks.new_from_vim(records) + local blocks = Blocks.new_from_vim(records, no_unwrap) return blocks end @@ -86,7 +88,7 @@ function M.parse_to_attr(vi_line) return nil end local record = tir_vim_to_ndjson(vi_line) - return Attr[record.kind].new_from_record(record) + return Attr[record.kind].new_from_record(record.row) end return M diff --git a/lua/tirenvi/editor/commands.lua b/lua/tirenvi/editor/commands.lua index 3d25d33..53c4175 100644 --- a/lua/tirenvi/editor/commands.lua +++ b/lua/tirenvi/editor/commands.lua @@ -7,6 +7,7 @@ local init = require("tirenvi.init") local notify = require("tirenvi.util.notify") local log = require("tirenvi.util.log") local errors = require("tirenvi.util.errors") +local ui = require("tirenvi.ui") -- module local M = {} @@ -38,6 +39,8 @@ local function cmd_toggle(bufnr, opts) }) then return end + ui.special_clear() + ui.special_apply() init.toggle(bufnr) end @@ -75,12 +78,18 @@ end local commands = { toggle = cmd_toggle, redraw = cmd_redraw, - hbar = cmd_hbar, + _hbar = cmd_hbar, width = cmd_width, } + local function get_command_keys() - local keys = vim.tbl_keys(commands) + local keys = {} + for key, _ in pairs(commands) do + if not key:match("^_") then + table.insert(keys, key) + end + end table.sort(keys) return keys end @@ -96,7 +105,7 @@ end ---@param opts any local function on_tir(opts) local sub = opts.fargs[1] - local command = sub:match("^[A-Za-z]+") or "" + local command = sub:match("^[A-Za-z_]+") or "" if not sub then notify.info(build_usage()) return diff --git a/lua/tirenvi/init.lua b/lua/tirenvi/init.lua index 1de53ce..76c2606 100644 --- a/lua/tirenvi/init.lua +++ b/lua/tirenvi/init.lua @@ -9,6 +9,7 @@ local flat_parser = require("tirenvi.core.flat_parser") local vim_parser = require("tirenvi.core.vim_parser") local tir_vim = require("tirenvi.core.tir_vim") local Blocks = require("tirenvi.core.blocks") +local Attr = require("tirenvi.core.attr") local ui = require("tirenvi.ui") local notify = require("tirenvi.util.notify") @@ -46,7 +47,7 @@ local function from_flat(bufnr, no_undo) util.assert_no_reserved_marks(fl_lines) local blocks = flat_parser.parse(fl_lines, parser) local vi_lines = vim_parser.unparse(blocks) - ui.set_lines(bufnr, 0, -1, vi_lines, true, no_undo) + ui.set_lines(bufnr, 0, -1, vi_lines, no_undo) end ---@return integer|nil @@ -81,17 +82,17 @@ local function change_width(line_provider, operator, count) if count <= 0 then return end - block.attr.columns[icol].width = count + Attr.grid.set_width(block.attr, icol, count) elseif operator == "+" then if count == 0 then count = 1 end - block.attr.columns[icol].width = old_width + count + Attr.grid.set_width(block.attr, icol, old_width + count) elseif operator == "-" then if count == 0 then count = 1 end - block.attr.columns[icol].width = old_width - count + Attr.grid.set_width(block.attr, icol, old_width - count) end local vi_lines = vim_parser.unparse(blocks) ui.set_lines(bufnr, top - 1, bottom, vi_lines) @@ -142,12 +143,26 @@ function M.enable(bufnr) from_flat(bufnr) end +local buffer_backup + --- Convert current buffer (or specified buffer) from display format back to file format (tsv) ---@param bufnr number Buffer number. ---@return nil function M.export_flat(bufnr) + buffer_backup = buffer.get_lines(bufnr, 0, -1) to_flat(bufnr) - log.debug("export_flat done") +end + +--- Convert current buffer (or specified buffer) from plain format to view format +---@param bufnr number Buffer number. +---@return nil +function M.restore_tir_vim(bufnr) + if not buffer_backup then + return + end + pcall(vim.cmd, "undojoin") + buffer.set_lines(bufnr, 0, -1, buffer_backup) + buffer_backup = nil end ---@param bufnr number Buffer number. @@ -166,14 +181,6 @@ function M.toggle(bufnr) end end ---- Convert current buffer (or specified buffer) from plain format to view format ----@param bufnr number Buffer number. ----@return nil -function M.restore_tir_vim(bufnr) - pcall(vim.cmd, "undojoin") - from_flat(bufnr) -- TODO recover Attr_grid -end - ---@param bufnr number|nil Buffer number. ---@return nil function M.redraw(bufnr) @@ -191,7 +198,7 @@ end ---@param bufnr number Buffer number. ---@return nil function M.hbar(bufnr) - vim.w.tirenvi_view_bar = not (vim.w.tirenvi_view_bar or false) + vim.w.tirenvi_view_nobar = not (vim.w.tirenvi_view_nobar or false) ui.special_apply() end diff --git a/lua/tirenvi/state/buf_state.lua b/lua/tirenvi/state/buf_state.lua index c10c8d4..1324c16 100644 --- a/lua/tirenvi/state/buf_state.lua +++ b/lua/tirenvi/state/buf_state.lua @@ -56,7 +56,6 @@ end function M.is_undo_mode(bufnr) local pre = buffer.get(bufnr, buffer.IKEY.UNDO_TREE_LAST) local next = fn.undotree(bufnr).seq_last - --log.probe("===-===-===-=== und/redo mode[%d] (%d, %d) ===-===-===-===", bufnr, pre, next) if pre == next then log.debug("===-===-===-=== und/redo mode[%d] (%d, %d) ===-===-===-===", bufnr, pre, next) return true diff --git a/lua/tirenvi/state/buffer.lua b/lua/tirenvi/state/buffer.lua index 039fbff..e85b74b 100644 --- a/lua/tirenvi/state/buffer.lua +++ b/lua/tirenvi/state/buffer.lua @@ -51,10 +51,9 @@ end ---@param bufnr number ---@param i_start integer ---@param i_end integer ----@param strict boolean ---@param lines string[] ---@param no_undo boolean|nil -local function set_lines(bufnr, i_start, i_end, strict, lines, no_undo) +local function set_lines(bufnr, i_start, i_end, lines, no_undo) M.clear_cache() local undolevels = bo[bufnr].undolevels if no_undo then @@ -63,7 +62,9 @@ local function set_lines(bufnr, i_start, i_end, strict, lines, no_undo) bo[bufnr].undolevels = -1 end end - api.nvim_buf_set_lines(bufnr, i_start, i_end, strict, lines) + i_start = math.max(i_start, 0) + M.set_undo_tree_last(bufnr) + api.nvim_buf_set_lines(bufnr, i_start, i_end, false, lines) fix_cursor_utf8() bo[bufnr].undolevels = undolevels end @@ -156,14 +157,12 @@ end ---@param i_start integer ---@param i_end integer integer ---@param lines string[] ----@param strict boolean|nil ---@param no_undo boolean|nil -function M.set_lines(bufnr, i_start, i_end, lines, strict, no_undo) - strict = strict == true - log.debug("=== set_lines(%d, %d)[1]%s [%d]%s", i_start, i_end, lines[1], #lines, lines[#lines]) +function M.set_lines(bufnr, i_start, i_end, lines, no_undo) + log.debug("=== set_lines(%d, %d)[1]%s [%d]%s", i_start, i_end, tostring(lines[1]), #lines, tostring(lines[#lines])) log.debug(M.get_state(bufnr)) M.set(bufnr, M.IKEY.PATCH_DEPTH, M.get(bufnr, M.IKEY.PATCH_DEPTH) + 1) - local ok, err = pcall(set_lines, bufnr, i_start, i_end, strict, lines, no_undo) + local ok, err = pcall(set_lines, bufnr, i_start, i_end, lines, no_undo) M.set(bufnr, M.IKEY.PATCH_DEPTH, M.get(bufnr, M.IKEY.PATCH_DEPTH) - 1) assert(M.get(bufnr, M.IKEY.PATCH_DEPTH) == 0) if not ok then diff --git a/lua/tirenvi/ui.lua b/lua/tirenvi/ui.lua index c1aa745..42b8bc2 100644 --- a/lua/tirenvi/ui.lua +++ b/lua/tirenvi/ui.lua @@ -71,10 +71,9 @@ end ---@param i_start integer ---@param i_end integer integer ---@param lines string[] ----@param strict boolean|nil ---@param no_undo boolean|nil -function M.set_lines(bufnr, i_start, i_end, lines, strict, no_undo) - buffer.set_lines(bufnr, i_start, i_end, lines, strict, no_undo) +function M.set_lines(bufnr, i_start, i_end, lines, no_undo) + buffer.set_lines(bufnr, i_start, i_end, lines, no_undo) end -- ========================= @@ -123,8 +122,7 @@ function M.special_apply() add_match(winid, "TirenviPadding", pat_v(config.marks.padding), 10) add_match(winid, "TirenviSpecialChar", pat_v(config.marks.lf), 20) add_match(winid, "TirenviSpecialChar", pat_v(config.marks.tab), 20) - vim.w.tirenvi_view_bar = true - if vim.w.tirenvi_view_bar then + if not vim.w.tirenvi_view_nobar then add_match(winid, "TirenviPipeHbar", pat_v(pipen), 30) add_match(winid, "TirenviHbar", pat_line_inner(pipen), 20) add_match(winid, "TirenviPipeNoHbar", pat_line_start(pipen), 40) @@ -136,11 +134,8 @@ function M.special_apply() vim.opt_local.conceallevel = 1 vim.opt_local.concealcursor = "nc" local pattern = vim.fn.escape(pipec, [[/\]]) - vim.cmd(string.format( - [[syntax match TirPipeC /%s/ conceal cchar=%s]], - pattern, - pipen - )) + local command = string.format([[syntax match TirPipeC /%s/ conceal cchar=%s]], pattern, pipen) + vim.cmd(command) end function M.special_clear() diff --git a/tests/cases/check/health-ng/out-expected.txt b/tests/cases/check/health-ng/out-expected.txt index 73d1622..f1e8668 100644 --- a/tests/cases/check/health-ng/out-expected.txt +++ b/tests/cases/check/health-ng/out-expected.txt @@ -11,7 +11,7 @@ - ❌ ERROR Could not parse tir-pukiwiki version string: 0. - ❌ ERROR foo not found in PATH - ❌ ERROR tir-csv >= 1.1.4 required, but 0.1.4 found -- ❌ ERROR tir-gfm-lite >= 0.2 required, but 0.1.3 found +- ❌ ERROR tir-gfm-lite >= 0.2 required, but 0.1.5 found === DISPLAY === ============================================================================== tirenvi ~ diff --git a/tests/cases/check/health/out-expected.txt b/tests/cases/check/health/out-expected.txt index 1b7cecf..9e7bb47 100644 --- a/tests/cases/check/health/out-expected.txt +++ b/tests/cases/check/health/out-expected.txt @@ -7,7 +7,7 @@ - ✅ OK tir-csv found - ✅ OK tir-csv version 0.1.4 OK - ✅ OK tir-gfm-lite found -- ✅ OK tir-gfm-lite version 0.1.3 OK +- ✅ OK tir-gfm-lite version 0.1.5 OK - ✅ OK tir-pukiwiki found - ✅ OK tir-pukiwiki version 0.1.0 OK === DISPLAY === diff --git a/tests/cases/filetype/md2csv/out-expected.txt b/tests/cases/filetype/md2csv/out-expected.txt index e22decc..4c39fa6 100644 --- a/tests/cases/filetype/md2csv/out-expected.txt +++ b/tests/cases/filetype/md2csv/out-expected.txt @@ -5,7 +5,8 @@ gfm | Name | Age | City | | ---- | --- | ---- | | Alice | 23 | Tokyo | -| Bob | 31 | Osaka | +| Bob | 31 | Osaka
nipponbashi | | Carol | 27 | Nagoya | markdown + diff --git a/tests/cases/insert/lf-in-cell/out-expected.txt b/tests/cases/insert/lf-in-cell/out-expected.txt index cfdcaf7..5e996c3 100644 --- a/tests/cases/insert/lf-in-cell/out-expected.txt +++ b/tests/cases/insert/lf-in-cell/out-expected.txt @@ -5,9 +5,9 @@ === DISPLAY === │1a│2 a│ 3a│ -┊↲⠀┊2b┊3↲┊ -┊1↲┊⠀⠀┊b⇥┊ -│⠀⠀│⠀⠀│⠀⠀│ +┊↲⠀┊2b⠀┊3↲⠀┊ +┊1↲┊⠀⠀⠀┊⠀⠀⠀┊ +│⠀⠀│⠀⠀⠀│b⇥⠀│ ┊↲⠀┊⠀⠀⠀┊⇥c⠀┊ ┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ ┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ diff --git a/tests/cases/insert/tab-expand/out-expected.txt b/tests/cases/insert/tab-expand/out-expected.txt index afbc389..b690c91 100644 --- a/tests/cases/insert/tab-expand/out-expected.txt +++ b/tests/cases/insert/tab-expand/out-expected.txt @@ -2,8 +2,12 @@ === DISPLAY === │1a│2 a│ 3a│ -┊ 1↲┊2b┊3↲┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀│b⇥│ +┊ ┊2b⠀┊3↲⠀┊ +┊ ┊⠀⠀⠀┊⠀⠀⠀┊ +┊ ┊⠀⠀⠀┊⠀⠀⠀┊ +┊ 1┊⠀⠀⠀┊⠀⠀⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +│⠀⠀│⠀⠀⠀│b⇥⠀│ ┊↲⠀┊⠀⠀⠀┊⇥c⠀┊ ┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ ┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ diff --git a/tests/cases/insert/tab/out-expected.txt b/tests/cases/insert/tab/out-expected.txt index 1ae8732..fa99c74 100644 --- a/tests/cases/insert/tab/out-expected.txt +++ b/tests/cases/insert/tab/out-expected.txt @@ -4,10 +4,11 @@ [TIR][ERROR][[string ":lua"]:5] [CI] key = A5 === DISPLAY === -│1a⠀│2 a│ 3a⠀│ -┊⇥1↲┊2b⠀┊3↲⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│b⇥⠀⠀│ -┊↲⠀⠀┊⠀⠀⠀┊⇥c⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -┊↲⠀⠀┊⠀⠀⠀┊⠀⠀⠀⠀┊ -│⠀⠀⠀│⠀⠀⠀│⠀⠀⠀⠀│ +│1a│2 a│ 3a│ +┊⇥1┊2b⠀┊3↲⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +│⠀⠀│⠀⠀⠀│b⇥⠀│ +┊↲⠀┊⠀⠀⠀┊⇥c⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ +│⠀⠀│⠀⠀⠀│⠀⠀⠀│ diff --git a/tests/cases/normal/join/out-expected.txt b/tests/cases/normal/join/out-expected.txt index cb4cf3c..bbbff13 100644 --- a/tests/cases/normal/join/out-expected.txt +++ b/tests/cases/normal/join/out-expected.txt @@ -2,7 +2,13 @@ === DISPLAY === │1a│2 a│ 3a│ -┊1a┊2 a┊ 3a 1↲ 2b 3↲┊ +┊1a┊2 a┊ 3a┊ +┊⠀⠀┊⠀⠀⠀┊ ┊ +┊⠀⠀┊⠀⠀⠀┊1↲ ┊ +┊⠀⠀┊⠀⠀⠀┊2b ┊ +┊⠀⠀┊⠀⠀⠀┊3↲⠀┊ +┊⠀⠀┊⠀⠀⠀┊ ┊ +│⠀⠀│⠀⠀⠀│ ⠀⠀│ │⠀⠀│⠀⠀⠀│b⇥⠀│ ┊↲⠀┊⠀⠀⠀┊⇥c⠀┊ ┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ diff --git a/tests/cases/normal/o/out-expected.txt b/tests/cases/normal/o/out-expected.txt index 487e983..d910e21 100644 --- a/tests/cases/normal/o/out-expected.txt +++ b/tests/cases/normal/o/out-expected.txt @@ -1,12 +1,16 @@ === MESSAGE === === DISPLAY === -│ abc│⠀⠀⠀│⠀⠀⠀│ +┊ a┊⠀⠀⠀┊⠀⠀⠀┊ +│bc│⠀⠀⠀│⠀⠀⠀│ │1a│2 a│ 3a│ ┊1↲┊2b⠀┊3↲⠀┊ -│123│⠀⠀⠀│b⇥⠀│ +┊⠀⠀┊⠀⠀⠀┊⠀⠀⠀┊ +│⠀⠀│⠀⠀⠀│b⇥⠀│ ┊↲⠀┊⠀⠀⠀┊⇥c⠀┊ ┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ ┊↲⠀┊⠀⠀⠀┊⠀⠀⠀┊ │⠀⠀│⠀⠀⠀│⠀⠀⠀│ -│ 1 | 2│⠀⠀⠀│⠀⠀⠀│ +┊ 1┊⠀⠀⠀┊⠀⠀⠀┊ +┊ |┊⠀⠀⠀┊⠀⠀⠀┊ +│ 2│⠀⠀⠀│⠀⠀⠀│ diff --git a/tests/cases/normal/o/run.vim b/tests/cases/normal/o/run.vim index 35430d9..62daa09 100644 --- a/tests/cases/normal/o/run.vim +++ b/tests/cases/normal/o/run.vim @@ -2,7 +2,7 @@ source $TIRENVI_ROOT/tests/common.vim edit $TIRENVI_ROOT/tests/data/simple.csv call cursor(2, 2) -execute "normal! o123\" +execute "normal! o\" sleep 1m call cursor(1, 5) execute "normal! O abc\" diff --git a/tests/cases/normal/yyp/out-expected.txt b/tests/cases/normal/yyp/out-expected.txt index 020ca32..38c86c2 100644 --- a/tests/cases/normal/yyp/out-expected.txt +++ b/tests/cases/normal/yyp/out-expected.txt @@ -2,10 +2,14 @@ === DISPLAY === gfm -│Name⠀│Age│City⠀⠀│ -│----⠀│---│----⠀⠀│ -│Alice│23⠀│Tokyo⠀│ -│Bob⠀⠀│31⠀│Osaka⠀│ -│Carol│27⠀│Nagoya│ -│Carol│27⠀│Nagoya│ +│Name⠀│Age│City⠀⠀⠀⠀⠀⠀⠀│ +│----⠀│---│----⠀⠀⠀⠀⠀⠀⠀│ +│Alice│23⠀│Tokyo⠀⠀⠀⠀⠀⠀│ +┊Bob⠀⠀┊31⠀┊Osaka↲⠀⠀⠀⠀⠀┊ +┊Bob⠀⠀┊31⠀┊Osaka↲⠀⠀⠀⠀⠀┊ +│⠀⠀⠀⠀⠀│⠀⠀⠀│nipponbashi│ +│⠀⠀⠀⠀⠀│⠀⠀⠀│nipponbashi│ +│Carol│27⠀│Nagoya⠀⠀⠀⠀⠀│ +│Carol│27⠀│Nagoya⠀⠀⠀⠀⠀│ markdown + diff --git a/tests/cases/normal/yyp/run.vim b/tests/cases/normal/yyp/run.vim index 0809527..1d9937a 100644 --- a/tests/cases/normal/yyp/run.vim +++ b/tests/cases/normal/yyp/run.vim @@ -1,7 +1,14 @@ source $TIRENVI_ROOT/tests/common.vim edit $TIRENVI_ROOT/tests/data/simple.md +call cursor(7, 1) +execute "normal! yyp\" +sleep 1m call cursor(6, 1) execute "normal! yyp\" +sleep 1m +call cursor(5, 1) +execute "normal! yyp\" +sleep 1m call RunTest({}) \ No newline at end of file diff --git a/tests/cases/save/as-csv/out-expected.txt b/tests/cases/save/as-csv/out-expected.txt index 73d9319..983e146 100644 --- a/tests/cases/save/as-csv/out-expected.txt +++ b/tests/cases/save/as-csv/out-expected.txt @@ -1,235 +1,22 @@ === MESSAGE === -"gen.csv" [New] 115L, 2239B written +tirenvi: install 'tpope/vim-repeat' to enable '.' repeat +"gen.csv" [New] 8L, 36B written === DISPLAY === -│A1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B22⠀⠀⠀⠀⠀⠀│C333⠀⠀⠀⠀⠀⠀│D4444⠀⠀⠀│E55555⠀⠀⠀│F666666│ -│alpha1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b2⠀⠀⠀⠀⠀⠀⠀│c3⠀⠀⠀⠀⠀⠀⠀⠀│d4⠀⠀⠀⠀⠀⠀│e5⠀⠀⠀⠀⠀⠀⠀│f6⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│ no⠀⠀⠀⠀⠀⠀│ value │ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y22⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z333⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│ - next -│ line⠀⠀⠀⠀⠀│ has⠀⠀⠀│linefeed⠀│ ⠀⠀⠀⠀⠀│ -┊↲⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊abc⠀⠀⠀⠀⠀⠀┊DEF123⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊gh⠀⠀⠀⠀⠀⠀⠀┊9⠀⠀⠀⠀⠀⠀┊ -┊"1"2h", 34567890a┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -┊a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊b↲⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊c⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│tab⠀⠀⠀⠀⠀⠀│ ⠀⠀⠀⠀⠀│ -│⇥ l⇥ongtext01⠀⠀⠀⠀│mi⇥⇥d2⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀⠀⠀│vvvv⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀⠀⠀│⇥⇥⇥⇥⇥⇥⇥⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│R1C1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│R1C2⠀⠀⠀⠀⠀│R1C3⠀⠀⠀⠀⠀⠀│R1C4⠀⠀⠀⠀│R1C5⠀⠀⠀⠀⠀│R1C6⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ line⠀⠀⠀⠀⠀│ is⠀⠀⠀⠀│multibyte│ value │ -│aaあい⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│いろ2⠀⠀⠀⠀│ぼんさんが│へを⠀⠀⠀⠀│こいた⠀⠀⠀│.!...⠀│ -│g1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│h22⠀⠀⠀⠀⠀⠀│i333⠀⠀⠀⠀⠀⠀│j4444⠀⠀⠀│k55555⠀⠀⠀│l6⠀⠀⠀⠀⠀│ -│ ===⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│- next -⠀│ lines⠀⠀⠀⠀│ has⠀⠀⠀│linefeed+│tab ⠀⠀│ -┊⇥⇥ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀┊↲⠀⠀⠀⠀⠀⠀⠀⠀┊n⇥ ⠀⠀⠀⠀⠀⠀⠀┊⇥⇥ o333⠀┊⠀⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀┊ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⇥⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│pqrst⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│uv⠀⠀⠀⠀⠀⠀⠀│wx1⠀⠀⠀⠀⠀⠀⠀│yz22⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│a1b2c3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀⠀│7777⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│k9⠀⠀⠀⠀⠀│ -│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│longer12⠀│x⠀⠀⠀⠀⠀⠀⠀⠀⠀│yz⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row15a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row15b⠀⠀⠀│row15c⠀⠀⠀⠀│row15d⠀⠀│row15e⠀⠀⠀│row15f⠀│ -│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│22⠀⠀⠀⠀⠀⠀⠀│333⠀⠀⠀⠀⠀⠀⠀│4444⠀⠀⠀⠀│55555⠀⠀⠀⠀│666666⠀│ -│alpha⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta⠀⠀⠀⠀⠀│gamma⠀⠀⠀⠀⠀│delta⠀⠀⠀│epsilon⠀⠀│zeta⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│mix1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀⠀│444⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│six6⠀⠀⠀│ -│abc123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│def456⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ghi789⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│z⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│t1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│t2⠀⠀⠀⠀⠀⠀⠀│t3⠀⠀⠀⠀⠀⠀⠀⠀│t4⠀⠀⠀⠀⠀⠀│t5⠀⠀⠀⠀⠀⠀⠀│t6⠀⠀⠀⠀⠀│ -│r1c1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c2⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c4⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│r1c6⠀⠀⠀│ -│data1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│data22⠀⠀⠀│data333⠀⠀⠀│data4444│data55555│data6⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│A⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│B⠀⠀⠀⠀⠀⠀⠀⠀│C⠀⠀⠀⠀⠀⠀⠀⠀⠀│D⠀⠀⠀⠀⠀⠀⠀│E⠀⠀⠀⠀⠀⠀⠀⠀│F⠀⠀⠀⠀⠀⠀│ -│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│123⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│XYZ⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│one1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│two22⠀⠀⠀⠀│three3⠀⠀⠀⠀│four44⠀⠀│five5⠀⠀⠀⠀│six66⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r30a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r30b⠀⠀⠀⠀⠀│r30c⠀⠀⠀⠀⠀⠀│r30d⠀⠀⠀⠀│r30e⠀⠀⠀⠀⠀│r30f⠀⠀⠀│ -│longvalue1⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│short⠀⠀⠀⠀⠀│s⠀⠀⠀⠀⠀⠀⠀│tt⠀⠀⠀⠀⠀⠀⠀│uuu⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│end⠀⠀⠀⠀│ -│abcde⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│fghij⠀⠀⠀⠀│klmno⠀⠀⠀⠀⠀│pqrst⠀⠀⠀│uvwxy⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│cell1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│cell3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│cell5⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│111⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2222⠀⠀⠀⠀⠀│33333⠀⠀⠀⠀⠀│444444⠀⠀│55⠀⠀⠀⠀⠀⠀⠀│6⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row40a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row40b⠀⠀⠀│row40c⠀⠀⠀⠀│row40d⠀⠀│row40e⠀⠀⠀│row40f⠀│ -│a1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│a2⠀⠀⠀⠀⠀⠀⠀│a3⠀⠀⠀⠀⠀⠀⠀⠀│a4⠀⠀⠀⠀⠀⠀│a5⠀⠀⠀⠀⠀⠀⠀│a6⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│mixA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mixC⠀⠀⠀⠀⠀⠀│DDD⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│FFF⠀⠀⠀⠀│ -│123abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│456def⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│789ghi⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│000⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r45a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r45b⠀⠀⠀⠀⠀│r45c⠀⠀⠀⠀⠀⠀│r45d⠀⠀⠀⠀│r45e⠀⠀⠀⠀⠀│r45f⠀⠀⠀│ -│alpha9⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta8⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│gamma7⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│A1B2C3⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│D4E5F6⠀⠀⠀│G7H8I9⠀⠀⠀⠀│J0⠀⠀⠀⠀⠀⠀│K1⠀⠀⠀⠀⠀⠀⠀│L2⠀⠀⠀⠀⠀│ -│short1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│short3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│short5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r50a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r50b⠀⠀⠀⠀⠀│r50c⠀⠀⠀⠀⠀⠀│r50d⠀⠀⠀⠀│r50e⠀⠀⠀⠀⠀│r50f⠀⠀⠀│ -│x1y2⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│z3⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│w4⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│v5⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│longertext⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀│small⠀⠀⠀⠀⠀│s1⠀⠀⠀⠀⠀⠀│s22⠀⠀⠀⠀⠀⠀│s333⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r55a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r55b⠀⠀⠀⠀⠀│r55c⠀⠀⠀⠀⠀⠀│r55d⠀⠀⠀⠀│r55e⠀⠀⠀⠀⠀│r55f⠀⠀⠀│ -│abc⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def⠀⠀⠀⠀⠀⠀│ghi⠀⠀⠀⠀⠀⠀⠀│jkl⠀⠀⠀⠀⠀│mno⠀⠀⠀⠀⠀⠀│pqr⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│1a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│2b⠀⠀⠀⠀⠀⠀⠀│3c⠀⠀⠀⠀⠀⠀⠀⠀│4d⠀⠀⠀⠀⠀⠀│5e⠀⠀⠀⠀⠀⠀⠀│6f⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row60a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row60b⠀⠀⠀│row60c⠀⠀⠀⠀│row60d⠀⠀│row60e⠀⠀⠀│row60f⠀│ -│value1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│value3⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│value5⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│aa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│bb⠀⠀⠀⠀⠀⠀⠀│cc⠀⠀⠀⠀⠀⠀⠀⠀│dd⠀⠀⠀⠀⠀⠀│ee⠀⠀⠀⠀⠀⠀⠀│ff⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r65a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r65b⠀⠀⠀⠀⠀│r65c⠀⠀⠀⠀⠀⠀│r65d⠀⠀⠀⠀│r65e⠀⠀⠀⠀⠀│r65f⠀⠀⠀│ -│x⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│y⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│z⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│alpha01⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│beta02⠀⠀⠀│gamma03⠀⠀⠀│delta04⠀│eps05⠀⠀⠀⠀│z6⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row70a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row70b⠀⠀⠀│row70c⠀⠀⠀⠀│row70d⠀⠀│row70e⠀⠀⠀│row70f⠀│ -│1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│3⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│5⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│abc1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│def2⠀⠀⠀⠀⠀│ghi3⠀⠀⠀⠀⠀⠀│jkl4⠀⠀⠀⠀│mno5⠀⠀⠀⠀⠀│pqr6⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r75a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r75b⠀⠀⠀⠀⠀│r75c⠀⠀⠀⠀⠀⠀│r75d⠀⠀⠀⠀│r75e⠀⠀⠀⠀⠀│r75f⠀⠀⠀│ -│mix⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mix2⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│mix3⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│b⠀⠀⠀⠀⠀⠀⠀⠀│c⠀⠀⠀⠀⠀⠀⠀⠀⠀│d⠀⠀⠀⠀⠀⠀⠀│e⠀⠀⠀⠀⠀⠀⠀⠀│f⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row80a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row80b⠀⠀⠀│row80c⠀⠀⠀⠀│row80d⠀⠀│row80e⠀⠀⠀│row80f⠀│ -│123⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│234⠀⠀⠀⠀⠀⠀│345⠀⠀⠀⠀⠀⠀⠀│456⠀⠀⠀⠀⠀│567⠀⠀⠀⠀⠀⠀│678⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│Aaa⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│Bbb⠀⠀⠀⠀⠀⠀│Ccc⠀⠀⠀⠀⠀⠀⠀│Ddd⠀⠀⠀⠀⠀│Eee⠀⠀⠀⠀⠀⠀│Fff⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r85a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r85b⠀⠀⠀⠀⠀│r85c⠀⠀⠀⠀⠀⠀│r85d⠀⠀⠀⠀│r85e⠀⠀⠀⠀⠀│r85f⠀⠀⠀│ -│x1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│x3⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│x5⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│abcde12345⠀⠀⠀⠀⠀⠀⠀│f1⠀⠀⠀⠀⠀⠀⠀│g2⠀⠀⠀⠀⠀⠀⠀⠀│h3⠀⠀⠀⠀⠀⠀│i4⠀⠀⠀⠀⠀⠀⠀│j5⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│row90a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│row90b⠀⠀⠀│row90c⠀⠀⠀⠀│row90d⠀⠀│row90e⠀⠀⠀│row90f⠀│ -│1a2b3c⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│4d5e6f⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│7g8h9i⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│short⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│mid⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│longer⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│r95a⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│r95b⠀⠀⠀⠀⠀│r95c⠀⠀⠀⠀⠀⠀│r95d⠀⠀⠀⠀│r95e⠀⠀⠀⠀⠀│r95f⠀⠀⠀│ -│a1b⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│c2d⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│e3f⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ -│end1⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│end2⠀⠀⠀⠀⠀│end3⠀⠀⠀⠀⠀⠀│end4⠀⠀⠀⠀│end5⠀⠀⠀⠀⠀│end6⠀⠀⠀│ -│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀│ +│1a│2 a⠀⠀⠀⠀⠀│ 3a│ +┊1↲┊2b⠀⠀⠀⠀⠀⠀┊3↲⠀┊ +│⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│b⇥⠀│ +┊↲⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊⇥c⠀┊ +┊↲⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀┊ +┊↲⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊⠀⠀⠀┊ +│⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│⠀⠀⠀│ === FILE === -A1,B22,C333,D4444,E55555,F666666 -alpha1,b2,c3,d4,e5,f6 - ===,- next -, line, has, no, value -,,,,, -x1,,y22,,z333, -===, - next -, line, has,linefeed, +1a,2 a, 3a +"1 +",2b,"3 +b " " -""1""2h"", 34567890a",abc,DEF123," -",gh,9 -a,,"b -",,c, - ===,- next -, lines, has,tab, - l ongtext01,mi d2,s,tt,uuu,vvvv -,, , ,, -R1C1,R1C2,R1C3,R1C4,R1C5,R1C6 - ===,- next -, line, is,multibyte, value -aaあい,いろ2,ぼんさんが,へを,こいた,.!... -g1,h22,i333,j4444,k55555,l6 - ===,- next -, lines, has,linefeed+,tab - ," - ",n , o333,, -pqrst,uv,wx1,yz22,,345 -,,,,, -a1b2c3,,XYZ,7777,,k9 -short,longer12,x,yz,,end -,,,,, -row15a,row15b,row15c,row15d,row15e,row15f -1,22,333,4444,55555,666666 -alpha,beta,gamma,delta,epsilon,zeta -,,,,, -mix1,,mix3,444,,six6 -abc123,,def456,,ghi789, -z,,y,,x, -,,,,, -t1,t2,t3,t4,t5,t6 -r1c1,r1c2,,r1c4,,r1c6 -data1,data22,data333,data4444,data55555,data6 -,,,,, -A,B,C,D,E,F -abc,,123,,XYZ, -one1,two22,three3,four44,five5,six66 -,,,,, -r30a,r30b,r30c,r30d,r30e,r30f -longvalue1,mid,short,s,tt,uuu -,,,,, -x,y,z,,,end -abcde,fghij,klmno,pqrst,uvwxy,z -,,,,, -cell1,,cell3,,cell5, -111,2222,33333,444444,55,6 -,,,,, -row40a,row40b,row40c,row40d,row40e,row40f -a1,a2,a3,a4,a5,a6 -,,,,, -mixA,,mixC,DDD,,FFF -123abc,456def,,789ghi,,000 -,,,,, -r45a,r45b,r45c,r45d,r45e,r45f -alpha9,,beta8,,gamma7, -,,,,, -A1B2C3,D4E5F6,G7H8I9,J0,K1,L2 -short1,,short3,,short5, -,,,,, -r50a,r50b,r50c,r50d,r50e,r50f -x1y2,z3,,w4,,v5 -,,,,, -longertext,mid,small,s1,s22,s333 -,,,,, -r55a,r55b,r55c,r55d,r55e,r55f -abc,def,ghi,jkl,mno,pqr -,,,,, -1a,2b,3c,4d,5e,6f -,,,,, -row60a,row60b,row60c,row60d,row60e,row60f -value1,,value3,,value5, -,,,,, -aa,bb,cc,dd,ee,ff -,,,,, -r65a,r65b,r65c,r65d,r65e,r65f -x,,y,,z, -,,,,, -alpha01,beta02,gamma03,delta04,eps05,z6 -,,,,, -row70a,row70b,row70c,row70d,row70e,row70f -1,,3,,5, -,,,,, -abc1,def2,ghi3,jkl4,mno5,pqr6 -,,,,, -r75a,r75b,r75c,r75d,r75e,r75f -mix,,mix2,,mix3, -,,,,, -a,b,c,d,e,f -,,,,, -row80a,row80b,row80c,row80d,row80e,row80f -123,234,345,456,567,678 -,,,,, -Aaa,Bbb,Ccc,Ddd,Eee,Fff -,,,,, -r85a,r85b,r85c,r85d,r85e,r85f -x1,,x3,,x5, -,,,,, -abcde12345,f1,g2,h3,i4,j5 -,,,,, -row90a,row90b,row90c,row90d,row90e,row90f -1a2b3c,,4d5e6f,,7g8h9i, -,,,,, -short,,mid,,longer, -,,,,, -r95a,r95b,r95c,r95d,r95e,r95f -a1b,,c2d,,e3f, -,,,,, -end1,end2,end3,end4,end5,end6 -,,,,, +",, c diff --git a/tests/cases/save/as-csv/run.vim b/tests/cases/save/as-csv/run.vim index c5c5a03..46ac933 100644 --- a/tests/cases/save/as-csv/run.vim +++ b/tests/cases/save/as-csv/run.vim @@ -3,7 +3,20 @@ source $TIRENVI_ROOT/tests/common.vim let outfile = 'gen.csv' -edit $TIRENVI_ROOT/tests/data/complex.csv +lua << EOF +local M = require("tirenvi") +M.setup({ + textobj = { + column = "h" + }, +}) +EOF + +edit $TIRENVI_ROOT/tests/data/simple.csv +sleep 1m +call cursor(2, 11) +Tir width=8 +sleep 1m execute 'write ' . outfile call RunTest({ 'file': outfile }) \ No newline at end of file diff --git a/tests/cases/textobj/vil/out-expected.txt b/tests/cases/textobj/vil/out-expected.txt index 1eac5ca..106a6b2 100644 --- a/tests/cases/textobj/vil/out-expected.txt +++ b/tests/cases/textobj/vil/out-expected.txt @@ -2,9 +2,11 @@ === DISPLAY === gfm -│City⠀⠀│Age││ -│----⠀⠀│---││ -│Tokyo⠀│23⠀││ -│Osaka⠀│31⠀││ -│Nagoya│27⠀││ +│City⠀⠀⠀⠀⠀⠀⠀│Age││ +│----⠀⠀⠀⠀⠀⠀⠀│---││ +│Tokyo⠀⠀⠀⠀⠀⠀│23⠀││ +┊Osaka↲⠀⠀⠀⠀⠀┊31⠀┊┊ +│nipponbashi│⠀⠀⠀││ +│Nagoya⠀⠀⠀⠀⠀│27⠀││ markdown + diff --git a/tests/cases/textobj/width/out-expected.txt b/tests/cases/textobj/width/out-expected.txt index bbd277b..c7687c2 100644 --- a/tests/cases/textobj/width/out-expected.txt +++ b/tests/cases/textobj/width/out-expected.txt @@ -1,12 +1,22 @@ === MESSAGE === tirenvi: install 'tpope/vim-repeat' to enable '.' repeat -5 changes; before #6 0 seconds ago +7 changes; before #6 0 seconds ago === DISPLAY === gfm -│Name│Age⠀⠀│City⠀⠀⠀⠀│ -│----│---⠀⠀│----⠀⠀⠀⠀│ -│Alice│23⠀⠀⠀│Tokyo⠀⠀⠀│ -│Bob│31⠀⠀⠀│Osaka⠀⠀⠀│ -│Carol│27⠀⠀⠀│Nagoya⠀⠀│ +┊Na┊Age⠀⠀┊City⠀⠀⠀⠀┊ +│me│⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ +┊--┊---⠀⠀┊----⠀⠀⠀⠀┊ +│--│⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ +┊Al┊23⠀⠀⠀┊Tokyo⠀⠀⠀┊ +┊ic┊⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊ +│e⠀│⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ +┊Bo┊31⠀⠀⠀┊Osaka↲⠀⠀┊ +┊b⠀┊⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊ +┊⠀⠀┊⠀⠀⠀⠀⠀┊nipponba┊ +│⠀⠀│⠀⠀⠀⠀⠀│shi⠀⠀⠀⠀⠀│ +┊Ca┊27⠀⠀⠀┊Nagoya⠀⠀┊ +┊ro┊⠀⠀⠀⠀⠀┊⠀⠀⠀⠀⠀⠀⠀⠀┊ +│l⠀│⠀⠀⠀⠀⠀│⠀⠀⠀⠀⠀⠀⠀⠀│ markdown + diff --git a/tests/cases/textobj/width/run.vim b/tests/cases/textobj/width/run.vim index 6066d35..45c604f 100644 --- a/tests/cases/textobj/width/run.vim +++ b/tests/cases/textobj/width/run.vim @@ -10,22 +10,33 @@ M.setup({ EOF edit $TIRENVI_ROOT/tests/data/simple.md +sleep 1m call cursor(2, 22) Tir width=8 +sleep 1m call cursor(3, 11) Tir width=5 +sleep 1m call cursor(4, 1) Tir width=9 +sleep 1m call cursor(5, 23) Tir width+9 +sleep 1m Tir width+5 +sleep 1m Tir width+ +sleep 1m call feedkeys("u", "x") +sleep 1m call cursor(6, 20) Tir width-10 +sleep 1m call cursor(2, 1) Tir width-100 +sleep 1m call cursor(1, 1) Tir width- +sleep 1m call RunTest({}) \ No newline at end of file diff --git a/tests/cases/tir/on/run.vim b/tests/cases/tir/on/run.vim index 906ae50..ea8c5f6 100644 --- a/tests/cases/tir/on/run.vim +++ b/tests/cases/tir/on/run.vim @@ -7,6 +7,6 @@ let outfile = 'gen.csv' edit $TIRENVI_ROOT/tests/data/complex.csv Tir toggle Tir toggle -Tir hbar +Tir _hbar call RunTest({}) diff --git a/tests/cases/ut/state/buffer/out-expected.txt b/tests/cases/ut/state/buffer/out-expected.txt index 136f5e5..493768d 100644 --- a/tests/cases/ut/state/buffer/out-expected.txt +++ b/tests/cases/ut/state/buffer/out-expected.txt @@ -1,23 +1,23 @@ === MESSAGE === [TIR][🟧PROBE][[string ":lua"]:14] buffer.get_lines(0, 0, -1) -[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=0, end=21, lines[1]=0, line[21]=20, +[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=0, end=21, lines[1]=0, line[21]=20, [TIR][DEBUG][[string ":lua"]:16]
{ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" } [TIR][DEBUG][[string ":lua"]:18]
{ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" } [TIR][🟧PROBE][[string ":lua"]:19] buffer.get_lines(0, -100, 100) [TIR][DEBUG][[string ":lua"]:21]
{ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" } [TIR][🟧PROBE][[string ":lua"]:22] clear & buffer.get_lines(0, 9, 13) -[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=6, end=16, lines[1]=6, line[10]=15, +[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=6, end=16, lines[1]=6, line[10]=15, [TIR][DEBUG][[string ":lua"]:25]
{ "9", "10", "11", "12" } [TIR][🟧PROBE][[string ":lua"]:26] buffer.get_line(0, 6) [TIR][DEBUG][[string ":lua"]:28] 6 [TIR][🟧PROBE][[string ":lua"]:29] buffer.get_line(0, 2) -[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=0, end=6, lines[1]=0, line[6]=5, +[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=0, end=6, lines[1]=0, line[6]=5, [TIR][DEBUG][[string ":lua"]:31] 2 [TIR][🟧PROBE][[string ":lua"]:32] buffer.get_line(0, 19) -[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=15, end=21, lines[1]=15, line[6]=20, +[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=15, end=21, lines[1]=15, line[6]=20, [TIR][DEBUG][[string ":lua"]:34] 19 [TIR][🟧PROBE][[string ":lua"]:35] buffer.get_line(0, 10) -[TIR][DEBUG][buffer.lua:80] ===== bufnr=1, start=4, end=11, lines[1]=4, line[7]=10, +[TIR][DEBUG][buffer.lua:81] ===== bufnr=1, start=4, end=11, lines[1]=4, line[7]=10, [TIR][DEBUG][[string ":lua"]:37] 10 [TIR][🟧PROBE][[string ":lua"]:38] buffer.get_line(0, -1) [TIR][DEBUG][[string ":lua"]:40] nil diff --git a/tests/data/simple.md b/tests/data/simple.md index 669c0a9..b41c667 100644 --- a/tests/data/simple.md +++ b/tests/data/simple.md @@ -2,6 +2,7 @@ gfm | Name | Age | City | | ---- | --- | ---- | | Alice | 23 | Tokyo | -| Bob | 31 | Osaka | +| Bob | 31 | Osaka
nipponbashi | | Carol | 27 | Nagoya | markdown +