[cl-colors-cvs] r1 -

tpapp at common-lisp.net tpapp at common-lisp.net
Mon Aug 13 11:52:22 UTC 2007


Author: tpapp
Date: Mon Aug 13 07:52:20 2007
New Revision: 1

Added:
   Makefile
   README
   cl-colors.asd
   colornames.lisp
   colors.lisp
   package.lisp
   parse-x11.lisp
   test.lisp
Log:
initial import

Added: Makefile
==============================================================================
--- (empty file)
+++ Makefile	Mon Aug 13 07:52:20 2007
@@ -0,0 +1,8 @@
+## note: this works on my system, you don't need to run it because the
+## distribution contains the generated file
+
+SBCL=/usr/bin/sbcl
+
+colornames.lisp: /usr/share/X11/rgb.txt parse-x11.lisp
+	rm -f colornames.lisp
+	$(SBCL) --load parse-x11.lisp --eval '(quit)'

Added: README
==============================================================================
--- (empty file)
+++ README	Mon Aug 13 07:52:20 2007
@@ -0,0 +1,6 @@
+The purpose of this simple package to provide named colors that can be
+used by other packages.  Each color is stored in a structure, and
+named colors are defined as constants (eg +black+, +blue+, +slateblue+
+etc).  Currently, the colors were converted from X11's rgb.txt, but
+may be expanded in the future.  The package of course doesn't depend
+on X11, the converted file is included.

Added: cl-colors.asd
==============================================================================
--- (empty file)
+++ cl-colors.asd	Mon Aug 13 07:52:20 2007
@@ -0,0 +1,9 @@
+(defsystem cl-colors
+  :description "Simple color library for Common Lisp"
+  :version "0.1"
+  :author "Tamas K Papp"
+  :license "GPL"
+  :components ((:file "package")
+               (:file "colors" :depends-on ("package"))
+	       (:file "colornames" :depends-on ("colors")))
+  :depends-on (:cl-utilities))

Added: colornames.lisp
==============================================================================
--- (empty file)
+++ colornames.lisp	Mon Aug 13 07:52:20 2007
@@ -0,0 +1,670 @@
+;;;; This file was generated automatically by parse-x11.lisp
+;;;; Please do not edit directly.
+(in-package :cl-colors)
+(defmacro define-rgb-color (name red green blue)
+   `(progn
+      (defconstant ,name (if (boundp ',name)
+                             (symbol-value ',name)
+                             (make-instance 'rgb
+                              :red ,red
+                              :green ,green
+                              :blue ,blue)))
+      (export ',name)))
+(define-rgb-color +snow+ 1.0d0 0.9803921568627451d0 0.9803921568627451d0)
+(define-rgb-color +ghostwhite+ 0.9725490196078431d0 0.9725490196078431d0 1.0d0)
+(define-rgb-color +whitesmoke+ 0.9607843137254902d0 0.9607843137254902d0 0.9607843137254902d0)
+(define-rgb-color +gainsboro+ 0.8627450980392157d0 0.8627450980392157d0 0.8627450980392157d0)
+(define-rgb-color +floralwhite+ 1.0d0 0.9803921568627451d0 0.9411764705882353d0)
+(define-rgb-color +oldlace+ 0.9921568627450981d0 0.9607843137254902d0 0.9019607843137255d0)
+(define-rgb-color +linen+ 0.9803921568627451d0 0.9411764705882353d0 0.9019607843137255d0)
+(define-rgb-color +antiquewhite+ 0.9803921568627451d0 0.9215686274509803d0 0.8431372549019608d0)
+(define-rgb-color +papayawhip+ 1.0d0 0.9372549019607843d0 0.8352941176470589d0)
+(define-rgb-color +blanchedalmond+ 1.0d0 0.9215686274509803d0 0.803921568627451d0)
+(define-rgb-color +bisque+ 1.0d0 0.8941176470588236d0 0.7686274509803922d0)
+(define-rgb-color +peachpuff+ 1.0d0 0.8549019607843137d0 0.7254901960784313d0)
+(define-rgb-color +navajowhite+ 1.0d0 0.8705882352941177d0 0.6784313725490196d0)
+(define-rgb-color +moccasin+ 1.0d0 0.8941176470588236d0 0.7098039215686275d0)
+(define-rgb-color +cornsilk+ 1.0d0 0.9725490196078431d0 0.8627450980392157d0)
+(define-rgb-color +ivory+ 1.0d0 1.0d0 0.9411764705882353d0)
+(define-rgb-color +lemonchiffon+ 1.0d0 0.9803921568627451d0 0.803921568627451d0)
+(define-rgb-color +seashell+ 1.0d0 0.9607843137254902d0 0.9333333333333333d0)
+(define-rgb-color +honeydew+ 0.9411764705882353d0 1.0d0 0.9411764705882353d0)
+(define-rgb-color +mintcream+ 0.9607843137254902d0 1.0d0 0.9803921568627451d0)
+(define-rgb-color +azure+ 0.9411764705882353d0 1.0d0 1.0d0)
+(define-rgb-color +aliceblue+ 0.9411764705882353d0 0.9725490196078431d0 1.0d0)
+(define-rgb-color +lavender+ 0.9019607843137255d0 0.9019607843137255d0 0.9803921568627451d0)
+(define-rgb-color +lavenderblush+ 1.0d0 0.9411764705882353d0 0.9607843137254902d0)
+(define-rgb-color +mistyrose+ 1.0d0 0.8941176470588236d0 0.8823529411764706d0)
+(define-rgb-color +white+ 1.0d0 1.0d0 1.0d0)
+(define-rgb-color +black+ 0.0d0 0.0d0 0.0d0)
+(define-rgb-color +darkslategray+ 0.1843137254901961d0 0.30980392156862746d0 0.30980392156862746d0)
+(define-rgb-color +darkslategrey+ 0.1843137254901961d0 0.30980392156862746d0 0.30980392156862746d0)
+(define-rgb-color +dimgray+ 0.4117647058823529d0 0.4117647058823529d0 0.4117647058823529d0)
+(define-rgb-color +dimgrey+ 0.4117647058823529d0 0.4117647058823529d0 0.4117647058823529d0)
+(define-rgb-color +slategray+ 0.4392156862745098d0 0.5019607843137255d0 0.5647058823529412d0)
+(define-rgb-color +slategrey+ 0.4392156862745098d0 0.5019607843137255d0 0.5647058823529412d0)
+(define-rgb-color +lightslategray+ 0.4666666666666667d0 0.5333333333333333d0 0.6d0)
+(define-rgb-color +lightslategrey+ 0.4666666666666667d0 0.5333333333333333d0 0.6d0)
+(define-rgb-color +gray+ 0.7450980392156863d0 0.7450980392156863d0 0.7450980392156863d0)
+(define-rgb-color +grey+ 0.7450980392156863d0 0.7450980392156863d0 0.7450980392156863d0)
+(define-rgb-color +lightgrey+ 0.8274509803921568d0 0.8274509803921568d0 0.8274509803921568d0)
+(define-rgb-color +lightgray+ 0.8274509803921568d0 0.8274509803921568d0 0.8274509803921568d0)
+(define-rgb-color +midnightblue+ 0.09803921568627451d0 0.09803921568627451d0 0.4392156862745098d0)
+(define-rgb-color +navy+ 0.0d0 0.0d0 0.5019607843137255d0)
+(define-rgb-color +navyblue+ 0.0d0 0.0d0 0.5019607843137255d0)
+(define-rgb-color +cornflowerblue+ 0.39215686274509803d0 0.5843137254901961d0 0.9294117647058824d0)
+(define-rgb-color +darkslateblue+ 0.2823529411764706d0 0.23921568627450981d0 0.5450980392156862d0)
+(define-rgb-color +slateblue+ 0.41568627450980394d0 0.35294117647058826d0 0.803921568627451d0)
+(define-rgb-color +mediumslateblue+ 0.4823529411764706d0 0.40784313725490196d0 0.9333333333333333d0)
+(define-rgb-color +lightslateblue+ 0.5176470588235295d0 0.4392156862745098d0 1.0d0)
+(define-rgb-color +mediumblue+ 0.0d0 0.0d0 0.803921568627451d0)
+(define-rgb-color +royalblue+ 0.2549019607843137d0 0.4117647058823529d0 0.8823529411764706d0)
+(define-rgb-color +blue+ 0.0d0 0.0d0 1.0d0)
+(define-rgb-color +dodgerblue+ 0.11764705882352941d0 0.5647058823529412d0 1.0d0)
+(define-rgb-color +deepskyblue+ 0.0d0 0.7490196078431373d0 1.0d0)
+(define-rgb-color +skyblue+ 0.5294117647058824d0 0.807843137254902d0 0.9215686274509803d0)
+(define-rgb-color +lightskyblue+ 0.5294117647058824d0 0.807843137254902d0 0.9803921568627451d0)
+(define-rgb-color +steelblue+ 0.27450980392156865d0 0.5098039215686274d0 0.7058823529411765d0)
+(define-rgb-color +lightsteelblue+ 0.6901960784313725d0 0.7686274509803922d0 0.8705882352941177d0)
+(define-rgb-color +lightblue+ 0.6784313725490196d0 0.8470588235294118d0 0.9019607843137255d0)
+(define-rgb-color +powderblue+ 0.6901960784313725d0 0.8784313725490196d0 0.9019607843137255d0)
+(define-rgb-color +paleturquoise+ 0.6862745098039216d0 0.9333333333333333d0 0.9333333333333333d0)
+(define-rgb-color +darkturquoise+ 0.0d0 0.807843137254902d0 0.8196078431372549d0)
+(define-rgb-color +mediumturquoise+ 0.2823529411764706d0 0.8196078431372549d0 0.8d0)
+(define-rgb-color +turquoise+ 0.25098039215686274d0 0.8784313725490196d0 0.8156862745098039d0)
+(define-rgb-color +cyan+ 0.0d0 1.0d0 1.0d0)
+(define-rgb-color +lightcyan+ 0.8784313725490196d0 1.0d0 1.0d0)
+(define-rgb-color +cadetblue+ 0.37254901960784315d0 0.6196078431372549d0 0.6274509803921569d0)
+(define-rgb-color +mediumaquamarine+ 0.4d0 0.803921568627451d0 0.6666666666666666d0)
+(define-rgb-color +aquamarine+ 0.4980392156862745d0 1.0d0 0.8313725490196079d0)
+(define-rgb-color +darkgreen+ 0.0d0 0.39215686274509803d0 0.0d0)
+(define-rgb-color +darkolivegreen+ 0.3333333333333333d0 0.4196078431372549d0 0.1843137254901961d0)
+(define-rgb-color +darkseagreen+ 0.5607843137254902d0 0.7372549019607844d0 0.5607843137254902d0)
+(define-rgb-color +seagreen+ 0.1803921568627451d0 0.5450980392156862d0 0.3411764705882353d0)
+(define-rgb-color +mediumseagreen+ 0.23529411764705882d0 0.7019607843137254d0 0.44313725490196076d0)
+(define-rgb-color +lightseagreen+ 0.12549019607843137d0 0.6980392156862745d0 0.6666666666666666d0)
+(define-rgb-color +palegreen+ 0.596078431372549d0 0.984313725490196d0 0.596078431372549d0)
+(define-rgb-color +springgreen+ 0.0d0 1.0d0 0.4980392156862745d0)
+(define-rgb-color +lawngreen+ 0.48627450980392156d0 0.9882352941176471d0 0.0d0)
+(define-rgb-color +green+ 0.0d0 1.0d0 0.0d0)
+(define-rgb-color +chartreuse+ 0.4980392156862745d0 1.0d0 0.0d0)
+(define-rgb-color +mediumspringgreen+ 0.0d0 0.9803921568627451d0 0.6039215686274509d0)
+(define-rgb-color +greenyellow+ 0.6784313725490196d0 1.0d0 0.1843137254901961d0)
+(define-rgb-color +limegreen+ 0.19607843137254902d0 0.803921568627451d0 0.19607843137254902d0)
+(define-rgb-color +yellowgreen+ 0.6039215686274509d0 0.803921568627451d0 0.19607843137254902d0)
+(define-rgb-color +forestgreen+ 0.13333333333333333d0 0.5450980392156862d0 0.13333333333333333d0)
+(define-rgb-color +olivedrab+ 0.4196078431372549d0 0.5568627450980392d0 0.13725490196078433d0)
+(define-rgb-color +darkkhaki+ 0.7411764705882353d0 0.7176470588235294d0 0.4196078431372549d0)
+(define-rgb-color +khaki+ 0.9411764705882353d0 0.9019607843137255d0 0.5490196078431373d0)
+(define-rgb-color +palegoldenrod+ 0.9333333333333333d0 0.9098039215686274d0 0.6666666666666666d0)
+(define-rgb-color +lightgoldenrodyellow+ 0.9803921568627451d0 0.9803921568627451d0 0.8235294117647058d0)
+(define-rgb-color +lightyellow+ 1.0d0 1.0d0 0.8784313725490196d0)
+(define-rgb-color +yellow+ 1.0d0 1.0d0 0.0d0)
+(define-rgb-color +gold+ 1.0d0 0.8431372549019608d0 0.0d0)
+(define-rgb-color +lightgoldenrod+ 0.9333333333333333d0 0.8666666666666667d0 0.5098039215686274d0)
+(define-rgb-color +goldenrod+ 0.8549019607843137d0 0.6470588235294118d0 0.12549019607843137d0)
+(define-rgb-color +darkgoldenrod+ 0.7215686274509804d0 0.5254901960784314d0 0.043137254901960784d0)
+(define-rgb-color +rosybrown+ 0.7372549019607844d0 0.5607843137254902d0 0.5607843137254902d0)
+(define-rgb-color +indianred+ 0.803921568627451d0 0.3607843137254902d0 0.3607843137254902d0)
+(define-rgb-color +saddlebrown+ 0.5450980392156862d0 0.27058823529411763d0 0.07450980392156863d0)
+(define-rgb-color +sienna+ 0.6274509803921569d0 0.3215686274509804d0 0.17647058823529413d0)
+(define-rgb-color +peru+ 0.803921568627451d0 0.5215686274509804d0 0.24705882352941178d0)
+(define-rgb-color +burlywood+ 0.8705882352941177d0 0.7215686274509804d0 0.5294117647058824d0)
+(define-rgb-color +beige+ 0.9607843137254902d0 0.9607843137254902d0 0.8627450980392157d0)
+(define-rgb-color +wheat+ 0.9607843137254902d0 0.8705882352941177d0 0.7019607843137254d0)
+(define-rgb-color +sandybrown+ 0.9568627450980393d0 0.6431372549019608d0 0.3764705882352941d0)
+(define-rgb-color +tan+ 0.8235294117647058d0 0.7058823529411765d0 0.5490196078431373d0)
+(define-rgb-color +chocolate+ 0.8235294117647058d0 0.4117647058823529d0 0.11764705882352941d0)
+(define-rgb-color +firebrick+ 0.6980392156862745d0 0.13333333333333333d0 0.13333333333333333d0)
+(define-rgb-color +brown+ 0.6470588235294118d0 0.16470588235294117d0 0.16470588235294117d0)
+(define-rgb-color +darksalmon+ 0.9137254901960784d0 0.5882352941176471d0 0.47843137254901963d0)
+(define-rgb-color +salmon+ 0.9803921568627451d0 0.5019607843137255d0 0.4470588235294118d0)
+(define-rgb-color +lightsalmon+ 1.0d0 0.6274509803921569d0 0.47843137254901963d0)
+(define-rgb-color +orange+ 1.0d0 0.6470588235294118d0 0.0d0)
+(define-rgb-color +darkorange+ 1.0d0 0.5490196078431373d0 0.0d0)
+(define-rgb-color +coral+ 1.0d0 0.4980392156862745d0 0.3137254901960784d0)
+(define-rgb-color +lightcoral+ 0.9411764705882353d0 0.5019607843137255d0 0.5019607843137255d0)
+(define-rgb-color +tomato+ 1.0d0 0.38823529411764707d0 0.2784313725490196d0)
+(define-rgb-color +orangered+ 1.0d0 0.27058823529411763d0 0.0d0)
+(define-rgb-color +red+ 1.0d0 0.0d0 0.0d0)
+(define-rgb-color +hotpink+ 1.0d0 0.4117647058823529d0 0.7058823529411765d0)
+(define-rgb-color +deeppink+ 1.0d0 0.0784313725490196d0 0.5764705882352941d0)
+(define-rgb-color +pink+ 1.0d0 0.7529411764705882d0 0.796078431372549d0)
+(define-rgb-color +lightpink+ 1.0d0 0.7137254901960784d0 0.7568627450980392d0)
+(define-rgb-color +palevioletred+ 0.8588235294117647d0 0.4392156862745098d0 0.5764705882352941d0)
+(define-rgb-color +maroon+ 0.6901960784313725d0 0.18823529411764706d0 0.3764705882352941d0)
+(define-rgb-color +mediumvioletred+ 0.7803921568627451d0 0.08235294117647059d0 0.5215686274509804d0)
+(define-rgb-color +violetred+ 0.8156862745098039d0 0.12549019607843137d0 0.5647058823529412d0)
+(define-rgb-color +magenta+ 1.0d0 0.0d0 1.0d0)
+(define-rgb-color +violet+ 0.9333333333333333d0 0.5098039215686274d0 0.9333333333333333d0)
+(define-rgb-color +plum+ 0.8666666666666667d0 0.6274509803921569d0 0.8666666666666667d0)
+(define-rgb-color +orchid+ 0.8549019607843137d0 0.4392156862745098d0 0.8392156862745098d0)
+(define-rgb-color +mediumorchid+ 0.7294117647058823d0 0.3333333333333333d0 0.8274509803921568d0)
+(define-rgb-color +darkorchid+ 0.6d0 0.19607843137254902d0 0.8d0)
+(define-rgb-color +darkviolet+ 0.5803921568627451d0 0.0d0 0.8274509803921568d0)
+(define-rgb-color +blueviolet+ 0.5411764705882353d0 0.16862745098039217d0 0.8862745098039215d0)
+(define-rgb-color +purple+ 0.6274509803921569d0 0.12549019607843137d0 0.9411764705882353d0)
+(define-rgb-color +mediumpurple+ 0.5764705882352941d0 0.4392156862745098d0 0.8588235294117647d0)
+(define-rgb-color +thistle+ 0.8470588235294118d0 0.7490196078431373d0 0.8470588235294118d0)
+(define-rgb-color +snow1+ 1.0d0 0.9803921568627451d0 0.9803921568627451d0)
+(define-rgb-color +snow2+ 0.9333333333333333d0 0.9137254901960784d0 0.9137254901960784d0)
+(define-rgb-color +snow3+ 0.803921568627451d0 0.788235294117647d0 0.788235294117647d0)
+(define-rgb-color +snow4+ 0.5450980392156862d0 0.5372549019607843d0 0.5372549019607843d0)
+(define-rgb-color +seashell1+ 1.0d0 0.9607843137254902d0 0.9333333333333333d0)
+(define-rgb-color +seashell2+ 0.9333333333333333d0 0.8980392156862745d0 0.8705882352941177d0)
+(define-rgb-color +seashell3+ 0.803921568627451d0 0.7725490196078432d0 0.7490196078431373d0)
+(define-rgb-color +seashell4+ 0.5450980392156862d0 0.5254901960784314d0 0.5098039215686274d0)
+(define-rgb-color +antiquewhite1+ 1.0d0 0.9372549019607843d0 0.8588235294117647d0)
+(define-rgb-color +antiquewhite2+ 0.9333333333333333d0 0.8745098039215686d0 0.8d0)
+(define-rgb-color +antiquewhite3+ 0.803921568627451d0 0.7529411764705882d0 0.6901960784313725d0)
+(define-rgb-color +antiquewhite4+ 0.5450980392156862d0 0.5137254901960784d0 0.47058823529411764d0)
+(define-rgb-color +bisque1+ 1.0d0 0.8941176470588236d0 0.7686274509803922d0)
+(define-rgb-color +bisque2+ 0.9333333333333333d0 0.8352941176470589d0 0.7176470588235294d0)
+(define-rgb-color +bisque3+ 0.803921568627451d0 0.7176470588235294d0 0.6196078431372549d0)
+(define-rgb-color +bisque4+ 0.5450980392156862d0 0.49019607843137253d0 0.4196078431372549d0)
+(define-rgb-color +peachpuff1+ 1.0d0 0.8549019607843137d0 0.7254901960784313d0)
+(define-rgb-color +peachpuff2+ 0.9333333333333333d0 0.796078431372549d0 0.6784313725490196d0)
+(define-rgb-color +peachpuff3+ 0.803921568627451d0 0.6862745098039216d0 0.5843137254901961d0)
+(define-rgb-color +peachpuff4+ 0.5450980392156862d0 0.4666666666666667d0 0.396078431372549d0)
+(define-rgb-color +navajowhite1+ 1.0d0 0.8705882352941177d0 0.6784313725490196d0)
+(define-rgb-color +navajowhite2+ 0.9333333333333333d0 0.8117647058823529d0 0.6313725490196078d0)
+(define-rgb-color +navajowhite3+ 0.803921568627451d0 0.7019607843137254d0 0.5450980392156862d0)
+(define-rgb-color +navajowhite4+ 0.5450980392156862d0 0.4745098039215686d0 0.3686274509803922d0)
+(define-rgb-color +lemonchiffon1+ 1.0d0 0.9803921568627451d0 0.803921568627451d0)
+(define-rgb-color +lemonchiffon2+ 0.9333333333333333d0 0.9137254901960784d0 0.7490196078431373d0)
+(define-rgb-color +lemonchiffon3+ 0.803921568627451d0 0.788235294117647d0 0.6470588235294118d0)
+(define-rgb-color +lemonchiffon4+ 0.5450980392156862d0 0.5372549019607843d0 0.4392156862745098d0)
+(define-rgb-color +cornsilk1+ 1.0d0 0.9725490196078431d0 0.8627450980392157d0)
+(define-rgb-color +cornsilk2+ 0.9333333333333333d0 0.9098039215686274d0 0.803921568627451d0)
+(define-rgb-color +cornsilk3+ 0.803921568627451d0 0.7843137254901961d0 0.6941176470588235d0)
+(define-rgb-color +cornsilk4+ 0.5450980392156862d0 0.5333333333333333d0 0.47058823529411764d0)
+(define-rgb-color +ivory1+ 1.0d0 1.0d0 0.9411764705882353d0)
+(define-rgb-color +ivory2+ 0.9333333333333333d0 0.9333333333333333d0 0.8784313725490196d0)
+(define-rgb-color +ivory3+ 0.803921568627451d0 0.803921568627451d0 0.7568627450980392d0)
+(define-rgb-color +ivory4+ 0.5450980392156862d0 0.5450980392156862d0 0.5137254901960784d0)
+(define-rgb-color +honeydew1+ 0.9411764705882353d0 1.0d0 0.9411764705882353d0)
+(define-rgb-color +honeydew2+ 0.8784313725490196d0 0.9333333333333333d0 0.8784313725490196d0)
+(define-rgb-color +honeydew3+ 0.7568627450980392d0 0.803921568627451d0 0.7568627450980392d0)
+(define-rgb-color +honeydew4+ 0.5137254901960784d0 0.5450980392156862d0 0.5137254901960784d0)
+(define-rgb-color +lavenderblush1+ 1.0d0 0.9411764705882353d0 0.9607843137254902d0)
+(define-rgb-color +lavenderblush2+ 0.9333333333333333d0 0.8784313725490196d0 0.8980392156862745d0)
+(define-rgb-color +lavenderblush3+ 0.803921568627451d0 0.7568627450980392d0 0.7725490196078432d0)
+(define-rgb-color +lavenderblush4+ 0.5450980392156862d0 0.5137254901960784d0 0.5254901960784314d0)
+(define-rgb-color +mistyrose1+ 1.0d0 0.8941176470588236d0 0.8823529411764706d0)
+(define-rgb-color +mistyrose2+ 0.9333333333333333d0 0.8352941176470589d0 0.8235294117647058d0)
+(define-rgb-color +mistyrose3+ 0.803921568627451d0 0.7176470588235294d0 0.7098039215686275d0)
+(define-rgb-color +mistyrose4+ 0.5450980392156862d0 0.49019607843137253d0 0.4823529411764706d0)
+(define-rgb-color +azure1+ 0.9411764705882353d0 1.0d0 1.0d0)
+(define-rgb-color +azure2+ 0.8784313725490196d0 0.9333333333333333d0 0.9333333333333333d0)
+(define-rgb-color +azure3+ 0.7568627450980392d0 0.803921568627451d0 0.803921568627451d0)
+(define-rgb-color +azure4+ 0.5137254901960784d0 0.5450980392156862d0 0.5450980392156862d0)
+(define-rgb-color +slateblue1+ 0.5137254901960784d0 0.43529411764705883d0 1.0d0)
+(define-rgb-color +slateblue2+ 0.47843137254901963d0 0.403921568627451d0 0.9333333333333333d0)
+(define-rgb-color +slateblue3+ 0.4117647058823529d0 0.34901960784313724d0 0.803921568627451d0)
+(define-rgb-color +slateblue4+ 0.2784313725490196d0 0.23529411764705882d0 0.5450980392156862d0)
+(define-rgb-color +royalblue1+ 0.2823529411764706d0 0.4627450980392157d0 1.0d0)
+(define-rgb-color +royalblue2+ 0.2627450980392157d0 0.43137254901960786d0 0.9333333333333333d0)
+(define-rgb-color +royalblue3+ 0.22745098039215686d0 0.37254901960784315d0 0.803921568627451d0)
+(define-rgb-color +royalblue4+ 0.15294117647058825d0 0.25098039215686274d0 0.5450980392156862d0)
+(define-rgb-color +blue1+ 0.0d0 0.0d0 1.0d0)
+(define-rgb-color +blue2+ 0.0d0 0.0d0 0.9333333333333333d0)
+(define-rgb-color +blue3+ 0.0d0 0.0d0 0.803921568627451d0)
+(define-rgb-color +blue4+ 0.0d0 0.0d0 0.5450980392156862d0)
+(define-rgb-color +dodgerblue1+ 0.11764705882352941d0 0.5647058823529412d0 1.0d0)
+(define-rgb-color +dodgerblue2+ 0.10980392156862745d0 0.5254901960784314d0 0.9333333333333333d0)
+(define-rgb-color +dodgerblue3+ 0.09411764705882353d0 0.4549019607843137d0 0.803921568627451d0)
+(define-rgb-color +dodgerblue4+ 0.06274509803921569d0 0.3058823529411765d0 0.5450980392156862d0)
+(define-rgb-color +steelblue1+ 0.38823529411764707d0 0.7215686274509804d0 1.0d0)
+(define-rgb-color +steelblue2+ 0.3607843137254902d0 0.6745098039215687d0 0.9333333333333333d0)
+(define-rgb-color +steelblue3+ 0.30980392156862746d0 0.5803921568627451d0 0.803921568627451d0)
+(define-rgb-color +steelblue4+ 0.21176470588235294d0 0.39215686274509803d0 0.5450980392156862d0)
+(define-rgb-color +deepskyblue1+ 0.0d0 0.7490196078431373d0 1.0d0)
+(define-rgb-color +deepskyblue2+ 0.0d0 0.6980392156862745d0 0.9333333333333333d0)
+(define-rgb-color +deepskyblue3+ 0.0d0 0.6039215686274509d0 0.803921568627451d0)
+(define-rgb-color +deepskyblue4+ 0.0d0 0.40784313725490196d0 0.5450980392156862d0)
+(define-rgb-color +skyblue1+ 0.5294117647058824d0 0.807843137254902d0 1.0d0)
+(define-rgb-color +skyblue2+ 0.49411764705882355d0 0.7529411764705882d0 0.9333333333333333d0)
+(define-rgb-color +skyblue3+ 0.4235294117647059d0 0.6509803921568628d0 0.803921568627451d0)
+(define-rgb-color +skyblue4+ 0.2901960784313726d0 0.4392156862745098d0 0.5450980392156862d0)
+(define-rgb-color +lightskyblue1+ 0.6901960784313725d0 0.8862745098039215d0 1.0d0)
+(define-rgb-color +lightskyblue2+ 0.6431372549019608d0 0.8274509803921568d0 0.9333333333333333d0)
+(define-rgb-color +lightskyblue3+ 0.5529411764705883d0 0.7137254901960784d0 0.803921568627451d0)
+(define-rgb-color +lightskyblue4+ 0.3764705882352941d0 0.4823529411764706d0 0.5450980392156862d0)
+(define-rgb-color +slategray1+ 0.7764705882352941d0 0.8862745098039215d0 1.0d0)
+(define-rgb-color +slategray2+ 0.7254901960784313d0 0.8274509803921568d0 0.9333333333333333d0)
+(define-rgb-color +slategray3+ 0.6235294117647059d0 0.7137254901960784d0 0.803921568627451d0)
+(define-rgb-color +slategray4+ 0.4235294117647059d0 0.4823529411764706d0 0.5450980392156862d0)
+(define-rgb-color +lightsteelblue1+ 0.792156862745098d0 0.8823529411764706d0 1.0d0)
+(define-rgb-color +lightsteelblue2+ 0.7372549019607844d0 0.8235294117647058d0 0.9333333333333333d0)
+(define-rgb-color +lightsteelblue3+ 0.6352941176470588d0 0.7098039215686275d0 0.803921568627451d0)
+(define-rgb-color +lightsteelblue4+ 0.43137254901960786d0 0.4823529411764706d0 0.5450980392156862d0)
+(define-rgb-color +lightblue1+ 0.7490196078431373d0 0.9372549019607843d0 1.0d0)
+(define-rgb-color +lightblue2+ 0.6980392156862745d0 0.8745098039215686d0 0.9333333333333333d0)
+(define-rgb-color +lightblue3+ 0.6039215686274509d0 0.7529411764705882d0 0.803921568627451d0)
+(define-rgb-color +lightblue4+ 0.40784313725490196d0 0.5137254901960784d0 0.5450980392156862d0)
+(define-rgb-color +lightcyan1+ 0.8784313725490196d0 1.0d0 1.0d0)
+(define-rgb-color +lightcyan2+ 0.8196078431372549d0 0.9333333333333333d0 0.9333333333333333d0)
+(define-rgb-color +lightcyan3+ 0.7058823529411765d0 0.803921568627451d0 0.803921568627451d0)
+(define-rgb-color +lightcyan4+ 0.47843137254901963d0 0.5450980392156862d0 0.5450980392156862d0)
+(define-rgb-color +paleturquoise1+ 0.7333333333333333d0 1.0d0 1.0d0)
+(define-rgb-color +paleturquoise2+ 0.6823529411764706d0 0.9333333333333333d0 0.9333333333333333d0)
+(define-rgb-color +paleturquoise3+ 0.5882352941176471d0 0.803921568627451d0 0.803921568627451d0)
+(define-rgb-color +paleturquoise4+ 0.4d0 0.5450980392156862d0 0.5450980392156862d0)
+(define-rgb-color +cadetblue1+ 0.596078431372549d0 0.9607843137254902d0 1.0d0)
+(define-rgb-color +cadetblue2+ 0.5568627450980392d0 0.8980392156862745d0 0.9333333333333333d0)
+(define-rgb-color +cadetblue3+ 0.47843137254901963d0 0.7725490196078432d0 0.803921568627451d0)
+(define-rgb-color +cadetblue4+ 0.3254901960784314d0 0.5254901960784314d0 0.5450980392156862d0)
+(define-rgb-color +turquoise1+ 0.0d0 0.9607843137254902d0 1.0d0)
+(define-rgb-color +turquoise2+ 0.0d0 0.8980392156862745d0 0.9333333333333333d0)
+(define-rgb-color +turquoise3+ 0.0d0 0.7725490196078432d0 0.803921568627451d0)
+(define-rgb-color +turquoise4+ 0.0d0 0.5254901960784314d0 0.5450980392156862d0)
+(define-rgb-color +cyan1+ 0.0d0 1.0d0 1.0d0)
+(define-rgb-color +cyan2+ 0.0d0 0.9333333333333333d0 0.9333333333333333d0)
+(define-rgb-color +cyan3+ 0.0d0 0.803921568627451d0 0.803921568627451d0)
+(define-rgb-color +cyan4+ 0.0d0 0.5450980392156862d0 0.5450980392156862d0)
+(define-rgb-color +darkslategray1+ 0.592156862745098d0 1.0d0 1.0d0)
+(define-rgb-color +darkslategray2+ 0.5529411764705883d0 0.9333333333333333d0 0.9333333333333333d0)
+(define-rgb-color +darkslategray3+ 0.4745098039215686d0 0.803921568627451d0 0.803921568627451d0)
+(define-rgb-color +darkslategray4+ 0.3215686274509804d0 0.5450980392156862d0 0.5450980392156862d0)
+(define-rgb-color +aquamarine1+ 0.4980392156862745d0 1.0d0 0.8313725490196079d0)
+(define-rgb-color +aquamarine2+ 0.4627450980392157d0 0.9333333333333333d0 0.7764705882352941d0)
+(define-rgb-color +aquamarine3+ 0.4d0 0.803921568627451d0 0.6666666666666666d0)
+(define-rgb-color +aquamarine4+ 0.27058823529411763d0 0.5450980392156862d0 0.4549019607843137d0)
+(define-rgb-color +darkseagreen1+ 0.7568627450980392d0 1.0d0 0.7568627450980392d0)
+(define-rgb-color +darkseagreen2+ 0.7058823529411765d0 0.9333333333333333d0 0.7058823529411765d0)
+(define-rgb-color +darkseagreen3+ 0.6078431372549019d0 0.803921568627451d0 0.6078431372549019d0)
+(define-rgb-color +darkseagreen4+ 0.4117647058823529d0 0.5450980392156862d0 0.4117647058823529d0)
+(define-rgb-color +seagreen1+ 0.32941176470588235d0 1.0d0 0.6235294117647059d0)
+(define-rgb-color +seagreen2+ 0.3058823529411765d0 0.9333333333333333d0 0.5803921568627451d0)
+(define-rgb-color +seagreen3+ 0.2627450980392157d0 0.803921568627451d0 0.5019607843137255d0)
+(define-rgb-color +seagreen4+ 0.1803921568627451d0 0.5450980392156862d0 0.3411764705882353d0)
+(define-rgb-color +palegreen1+ 0.6039215686274509d0 1.0d0 0.6039215686274509d0)
+(define-rgb-color +palegreen2+ 0.5647058823529412d0 0.9333333333333333d0 0.5647058823529412d0)
+(define-rgb-color +palegreen3+ 0.48627450980392156d0 0.803921568627451d0 0.48627450980392156d0)
+(define-rgb-color +palegreen4+ 0.32941176470588235d0 0.5450980392156862d0 0.32941176470588235d0)
+(define-rgb-color +springgreen1+ 0.0d0 1.0d0 0.4980392156862745d0)
+(define-rgb-color +springgreen2+ 0.0d0 0.9333333333333333d0 0.4627450980392157d0)
+(define-rgb-color +springgreen3+ 0.0d0 0.803921568627451d0 0.4d0)
+(define-rgb-color +springgreen4+ 0.0d0 0.5450980392156862d0 0.27058823529411763d0)
+(define-rgb-color +green1+ 0.0d0 1.0d0 0.0d0)
+(define-rgb-color +green2+ 0.0d0 0.9333333333333333d0 0.0d0)
+(define-rgb-color +green3+ 0.0d0 0.803921568627451d0 0.0d0)
+(define-rgb-color +green4+ 0.0d0 0.5450980392156862d0 0.0d0)
+(define-rgb-color +chartreuse1+ 0.4980392156862745d0 1.0d0 0.0d0)
+(define-rgb-color +chartreuse2+ 0.4627450980392157d0 0.9333333333333333d0 0.0d0)
+(define-rgb-color +chartreuse3+ 0.4d0 0.803921568627451d0 0.0d0)
+(define-rgb-color +chartreuse4+ 0.27058823529411763d0 0.5450980392156862d0 0.0d0)
+(define-rgb-color +olivedrab1+ 0.7529411764705882d0 1.0d0 0.24313725490196078d0)
+(define-rgb-color +olivedrab2+ 0.7019607843137254d0 0.9333333333333333d0 0.22745098039215686d0)
+(define-rgb-color +olivedrab3+ 0.6039215686274509d0 0.803921568627451d0 0.19607843137254902d0)
+(define-rgb-color +olivedrab4+ 0.4117647058823529d0 0.5450980392156862d0 0.13333333333333333d0)
+(define-rgb-color +darkolivegreen1+ 0.792156862745098d0 1.0d0 0.4392156862745098d0)
+(define-rgb-color +darkolivegreen2+ 0.7372549019607844d0 0.9333333333333333d0 0.40784313725490196d0)
+(define-rgb-color +darkolivegreen3+ 0.6352941176470588d0 0.803921568627451d0 0.35294117647058826d0)
+(define-rgb-color +darkolivegreen4+ 0.43137254901960786d0 0.5450980392156862d0 0.23921568627450981d0)
+(define-rgb-color +khaki1+ 1.0d0 0.9647058823529412d0 0.5607843137254902d0)
+(define-rgb-color +khaki2+ 0.9333333333333333d0 0.9019607843137255d0 0.5215686274509804d0)
+(define-rgb-color +khaki3+ 0.803921568627451d0 0.7764705882352941d0 0.45098039215686275d0)
+(define-rgb-color +khaki4+ 0.5450980392156862d0 0.5254901960784314d0 0.3058823529411765d0)
+(define-rgb-color +lightgoldenrod1+ 1.0d0 0.9254901960784314d0 0.5450980392156862d0)
+(define-rgb-color +lightgoldenrod2+ 0.9333333333333333d0 0.8627450980392157d0 0.5098039215686274d0)
+(define-rgb-color +lightgoldenrod3+ 0.803921568627451d0 0.7450980392156863d0 0.4392156862745098d0)
+(define-rgb-color +lightgoldenrod4+ 0.5450980392156862d0 0.5058823529411764d0 0.2980392156862745d0)
+(define-rgb-color +lightyellow1+ 1.0d0 1.0d0 0.8784313725490196d0)
+(define-rgb-color +lightyellow2+ 0.9333333333333333d0 0.9333333333333333d0 0.8196078431372549d0)
+(define-rgb-color +lightyellow3+ 0.803921568627451d0 0.803921568627451d0 0.7058823529411765d0)
+(define-rgb-color +lightyellow4+ 0.5450980392156862d0 0.5450980392156862d0 0.47843137254901963d0)
+(define-rgb-color +yellow1+ 1.0d0 1.0d0 0.0d0)
+(define-rgb-color +yellow2+ 0.9333333333333333d0 0.9333333333333333d0 0.0d0)
+(define-rgb-color +yellow3+ 0.803921568627451d0 0.803921568627451d0 0.0d0)
+(define-rgb-color +yellow4+ 0.5450980392156862d0 0.5450980392156862d0 0.0d0)
+(define-rgb-color +gold1+ 1.0d0 0.8431372549019608d0 0.0d0)
+(define-rgb-color +gold2+ 0.9333333333333333d0 0.788235294117647d0 0.0d0)
+(define-rgb-color +gold3+ 0.803921568627451d0 0.6784313725490196d0 0.0d0)
+(define-rgb-color +gold4+ 0.5450980392156862d0 0.4588235294117647d0 0.0d0)
+(define-rgb-color +goldenrod1+ 1.0d0 0.7568627450980392d0 0.1450980392156863d0)
+(define-rgb-color +goldenrod2+ 0.9333333333333333d0 0.7058823529411765d0 0.13333333333333333d0)
+(define-rgb-color +goldenrod3+ 0.803921568627451d0 0.6078431372549019d0 0.11372549019607843d0)
+(define-rgb-color +goldenrod4+ 0.5450980392156862d0 0.4117647058823529d0 0.0784313725490196d0)
+(define-rgb-color +darkgoldenrod1+ 1.0d0 0.7254901960784313d0 0.058823529411764705d0)
+(define-rgb-color +darkgoldenrod2+ 0.9333333333333333d0 0.6784313725490196d0 0.054901960784313725d0)
+(define-rgb-color +darkgoldenrod3+ 0.803921568627451d0 0.5843137254901961d0 0.047058823529411764d0)
+(define-rgb-color +darkgoldenrod4+ 0.5450980392156862d0 0.396078431372549d0 0.03137254901960784d0)
+(define-rgb-color +rosybrown1+ 1.0d0 0.7568627450980392d0 0.7568627450980392d0)
+(define-rgb-color +rosybrown2+ 0.9333333333333333d0 0.7058823529411765d0 0.7058823529411765d0)
+(define-rgb-color +rosybrown3+ 0.803921568627451d0 0.6078431372549019d0 0.6078431372549019d0)
+(define-rgb-color +rosybrown4+ 0.5450980392156862d0 0.4117647058823529d0 0.4117647058823529d0)
+(define-rgb-color +indianred1+ 1.0d0 0.41568627450980394d0 0.41568627450980394d0)
+(define-rgb-color +indianred2+ 0.9333333333333333d0 0.38823529411764707d0 0.38823529411764707d0)
+(define-rgb-color +indianred3+ 0.803921568627451d0 0.3333333333333333d0 0.3333333333333333d0)
+(define-rgb-color +indianred4+ 0.5450980392156862d0 0.22745098039215686d0 0.22745098039215686d0)
+(define-rgb-color +sienna1+ 1.0d0 0.5098039215686274d0 0.2784313725490196d0)
+(define-rgb-color +sienna2+ 0.9333333333333333d0 0.4745098039215686d0 0.25882352941176473d0)
+(define-rgb-color +sienna3+ 0.803921568627451d0 0.40784313725490196d0 0.2235294117647059d0)
+(define-rgb-color +sienna4+ 0.5450980392156862d0 0.2784313725490196d0 0.14901960784313725d0)
+(define-rgb-color +burlywood1+ 1.0d0 0.8274509803921568d0 0.6078431372549019d0)
+(define-rgb-color +burlywood2+ 0.9333333333333333d0 0.7725490196078432d0 0.5686274509803921d0)
+(define-rgb-color +burlywood3+ 0.803921568627451d0 0.6666666666666666d0 0.49019607843137253d0)
+(define-rgb-color +burlywood4+ 0.5450980392156862d0 0.45098039215686275d0 0.3333333333333333d0)
+(define-rgb-color +wheat1+ 1.0d0 0.9058823529411765d0 0.7294117647058823d0)
+(define-rgb-color +wheat2+ 0.9333333333333333d0 0.8470588235294118d0 0.6823529411764706d0)
+(define-rgb-color +wheat3+ 0.803921568627451d0 0.7294117647058823d0 0.5882352941176471d0)
+(define-rgb-color +wheat4+ 0.5450980392156862d0 0.49411764705882355d0 0.4d0)
+(define-rgb-color +tan1+ 1.0d0 0.6470588235294118d0 0.30980392156862746d0)
+(define-rgb-color +tan2+ 0.9333333333333333d0 0.6039215686274509d0 0.28627450980392155d0)
+(define-rgb-color +tan3+ 0.803921568627451d0 0.5215686274509804d0 0.24705882352941178d0)
+(define-rgb-color +tan4+ 0.5450980392156862d0 0.35294117647058826d0 0.16862745098039217d0)
+(define-rgb-color +chocolate1+ 1.0d0 0.4980392156862745d0 0.1411764705882353d0)
+(define-rgb-color +chocolate2+ 0.9333333333333333d0 0.4627450980392157d0 0.12941176470588237d0)
+(define-rgb-color +chocolate3+ 0.803921568627451d0 0.4d0 0.11372549019607843d0)
+(define-rgb-color +chocolate4+ 0.5450980392156862d0 0.27058823529411763d0 0.07450980392156863d0)
+(define-rgb-color +firebrick1+ 1.0d0 0.18823529411764706d0 0.18823529411764706d0)
+(define-rgb-color +firebrick2+ 0.9333333333333333d0 0.17254901960784313d0 0.17254901960784313d0)
+(define-rgb-color +firebrick3+ 0.803921568627451d0 0.14901960784313725d0 0.14901960784313725d0)
+(define-rgb-color +firebrick4+ 0.5450980392156862d0 0.10196078431372549d0 0.10196078431372549d0)
+(define-rgb-color +brown1+ 1.0d0 0.25098039215686274d0 0.25098039215686274d0)
+(define-rgb-color +brown2+ 0.9333333333333333d0 0.23137254901960785d0 0.23137254901960785d0)
+(define-rgb-color +brown3+ 0.803921568627451d0 0.2d0 0.2d0)
+(define-rgb-color +brown4+ 0.5450980392156862d0 0.13725490196078433d0 0.13725490196078433d0)
+(define-rgb-color +salmon1+ 1.0d0 0.5490196078431373d0 0.4117647058823529d0)
+(define-rgb-color +salmon2+ 0.9333333333333333d0 0.5098039215686274d0 0.3843137254901961d0)
+(define-rgb-color +salmon3+ 0.803921568627451d0 0.4392156862745098d0 0.32941176470588235d0)
+(define-rgb-color +salmon4+ 0.5450980392156862d0 0.2980392156862745d0 0.2235294117647059d0)
+(define-rgb-color +lightsalmon1+ 1.0d0 0.6274509803921569d0 0.47843137254901963d0)
+(define-rgb-color +lightsalmon2+ 0.9333333333333333d0 0.5843137254901961d0 0.4470588235294118d0)
+(define-rgb-color +lightsalmon3+ 0.803921568627451d0 0.5058823529411764d0 0.3843137254901961d0)
+(define-rgb-color +lightsalmon4+ 0.5450980392156862d0 0.3411764705882353d0 0.25882352941176473d0)
+(define-rgb-color +orange1+ 1.0d0 0.6470588235294118d0 0.0d0)
+(define-rgb-color +orange2+ 0.9333333333333333d0 0.6039215686274509d0 0.0d0)
+(define-rgb-color +orange3+ 0.803921568627451d0 0.5215686274509804d0 0.0d0)
+(define-rgb-color +orange4+ 0.5450980392156862d0 0.35294117647058826d0 0.0d0)
+(define-rgb-color +darkorange1+ 1.0d0 0.4980392156862745d0 0.0d0)
+(define-rgb-color +darkorange2+ 0.9333333333333333d0 0.4627450980392157d0 0.0d0)
+(define-rgb-color +darkorange3+ 0.803921568627451d0 0.4d0 0.0d0)
+(define-rgb-color +darkorange4+ 0.5450980392156862d0 0.27058823529411763d0 0.0d0)
+(define-rgb-color +coral1+ 1.0d0 0.4470588235294118d0 0.33725490196078434d0)
+(define-rgb-color +coral2+ 0.9333333333333333d0 0.41568627450980394d0 0.3137254901960784d0)
+(define-rgb-color +coral3+ 0.803921568627451d0 0.3568627450980392d0 0.27058823529411763d0)
+(define-rgb-color +coral4+ 0.5450980392156862d0 0.24313725490196078d0 0.1843137254901961d0)
+(define-rgb-color +tomato1+ 1.0d0 0.38823529411764707d0 0.2784313725490196d0)
+(define-rgb-color +tomato2+ 0.9333333333333333d0 0.3607843137254902d0 0.25882352941176473d0)
+(define-rgb-color +tomato3+ 0.803921568627451d0 0.30980392156862746d0 0.2235294117647059d0)
+(define-rgb-color +tomato4+ 0.5450980392156862d0 0.21176470588235294d0 0.14901960784313725d0)
+(define-rgb-color +orangered1+ 1.0d0 0.27058823529411763d0 0.0d0)
+(define-rgb-color +orangered2+ 0.9333333333333333d0 0.25098039215686274d0 0.0d0)
+(define-rgb-color +orangered3+ 0.803921568627451d0 0.21568627450980393d0 0.0d0)
+(define-rgb-color +orangered4+ 0.5450980392156862d0 0.1450980392156863d0 0.0d0)
+(define-rgb-color +red1+ 1.0d0 0.0d0 0.0d0)
+(define-rgb-color +red2+ 0.9333333333333333d0 0.0d0 0.0d0)
+(define-rgb-color +red3+ 0.803921568627451d0 0.0d0 0.0d0)
+(define-rgb-color +red4+ 0.5450980392156862d0 0.0d0 0.0d0)
+(define-rgb-color +debianred+ 0.8431372549019608d0 0.027450980392156862d0 0.3176470588235294d0)
+(define-rgb-color +deeppink1+ 1.0d0 0.0784313725490196d0 0.5764705882352941d0)
+(define-rgb-color +deeppink2+ 0.9333333333333333d0 0.07058823529411765d0 0.5372549019607843d0)
+(define-rgb-color +deeppink3+ 0.803921568627451d0 0.06274509803921569d0 0.4627450980392157d0)
+(define-rgb-color +deeppink4+ 0.5450980392156862d0 0.0392156862745098d0 0.3137254901960784d0)
+(define-rgb-color +hotpink1+ 1.0d0 0.43137254901960786d0 0.7058823529411765d0)
+(define-rgb-color +hotpink2+ 0.9333333333333333d0 0.41568627450980394d0 0.6549019607843137d0)
+(define-rgb-color +hotpink3+ 0.803921568627451d0 0.3764705882352941d0 0.5647058823529412d0)
+(define-rgb-color +hotpink4+ 0.5450980392156862d0 0.22745098039215686d0 0.3843137254901961d0)
+(define-rgb-color +pink1+ 1.0d0 0.7098039215686275d0 0.7725490196078432d0)
+(define-rgb-color +pink2+ 0.9333333333333333d0 0.6627450980392157d0 0.7215686274509804d0)
+(define-rgb-color +pink3+ 0.803921568627451d0 0.5686274509803921d0 0.6196078431372549d0)
+(define-rgb-color +pink4+ 0.5450980392156862d0 0.38823529411764707d0 0.4235294117647059d0)
+(define-rgb-color +lightpink1+ 1.0d0 0.6823529411764706d0 0.7254901960784313d0)
+(define-rgb-color +lightpink2+ 0.9333333333333333d0 0.6352941176470588d0 0.6784313725490196d0)
+(define-rgb-color +lightpink3+ 0.803921568627451d0 0.5490196078431373d0 0.5843137254901961d0)
+(define-rgb-color +lightpink4+ 0.5450980392156862d0 0.37254901960784315d0 0.396078431372549d0)
+(define-rgb-color +palevioletred1+ 1.0d0 0.5098039215686274d0 0.6705882352941176d0)
+(define-rgb-color +palevioletred2+ 0.9333333333333333d0 0.4745098039215686d0 0.6235294117647059d0)
+(define-rgb-color +palevioletred3+ 0.803921568627451d0 0.40784313725490196d0 0.5372549019607843d0)
+(define-rgb-color +palevioletred4+ 0.5450980392156862d0 0.2784313725490196d0 0.36470588235294116d0)
+(define-rgb-color +maroon1+ 1.0d0 0.20392156862745098d0 0.7019607843137254d0)
+(define-rgb-color +maroon2+ 0.9333333333333333d0 0.18823529411764706d0 0.6549019607843137d0)
+(define-rgb-color +maroon3+ 0.803921568627451d0 0.1607843137254902d0 0.5647058823529412d0)
+(define-rgb-color +maroon4+ 0.5450980392156862d0 0.10980392156862745d0 0.3843137254901961d0)
+(define-rgb-color +violetred1+ 1.0d0 0.24313725490196078d0 0.5882352941176471d0)
+(define-rgb-color +violetred2+ 0.9333333333333333d0 0.22745098039215686d0 0.5490196078431373d0)
+(define-rgb-color +violetred3+ 0.803921568627451d0 0.19607843137254902d0 0.47058823529411764d0)
+(define-rgb-color +violetred4+ 0.5450980392156862d0 0.13333333333333333d0 0.3215686274509804d0)
+(define-rgb-color +magenta1+ 1.0d0 0.0d0 1.0d0)
+(define-rgb-color +magenta2+ 0.9333333333333333d0 0.0d0 0.9333333333333333d0)
+(define-rgb-color +magenta3+ 0.803921568627451d0 0.0d0 0.803921568627451d0)
+(define-rgb-color +magenta4+ 0.5450980392156862d0 0.0d0 0.5450980392156862d0)
+(define-rgb-color +orchid1+ 1.0d0 0.5137254901960784d0 0.9803921568627451d0)
+(define-rgb-color +orchid2+ 0.9333333333333333d0 0.47843137254901963d0 0.9137254901960784d0)
+(define-rgb-color +orchid3+ 0.803921568627451d0 0.4117647058823529d0 0.788235294117647d0)
+(define-rgb-color +orchid4+ 0.5450980392156862d0 0.2784313725490196d0 0.5372549019607843d0)
+(define-rgb-color +plum1+ 1.0d0 0.7333333333333333d0 1.0d0)
+(define-rgb-color +plum2+ 0.9333333333333333d0 0.6823529411764706d0 0.9333333333333333d0)
+(define-rgb-color +plum3+ 0.803921568627451d0 0.5882352941176471d0 0.803921568627451d0)
+(define-rgb-color +plum4+ 0.5450980392156862d0 0.4d0 0.5450980392156862d0)
+(define-rgb-color +mediumorchid1+ 0.8784313725490196d0 0.4d0 1.0d0)
+(define-rgb-color +mediumorchid2+ 0.8196078431372549d0 0.37254901960784315d0 0.9333333333333333d0)
+(define-rgb-color +mediumorchid3+ 0.7058823529411765d0 0.3215686274509804d0 0.803921568627451d0)
+(define-rgb-color +mediumorchid4+ 0.47843137254901963d0 0.21568627450980393d0 0.5450980392156862d0)
+(define-rgb-color +darkorchid1+ 0.7490196078431373d0 0.24313725490196078d0 1.0d0)
+(define-rgb-color +darkorchid2+ 0.6980392156862745d0 0.22745098039215686d0 0.9333333333333333d0)
+(define-rgb-color +darkorchid3+ 0.6039215686274509d0 0.19607843137254902d0 0.803921568627451d0)
+(define-rgb-color +darkorchid4+ 0.40784313725490196d0 0.13333333333333333d0 0.5450980392156862d0)
+(define-rgb-color +purple1+ 0.6078431372549019d0 0.18823529411764706d0 1.0d0)
+(define-rgb-color +purple2+ 0.5686274509803921d0 0.17254901960784313d0 0.9333333333333333d0)
+(define-rgb-color +purple3+ 0.49019607843137253d0 0.14901960784313725d0 0.803921568627451d0)
+(define-rgb-color +purple4+ 0.3333333333333333d0 0.10196078431372549d0 0.5450980392156862d0)
+(define-rgb-color +mediumpurple1+ 0.6705882352941176d0 0.5098039215686274d0 1.0d0)
+(define-rgb-color +mediumpurple2+ 0.6235294117647059d0 0.4745098039215686d0 0.9333333333333333d0)
+(define-rgb-color +mediumpurple3+ 0.5372549019607843d0 0.40784313725490196d0 0.803921568627451d0)
+(define-rgb-color +mediumpurple4+ 0.36470588235294116d0 0.2784313725490196d0 0.5450980392156862d0)
+(define-rgb-color +thistle1+ 1.0d0 0.8823529411764706d0 1.0d0)
+(define-rgb-color +thistle2+ 0.9333333333333333d0 0.8235294117647058d0 0.9333333333333333d0)
+(define-rgb-color +thistle3+ 0.803921568627451d0 0.7098039215686275d0 0.803921568627451d0)
+(define-rgb-color +thistle4+ 0.5450980392156862d0 0.4823529411764706d0 0.5450980392156862d0)
+(define-rgb-color +gray0+ 0.0d0 0.0d0 0.0d0)
+(define-rgb-color +grey0+ 0.0d0 0.0d0 0.0d0)
+(define-rgb-color +gray1+ 0.011764705882352941d0 0.011764705882352941d0 0.011764705882352941d0)
+(define-rgb-color +grey1+ 0.011764705882352941d0 0.011764705882352941d0 0.011764705882352941d0)
+(define-rgb-color +gray2+ 0.0196078431372549d0 0.0196078431372549d0 0.0196078431372549d0)
+(define-rgb-color +grey2+ 0.0196078431372549d0 0.0196078431372549d0 0.0196078431372549d0)
+(define-rgb-color +gray3+ 0.03137254901960784d0 0.03137254901960784d0 0.03137254901960784d0)
+(define-rgb-color +grey3+ 0.03137254901960784d0 0.03137254901960784d0 0.03137254901960784d0)
+(define-rgb-color +gray4+ 0.0392156862745098d0 0.0392156862745098d0 0.0392156862745098d0)
+(define-rgb-color +grey4+ 0.0392156862745098d0 0.0392156862745098d0 0.0392156862745098d0)
+(define-rgb-color +gray5+ 0.050980392156862744d0 0.050980392156862744d0 0.050980392156862744d0)
+(define-rgb-color +grey5+ 0.050980392156862744d0 0.050980392156862744d0 0.050980392156862744d0)
+(define-rgb-color +gray6+ 0.058823529411764705d0 0.058823529411764705d0 0.058823529411764705d0)
+(define-rgb-color +grey6+ 0.058823529411764705d0 0.058823529411764705d0 0.058823529411764705d0)
+(define-rgb-color +gray7+ 0.07058823529411765d0 0.07058823529411765d0 0.07058823529411765d0)
+(define-rgb-color +grey7+ 0.07058823529411765d0 0.07058823529411765d0 0.07058823529411765d0)
+(define-rgb-color +gray8+ 0.0784313725490196d0 0.0784313725490196d0 0.0784313725490196d0)
+(define-rgb-color +grey8+ 0.0784313725490196d0 0.0784313725490196d0 0.0784313725490196d0)
+(define-rgb-color +gray9+ 0.09019607843137255d0 0.09019607843137255d0 0.09019607843137255d0)
+(define-rgb-color +grey9+ 0.09019607843137255d0 0.09019607843137255d0 0.09019607843137255d0)
+(define-rgb-color +gray10+ 0.10196078431372549d0 0.10196078431372549d0 0.10196078431372549d0)
+(define-rgb-color +grey10+ 0.10196078431372549d0 0.10196078431372549d0 0.10196078431372549d0)
+(define-rgb-color +gray11+ 0.10980392156862745d0 0.10980392156862745d0 0.10980392156862745d0)
+(define-rgb-color +grey11+ 0.10980392156862745d0 0.10980392156862745d0 0.10980392156862745d0)
+(define-rgb-color +gray12+ 0.12156862745098039d0 0.12156862745098039d0 0.12156862745098039d0)
+(define-rgb-color +grey12+ 0.12156862745098039d0 0.12156862745098039d0 0.12156862745098039d0)
+(define-rgb-color +gray13+ 0.12941176470588237d0 0.12941176470588237d0 0.12941176470588237d0)
+(define-rgb-color +grey13+ 0.12941176470588237d0 0.12941176470588237d0 0.12941176470588237d0)
+(define-rgb-color +gray14+ 0.1411764705882353d0 0.1411764705882353d0 0.1411764705882353d0)
+(define-rgb-color +grey14+ 0.1411764705882353d0 0.1411764705882353d0 0.1411764705882353d0)
+(define-rgb-color +gray15+ 0.14901960784313725d0 0.14901960784313725d0 0.14901960784313725d0)
+(define-rgb-color +grey15+ 0.14901960784313725d0 0.14901960784313725d0 0.14901960784313725d0)
+(define-rgb-color +gray16+ 0.1607843137254902d0 0.1607843137254902d0 0.1607843137254902d0)
+(define-rgb-color +grey16+ 0.1607843137254902d0 0.1607843137254902d0 0.1607843137254902d0)
+(define-rgb-color +gray17+ 0.16862745098039217d0 0.16862745098039217d0 0.16862745098039217d0)
+(define-rgb-color +grey17+ 0.16862745098039217d0 0.16862745098039217d0 0.16862745098039217d0)
+(define-rgb-color +gray18+ 0.1803921568627451d0 0.1803921568627451d0 0.1803921568627451d0)
+(define-rgb-color +grey18+ 0.1803921568627451d0 0.1803921568627451d0 0.1803921568627451d0)
+(define-rgb-color +gray19+ 0.18823529411764706d0 0.18823529411764706d0 0.18823529411764706d0)
+(define-rgb-color +grey19+ 0.18823529411764706d0 0.18823529411764706d0 0.18823529411764706d0)
+(define-rgb-color +gray20+ 0.2d0 0.2d0 0.2d0)
+(define-rgb-color +grey20+ 0.2d0 0.2d0 0.2d0)
+(define-rgb-color +gray21+ 0.21176470588235294d0 0.21176470588235294d0 0.21176470588235294d0)
+(define-rgb-color +grey21+ 0.21176470588235294d0 0.21176470588235294d0 0.21176470588235294d0)
+(define-rgb-color +gray22+ 0.2196078431372549d0 0.2196078431372549d0 0.2196078431372549d0)
+(define-rgb-color +grey22+ 0.2196078431372549d0 0.2196078431372549d0 0.2196078431372549d0)
+(define-rgb-color +gray23+ 0.23137254901960785d0 0.23137254901960785d0 0.23137254901960785d0)
+(define-rgb-color +grey23+ 0.23137254901960785d0 0.23137254901960785d0 0.23137254901960785d0)
+(define-rgb-color +gray24+ 0.23921568627450981d0 0.23921568627450981d0 0.23921568627450981d0)
+(define-rgb-color +grey24+ 0.23921568627450981d0 0.23921568627450981d0 0.23921568627450981d0)
+(define-rgb-color +gray25+ 0.25098039215686274d0 0.25098039215686274d0 0.25098039215686274d0)
+(define-rgb-color +grey25+ 0.25098039215686274d0 0.25098039215686274d0 0.25098039215686274d0)
+(define-rgb-color +gray26+ 0.25882352941176473d0 0.25882352941176473d0 0.25882352941176473d0)
+(define-rgb-color +grey26+ 0.25882352941176473d0 0.25882352941176473d0 0.25882352941176473d0)
+(define-rgb-color +gray27+ 0.27058823529411763d0 0.27058823529411763d0 0.27058823529411763d0)
+(define-rgb-color +grey27+ 0.27058823529411763d0 0.27058823529411763d0 0.27058823529411763d0)
+(define-rgb-color +gray28+ 0.2784313725490196d0 0.2784313725490196d0 0.2784313725490196d0)
+(define-rgb-color +grey28+ 0.2784313725490196d0 0.2784313725490196d0 0.2784313725490196d0)
+(define-rgb-color +gray29+ 0.2901960784313726d0 0.2901960784313726d0 0.2901960784313726d0)
+(define-rgb-color +grey29+ 0.2901960784313726d0 0.2901960784313726d0 0.2901960784313726d0)
+(define-rgb-color +gray30+ 0.30196078431372547d0 0.30196078431372547d0 0.30196078431372547d0)
+(define-rgb-color +grey30+ 0.30196078431372547d0 0.30196078431372547d0 0.30196078431372547d0)
+(define-rgb-color +gray31+ 0.30980392156862746d0 0.30980392156862746d0 0.30980392156862746d0)
+(define-rgb-color +grey31+ 0.30980392156862746d0 0.30980392156862746d0 0.30980392156862746d0)
+(define-rgb-color +gray32+ 0.3215686274509804d0 0.3215686274509804d0 0.3215686274509804d0)
+(define-rgb-color +grey32+ 0.3215686274509804d0 0.3215686274509804d0 0.3215686274509804d0)
+(define-rgb-color +gray33+ 0.32941176470588235d0 0.32941176470588235d0 0.32941176470588235d0)
+(define-rgb-color +grey33+ 0.32941176470588235d0 0.32941176470588235d0 0.32941176470588235d0)
+(define-rgb-color +gray34+ 0.3411764705882353d0 0.3411764705882353d0 0.3411764705882353d0)
+(define-rgb-color +grey34+ 0.3411764705882353d0 0.3411764705882353d0 0.3411764705882353d0)
+(define-rgb-color +gray35+ 0.34901960784313724d0 0.34901960784313724d0 0.34901960784313724d0)
+(define-rgb-color +grey35+ 0.34901960784313724d0 0.34901960784313724d0 0.34901960784313724d0)
+(define-rgb-color +gray36+ 0.3607843137254902d0 0.3607843137254902d0 0.3607843137254902d0)
+(define-rgb-color +grey36+ 0.3607843137254902d0 0.3607843137254902d0 0.3607843137254902d0)
+(define-rgb-color +gray37+ 0.3686274509803922d0 0.3686274509803922d0 0.3686274509803922d0)
+(define-rgb-color +grey37+ 0.3686274509803922d0 0.3686274509803922d0 0.3686274509803922d0)
+(define-rgb-color +gray38+ 0.3803921568627451d0 0.3803921568627451d0 0.3803921568627451d0)
+(define-rgb-color +grey38+ 0.3803921568627451d0 0.3803921568627451d0 0.3803921568627451d0)
+(define-rgb-color +gray39+ 0.38823529411764707d0 0.38823529411764707d0 0.38823529411764707d0)
+(define-rgb-color +grey39+ 0.38823529411764707d0 0.38823529411764707d0 0.38823529411764707d0)
+(define-rgb-color +gray40+ 0.4d0 0.4d0 0.4d0)
+(define-rgb-color +grey40+ 0.4d0 0.4d0 0.4d0)
+(define-rgb-color +gray41+ 0.4117647058823529d0 0.4117647058823529d0 0.4117647058823529d0)
+(define-rgb-color +grey41+ 0.4117647058823529d0 0.4117647058823529d0 0.4117647058823529d0)
+(define-rgb-color +gray42+ 0.4196078431372549d0 0.4196078431372549d0 0.4196078431372549d0)
+(define-rgb-color +grey42+ 0.4196078431372549d0 0.4196078431372549d0 0.4196078431372549d0)
+(define-rgb-color +gray43+ 0.43137254901960786d0 0.43137254901960786d0 0.43137254901960786d0)
+(define-rgb-color +grey43+ 0.43137254901960786d0 0.43137254901960786d0 0.43137254901960786d0)
+(define-rgb-color +gray44+ 0.4392156862745098d0 0.4392156862745098d0 0.4392156862745098d0)
+(define-rgb-color +grey44+ 0.4392156862745098d0 0.4392156862745098d0 0.4392156862745098d0)
+(define-rgb-color +gray45+ 0.45098039215686275d0 0.45098039215686275d0 0.45098039215686275d0)
+(define-rgb-color +grey45+ 0.45098039215686275d0 0.45098039215686275d0 0.45098039215686275d0)
+(define-rgb-color +gray46+ 0.4588235294117647d0 0.4588235294117647d0 0.4588235294117647d0)
+(define-rgb-color +grey46+ 0.4588235294117647d0 0.4588235294117647d0 0.4588235294117647d0)
+(define-rgb-color +gray47+ 0.47058823529411764d0 0.47058823529411764d0 0.47058823529411764d0)
+(define-rgb-color +grey47+ 0.47058823529411764d0 0.47058823529411764d0 0.47058823529411764d0)
+(define-rgb-color +gray48+ 0.47843137254901963d0 0.47843137254901963d0 0.47843137254901963d0)
+(define-rgb-color +grey48+ 0.47843137254901963d0 0.47843137254901963d0 0.47843137254901963d0)
+(define-rgb-color +gray49+ 0.49019607843137253d0 0.49019607843137253d0 0.49019607843137253d0)
+(define-rgb-color +grey49+ 0.49019607843137253d0 0.49019607843137253d0 0.49019607843137253d0)
+(define-rgb-color +gray50+ 0.4980392156862745d0 0.4980392156862745d0 0.4980392156862745d0)
+(define-rgb-color +grey50+ 0.4980392156862745d0 0.4980392156862745d0 0.4980392156862745d0)
+(define-rgb-color +gray51+ 0.5098039215686274d0 0.5098039215686274d0 0.5098039215686274d0)
+(define-rgb-color +grey51+ 0.5098039215686274d0 0.5098039215686274d0 0.5098039215686274d0)
+(define-rgb-color +gray52+ 0.5215686274509804d0 0.5215686274509804d0 0.5215686274509804d0)
+(define-rgb-color +grey52+ 0.5215686274509804d0 0.5215686274509804d0 0.5215686274509804d0)
+(define-rgb-color +gray53+ 0.5294117647058824d0 0.5294117647058824d0 0.5294117647058824d0)
+(define-rgb-color +grey53+ 0.5294117647058824d0 0.5294117647058824d0 0.5294117647058824d0)
+(define-rgb-color +gray54+ 0.5411764705882353d0 0.5411764705882353d0 0.5411764705882353d0)
+(define-rgb-color +grey54+ 0.5411764705882353d0 0.5411764705882353d0 0.5411764705882353d0)
+(define-rgb-color +gray55+ 0.5490196078431373d0 0.5490196078431373d0 0.5490196078431373d0)
+(define-rgb-color +grey55+ 0.5490196078431373d0 0.5490196078431373d0 0.5490196078431373d0)
+(define-rgb-color +gray56+ 0.5607843137254902d0 0.5607843137254902d0 0.5607843137254902d0)
+(define-rgb-color +grey56+ 0.5607843137254902d0 0.5607843137254902d0 0.5607843137254902d0)
+(define-rgb-color +gray57+ 0.5686274509803921d0 0.5686274509803921d0 0.5686274509803921d0)
+(define-rgb-color +grey57+ 0.5686274509803921d0 0.5686274509803921d0 0.5686274509803921d0)
+(define-rgb-color +gray58+ 0.5803921568627451d0 0.5803921568627451d0 0.5803921568627451d0)
+(define-rgb-color +grey58+ 0.5803921568627451d0 0.5803921568627451d0 0.5803921568627451d0)
+(define-rgb-color +gray59+ 0.5882352941176471d0 0.5882352941176471d0 0.5882352941176471d0)
+(define-rgb-color +grey59+ 0.5882352941176471d0 0.5882352941176471d0 0.5882352941176471d0)
+(define-rgb-color +gray60+ 0.6d0 0.6d0 0.6d0)
+(define-rgb-color +grey60+ 0.6d0 0.6d0 0.6d0)
+(define-rgb-color +gray61+ 0.611764705882353d0 0.611764705882353d0 0.611764705882353d0)
+(define-rgb-color +grey61+ 0.611764705882353d0 0.611764705882353d0 0.611764705882353d0)
+(define-rgb-color +gray62+ 0.6196078431372549d0 0.6196078431372549d0 0.6196078431372549d0)
+(define-rgb-color +grey62+ 0.6196078431372549d0 0.6196078431372549d0 0.6196078431372549d0)
+(define-rgb-color +gray63+ 0.6313725490196078d0 0.6313725490196078d0 0.6313725490196078d0)
+(define-rgb-color +grey63+ 0.6313725490196078d0 0.6313725490196078d0 0.6313725490196078d0)
+(define-rgb-color +gray64+ 0.6392156862745098d0 0.6392156862745098d0 0.6392156862745098d0)
+(define-rgb-color +grey64+ 0.6392156862745098d0 0.6392156862745098d0 0.6392156862745098d0)
+(define-rgb-color +gray65+ 0.6509803921568628d0 0.6509803921568628d0 0.6509803921568628d0)
+(define-rgb-color +grey65+ 0.6509803921568628d0 0.6509803921568628d0 0.6509803921568628d0)
+(define-rgb-color +gray66+ 0.6588235294117647d0 0.6588235294117647d0 0.6588235294117647d0)
+(define-rgb-color +grey66+ 0.6588235294117647d0 0.6588235294117647d0 0.6588235294117647d0)
+(define-rgb-color +gray67+ 0.6705882352941176d0 0.6705882352941176d0 0.6705882352941176d0)
+(define-rgb-color +grey67+ 0.6705882352941176d0 0.6705882352941176d0 0.6705882352941176d0)
+(define-rgb-color +gray68+ 0.6784313725490196d0 0.6784313725490196d0 0.6784313725490196d0)
+(define-rgb-color +grey68+ 0.6784313725490196d0 0.6784313725490196d0 0.6784313725490196d0)
+(define-rgb-color +gray69+ 0.6901960784313725d0 0.6901960784313725d0 0.6901960784313725d0)
+(define-rgb-color +grey69+ 0.6901960784313725d0 0.6901960784313725d0 0.6901960784313725d0)
+(define-rgb-color +gray70+ 0.7019607843137254d0 0.7019607843137254d0 0.7019607843137254d0)
+(define-rgb-color +grey70+ 0.7019607843137254d0 0.7019607843137254d0 0.7019607843137254d0)
+(define-rgb-color +gray71+ 0.7098039215686275d0 0.7098039215686275d0 0.7098039215686275d0)
+(define-rgb-color +grey71+ 0.7098039215686275d0 0.7098039215686275d0 0.7098039215686275d0)
+(define-rgb-color +gray72+ 0.7215686274509804d0 0.7215686274509804d0 0.7215686274509804d0)
+(define-rgb-color +grey72+ 0.7215686274509804d0 0.7215686274509804d0 0.7215686274509804d0)
+(define-rgb-color +gray73+ 0.7294117647058823d0 0.7294117647058823d0 0.7294117647058823d0)
+(define-rgb-color +grey73+ 0.7294117647058823d0 0.7294117647058823d0 0.7294117647058823d0)
+(define-rgb-color +gray74+ 0.7411764705882353d0 0.7411764705882353d0 0.7411764705882353d0)
+(define-rgb-color +grey74+ 0.7411764705882353d0 0.7411764705882353d0 0.7411764705882353d0)
+(define-rgb-color +gray75+ 0.7490196078431373d0 0.7490196078431373d0 0.7490196078431373d0)
+(define-rgb-color +grey75+ 0.7490196078431373d0 0.7490196078431373d0 0.7490196078431373d0)
+(define-rgb-color +gray76+ 0.7607843137254902d0 0.7607843137254902d0 0.7607843137254902d0)
+(define-rgb-color +grey76+ 0.7607843137254902d0 0.7607843137254902d0 0.7607843137254902d0)
+(define-rgb-color +gray77+ 0.7686274509803922d0 0.7686274509803922d0 0.7686274509803922d0)
+(define-rgb-color +grey77+ 0.7686274509803922d0 0.7686274509803922d0 0.7686274509803922d0)
+(define-rgb-color +gray78+ 0.7803921568627451d0 0.7803921568627451d0 0.7803921568627451d0)
+(define-rgb-color +grey78+ 0.7803921568627451d0 0.7803921568627451d0 0.7803921568627451d0)
+(define-rgb-color +gray79+ 0.788235294117647d0 0.788235294117647d0 0.788235294117647d0)
+(define-rgb-color +grey79+ 0.788235294117647d0 0.788235294117647d0 0.788235294117647d0)
+(define-rgb-color +gray80+ 0.8d0 0.8d0 0.8d0)
+(define-rgb-color +grey80+ 0.8d0 0.8d0 0.8d0)
+(define-rgb-color +gray81+ 0.8117647058823529d0 0.8117647058823529d0 0.8117647058823529d0)
+(define-rgb-color +grey81+ 0.8117647058823529d0 0.8117647058823529d0 0.8117647058823529d0)
+(define-rgb-color +gray82+ 0.8196078431372549d0 0.8196078431372549d0 0.8196078431372549d0)
+(define-rgb-color +grey82+ 0.8196078431372549d0 0.8196078431372549d0 0.8196078431372549d0)
+(define-rgb-color +gray83+ 0.8313725490196079d0 0.8313725490196079d0 0.8313725490196079d0)
+(define-rgb-color +grey83+ 0.8313725490196079d0 0.8313725490196079d0 0.8313725490196079d0)
+(define-rgb-color +gray84+ 0.8392156862745098d0 0.8392156862745098d0 0.8392156862745098d0)
+(define-rgb-color +grey84+ 0.8392156862745098d0 0.8392156862745098d0 0.8392156862745098d0)
+(define-rgb-color +gray85+ 0.8509803921568627d0 0.8509803921568627d0 0.8509803921568627d0)
+(define-rgb-color +grey85+ 0.8509803921568627d0 0.8509803921568627d0 0.8509803921568627d0)
+(define-rgb-color +gray86+ 0.8588235294117647d0 0.8588235294117647d0 0.8588235294117647d0)
+(define-rgb-color +grey86+ 0.8588235294117647d0 0.8588235294117647d0 0.8588235294117647d0)
+(define-rgb-color +gray87+ 0.8705882352941177d0 0.8705882352941177d0 0.8705882352941177d0)
+(define-rgb-color +grey87+ 0.8705882352941177d0 0.8705882352941177d0 0.8705882352941177d0)
+(define-rgb-color +gray88+ 0.8784313725490196d0 0.8784313725490196d0 0.8784313725490196d0)
+(define-rgb-color +grey88+ 0.8784313725490196d0 0.8784313725490196d0 0.8784313725490196d0)
+(define-rgb-color +gray89+ 0.8901960784313725d0 0.8901960784313725d0 0.8901960784313725d0)
+(define-rgb-color +grey89+ 0.8901960784313725d0 0.8901960784313725d0 0.8901960784313725d0)
+(define-rgb-color +gray90+ 0.8980392156862745d0 0.8980392156862745d0 0.8980392156862745d0)
+(define-rgb-color +grey90+ 0.8980392156862745d0 0.8980392156862745d0 0.8980392156862745d0)
+(define-rgb-color +gray91+ 0.9098039215686274d0 0.9098039215686274d0 0.9098039215686274d0)
+(define-rgb-color +grey91+ 0.9098039215686274d0 0.9098039215686274d0 0.9098039215686274d0)
+(define-rgb-color +gray92+ 0.9215686274509803d0 0.9215686274509803d0 0.9215686274509803d0)
+(define-rgb-color +grey92+ 0.9215686274509803d0 0.9215686274509803d0 0.9215686274509803d0)
+(define-rgb-color +gray93+ 0.9294117647058824d0 0.9294117647058824d0 0.9294117647058824d0)
+(define-rgb-color +grey93+ 0.9294117647058824d0 0.9294117647058824d0 0.9294117647058824d0)
+(define-rgb-color +gray94+ 0.9411764705882353d0 0.9411764705882353d0 0.9411764705882353d0)
+(define-rgb-color +grey94+ 0.9411764705882353d0 0.9411764705882353d0 0.9411764705882353d0)
+(define-rgb-color +gray95+ 0.9490196078431372d0 0.9490196078431372d0 0.9490196078431372d0)
+(define-rgb-color +grey95+ 0.9490196078431372d0 0.9490196078431372d0 0.9490196078431372d0)
+(define-rgb-color +gray96+ 0.9607843137254902d0 0.9607843137254902d0 0.9607843137254902d0)
+(define-rgb-color +grey96+ 0.9607843137254902d0 0.9607843137254902d0 0.9607843137254902d0)
+(define-rgb-color +gray97+ 0.9686274509803922d0 0.9686274509803922d0 0.9686274509803922d0)
+(define-rgb-color +grey97+ 0.9686274509803922d0 0.9686274509803922d0 0.9686274509803922d0)
+(define-rgb-color +gray98+ 0.9803921568627451d0 0.9803921568627451d0 0.9803921568627451d0)
+(define-rgb-color +grey98+ 0.9803921568627451d0 0.9803921568627451d0 0.9803921568627451d0)
+(define-rgb-color +gray99+ 0.9882352941176471d0 0.9882352941176471d0 0.9882352941176471d0)
+(define-rgb-color +grey99+ 0.9882352941176471d0 0.9882352941176471d0 0.9882352941176471d0)
+(define-rgb-color +gray100+ 1.0d0 1.0d0 1.0d0)
+(define-rgb-color +grey100+ 1.0d0 1.0d0 1.0d0)
+(define-rgb-color +darkgrey+ 0.6627450980392157d0 0.6627450980392157d0 0.6627450980392157d0)
+(define-rgb-color +darkgray+ 0.6627450980392157d0 0.6627450980392157d0 0.6627450980392157d0)
+(define-rgb-color +darkblue+ 0.0d0 0.0d0 0.5450980392156862d0)
+(define-rgb-color +darkcyan+ 0.0d0 0.5450980392156862d0 0.5450980392156862d0)
+(define-rgb-color +darkmagenta+ 0.5450980392156862d0 0.0d0 0.5450980392156862d0)
+(define-rgb-color +darkred+ 0.5450980392156862d0 0.0d0 0.0d0)
+(define-rgb-color +lightgreen+ 0.5647058823529412d0 0.9333333333333333d0 0.5647058823529412d0)

Added: colors.lisp
==============================================================================
--- (empty file)
+++ colors.lisp	Mon Aug 13 07:52:20 2007
@@ -0,0 +1,168 @@
+(in-package :cl-colors)
+
+;;;;
+;;;; rgb
+;;;;
+
+(defclass rgb ()
+  ((red :initform 0 :type (real 0 1) :initarg :red :accessor red)
+   (green :initform 0 :type (real 0 1) :initarg :green :accessor green)
+   (blue :initform 0 :type (real 0 1) :initarg :blue :accessor blue)))
+
+(defmethod print-object ((obj rgb) stream)
+  (print-unreadable-object (obj stream :type t)
+    (with-slots (red green blue) obj
+      (format stream "red: ~a  green: ~a  blue: ~a" red green blue))))
+
+(defmethod make-load-form ((obj rgb) &optional environment)
+  (make-load-form-saving-slots obj :environment environment))
+
+;;;;
+;;;; rgba
+;;;;
+
+(defclass rgba (rgb)
+  ((alpha :initform 1 :type (real 0 1) :initarg :alpha :accessor alpha)))
+
+(defmethod print-object ((obj rgba) stream)
+  (print-unreadable-object (obj stream :type t)
+    (with-slots (red green blue alpha) obj
+      (format stream "red: ~a  green: ~a  blue: ~a  alpha: ~a"
+	      red green blue alpha))))
+;;;;
+;;;; hsv
+;;;;
+
+(defclass hsv ()
+  ((hue :initform 0 :type (real 0 360) :initarg :hue :accessor hue)
+   (saturation :initform 0 :type (real 0 1) :initarg :saturation
+						     :accessor saturation)
+   (value :initform 0 :type (real 0 1) :initarg :value :accessor value)))
+
+(defmethod print-object ((obj hsv) stream)
+  (print-unreadable-object (obj stream :type t)
+    (with-slots (hue saturation value) obj
+      (format stream "hue: ~a  saturation: ~a  value: ~a"
+	      hue saturation value))))
+
+(defun normalize-hue (hue)
+  "Normalize hue into the interval [0,360)."
+  (mod hue 360))
+
+;;;;
+;;;; conversions
+;;;;
+
+(defun rgb->hsv (rgb &optional (undefined-hue 0))
+  "Convert RGB to HSV representation.  When hue is undefined
+\(saturation is zero), undefined-hue will be assigned."
+  (with-slots (red green blue) rgb
+    (let* ((value (max red green blue))
+	   (delta (- value (min red green blue)))
+	   (saturation (if (plusp value)
+			   (/ delta value)
+			   0)))
+      (flet ((normalize (constant right left)
+	       (let ((hue (+ constant (/ (* 60 (- right left)) delta))))
+		 (if (minusp hue)
+		     (+ hue 360)
+		     hue))))
+	(make-instance 'hsv
+	 :hue (cond
+		((zerop saturation) undefined-hue) ; undefined
+		((= red value) (normalize 0 green blue)) ; dominant red
+		((= green value) (normalize 120 blue red)) ; dominant green
+		(t (normalize 240 red green)))
+	 :saturation saturation
+	 :value value)))))  
+
+(defun hsv->rgb (hsv)
+  "Convert HSV to RGB representation.  When saturation is zero, hue is
+ignored."
+  (with-slots (hue saturation value) hsv
+    ;; if saturation=0, color is on the gray line
+    (when (zerop saturation)
+      (return-from hsv->rgb (make-instance 'rgb
+			     :red value :green value :blue value)))
+    ;; nonzero saturation: normalize hue to [0,6)
+    (let ((h (/ (normalize-hue hue) 60)))
+      (multiple-value-bind (quotient remainder) (floor h)
+	(let ((p (* value (- 1 saturation)))
+	      (q (* value (- 1 (* saturation remainder))))
+	      (r (* value (- 1 (* saturation (- 1 remainder))))))
+	  (multiple-value-bind (red green blue)
+	      (case quotient
+		(0 (values value r p))
+		(1 (values q value p))
+		(2 (values p value r))
+		(3 (values p q value))
+		(4 (values r p value))
+		(t (values value p q)))
+	    (make-instance 'rgb
+	     :red red
+	     :green green
+	     :blue  blue)))))))
+
+;;;;
+;;;; conversion with generic functions
+;;;;
+
+(defgeneric ->hsv (color &optional undefined-hue))
+
+(defmethod ->hsv ((color rgb) &optional (undefined-hue 0))
+  (rgb->hsv color undefined-hue))
+
+(defmethod ->hsv ((color hsv) &optional undefined-hue)
+  (declare (ignore undefined-hue))
+  color)
+
+(defgeneric ->rgb (color))
+
+(defmethod ->rgb ((color rgb))
+  color)
+
+(defmethod ->rgb ((color hsv))
+  (hsv->rgb color))
+
+;;;;
+;;;; convex combinations
+;;;;
+
+(defun convex-combination (a b alpha)
+  "Convex combination (1-alpha*a+alpha*b."
+  (declare ((real 0 1) alpha))
+  (+ (* (- 1 alpha) a) (* alpha b)))
+
+(defun hue-combination (hue1 hue2 alpha &optional (positivep t))
+  "Return a convex combination of hue1 (with weight 1-alpha) and
+hue2 \(with weight alpha), in the positive or negative direction
+on the color wheel."
+  (cond
+    ((and positivep (> hue1 hue2))
+     (normalize-hue (convex-combination hue1 (+ hue2 360) alpha)))
+    ((and (not positivep) (< hue1 hue2))
+     (normalize-hue (convex-combination (+ hue1 360) hue2 alpha)))
+    (t (convex-combination hue1 hue2 alpha))))
+		  
+(defmacro with-convex-combination ((cc instance1 instance2 alpha)
+				&body body)
+  "Wrap body in a macrolet so that (cc #'accessor) returns the
+convex combination of the slots of instance1 and instance2
+accessed by accessor."
+  `(macrolet ((,cc (accessor)
+	       (once-only (accessor)
+		 `(convex-combination (funcall ,accessor ,',instance1)
+				      (funcall ,accessor ,',instance2)
+				      ,',alpha))))
+     , at body))
+  
+(defun rgb-combination (rgb1 rgb2 alpha)
+  "Convex combination in RGB space."
+  (with-convex-combination (cc rgb1 rgb2 alpha)
+    (make-instance 'rgb :red (cc #'red) :green (cc #'green) :blue (cc #'blue))))
+
+(defun hsv-combination (hsv1 hsv2 alpha positivep)
+  (with-convex-combination (cc hsv1 hsv2 alpha)
+    (make-instance 'hsv
+     :hue (hue-combination (hue hsv1) (hue hsv2) alpha positivep)
+     :saturation (cc #'saturation) :value (cc #'value))))

Added: package.lisp
==============================================================================
--- (empty file)
+++ package.lisp	Mon Aug 13 07:52:20 2007
@@ -0,0 +1,7 @@
+(defpackage :cl-colors
+  (:use :common-lisp :cl-utilities)
+  (:export rgb red green blue
+	   rgba alpha 
+	   hsv hue saturation value
+	   rgb->hsv hsv->rgb ->hsv ->rgb
+	   convex-combination hue-combination rgb-combination hsv-combination))

Added: parse-x11.lisp
==============================================================================
--- (empty file)
+++ parse-x11.lisp	Mon Aug 13 07:52:20 2007
@@ -0,0 +1,48 @@
+;; parse X11's rgb.txt
+
+(require :cl-ppcre)
+
+(let ((color-scanner		     ; will only take names w/o spaces
+       (cl-ppcre:create-scanner 
+	"^\\s*(\\d+)\\s+(\\d+)\\s+(\\d+)\\s+([\\s\\w]+\?)\\s*$"
+	:extended-mode t))
+      (comment-scanner
+       (cl-ppcre:create-scanner
+	"^\\s*!")))
+  (with-open-file (s "/usr/share/X11/rgb.txt" 
+		   :direction :input
+			      :if-does-not-exist :error)
+    (with-open-file (colornames "colornames.lisp"
+		     :direction :output
+				:if-exists :overwrite
+					   :if-does-not-exist :create)
+      (format colornames ";;;; This file was generated automatically ~
+by parse-x11.lisp~%~
+;;;; Please do not edit directly.~%~
+ (in-package :cl-colors)~%~
+ (defmacro define-rgb-color (name red green blue)
+   `(progn
+      (defconstant ,name (if (boundp ',name)
+                             (symbol-value ',name)
+                             (make-instance 'rgb
+                              :red ,red
+                              :green ,green
+                              :blue ,blue)))
+      (export ',name)))~%")
+      (labels ((string-to-float (string)
+		 (let ((i (read-from-string string)))
+		   (assert (and (typep i 'integer) (<= i 255)))
+		   (/ i 255d0))))
+	(do ((line (read-line s nil nil) (read-line s nil nil)))
+	  ((not line))
+	(unless (cl-ppcre:scan-to-strings comment-scanner line)
+	  (multiple-value-bind (match registers)
+	      (cl-ppcre:scan-to-strings color-scanner line)
+	    (if (and match (not (find #\space (aref registers 3))))
+		(format colornames
+			"(define-rgb-color +~A+ ~A ~A ~A)~%"
+			(string-downcase (aref registers 3))
+			(string-to-float (aref registers 0))
+			(string-to-float (aref registers 1))
+			(string-to-float (aref registers 2)))
+		(format t "ignoring line ~A~%" line)))))))))

Added: test.lisp
==============================================================================
--- (empty file)
+++ test.lisp	Mon Aug 13 07:52:20 2007
@@ -0,0 +1,27 @@
+(in-package :cl-colors)
+
+(defun rgb= (rgb1 rgb2 &optional (epsilon 1e-10))
+  (flet ((eps= (a b)
+	   (<= (abs (- a b)) epsilon)))
+    (with-slots ((red1 red) (green1 green) (blue1 blue)) rgb1
+      (with-slots ((red2 red) (green2 green) (blue2 blue)) rgb2
+	(and (eps= red1 red2) (eps= green1 green2) (eps= blue1 blue2))))))
+
+(defun test-hsv-rgb ()
+  (let* ((rgb (make-instance 'rgb 
+	      :red (random 1d0)
+	      :green (random 1d0)
+	      :blue (random 1d0)))
+	 (hsv (rgb->hsv rgb))
+	 (rgb2 (hsv->rgb hsv))
+	 (result (rgb= rgb rgb2)))
+    (unless result
+      (format t "~a does not equal ~a~%" rgb rgb2))
+    result))
+	
+(dotimes (i 1000) (test-hsv-rgb))
+
+(defun test-hue-combination (from to positivep)
+  (dotimes (i 21)
+    (format t "~a " (hue-combination from to (/ i 20) positivep))))
+



More information about the Cl-colors-cvs mailing list