rmthemegen 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ rmthemegen.gemspec
1
2
  .idea
2
3
  *.gem
3
4
  .bundle
data/README CHANGED
@@ -4,19 +4,18 @@ By David Heitzman
4
4
  evolvemeans@gmail.com
5
5
  released under the MIT license "free to use"
6
6
 
7
- "This software is not designed to diagnose, treat, or cure any particular software or hardware ailment. Discretion is advised."
7
+ "This software is not designed to diagnose, treat, or cure any particular ailment. Except bad color schemes. "
8
8
 
9
9
  requirements :
10
10
  ruby : >= 1.9.1
11
11
  gems:
12
12
  color
13
-
13
+ xml-simple
14
14
 
15
15
  usage: ruby rmthemegen
16
16
  It will generate 1 or more files called: "rmt_something_something.xml"
17
17
  Place these in your ./RubyMine/config/colors directory and then go to File/Settings/Editor/Colors&Fonts
18
18
  you should see your theme(s) listed there.
19
19
 
20
- Trivia: the names are chosen at random from lists of nouns and adjectives.
21
20
 
22
21
 
@@ -18,6 +18,7 @@ module RMThemeGen
18
18
  puts " David Heitzman 2011 "
19
19
  puts " Note: if you want to put back your old Geany colors, go to ~/.config/geany/filedefs/ and"
20
20
  puts " copy the corresponding _old_xxx file back onto filetypes.xyz, eg. filetypes.html, etc. "
21
+ puts " Restart geany to see new colors "
21
22
 
22
23
  begin
23
24
  @dir = (File.expand_path "~/.config/geany/filedefs/")+"/"
@@ -64,7 +65,7 @@ module RMThemeGen
64
65
  @max_cont = 1.0
65
66
 
66
67
  @schemeversion = 1
67
- @background_max_brightness = 0.12
68
+ @background_max_brightness = 0.16
68
69
  @background_grey = true #if false, allows background to be any color, as long as it meets brightness parameter
69
70
  # @foreground_min_brightness = 0.4
70
71
 
@@ -134,7 +135,6 @@ module RMThemeGen
134
135
  #goes into the geany directory and kicks some ass. it replaces every single color definition with
135
136
  #something random, of course with a consistent background.
136
137
 
137
- puts "Backing up all your current color files"
138
138
  @filelist.each do |f|
139
139
  begin
140
140
  # puts f+" -->"+@dir+"_old_"+@extstring+File.basename(f)
@@ -165,45 +165,47 @@ module RMThemeGen
165
165
  case File.basename(f)
166
166
  when "filetypes.common"
167
167
  if token == "marker_search" then
168
- r9 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.35, :max_cont=>0.99).upcase
168
+ r9 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.35, :max_cont=>@max_cont).upcase
169
169
  newl = token +"="+"0x"+r1+";0x"+r9+";true;true"
170
170
  elsif token == "caret" then
171
- r9 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.35, :max_cont=>0.99).upcase
171
+ r9 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.35, :max_cont=>@max_cont).upcase
172
172
  newl = token +"="+"0xFFFFFF;0x"+r9+";"+p3+";"+p4
173
173
  elsif token == "current_line" then
174
- r9 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.03, :max_cont=>0.06).upcase
175
- newl = token +"="+"0x"+r1+";0x"+r9+";"+"true"+";"+"true"
174
+ r9 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>@min_cont*0.15, :max_cont=>@min_cont*0.3).upcase
175
+ newl = token +"="+"0x"+r1+";0x"+r9+";"+"true"+";"+"false"
176
176
  elsif token == "selection" then
177
- r9 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.08, :max_cont=>0.16).upcase
177
+ r9 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>@min_cont*0.25, :max_cont=>@min_cont*0.5).upcase
178
178
  newl = token +"="+"0x"+r1+";0x"+r9+";"+"false"+";"+"true"
179
179
  elsif token == "brace_good" then
180
- rb = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.25, :max_cont=>0.9999).upcase
181
- rf = randcolor(:bg_rgb=>rb, :min_cont=>0.30, :max_cont=>0.9999).upcase
182
- newl = token +"="+"0x"+rf+";0x"+rb+";"+"false"+";"+"true"
180
+ rb = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.25, :max_cont=>@max_cont).upcase
181
+ rf = randcolor(:bg_rgb=>rb, :min_cont=>0.30, :max_cont=>1.0).upcase
182
+ newl = token +"="+"0x"+rf+";0x"+rb+";"+"true"+";"+"false"
183
183
  elsif token == "brace_bad" then
184
- rb = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.30, :max_cont=>0.9999).upcase
185
- rf = randcolor(:bg_rgb=>rb, :min_cont=>0.30, :max_cont=>0.9999).upcase
186
- newl = token +"="+"0x"+rf+";0x"+rb+";"+"true"+";"+"true"
184
+ rb = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>@min_cont, :max_cont=>1.0).upcase
185
+ rf = randcolor(:bg_rgb=>rb, :min_cont=>0.30, :max_cont=>1.0).upcase
186
+ newl = token +"="+"0x"+rf+";0x"+rb+";"+"true"+";"+"false"
187
187
  else
188
- newl = token +"="+"0x"+r1+";0x"+r2+";"+p3+";"+p4
188
+ newl = token +"="+"0x"+r1+";0x"+r2+";"+p3+";"+p4
189
189
  end
190
190
 
191
191
  when "filetypes.xml"
192
- if token=="translucency" then
193
- else
194
- newl = token +"="+"0x"+r1+";0x"+r2+";"+p3+";"+p4
195
- end
192
+ newl = token +"="+"0x"+r1+";0x"+r2+";"+p3+";"+p4
193
+
196
194
  when "filetypes.ruby"
197
195
  if token=="default" then
198
196
  r3 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>@min_cont, :max_cont=>@max_cont).upcase
199
197
  #for whatever reason this needs to go in there in a ruby file : pod=0x388afb;0x131313;false;false
200
198
  newl = token +"="+"0x"+r1+";0x"+r2+";"+p3+";"+p4+"\npod=0x#{r3};0x#{@backgroundcolor};false;false"
199
+ elsif token.include?("comment") then
200
+ r1 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>@min_cont*0.87, :max_cont=>@min_cont*0.95).upcase
201
+ r2 = @backgroundcolor.upcase
202
+ newl = token +"="+"0x"+r1+";0x"+r2+";"+p3+";"+p4
201
203
  else
202
204
  newl = token +"="+"0x"+r1+";0x"+r2+";"+p3+";"+p4
203
205
  end
204
206
  else
205
207
  if token.include?("comment") then
206
- r1 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.18, :max_cont=>0.21).upcase
208
+ r1 = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>@min_cont*0.33, :max_cont=>@min_cont*0.64).upcase
207
209
  r2 = @backgroundcolor.upcase
208
210
  newl = token +"="+"0x"+r1+";0x"+r2+";"+p3+";"+p4
209
211
  else
@@ -0,0 +1 @@
1
+ <html><p>0: nada</p><p style='padding:0;margin:0;background-color:#000000;color:#000000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 0/0/0/0</p><p style='padding:0;margin:0;background-color:#000000;color:#010000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 0/0/0/0</p><p style='padding:0;margin:0;background-color:#000000;color:#020000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 0/0/0/0</p><p style='padding:0;margin:0;background-color:#000000;color:#030000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 0/0/0/0</p><p style='padding:0;margin:0;background-color:#000000;color:#040000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 0/0/0/0</p><p style='padding:0;margin:0;background-color:#000000;color:#050000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 0/0/0/0</p><p style='padding:0;margin:0;background-color:#000000;color:#060000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 0/0/0/0</p><p style='padding:0;margin:0;background-color:#000000;color:#070000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 0/0/0/0</p><p style='padding:0;margin:0;background-color:#000000;color:#080000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 1/0/0/0</p><p style='padding:0;margin:0;background-color:#000000;color:#090000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 1/0/1/0</p><p style='padding:0;margin:0;background-color:#000000;color:#0a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 1/0/1/1</p><p style='padding:0;margin:0;background-color:#000000;color:#0b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 1/0/1/1</p><p style='padding:0;margin:0;background-color:#000000;color:#0c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 1/0/1/1</p><p style='padding:0;margin:0;background-color:#000000;color:#0d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 1/0/1/1</p><p style='padding:0;margin:0;background-color:#000000;color:#0e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 1/0/1/1</p><p style='padding:0;margin:0;background-color:#000000;color:#0f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 1/0/1/1</p><p style='padding:0;margin:0;background-color:#000000;color:#100000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 2/0/1/1</p><p style='padding:0;margin:0;background-color:#000000;color:#110000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 2/0/1/1</p><p style='padding:0;margin:0;background-color:#000000;color:#120000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 2/0/2/1</p><p style='padding:0;margin:0;background-color:#000000;color:#130000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 2/0/2/1</p><p style='padding:0;margin:0;background-color:#000000;color:#140000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 2/0/2/2</p><p style='padding:0;margin:0;background-color:#000000;color:#150000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 2/0/2/2</p><p style='padding:0;margin:0;background-color:#000000;color:#160000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 2/0/2/2</p><p style='padding:0;margin:0;background-color:#000000;color:#170000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 3/0/2/2</p><p style='padding:0;margin:0;background-color:#000000;color:#180000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 3/0/2/2</p><p style='padding:0;margin:0;background-color:#000000;color:#190000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 3/0/2/2</p><p style='padding:0;margin:0;background-color:#000000;color:#1a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 3/0/3/2</p><p style='padding:0;margin:0;background-color:#000000;color:#1b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 3/0/3/2</p><p style='padding:0;margin:0;background-color:#000000;color:#1c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 3/0/3/2</p><p style='padding:0;margin:0;background-color:#000000;color:#1d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 3/0/3/2</p><p style='padding:0;margin:0;background-color:#000000;color:#1e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 3/0/3/3</p><p style='padding:0;margin:0;background-color:#000000;color:#1f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 4/0/3/3</p><p style='padding:0;margin:0;background-color:#000000;color:#200000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 4/0/3/3</p><p style='padding:0;margin:0;background-color:#000000;color:#210000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 4/0/3/3</p><p style='padding:0;margin:0;background-color:#000000;color:#220000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 4/0/3/3</p><p style='padding:0;margin:0;background-color:#000000;color:#230000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 4/0/4/3</p><p style='padding:0;margin:0;background-color:#000000;color:#240000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 4/0/4/3</p><p style='padding:0;margin:0;background-color:#000000;color:#250000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 4/0/4/3</p><p style='padding:0;margin:0;background-color:#000000;color:#260000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 4/0/4/3</p><p style='padding:0;margin:0;background-color:#000000;color:#270000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 5/0/4/4</p><p style='padding:0;margin:0;background-color:#000000;color:#280000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 5/0/4/4</p><p style='padding:0;margin:0;background-color:#000000;color:#290000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 5/0/4/4</p><p style='padding:0;margin:0;background-color:#000000;color:#2a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 5/0/4/4</p><p style='padding:0;margin:0;background-color:#000000;color:#2b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 5/0/5/4</p><p style='padding:0;margin:0;background-color:#000000;color:#2c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 5/0/5/4</p><p style='padding:0;margin:0;background-color:#000000;color:#2d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 5/0/5/4</p><p style='padding:0;margin:0;background-color:#000000;color:#2e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 6/0/5/4</p><p style='padding:0;margin:0;background-color:#000000;color:#2f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 6/0/5/4</p><p style='padding:0;margin:0;background-color:#000000;color:#300000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 6/0/5/4</p><p style='padding:0;margin:0;background-color:#000000;color:#310000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 6/0/5/5</p><p style='padding:0;margin:0;background-color:#000000;color:#320000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 6/0/5/5</p><p style='padding:0;margin:0;background-color:#000000;color:#330000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 6/0/5/5</p><p style='padding:0;margin:0;background-color:#000000;color:#340000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 6/0/6/5</p><p style='padding:0;margin:0;background-color:#000000;color:#350000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 6/0/6/5</p><p style='padding:0;margin:0;background-color:#000000;color:#360000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 7/0/6/5</p><p style='padding:0;margin:0;background-color:#000000;color:#370000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 7/0/6/5</p><p style='padding:0;margin:0;background-color:#000000;color:#380000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 7/0/6/5</p><p style='padding:0;margin:0;background-color:#000000;color:#390000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 7/0/6/5</p><p style='padding:0;margin:0;background-color:#000000;color:#3a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 7/0/6/6</p><p style='padding:0;margin:0;background-color:#000000;color:#3b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 7/0/6/6</p><p style='padding:0;margin:0;background-color:#000000;color:#3c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 7/0/7/6</p><p style='padding:0;margin:0;background-color:#000000;color:#3d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 7/0/7/6</p><p style='padding:0;margin:0;background-color:#000000;color:#3e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 8/0/7/6</p><p style='padding:0;margin:0;background-color:#000000;color:#3f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 8/0/7/6</p><p style='padding:0;margin:0;background-color:#000000;color:#400000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 8/1/7/6</p><p style='padding:0;margin:0;background-color:#000000;color:#410000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 8/1/7/6</p><p style='padding:0;margin:0;background-color:#000000;color:#420000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 8/1/7/6</p><p style='padding:0;margin:0;background-color:#000000;color:#430000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 8/1/7/7</p><p style='padding:0;margin:0;background-color:#000000;color:#440000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 8/1/7/7</p><p style='padding:0;margin:0;background-color:#000000;color:#450000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 9/1/8/7</p><p style='padding:0;margin:0;background-color:#000000;color:#460000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 9/1/8/7</p><p style='padding:0;margin:0;background-color:#000000;color:#470000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 9/1/8/7</p><p style='padding:0;margin:0;background-color:#000000;color:#480000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 9/1/8/7</p><p style='padding:0;margin:0;background-color:#000000;color:#490000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 9/1/8/7</p><p style='padding:0;margin:0;background-color:#000000;color:#4a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 9/1/8/7</p><p style='padding:0;margin:0;background-color:#000000;color:#4b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 9/1/8/7</p><p style='padding:0;margin:0;background-color:#000000;color:#4c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 9/1/8/8</p><p style='padding:0;margin:0;background-color:#000000;color:#4d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 10/1/9/8</p><p style='padding:0;margin:0;background-color:#000000;color:#4e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 10/1/9/8</p><p style='padding:0;margin:0;background-color:#000000;color:#4f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 10/1/9/8</p><p style='padding:0;margin:0;background-color:#000000;color:#500000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 10/1/9/8</p><p style='padding:0;margin:0;background-color:#000000;color:#510000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 10/1/9/8</p><p style='padding:0;margin:0;background-color:#000000;color:#520000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 10/1/9/8</p><p style='padding:0;margin:0;background-color:#000000;color:#530000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 10/1/9/8</p><p style='padding:0;margin:0;background-color:#000000;color:#540000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 10/1/9/8</p><p style='padding:0;margin:0;background-color:#000000;color:#550000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 11/1/9/8</p><p style='padding:0;margin:0;background-color:#000000;color:#560000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 11/1/10/9</p><p style='padding:0;margin:0;background-color:#000000;color:#570000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 11/1/10/9</p><p style='padding:0;margin:0;background-color:#000000;color:#580000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 11/2/10/9</p><p style='padding:0;margin:0;background-color:#000000;color:#590000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 11/2/10/9</p><p style='padding:0;margin:0;background-color:#000000;color:#5a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 11/2/10/9</p><p style='padding:0;margin:0;background-color:#000000;color:#5b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 11/2/10/9</p><p style='padding:0;margin:0;background-color:#000000;color:#5c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 12/2/10/9</p><p style='padding:0;margin:0;background-color:#000000;color:#5d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 12/2/10/9</p><p style='padding:0;margin:0;background-color:#000000;color:#5e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 12/2/11/9</p><p style='padding:0;margin:0;background-color:#000000;color:#5f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 12/2/11/10</p><p style='padding:0;margin:0;background-color:#000000;color:#600000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 12/2/11/10</p><p style='padding:0;margin:0;background-color:#000000;color:#610000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 12/2/11/10</p><p style='padding:0;margin:0;background-color:#000000;color:#620000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 12/2/11/10</p><p style='padding:0;margin:0;background-color:#000000;color:#630000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 12/2/11/10</p><p style='padding:0;margin:0;background-color:#000000;color:#640000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 13/2/11/10</p><p style='padding:0;margin:0;background-color:#000000;color:#650000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 13/2/11/10</p><p style='padding:0;margin:0;background-color:#000000;color:#660000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 13/2/11/10</p><p style='padding:0;margin:0;background-color:#000000;color:#670000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 13/2/12/10</p><p style='padding:0;margin:0;background-color:#000000;color:#680000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 13/2/12/11</p><p style='padding:0;margin:0;background-color:#000000;color:#690000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 13/3/12/11</p><p style='padding:0;margin:0;background-color:#000000;color:#6a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 13/3/12/11</p><p style='padding:0;margin:0;background-color:#000000;color:#6b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 13/3/12/11</p><p style='padding:0;margin:0;background-color:#000000;color:#6c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 14/3/12/11</p><p style='padding:0;margin:0;background-color:#000000;color:#6d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 14/3/12/11</p><p style='padding:0;margin:0;background-color:#000000;color:#6e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 14/3/12/11</p><p style='padding:0;margin:0;background-color:#000000;color:#6f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 14/3/13/11</p><p style='padding:0;margin:0;background-color:#000000;color:#700000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 14/3/13/11</p><p style='padding:0;margin:0;background-color:#000000;color:#710000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 14/3/13/12</p><p style='padding:0;margin:0;background-color:#000000;color:#720000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 14/3/13/12</p><p style='padding:0;margin:0;background-color:#000000;color:#730000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 15/3/13/12</p><p style='padding:0;margin:0;background-color:#000000;color:#740000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 15/3/13/12</p><p style='padding:0;margin:0;background-color:#000000;color:#750000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 15/3/13/12</p><p style='padding:0;margin:0;background-color:#000000;color:#760000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 15/3/13/12</p><p style='padding:0;margin:0;background-color:#000000;color:#770000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 15/3/13/12</p><p style='padding:0;margin:0;background-color:#000000;color:#780000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 15/4/14/12</p><p style='padding:0;margin:0;background-color:#000000;color:#790000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 15/4/14/13</p><p style='padding:0;margin:0;background-color:#000000;color:#7a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 15/4/14/13</p><p style='padding:0;margin:0;background-color:#000000;color:#7b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 16/4/14/13</p><p style='padding:0;margin:0;background-color:#000000;color:#7c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 16/4/14/13</p><p style='padding:0;margin:0;background-color:#000000;color:#7d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 16/4/14/13</p><p style='padding:0;margin:0;background-color:#000000;color:#7e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 16/4/14/13</p><p style='padding:0;margin:0;background-color:#000000;color:#7f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 16/4/14/13</p><p style='padding:0;margin:0;background-color:#000000;color:#800000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 16/4/15/13</p><p style='padding:0;margin:0;background-color:#000000;color:#810000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 16/4/15/13</p><p style='padding:0;margin:0;background-color:#000000;color:#820000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 16/4/15/14</p><p style='padding:0;margin:0;background-color:#000000;color:#830000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 17/4/15/14</p><p style='padding:0;margin:0;background-color:#000000;color:#840000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 17/4/15/14</p><p style='padding:0;margin:0;background-color:#000000;color:#850000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 17/5/15/14</p><p style='padding:0;margin:0;background-color:#000000;color:#860000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 17/5/15/14</p><p style='padding:0;margin:0;background-color:#000000;color:#870000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 17/5/15/14</p><p style='padding:0;margin:0;background-color:#000000;color:#880000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 17/5/15/14</p><p style='padding:0;margin:0;background-color:#000000;color:#890000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 17/5/16/14</p><p style='padding:0;margin:0;background-color:#000000;color:#8a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 18/5/16/14</p><p style='padding:0;margin:0;background-color:#000000;color:#8b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 18/5/16/15</p><p style='padding:0;margin:0;background-color:#000000;color:#8c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 18/5/16/15</p><p style='padding:0;margin:0;background-color:#000000;color:#8d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 18/5/16/15</p><p style='padding:0;margin:0;background-color:#000000;color:#8e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 18/5/16/15</p><p style='padding:0;margin:0;background-color:#000000;color:#8f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 18/5/16/15</p><p style='padding:0;margin:0;background-color:#000000;color:#900000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 18/6/16/15</p><p style='padding:0;margin:0;background-color:#000000;color:#910000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 18/6/17/15</p><p style='padding:0;margin:0;background-color:#000000;color:#920000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 19/6/17/15</p><p style='padding:0;margin:0;background-color:#000000;color:#930000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 19/6/17/15</p><p style='padding:0;margin:0;background-color:#000000;color:#940000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 19/6/17/16</p><p style='padding:0;margin:0;background-color:#000000;color:#950000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 19/6/17/16</p><p style='padding:0;margin:0;background-color:#000000;color:#960000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 19/6/17/16</p><p style='padding:0;margin:0;background-color:#000000;color:#970000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 19/6/17/16</p><p style='padding:0;margin:0;background-color:#000000;color:#980000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 19/6/17/16</p><p style='padding:0;margin:0;background-color:#000000;color:#990000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 20/6/17/16</p><p style='padding:0;margin:0;background-color:#000000;color:#9a0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 20/7/18/16</p><p style='padding:0;margin:0;background-color:#000000;color:#9b0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 20/7/18/16</p><p style='padding:0;margin:0;background-color:#000000;color:#9c0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 20/7/18/17</p><p style='padding:0;margin:0;background-color:#000000;color:#9d0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 20/7/18/17</p><p style='padding:0;margin:0;background-color:#000000;color:#9e0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 20/7/18/17</p><p style='padding:0;margin:0;background-color:#000000;color:#9f0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 20/7/18/17</p><p style='padding:0;margin:0;background-color:#000000;color:#a00000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 20/7/18/17</p><p style='padding:0;margin:0;background-color:#000000;color:#a10000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 21/7/18/17</p><p style='padding:0;margin:0;background-color:#000000;color:#a20000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 21/7/18/17</p><p style='padding:0;margin:0;background-color:#000000;color:#a30000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 21/7/19/17</p><p style='padding:0;margin:0;background-color:#000000;color:#a40000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 21/8/19/17</p><p style='padding:0;margin:0;background-color:#000000;color:#a50000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 21/8/19/18</p><p style='padding:0;margin:0;background-color:#000000;color:#a60000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 21/8/19/18</p><p style='padding:0;margin:0;background-color:#000000;color:#a70000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 21/8/19/18</p><p style='padding:0;margin:0;background-color:#000000;color:#a80000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 21/8/19/18</p><p style='padding:0;margin:0;background-color:#000000;color:#a90000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 22/8/19/18</p><p style='padding:0;margin:0;background-color:#000000;color:#aa0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 22/8/19/18</p><p style='padding:0;margin:0;background-color:#000000;color:#ab0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 22/8/20/18</p><p style='padding:0;margin:0;background-color:#000000;color:#ac0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 22/8/20/18</p><p style='padding:0;margin:0;background-color:#000000;color:#ad0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 22/9/20/19</p><p style='padding:0;margin:0;background-color:#000000;color:#ae0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 22/9/20/19</p><p style='padding:0;margin:0;background-color:#000000;color:#af0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 22/9/20/19</p><p style='padding:0;margin:0;background-color:#000000;color:#b00000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 23/9/20/19</p><p style='padding:0;margin:0;background-color:#000000;color:#b10000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 23/9/20/19</p><p style='padding:0;margin:0;background-color:#000000;color:#b20000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 23/9/20/19</p><p style='padding:0;margin:0;background-color:#000000;color:#b30000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 23/9/20/19</p><p style='padding:0;margin:0;background-color:#000000;color:#b40000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 23/9/21/19</p><p style='padding:0;margin:0;background-color:#000000;color:#b50000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 23/10/21/20</p><p style='padding:0;margin:0;background-color:#000000;color:#b60000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 23/10/21/20</p><p style='padding:0;margin:0;background-color:#000000;color:#b70000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 23/10/21/20</p><p style='padding:0;margin:0;background-color:#000000;color:#b80000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 24/10/21/20</p><p style='padding:0;margin:0;background-color:#000000;color:#b90000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 24/10/21/20</p><p style='padding:0;margin:0;background-color:#000000;color:#ba0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 24/10/21/20</p><p style='padding:0;margin:0;background-color:#000000;color:#bb0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 24/10/21/20</p><p style='padding:0;margin:0;background-color:#000000;color:#bc0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 24/10/22/20</p><p style='padding:0;margin:0;background-color:#000000;color:#bd0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 24/10/22/20</p><p style='padding:0;margin:0;background-color:#000000;color:#be0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 24/11/22/21</p><p style='padding:0;margin:0;background-color:#000000;color:#bf0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 24/11/22/21</p><p style='padding:0;margin:0;background-color:#000000;color:#c00000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 25/11/22/21</p><p style='padding:0;margin:0;background-color:#000000;color:#c10000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 25/11/22/21</p><p style='padding:0;margin:0;background-color:#000000;color:#c20000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 25/11/22/21</p><p style='padding:0;margin:0;background-color:#000000;color:#c30000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 25/11/22/21</p><p style='padding:0;margin:0;background-color:#000000;color:#c40000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 25/11/22/21</p><p style='padding:0;margin:0;background-color:#000000;color:#c50000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 25/12/23/21</p><p style='padding:0;margin:0;background-color:#000000;color:#c60000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 25/12/23/22</p><p style='padding:0;margin:0;background-color:#000000;color:#c70000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 26/12/23/22</p><p style='padding:0;margin:0;background-color:#000000;color:#c80000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 26/12/23/22</p><p style='padding:0;margin:0;background-color:#000000;color:#c90000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 26/12/23/22</p><p style='padding:0;margin:0;background-color:#000000;color:#ca0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 26/12/23/22</p><p style='padding:0;margin:0;background-color:#000000;color:#cb0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 26/12/23/22</p><p style='padding:0;margin:0;background-color:#000000;color:#cc0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 26/13/23/22</p><p style='padding:0;margin:0;background-color:#000000;color:#cd0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 26/13/24/22</p><p style='padding:0;margin:0;background-color:#000000;color:#ce0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 26/13/24/23</p><p style='padding:0;margin:0;background-color:#000000;color:#cf0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 27/13/24/23</p><p style='padding:0;margin:0;background-color:#000000;color:#d00000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 27/13/24/23</p><p style='padding:0;margin:0;background-color:#000000;color:#d10000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 27/13/24/23</p><p style='padding:0;margin:0;background-color:#000000;color:#d20000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 27/13/24/23</p><p style='padding:0;margin:0;background-color:#000000;color:#d30000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 27/14/24/23</p><p style='padding:0;margin:0;background-color:#000000;color:#d40000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 27/14/24/23</p><p style='padding:0;margin:0;background-color:#000000;color:#d50000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 27/14/24/23</p><p style='padding:0;margin:0;background-color:#000000;color:#d60000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 27/14/25/24</p><p style='padding:0;margin:0;background-color:#000000;color:#d70000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 28/14/25/24</p><p style='padding:0;margin:0;background-color:#000000;color:#d80000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 28/14/25/24</p><p style='padding:0;margin:0;background-color:#000000;color:#d90000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 28/14/25/24</p><p style='padding:0;margin:0;background-color:#000000;color:#da0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 28/15/25/24</p><p style='padding:0;margin:0;background-color:#000000;color:#db0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 28/15/25/24</p><p style='padding:0;margin:0;background-color:#000000;color:#dc0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 28/15/25/24</p><p style='padding:0;margin:0;background-color:#000000;color:#dd0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 28/15/25/24</p><p style='padding:0;margin:0;background-color:#000000;color:#de0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 29/15/26/25</p><p style='padding:0;margin:0;background-color:#000000;color:#df0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 29/15/26/25</p><p style='padding:0;margin:0;background-color:#000000;color:#e00000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 29/15/26/25</p><p style='padding:0;margin:0;background-color:#000000;color:#e10000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 29/16/26/25</p><p style='padding:0;margin:0;background-color:#000000;color:#e20000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 29/16/26/25</p><p style='padding:0;margin:0;background-color:#000000;color:#e30000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 29/16/26/25</p><p style='padding:0;margin:0;background-color:#000000;color:#e40000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 29/16/26/25</p><p style='padding:0;margin:0;background-color:#000000;color:#e50000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 29/16/26/25</p><p style='padding:0;margin:0;background-color:#000000;color:#e60000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 30/16/26/26</p><p style='padding:0;margin:0;background-color:#000000;color:#e70000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 30/17/27/26</p><p style='padding:0;margin:0;background-color:#000000;color:#e80000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 30/17/27/26</p><p style='padding:0;margin:0;background-color:#000000;color:#e90000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 30/17/27/26</p><p style='padding:0;margin:0;background-color:#000000;color:#ea0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 30/17/27/26</p><p style='padding:0;margin:0;background-color:#000000;color:#eb0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 30/17/27/26</p><p style='padding:0;margin:0;background-color:#000000;color:#ec0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 30/17/27/26</p><p style='padding:0;margin:0;background-color:#000000;color:#ed0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 30/18/27/26</p><p style='padding:0;margin:0;background-color:#000000;color:#ee0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 31/18/27/27</p><p style='padding:0;margin:0;background-color:#000000;color:#ef0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 31/18/28/27</p><p style='padding:0;margin:0;background-color:#000000;color:#f00000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 31/18/28/27</p><p style='padding:0;margin:0;background-color:#000000;color:#f10000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 31/18/28/27</p><p style='padding:0;margin:0;background-color:#000000;color:#f20000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 31/18/28/27</p><p style='padding:0;margin:0;background-color:#000000;color:#f30000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 31/19/28/27</p><p style='padding:0;margin:0;background-color:#000000;color:#f40000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 31/19/28/27</p><p style='padding:0;margin:0;background-color:#000000;color:#f50000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 32/19/28/27</p><p style='padding:0;margin:0;background-color:#000000;color:#f60000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 32/19/28/28</p><p style='padding:0;margin:0;background-color:#000000;color:#f70000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 32/19/28/28</p><p style='padding:0;margin:0;background-color:#000000;color:#f80000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 32/19/29/28</p><p style='padding:0;margin:0;background-color:#000000;color:#f90000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 32/20/29/28</p><p style='padding:0;margin:0;background-color:#000000;color:#fa0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 32/20/29/28</p><p style='padding:0;margin:0;background-color:#000000;color:#fb0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 32/20/29/28</p><p style='padding:0;margin:0;background-color:#000000;color:#fc0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 32/20/29/28</p><p style='padding:0;margin:0;background-color:#000000;color:#fd0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 33/20/29/29</p><p style='padding:0;margin:0;background-color:#000000;color:#fe0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 33/21/29/29</p><p style='padding:0;margin:0;background-color:#000000;color:#ff0000;'>aBD9 #! asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv <span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: 33/21/29/29</p></html>
@@ -0,0 +1,123 @@
1
+ require 'xmlsimple'
2
+ require 'color'
3
+ require File.dirname(__FILE__)+"/token_list"
4
+ require File.dirname(__FILE__)+'/rgb_contrast_methods'
5
+
6
+ module RMThemeGen
7
+ class ThemeGenerator < RMThemeParent
8
+
9
+ attr_reader :xmlout #a huge structure of xml that can be given to XmlSimple.xml_out() to create that actual color theme file
10
+
11
+ def initialize
12
+
13
+ @iterations = 0
14
+ @iterations = ARGV[0].to_s.to_i
15
+
16
+ puts "rgb_contrast methods -- this should create an index.html that displays samples of text and their contrast rating by the methods in contrast_methods "
17
+
18
+ #for testing purposes of the RGB contrast evaluator
19
+ f = File.open("index.html","w+")
20
+ st1="<html>"
21
+ h = Hash.new
22
+ #generate histogram
23
+ 0.times do
24
+ begin
25
+ grkcol = Color::RGB.new(@rand.rand*256,@rand.rand*256,@rand.rand*256)
26
+ brkcol = Color::RGB.new(@rand.rand*256,@rand.rand*256,@rand.rand*256)
27
+ #puts grkcol.contrast(brkcol)
28
+ end until true# grkcol.contrast(brkcol) > 0.20
29
+ key =(grkcol.contrast(brkcol)*100).to_i
30
+ h[key] = h.has_key?(key) ? h[key] += 1 : 1
31
+
32
+ end
33
+
34
+ 0.upto 0 do |f|
35
+ st1 += "<p>"+f.to_s+": "+ ( h[f.to_i] ? h[f.to_i].to_s : "nada")+"</p>"
36
+
37
+ end
38
+
39
+ 0.upto 255 do |i|
40
+ begin
41
+ # grkcol = Color::RGB.new(@rand.rand*256,@rand.rand*256,@rand.rand*256)
42
+ # brkcol = Color::RGB.new(@rand.rand*256,@rand.rand*256,@rand.rand*256)
43
+ grkcol = Color::RGB.new( 0,0,0 )
44
+ brkcol = Color::RGB.new(i,0,0)
45
+ #puts grkcol.contrast(brkcol)
46
+ end until true# grkcol.contrast(brkcol) > 0.20
47
+ st1 += "<p style='padding:0;margin:0;background-color:#{grkcol.html};color:#{brkcol.html};'>aBD9 #!#$87 asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv "
48
+ st1 += "<span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: #{(100*grkcol.diff_hue(brkcol)).to_i}/#{(100*grkcol.diff_lum(brkcol)).to_i}/#{(100*grkcol.diff_bri(brkcol)).to_i}/#{(100*grkcol.contrast(brkcol)).to_i}</p>"
49
+ # grkcol = Color::RGB.new(0xf1,0x11,0x9a)
50
+ # brkcol = Color::RGB.new(0xa0,0xf4,0x2f)
51
+ # st1 += "<p style='padding:0;margin:0;background-color:#{grkcol.html};color:#{brkcol.html};'>aBD9 #!#$87 asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv "
52
+ # st1 += "<span style='padding:0;margin:0;background-color:#ffffff;color:#000000;'>hue/lum/bri/all: #{(100*grkcol.diff_hue(brkcol)).to_i}/#{(100*grkcol.diff_lum(brkcol)).to_i}/#{(100*grkcol.diff_bri(brkcol)).to_i}/#{(100*grkcol.contrast(brkcol)).to_i}</p>"
53
+ # grkcol = Color::RGB.new(0x42,0x08,0x11)
54
+ # brkcol = Color::RGB.new(0x48,0x19,0xd0)
55
+ # st1 += "<p style='background-color:#{grkcol.html};color:#{brkcol.html};'>aBD9 #!#$87 asf asdf werpl 09890 asd78coiuqwe rasdu 987zxcv klj;lcv "
56
+ #st1 += "<span style='background-color:#ffffff;color:#000000;'>hue/lum/bri/all: #{(100*grkcol.diff_hue(brkcol)).to_i}/#{(100*grkcol.diff_lum(brkcol)).to_i}/#{(100*grkcol.diff_bri(brkcol)).to_i}/#{(100*grkcol.contrast(brkcol)).to_i}</p>"
57
+ end
58
+
59
+ st1+="</html>"
60
+ printf(f,st1)
61
+ f.close
62
+
63
+ end
64
+
65
+ def randthemename
66
+ out = " "
67
+ while out.include? " " do
68
+ out = @@adjectives[rand * @@adjectives.size]+"_"+@@nouns[rand * @@nouns.size]
69
+ end
70
+ return out
71
+ end
72
+
73
+ def randfilename(existing = "")
74
+ if existing != "" then
75
+ out=existing
76
+ else
77
+ ar=["a","b","f","h","z","1","5"]
78
+ ar.shuffle!
79
+ out =""
80
+ ar.each { |n|
81
+ out << n
82
+ }
83
+ end
84
+ return "rmt_"+out+".xml"
85
+ end
86
+
87
+
88
+ def randcolor(opts={})
89
+
90
+ df= { :r=>nil, :g=>nil, :b=>nil, #these are the usual 0..255
91
+ :bg_rgb => nil,
92
+ :min_cont => @min_cont, #if a backrgb (background color) is supplied this will be used to create a minimum contrast with it.
93
+ :max_cont => @max_cont,
94
+ :max_bright => @max_bright,
95
+ :min_bright => @min_bright,
96
+ # :bright_median => 0.5,
97
+ :shade_of_grey => false} #forces r == g == b
98
+ df = df.merge opts
99
+ df[:bg_rgb] = Color::RGB.from_html(df[:bg_rgb]) if df[:bg_rgb]
100
+ color = brightok = contok = nil;
101
+ while (!color || !brightok || !contok ) do
102
+ r = (df[:r] || rand*256)%256 #mod for robustness
103
+ g = (df[:g] || rand*256)%256
104
+ b = (df[:b] || rand*256)%256
105
+ g = b = r if df[:shade_of_grey] == true
106
+ color = Color::RGB.new(r,g,b)
107
+ #puts "bg" + @backgroundcolor if df[:bg_rgb]
108
+ #puts "color "+color.html
109
+ #puts "contrast "+color.contrast(df[:bg_rgb]).to_s if df[:bg_rgb]
110
+ contok = df[:bg_rgb] ? (df[:min_cont]..df[:max_cont]).cover?( color.contrast(df[:bg_rgb]) ) : true
111
+ #puts "contok "+contok.to_s
112
+ brightok = (df[:min_bright]..df[:max_bright]).cover?( color.to_hsl.brightness )
113
+ #puts "brightok "+brightok.to_s
114
+ end
115
+
116
+ cn = color.html
117
+ cn= cn.slice(1,cn.size)
118
+ return cn
119
+ end
120
+ end #class
121
+ end #module
122
+
123
+ l = RMThemeGen::ThemeGenerator.new
@@ -0,0 +1,321 @@
1
+ #**********************************************************************
2
+ #* *
3
+ #* RmThemeGen - a ruby script to create random, usable themes for *
4
+ #* text editors. Currently supports RubyMine 3.X.X *
5
+ #* *
6
+ #* By David Heitzman, 2011 *
7
+ #* *
8
+ #**********************************************************************
9
+
10
+ #this is a version of the software that should work with ruby 1.8.7
11
+ #originally it was written and tested for ruby 1.9.2
12
+
13
+
14
+
15
+ require 'rubygems'
16
+ require 'xmlsimple'
17
+ require 'color'
18
+ require File.dirname(__FILE__)+"/token_list"
19
+ require File.dirname(__FILE__)+'/rgb_contrast_methods'
20
+
21
+ module RMThemeGen
22
+
23
+ class ThemeGenerator < RMThemeParent
24
+
25
+ attr_reader :xmlout #a huge structure of xml that can be given to XmlSimple.xml_out() to create that actual color theme file
26
+
27
+ def initialize
28
+
29
+ @iterations = 1
30
+ @iterations = ARGV[0].to_s.to_i if ARGV[0]
31
+
32
+ puts "rmthemegen - creates theme files for use with rubymine (3.0.0 and up) "
33
+ puts "by David Heitzman 2011 "
34
+ puts (@@adjectives.size * @@nouns.size).to_s + " possible theme names "
35
+
36
+ puts "generating #{@iterations.to_s} themes into current directory. Filenames: rmt_xyz.xml "
37
+ #bold: <option name="FONT_TYPE" value="1" />
38
+ #italic: <option name="FONT_TYPE" value="2" />
39
+ #bold & italic: <option name="FONT_TYPE" value="3" />
40
+
41
+ #"EFFECT-TYPE" s:
42
+ # 3 ==> cross-out
43
+ # 1 ==> underline
44
+ # 2 == >squiggle underline
45
+ # 5 => blockey underline
46
+ # 0 ==> box around word
47
+ # -1 ==> seems to have no effect
48
+
49
+ # if the element name contains a string from the following arrays it makes that element
50
+ # eligible for bold, italic or both. This allows elements from multiple languages to all
51
+ # be exposed equally to
52
+ # underline not implemented yet. There are several font decorations in rubymine,
53
+ # probably should be used sparingly.
54
+ @italic_candidates = ["STRING", "SYMBOL", "REQUIRE"]
55
+
56
+ @bold_candidates = ["KEYWORD","RUBY_SPECIFIC_CALL", "CONSTANT", "COMMA", "PAREN","RUBY_ATTR_ACCESSOR_CALL", "RUBY_ATTR_READER_CALL" ,"RUBY_ATTR_WRITER_CALL", "IDENTIFIER"]
57
+ # with code inspections we don't color the text, we just put a line or something under it .
58
+ @code_inspections = ["ERROR","WARNING_ATTRIBUTES","DEPRECATED", "TYPO","WARNING_ATTRIBUTES", "BAD_CHARACTER",
59
+ "CUSTOM_INVALID_STRING_ESCAPE_ATTRIBUTES","ERRORS_ATTRIBUTES", "MATCHED_BRACE_ATTRIBUTES"]
60
+ @cross_out = ["DEPRECATED_ATTRIBUTES" ]
61
+
62
+ @unders = %w(-1 0 1 2 5 )
63
+ @underline_candidates = ["STRING"]
64
+ @italic_chance = 0.2
65
+ @bold_chance = 0.4
66
+ @underline_chance = 0.3
67
+ @bright_median = 0.85
68
+ @min_bright = @bright_median * 0.65
69
+ @max_bright = [@bright_median * 1.35,1.0].max
70
+
71
+ @min_bright = 0.0
72
+ @max_bright = 1.0
73
+
74
+ # if we avoid any notion of "brightness", which is an absolute quality, then we
75
+ # can make our background any color we want !
76
+
77
+ #tighter contrast spec
78
+ @cont_median = 0.85
79
+ @min_cont = @cont_median * 0.65
80
+ @max_cont = [@cont_median * 1.35,1.0].max
81
+
82
+ #broad contrast spec
83
+ @min_cont = 0.30
84
+ @max_cont = 1.0
85
+
86
+ @schemeversion = 1
87
+ @background_max_brightness = 0.14
88
+ @background_grey = true #if false, allows background to be any color, as long as it meets brightness parameter
89
+ # @foreground_min_brightness = 0.4
90
+
91
+
92
+ @backgroundcolor= randcolor( :shade_of_grey=>@background_grey, :max_bright=>@background_max_brightness)# "0"
93
+
94
+ end
95
+
96
+ def randthemename
97
+ out = " "
98
+ while out.include? " " do
99
+ out = @@adjectives[rand * @@adjectives.size]+"_"+@@nouns[rand * @@nouns.size]
100
+ end
101
+ return out
102
+ end
103
+
104
+ def randfilename(existing = "")
105
+ if existing != "" then
106
+ out=existing
107
+ else
108
+ ar=["a","b","f","h","z","1","5"]
109
+ ar.shuffle!
110
+ out =""
111
+ ar.each { |n|
112
+ out << n
113
+ }
114
+ end
115
+ return "rmt_"+out+".xml"
116
+ end
117
+
118
+
119
+ def randcolor(opts={})
120
+
121
+ df= { :r=>nil, :g=>nil, :b=>nil, #these are the usual 0..255
122
+ :bg_rgb => nil,
123
+ :min_cont => @min_cont, #if a backrgb (background color) is supplied this will be used to create a minimum contrast with it.
124
+ :max_cont => @max_cont,
125
+ :max_bright => @max_bright,
126
+ :min_bright => @min_bright,
127
+ # :bright_median => 0.5,
128
+ :shade_of_grey => false} #forces r == g == b
129
+ df = df.merge opts
130
+ df[:bg_rgb] = Color::RGB.from_html(df[:bg_rgb]) if df[:bg_rgb]
131
+ color = brightok = contok = nil;
132
+ while (!color || !brightok || !contok ) do
133
+ r = (df[:r] || rand*256)%256 #mod for robustness
134
+ g = (df[:g] || rand*256)%256
135
+ b = (df[:b] || rand*256)%256
136
+ g = b = r if df[:shade_of_grey] == true
137
+ color = Color::RGB.new(r,g,b)
138
+ #puts "bg" + @backgroundcolor if df[:bg_rgb]
139
+ #puts "color "+color.html
140
+ #puts "contrast "+color.contrast(df[:bg_rgb]).to_s if df[:bg_rgb]
141
+ contok = df[:bg_rgb] ? (df[:min_cont]..df[:max_cont]).include?( color.contrast(df[:bg_rgb]) ) : true
142
+ #puts "contok "+contok.to_s
143
+ brightok = (df[:min_bright]..df[:max_bright]).include?( color.to_hsl.brightness )
144
+ #puts "brightok "+brightok.to_s
145
+ end
146
+
147
+ cn = color.html
148
+ cn= cn.slice(1,cn.size)
149
+ return cn
150
+ end
151
+
152
+ def set_doc_colors
153
+ newopt = []
154
+ @@doc_color_keys.each do |o|
155
+ if o == "CARET_ROW_COLOR" then
156
+ @caret_row_color = randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>0.05,:max_cont => 0.08,:shade_of_grey=>false)
157
+ newopt << {:name=> o, :value => @caret_row_color }
158
+ elsif o.include?("SELECTION_BACKGROUND") then
159
+ @selection_background = randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>0.07,:max_cont => 0.09,:shade_of_grey=>false)
160
+ newopt << {:name=> o, :value => @selection_background }
161
+ elsif o.include?("SELECTION_FOREGROUND") then
162
+ newopt << {:name=> o }
163
+ elsif o.include?("GUTTER_BACKGROUND") then
164
+ newopt << {:name=> o, :value => @backgroundcolor }
165
+ elsif o.include?("CARET_COLOR") then
166
+ newopt << {:name=> o, :value => randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.30,:max_cont=>0.7,:shade_of_grey=>true) }
167
+
168
+ elsif o.include?("READONLY_BACKGROUND") then
169
+ newopt << {:name=> o, :value => randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.03,:max_cont=>0.09,:shade_of_grey=>@background_grey) }
170
+ elsif o.include?("READONLY_FRAGMENT_BACKGROUND") then
171
+ newopt << {:name=> o, :value => randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.03,:max_cont=>0.09,:shade_of_grey=>@background_grey) }
172
+
173
+ else
174
+ # puts "bgc"+@backgroundcolor
175
+ newopt << {:name=> o, :value => randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>@min_cont,:max_cont=>@max_cont,:shade_of_grey=>@background_grey).to_s }
176
+ end
177
+ end
178
+
179
+ @xmlout[:scheme][0][:colors][0][:option] = newopt
180
+ #Kernel.exit
181
+ end
182
+
183
+ def set_doc_options
184
+ newopt = []
185
+ newopt << {:name => "LINE_SPACING",:value=>'1.0' } #:value=>'1.3' works all right
186
+ newopt << {:name => "EDITOR_FONT_SIZE",:value => "16"} #:value = "14" is a safe default if you want to specify something
187
+ newopt << {:name => "EDITOR_FONT_NAME",:value => "DejaVu Sans Mono" }
188
+ @xmlout[:scheme][0][:option] = newopt
189
+ end
190
+
191
+ def set_element_colors
192
+ newopt = []
193
+ newopt[0]={:option=>[]}
194
+ ################ set the fonttype
195
+ @@element_keys.each do |o|
196
+ fonttype = 0 #bold: 1, #italic: 2, bold & italic: 3
197
+ @bold_candidates.each do |bc|
198
+ if o.include? bc.to_s then
199
+ if rand < @bold_chance then fonttype = 1 end
200
+ end
201
+ end
202
+ @italic_candidates.each do |ic|
203
+ if o.include? ic.to_s then
204
+ if rand < @italic_chance then fonttype += 2 end
205
+ end
206
+ end
207
+ #this block is for setting up special cases for the new color - ie, comments darker,
208
+ #reserved words are yellowins, whatever
209
+ fonttype = "" unless fonttype.is_a? Fixnum
210
+ case
211
+ when o.include?( "COMMENT")
212
+ #comments -- this is done so that COMMENTED texts skew toward darker shades.
213
+ newcol = randcolor(:bg_rgb=>@backgroundcolor, :min_cont=>0.25, :max_cont => 0.27)
214
+ optblj=[{:option=>[ {:name => "FOREGROUND", :value => newcol},
215
+ # {:name => "BACKGROUND", :value =>@backgroundcolor},
216
+ {:name => "BACKGROUND"},
217
+ {:name => "EFFECT_COLOR" },{:name => "FONT_TYPE", :value=>fonttype.to_s },
218
+ {:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor) }]}]
219
+ #default text and background for whole document
220
+ when ["TEXT","FOLDED_TEXT_ATTRIBUTES"].include?( o.to_s)
221
+ newcol = randcolor(:bg_rgb=>@backgroundcolor )
222
+ optblj=[{:option=>[ {:name => "FOREGROUND", :value => newcol},
223
+ {:name => "BACKGROUND", :value =>@backgroundcolor},
224
+ {:name => "EFFECT_COLOR" },{:name => "FONT_TYPE", :value=>fonttype.to_s },
225
+ {:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor)}]}]
226
+ when @code_inspections.include?(o.to_s)
227
+ newcol = randcolor(:bg_rgb=>@backgroundcolor)
228
+ optblj=[{:option=>[ {:name => "FOREGROUND"},
229
+ {:name => "BACKGROUND"},
230
+ {:name => "EFFECT_COLOR", :value =>newcol},{:name => "FONT_TYPE", :value=>fonttype.to_s },
231
+ {:name => "EFFECT_TYPE", :value=>@unders.shuffle[0].to_s },
232
+ {:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor) }]}]
233
+ when @cross_out.include?(o.to_s)
234
+ newcol = randcolor(:bg_rgb=>@backgroundcolor)
235
+ optblj=[{:option=>[ {:name => "FOREGROUND"},
236
+ {:name => "BACKGROUND"},
237
+ {:name => "EFFECT_COLOR", :value =>newcol},{:name => "FONT_TYPE", :value=>fonttype.to_s },
238
+ {:name => "EFFECT_TYPE", :value=>"3" },
239
+ {:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor)}]}]
240
+ else
241
+ newcol=randcolor(:bg_rgb=>@backgroundcolor)
242
+ optblj=[{:option=>[ {:name => "FOREGROUND", :value => newcol},
243
+ {:name => "BACKGROUND"},
244
+ {:name => "EFFECT_COLOR" },{:name => "FONT_TYPE", :value=>fonttype.to_s },
245
+ {:name => "ERROR_STRIPE_COLOR", :value =>randcolor(:bg_rgb=>@backgroundcolor) }]}]
246
+ end
247
+ newopt[0][:option] << {:name =>o.to_s , :value=>optblj}
248
+ end
249
+ @xmlout[:scheme][0][:attributes] = newopt
250
+ end
251
+
252
+ def make_geany_files
253
+ rantm = randthemename
254
+ geanydir ="geany_"+rantm
255
+ Dir.mkdir(geanydir)
256
+ f=File.new(geanydir+"/filetypes.xml","w+")
257
+ f.puts('[styling]')
258
+ #these are for php, html, sgml, xml
259
+ @@geany_tokens.each do |t|
260
+ # foreground;background;bold;italic
261
+ if t.upcase.include? "COMMENT" then
262
+ f.puts(t+"=0x"+randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>0.12, :max_cont=>0.22)+";0x"+@backgroundcolor+";"+"false;false")
263
+ else
264
+ f.puts(t+"=0x"+randcolor(:bg_rgb=>@backgroundcolor)+";0x"+@backgroundcolor+";false"+";false")
265
+ end
266
+ end
267
+ f.puts(@@geany_filetypes_post)
268
+ f.close
269
+
270
+ geanydir ="geany_"+rantm
271
+ f=File.new(geanydir+"/filetypes.ruby","w+")
272
+ f.puts('[styling]')
273
+ @@geany_ruby_tokens.each do |t|
274
+ # foreground;background;bold;italic
275
+ if t.upcase.include? "COMMENT" then
276
+ f.puts(t+"=0x"+randcolor(:bg_rgb=>@backgroundcolor,:min_cont=>0.12, :max_cont=>0.22)+";0x"+@backgroundcolor+";"+"false;false")
277
+ else
278
+ f.puts(t+"=0x"+randcolor(:bg_rgb=>@backgroundcolor)+";0x"+@backgroundcolor+";false"+";false")
279
+ end
280
+ end
281
+ f.puts(@@geany_filetypes_post)
282
+ f.close
283
+ end
284
+
285
+ def make_theme_files
286
+ # @default_fg = @backgroundcolor
287
+ # puts "backgroundcolor = "+@backgroundcolor
288
+ @iterations.times do
289
+ @backgroundcolor= randcolor(:shade_of_grey=>@background_grey, :max_bright=>@background_max_brightness)# "0"
290
+ @schemename = randthemename
291
+ @xmlout = {:scheme=>
292
+ [{:name => @schemename,:version=>@schemeversion,:parent_scheme=>"Default",
293
+ :option =>[{:name=>"pencil length",:value=>"48 cm"},{:name => "Doowop level", :value=>"medium"}],
294
+ :colors => [{ :option => [{:name=>"foreground",:value => "yellow"},{:name=>"background",:value => "black"} ] }],
295
+ :attributes => [{:option=>[
296
+ {:name=>"2ABSTRACT_CLASS_NAME_ATTRIBUTES", :value=>[{:option=>{:name=>"foreground",:value=>"red"}}] },
297
+ {:name=>"4ABSTRACT_CLASS_NAME_ATTRIBUTES", :value=>[{:option=>{:name=>"foreground",:value=>"red"}}] }
298
+ ]
299
+ }]
300
+ }]
301
+ }
302
+ @savefile = randfilename(@schemename)
303
+ @outf = File.new(@savefile, "w+")
304
+
305
+ set_doc_options
306
+ set_doc_colors
307
+ set_element_colors
308
+ # @outf.puts @@mybanner
309
+ XmlSimple.xml_out(@xmlout,{:keeproot=>true,:xmldeclaration=>true,:outputfile=> @outf, :rootname => "scheme"})
310
+ puts "outputting to file "+@savefile
311
+ @outf.close
312
+ # puts "making geany directory "+make_geany_files.to_s
313
+ end
314
+ end
315
+
316
+
317
+ end #class
318
+ end #module
319
+
320
+ l = RMThemeGen::ThemeGenerator.new
321
+ l.make_theme_files
@@ -1,3 +1,3 @@
1
1
  module Rmthemegen
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.6"
3
3
  end
data/rmthemegen.gemspec CHANGED
@@ -4,7 +4,7 @@ require "rmthemegen/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "rmthemegen"
7
- s.version = "0.0.5"
7
+ s.version = "0.0.6"
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.authors = ["David Heitzman"]
10
10
  s.email = ["evolvemeans@gmail.com"]
@@ -0,0 +1,9 @@
1
+ require '../lib/rmthemegen/token_list.rb'
2
+ require '../lib/rmthemegen/rmthemegen.rb'
3
+
4
+ describe "randthemename" do
5
+ it "should deliver a random filename " do
6
+ rmtg = RMThemeGen.new
7
+ rmtg.randthemename.should != ""
8
+ end
9
+ end
metadata CHANGED
@@ -1,8 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rmthemegen
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 19
4
5
  prerelease:
5
- version: 0.0.5
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 6
10
+ version: 0.0.6
6
11
  platform: ruby
7
12
  authors:
8
13
  - David Heitzman
@@ -10,7 +15,7 @@ autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
17
 
13
- date: 2011-05-02 00:00:00 -05:00
18
+ date: 2011-05-08 00:00:00 -05:00
14
19
  default_executable:
15
20
  dependencies: []
16
21
 
@@ -30,11 +35,15 @@ files:
30
35
  - Rakefile
31
36
  - lib/rmthemegen.rb
32
37
  - lib/rmthemegen/geany_fix.rb
38
+ - lib/rmthemegen/index.html
33
39
  - lib/rmthemegen/rgb_contrast_methods.rb
40
+ - lib/rmthemegen/rgb_contrast_test.rb
34
41
  - lib/rmthemegen/rmthemegen.rb
42
+ - lib/rmthemegen/rmthemegen_187.rb
35
43
  - lib/rmthemegen/token_list.rb
36
44
  - lib/rmthemegen/version.rb
37
45
  - rmthemegen.gemspec
46
+ - test/rmthemegen_spec.rb
38
47
  has_rdoc: true
39
48
  homepage: http://aptifuge.com
40
49
  licenses: []
@@ -49,17 +58,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
49
58
  requirements:
50
59
  - - ">="
51
60
  - !ruby/object:Gem::Version
61
+ hash: 3
62
+ segments:
63
+ - 0
52
64
  version: "0"
53
65
  required_rubygems_version: !ruby/object:Gem::Requirement
54
66
  none: false
55
67
  requirements:
56
68
  - - ">="
57
69
  - !ruby/object:Gem::Version
70
+ hash: 3
71
+ segments:
72
+ - 0
58
73
  version: "0"
59
74
  requirements: []
60
75
 
61
76
  rubyforge_project: rmthemegen
62
- rubygems_version: 1.5.2
77
+ rubygems_version: 1.6.2
63
78
  signing_key:
64
79
  specification_version: 3
65
80
  summary: Generates RubyMine >= 3.0 editor color themes