From 3555be54c2abb8d5ece008a60dbdfbde0ffbddd7 Mon Sep 17 00:00:00 2001 From: Alex Pickering Date: Fri, 7 Feb 2025 12:49:48 -0600 Subject: inital commit --- 02/1.lua | 21 + 02/2.lua | 21 + 02/example.txt | 3 + 02/ext.lua | 62 ++ 02/input.txt | 2500 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 2607 insertions(+) create mode 100644 02/1.lua create mode 100644 02/2.lua create mode 100644 02/example.txt create mode 100755 02/ext.lua create mode 100644 02/input.txt (limited to '02') diff --git a/02/1.lua b/02/1.lua new file mode 100644 index 0000000..534bbb7 --- /dev/null +++ b/02/1.lua @@ -0,0 +1,21 @@ +require("ext") + +local points = { + ["A X"] = 1 + 3, + ["A Y"] = 2 + 6, + ["A Z"] = 3 + 0, + + ["B X"] = 1 + 0, + ["B Y"] = 2 + 3, + ["B Z"] = 3 + 6, + + ["C X"] = 1 + 6, + ["C Y"] = 2 + 0, + ["C Z"] = 3 + 3, +} + +local score = 0 +for line in io.lines() do + score = score + points[line] +end +print(score) diff --git a/02/2.lua b/02/2.lua new file mode 100644 index 0000000..40ed0d3 --- /dev/null +++ b/02/2.lua @@ -0,0 +1,21 @@ +require("ext") + +local points = { + ["A X"] = 3 + 0, + ["A Y"] = 1 + 3, + ["A Z"] = 2 + 6, + + ["B X"] = 1 + 0, + ["B Y"] = 2 + 3, + ["B Z"] = 3 + 6, + + ["C X"] = 2 + 0, + ["C Y"] = 3 + 3, + ["C Z"] = 1 + 6, +} + +local score = 0 +for line in io.lines() do + score = score + points[line] +end +print(score) diff --git a/02/example.txt b/02/example.txt new file mode 100644 index 0000000..db60e36 --- /dev/null +++ b/02/example.txt @@ -0,0 +1,3 @@ +A Y +B X +C Z diff --git a/02/ext.lua b/02/ext.lua new file mode 100755 index 0000000..4a58a7e --- /dev/null +++ b/02/ext.lua @@ -0,0 +1,62 @@ +-- Override tostring to display more info about the table +local old_tostring = tostring +local numtabs = 0 +local printed_tables = {} + +local function tostring_helper(el) + assert(type(el) == "table", "Tried to call helper with something that was not a table, it was a " .. type(el)) + local mt = getmetatable(el) + if mt and mt.__tostring then + return mt.__tostring(el) + elseif printed_tables[el] == true then + return old_tostring(el) + else + printed_tables[el] = true + numtabs = numtabs + 1 + local strbuilder = setmetatable({"{"},{__index = table}) + for k,v in pairs(el) do + local key,value + if type(k) == "table" then + key = tostring_helper(k) + else + key = old_tostring(k) + end + if type(v) == "table" then + value = tostring_helper(v) + else + value = old_tostring(v) + end + strbuilder:append(string.format("%s%s : %s", string.rep("\t",numtabs), key, value)) + end + strbuilder:append(string.rep("\t",numtabs - 1) .. "}") + numtabs = numtabs - 1 + return strbuilder:concat("\n") + end + +end +function tostring(el) + printed_tables = {} + if type(el) == "table" then + return tostring_helper(el) + end + return old_tostring(el) +end + +-- Functions to save my hands +function printf(fmt, ...) + print(string.format(fmt,...)) +end +function errorf(fmt, ...) + --Our error isn't actually in this function, it's 1 above us (1) = 2 + error(string.format(fmt,...),2) +end +function assertf(bool, fmt, ...) + assert(type(fmt) == "string", "Assertf arg #2 was \"" .. type(fmt) .. "\", expected string") + if not bool then + args = {fmt} + for k,v in ipairs({...}) do + table.insert(args,tostring(v)) + end + error(string.format(unpack(args)),2) + end +end diff --git a/02/input.txt b/02/input.txt new file mode 100644 index 0000000..a6dd261 --- /dev/null +++ b/02/input.txt @@ -0,0 +1,2500 @@ +B Y +A Y +B Z +A Z +A Y +B Z +C X +C X +C X +C Y +C Z +B Y +C Y +C Z +A Y +B Y +C Y +B Y +B Y +B Y +C X +B Z +A X +A Z +C Z +C Y +C Y +B Y +B X +C Z +B Y +B Y +C Y +B Y +B Z +B Z +B Y +A Y +A Y +B Z +B Y +B Y +B Y +C Y +A Y +B Y +C Z +B Y +B Y +A Z +B Y +A Y +B Y +B Z +C Y +C Z +A Z +C Z +B Y +A X +C Z +A X +A Z +B Y +B Y +A Y +C Z +B Y +B Z +B Z +B X +C Y +B Y +A Y +A Y +B Y +A Z +B X +B Y +B Y +C Y +C Z +A Z +B Y +A Y +B Z +B Y +B Y +B Y +C X +C Y +B Y +B Y +B Z +B Y +C X +B Y +B Y +C Z +C Z +A X +A X +A X +A X +B Y +C Z +B Z +B Y +C Z +B Y +B Z +B Y +C X +B Y +C X +C Z +B Z +C Z +C Y +B Y +B Y +A Z +C Z +C Y +C Y +B Y +B X +C Y +B Z +C Z +C Z +A Z +B Y +B Y +B Z +B Y +B Y +C X +A Z +A Y +B Y +C Y +B X +C Y +C X +C Y +A Y +B Y +A Y +A Z +C Z +C Z +A Z +C Y +B Y +C Z +C Y +B Y +B Y +C X +B Y +B Y +C Y +C X +B X +C Y +A Z +B Y +A Z +C Y +C Z +B Y +A Z +C X +C X +B Y +B Y +C Z +B Y +A Y +B Y +A Z +A X +A Y +B Y +B Y +A Y +C Z +B Z +B Y +B Y +B Y +B Y +C X +C Z +C Y +B Y +A Y +A Z +C Y +B Y +B Y +B Z +B Z +B Z +A Y +B Z +B Y +C Y +B Y +C X +C Y +C Y +B Y +A Y +A Z +B Y +B Y +A Y +C X +C X +B Y +A Z +A X +C Y +C Y +C Y +C X +C Y +B Y +B Z +B Y +B X +A Z +B Y +B Z +A X +B Y +C Z +B Y +B Z +B Y +B Y +B Y +B X +C Z +C Z +A Y +B Y +C Y +A Y +C X +C Z +A Z +C Y +B Y +B Y +C Z +A Z +C Y +C X +C Z +B X +B Y +C Y +B Y +C X +B Y +A X +B Y +B Y +A Z +B Y +B Y +C X +B Y +A X +A Y +B Y +A Y +C Y +C X +C X +B Z +B Y +C Y +C Y +C Y +B Y +A Y +C Y +B Y +B Y +B Y +B Y +A Z +B Y +B Y +A Z +B Y +C Z +C Y +B Y +B Z +A Y +B Y +A Z +C Z +B Y +C Z +B Z +B Z +A X +A Z +C Z +B Y +A Y +C Z +C Y +B Y +B X +B Y +C Y +C Y +C Y +C X +C Y +B Y +B Y +C Y +B Y +C Z +C Z +B Y +A Y +C Y +B Z +C X +C Y +B Y +B Y +B Y +C Z +B Z +B Y +A Y +B Y +A Z +B Y +B Z +B Y +B Z +B Y +B Z +C Z +C Z +A X +A Y +B Y +C Z +C Y +B Z +A Y +A X +B Y +B Y +B Y +B Z +B Y +B Y +C Y +B Y +B Y +C Y +B Y +A Z +C Z +C Z +C Z +A Z +B Y +B Z +B Y +A Z +B Y +B Y +B Y +B Y +B Y +A X +C Y +B Y +C Z +B Y +B Y +B Y +C Y +A Z +B Y +B Z +B Y +B Y +B Y +B Y +B Y +C Y +B Z +A Z +C Y +C X +C X +B Y +C Z +B Z +B Z +B Y +B Y +B Y +A Z +B Z +A Z +B Z +A Z +B Y +B X +B Y +C Z +C Y +B Y +A Z +A Z +B Y +B Y +B Y +B Y +A Z +B Z +B Y +B Y +B Z +B Y +C Z +B Y +C Y +B Y +C Y +B Y +A Z +B Y +A Z +C Z +C Y +A Z +A Y +A Y +A X +A Y +B Y +B Z +A X +C X +C Z +B Y +A Z +A X +B Y +B Y +B Y +B Z +C Y +C X +B Z +B Y +B Y +B Y +B Y +B Y +B Y +A Z +C Y +B Z +B Y +B Y +B Y +A X +B Z +A Y +C Z +B Z +B Y +B Y +C Y +A Y +C Y +B Y +B Y +A X +C X +B Z +C Y +B Y +B Z +C Y +B Y +B Z +B X +B Y +A Z +B Y +B Z +B Y +B Y +A Z +A X +A Z +B Z +A X +C Y +B Z +B Y +B X +A X +C Y +C X +A Y +B Z +B Y +A X +A Z +C X +C Z +B Z +C X +C X +B Y +A Y +B Y +B Y +C Z +A X +C X +B Y +B Y +B Y +B Y +C X +B Z +B Y +B Y +C X +B X +B Y +C X +A Z +A Y +B Y +B Y +B Y +C Z +B Y +C X +C X +B Z +B Z +B Z +B X +B Y +C Y +B Z +B Y +B Y +B Y +B Z +B Y +C Y +B Y +B Y +B Y +B Y +B Z +C Z +A Y +C Y +B Y +B Y +A Z +C Z +B Y +B Y +A Y +B Y +C Z +C Z +B Y +A Y +A Y +C Y +B Z +B Z +C X +B Y +C X +B Z +C Z +A Z +A Y +B Z +C X +B Y +A X +A Z +A Y +B Y +B X +B Z +A Z +B Z +A X +A X +A Y +B Y +C Y +B Y +B Y +C Z +B Y +A X +B Y +C Y +B Z +C X +B Y +B Y +B Z +A Z +B Y +C Z +B Y +C Y +B Y +A Y +B Y +B Y +A Z +A Y +C Y +B Y +B Z +C Y +B Y +B Y +C Z +B Y +C Z +A X +A Z +B Y +B Y +C Z +B Y +B Y +C Y +A X +C Z +B Y +A Y +B Y +A X +A Z +B Z +B Z +B Y +B Y +C Y +A Y +C X +B Y +A Z +C Y +C X +A Y +A Z +C X +C Z +A Y +B Y +B Y +C X +B Y +A Y +B Z +A X +C Z +A X +B Z +A Z +A Z +B Z +B Y +B Y +B Y +B Y +C Y +B Y +A X +A Y +A Y +B Y +B Y +C Z +A Y +B Z +B Y +C Y +A X +B Y +A X +A X +A Z +C Y +A Z +C Z +B Y +B Y +B Y +A X +B Z +C Z +A X +B Y +B Y +B Y +B Y +B Y +B Y +C Y +B Y +B Y +C Y +C Y +C Z +A Y +C Y +B Z +B Y +C Y +B Y +C Y +A Y +B Y +B Y +B Y +B Z +B Z +B Y +B Y +B Y +B Y +B Y +B Y +C X +A Z +A X +B Y +B Z +A Z +A Z +B Y +B Y +A Z +A Y +A Z +A Z +A Y +B Y +B Y +B Y +B Y +C X +B Y +B Y +B Y +B Y +B Z +B Z +B Y +C Z +A Z +A Y +B Y +B X +C Y +C Y +A Z +A X +B Y +A X +B Y +C Z +B Y +C X +B Y +B Y +B Y +C X +C Y +B Y +B Y +B Y +A Y +B Y +C X +B Z +B Y +B Y +C Z +B Y +B Y +A Z +B Z +B Y +B Z +B X +A Y +B Y +B Y +B Y +B Y +C X +C Y +B Y +A Z +A Y +B Y +B Y +B Y +B Y +B Y +B Z +C Z +A X +B Y +A Y +B Y +B Y +B Y +B Y +B Y +A Y +B Z +B Y +B Y +C Y +A X +A X +B X +C Y +B Y +A Y +B Y +B Z +B Y +C Y +B Z +B Z +A Y +A Y +C Z +B Y +C Z +C X +A Y +B Y +A Y +A X +B Y +C Y +A Z +B Y +B Y +B Y +A Z +B Y +A X +C X +A X +B Z +C Y +A X +C Y +A Z +C Y +B Y +B Y +B Y +B Y +C Y +C Z +A Z +B Z +B Z +C Z +B Y +A Y +B Z +B Z +A Y +B Z +C Z +C Y +C X +C Z +C X +B Y +A X +B Z +B Y +A X +B Y +B Y +B Z +C Y +C Z +C Y +B Y +B Y +B Z +A X +B Y +A X +B Z +A Z +A Z +B Y +C Y +C Y +C Y +B Y +A Z +B Z +B Z +C Y +A Y +A Y +A Z +B Y +A X +B Z +C X +B Z +B Y +A Y +A Y +C Y +A Z +B X +A X +C Y +B Y +B Y +C Y +B Z +C X +C Y +B Y +C Y +B Y +B Y +C Y +B X +A Z +B Z +B Y +A Z +B Z +B Y +A Z +C Y +C Y +B Y +C Y +B Y +B Y +B Y +B Y +B Z +B Y +C Y +C Z +B Y +B Y +A Z +B Y +B Z +A Y +A Y +C Y +A Z +C Y +B Z +B Y +C Y +B Z +C Y +A Z +B Y +B Y +B Y +B Y +C Z +A Y +A X +C X +A Y +C Y +C X +B Y +C Y +A Y +B Y +C Y +B Y +A X +B Y +B Y +B Z +C Y +C Y +A X +B Z +A Z +B Y +B Y +B Y +B X +B Y +B Y +C Y +B Y +C X +A Y +B Y +B Y +A Z +C X +A X +A X +C X +B Y +C Z +B Y +A Z +C Y +B Y +B Y +C X +B Z +C Y +A X +A Y +C Y +A Z +B Y +B Z +C Y +A Z +A Y +A Y +B Y +A X +B Z +B X +B Z +B Y +B Y +A Y +C Y +B Y +B Z +B Y +A Y +C Y +C Y +A X +B Y +A X +C X +A Z +A Y +B Z +B Y +B Y +B Y +C Y +A X +B Z +A X +C Y +C Z +A X +B Z +C X +B Y +B Y +A Y +B Z +B X +B Y +B Y +A Z +C Y +B Y +B Y +C Y +B Y +A X +B Y +B Y +B Z +B Y +A Y +A Z +B Y +B Y +A Y +A Z +A Z +A Y +B Y +A Y +B Z +B Y +B Y +A Z +B Y +B Y +B X +A X +B Y +B Y +C Z +C X +A Y +B Z +B Y +C Y +B Y +B Y +B Y +A X +A Y +B Y +C Z +B Y +B Y +B Y +C Z +B Y +B Z +B Y +B Y +B Y +C Y +B Y +B Y +C Y +C Y +A X +C Y +A Y +B Y +B Y +B Y +B Y +A Y +A Y +C X +B Y +C Z +A X +B X +C Z +C Y +B Y +B Y +B X +B Z +C Y +B Z +B Y +B Y +B Y +B Y +C Z +C Y +C Y +A Y +B Y +B Z +B Y +C Z +B Y +B Y +C Y +B Y +B Z +B Z +B Y +C Z +B Y +B Y +B Y +B Y +B Y +A Y +C X +A Z +A Y +B Y +C X +B Z +B Y +C Y +B Y +A Y +B Y +B Y +B Y +A Z +A Z +B Y +B Y +B Z +A Z +C Y +C Y +C Y +C Z +B Y +C Y +C X +A Z +B Z +B X +B X +C Y +B Y +A Z +B Z +B Y +B Y +B Z +B Y +B Y +B X +B Y +B Y +A Z +A Z +A Y +B Z +B Y +A Y +B Y +A Z +B Y +B Y +A X +B Z +C Y +A Z +C Y +C Y +B Y +C X +C Y +A X +A Z +C Z +B Y +B Y +B Y +B Y +B Y +B Y +B Y +B Y +B Y +B Y +B Y +B Y +B Y +C X +C Y +C Y +C Y +B Y +B Y +C Y +C Y +A X +B X +C X +C Z +B Y +A Y +A Z +B Y +C Y +C Z +B Y +A Y +C Y +B Y +A Y +B Y +A Y +C Z +C Y +A Y +A Z +B Y +C Y +B Y +B Y +B Y +B Y +B Z +C Z +B Y +B Y +C Z +A Y +B Y +C Y +B Y +A X +B Y +B Y +A Y +B Y +B Y +A X +B Y +B Z +B Y +B Y +B Y +C Z +C Y +A Z +B Y +C Y +C Z +B Y +A Y +B Y +B Y +B Y +C X +B Z +C Y +C X +A X +C Y +B Y +B Y +B Y +B Y +B Y +B Z +C Y +B Y +C X +B Y +B Y +B Y +B Z +A Y +A Y +A Z +B Y +C Y +A Y +A X +B Z +C Y +B Y +B Y +B Y +B Y +B Z +A Y +B Y +C Y +C Z +B X +B Z +B Y +B Y +C Y +B X +A Y +C Y +B Y +C Y +C X +A Y +B Y +B Z +C Z +B Y +B Y +C Z +A Z +A Y +B Y +B Y +B Y +C Y +B Y +B Y +B Z +B Z +C Y +B Y +A Z +C Y +C Y +B Y +A Z +B Y +B Y +B Y +A Y +A X +C Y +C Z +C Y +B Z +B Y +B Y +B Y +C Y +B Y +B Y +B Y +B Z +B Y +B Y +C X +C Y +A Z +C X +B Y +B Y +B Z +B Y +A X +A X +C X +B Y +B Y +B Y +A Z +B Z +B Z +B Y +C Y +B Y +B Y +C Y +A Z +C Y +B Y +B Z +A Z +A Y +B Z +A Z +B Y +B Y +A Z +B Y +C Z +B Y +B Y +B Z +B Y +B Y +B Y +B Y +B Y +B Y +A Z +B Y +B Y +C Y +B Y +A Y +B Y +C Y +B Y +B Y +B Y +C Z +C Y +C X +B Y +A X +C Y +B Z +C Y +B Y +C X +A Y +B Y +A Z +A X +B Z +C Y +C Y +A Z +C Z +B Z +B Y +B Y +B Y +B Y +A Y +A Z +B Y +B Y +A Y +C X +B Y +B Y +C Y +C X +B X +C Y +B Y +A Y +B Y +B Y +B Y +C Y +B Y +B Y +A Z +B Y +A Z +B Y +B Y +B Z +B Y +C Y +B Y +A Y +B Y +A Y +B Y +B Z +B Y +B Y +C X +B Y +B Y +C X +C Z +C Z +B Y +B Z +B Y +A Y +B Y +A Y +B Y +C Y +A Y +B Y +C Y +B Y +B Y +B Y +A Y +C Y +C Z +C X +C Y +C X +C Y +B Y +C Z +C Z +B Y +A Z +B Z +B X +C Y +A Y +C Y +C Y +B Y +B Y +B Y +B Y +C X +B Y +C Y +C X +C Y +C X +B Y +A Y +A Y +B Y +C X +C X +C X +C X +C X +B Y +B Y +B Y +C Y +C Z +C Y +B Y +A Y +C Z +B Y +B Y +A Y +B Y +C Y +A Z +B Y +A Z +C X +C Y +C Y +A X +C Y +C Z +B Y +B Y +C Y +B Z +B Z +B Y +A Z +A X +B Y +B Y +A Z +C Y +C Z +A Z +C Z +B Y +C Y +B Z +C Z +C Y +A X +A Y +B Z +C Z +B Y +B Y +C Z +C X +B Y +B Y +B Z +B Y +A Y +A Z +B Y +A Y +B Y +B Y +A Z +C X +C Y +B Y +B Y +A X +B Y +B Z +C Y +A Y +C Y +B Y +C Y +B Y +B Y +B Y +C X +B X +B Y +B Y +B Y +B Z +B Z +B Y +B X +B Y +B X +B Z +A X +C X +B Y +B Y +A Z +C X +A Y +B Y +B Z +C Z +B Y +B Z +A Y +A Z +B Y +C Z +B Y +A Z +B Y +A Z +A Y +C Y +B Y +B Y +A X +C Y +B Y +A X +B Y +C Z +A Z +B Y +B X +A Y +C Y +B Z +C Y +B Y +B Z +A Y +A Z +B Y +B Y +A Z +A X +C Y +B Z +B Z +B Y +C Z +C Y +C Z +B Y +B Y +B Z +B Y +B Y +A X +B Y +B Y +C X +C Z +B Y +B Y +A X +B Y +B Z +C Z +B Z +A Y +B Y +B Z +B Y +C Y +C Y +B Y +B Y +B Z +A X +B Z +B Y +C Y +A X +B Y +A Y +B Z +A Y +B Y +B Y +B Z +C Y +C Y +B Z +C Y +B Y +C Y +B Y +A Z +A Z +C Z +B Y +B Y +A Z +B Z +B Z +C Y +B Y +B Y +B Z +C Y +A Z +C Y +C Z +C Z +A Y +B Y +C Y +B Z +B Y +C Z +B Y +B Y +A X +B Y +B Y +B Y +B Y +A Z +C Y +A Y +B Y +B Y +C Z +B Y +B Y +B Y +B Z +B Y +B X +C Y +B Y +B Y +A X +C X +A X +B Z +A Z +B Y +B Y +C X +B Z +B Y +B Z +B Y +C Z +A X +B Z +B Y +B Y +B Z +B Y +B Y +A Y +B Y +A X +B Z +C X +B Y +B Y +B Y +B Y +B Y +B Z +B Y +B Y +C Z +B Y +A Y +A X +C Y +B Z +B Z +B Y +B Y +A Y +B Z +B Y +B Y +B Y +B Y +B Z +B X +B Y +B Y +C Y +B Y +B Y +B Y +B Z +B Z +B Y +B Y +B Y +C X +C Z +C Z +A Z +A Y +C Y +B Y +C Z +C Y +C X +B Y +B Y +A X +A Y +C X +B Y +B Y +C Y +B Y +B Y +B Y +C Z +B Y +C Z +C Y +B Z +B Y +B Y +A X +C Z +C Y +B Y +B Y +C Y +C Y +B Z +B Y +B Z +B Y +C Y +B Y +C Y +B Y +C Y +C X +B Y +C Y +B Y +A Z +B Y +A Y +C Y +C Y +B Y +B Y +C X +A Z +A X +B Z +B Y +B Z +A Z +C Y +A Y +A X +C Y +A Y +A Y +C Z +B Y +B Y +B Y +C X +B Y +A X +B Y +B Y +B Y +A Z +A X +B Y +C Y +B Y +A X +B Z +A Y +A X +A Z +C Z +B Z +C X +B Y +A X +B Z +A Z +B Y +A Z +B Y +A Z +C Z +A Y +B Y +B Y +A X +B Y +A X +B Y +A Z +C Z +B Y +B Y +B Y +B Y +B Y +B Y +B Y +A Y +C X +C Y +C Z +B Y +B Y +A X +C Z +A Y +B Y +B Y +C Z +B Z +B Y +B Z +B Y +B Y +B Y +C Y +A Y +C Z +B Y +A X +B Y +C Y +B Y +A X +A X +B Y +C Y +B Y +B Y +A Y +C X +C Y +C X +A Y +B Y +B Y +A Y +B Y +C Y +C Z +B Z +B Y +B Y +C Y +B Z +B Y +B Y +B Y +C Y +B Y +C Y +B Y +C Z +B Y +B Z +B Y +B Y +A Z +B Y +B Z +B Y +B Z +A Y +B Y +B Y +B Y +A Y +C X +B Y +C Y +B Y +B Y +B Y +C Y +B Y +B Y +C Z +B Y +A Z +C Y +C Z +B Y +B Y +C Y +B Z +B Y +A Y +A Y +B Y +B Y +B Y +B X +B Z +A X +C Z +B Z +A Z +B Y +B Y +A X +A Y +C Y +B Y +B Z +B Y +B Y +B Y +B Z +A Y +B Y +B Y +B Y +C Z +C Z +B Y +B Z +B Y +B Y +B Y +C Y +A Z +B Y +B Y +B Z +B Y +B Y +B Y +A X +B Y +B Y +B Y +C Y +B Y +B Y +C Z +B Z +C Y +B Y +B Z +C Y +B Y +B Z +B Y +B Y +A Z +C Z +C Y +B Y +C X +B Y +B Y +B Z +B Y +B Y +A Y +B Z +C Y +C Y +A Y +B Z +C X +C Y +C X +A Z +A X +B Y +C X +B Y +B Y +B Z +A Z +B Z +B X +B Y +B Z +B Y +B X +A Y +B Y +C X +A Z +A X +B Y +B Y +B Y +B Z +B Y +A X +C Z +B Z +B Z +B Z +A Y +B Y +B Y +C X +B Y +A Y +A Z +B Z +B Z +B Y +B Y +C Y +C Y +C X +B Y +C Z +B Z +B Y +B Y +B Y +B Z +C X +C X +B Y +B Y +B Z +B Y +A Y +B Y +B Y +A X +B Y +B Y +B Z +A Y +B Y +A X +B X +A Y +C Y +B Y +B X +A X +B Y +B Z +A Y +B Z +B Y +B Y +C Y +B Y +B Y +B Y +B Y +B Y +A Y +B Y +A Y +B Y +A Y +B Y +B Y +B Y +A X +A Y +A Y +A X +B Z +A X +C Y +C Y +B Y +A X +B Y +A Y +B Y +B Y +B Y +C X +C Y +B Y +C X +C Y +B Y +B Y +C Y +B Y +B Y +B Y +B Z +A Z +B Y +B Z +B Z +A X +C Z +B Y +C Z +B Y +C Z +B Y +A X +C Y +C Z +A Z +A Y +B Y +A Y +B Y +B Y +B Y +B Y +B Y +A Y +C Y +C Y +B Z +B Y +B Y +B Z +A Z +A X +C Z +B Y +B Y +A X +C Y +A Y +B Y +A Y +B Y +B Z +C Y +C Z +B Y +A Y +B Y +C Z +C Z +A X +A X +C Z +A X +A Z +B Y +B Y +C Z +C Y +C Z +A X +A X +B Z +B Y +B Y +A X +B Y +B Z +C Y +C X +B Y +C Z +B Y +C Z +B Y +B Z +B Y +C Y +A Z +B Y +B Y +A X +A Z +A X +C Y +B Y +B Y +C Z +B Z +C X +B Y +C Y +C Y +A Z +C Z +B Z +B Y +B Z +B Y +A Z +A Y +A Y +A X +B Z +C Z +C X +B Y +A X +C X +A Y +B Y +B Y +B Y +A Z +B Y +C X +B Y +A Z +B Z +B Z +C Y +B Y +C X +C X +C Y +C Y +C Z +C X +B Y +C Y +C Y +B Z +B Y +A Y +B Z +A X +B Y +A Z +C Y +B Y +C Z +B Y +A X +C Z +B Z +B Y +B Y +B Y +B Y +B Y +C Z +A Z +C Y +A Z +B Y +C X +C X +A X +A Y +B Z +C Y +C X +C X +C Y +C X +B Y +C X +A Y +C Z +B Y +B Z +B Y +A X +B Y +A Z +A Y +C X +A X +B X +C X +C Z +C X +A Y +A Z +B Y +A Y -- cgit v1.2.3-70-g09d2