Skip to content

Instantly share code, notes, and snippets.

@nloadholtes
Created December 24, 2018 05:08
Show Gist options
  • Save nloadholtes/8139ed546f2d4669cd1613f0a5dda250 to your computer and use it in GitHub Desktop.
Save nloadholtes/8139ed546f2d4669cd1613f0a5dda250 to your computer and use it in GitHub Desktop.
SentimentalGreenyellowPattern created by nloadholtes - https://repl.it/@nloadholtes/SentimentalGreenyellowPattern
test_data = """/->-\\
| | /----\\
| /-+--+-\ |
| | | | v |
\\-+-/ \\-+--/
\\------/
"""
class Cart():
def __init__(self, x, y, facing, cart_id):
self.cart_id = cart_id
self.x = x
self.y = y
self.pos = (x,y)
self.turn_dir = [-3, 0, 3]
if facing == "^":
self.facing = 0
elif facing == ">":
self.facing = 3
elif facing == "v":
self.facing = 6
elif facing == "<":
self. facing = 9
else:
raise Exception(f"Parsing error: Invalid facing: {x},{y}, {facing}")
def turn(self):
val = self.turn_dir.pop(0)
# print(f" {self.cart_id} WAS facing: {self.facing}")
self.facing = (self.facing + val) % 12
self.turn_dir.append(val)
# print(f" {self.cart_id} now facing: {self.facing}")
def __repr__(self):
return f"<id: {self.cart_id} x:{self.x}, y:{self.y}, facing:{self.facing}>"
def tick(self, track_map):
# if self.cart_id == 1:
# print(f"WAT: {self}")
# Shortcut to make sure that x and y are correct
y = self.x
x = self.y
if track_map[x][y] == "+":
# print(f"{self.cart_id} Turn!")
self.turn()
elif track_map[x][y] == "\\":
# print(f"Facing(1): {self.cart_id}:{self.facing}")
if self.facing == 3:
self.facing = 6
elif self.facing == 0:
self.facing = 9
elif self.facing == 9:
self.facing = 0
else:
self.facing = 3
# print(f"Facing(1b): {self.cart_id}:{self.facing}")
elif track_map[x][y] == "/":
# print(f"Facing(2): {self.cart_id}:{self.facing}")
if self.facing == 6:
self.facing = 9
elif self.facing == 3:
self.facing = 0
elif self.facing == 9:
self.facing = 6
else:
self.facing = 3
# print(f"Facing(2b): {self.cart_id}:{self.facing}")
if self.facing == 3: # >
self.x += 1
elif self.facing == 9: # <
self.x -= 1
elif self.facing == 0: # ^
self.y -= 1
elif self.facing == 6: # v
self.y += 1
self.pos = (self.x, self.y)
# for r in track_map:
# print("".join(r))
def wreck_check(carts):
positions = [(a.x, a.y) for a in carts]
uniq_positions = set(positions)
if len(uniq_positions) == len(positions):
return False
for x in uniq_positions:
for y in range(len(positions)):
if x == positions[y]:
positions[y] = None
break
return list(filter(None, positions))
def parse(data):
lines = data.split("\n")
carts = []
output_map = []
cart_id = 0
for line in range(len(lines)):
# print(lines[line])
row = list(lines[line])
# print(row)
for col in range(len(row)):
if row[col] in ("^", ">", "<", "v"):
carts.append(Cart(col, line, row[col], cart_id))
cart_id += 1
if row[col] in ("<", ">"):
row[col] = "-"
if row[col] in ("^", "v"):
row[col] = "|"
if row:
output_map.append(row)
return carts, output_map
def main():
# data = test_data
# print(data)
data = open("map.txt").read()
carts, track_map = parse(data)
from pprint import pprint as pp
pp(carts)
# for r in track_map:
# print("".join(r))
# Tick
collision = wreck_check(carts)
max_tock = 28000
tock = 0
while tock < max_tock and len(carts) > 1:
carts.sort(key=lambda c: c.pos) # Really important it turns out
for c in carts:
if c.cart_id:
c.tick(track_map)
collision = wreck_check(carts)
if collision:
c.cart_id = None
for x in carts:
if x.pos == collision:
x.cart_id = None
break
carts = [c for c in carts if c.cart_id]
tock += 1
# print(" ")
# for r in track_map:
# print("".join(r))
[c.tick(track_map) for c in carts]
pp(carts)
print(f"WRECK!!! {collision} (tock was: {tock} out of {max_tock})")
main()
/------------\ /---------------------------------------\
/------------+-----------\| | |
/--------+------------+-----------++------------------\ /--+----------------------\ |
/-------------+----\ | | || /--------\ | /+--+-------\ | |
/---------+-------------+----+---+----------\ | ||/-+--------+--\ | || | | /-----+--------\ |
/-+---------+-------------+----+---+----------+-+-----------+++-+------\ | | | /----++--+-------+--------+---\ | | |
| | | | | | | | /-----+++-+------+-+--+---+-------\| || | | | | | | |
/----+-+---------+-------------+----+---+----------+-+-----+---\ ||| | | | | | || || | | | | | | |
| | | | /-------+----+---+-----\ | | | | ||| | | |/-+---+-------++----++--+-------+--------+---+-+--------+--\ |
| | | | | | | | | | | | | ||| | | || | | || || | | | | | | | |
| /+-+---------+-----+-------+----+---+-----+----+-+-----+---+-+++-+-\ | || | | || || | | | | | | | |
| || | | /+-------+----+---+-----+----+-+-----+---+-+++-+-+----+\|| | | /----++----++--+-\ | | | | | | |
| || | | || | | | | | | | | ||| | | ||||/+---+--+----++----++--+-+-----+--------+---+-+--------+--+---\|
| || | | || | | | | | | | | ||| | | |||||| | | || || | | | | | | | | ||
| || | /-----+----++-------+----+---+----\| |/+-----+---+-+++-+-+----++++++---+--+----++----++--+-+-----+--------+---+-+--------+\ | ||
| || |/--+-----+----++-------+----+---+----++----+++-----+---+-+++-+-+----++++++---+--+----++----++--+-+---\ | | | | || | ||
| || || | | || | | | || ||| | | ||| | |/---++++++---+--+----++-\ || | | | | | | | || | ||
| |\-++--+-----+----++-------+----+---+----++----+++-----+---+-+++-+-++---/||||| | | || | \+--+-+---+-/ | | | || | ||
/--+---+--++--+----\| || | /+---+----++----+++-----+---+-+++-+-++----+++++\ | | || | | | | | | | | || | ||
| | | || | || || | || | || ||| | | ||| | || |||||| | | || | | | | /-+----------+---+-+--------++-+--\||
| | | || | || || | || | || ||| | | ||| | || /++++++--+--+----++-+---+--+-+-+-+--------\ | | | || | |||
| | | || | || ||/------+---++---+----++----+++-----+---+-+++-+-++---+++++++--+--+----++-+---+--+-+-+-+--------+-+-\ | | || | |||
| | | || | || ||| | || | || ||| | | ||\-+-++---+++++/| | | || | | | | | | | | | | | || | |||
| | | || | || ||| | || | || ||| | | || | || ||||| | | | |\-+---+--+-+-+-+--------+-+-+-/ | || | v||
| | | || \----++----+++------+---++---+----/| ||| | | || | || ||||| | | | | | | | |/+-+--------+-+-+---+-----\ || | |||
| | | || || ||| | || | | ||| | | || | |\---+++++-+--+--+----+--/ \--+-+++-+--------+-+-+---/ | || | |||
| | | || || ||| | || | | ||| | | || | | ||||| | | | | \-+++-+--------+-+-+---------+--++-+--++/
| | | || || ||| | || | | ||\-----+---+-+/ | | ||||| | | | | ||| | | | | | || | ||
| | | || || ||| | || | | || | | | | | ||||| | | | | ||| | | | | | || | ||
| | | || || ||| | || | | || | | | | | ||||| | | \----+-----------/|| | | | | | || | ||
| | | || || |\+------+---++---+-----/ || | | | | | /+++++-+--+-------+------------++-+--------+-+\| | || | ||
| | | || /++----+-+------+---++---+--\ || | | | | | /++++++-+--+-------+------------++\| | ||| | || | ||
| |/--+--++------+++----+-+------+---++---+--+-------++------+---+-+---+-+--+++++++-+--+-------+\ |||| | ||| | || | ||
| || | || ||| | | | || | | /-----++-----\| | | | | ||||||| | | || |||| | \++---------+--/| | ||
| || | || ||| | | /-+---++---+--+-+-----++-\ || | | | | ||||||| | | || |||| | || | | | ||
| || | || ||| | | | | || | | | || | /-++---+-+---+-+--+++++++-+--+-------++-----------++++--------+--++---------+\ | | ||
| || | || ||| \-+----+-+---++---+--+-+-----++-+-+-++---+-+---+-+--+++/||| | | || |||| | || || | | ||
| || | /++------+++------+----+-+---++---+--+-+-----++-+-+-++---+-+---+-+--+++-+++-+--+-------++-----------++++----\ | || || | | ||
| || | ||| ||| | | | || | | | || | | || | | \-+--+++-/|| | | || |||| | | || || | | ||
| || /+-+++------+++----\ | /--+-+---++---+\/+-+-----++-+-+-++---+-+-----+--+++--++-+--+-------++-----------++++----+---+--++---------++--+\| ||
| || || ||| ||| | | | | | /++---++++-+-----++-+-+-++---+-+-----+--+++--++-+--+-------++---------\ |||| | | || || ||| ||
| || || ||| ||| | | | | | ||| |||v | || | | || | | | ||| || | | || | |||| | | || || ||| ||
| || || ||| ||| /+-+-+--+-+--+++---++++-+-----++-+-+-++---+-+-----+--+++--++-+--+-------++-----\ | |\++----+---+--++---------++--+++--/|
| || || ||| ||| || | | | | /+++---++++-+-----++-+-+-++---+-+-\ | ||| || | | || | | | || | | || /-------++--+++-\ |
| || || ||| ||\---++-+-+--+-+-+++/ |||| | || | |/++---+-+-+---+--+++--++-+--+\ || | | | || | | || | || ||| | |
| || || ||| || /--++-+-+--+-+-+++-\ |||| | || | |||| | | | | ||| || | /++------++-----+\ | |/++----+---+--++-+-------++\ ||| | |
| || || |||/-----++-+\ || | | | | ||| | |||| | || | |||| |/+-+---+--+++--++-+-+++------++-----++--+-++++----+---+--++-+----\ ||| ||| | |
| || || |||| || || || | | | | ||| | |||| | || | |||| ||| | | ||\--++-+-+++------++-----++--+-++++----+---/ || | | ||| ||| | |
| || || |||| /---++-++-++-+-+--+-+-+++-+--++++-+-----++-+-++++-\ ||| | | || |\-+-+++------++-----++--+-++++----+------++-+----+--+++-+++-+-/
| || || |||| | || || || | | | | ||| | |||| | || | |||| | ||| | | || /-+--+-+++------++-----++-\| |||| | || | | ||| ||| |
| || || ||||/+---++-++-++-+-+-\| | |||/+--++++-+-----++-+-++++-+-+++-+---+--++-+-+\ | ||| || || || |||| | || | | ||| ||| |
| || || |||||| || || || | | || | ||||| |||| | /++-+-++++-+-+++-+---+--++-+-++-+-+++------++-----++-++-++++-\ | || | | ||| ||| |
| || || |||||| || || || | | || | ||||| /++++-+----+++-+-++++-+-+++-+---+--++-+-++-+-+++------++-----++-++-++++-+--+-----\|| | | ||| ||| |
| || || |||||| || || || | | || | ||||| ||||| | ||| | |||\-+-+++-+---+--++-+-++-+-+++------/| || || |||| | | ||| | | ||| ||| |
| || || |||||| || || || | | || | |||||/+++++-+--\ ||| | ||| | ||| | | || | || | ||| /--+-----++-++-++++-+--+-----+++-+--\ | ||| ||| |
| || || |||||| || || || \-+-++-+-+++++++++++-+--+-+++-+-+++--+-+++-+---+--++-+-++-+-+++----+--+-----++-++-++++-+--+-----++/ | | | ||| ||| |
| || || |||||| || || || | || | ||||||||||| | | ||| | |||/-+-+++-+---+--++-+-++-+-+++----+--+-----++-++-++++-+--+-----++--+\ | | ||| ||| |
| || || |||||| || ||/++---+-++-+-+++++++++++-+--+-+++-+-++++-+-+++-+---+--++-+-++\| ||| | | || || \+++-+--+-----++--++-+-+--/|| ||| |
| || || |||||| \+-+++++---+-++-+-++++++++++/ | | ||| | |||| | ||| | | || | ||||/+++----+--+-----++-++--+++-+--+-----++\ || | | /-++-+++-+-\
| || || |||||| | |||||/--+-++-+-++++++++++--+--+-+++-+-++++-+-+++-+--\| || | |||||||| /--+--+-----++-++--+++-+\ |/----+++-++\| | | || ||| | |
| || || |||\++----+-+/|||| | || | |||||||||| |/-+-+++-+-++++-+-+++-+--++--++-+-++++++++-+--+--+-----++-++--+++-++-++----+++-++++-+-+\|| ||| | |
/-+--++-++-+++-++----+-+-++++--+-++-+-++++++++++--++-+-+++-+-++++-+-+++-+--++--++-+-++++++++-+--+\ | || || ||| || || ||| |||| | |||| ||| | |
| | || || ||| || | | |||| | || | |||||||||\--++-+-+++-+-++++-+-+++-+--++--++-+-++++++++-+--++-+-----++-++--+++-++-++----+++-++++-+-++++-+/| | |
| | || || ||| || /-+-+-++++--+-++-+-+++++++++---++-+-+++-+-++++-+-+++-+--++--++-+-++++++++-+--++-+-----++-++--+++-++-++\ ||| |||| | |||| | | | |
| | || || ||| || | |/+-++++--+-++-+-+++++++++---++-+-+++-+-++++-+-+++-+--++--++-+-++++++++-+--++-+-\ || || ||| || ||| ||| |||| | |||| | | | |
| | || || ||| || | ||| |||| | || | ||||||||| || | ||| | |||| | |\+-+--++--++-+-++++++++-+--++-+-+---++-++--+++-++-+++---+++-++++-/ |||| | | | |
/+-+--++-++-+++-++\ | ||| |||| | || | ||||||||| || | ||| | |||| | | | | || \+-+-++++++++-+--++-+-+---++-++--+/| || ||| ||| |||| |||| | | | |
|| | || || ||| ||| | ||| |||| | || | ||||||||| || | ||| | |||| | | | | || | | |||||||| | || | | ||/++--+-+-++-+++---+++-++++---++++\| | | |
|| | || || ||| ||| | ||| |||| | || | ||||||||| || | ||| | |||| | | | | || | | |||||||| | || |/+---+++++--+-+\|| ||| ||| |||| |||||| | | |
|| | \+-++-+++-+++-+-+++-++++--+-++-+-+++++++++---++-+-+++-+-++++-+-/ | | || | | |||||||| | || ||| ||||v | |||| ||| ||| |||| |||||| | | |
|| | | || ||| ||| | ||| |||| | || | ||\++++++---++-+-+++-+-++++-+---+-+--++---+-+-+++/|||| | || ||| ||||| | |||| ||| ||| |||| |||||| | | |
|| | | || ||| ||| | ||| |||| | ||/+-++-++++++---++-+-+++-+-++++-+---+-+--++--\| | ||| |||| | || ||| ||||| | |||| ||| ||| |||| |||||| | | |
|| | | ||/+++-+++-+-+++-++++--+-++++-++-++++++---++-+-+++-+-++++-+---+\| || || | ||| |||| | || ||| ||||| | |||| ||| ||| |||| |||||| | | |
|| | | |||||| ||| | ||| |\++--+-++++-++-++++++---++-+-+++-+-++++-+---+++--++--++-+-+++-++++<+--++-+++---/|||| | |||| ||| ||| |||| |||||| | | |
|| | | |||||| ||| | ||| | || | |||| || ||||||/--++-+-+++-+-++++-+---+++--++--++-+-+++-++++-+--++-+++----++++--+-++++-+++\ ||| |||| |||||| | | |
|| | | |\++++-+++-+-+++-+-++--+-++++-++-+++++++--++-+-+++-+-++++-+---+++--+/ || | ||| |||| | || ||| |||| | |||| |||| |||/++++---++++++-+-+-+\
|| | | | ||\+-+++-+-+++-+-++--+-++++-++-+++++++--++-+-+/| | |||| | ||| | || | ||| |||| | || ||| |||| | ||^| |||| |||||||| |||||| | | ||
|| | | | || | ||| | ||| \-++--+-++++-++-+++++++--++-+-+-+-+-++++-+---+++--+---++-+-++/ |||| | || ||| |||| | |||| |||| |||||||| |||||| | | ||
|| | | | || | ||| | ||| || | |||| || ||||\++--++-+-+-+-+-++++-+---/|| | || | || |||| | || ||| |||| | |||| |||| |||||||| |||||| | | ||
|| | | | || | ||| | ||| || | |||| || |||| || || | | | | |||| | || | || | || |||| \--++-+++----++++--+-+++/ |||| |||||||| |||||| | | ||
|| | | | || | ||| | ||| || | |||| ||/++++-++--++-+-+-+>+-++++-+----++--+---++-+-++\ |||| || ||| |||| | ||| |||| |||||||| |||||| | | ||
|| | | | || | ||| | ||| || | |||| ||||||| || || | | \-+-++++-+----++--+---++-+-+++-++++----++-+++----++++--+-+++--++++--++++++++---+++++/ | | ||
|| | | | || \-+++-+-+++---++--+>++++-+++++++-++--++-+-+---+-++++-+----++--+---++-+-+++-++++----++-+++----++++--+-/|| |||| |||||||| ||||| | | ||
|| | | | || /+++-+-+++---++--+-++++-+++++++-++--++-+-+---+\\+++-+----++--+---++-+-+++-++++----++-+++----++++--+<-++--++++--++++++++---++/|| | | ||
|| | | | || |||| | ||| || | |||| ||||||| || || | | || ||| | || | || | ||| |||| || ||| |||| | || |||| |||||||| || || | | ||
|| | | | || |||| | ||| || | |||| ||||||| || \+-+-+---++-+/| | || | || | ||| |||| || ||| |\++--+--++--++++--++++++++---++-+/ | | ||
|| | | | || |||| | ||| || | |||| ||||||| || | | | || | | | /++--+---++-+-+++-++++----++-+++----+-++--+\ || |||| |||||||| || | | | ||
|| | | | || |||| | ||| || | |||| ||||||| || | | | || | | | ||| | || \-+++-++++----++-+++----+-/| || || |||| |||||||| || | | | ||
|| | | | || |||| | ||| || | |||| ||||||| || | | | || \-+-+---+++--+---++---+++-+++/ || ||| | | || || |||| |||||||| || | | | ||
|| |/--+-+-++--++++-+-+++---++-\| |||| ||||||| || | | | || | | ||| | || ||| ||| || ||| | | || || |||| |||||||| || | | | ||
|| \+--+-+-++--++++-+-/|| || || ||\+-+++++++-++---+-+-+---++---+-+---+++--+---/| ||| ||| || ||| | | || || |||| |||||||| || | | | ||
|| | | | || |||| | || |\-++-++-+-+++++++-++---+-+-+---++---+-+---+++--/ | ||| ||| || ||| | | || || |||| |||||||| || | | | ||
|| | | | || |||| | || | || || | ||||||\-++---+-+-+---++---+-+---+++-------+---+++-+++-----++-+++----+--+--++-++--++++--/||||||| || | | | ||
|| | | | || |||| | || | || || | |||||| |\---+-+-+---++---+-+---+++-------+---+++-+++-----++-+++----+--+--++-++--+++/ ||||||| || | | | ||
|| | | | || |||| | \+---+--++-++-+-++++++--+----+-+-+---++---+-+---+++--->---+---+++-+++-----++-++/ | | || || ||| ||||||| || | | | ||
||/-+--+-+-++--++++-+---+---+--++-++-+-++++++--+----+-+-+---++---+-+---+++-------+---+++-+++-----++-++-----+-\| || || ||| ||||||| || | | | ||
||| | | | || |||| | | | || || |/++++++--+----+-+-+---++---+-+---+++-------+---+++-+++-----++-++-----+-++--++-++--+++-\ ||||||| || | | | ||
||| | \-+-++--++++-+---+---+--++-++-++++++++--+----+-+-+---++---+-+---+++-------+---+++-+++-----++-/| | || || || ||| | ||||||| || | | | ||
||| | | || |||| | | | || || \+++++++--+----+-+-+---++---+-+---+++-------+---+++-++/ || | | || || || |\+-+--+++++/| || | | | ||
||| | | |v ||\+-+---+---+--++-++--+++++++--+----+-+-+---++---+-/ ||| | \++-++------++--+-----+-++--++-++--+-+-+--+++++-+---++-+---/ | ||
||| | | || || | | | | || || ||||||| | | | | || | /--+++-------+----++-++------++--+----\| || || || | | | ||||| | || | | ||
||| \----+-++--++-+-+---+---+--/| || ||||||| | | | | || | | ||| \----++-++------++--+----++-++--++-++--+-+-+--/|||| | || | | ||
||| | || || | | \---+---+-++--+++++/| | \-+-+---++---+--+--+++------------++-++------++--+----++-++--++-++--+-+-+---++++-+---+/ | | ||
||| | || || | \-------+---+-++--+++++-+--+------+-+---++---+--+--+++------------++-++------++--+----++-++--++-++--+-/ | |||| | | | | ||
||| | || || | | | || |||||/+--+----\ | | || | | \++------------++-++------++--+----++-++--+/ || | | |||| | | | | ||
||| /-+-++--++-+---------+---+-++--+++++++--+----+-+-+---++---+--+---++------------++\|| || | || || | || | | |||| | | | | ||
||| | | || ||/+---------+---+-++--+++++++--+----+-+-+---++---+--+---++------------+++++------++--+----++-++--+--++--+---+\ |||| | \--+-----+-/|
||| | | || |||| /-------+---+-++--+++++++--+---<+-+-+---++---+--+---++------------+++++------++--+---\|| || | || | || |||| | | | |
||| | | || \+++-+-------+---+-++--+++++++--+----+-+-+---+/ | | || /------+++++-----\|| | ||| || | || | || |||| | | | |
|\+----+-+-++---+++-+-------+---+-++--+++++++--+----+-+-+---+----+--+---++-----+------+++++-----++/ | ||| || | || | || |||| | | | |
| | | | || ||| | | | || ||\++++--+----+-+-+---+----+--+---++-----+------+++++-----++---+---+++-+/ | || | || |||| | | | |
| | | | || ||| | /--+---+-++--++-++++--+----+-+-+---+----+--+---++-----+------+++++--\ || | ||| | \--++--+---++--++++-+------/ | |
| | | | || ||| | | | | || \+-++++--+----+-+-+---+----+--+---++-----+------+++++--+--++---+---+++-+------++--+---/| |||| | | |
| | | | || ||| | | | \-++---+-++++--/ | | | | | | || | ||||| |/-++---+---+++-+---->-++--+----+--++++-+-\ | |
| | | | || ||| | | | || | \+++-------+-+-+---+----+--+---++-----+------+/||| || || | ||| | || | | |\++-+-+----------+--/
| | | | |^ ||| | | | || | ||| | | | | | | || | | ||| || || \---+++-+------/| | | | || | | |
| | | | || ||| | |/-+-----++---+--+++-------+-+-+---+----+--+---++\ | | ||| || || ||| | | | | | || | | |
| | | | || ||| | || | || v ||\-------+-/ | | | |/--+++----+------+-+++--++-++-------+++-+-------+--+----+-\| || | | |
| | | | || \++-+----++-+-----/| | || | | | | \+--+++----+------+-+++--++-++-------+/| | | | | || || | | |
| | | | || || | || | | | || | | | | | ||| | | ||| || || | | | | | | || || | | |
| | | | || || | || | | | || | | | \---+--+++----+------+-+++--++-++-----<-+-+-+-------+--+----+-++-+/ | | |
| | | |/++----++-+----++-+------+---+--++--------+\ | /-+--------+--+++----+------+-+++--++-++-------+-+-+-------+--+----+-++\| | | |
| | | |||| || | || | | | || || | | | | ||| \------+-+++--++-/| | | | | | | |||| | | |
| | | |||| /-++-+----++-+------+---+--++--------++--+-+-+---\ | ||| /-+-+++--++--+--\ | | | | | | |||| | | |
| | | |||| | || | || | | |/-++--------++--+-+-+---+----+--+++---------+-+-+++--++--+--+----+-+-+-------+--+----+-++++--+-+----------+-\
| | | |||| | || | || | | || || || | | | | | ||| | | ||| || | | | | | | | | |||| | | | |
| | | |||| | || | || |/-----+---++-++--------++--+-+-+---+----+--+++---------+-+\||| || \--+----+-+-+---->--+--+----+-++++--/ | | |
| | | |||| | || \----++-++-----+---++-++--------++--+-+-+---+----+--+++---------+-+++++--++-----+----/ | | | | | |||| | | |
| | | |||| | || \+-++-----+---++-++--------++--+-+-+---+----+--+++---------+-+++++--/| | /--+-+-------+--+----+-++++---\| | |
| | | |||| | || | || | \+-++--------++--+-+-+---+----+--+/| | ||||| | | | | | | | | |||| || | |
| | | |||| | || | || | | || || | | | | | | | | ||||| | | | | | | | | |||| || | |
\-+----+-++++--+-+/ | || | | || || | \-+---+----+--+-+---------+-+++++---+-----+---+--+-+-------+--+----+-++/| || | |
| | |||| \-+--------+-++-----+----+-++--------++--+---+---/ | | | | ||||| | | | | | | | | || | || | |
| | \+++----+--------+-/| | | || || \---+--------+--+-+---------+-+++++---+-----+---+--+-+-------/ | | || | || | |
| | ||| | | | | | || || | | | | | ||||| | | | | | | | || | || | |
| | ||| | | | | | || || | \--+-+---------+-+++++---+-----+---+--+-+----------+----+-/| | || | |
| \--+++----+--------+--+-----+----+-++--------++------+-----------+-+---------+-++/\+---+-----+---+--+-+----------+----+--/ | || | |
| ||| \--------+--+-----+----+-++--------++------+-----------+-+---------+-++--+---+-----+---+--+-+----------+----/ | || | |
| ||\-------------+--+-----+----+-++--------++------+-----------+-+---------+-++--+---+-----+---+--+-+----------/ | || | |
| || \--+-----+----+-++--------++------+-----------+-/ | || | | | | | | | || | |
| || | \----+-++--------++------/ | \-++--+---+-----/ | | | | || | |
| || | | || || | || | | | | | | || | |
| || \----------+-++--------++------------------+-------------+/ | \---------+--+-+--------------------+---+/ | |
| || \-++--------++------------------+-------------+---+-------------+--+-+--------------------+---+-----------+-/
\-------++------------------------------++--------++------------------+-------------+---+-------------+--+-/ | | |
|| |\--------/| | | | | | | | |
\+---------------------<--------+----------/ | | | | | \---+-----------/
| | | | | | | |
\------------------------------+-----------------------------/ | | \--+--------------------------/
\-------------------------------------------/ \----------------/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment