termin-ansicolor 1.3.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +7 -0
- data/.travis.yml +11 -0
- data/CHANGES +60 -0
- data/COPYING +340 -0
- data/Gemfile +5 -0
- data/README.rdoc +55 -0
- data/Rakefile +34 -0
- data/VERSION +1 -0
- data/bin/cdiff +19 -0
- data/bin/colortab +48 -0
- data/bin/decolor +12 -0
- data/bin/term_display +91 -0
- data/bin/term_mandel +52 -0
- data/examples/ColorTest.gif +0 -0
- data/examples/Mona_Lisa.jpg +0 -0
- data/examples/Stilleben.jpg +0 -0
- data/examples/example.rb +92 -0
- data/examples/lambda-red-plain.ppm +135 -0
- data/examples/lambda-red.png +0 -0
- data/examples/lambda-red.ppm +4 -0
- data/examples/pacman.jpg +0 -0
- data/examples/smiley.png +0 -0
- data/examples/wool.jpg +0 -0
- data/lib/termin/ansicolor.rb +247 -0
- data/lib/termin/ansicolor/.keep +0 -0
- data/lib/termin/ansicolor/attribute.rb +143 -0
- data/lib/termin/ansicolor/ppm_reader.rb +96 -0
- data/lib/termin/ansicolor/rgb_color_metrics.rb +161 -0
- data/lib/termin/ansicolor/rgb_triple.rb +121 -0
- data/lib/termin/ansicolor/version.rb +8 -0
- data/term-ansicolor.gemspec +41 -0
- data/tests/ansicolor_test.rb +133 -0
- data/tests/attribute_test.rb +73 -0
- data/tests/ppm_reader_test.rb +46 -0
- data/tests/rgb_color_metrics_test.rb +100 -0
- data/tests/rgb_triple_test.rb +71 -0
- data/tests/test_helper.rb +8 -0
- metadata +146 -0
data/Rakefile
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# vim: set filetype=ruby et sw=2 ts=2:
|
2
|
+
|
3
|
+
require 'gem_hadar'
|
4
|
+
|
5
|
+
GemHadar do
|
6
|
+
name 'term-ansicolor'
|
7
|
+
path_name 'termin/ansicolor'
|
8
|
+
path_module 'Termin::ANSIColor'
|
9
|
+
author 'Florian Frank'
|
10
|
+
email 'flori@ping.de'
|
11
|
+
homepage "http://flori.github.com/#{name}"
|
12
|
+
summary 'Ruby library that colors strings using ANSI escape sequences'
|
13
|
+
description 'This library uses ANSI escape sequences to control the attributes of terminal output'
|
14
|
+
licenses << 'GPL-2'
|
15
|
+
test_dir 'tests'
|
16
|
+
ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock', '.rvmrc', 'coverage', 'tags', '.bundle'
|
17
|
+
readme 'README.rdoc'
|
18
|
+
executables << 'cdiff' << 'decolor' << 'colortab' << 'term_mandel' << 'term_display'
|
19
|
+
|
20
|
+
dependency 'tins', '~>1.0'
|
21
|
+
development_dependency 'simplecov'
|
22
|
+
|
23
|
+
install_library do
|
24
|
+
destdir = "#{ENV['DESTDIR']}"
|
25
|
+
libdir = CONFIG["sitelibdir"]
|
26
|
+
cd 'lib' do
|
27
|
+
for file in Dir['**/*.rb']
|
28
|
+
dest = destdir + File.join(libdir, File.dirname(file))
|
29
|
+
mkdir_p dest
|
30
|
+
install file, dest
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.3.0.1
|
data/bin/cdiff
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
## Little unix filter that colorizes diff output.
|
4
|
+
#
|
5
|
+
|
6
|
+
require 'termin/ansicolor'
|
7
|
+
|
8
|
+
include Termin::ANSIColor
|
9
|
+
|
10
|
+
ARGF.each do |line|
|
11
|
+
STDOUT.print(
|
12
|
+
case line
|
13
|
+
when /^\+/ then green { line }
|
14
|
+
when /^-/ then red { line }
|
15
|
+
when /^(@@|diff)/ then blue { line }
|
16
|
+
else line
|
17
|
+
end
|
18
|
+
)
|
19
|
+
end
|
data/bin/colortab
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'termin/ansicolor'
|
4
|
+
|
5
|
+
class String
|
6
|
+
include Termin::ANSIColor
|
7
|
+
end
|
8
|
+
|
9
|
+
def print_color(c)
|
10
|
+
color = Termin::ANSIColor::Attribute[c]
|
11
|
+
text = [
|
12
|
+
Termin::ANSIColor::Attribute.nearest_rgb_color('#000'),
|
13
|
+
Termin::ANSIColor::Attribute.nearest_rgb_color('#fff'),
|
14
|
+
].max_by { |t| t.distance_to(color) }
|
15
|
+
print ("%3u #{color.rgb.html} " % c).on_color(color.name).color(text.name)
|
16
|
+
end
|
17
|
+
|
18
|
+
for c in 0..3
|
19
|
+
print_color c
|
20
|
+
end
|
21
|
+
puts
|
22
|
+
|
23
|
+
for c in 4..7
|
24
|
+
print_color c
|
25
|
+
end
|
26
|
+
puts
|
27
|
+
|
28
|
+
for c in 8..11
|
29
|
+
print_color c
|
30
|
+
end
|
31
|
+
puts
|
32
|
+
|
33
|
+
for c in 12..15
|
34
|
+
print_color c
|
35
|
+
end
|
36
|
+
puts
|
37
|
+
|
38
|
+
for c in 16..231
|
39
|
+
(c - 16) % 6 == 0 and puts
|
40
|
+
print_color c
|
41
|
+
end
|
42
|
+
puts
|
43
|
+
|
44
|
+
for c in 232..255
|
45
|
+
(c - 16) % 6 == 0 and puts
|
46
|
+
print_color c
|
47
|
+
end
|
48
|
+
puts
|
data/bin/decolor
ADDED
data/bin/term_display
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'tempfile'
|
4
|
+
require 'termin/ansicolor'
|
5
|
+
require 'open-uri'
|
6
|
+
require 'tins/xt'
|
7
|
+
include Tins::GO
|
8
|
+
|
9
|
+
def provide_ppm_file(filename, opts)
|
10
|
+
pnmtopnm = `which pnmtopnm`
|
11
|
+
if pnmtopnm.empty?
|
12
|
+
STDERR.puts "You might consider installing netpbm to enable image conversion/scaling!"
|
13
|
+
File.new(filename, 'rb')
|
14
|
+
else
|
15
|
+
cmd = [ pnmtopnm.chomp! ]
|
16
|
+
ext = File.extname(filename)
|
17
|
+
scale = `which pamscale`.chomp!
|
18
|
+
console_scale = "#{scale} -#{opts['s']} #{opts['C']} #{opts['R']}"
|
19
|
+
cmd.unshift console_scale
|
20
|
+
aspect_scaling = "#{scale} -xscale #{opts['a']}"
|
21
|
+
cmd.unshift aspect_scaling
|
22
|
+
convert_to_pnm =
|
23
|
+
case ext
|
24
|
+
when /\A(\.ppm\d*|\.pnm|\z)/
|
25
|
+
''
|
26
|
+
when /\A.(jpe?g|exif|jfif)\z/i
|
27
|
+
'jpegtopnm'
|
28
|
+
when /\A.tiff?\z/i
|
29
|
+
'tifftopnm'
|
30
|
+
else
|
31
|
+
"#{ext[1..-1].downcase}topnm"
|
32
|
+
end
|
33
|
+
unless convert_to_pnm.empty?
|
34
|
+
convert_to_pnm = `which #{convert_to_pnm}`.chomp!
|
35
|
+
convert_to_pnm.empty? and fail "unknown pnm converter #{convert_to_pnm}"
|
36
|
+
cmd.unshift convert_to_pnm
|
37
|
+
end
|
38
|
+
temp = Tempfile.open(File.basename($0))
|
39
|
+
cmd *= '|'
|
40
|
+
STDERR.puts "Executing #{cmd.inspect}"
|
41
|
+
IO.popen(cmd, 'r+') do |converter|
|
42
|
+
open(filename, 'rb') do |input|
|
43
|
+
until input.eof?
|
44
|
+
converter.write input.read(8192)
|
45
|
+
end
|
46
|
+
converter.close_write
|
47
|
+
end
|
48
|
+
until converter.eof?
|
49
|
+
temp.write(converter.read)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
temp.tap(&:rewind)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def usage(rc = 0)
|
57
|
+
puts to <<-end
|
58
|
+
Usage: #$0 [OPTIONS] FILENAME"
|
59
|
+
|
60
|
+
Options are
|
61
|
+
|
62
|
+
-m METRIC for distance (METRIC = #{Termin::ANSIColor::RGBColorMetrics.metrics * '|'})
|
63
|
+
-g yes|no use/don't use gray values, defaults to yes
|
64
|
+
-s xyfit|xyfill scaling strategy, defaults to xyfit
|
65
|
+
-a ASPECT x:y aspect, defaults to 2.2
|
66
|
+
-C COLS number of columns for rendering with aspect, defaults to max
|
67
|
+
-R ROWS number of rows for rendering with aspect, defaults to max - 1
|
68
|
+
-h this help
|
69
|
+
|
70
|
+
end
|
71
|
+
exit rc
|
72
|
+
end
|
73
|
+
|
74
|
+
opts = go 'hm:g:s:a:C:R:'
|
75
|
+
opts['h'] and usage
|
76
|
+
filename = ARGV.shift or usage 1
|
77
|
+
metric = Termin::ANSIColor::RGBColorMetrics.metric(opts['m'] || 'CIELab')
|
78
|
+
gray = (opts['g'] || 'yes') == 'yes'
|
79
|
+
opts['s'] ||= 'xyfit'
|
80
|
+
opts['a'] ||= '2.2'
|
81
|
+
opts['C'] ||= Tins::Termininal.cols
|
82
|
+
opts['R'] ||= [ Tins::Termininal.rows - 1, 0 ].max
|
83
|
+
|
84
|
+
file = provide_ppm_file(filename, opts)
|
85
|
+
ppm = Termin::ANSIColor::PPMReader.new(
|
86
|
+
file,
|
87
|
+
:metric => metric,
|
88
|
+
:gray => gray
|
89
|
+
)
|
90
|
+
|
91
|
+
puts ppm
|
data/bin/term_mandel
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'termin/ansicolor'
|
4
|
+
require 'tins/xt'
|
5
|
+
require "complex"
|
6
|
+
include Tins::GO
|
7
|
+
|
8
|
+
@width, @height = Tins::Terminin.cols, Tins::Terminin.lines
|
9
|
+
|
10
|
+
def color_random
|
11
|
+
(1..3).map { rand(255) }
|
12
|
+
end
|
13
|
+
|
14
|
+
def draw_set(rx, ry)
|
15
|
+
sx = (rx.end - rx.begin).abs / @width
|
16
|
+
sy = (ry.end - ry.begin).abs / @height
|
17
|
+
|
18
|
+
ac = Termin::ANSIColor
|
19
|
+
color =
|
20
|
+
ac::Attribute[ color_random ].gradient_to(ac::Attribute[ color_random ], :steps => 16) +
|
21
|
+
ac::Attribute[ color_random ].gradient_to(ac::Attribute[ color_random ], :steps => 16) +
|
22
|
+
ac::Attribute[ color_random ].gradient_to(ac::Attribute[ color_random ], :steps => 16) +
|
23
|
+
ac::Attribute[ color_random ].gradient_to(ac::Attribute[ color_random ], :steps => 16) +
|
24
|
+
ac::Attribute[ color_random ].gradient_to(ac::Attribute[ color_random ], :steps => 16) +
|
25
|
+
ac::Attribute[ color_random ].gradient_to(ac::Attribute[ color_random ], :steps => 16) +
|
26
|
+
ac::Attribute[ color_random ].gradient_to(ac::Attribute[ color_random ], :steps => 16) +
|
27
|
+
ac::Attribute[ color_random ].gradient_to(ac::Attribute['#000'], :steps => 16)
|
28
|
+
iters = color.size - 2
|
29
|
+
|
30
|
+
text = ''
|
31
|
+
for j in 0...@height
|
32
|
+
for i in 0...@width
|
33
|
+
n, z_n = 0, Complex(0, 0)
|
34
|
+
c = Complex(sx * i + rx.begin, sy * j + ry.begin)
|
35
|
+
while n <= iters
|
36
|
+
break if z_n.abs > 2
|
37
|
+
z_n = z_n ** 2 + c
|
38
|
+
n += 1
|
39
|
+
end
|
40
|
+
text << ac.on_color(color[n]) << ' '
|
41
|
+
end
|
42
|
+
text << ac.reset << "\n"
|
43
|
+
end
|
44
|
+
puts text
|
45
|
+
end
|
46
|
+
|
47
|
+
opts = go 'x:y:'
|
48
|
+
|
49
|
+
rx = opts['x'].full? { |r| Range.new(*(r.split('..', 2).map(&:to_f))) } || (-2.0..1.0)
|
50
|
+
ry = opts['y'].full? { |r| Range.new(*(r.split('..', 2).map(&:to_f))) } || (-1.0..1.0)
|
51
|
+
|
52
|
+
draw_set rx, ry
|
Binary file
|
Binary file
|
Binary file
|
data/examples/example.rb
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
require 'termin/ansicolor'
|
4
|
+
|
5
|
+
# Use this trick to work around namespace cluttering that
|
6
|
+
# happens if you just include Termin::ANSIColor:
|
7
|
+
|
8
|
+
class Color
|
9
|
+
extend Termin::ANSIColor
|
10
|
+
end
|
11
|
+
|
12
|
+
print Color.red, Color.bold, "No Namespace cluttering:", Color.clear, "\n"
|
13
|
+
print Color.green + "green" + Color.clear, "\n"
|
14
|
+
print Color.on_red(Color.green("green")), "\n"
|
15
|
+
print Color.yellow { Color.on_black { "yellow on_black" } }, "\n\n"
|
16
|
+
|
17
|
+
# Or shortcut Termin::ANSIColor by assignment:
|
18
|
+
c = Termin::ANSIColor
|
19
|
+
|
20
|
+
print c.red, c.bold, "No Namespace cluttering (alternative):", c.clear, "\n"
|
21
|
+
print c.green + "green" + c.clear, "\n"
|
22
|
+
print c.on_red(c.green("green")), "\n"
|
23
|
+
print c.yellow { c.on_black { "yellow on_black" } }, "\n\n"
|
24
|
+
|
25
|
+
# Anyway, I don't define any of Termin::ANSIColor's methods in this example
|
26
|
+
# and I want to keep it short:
|
27
|
+
include Termin::ANSIColor
|
28
|
+
|
29
|
+
print red, bold, "Usage as constants:", reset, "\n"
|
30
|
+
print clear, "clear", reset, reset, "reset", reset,
|
31
|
+
bold, "bold", reset, dark, "dark", reset,
|
32
|
+
underscore, "underscore", reset, blink, "blink", reset,
|
33
|
+
negative, "negative", reset, concealed, "concealed", reset, "|\n",
|
34
|
+
black, "black", reset, red, "red", reset, green, "green", reset,
|
35
|
+
yellow, "yellow", reset, blue, "blue", reset, magenta, "magenta", reset,
|
36
|
+
cyan, "cyan", reset, white, "white", reset, "|\n",
|
37
|
+
on_black, "on_black", reset, on_red, "on_red", reset,
|
38
|
+
on_green, "on_green", reset, on_yellow, "on_yellow", reset,
|
39
|
+
on_blue, "on_blue", reset, on_magenta, "on_magenta", reset,
|
40
|
+
on_cyan, "on_cyan", reset, on_white, "on_white", reset, "|\n\n"
|
41
|
+
|
42
|
+
print red, bold, "Usage as unary argument methods:", reset, "\n"
|
43
|
+
print clear("clear"), reset("reset"), bold("bold"), dark("dark"),
|
44
|
+
underscore("underscore"), blink("blink"), negative("negative"),
|
45
|
+
concealed("concealed"), "|\n",
|
46
|
+
black("black"), red("red"), green("green"), yellow("yellow"),
|
47
|
+
blue("blue"), magenta("magenta"), cyan("cyan"), white("white"), "|\n",
|
48
|
+
on_black("on_black"), on_red("on_red"), on_green("on_green"),#
|
49
|
+
on_yellow("on_yellow"), on_blue("on_blue"), on_magenta("on_magenta"),
|
50
|
+
on_cyan("on_cyan"), on_white("on_white"), "|\n\n"
|
51
|
+
|
52
|
+
print red { bold { "Usage as block forms:" } }, "\n"
|
53
|
+
print clear { "clear" }, reset { "reset" }, bold { "bold" },
|
54
|
+
dark { "dark" }, underscore { "underscore" }, blink { "blink" },
|
55
|
+
negative { "negative" }, concealed { "concealed" }, "|\n",
|
56
|
+
black { "black" }, red { "red" }, green { "green" },
|
57
|
+
yellow { "yellow" }, blue { "blue" }, magenta { "magenta" },
|
58
|
+
cyan { "cyan" }, white { "white" }, "|\n",
|
59
|
+
on_black { "on_black" }, on_red { "on_red" }, on_green { "on_green" },
|
60
|
+
on_yellow { "on_yellow" }, on_blue { "on_blue" },
|
61
|
+
on_magenta { "on_magenta" }, on_cyan { "on_cyan" },
|
62
|
+
on_white { "on_white" }, "|\n\n"
|
63
|
+
|
64
|
+
# Usage as Mixin into String or its Subclasses
|
65
|
+
class String
|
66
|
+
include Termin::ANSIColor
|
67
|
+
end
|
68
|
+
|
69
|
+
print "Usage as String Mixins:".red.bold, "\n"
|
70
|
+
print "clear".clear, "reset".reset, "bold".bold, "dark".dark,
|
71
|
+
"underscore".underscore, "blink".blink, "negative".negative,
|
72
|
+
"concealed".concealed, "|\n",
|
73
|
+
"black".black, "red".red, "green".green, "yellow".yellow,
|
74
|
+
"blue".blue, "magenta".magenta, "cyan".cyan, "white".white, "|\n",
|
75
|
+
"on_black".on_black, "on_red".on_red, "on_green".on_green,
|
76
|
+
"on_yellow".on_yellow, "on_blue".on_blue, "on_magenta".on_magenta,
|
77
|
+
"on_cyan".on_cyan, "on_white".on_white, "|\n\n"
|
78
|
+
|
79
|
+
symbols = Termin::ANSIColor::attributes
|
80
|
+
print red { bold { "All supported attributes = " } },
|
81
|
+
symbols.map { |s| __send__(s, s.inspect) } * ', ', "\n\n"
|
82
|
+
|
83
|
+
print "Send symbols to strings:".send(:red).send(:bold), "\n"
|
84
|
+
print symbols[12, 8].map { |c| c.to_s.send(c) } * '', "\n\n"
|
85
|
+
|
86
|
+
print red { bold { "Make strings monochromatic again:" } }, "\n"
|
87
|
+
print [
|
88
|
+
"red".red,
|
89
|
+
"not red anymore".red.uncolored,
|
90
|
+
uncolored { "not red anymore".red },
|
91
|
+
uncolored("not red anymore".red)
|
92
|
+
].map { |x| x + "\n" } * ''
|
@@ -0,0 +1,135 @@
|
|
1
|
+
P3
|
2
|
+
44 22
|
3
|
+
255
|
4
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
5
|
+
249 242 242 236 209 209 230 188 188 229 182 182 229 182 182 230 188 187 235 207 207 247 238 238
|
6
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
7
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
8
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
9
|
+
255 255 255 255 255 255 255 255 255 255 255 255
|
10
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 246 234 234 215 137 136
|
11
|
+
203 34 30 206 30 24 206 29 24 206 28 24 207 29 24 206 28 24 206 28 24 203 30 25
|
12
|
+
213 126 125 244 229 229 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
13
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
14
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
15
|
+
255 255 255 255 255 255 255 255 255 255 255 255
|
16
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 247 237 238 202 67 64 206 28 24
|
17
|
+
205 29 24 202 37 32 207 68 65 207 96 95 208 91 89 204 52 49 203 28 23 206 28 24
|
18
|
+
206 28 24 202 51 47 234 207 207 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
19
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
20
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
21
|
+
255 255 255 255 255 255 255 255 255 255 255 255
|
22
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 227 184 184 205 29 24 212 124 123
|
23
|
+
241 221 221 253 250 250 255 255 255 255 255 255 255 255 255 255 254 254 249 239 239 230 194 194
|
24
|
+
206 82 80 206 28 24 202 36 32 234 207 207 255 255 255 255 255 255 255 255 255 255 255 255
|
25
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
26
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
27
|
+
255 255 255 255 255 255 255 255 255 255 255 255
|
28
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 243 230 230 234 204 203 250 245 245
|
29
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
30
|
+
250 244 244 209 118 117 206 29 24 202 47 43 242 223 223 255 255 255 255 255 255 255 255 255
|
31
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
32
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
33
|
+
255 255 255 255 255 255 255 255 255 255 255 255
|
34
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
35
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
36
|
+
255 255 255 250 245 245 206 98 97 206 28 24 202 74 72 247 237 238 255 255 255 255 255 255
|
37
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
38
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
39
|
+
255 255 255 255 255 255 255 255 255 255 255 255
|
40
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
41
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
42
|
+
255 255 255 255 255 255 246 234 234 201 41 37 206 28 24 206 105 104 252 247 247 255 255 255
|
43
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
44
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
45
|
+
255 255 255 255 255 255 255 255 255 255 255 255
|
46
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
47
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
48
|
+
255 255 255 254 251 252 215 146 146 204 28 24 206 28 24 206 29 24 213 137 136 255 253 253
|
49
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
50
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
51
|
+
255 255 255 255 255 255 255 255 255 255 255 255
|
52
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
53
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
54
|
+
252 248 249 212 133 132 205 28 24 206 28 24 206 29 24 206 29 24 204 29 24 221 169 168
|
55
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
56
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
57
|
+
255 255 255 255 255 255 255 255 255 255 255 255
|
58
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
59
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 250 245 245
|
60
|
+
209 118 117 205 28 24 206 29 24 206 28 24 206 28 24 206 28 24 206 28 24 202 29 25
|
61
|
+
231 198 198 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
62
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
63
|
+
255 255 255 255 255 255 255 255 255 255 255 255
|
64
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
65
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 249 240 240 207 104 103
|
66
|
+
206 29 24 206 28 24 206 29 24 206 28 24 206 28 24 206 28 24 205 32 27 206 29 24
|
67
|
+
202 44 40 240 219 219 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
68
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
69
|
+
255 255 255 255 255 255 255 255 255 255 255 255
|
70
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
71
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 246 236 236 206 90 89 206 28 24
|
72
|
+
206 28 24 206 28 24 206 28 24 206 28 24 206 28 24 206 105 103 243 228 229 204 92 91
|
73
|
+
206 28 24 202 71 68 246 235 235 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
74
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
75
|
+
255 255 255 255 255 255 255 255 255 255 255 255
|
76
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
77
|
+
255 255 255 255 255 255 255 255 255 255 255 255 244 229 229 203 77 75 206 28 24 206 28 24
|
78
|
+
206 28 24 206 29 24 206 28 24 205 30 24 210 120 118 250 245 245 255 255 255 245 233 233
|
79
|
+
202 64 61 206 28 24 206 101 100 251 246 247 255 255 255 255 255 255 255 255 255 255 255 255
|
80
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
81
|
+
255 255 255 255 255 255 255 255 255 255 255 255
|
82
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
83
|
+
255 255 255 255 255 255 255 255 255 241 222 221 203 64 62 206 28 24 206 28 24 206 28 24
|
84
|
+
206 28 24 206 29 24 205 29 24 213 135 134 252 249 249 255 255 255 255 255 255 255 255 255
|
85
|
+
239 216 215 202 38 34 206 30 24 212 132 130 255 253 253 255 255 255 255 255 255 255 255 255
|
86
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
87
|
+
255 255 255 255 255 255 255 255 255 255 255 255
|
88
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
89
|
+
255 255 255 255 255 255 237 212 212 202 53 49 206 28 24 206 28 24 206 28 24 206 28 24
|
90
|
+
206 28 24 204 29 24 217 152 151 254 252 252 255 255 255 255 255 255 255 255 255 255 255 255
|
91
|
+
255 255 255 229 192 192 202 29 25 204 29 24 220 164 164 255 255 255 255 255 255 255 255 255
|
92
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
93
|
+
255 255 255 255 255 255 255 255 255 255 255 255
|
94
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
95
|
+
255 255 255 233 203 203 203 41 36 206 29 24 205 28 24 206 28 24 206 28 24 206 28 24
|
96
|
+
204 29 25 221 167 167 255 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
97
|
+
255 255 255 255 255 255 219 162 162 205 29 24 202 30 25 230 194 194 255 255 255 255 255 255
|
98
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
99
|
+
255 255 255 255 255 255 255 255 255 255 255 255
|
100
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
101
|
+
229 191 191 202 32 28 206 29 24 206 28 24 206 29 24 206 28 24 206 29 24 203 31 26
|
102
|
+
227 182 182 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
103
|
+
255 255 255 255 255 255 254 252 253 212 131 130 206 30 24 203 41 35 236 211 211 255 255 255
|
104
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 252 250 250
|
105
|
+
249 243 243 251 247 247 255 255 255 255 255 255
|
106
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 224 177 177
|
107
|
+
203 29 25 206 28 24 206 28 24 206 28 24 206 28 24 206 29 24 203 38 34 232 197 197
|
108
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
109
|
+
255 255 255 255 255 255 255 255 255 251 246 246 205 100 98 206 29 24 203 42 38 229 192 191
|
110
|
+
255 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 252 252 214 141 140
|
111
|
+
203 26 22 206 130 130 255 255 255 255 255 255
|
112
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 254 220 163 163 204 29 24
|
113
|
+
206 28 24 206 28 24 206 28 24 206 28 24 206 29 24 203 49 46 236 209 209 255 255 255
|
114
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
115
|
+
255 255 255 255 255 255 255 255 255 255 255 255 247 235 235 202 69 67 206 29 24 205 29 24
|
116
|
+
209 96 94 224 166 165 232 190 190 233 203 203 233 195 194 225 170 170 209 95 93 205 29 24
|
117
|
+
206 28 24 213 147 147 255 255 255 255 255 255
|
118
|
+
255 255 255 255 255 255 255 255 255 255 255 255 254 252 252 216 149 148 205 28 24 206 29 24
|
119
|
+
206 28 24 206 28 24 206 28 24 206 28 24 202 62 59 239 219 219 255 255 255 255 255 255
|
120
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
121
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 243 226 226 203 72 69 206 29 24
|
122
|
+
206 28 24 206 28 24 206 28 24 206 28 24 206 28 24 206 28 24 206 28 24 206 29 24
|
123
|
+
204 79 76 246 233 234 255 255 255 255 255 255
|
124
|
+
255 255 255 255 255 255 255 255 255 252 250 250 209 137 136 202 33 29 203 33 29 203 33 28
|
125
|
+
203 33 28 203 33 28 203 34 28 203 78 76 243 228 228 255 255 255 255 255 255 255 255 255
|
126
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
127
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 249 241 241 223 164 163
|
128
|
+
205 75 73 203 29 24 205 28 24 206 28 24 206 28 24 203 30 25 208 90 88 224 174 173
|
129
|
+
250 244 244 255 255 255 255 255 255 255 255 255
|
130
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
131
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
132
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
133
|
+
255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
|
134
|
+
255 255 255 248 241 241 243 228 228 242 227 226 243 228 228 249 244 244 255 255 255 255 255 255
|
135
|
+
255 255 255 255 255 255 255 255 255 255 255 255
|