Skip to content

Instantly share code, notes, and snippets.

@FiXato
Last active December 11, 2015 20:49
Show Gist options
  • Select an option

  • Save FiXato/4658366 to your computer and use it in GitHub Desktop.

Select an option

Save FiXato/4658366 to your computer and use it in GitHub Desktop.
A bit of an updated version of my ansinator script. Should toss it in a proper repo.
#!/usr/bin/env ruby
# encoding: utf-8
# Based on the 'colors' zsh script I found online somewhere years ago.
# It looks like it is based on works posted at http://crunchbanglinux.org/forums/topic/13645/ansi-colorschemes-scripts/page/2/
# I've basically just edited it a bit to work with IRC control codes as well.
# ~~Filip H.F. "FiXato" Slagter, 2012
abort("You need at least Ruby 1.9 to run this script due to encoding issues") if RUBY_VERSION < '1.9'
class String
def center(str_length)
delta = str_length - self.length
return self unless delta > 0
half=(delta/2)
remainder = (delta-half)
'%s%s%s' % [' ' * half, self, ' ' * remainder]
end
end
class IrcFormatter
COLOR_TABLE = {
:mirc => {
:white => 0,
:black => 1,
:blue => 2, :navy => 2,
:green => 3,
:red => 4,
:brown => 5, :maroon => 5,
:purple => 6,
:orange => 7, :olive => 7,
:yellow => 8,
:lightgreen => 9, :lime => 9,
:teal => 10, :darkcyan => 10,
:cyan => 11, :aqua => 11,
:lightblue => 12, :royal => 12,
:pink => 13, :lightpurple => 13,
:grey => 14, :gray => 14,
:lightgrey => 15, :silver => 15,
:transparent => 99,
},
}
COLOR_ESCAPE_CODE = "\003"
BOLD_ESCAPE_CODE = "\002"
ITALIC_ESCAPE_CODE = "\035"
UNDERLINE_ESCAPE_CODE = "\037"
REVERSE_ESCAPE_CODE = "\0026"
RESET_ESCAPE_CODE = "\017"
attr_accessor :type
def initialize(type=:mirc)
@type = type
end
#Convert colour name to appropriate colour code
def c(name)
return name unless name.kind_of?(Symbol)
COLOR_TABLE[type][name]
end
def color(fg,bg=nil)
arr = [COLOR_ESCAPE_CODE]
arr << c(fg) if fg
arr << ',' if bg
arr << c(bg) if bg
arr.join('')
end
def default
color(:white,:black)
end
def fg(colour_name)
colour = color(colour_name)
end
def bg(colour_name)
color(nil,colour_name)
end
def b(text=nil)
format(BOLD_ESCAPE_CODE, text)
end
def i(text=nil)
format(ITALIC_ESCAPE_CODE, text)
end
def u(text=nil)
format(UNDERLINE_ESCAPE_CODE, text)
end
def r(text=nil)
format(REVERSE_ESCAPE_CODE, text)
end
def reset
RESET_ESCAPE_CODE
end
def strip_formatting(str)
str = str.clone
str.gsub!(/#{COLOR_ESCAPE_CODE}\d{0,2}(,\d{1,2})?/,'')
str.gsub!(BOLD_ESCAPE_CODE,'')
str.gsub!(ITALIC_ESCAPE_CODE,'')
str.gsub!(UNDERLINE_ESCAPE_CODE,'')
str.gsub!(REVERSE_ESCAPE_CODE,'')
str.gsub!(RESET_ESCAPE_CODE,'')
str
end
private
def format(format_code, text=nil)
str = format_code
str += [text, format_code] unless text.nil?
str
end
end
if ARGV == ['mirctable']
f = IrcFormatter.new(:mirc)
str = ""
(0..15).map do |i|
str += [IrcFormatter::COLOR_ESCAPE_CODE,i,'....'].join("")
end
str += "#{f.reset}\n"
(0..15).map do |i|
str += [IrcFormatter::COLOR_ESCAPE_CODE,i,',',i,'....'].join("")
end
str += "#{f.reset}\n"
(0..15).map do |i|
str += [IrcFormatter::COLOR_ESCAPE_CODE,1,',',i,'....'].join("")
end
str += "#{f.reset}\n"
(0..15).map do |i|
str += [IrcFormatter::COLOR_ESCAPE_CODE,0,',',i,'....'].join("")
end
str += "#{f.reset}\n"
(0..15).map do |i|
str += [f.reset,IrcFormatter::COLOR_ESCAPE_CODE,nil,',',i,'....'].join("")
end
str += "#{f.reset}\n"
(0..15).map do |i|
str += ' %02i ' % i
end
puts str + f.reset
exit
end
class AnsiSprite
attr_accessor :primary_colour, :secondary_colour, :formatter, :replacement_char, :subtitle, :name,
:raw, :sprite, :transformations
def initialize(name)
#Defaults
@formatter = IrcFormatter.new(:mirc)
@primary_colour = :black
@secondary_colour = :white
@sprites_dir = File.join(File.dirname(File.expand_path(__FILE__)), 'ansi-shapes')
@subtitle = ''
@transformations = []
@name = name
end
def load_sprite(name=nil)
@name = name unless name.nil?
filename = File.join(@sprites_dir, File.basename(@name) + '.shape')
raise 'Unknown Shape' unless File.exist?(filename)
@raw = File.readlines(filename).map{|l|l.gsub("\n",'')}
@sprite = @raw
end
def append_subtitle
delta = width - subtitle.length
if delta > 0
@sprite << @subtitle.center(width)
else
@sprite.map! do |line|
line += (' '*delta.abs)
end
@sprite << @subtitle
end
end
def unformatted_sprite
@sprite.map do |line|
line.gsub(/\$\{(.+?)\}/, '')
end
end
def optimise_sprite
unformatted_sprite.each_with_index do |line,index|
# Make sure each line starts with the primary colour
formatted_line = '${1}%s' % @sprite[index]
# Pad each line so each line is of equal length
difference = width-line.length
formatted_line += (' '*difference) if difference > 0
# And end each line with the reset colour
formatted_line += '${r}'
@sprite[index] = formatted_line
end
end
def transform
@transformations.each do |transformation|
case transformation
when :mirror
@sprite.map! do |line|
sections = line.split(/(\$\{\S+?\})/)
next line.reverse if sections.size == 1
pairs = sections.each_slice(2).to_a
#puts "===="
#p pairs
#puts "-----"
i = -1
pairs.reverse!
pairs.map do |a|
a[0].reverse!
a.reverse!
#p a
#p ['swapping',a[0],'for', pairs[i][0]]
a[0] = pairs[i][0]
i -= 1
a
end#.rotate(1)
#pairs[-1].reverse!
#p pairs
#puts "===="
pairs.join('')
end
end
end
end
def formatted_sprite
@sprite.map do |line|
str = line.gsub(/\$\{(.+?)\}/) do |match|
style($1)
end
str.gsub!(' ',@replacement_char) if replace_spaces?
#[formatter.fg(@primary_colour), str, formatter.reset].join('')
#[str, formatter.reset].join('')
[formatter.default, str, formatter.reset,formatter.default].join('')
end
end
def width
unformatted_sprite.max_by{|line|line.length}.length
end
def style(format_string)
case format_string.to_s
when /#(\d+)(,(\d+))?/
return formatter.color($1,$3)
when /([01]),([01])/
fg = ($1.to_i == 0 ? @secondary_colour : @primary_colour)
bg = ($2.to_i == 0 ? @secondary_colour : @primary_colour)
return formatter.color(fg,bg)
when '0'
return formatter.fg(@secondary_colour)
when '1'
return formatter.fg(@primary_colour)
when 'r'
return formatter.reset
end
end
def replace_spaces?
!(replacement_char == '' || replacement_char.nil?)
end
def number_of_lines
@sprite.size
end
end
class AnsiScene
require 'yaml'
attr_accessor :scenes_dir
attr_reader :shapes
def initialize(*shapes)
@shapes = []
shapes.each{|shape|add_shape(shape)}
@scenes_dir = File.join(File.dirname(File.expand_path(__FILE__)), 'ansi-shapes')
end
def add_shape(shape)
raise 'Not an AnsiSprite' unless shape.kind_of?(AnsiSprite)
@shapes << shape
end
def height
@shapes.max_by{|g|g.number_of_lines}.number_of_lines
end
def irc_lines
lines = Array.new(height)
(0...height).each do |i|
shapes.map{|s|[s.formatted_sprite,s]}.each do |fsprite,shape|
lines[i] ||= IrcFormatter.new.default
if fsprite[i]
lines[i] += fsprite[i]
else
lines[i] += ' ' * shape.width
end
lines[i] += ' '
end
end
lines
end
def store(name)
filename = File.basename(name.to_s)
abort("Invalid ansinator scene name: #{name}") if filename.length < 1
filename += ".scene.ansinator"
File.open(File.join(@scenes_dir, filename), "w") do |f|
f.puts @shapes.to_yaml
end
end
def load(name)
filename = File.basename(name.to_s)
abort("Invalid ansinator scene name: #{name}") if filename.length < 1
filename += ".scene.ansinator"
@shapes = YAML.load_file(File.join(@scenes_dir, filename))
end
end
scene = AnsiScene.new
if ARGV.include?('pacman')
s = AnsiSprite.new('pacman')
s.subtitle = 'Pac-Man'
s.replacement_char = 'Β ' #'.'
s.primary_colour = :yellow
s.secondary_colour = :white
s.load_sprite
s.optimise_sprite
s.append_subtitle
scene.add_shape(s)
[[:red, 'Blinky'], [:pink, 'Pinky'], [:cyan, 'Inky'], [:orange, 'Clyde']].each do |color, name|
s = AnsiSprite.new('ghost')
s.subtitle = name
s.replacement_char = 'Β ' #'.'
s.primary_colour = color
s.secondary_colour = :white
# s.transformations << :mirror
s.load_sprite
s.optimise_sprite
# s.transform
s.append_subtitle
scene.add_shape(s)
end
end
if ARGV.include?('space')
i = 0
[[ :green, 'greeny'], [ :blue, 'bluey'], [ :red, 'Blinky'], [ :pink, 'Pinky'], [ :cyan, 'Inky'], [ :orange, 'Clyde'], [ :lightgreen, 'limey'], [ :lightblue, 'cloudy']].each do |color, name|
s = AnsiSprite.new('spaceinvader%i' % (i%2 + 1))
i+=1
s.subtitle = name
s.replacement_char = 'Β ' #'.'
s.primary_colour = color
s.secondary_colour = :white
# s.transformations << :mirror
s.load_sprite
s.optimise_sprite
# s.transform
# s.append_subtitle
scene.add_shape(s)
end
end
if ARGV.include?('kirby')
[[ :green, 'greeny']].each do |color, name|
s = AnsiSprite.new('kirby')
s.subtitle = name
s.replacement_char = 'Β ' #'.'
s.primary_colour = color
s.secondary_colour = :white
# s.transformations << :mirror
s.load_sprite
s.optimise_sprite
# s.transform
# s.append_subtitle
scene.add_shape(s)
end
end
if ARGV.include?('owl')
[[ :green, 'greeny']].each do |color, name|
s = AnsiSprite.new('owl')
s.subtitle = name
s.replacement_char = 'Β ' #'.'
s.primary_colour = color
s.secondary_colour = :white
# s.transformations << :mirror
s.load_sprite
s.optimise_sprite
# s.transform
# s.append_subtitle
scene.add_shape(s)
end
end
if ARGV.include?('russia')
[[ :green, 'greeny']].each do |color, name|
s = AnsiSprite.new('russia')
s.subtitle = name
s.replacement_char = 'Β ' #'.'
s.primary_colour = color
s.secondary_colour = :white
# s.transformations << :mirror
s.load_sprite
s.optimise_sprite
# s.transform
# s.append_subtitle
scene.add_shape(s)
end
end
if ARGV.include?('dkjr')
[[ :brown, 'greeny']].each do |color, name|
s = AnsiSprite.new('dkjr')
s.subtitle = name
s.replacement_char = 'Β ' #'.'
s.primary_colour = color
s.secondary_colour = :white
# s.transformations << :mirror
s.load_sprite
s.optimise_sprite
# s.transform
# s.append_subtitle
scene.add_shape(s)
end
end
if ARGV.include?('smiley')
[[ :brown, 'greeny']].each do |color, name|
s = AnsiSprite.new('smiley')
s.subtitle = name
s.replacement_char = 'Β ' #'.'
s.primary_colour = color
s.secondary_colour = :white
# s.transformations << :mirror
s.load_sprite
s.optimise_sprite
# s.transform
# s.append_subtitle
scene.add_shape(s)
end
end
if ARGV.include?('mario')
[[ :brown, 'Mario']].each do |color, name|
s = AnsiSprite.new('mario')
s.subtitle = name
s.replacement_char = 'Β ' #'.'
s.primary_colour = color
s.secondary_colour = :white
# s.transformations << :mirror
s.load_sprite
s.optimise_sprite
# s.transform
s.append_subtitle
scene.add_shape(s)
end
end
#s = AnsiSprite.new('pacman')
#s.subtitle = 'Pac-Man'
#s.replacement_char = 'Β ' #'.'
#s.primary_colour = :yellow
#s.secondary_colour = :white
#s.transformations << :mirror
#s.load_sprite
#s.optimise_sprite
#s.transform
#s.append_subtitle
#scene.add_shape(s)
#s = AnsiSprite.new('ghost')
#s.subtitle = 'Ghost'
#s.replacement_char = 'Β ' #'.'
#s.primary_colour = :cyan
#s.secondary_colour = :white
#s.load_sprite
#s.optimise_sprite
#s.transform
#s.append_subtitle
#scene.add_shape(s)
#s = AnsiSprite.new('ghost')
#s.subtitle = 'Reversie'
#s.replacement_char = 'Β ' #'.'
#s.primary_colour = :blue
#s.secondary_colour = :white
#s.transformations << :mirror
#s.load_sprite
#s.optimise_sprite
#s.transform
#s.append_subtitle
#scene.add_shape(s)
#scene.store("pacman_chasing_and_ghosts")
#scene.load("pacman_chasing_and_ghosts")
puts scene.irc_lines
${#1,1}β–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆ
${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆ
${#7,7}β–ˆβ–ˆβ–ˆ${#12,12}β–ˆ${#7,7}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#0,0}β–ˆ${#7,7}β–ˆ${#5,5}β–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆ
${#7,7}β–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆ${#7,7}β–ˆ${#5,5}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#0,0}β–ˆ${#1,1}β–ˆ${#7,7}β–ˆβ–ˆβ–ˆ${#5,5}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆ
${#7,7}β–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#5,5}β–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆ${#7,7}β–ˆβ–ˆ${#5,5}β–ˆβ–ˆ${#0,0}β–ˆ${#1,1}β–ˆ${#0,0}β–ˆ${#7,7}β–ˆβ–ˆ${#5,5}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆ
${#1,1}β–ˆ${#7,7}β–ˆ${#1,1}β–ˆ${#12,12}β–ˆ${#5,5}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#7,7}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#0,0}β–ˆβ–ˆ${#7,7}β–ˆ${#5,5}β–ˆ${#7,7}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆ${#7,7}β–ˆβ–ˆβ–ˆ
${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆ${#12,12}β–ˆ${#5,5}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#7,7}β–ˆ${#5,5}β–ˆ${#7,7}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#0,0}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆ${#7,7}β–ˆ${#1,1}β–ˆ${#12,12}β–ˆ${#7,7}β–ˆβ–ˆ
${#1,1}β–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆ${#5,5}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#0,0}β–ˆ${#7,7}β–ˆ${#5,5}β–ˆβ–ˆβ–ˆβ–ˆ${#7,7}β–ˆβ–ˆβ–ˆβ–ˆ${#0,0}β–ˆ${#5,5}β–ˆβ–ˆ${#1,1}β–ˆ${#5,5}β–ˆ${#7,7}β–ˆ${#12,12}β–ˆ${#7,7}β–ˆβ–ˆβ–ˆ
${#1,1}β–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆ${#5,5}β–ˆβ–ˆβ–ˆ${#0,0}β–ˆβ–ˆ${#7,7}β–ˆβ–ˆ${#5,5}β–ˆβ–ˆβ–ˆβ–ˆ${#7,7}β–ˆβ–ˆβ–ˆ${#0,0}β–ˆ${#5,5}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆ${#7,7}β–ˆ${#1,1}β–ˆ
${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆ${#5,5}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆ${#5,5}β–ˆ${#7,7}β–ˆβ–ˆ${#5,5}β–ˆβ–ˆ${#7,7}β–ˆβ–ˆβ–ˆ${#0,0}β–ˆ${#5,5}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆ
${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆ${#5,5}β–ˆ${#0,0}β–ˆβ–ˆβ–ˆ${#5,5}β–ˆ${#7,7}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#0,0}β–ˆ${#5,5}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆ
${#1,1}β–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆ${#5,5}β–ˆβ–ˆβ–ˆ${#0,0}β–ˆβ–ˆ${#5,5}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆ
${#1,1}β–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#5,5}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆ${#5,5}β–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#5,5}β–ˆ${#0,0}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆ
${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆ${#7,7}β–ˆ${#5,5}β–ˆβ–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆ${#5,5}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#5,5}β–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#5,5}β–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆ
${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆ${#7,7}β–ˆ${#5,5}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#0,0}β–ˆβ–ˆ${#5,5}β–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆ${#5,5}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#7,7}β–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆ
${#1,1}β–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆ${#7,7}β–ˆ${#5,5}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#5,5}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#7,7}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆ
${#1,1}β–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆ${#7,7}β–ˆβ–ˆ${#5,5}β–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#5,5}β–ˆ${#7,7}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆ
${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆ${#7,7}β–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆ
${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#12,12}β–ˆ${#1,1}β–ˆ${#12,12}β–ˆ${#1,1}β–ˆβ–ˆ
β–„β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–„
β–„${0}β–ˆβ–€β–ˆ${1}β–ˆβ–ˆ${0}β–ˆβ–€β–ˆ${1}β–ˆβ–ˆβ–„
β–ˆ${0}β–„β–„β–ˆ${1}β–ˆβ–ˆ${0}β–„β–„β–ˆ${1}β–ˆβ–ˆβ–ˆ
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
β–ˆβ–ˆβ–€β–ˆβ–ˆβ–€β–€β–ˆβ–ˆβ–€β–ˆβ–ˆ
β–€ β–€ β–€ β–€
${#0,0}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#0,0}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
${#0,0}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆ
${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ
${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ
${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ
${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ
${#0,0}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆ${#4,4}β–ˆβ–ˆβ–ˆβ–ˆ${#13,13}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆ${#4,4}β–ˆβ–ˆβ–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ
${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#4,4}β–ˆβ–ˆβ–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#4,4}β–ˆβ–ˆβ–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ
${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ
${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ
${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ
${#0,0}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ
${#0,0}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#4,4}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
${#0,0}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#4,4}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ
${#0,0}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#4,4}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#4,4}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ
${#1,1}β–ˆβ–ˆ${#4,4}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#4,4}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ
${#1,1}β–ˆβ–ˆ${#4,4}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#4,4}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ
${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#05}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#07}β–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${r}
${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#05}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#07}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${r}
${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#03}β–ˆβ–ˆβ–ˆ${#07}β–ˆβ–ˆ${#01}β–ˆ${#07}β–ˆ${#01}β–ˆ${#05}β–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${r}
${#1,1}β–ˆβ–ˆβ–ˆβ–ˆ${#03}β–ˆ${#07}β–ˆ${#03}β–ˆ${#07}β–ˆβ–ˆβ–ˆ${#01}β–ˆ${#07}β–ˆβ–ˆβ–ˆ${#05}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${r}
${#1,1}β–ˆβ–ˆβ–ˆβ–ˆ${#03}β–ˆ${#07}β–ˆ${#03}β–ˆβ–ˆ${#07}β–ˆβ–ˆβ–ˆ${#01}β–ˆ${#07}β–ˆβ–ˆβ–ˆ${#05}β–ˆ${#1,1}β–ˆβ–ˆ${r}
${#1,1}β–ˆβ–ˆβ–ˆβ–ˆ${#03}β–ˆβ–ˆ${#07}β–ˆβ–ˆβ–ˆβ–ˆ${#01}β–ˆβ–ˆβ–ˆβ–ˆ${#05}β–ˆ${#1,1}β–ˆβ–ˆβ–ˆ${r}
${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#07}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#05}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆ${r}
${#1,1}β–ˆβ–ˆβ–ˆ${#05}β–ˆβ–ˆβ–ˆβ–ˆ${#12}β–ˆ${#05}β–ˆβ–ˆβ–ˆ${#12}β–ˆ${#05}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#05}β–ˆ${#1,1}β–ˆ${r}
${#1,1}β–ˆ${#07}β–ˆβ–ˆ${#05}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#12}β–ˆ${#05}β–ˆβ–ˆβ–ˆ${#12}β–ˆ${#1,1}β–ˆβ–ˆ${#05}β–ˆβ–ˆ${#1,1}β–ˆ${r}
${#1,1}β–ˆ${#07}β–ˆβ–ˆβ–ˆ${#05}β–ˆβ–ˆβ–ˆβ–ˆ${#12}β–ˆβ–ˆβ–ˆβ–ˆ${#08}β–ˆ${#12}β–ˆβ–ˆ${#05}β–ˆβ–ˆ${#1,1}β–ˆ${r}
${#1,1}β–ˆβ–ˆ${#07}β–ˆ${#1,1}β–ˆβ–ˆ${#12}β–ˆ${#05}β–ˆ${#12}β–ˆβ–ˆ${#08}β–ˆ${#12}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#05}β–ˆβ–ˆ${#1,1}β–ˆ${r}
${#1,1}β–ˆβ–ˆ${#05}β–ˆβ–ˆβ–ˆ${#12}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#05}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${r}
${#1,1}β–ˆβ–ˆ${#05}β–ˆβ–ˆβ–ˆ${#12}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${r}
${#1,1}β–ˆβ–ˆ${#05}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${r}
${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${r}
${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${r}
${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${r}
${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆβ–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#15,15}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${r}
${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#8,8}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${r}
${#1,1}β–ˆβ–ˆβ–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#8,8}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${r}
${#1,1}β–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆ${#8,8}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆ${#8,8}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#8,8}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${r}
${#1,1}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#8,8}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆ${#8,8}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆβ–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆ${r}
${#1,1}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆ${r}
${#14,14}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#5,5}β–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆ${r}
${#14,14}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#5,5}β–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${r}
${#15,15}β–ˆβ–ˆβ–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#14,14}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#5,5}β–ˆβ–ˆβ–ˆβ–ˆ${#7,7}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${r}
${#15,15}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#7,7}β–ˆβ–ˆ${#5,5}β–ˆβ–ˆ${#4,4}β–ˆβ–ˆ${#5,5}β–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${r}
${#15,15}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#7,7}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${r}
${#14,14}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${r}
${#14,14}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#14,14}β–ˆβ–ˆ${r}
${#14,14}β–ˆβ–ˆ${#15,15}β–ˆβ–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#15,15}β–ˆ${r}
β–„β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–„
β–„β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–€β–€
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–€
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–„
β–€β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–„β–„
β–€β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–€
${#5}LOΠ£AL TO MOTHEΠ― Π―USSIA
${#4,4}☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭
${#4,4}☭☭☭☭☭☭${#8,8}☭☭☭☭${#4,4}☭☭☭☭${#8,8}☭☭${#4,4}☭☭☭☭☭☭☭☭
${#4,4}☭☭☭☭${#8,8}☭☭☭☭${#4,4}☭☭☭☭☭☭☭☭${#8,8}☭☭${#4,4}☭☭☭☭☭☭
${#4,4}☭☭☭☭${#8,8}☭☭${#4,4}☭☭${#8,8}☭☭${#4,4}☭☭☭☭☭☭☭☭${#8,8}☭☭${#4,4}☭☭☭☭
${#4,4}☭☭☭☭☭☭☭☭☭☭${#8,8}☭☭${#4,4}☭☭☭☭☭☭${#8,8}☭☭${#4,4}☭☭☭☭
${#4,4}☭☭☭☭☭☭☭☭☭☭☭☭${#8,8}☭☭${#4,4}☭☭☭☭${#8,8}☭☭${#4,4}☭☭☭☭
${#4,4}☭☭☭☭☭☭${#8,8}☭☭${#4,4}☭☭☭☭☭☭${#8,8}☭☭${#4,4}☭☭${#8,8}☭☭${#4,4}☭☭☭☭
${#4,4}☭☭☭☭${#8,8}☭☭${#4,4}☭☭${#8,8}☭☭${#4,4}☭☭☭☭☭☭${#8,8}☭☭${#4,4}☭☭☭☭☭☭
${#4,4}☭☭${#8,8}☭☭${#4,4}☭☭☭☭☭☭${#8,8}☭☭☭☭☭☭${#4,4}☭☭${#8,8}☭☭${#4,4}☭☭☭☭
${#4,4}☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭${#8,8}☭☭${#4,4}☭☭
${#4,4}☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭☭
${#11,11}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#11,11}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
${#12,12}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆ${#12,12}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
${#11,11}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#11,11}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
${#12,12}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#12,12}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
${#11,11}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#8,8}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#11,11}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
${#12,12}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#8,8}β–ˆ${#1,1}β–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#12,12}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
${#11,11}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#8,8}β–ˆβ–ˆ${#1,1}β–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#11,11}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
${#12,12}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#8,8}β–ˆβ–ˆ${#1,1}β–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#0,0}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#12,12}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
${#11,11}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#11,11}β–ˆβ–ˆβ–ˆβ–ˆ
${#12,12}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#12,12}β–ˆβ–ˆβ–ˆβ–ˆ
${#11,11}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#8,8}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#11,11}β–ˆβ–ˆβ–ˆβ–ˆ
${#12,12}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#6,6}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ:Dβ–ˆ=)β–ˆfaceβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#12,12}β–ˆβ–ˆβ–ˆβ–ˆ
${#11,11}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#8,8}β–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#6,6}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#11,11}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
${#12,12}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#8,8}β–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#6,6}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#6,6}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#12,12}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
${#11,11}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#8,8}β–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#6,6}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#6,6}β–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#11,11}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
${#12,12}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#6,6}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#6,6}β–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#12,12}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
${#11,11}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆ${#6,6}β–ˆβ–ˆβ–ˆ${#13,13}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆ${#11,11}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
${#12,12}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆ${#12,12}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
${#11,11}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆ${#8,8}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆ${#11,11}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
${#12,12}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#1,1}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ${#12,12}β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
β–€β–„ β–„β–€
β–„β–ˆβ–€β–ˆβ–ˆβ–ˆβ–€β–ˆβ–„
β–ˆβ–€β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–€β–ˆ
β–€ β–€β–„β–„ β–„β–„β–€ β–€
β–„β–„β–„
β–„β–ˆβ–€β–ˆβ–ˆβ–ˆβ–€β–ˆβ–„
β–€β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–€
β–„β–„β–€β–„β–€β–„β–€β–„β–„
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment