ROOT logo
// @(#)root/base:$Id: TColor.cxx 27600 2009-02-25 08:17:22Z brun $
// Author: Rene Brun   12/12/94

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#include "Riostream.h"
#include "TROOT.h"
#include "TColor.h"
#include "TObjArray.h"
#include "TVirtualPad.h"
#include "TVirtualX.h"
#include "TError.h"
#include "TMathBase.h"
#include "TApplication.h"
#include <cmath>

ClassImp(TColor)

Bool_t  TColor::fgGrayscaleMode = kFALSE;
Bool_t  TColor::fgInitDone = kFALSE;
TArrayI TColor::fgPalette(0);


//______________________________________________________________________________
/* Begin_Html
<center><h2>TColor: Color Creation and Management</h2></center>
 Color defined by RGB or HLS.
 At initialization time, a table of colors is generated. This linked
 list can be accessed from the TROOT object via the color index, e.g.
 <pre>
 TColor *color = gROOT->GetColor(kOrange);
 </pre>
<p> Two sets of colors are initialized;
 <ul>
    <li>Colors with index 0 to 50 (old style palette)
    <li>The Color Wheel (recommended) with color indices from 300 to 1000.
 </ul>
<h4>Old Style Palette</h4>
End_Html
Begin_Macro(source)
{
   TCanvas *c = new TCanvas("c","Fill Area colors",0,0,500,200);
   c.DrawColorTable();
   return c;
}
End_Macro
Begin_Html

<h4>The ROOT Color Wheel</h4>
The wheel contains the recommended 216 colors to be used in web applications.
The colors in the Color Wheel are created by TColor::CreateColorWheel.
<p>Using this color set for your text, background or graphics will give your
application a consistent appearance across different platforms and browsers.
<p>Colors are grouped by hue, the aspect most important in human perception.
Touching color chips have the same hue, but with different brightness and vividness.
<p>Colors of slightly different hues <b>clash</b>. If you intend to display
colors of the same hue together, you should pick them from the same group.
<p>Each color chip is identified by a mnemonic (e.g. kYellow) and a number.
The keywords, kRed, kBlue, kYellow, kPink, etc are defined in the header file <b>Rtypes.h</b>
that is included in all ROOT other header files. We strongly recommend to use these keywords
in your code instead of hardcoded color numbers, e.g.:
<pre>
   myObject.SetFillColor(kRed);
   myObject.SetFillColor(kYellow-10);
   myLine.SetLineColor(kMagenta+2);
</pre>

End_Html
Begin_Macro(source)
{
   TColorWheel *w = new TColorWheel();
   w->Draw();
   return w->GetCanvas();
}
End_Macro
Begin_Html

<h4>Bright and Dark colors</h4>
 The dark and bright color are used to give 3-D effects when drawing
 various boxes (see TWbox, TPave, TPaveText, TPaveLabel, etc).
<ul>
   <li>The Dark colors have an index = color_index+100
   <li>The Bright colors have an index = color_index+150
   <li>Pointers to the dark and bright colors can be retrieved via the TColor static functions:
   <pre>
      TColor *dark   = TColor::GetColorDark(color_index);
      TColor *bright = TColor::GetColorBright(color_index);
   </pre>
</ul>

 <h4> Gray scale view of of canvas with colors</h4>
 One can toggle between a grayscale preview and the regular
 colored mode using TCanvas::SetGrayscale(). Note that in grayscale mode,
 access via RGB will return grayscale values according to ITU
 standards (and close to b&w printer grayscales), while access via
 HLS returns de-saturated grayscales. The table below show the ROOT Color Wheel
in grayscale mode.
End_Html
Begin_Macro(source)
{
   TColorWheel *w = new TColorWheel();
   w->Draw();
   w->GetCanvas()->SetGrayscale();
   w->GetCanvas()->Modified();
   w->GetCanvas()->Update();
   return w->GetCanvas();
}
End_Macro */


//______________________________________________________________________________
TColor::TColor(): TNamed()
{
   // Default ctor.

   fNumber = -1;
   fRed = fGreen = fBlue = fHue = fLight = fSaturation = -1;
   fAlpha = 1;
}


//______________________________________________________________________________
TColor::TColor(Int_t color, Float_t r, Float_t g, Float_t b, const char *name,
               Float_t a)
      : TNamed(name,"")
{
   // Normal color constructor. Initialize a color structure.
   // Compute the RGB and HLS parameters

   TColor::InitializeColors();
   // do not enter if color number already exist
   TColor *col = gROOT->GetColor(color);
   if (col) {
      Warning("TColor", "color %d already defined", color);
      fNumber = col->GetNumber();
      fRed    = col->GetRed();
      fGreen  = col->GetGreen();
      fBlue   = col->GetBlue();
      fHue    = col->GetHue();
      fLight  = col->GetLight();
      fAlpha  = col->GetAlpha();
      fSaturation = col->GetSaturation();
      return;
   }

   fNumber = color;

   char aname[32];
   if (!name || !*name) {
      sprintf(aname, "Color%d", color);
      SetName(aname);
   }

   // enter in the list of colors
   TObjArray *lcolors = (TObjArray*)gROOT->GetListOfColors();
   lcolors->AddAtAndExpand(this, color);

   // fill color structure
   SetRGB(r, g, b);
   fAlpha = a;
}


//______________________________________________________________________________
TColor::~TColor()
{
   // Color destructor.

   gROOT->GetListOfColors()->Remove(this);
   if (gROOT->GetListOfColors()->GetEntries() == 0) {fgPalette.Set(0); fgPalette=0;}
}


//______________________________________________________________________________
TColor::TColor(const TColor &color) : TNamed(color)
{
   // Color copy ctor.

   ((TColor&)color).Copy(*this);
}


//______________________________________________________________________________
void TColor::InitializeColors()
{
   // Initialize colors used by the TCanvas based graphics (via TColor objects).
   // This method should be called before the ApplicationImp is created (which
   // initializes the GUI colors).

   if (fgInitDone)
      return;
   fgInitDone = kTRUE;
   if (gROOT->GetListOfColors()->First() == 0) {
      TColor *s0;
      Float_t r, g, b, h, l, s;
      Int_t   i;

      new TColor(kWhite,1,1,1,"background");
      new TColor(kBlack,0,0,0,"black");
      new TColor(2,1,0,0,"red");
      new TColor(3,0,1,0,"green");
      new TColor(4,0,0,1,"blue");
      new TColor(5,1,1,0,"yellow");
      new TColor(6,1,0,1,"magenta");
      new TColor(7,0,1,1,"cyan");
      new TColor(10,0.999,0.999,0.999,"white");
      new TColor(11,0.754,0.715,0.676,"editcol");

      // The color white above is defined as being nearly white.
      // Sets the associated dark color also to white.
      //TColor *c110 = gROOT->GetColor(110);
      TColor::GetColorDark(10);
      TColor *c110 = gROOT->GetColor(110);
      c110->SetRGB(0.999,0.999,.999);

      // Initialize Custom colors
      new TColor(20,0.8,0.78,0.67);
      new TColor(31,0.54,0.66,0.63);
      new TColor(41,0.83,0.81,0.53);
      new TColor(30,0.52,0.76,0.64);
      new TColor(32,0.51,0.62,0.55);
      new TColor(24,0.70,0.65,0.59);
      new TColor(21,0.8,0.78,0.67);
      new TColor(47,0.67,0.56,0.58);
      new TColor(35,0.46,0.54,0.57);
      new TColor(33,0.68,0.74,0.78);
      new TColor(39,0.5,0.5,0.61);
      new TColor(37,0.43,0.48,0.52);
      new TColor(38,0.49,0.6,0.82);
      new TColor(36,0.41,0.51,0.59);
      new TColor(49,0.58,0.41,0.44);
      new TColor(43,0.74,0.62,0.51);
      new TColor(22,0.76,0.75,0.66);
      new TColor(45,0.75,0.51,0.47);
      new TColor(44,0.78,0.6,0.49);
      new TColor(26,0.68,0.6,0.55);
      new TColor(28,0.53,0.4,0.34);
      new TColor(25,0.72,0.64,0.61);
      new TColor(27,0.61,0.56,0.51);
      new TColor(23,0.73,0.71,0.64);
      new TColor(42,0.87,0.73,0.53);
      new TColor(46,0.81,0.37,0.38);
      new TColor(48,0.65,0.47,0.48);
      new TColor(34,0.48,0.56,0.6);
      new TColor(40,0.67,0.65,0.75);
      new TColor(29,0.69,0.81,0.78);

      // Initialize some additional greyish non saturated colors
      new TColor(8, 0.35,0.83,0.33);
      new TColor(9, 0.35,0.33,0.85);
      new TColor(12,.3,.3,.3,"grey12");
      new TColor(13,.4,.4,.4,"grey13");
      new TColor(14,.5,.5,.5,"grey14");
      new TColor(15,.6,.6,.6,"grey15");
      new TColor(16,.7,.7,.7,"grey16");
      new TColor(17,.8,.8,.8,"grey17");
      new TColor(18,.9,.9,.9,"grey18");
      new TColor(19,.95,.95,.95,"grey19");
      new TColor(50, 0.83,0.35,0.33);

      // Initialize the Pretty Palette Spectrum Violet->Red
      //   The color model used here is based on the HLS model which
      //   is much more suitable for creating palettes than RGB.
      //   Fixing the saturation and lightness we can scan through the
      //   spectrum of visible light by using "hue" alone.
      //   In Root hue takes values from 0 to 360.
      Float_t  saturation = 1;
      Float_t  lightness = 0.5;
      Float_t  maxHue = 280;
      Float_t  minHue = 0;
      Int_t    maxPretty = 50;
      Float_t  hue;

      for (i=0 ; i<maxPretty ; i++) {
         hue = maxHue-(i+1)*((maxHue-minHue)/maxPretty);
         TColor::HLStoRGB(hue, lightness, saturation, r, g, b);
         new TColor(i+51, r, g, b);
      }

      // Initialize special colors for x3d
      for (i = 1; i < 8; i++) {
         s0 = gROOT->GetColor(i);
         s0->GetRGB(r,g,b);
         if (i == 1) { r = 0.6; g = 0.6; b = 0.6; }
         if (r == 1) r = 0.9; if (r == 0) r = 0.1;
         if (g == 1) g = 0.9; if (g == 0) g = 0.1;
         if (b == 1) b = 0.9; if (b == 0) b = 0.1;
         TColor::RGBtoHLS(r,g,b,h,l,s);
         TColor::HLStoRGB(h,0.6*l,s,r,g,b);
         new TColor(200+4*i-3,r,g,b);
         TColor::HLStoRGB(h,0.8*l,s,r,g,b);
         new TColor(200+4*i-2,r,g,b);
         TColor::HLStoRGB(h,1.2*l,s,r,g,b);
         new TColor(200+4*i-1,r,g,b);
         TColor::HLStoRGB(h,1.4*l,s,r,g,b);
         new TColor(200+4*i  ,r,g,b);
      }

      // Create the ROOT Color Wheel
      TColor::CreateColorWheel();
   }
   // If fgPalette.fN !=0 SetPalette has been called already
   // (from rootlogon.C for instance)

   if (!fgPalette.fN) SetPalette(0,0);
}


//______________________________________________________________________________
const char *TColor::AsHexString() const
{
   // Return color as hexidecimal string. This string can be directly passed
   // to, for example, TGClient::GetColorByName(). String will be reused so
   // copy immediately if needed.

   static TString tempbuf;

   Int_t r, g, b, a;
   r = Int_t(GetRed()   * 255);
   g = Int_t(GetGreen() * 255);
   b = Int_t(GetBlue()  * 255);
   a = Int_t(fAlpha     * 255);

   if (a != 255) {
      tempbuf.Form("#%02x%02x%02x%02x", a, r, g, b);
   } else {
      tempbuf.Form("#%02x%02x%02x", r, g, b);
   }
   return tempbuf;
}


//______________________________________________________________________________
void TColor::Copy(TObject &obj) const
{
   // Copy this color to obj.

   TNamed::Copy((TNamed&)obj);
   ((TColor&)obj).fRed   = fRed;
   ((TColor&)obj).fGreen = fGreen;
   ((TColor&)obj).fBlue  = fBlue;
   ((TColor&)obj).fHue   = fHue;
   ((TColor&)obj).fLight = fLight;
   ((TColor&)obj).fAlpha = fAlpha;
   ((TColor&)obj).fSaturation = fSaturation;
   ((TColor&)obj).fNumber = fNumber;
}


//______________________________________________________________________________
void TColor::CreateColorsGray()
{
   // Create the Gray scale colors in the Color Wheel

   if (gROOT->GetColor(kGray)) return;
   TColor *gray  = new TColor(kGray,204./255.,204./255.,204./255.);
   TColor *gray1 = new TColor(kGray+1,153./255.,153./255.,153./255.);
   TColor *gray2 = new TColor(kGray+2,102./255.,102./255.,102./255.);
   TColor *gray3 = new TColor(kGray+3, 51./255., 51./255., 51./255.);
   gray ->SetName("kGray");
   gray1->SetName("kGray+1");
   gray2->SetName("kGray+2");
   gray3->SetName("kGray+3");
}


//______________________________________________________________________________
void TColor::CreateColorsCircle(Int_t offset, const char *name, UChar_t *rgb)
{
   // Create the "circle" colors in the Color Wheel

   TString colorname;
   for (Int_t n=0;n<15;n++) {
      Int_t colorn = offset+n-10;
      TColor *color = gROOT->GetColor(colorn);
      if (!color) {
         color = new TColor(colorn,rgb[3*n]/255.,rgb[3*n+1]/255.,rgb[3*n+2]/255.);
         color->SetTitle(color->AsHexString());
         if      (n>10) colorname.Form("%s+%d",name,n-10);
         else if (n<10) colorname.Form("%s-%d",name,10-n);
         else           colorname.Form("%s",name);
         color->SetName(colorname);
      }
   }
}


//______________________________________________________________________________
void TColor::CreateColorsRectangle(Int_t offset, const char *name, UChar_t *rgb)
{
   // Create the "rectangular" colors in the Color Wheel

   TString colorname;
   for (Int_t n=0;n<20;n++) {
      Int_t colorn = offset+n-9;
      TColor *color = gROOT->GetColor(colorn);
      if (!color) {
         color = new TColor(colorn,rgb[3*n]/255.,rgb[3*n+1]/255.,rgb[3*n+2]/255.);
         color->SetTitle(color->AsHexString());
         if      (n>9) colorname.Form("%s+%d",name,n-9);
         else if (n<9) colorname.Form("%s-%d",name,9-n);
         else          colorname.Form("%s",name);
         color->SetName(colorname);
      }
   }
}


//______________________________________________________________________________
void TColor::CreateColorWheel()
{
   // Static function steering the creation of all colors in the ROOT Color Wheel

   UChar_t magenta[46]= {255,204,255
                        ,255,153,255, 204,153,204
                        ,255,102,255, 204,102,204, 153,102,153
                        ,255, 51,255, 204, 51,204, 153, 51,153, 102, 51,102
                        ,255,  0,255, 204,  0,204, 153,  0,153, 102,  0,102,  51,  0, 51};

   UChar_t red[46]    = {255,204,204
                        ,255,153,153, 204,153,153
                        ,255,102,102, 204,102,102, 153,102,102
                        ,255, 51, 51, 204, 51, 51, 153, 51, 51, 102, 51, 51
                        ,255,  0,  0, 204,  0,  0, 153,  0,  0, 102,  0,  0,  51,  0,  0};

   UChar_t yellow[46] = {255,255,204
                        ,255,255,153, 204,204,153
                        ,255,255,102, 204,204,102, 153,153,102
                        ,255,255, 51, 204,204, 51, 153,153, 51, 102,102, 51
                        ,255,255,  0, 204,204,  0, 153,153,  0, 102,102,  0,  51, 51,  0};

   UChar_t green[46]  = {204,255,204
                        ,153,255,153, 153,204,153
                        ,102,255,102, 102,204,102, 102,153,102
                        , 51,255, 51,  51,204, 51,  51,153, 51,  51,102, 51
                        ,  0,255,  0,   0,204,  0,   0,153,  0,   0,102,  0,  0, 51,  0};

   UChar_t cyan[46]   = {204,255,255
                        ,153,255,255, 153,204,204
                        ,102,255,255, 102,204,204, 102,153,153
                        , 51,255,255,  51,204,204,  51,153,153,  51,102,102
                        ,  0,255,255,   0,204,204,   0,153,153,   0,102,102,   0, 51,  51};

   UChar_t blue[46]   = {204,204,255
                        ,153,153,255, 153,153,204
                        ,102,102,255, 102,102,204, 102,102,153
                        , 51, 51,255,  51, 51,204,  51, 51,153,  51, 51,102
                        ,  0,  0,255,   0,  0,204,   0,  0,153,   0,  0,102,   0,  0,  51};

   UChar_t pink[60] = {255, 51,153,  204,  0,102,  102,  0, 51,  153,  0, 51,  204, 51,102
                      ,255,102,153,  255,  0,102,  255, 51,102,  204,  0, 51,  255,  0, 51
                      ,255,153,204,  204,102,153,  153, 51,102,  153,  0,102,  204, 51,153
                      ,255,102,204,  255,  0,153,  204,  0,153,  255, 51,204,  255,  0,153};

   UChar_t orange[60]={255,204,153,  204,153,102,  153,102, 51,  153,102,  0,  204,153, 51
                      ,255,204,102,  255,153,  0,  255,204, 51,  204,153,  0,  255,204,  0
                      ,255,153, 51,  204,102,  0,  102, 51,  0,  153, 51,  0,  204,102, 51
                      ,255,153,102,  255,102,  0,  255,102, 51,  204, 51,  0,  255, 51,  0};

   UChar_t spring[60]={153,255, 51,  102,204,  0,   51,102,  0,   51,153,  0,  102,204, 51
                      ,153,255,102,  102,255,  0,  102,255, 51,   51,204,  0,   51,255, 0
                      ,204,255,153,  153,204,102,  102,153, 51,  102,153,  0,  153,204, 51
                      ,204,255,102,  153,255,  0,  204,255, 51,  153,204,  0,  204,255,  0};

   UChar_t teal[60] = {153,255,204,  102,204,153,   51,153,102,    0,153,102,   51,204,153
                      ,102,255,204,    0,255,102,   51,255,204,    0,204,153,    0,255,204
                      , 51,255,153,    0,204,102,    0,102, 51,    0,153, 51,   51,204,102
                      ,102,255,153,    0,255,153,   51,255,102,    0,204, 51,    0,255, 51};

   UChar_t azure[60] ={153,204,255,  102,153,204,   51,102,153,    0, 51,153,   51,102,204
                      ,102,153,255,    0,102,255,   51,102,255,    0, 51,204,    0, 51,255
                      , 51,153,255,    0,102,204,    0, 51,102,    0,102,153,   51,153,204
                      ,102,204,255,    0,153,255,   51,204,255,    0,153,204,    0,204,255};

   UChar_t violet[60]={204,153,255,  153,102,204,  102, 51,153,  102,  0,153,  153, 51,204
                      ,204,102,255,  153,  0,255,  204, 51,255,  153,  0,204,  204,  0,255
                      ,153, 51,255,  102,  0,204,   51,  0,102,   51,  0,153,  102, 51,204
                      ,153,102,255,  102,  0,255,  102, 51,255,   51,  0,204,   51,  0,255};

   TColor::CreateColorsCircle(kMagenta,"kMagenta",magenta);
   TColor::CreateColorsCircle(kRed,    "kRed",    red);
   TColor::CreateColorsCircle(kYellow, "kYellow", yellow);
   TColor::CreateColorsCircle(kGreen,  "kGreen",  green);
   TColor::CreateColorsCircle(kCyan,   "kCyan",   cyan);
   TColor::CreateColorsCircle(kBlue,   "kBlue",   blue);

   TColor::CreateColorsRectangle(kPink,  "kPink",  pink);
   TColor::CreateColorsRectangle(kOrange,"kOrange",orange);
   TColor::CreateColorsRectangle(kSpring,"kSpring",spring);
   TColor::CreateColorsRectangle(kTeal,  "kTeal",  teal);
   TColor::CreateColorsRectangle(kAzure, "kAzure", azure);
   TColor::CreateColorsRectangle(kViolet,"kViolet",violet);

   TColor::CreateColorsGray();
}


//______________________________________________________________________________
Int_t TColor::GetColorPalette(Int_t i)
{
   // static function Return color number i in current palette.
   Int_t ncolors = fgPalette.fN;
   if (ncolors == 0) return 0;
   Int_t icol    = i%ncolors;
   if (icol < 0) icol = 0;
   return fgPalette.fArray[icol];
}


//______________________________________________________________________________
Int_t TColor::GetNumberOfColors()
{
   // static function: Return number of colors in the color palette

   return fgPalette.fN;
}


//______________________________________________________________________________
ULong_t TColor::GetPixel() const
{
   // Return pixel value corresponding to this color. This pixel value can
   // be used in the GUI classes. This call does not work in batch mode since
   // it needs to communicate with the graphics system.

   if (gVirtualX && !gROOT->IsBatch()) {
      if (gApplication) {
         TApplication::NeedGraphicsLibs();
         gApplication->InitializeGraphics();
      }
      return gVirtualX->GetPixel(fNumber);
   }

   return 0;
}


//______________________________________________________________________________
void TColor::HLS2RGB(Float_t hue, Float_t light, Float_t satur,
                     Float_t &r, Float_t &g, Float_t &b)
{
   // Static method to compute RGB from HLS. The l and s are between [0,1]
   // and h is between [0,360]. The returned r,g,b triplet is between [0,1].

   Float_t rh, rl, rs, rm1, rm2;
   rh = rl = rs = 0;
   if (hue   > 0) rh = hue;   if (rh > 360) rh = 360;
   if (light > 0) rl = light; if (rl > 1)   rl = 1;
   if (satur > 0) rs = satur; if (rs > 1)   rs = 1;

   if (rl <= 0.5)
      rm2 = rl*(1.0 + rs);
   else
      rm2 = rl + rs - rl*rs;
   rm1 = 2.0*rl - rm2;

   if (!rs) { r = rl; g = rl; b = rl; return; }
   r = HLStoRGB1(rm1, rm2, rh+120);
   g = HLStoRGB1(rm1, rm2, rh);
   b = HLStoRGB1(rm1, rm2, rh-120);
}


//______________________________________________________________________________
Float_t TColor::HLStoRGB1(Float_t rn1, Float_t rn2, Float_t huei)
{
   // Static method. Auxiliary to HLS2RGB().

   Float_t hue = huei;
   if (hue > 360) hue = hue - 360;
   if (hue < 0)   hue = hue + 360;
   if (hue < 60 ) return rn1 + (rn2-rn1)*hue/60;
   if (hue < 180) return rn2;
   if (hue < 240) return rn1 + (rn2-rn1)*(240-hue)/60;
   return rn1;
}


//______________________________________________________________________________
void TColor::HLS2RGB(Int_t h, Int_t l, Int_t s, Int_t &r, Int_t &g, Int_t &b)
{
   // Static method to compute RGB from HLS. The h,l,s are between [0,255].
   // The returned r,g,b triplet is between [0,255].

   Float_t hh, ll, ss, rr, gg, bb;

   hh = Float_t(h) * 360 / 255;
   ll = Float_t(l) / 255;
   ss = Float_t(s) / 255;

   TColor::HLStoRGB(hh, ll, ss, rr, gg, bb);

   r = (Int_t) (rr * 255);
   g = (Int_t) (gg * 255);
   b = (Int_t) (bb * 255);
}


//______________________________________________________________________________
void TColor::HSV2RGB(Float_t hue, Float_t satur, Float_t value,
                     Float_t &r, Float_t &g, Float_t &b)
{
   // Static method to compute RGB from HSV.
   // - The hue value runs from 0 to 360.
   // - The saturation is the degree of strength or purity and is from 0 to 1.
   //   Purity is how much white is added to the color, so S=1 makes the purest
   //   color (no white).
   // - Brightness value also ranges from 0 to 1, where 0 is the black.
   // The returned r,g,b triplet is between [0,1].

   Int_t i;
   Float_t f, p, q, t;

   if (satur==0) {
      // Achromatic (grey)
      r = g = b = value;
      return;
   }

   hue /= 60;   // sector 0 to 5
   i = (Int_t)floor(hue);
   f = hue-i;   // factorial part of hue
   p = value*(1-satur);
   q = value*(1-satur*f );
   t = value*(1-satur*(1-f));

   switch (i) {
      case 0:
         r = value;
         g = t;
         b = p;
         break;
      case 1:
         r = q;
         g = value;
         b = p;
         break;
      case 2:
         r = p;
         g = value;
         b = t;
         break;
      case 3:
         r = p;
         g = q;
         b = value;
         break;
      case 4:
         r = t;
         g = p;
         b = value;
         break;
      default:
         r = value;
         g = p;
         b = q;
         break;
   }
}


//______________________________________________________________________________
void TColor::ls(Option_t *) const
{
   // List this color with its attributes.

   printf("Color:%d  Red=%f Green=%f Blue=%f Name=%s\n",
          fNumber, fRed, fGreen, fBlue, GetName());
}


//______________________________________________________________________________
void TColor::Print(Option_t *) const
{
   // Dump this color with its attributes.

   ls();
}


//______________________________________________________________________________
void TColor::RGB2HLS(Float_t rr, Float_t gg, Float_t bb,
                     Float_t &hue, Float_t &light, Float_t &satur)
{
   // Static method to compute HLS from RGB. The r,g,b triplet is between
   // [0,1], hue is between [0,360], light and satur are [0,1].

   Float_t rnorm, gnorm, bnorm, minval, maxval, msum, mdiff, r, g, b;
   minval = maxval =0 ;
   r = g = b = 0;
   if (rr > 0) r = rr; if (r > 1) r = 1;
   if (gg > 0) g = gg; if (g > 1) g = 1;
   if (bb > 0) b = bb; if (b > 1) b = 1;

   minval = r;
   if (g < minval) minval = g;
   if (b < minval) minval = b;
   maxval = r;
   if (g > maxval) maxval = g;
   if (b > maxval) maxval = b;

   rnorm = gnorm = bnorm = 0;
   mdiff = maxval - minval;
   msum  = maxval + minval;
   light = 0.5 * msum;
   if (maxval != minval) {
      rnorm = (maxval - r)/mdiff;
      gnorm = (maxval - g)/mdiff;
      bnorm = (maxval - b)/mdiff;
   } else {
      satur = hue = 0;
      return;
   }

   if (light < 0.5)
      satur = mdiff/msum;
   else
      satur = mdiff/(2.0 - msum);

   if (r == maxval)
      hue = 60.0 * (6.0 + bnorm - gnorm);
   else if (g == maxval)
      hue = 60.0 * (2.0 + rnorm - bnorm);
   else
      hue = 60.0 * (4.0 + gnorm - rnorm);

   if (hue > 360)
      hue = hue - 360;
}


//______________________________________________________________________________
void TColor::RGB2HSV(Float_t r, Float_t g, Float_t b,
                     Float_t &hue, Float_t &satur, Float_t &value)
{
   // Static method to compute HSV from RGB.
   // - r,g,b triplet is between [0,1].
   // The returned value:
   // - The hue value runs from 0 to 360.
   // - The saturation is the degree of strength or purity and is from 0 to 1.
   //   Purity is how much white is added to the color, so S=1 makes the purest
   //   color (no white).
   // - Brightness value also ranges from 0 to 1, where 0 is the black.

   Float_t min, max, delta;

   min   = TMath::Min(TMath::Min(r, g), b);
   max   = TMath::Max(TMath::Max(r, g), b);
   value = max;

   delta = max - min;

   if (max != 0) {
      satur = delta/max;
   } else {
      satur = 0;
      hue   = -1;
      return;
   }

   if (r == max) {
      hue = (g-b)/delta;
   } else if (g == max) {
      hue = 2+(b-r)/delta;
   } else {
      hue = 4+(r-g)/delta;
   }

   hue *= 60;
   if (hue < 0) hue += 360;
}


//______________________________________________________________________________
void TColor::RGB2HLS(Int_t r, Int_t g, Int_t b, Int_t &h, Int_t &l, Int_t &s)
{
   // Static method to compute HLS from RGB. The r,g,b triplet is between
   // [0,255], hue, light and satur are between [0,255].

   Float_t rr, gg, bb, hue, light, satur;

   rr = Float_t(r) / 255;
   gg = Float_t(g) / 255;
   bb = Float_t(b) / 255;

   TColor::RGBtoHLS(rr, gg, bb, hue, light, satur);

   h = (Int_t) (hue/360 * 255);
   l = (Int_t) (light * 255);
   s = (Int_t) (satur * 255);
}


//______________________________________________________________________________
void TColor::SetRGB(Float_t r, Float_t g, Float_t b)
{
   // Initialize this color and its associated colors.

   TColor::InitializeColors();
   fRed   = r;
   fGreen = g;
   fBlue  = b;

   if (fRed < 0) return;

   RGBtoHLS(r, g, b, fHue, fLight, fSaturation);

   Int_t nplanes = 16;
   if (gVirtualX) gVirtualX->GetPlanes(nplanes);
   if (nplanes == 0) nplanes = 16;

   // allocate color now (can be delayed when we have a large colormap)
#ifndef R__WIN32
   if (nplanes < 15)
#endif
      Allocate();

   if (fNumber > 50) return;

   // now define associated colors for WBOX shading
   Float_t dr, dg, db, lr, lg, lb;

   // set dark color
   HLStoRGB(fHue, 0.7*fLight, fSaturation, dr, dg, db);
   TColor *dark = gROOT->GetColor(100+fNumber);
   if (dark) {
      if (nplanes > 8) dark->SetRGB(dr, dg, db);
      else             dark->SetRGB(0.3,0.3,0.3);
   }

   // set light color
   HLStoRGB(fHue, 1.2*fLight, fSaturation, lr, lg, lb);
   TColor *light = gROOT->GetColor(150+fNumber);
   if (light) {
      if (nplanes > 8) light->SetRGB(lr, lg, lb);
      else             light->SetRGB(0.8,0.8,0.8);
   }
}


//______________________________________________________________________________
void TColor::Allocate()
{
   // Make this color known to the graphics system.

   if (gVirtualX && !gROOT->IsBatch())

      gVirtualX->SetRGB(fNumber, GetRed(), GetGreen(), GetBlue());
}


//______________________________________________________________________________
Int_t TColor::GetColor(const char *hexcolor)
{
   // Static method returning color number for color specified by
   // hex color string of form: #rrggbb, where rr, gg and bb are in
   // hex between [0,FF], e.g. "#c0c0c0".
   // If specified color does not exist it will be created with as
   // name "#rrggbb" with rr, gg and bb in hex between [0,FF].

   if (hexcolor && *hexcolor == '#') {
      Int_t r, g, b;
      if (sscanf(hexcolor+1, "%02x%02x%02x", &r, &g, &b) == 3)
         return GetColor(r, g, b);
   }
   ::Error("TColor::GetColor(const char*)", "incorrect color string");
   return 0;
}


//______________________________________________________________________________
Int_t TColor::GetColor(Float_t r, Float_t g, Float_t b)
{
   // Static method returning color number for color specified by
   // r, g and b. The r,g,b should be in the range [0,1].
   // If specified color does not exist it will be created
   // with as name "#rrggbb" with rr, gg and bb in hex between
   // [0,FF].

   Int_t rr, gg, bb;
   rr = Int_t(r * 255);
   gg = Int_t(g * 255);
   bb = Int_t(b * 255);

   return GetColor(rr, gg, bb);
}


//______________________________________________________________________________
Int_t TColor::GetColor(ULong_t pixel)
{
   // Static method returning color number for color specified by
   // system dependent pixel value. Pixel values can be obtained, e.g.,
   // from the GUI color picker.

   Int_t r, g, b;

   Pixel2RGB(pixel, r, g, b);

   return GetColor(r, g, b);
}


//______________________________________________________________________________
Int_t TColor::GetColor(Int_t r, Int_t g, Int_t b)
{
   // Static method returning color number for color specified by
   // r, g and b. The r,g,b should be in the range [0,255].
   // If the specified color does not exist it will be created
   // with as name "#rrggbb" with rr, gg and bb in hex between
   // [0,FF].

   TColor::InitializeColors();
   if (r < 0) r = 0;
   if (g < 0) g = 0;
   if (b < 0) b = 0;
   if (r > 255) r = 255;
   if (g > 255) g = 255;
   if (b > 255) b = 255;

   // Get list of all defined colors
   TObjArray *colors = (TObjArray*) gROOT->GetListOfColors();

   TColor *color = 0;

   // Look for color by name
   if ((color = (TColor*)colors->FindObject(Form("#%02x%02x%02x", r, g, b))))
      // We found the color by name, so we use that right away
      return color->GetNumber();

   Float_t rr, gg, bb;
   rr = Float_t(r)/255.;
   gg = Float_t(g)/255.;
   bb = Float_t(b)/255.;

   TIter next(colors);

   Int_t nplanes = 16;
   Float_t thres = 1.0/31.0;   // 5 bits per color : 0 - 0x1F !
   if (gVirtualX) gVirtualX->GetPlanes(nplanes);
   if (nplanes >= 24)
      thres = 1.0/255.0;       // 8 bits per color : 0 - 0xFF !

   // Loop over all defined colors
   while ((color = (TColor*)next())) {
      if (TMath::Abs(color->GetRed() - rr) > thres)
         continue;
      if (TMath::Abs(color->GetGreen() - gg) > thres)
         continue;
      if (TMath::Abs(color->GetBlue() - bb) > thres)
         continue;

      // We found a matching color in the color table
      return color->GetNumber();
   }

   // We didn't find a matching color in the color table, so we
   // add it. Note name is of the form "#rrggbb" where rr, etc. are
   // hexadecimal numbers.
   color = new TColor(colors->GetLast()+1, rr, gg, bb,
                      Form("#%02x%02x%02x", r, g, b));

   return color->GetNumber();
}


//______________________________________________________________________________
Int_t TColor::GetColorBright(Int_t n)
{
   // Static function: Returns the bright color number corresponding to n
   // If the TColor object does not exist, it is created.
   // The convention is that the bright color nb = n+150

   if (n < 0) return -1;

   // Get list of all defined colors
   TObjArray *colors = (TObjArray*) gROOT->GetListOfColors();
   Int_t ncolors = colors->GetSize();
   // Get existing color at index n
   TColor *color = 0;
   if (n < ncolors) color = (TColor*)colors->At(n);
   if (!color) return -1;

   //Get the rgb of the the new bright color corresponding to color n
   Float_t r,g,b;
   HLStoRGB(color->GetHue(), 1.2*color->GetLight(), color->GetSaturation(), r, g, b);

   //Build the bright color (unless the slot nb is already used)
   Int_t nb = n+150;
   TColor *colorb = 0;
   if (nb < ncolors) colorb = (TColor*)colors->At(nb);
   if (colorb) return nb;
   colorb = new TColor(nb,r,g,b);
   colorb->SetName(Form("%s_bright",color->GetName()));
   colors->AddAtAndExpand(colorb,nb);
   return nb;
}


//______________________________________________________________________________
Int_t TColor::GetColorDark(Int_t n)
{
   // Static function: Returns the dark color number corresponding to n
   // If the TColor object does not exist, it is created.
   // The convention is that the dark color nd = n+100

   if (n < 0) return -1;

   // Get list of all defined colors
   TObjArray *colors = (TObjArray*) gROOT->GetListOfColors();
   Int_t ncolors = colors->GetSize();
   // Get existing color at index n
   TColor *color = 0;
   if (n < ncolors) color = (TColor*)colors->At(n);
   if (!color) return -1;

   //Get the rgb of the the new dark color corresponding to color n
   Float_t r,g,b;
   HLStoRGB(color->GetHue(), 0.7*color->GetLight(), color->GetSaturation(), r, g, b);

   //Build the dark color (unless the slot nd is already used)
   Int_t nd = n+100;
   TColor *colord = 0;
   if (nd < ncolors) colord = (TColor*)colors->At(nd);
   if (colord) return nd;
   colord = new TColor(nd,r,g,b);
   colord->SetName(Form("%s_dark",color->GetName()));
   colors->AddAtAndExpand(colord,nd);
   return nd;
}


//______________________________________________________________________________
ULong_t TColor::Number2Pixel(Int_t ci)
{
   // Static method that given a color index number, returns the corresponding
   // pixel value. This pixel value can be used in the GUI classes. This call
   // does not work in batch mode since it needs to communicate with the
   // graphics system.


   TColor::InitializeColors();
   TColor *color = gROOT->GetColor(ci);
   if (color)
      return color->GetPixel();
   else
      ::Warning("TColor::Number2Pixel", "color with index %d not defined", ci);

   return 0;
}


//______________________________________________________________________________
ULong_t TColor::RGB2Pixel(Float_t r, Float_t g, Float_t b)
{
   // Convert r,g,b to graphics system dependent pixel value.
   // The r,g,b triplet must be [0,1].

   if (r < 0) r = 0;
   if (g < 0) g = 0;
   if (b < 0) b = 0;
   if (r > 1) r = 1;
   if (g > 1) g = 1;
   if (b > 1) b = 1;

   ColorStruct_t color;
   color.fRed   = UShort_t(r * 65535);
   color.fGreen = UShort_t(g * 65535);
   color.fBlue  = UShort_t(b * 65535);
   color.fMask  = kDoRed | kDoGreen | kDoBlue;
   gVirtualX->AllocColor(gVirtualX->GetColormap(), color);
   return color.fPixel;
}


//______________________________________________________________________________
ULong_t TColor::RGB2Pixel(Int_t r, Int_t g, Int_t b)
{
   // Convert r,g,b to graphics system dependent pixel value.
   // The r,g,b triplet must be [0,255].

   if (r < 0) r = 0;
   if (g < 0) g = 0;
   if (b < 0) b = 0;
   if (r > 255) r = 255;
   if (g > 255) g = 255;
   if (b > 255) b = 255;

   ColorStruct_t color;
   color.fRed   = UShort_t(r * 257);  // 65535/255
   color.fGreen = UShort_t(g * 257);
   color.fBlue  = UShort_t(b * 257);
   color.fMask  = kDoRed | kDoGreen | kDoBlue;
   gVirtualX->AllocColor(gVirtualX->GetColormap(), color);
   return color.fPixel;
}


//______________________________________________________________________________
void TColor::Pixel2RGB(ULong_t pixel, Float_t &r, Float_t &g, Float_t &b)
{
   // Convert machine dependent pixel value (obtained via RGB2Pixel or
   // via Number2Pixel() or via TColor::GetPixel()) to r,g,b triplet.
   // The r,g,b triplet will be [0,1].

   ColorStruct_t color;
   color.fPixel = pixel;
   gVirtualX->QueryColor(gVirtualX->GetColormap(), color);
   r = (Float_t)color.fRed / 65535;
   g = (Float_t)color.fGreen / 65535;
   b = (Float_t)color.fBlue / 65535;
}


//______________________________________________________________________________
void TColor::Pixel2RGB(ULong_t pixel, Int_t &r, Int_t &g, Int_t &b)
{
   // Convert machine dependent pixel value (obtained via RGB2Pixel or
   // via Number2Pixel() or via TColor::GetPixel()) to r,g,b triplet.
   // The r,g,b triplet will be [0,255].

   ColorStruct_t color;
   color.fPixel = pixel;
   gVirtualX->QueryColor(gVirtualX->GetColormap(), color);
   r = color.fRed / 257;
   g = color.fGreen / 257;
   b = color.fBlue / 257;
}


//______________________________________________________________________________
const char *TColor::PixelAsHexString(ULong_t pixel)
{
   // Convert machine dependent pixel value (obtained via RGB2Pixel or
   // via Number2Pixel() or via TColor::GetPixel()) to a hexidecimal string.
   // This string can be directly passed to, for example,
   // TGClient::GetColorByName(). String will be reused so copy immediately
   // if needed.

   static TString tempbuf;
   Int_t r, g, b;
   Pixel2RGB(pixel, r, g, b);
   tempbuf.Form("#%02x%02x%02x", r, g, b);
   return tempbuf;
}


//______________________________________________________________________________
void TColor::SaveColor(ostream &out, Int_t ci)
{
    // Save a color with index > 228 as a C++ statement(s) on output stream out.

   char quote = '"';

   ULong_t pixel = Number2Pixel(ci);
   const char *cname = TColor::PixelAsHexString(pixel);

   if (gROOT->ClassSaved(TColor::Class())) {
      out << endl;
   } else {
      out << endl;
      out << "   Int_t ci;   // for color index setting" << endl;
   }

   out<<"   ci = TColor::GetColor("<<quote<<cname<<quote<<");"<<endl;
}


//______________________________________________________________________________
Bool_t TColor::IsGrayscale()
{
   // Return whether all colors return grayscale values
   return fgGrayscaleMode;
}


//______________________________________________________________________________
void TColor::SetGrayscale(Bool_t set /*= kTRUE*/)
{
   // Set whether all colors should return grayscale values
   if (fgGrayscaleMode == set) return;

   fgGrayscaleMode = set;

   if (!gVirtualX || gROOT->IsBatch()) return;

   TColor::InitializeColors();
   TIter iColor(gROOT->GetListOfColors());
   TColor* color = 0;
   while ((color = (TColor*) iColor()))
      color->Allocate();
}


//______________________________________________________________________________
Int_t TColor::CreateGradientColorTable(UInt_t Number, Double_t* Length,
                              Double_t* Red, Double_t* Green,
                              Double_t* Blue, UInt_t NColors)
{
  // STATIC function.
  // Linear gradient color table:
  // Red, Green and Blue are several RGB colors with values from 0.0 .. 1.0.
  // Their number is "Intervals".
  // Length is the length of the color interval between the RGB-colors:
  // Imaging the whole gradient goes from 0.0 for the first RGB color to 1.0
  // for the last RGB color, then each "Length"-entry in between stands for
  // the length of the intervall between the according RGB colors.
  //
  // This definition is similar to the povray-definition of gradient
  // color tables.
  //
  // In order to create a color table do the following:
  // Define the RGB Colors:
  // > UInt_t Number = 5;
  // > Double_t Red[5]   = { 0.00, 0.09, 0.18, 0.09, 0.00 };
  // > Double_t Green[5] = { 0.01, 0.02, 0.39, 0.68, 0.97 };
  // > Double_t Blue[5]  = { 0.17, 0.39, 0.62, 0.79, 0.97 };
  // Define the length of the (color)-interval between this points
  // > Double_t Stops[5] = { 0.00, 0.34, 0.61, 0.84, 1.00 };
  // i.e. the color interval between Color 2 and Color 3 is
  // 0.79 - 0.62 => 17 % of the total palette area between these colors
  //
  //  Original code by Andreas Zoglauer <zog@mpe.mpg.de>

   TColor::InitializeColors();

   UInt_t g, c;
   UInt_t nPalette = 0;
   Int_t *palette = new Int_t[NColors+1];
   UInt_t nColorsGradient;
   TColor *color;
   Int_t highestIndex = 0;

   // Check if all RGB values are between 0.0 and 1.0 and
   // Length goes from 0.0 to 1.0 in increasing order.
   for (c = 0; c < Number; c++) {
      if (Red[c] < 0 || Red[c] > 1.0 ||
          Green[c] < 0 || Green[c] > 1.0 ||
          Blue[c] < 0 || Blue[c] > 1.0 ||
          Length[c] < 0 || Length[c] > 1.0) {
         //Error("CreateGradientColorTable",
         //      "All RGB colors and interval lengths have to be between 0.0 and 1.0");
         delete [] palette;
         return -1;
      }
      if (c >= 1) {
         if (Length[c-1] > Length[c]) {
            //Error("CreateGradientColorTable",
            //      "The interval lengths have to be in increasing order");
            delete [] palette;
            return -1;
         }
      }
   }

   // Search for the highest color index not used in ROOT:
   // We do not want to overwrite some colors...
   TSeqCollection *colorTable = gROOT->GetListOfColors();
   if ((color = (TColor *) colorTable->Last()) != 0) {
      if (color->GetNumber() > highestIndex) {
         highestIndex = color->GetNumber();
      }
      while ((color = (TColor *) (colorTable->Before(color))) != 0) {
         if (color->GetNumber() > highestIndex) {
            highestIndex = color->GetNumber();
         }
      }
   }
   highestIndex++;

   // Now create the colors and add them to the default palette:

   // For each defined gradient...
   for (g = 1; g < Number; g++) {
      // create the colors...
      nColorsGradient = (Int_t) (floor(NColors*Length[g]) - floor(NColors*Length[g-1]));
      for (c = 0; c < nColorsGradient; c++) {
         color = new TColor(highestIndex,
                            Red[g-1] + c * (Red[g] - Red[g-1])/ nColorsGradient,
                            Green[g-1] + c * (Green[g] - Green[g-1])/ nColorsGradient,
                            Blue[g-1] + c * (Blue[g] - Blue[g-1])/ nColorsGradient,
                            "  ");
         palette[nPalette] = highestIndex;
         nPalette++;
         highestIndex++;
      }
   }

   TColor::SetPalette(nPalette, palette);
   delete [] palette;

   return highestIndex - NColors;
}


//______________________________________________________________________________
void TColor::SetPalette(Int_t ncolors, Int_t *colors)
{
// static function
// The color palette is used by the histogram classes
//  (see TH1::Draw options).
// For example TH1::Draw("col") draws a 2-D histogram with cells
// represented by a box filled with a color CI function of the cell content.
// if the cell content is N, the color CI used will be the color number
// in colors[N],etc. If the maximum cell content is > ncolors, all
// cell contents are scaled to ncolors.
//
// if ncolors <= 0 a default palette (see below) of 50 colors is defined.
//     the colors defined in this palette are OK for coloring pads, labels
//
// if ncolors == 1 && colors == 0, then
//     a Pretty Palette with a Spectrum Violet->Red is created.
//   It is recommended to use this Pretty palette when drawing legos,
//   surfaces or contours.
//
// if ncolors > 50 and colors=0, the DeepSea palette is used.
//     (see TStyle::CreateGradientColorTable for more details)
//
// if ncolors > 0 and colors = 0, the default palette is used
// with a maximum of ncolors.
//
// The default palette defines:
//   index 0->9   : grey colors from light to dark grey
//   index 10->19 : "brown" colors
//   index 20->29 : "blueish" colors
//   index 30->39 : "redish" colors
//   index 40->49 : basic colors
//
//  The color numbers specified in the palette can be viewed by selecting
//  the item "colors" in the "VIEW" menu of the canvas toolbar.
//  The color parameters can be changed via TColor::SetRGB.

   Int_t i;
   static Int_t paletteType = 0;
   Int_t palette[50] = {19,18,17,16,15,14,13,12,11,20,
                        21,22,23,24,25,26,27,28,29,30, 8,
                        31,32,33,34,35,36,37,38,39,40, 9,
                        41,42,43,44,45,47,48,49,46,50, 2,
                         7, 6, 5, 4, 3, 2,1};
   // set default palette (pad type)
   if (ncolors <= 0) {
      ncolors = 50;
      fgPalette.Set(ncolors);
      for (i=0;i<ncolors;i++) fgPalette.fArray[i] = palette[i];
      paletteType = 1;
      return;
   }

   // set Pretty Palette Spectrum Violet->Red
   if (ncolors == 1 && colors == 0) {
      ncolors = 50;
      fgPalette.Set(ncolors);
      for (i=0;i<ncolors;i++) fgPalette.fArray[i] = 51+i;
      paletteType = 2;
      return;
   }

   // set DeepSea palette
   if (ncolors > 50 && colors == 0) {
      TColor::InitializeColors();
      if (ncolors == fgPalette.fN && paletteType == 3) return;
      const Int_t nRGBs = 5;
      Double_t stops[nRGBs] = { 0.00, 0.34, 0.61, 0.84, 1.00 };
      Double_t red[nRGBs]   = { 0.00, 0.09, 0.18, 0.09, 0.00 };
      Double_t green[nRGBs] = { 0.01, 0.02, 0.39, 0.68, 0.97 };
      Double_t blue[nRGBs]  = { 0.17, 0.39, 0.62, 0.79, 0.97 };
      TColor::CreateGradientColorTable(nRGBs, stops, red, green, blue, ncolors);
      paletteType = 3;
      return;
   }

   // set user defined palette
   fgPalette.Set(ncolors);
   if (colors)  for (i=0;i<ncolors;i++) fgPalette.fArray[i] = colors[i];
   else         for (i=0;i<ncolors;i++) fgPalette.fArray[i] = palette[i];
   paletteType = 4;
}

 TColor.cxx:1
 TColor.cxx:2
 TColor.cxx:3
 TColor.cxx:4
 TColor.cxx:5
 TColor.cxx:6
 TColor.cxx:7
 TColor.cxx:8
 TColor.cxx:9
 TColor.cxx:10
 TColor.cxx:11
 TColor.cxx:12
 TColor.cxx:13
 TColor.cxx:14
 TColor.cxx:15
 TColor.cxx:16
 TColor.cxx:17
 TColor.cxx:18
 TColor.cxx:19
 TColor.cxx:20
 TColor.cxx:21
 TColor.cxx:22
 TColor.cxx:23
 TColor.cxx:24
 TColor.cxx:25
 TColor.cxx:26
 TColor.cxx:27
 TColor.cxx:28
 TColor.cxx:29
 TColor.cxx:30
 TColor.cxx:31
 TColor.cxx:32
 TColor.cxx:33
 TColor.cxx:34
 TColor.cxx:35
 TColor.cxx:36
 TColor.cxx:37
 TColor.cxx:38
 TColor.cxx:39
 TColor.cxx:40
 TColor.cxx:41
 TColor.cxx:42
 TColor.cxx:43
 TColor.cxx:44
 TColor.cxx:45
 TColor.cxx:46
 TColor.cxx:47
 TColor.cxx:48
 TColor.cxx:49
 TColor.cxx:50
 TColor.cxx:51
 TColor.cxx:52
 TColor.cxx:53
 TColor.cxx:54
 TColor.cxx:55
 TColor.cxx:56
 TColor.cxx:57
 TColor.cxx:58
 TColor.cxx:59
 TColor.cxx:60
 TColor.cxx:61
 TColor.cxx:62
 TColor.cxx:63
 TColor.cxx:64
 TColor.cxx:65
 TColor.cxx:66
 TColor.cxx:67
 TColor.cxx:68
 TColor.cxx:69
 TColor.cxx:70
 TColor.cxx:71
 TColor.cxx:72
 TColor.cxx:73
 TColor.cxx:74
 TColor.cxx:75
 TColor.cxx:76
 TColor.cxx:77
 TColor.cxx:78
 TColor.cxx:79
 TColor.cxx:80
 TColor.cxx:81
 TColor.cxx:82
 TColor.cxx:83
 TColor.cxx:84
 TColor.cxx:85
 TColor.cxx:86
 TColor.cxx:87
 TColor.cxx:88
 TColor.cxx:89
 TColor.cxx:90
 TColor.cxx:91
 TColor.cxx:92
 TColor.cxx:93
 TColor.cxx:94
 TColor.cxx:95
 TColor.cxx:96
 TColor.cxx:97
 TColor.cxx:98
 TColor.cxx:99
 TColor.cxx:100
 TColor.cxx:101
 TColor.cxx:102
 TColor.cxx:103
 TColor.cxx:104
 TColor.cxx:105
 TColor.cxx:106
 TColor.cxx:107
 TColor.cxx:108
 TColor.cxx:109
 TColor.cxx:110
 TColor.cxx:111
 TColor.cxx:112
 TColor.cxx:113
 TColor.cxx:114
 TColor.cxx:115
 TColor.cxx:116
 TColor.cxx:117
 TColor.cxx:118
 TColor.cxx:119
 TColor.cxx:120
 TColor.cxx:121
 TColor.cxx:122
 TColor.cxx:123
 TColor.cxx:124
 TColor.cxx:125
 TColor.cxx:126
 TColor.cxx:127
 TColor.cxx:128
 TColor.cxx:129
 TColor.cxx:130
 TColor.cxx:131
 TColor.cxx:132
 TColor.cxx:133
 TColor.cxx:134
 TColor.cxx:135
 TColor.cxx:136
 TColor.cxx:137
 TColor.cxx:138
 TColor.cxx:139
 TColor.cxx:140
 TColor.cxx:141
 TColor.cxx:142
 TColor.cxx:143
 TColor.cxx:144
 TColor.cxx:145
 TColor.cxx:146
 TColor.cxx:147
 TColor.cxx:148
 TColor.cxx:149
 TColor.cxx:150
 TColor.cxx:151
 TColor.cxx:152
 TColor.cxx:153
 TColor.cxx:154
 TColor.cxx:155
 TColor.cxx:156
 TColor.cxx:157
 TColor.cxx:158
 TColor.cxx:159
 TColor.cxx:160
 TColor.cxx:161
 TColor.cxx:162
 TColor.cxx:163
 TColor.cxx:164
 TColor.cxx:165
 TColor.cxx:166
 TColor.cxx:167
 TColor.cxx:168
 TColor.cxx:169
 TColor.cxx:170
 TColor.cxx:171
 TColor.cxx:172
 TColor.cxx:173
 TColor.cxx:174
 TColor.cxx:175
 TColor.cxx:176
 TColor.cxx:177
 TColor.cxx:178
 TColor.cxx:179
 TColor.cxx:180
 TColor.cxx:181
 TColor.cxx:182
 TColor.cxx:183
 TColor.cxx:184
 TColor.cxx:185
 TColor.cxx:186
 TColor.cxx:187
 TColor.cxx:188
 TColor.cxx:189
 TColor.cxx:190
 TColor.cxx:191
 TColor.cxx:192
 TColor.cxx:193
 TColor.cxx:194
 TColor.cxx:195
 TColor.cxx:196
 TColor.cxx:197
 TColor.cxx:198
 TColor.cxx:199
 TColor.cxx:200
 TColor.cxx:201
 TColor.cxx:202
 TColor.cxx:203
 TColor.cxx:204
 TColor.cxx:205
 TColor.cxx:206
 TColor.cxx:207
 TColor.cxx:208
 TColor.cxx:209
 TColor.cxx:210
 TColor.cxx:211
 TColor.cxx:212
 TColor.cxx:213
 TColor.cxx:214
 TColor.cxx:215
 TColor.cxx:216
 TColor.cxx:217
 TColor.cxx:218
 TColor.cxx:219
 TColor.cxx:220
 TColor.cxx:221
 TColor.cxx:222
 TColor.cxx:223
 TColor.cxx:224
 TColor.cxx:225
 TColor.cxx:226
 TColor.cxx:227
 TColor.cxx:228
 TColor.cxx:229
 TColor.cxx:230
 TColor.cxx:231
 TColor.cxx:232
 TColor.cxx:233
 TColor.cxx:234
 TColor.cxx:235
 TColor.cxx:236
 TColor.cxx:237
 TColor.cxx:238
 TColor.cxx:239
 TColor.cxx:240
 TColor.cxx:241
 TColor.cxx:242
 TColor.cxx:243
 TColor.cxx:244
 TColor.cxx:245
 TColor.cxx:246
 TColor.cxx:247
 TColor.cxx:248
 TColor.cxx:249
 TColor.cxx:250
 TColor.cxx:251
 TColor.cxx:252
 TColor.cxx:253
 TColor.cxx:254
 TColor.cxx:255
 TColor.cxx:256
 TColor.cxx:257
 TColor.cxx:258
 TColor.cxx:259
 TColor.cxx:260
 TColor.cxx:261
 TColor.cxx:262
 TColor.cxx:263
 TColor.cxx:264
 TColor.cxx:265
 TColor.cxx:266
 TColor.cxx:267
 TColor.cxx:268
 TColor.cxx:269
 TColor.cxx:270
 TColor.cxx:271
 TColor.cxx:272
 TColor.cxx:273
 TColor.cxx:274
 TColor.cxx:275
 TColor.cxx:276
 TColor.cxx:277
 TColor.cxx:278
 TColor.cxx:279
 TColor.cxx:280
 TColor.cxx:281
 TColor.cxx:282
 TColor.cxx:283
 TColor.cxx:284
 TColor.cxx:285
 TColor.cxx:286
 TColor.cxx:287
 TColor.cxx:288
 TColor.cxx:289
 TColor.cxx:290
 TColor.cxx:291
 TColor.cxx:292
 TColor.cxx:293
 TColor.cxx:294
 TColor.cxx:295
 TColor.cxx:296
 TColor.cxx:297
 TColor.cxx:298
 TColor.cxx:299
 TColor.cxx:300
 TColor.cxx:301
 TColor.cxx:302
 TColor.cxx:303
 TColor.cxx:304
 TColor.cxx:305
 TColor.cxx:306
 TColor.cxx:307
 TColor.cxx:308
 TColor.cxx:309
 TColor.cxx:310
 TColor.cxx:311
 TColor.cxx:312
 TColor.cxx:313
 TColor.cxx:314
 TColor.cxx:315
 TColor.cxx:316
 TColor.cxx:317
 TColor.cxx:318
 TColor.cxx:319
 TColor.cxx:320
 TColor.cxx:321
 TColor.cxx:322
 TColor.cxx:323
 TColor.cxx:324
 TColor.cxx:325
 TColor.cxx:326
 TColor.cxx:327
 TColor.cxx:328
 TColor.cxx:329
 TColor.cxx:330
 TColor.cxx:331
 TColor.cxx:332
 TColor.cxx:333
 TColor.cxx:334
 TColor.cxx:335
 TColor.cxx:336
 TColor.cxx:337
 TColor.cxx:338
 TColor.cxx:339
 TColor.cxx:340
 TColor.cxx:341
 TColor.cxx:342
 TColor.cxx:343
 TColor.cxx:344
 TColor.cxx:345
 TColor.cxx:346
 TColor.cxx:347
 TColor.cxx:348
 TColor.cxx:349
 TColor.cxx:350
 TColor.cxx:351
 TColor.cxx:352
 TColor.cxx:353
 TColor.cxx:354
 TColor.cxx:355
 TColor.cxx:356
 TColor.cxx:357
 TColor.cxx:358
 TColor.cxx:359
 TColor.cxx:360
 TColor.cxx:361
 TColor.cxx:362
 TColor.cxx:363
 TColor.cxx:364
 TColor.cxx:365
 TColor.cxx:366
 TColor.cxx:367
 TColor.cxx:368
 TColor.cxx:369
 TColor.cxx:370
 TColor.cxx:371
 TColor.cxx:372
 TColor.cxx:373
 TColor.cxx:374
 TColor.cxx:375
 TColor.cxx:376
 TColor.cxx:377
 TColor.cxx:378
 TColor.cxx:379
 TColor.cxx:380
 TColor.cxx:381
 TColor.cxx:382
 TColor.cxx:383
 TColor.cxx:384
 TColor.cxx:385
 TColor.cxx:386
 TColor.cxx:387
 TColor.cxx:388
 TColor.cxx:389
 TColor.cxx:390
 TColor.cxx:391
 TColor.cxx:392
 TColor.cxx:393
 TColor.cxx:394
 TColor.cxx:395
 TColor.cxx:396
 TColor.cxx:397
 TColor.cxx:398
 TColor.cxx:399
 TColor.cxx:400
 TColor.cxx:401
 TColor.cxx:402
 TColor.cxx:403
 TColor.cxx:404
 TColor.cxx:405
 TColor.cxx:406
 TColor.cxx:407
 TColor.cxx:408
 TColor.cxx:409
 TColor.cxx:410
 TColor.cxx:411
 TColor.cxx:412
 TColor.cxx:413
 TColor.cxx:414
 TColor.cxx:415
 TColor.cxx:416
 TColor.cxx:417
 TColor.cxx:418
 TColor.cxx:419
 TColor.cxx:420
 TColor.cxx:421
 TColor.cxx:422
 TColor.cxx:423
 TColor.cxx:424
 TColor.cxx:425
 TColor.cxx:426
 TColor.cxx:427
 TColor.cxx:428
 TColor.cxx:429
 TColor.cxx:430
 TColor.cxx:431
 TColor.cxx:432
 TColor.cxx:433
 TColor.cxx:434
 TColor.cxx:435
 TColor.cxx:436
 TColor.cxx:437
 TColor.cxx:438
 TColor.cxx:439
 TColor.cxx:440
 TColor.cxx:441
 TColor.cxx:442
 TColor.cxx:443
 TColor.cxx:444
 TColor.cxx:445
 TColor.cxx:446
 TColor.cxx:447
 TColor.cxx:448
 TColor.cxx:449
 TColor.cxx:450
 TColor.cxx:451
 TColor.cxx:452
 TColor.cxx:453
 TColor.cxx:454
 TColor.cxx:455
 TColor.cxx:456
 TColor.cxx:457
 TColor.cxx:458
 TColor.cxx:459
 TColor.cxx:460
 TColor.cxx:461
 TColor.cxx:462
 TColor.cxx:463
 TColor.cxx:464
 TColor.cxx:465
 TColor.cxx:466
 TColor.cxx:467
 TColor.cxx:468
 TColor.cxx:469
 TColor.cxx:470
 TColor.cxx:471
 TColor.cxx:472
 TColor.cxx:473
 TColor.cxx:474
 TColor.cxx:475
 TColor.cxx:476
 TColor.cxx:477
 TColor.cxx:478
 TColor.cxx:479
 TColor.cxx:480
 TColor.cxx:481
 TColor.cxx:482
 TColor.cxx:483
 TColor.cxx:484
 TColor.cxx:485
 TColor.cxx:486
 TColor.cxx:487
 TColor.cxx:488
 TColor.cxx:489
 TColor.cxx:490
 TColor.cxx:491
 TColor.cxx:492
 TColor.cxx:493
 TColor.cxx:494
 TColor.cxx:495
 TColor.cxx:496
 TColor.cxx:497
 TColor.cxx:498
 TColor.cxx:499
 TColor.cxx:500
 TColor.cxx:501
 TColor.cxx:502
 TColor.cxx:503
 TColor.cxx:504
 TColor.cxx:505
 TColor.cxx:506
 TColor.cxx:507
 TColor.cxx:508
 TColor.cxx:509
 TColor.cxx:510
 TColor.cxx:511
 TColor.cxx:512
 TColor.cxx:513
 TColor.cxx:514
 TColor.cxx:515
 TColor.cxx:516
 TColor.cxx:517
 TColor.cxx:518
 TColor.cxx:519
 TColor.cxx:520
 TColor.cxx:521
 TColor.cxx:522
 TColor.cxx:523
 TColor.cxx:524
 TColor.cxx:525
 TColor.cxx:526
 TColor.cxx:527
 TColor.cxx:528
 TColor.cxx:529
 TColor.cxx:530
 TColor.cxx:531
 TColor.cxx:532
 TColor.cxx:533
 TColor.cxx:534
 TColor.cxx:535
 TColor.cxx:536
 TColor.cxx:537
 TColor.cxx:538
 TColor.cxx:539
 TColor.cxx:540
 TColor.cxx:541
 TColor.cxx:542
 TColor.cxx:543
 TColor.cxx:544
 TColor.cxx:545
 TColor.cxx:546
 TColor.cxx:547
 TColor.cxx:548
 TColor.cxx:549
 TColor.cxx:550
 TColor.cxx:551
 TColor.cxx:552
 TColor.cxx:553
 TColor.cxx:554
 TColor.cxx:555
 TColor.cxx:556
 TColor.cxx:557
 TColor.cxx:558
 TColor.cxx:559
 TColor.cxx:560
 TColor.cxx:561
 TColor.cxx:562
 TColor.cxx:563
 TColor.cxx:564
 TColor.cxx:565
 TColor.cxx:566
 TColor.cxx:567
 TColor.cxx:568
 TColor.cxx:569
 TColor.cxx:570
 TColor.cxx:571
 TColor.cxx:572
 TColor.cxx:573
 TColor.cxx:574
 TColor.cxx:575
 TColor.cxx:576
 TColor.cxx:577
 TColor.cxx:578
 TColor.cxx:579
 TColor.cxx:580
 TColor.cxx:581
 TColor.cxx:582
 TColor.cxx:583
 TColor.cxx:584
 TColor.cxx:585
 TColor.cxx:586
 TColor.cxx:587
 TColor.cxx:588
 TColor.cxx:589
 TColor.cxx:590
 TColor.cxx:591
 TColor.cxx:592
 TColor.cxx:593
 TColor.cxx:594
 TColor.cxx:595
 TColor.cxx:596
 TColor.cxx:597
 TColor.cxx:598
 TColor.cxx:599
 TColor.cxx:600
 TColor.cxx:601
 TColor.cxx:602
 TColor.cxx:603
 TColor.cxx:604
 TColor.cxx:605
 TColor.cxx:606
 TColor.cxx:607
 TColor.cxx:608
 TColor.cxx:609
 TColor.cxx:610
 TColor.cxx:611
 TColor.cxx:612
 TColor.cxx:613
 TColor.cxx:614
 TColor.cxx:615
 TColor.cxx:616
 TColor.cxx:617
 TColor.cxx:618
 TColor.cxx:619
 TColor.cxx:620
 TColor.cxx:621
 TColor.cxx:622
 TColor.cxx:623
 TColor.cxx:624
 TColor.cxx:625
 TColor.cxx:626
 TColor.cxx:627
 TColor.cxx:628
 TColor.cxx:629
 TColor.cxx:630
 TColor.cxx:631
 TColor.cxx:632
 TColor.cxx:633
 TColor.cxx:634
 TColor.cxx:635
 TColor.cxx:636
 TColor.cxx:637
 TColor.cxx:638
 TColor.cxx:639
 TColor.cxx:640
 TColor.cxx:641
 TColor.cxx:642
 TColor.cxx:643
 TColor.cxx:644
 TColor.cxx:645
 TColor.cxx:646
 TColor.cxx:647
 TColor.cxx:648
 TColor.cxx:649
 TColor.cxx:650
 TColor.cxx:651
 TColor.cxx:652
 TColor.cxx:653
 TColor.cxx:654
 TColor.cxx:655
 TColor.cxx:656
 TColor.cxx:657
 TColor.cxx:658
 TColor.cxx:659
 TColor.cxx:660
 TColor.cxx:661
 TColor.cxx:662
 TColor.cxx:663
 TColor.cxx:664
 TColor.cxx:665
 TColor.cxx:666
 TColor.cxx:667
 TColor.cxx:668
 TColor.cxx:669
 TColor.cxx:670
 TColor.cxx:671
 TColor.cxx:672
 TColor.cxx:673
 TColor.cxx:674
 TColor.cxx:675
 TColor.cxx:676
 TColor.cxx:677
 TColor.cxx:678
 TColor.cxx:679
 TColor.cxx:680
 TColor.cxx:681
 TColor.cxx:682
 TColor.cxx:683
 TColor.cxx:684
 TColor.cxx:685
 TColor.cxx:686
 TColor.cxx:687
 TColor.cxx:688
 TColor.cxx:689
 TColor.cxx:690
 TColor.cxx:691
 TColor.cxx:692
 TColor.cxx:693
 TColor.cxx:694
 TColor.cxx:695
 TColor.cxx:696
 TColor.cxx:697
 TColor.cxx:698
 TColor.cxx:699
 TColor.cxx:700
 TColor.cxx:701
 TColor.cxx:702
 TColor.cxx:703
 TColor.cxx:704
 TColor.cxx:705
 TColor.cxx:706
 TColor.cxx:707
 TColor.cxx:708
 TColor.cxx:709
 TColor.cxx:710
 TColor.cxx:711
 TColor.cxx:712
 TColor.cxx:713
 TColor.cxx:714
 TColor.cxx:715
 TColor.cxx:716
 TColor.cxx:717
 TColor.cxx:718
 TColor.cxx:719
 TColor.cxx:720
 TColor.cxx:721
 TColor.cxx:722
 TColor.cxx:723
 TColor.cxx:724
 TColor.cxx:725
 TColor.cxx:726
 TColor.cxx:727
 TColor.cxx:728
 TColor.cxx:729
 TColor.cxx:730
 TColor.cxx:731
 TColor.cxx:732
 TColor.cxx:733
 TColor.cxx:734
 TColor.cxx:735
 TColor.cxx:736
 TColor.cxx:737
 TColor.cxx:738
 TColor.cxx:739
 TColor.cxx:740
 TColor.cxx:741
 TColor.cxx:742
 TColor.cxx:743
 TColor.cxx:744
 TColor.cxx:745
 TColor.cxx:746
 TColor.cxx:747
 TColor.cxx:748
 TColor.cxx:749
 TColor.cxx:750
 TColor.cxx:751
 TColor.cxx:752
 TColor.cxx:753
 TColor.cxx:754
 TColor.cxx:755
 TColor.cxx:756
 TColor.cxx:757
 TColor.cxx:758
 TColor.cxx:759
 TColor.cxx:760
 TColor.cxx:761
 TColor.cxx:762
 TColor.cxx:763
 TColor.cxx:764
 TColor.cxx:765
 TColor.cxx:766
 TColor.cxx:767
 TColor.cxx:768
 TColor.cxx:769
 TColor.cxx:770
 TColor.cxx:771
 TColor.cxx:772
 TColor.cxx:773
 TColor.cxx:774
 TColor.cxx:775
 TColor.cxx:776
 TColor.cxx:777
 TColor.cxx:778
 TColor.cxx:779
 TColor.cxx:780
 TColor.cxx:781
 TColor.cxx:782
 TColor.cxx:783
 TColor.cxx:784
 TColor.cxx:785
 TColor.cxx:786
 TColor.cxx:787
 TColor.cxx:788
 TColor.cxx:789
 TColor.cxx:790
 TColor.cxx:791
 TColor.cxx:792
 TColor.cxx:793
 TColor.cxx:794
 TColor.cxx:795
 TColor.cxx:796
 TColor.cxx:797
 TColor.cxx:798
 TColor.cxx:799
 TColor.cxx:800
 TColor.cxx:801
 TColor.cxx:802
 TColor.cxx:803
 TColor.cxx:804
 TColor.cxx:805
 TColor.cxx:806
 TColor.cxx:807
 TColor.cxx:808
 TColor.cxx:809
 TColor.cxx:810
 TColor.cxx:811
 TColor.cxx:812
 TColor.cxx:813
 TColor.cxx:814
 TColor.cxx:815
 TColor.cxx:816
 TColor.cxx:817
 TColor.cxx:818
 TColor.cxx:819
 TColor.cxx:820
 TColor.cxx:821
 TColor.cxx:822
 TColor.cxx:823
 TColor.cxx:824
 TColor.cxx:825
 TColor.cxx:826
 TColor.cxx:827
 TColor.cxx:828
 TColor.cxx:829
 TColor.cxx:830
 TColor.cxx:831
 TColor.cxx:832
 TColor.cxx:833
 TColor.cxx:834
 TColor.cxx:835
 TColor.cxx:836
 TColor.cxx:837
 TColor.cxx:838
 TColor.cxx:839
 TColor.cxx:840
 TColor.cxx:841
 TColor.cxx:842
 TColor.cxx:843
 TColor.cxx:844
 TColor.cxx:845
 TColor.cxx:846
 TColor.cxx:847
 TColor.cxx:848
 TColor.cxx:849
 TColor.cxx:850
 TColor.cxx:851
 TColor.cxx:852
 TColor.cxx:853
 TColor.cxx:854
 TColor.cxx:855
 TColor.cxx:856
 TColor.cxx:857
 TColor.cxx:858
 TColor.cxx:859
 TColor.cxx:860
 TColor.cxx:861
 TColor.cxx:862
 TColor.cxx:863
 TColor.cxx:864
 TColor.cxx:865
 TColor.cxx:866
 TColor.cxx:867
 TColor.cxx:868
 TColor.cxx:869
 TColor.cxx:870
 TColor.cxx:871
 TColor.cxx:872
 TColor.cxx:873
 TColor.cxx:874
 TColor.cxx:875
 TColor.cxx:876
 TColor.cxx:877
 TColor.cxx:878
 TColor.cxx:879
 TColor.cxx:880
 TColor.cxx:881
 TColor.cxx:882
 TColor.cxx:883
 TColor.cxx:884
 TColor.cxx:885
 TColor.cxx:886
 TColor.cxx:887
 TColor.cxx:888
 TColor.cxx:889
 TColor.cxx:890
 TColor.cxx:891
 TColor.cxx:892
 TColor.cxx:893
 TColor.cxx:894
 TColor.cxx:895
 TColor.cxx:896
 TColor.cxx:897
 TColor.cxx:898
 TColor.cxx:899
 TColor.cxx:900
 TColor.cxx:901
 TColor.cxx:902
 TColor.cxx:903
 TColor.cxx:904
 TColor.cxx:905
 TColor.cxx:906
 TColor.cxx:907
 TColor.cxx:908
 TColor.cxx:909
 TColor.cxx:910
 TColor.cxx:911
 TColor.cxx:912
 TColor.cxx:913
 TColor.cxx:914
 TColor.cxx:915
 TColor.cxx:916
 TColor.cxx:917
 TColor.cxx:918
 TColor.cxx:919
 TColor.cxx:920
 TColor.cxx:921
 TColor.cxx:922
 TColor.cxx:923
 TColor.cxx:924
 TColor.cxx:925
 TColor.cxx:926
 TColor.cxx:927
 TColor.cxx:928
 TColor.cxx:929
 TColor.cxx:930
 TColor.cxx:931
 TColor.cxx:932
 TColor.cxx:933
 TColor.cxx:934
 TColor.cxx:935
 TColor.cxx:936
 TColor.cxx:937
 TColor.cxx:938
 TColor.cxx:939
 TColor.cxx:940
 TColor.cxx:941
 TColor.cxx:942
 TColor.cxx:943
 TColor.cxx:944
 TColor.cxx:945
 TColor.cxx:946
 TColor.cxx:947
 TColor.cxx:948
 TColor.cxx:949
 TColor.cxx:950
 TColor.cxx:951
 TColor.cxx:952
 TColor.cxx:953
 TColor.cxx:954
 TColor.cxx:955
 TColor.cxx:956
 TColor.cxx:957
 TColor.cxx:958
 TColor.cxx:959
 TColor.cxx:960
 TColor.cxx:961
 TColor.cxx:962
 TColor.cxx:963
 TColor.cxx:964
 TColor.cxx:965
 TColor.cxx:966
 TColor.cxx:967
 TColor.cxx:968
 TColor.cxx:969
 TColor.cxx:970
 TColor.cxx:971
 TColor.cxx:972
 TColor.cxx:973
 TColor.cxx:974
 TColor.cxx:975
 TColor.cxx:976
 TColor.cxx:977
 TColor.cxx:978
 TColor.cxx:979
 TColor.cxx:980
 TColor.cxx:981
 TColor.cxx:982
 TColor.cxx:983
 TColor.cxx:984
 TColor.cxx:985
 TColor.cxx:986
 TColor.cxx:987
 TColor.cxx:988
 TColor.cxx:989
 TColor.cxx:990
 TColor.cxx:991
 TColor.cxx:992
 TColor.cxx:993
 TColor.cxx:994
 TColor.cxx:995
 TColor.cxx:996
 TColor.cxx:997
 TColor.cxx:998
 TColor.cxx:999
 TColor.cxx:1000
 TColor.cxx:1001
 TColor.cxx:1002
 TColor.cxx:1003
 TColor.cxx:1004
 TColor.cxx:1005
 TColor.cxx:1006
 TColor.cxx:1007
 TColor.cxx:1008
 TColor.cxx:1009
 TColor.cxx:1010
 TColor.cxx:1011
 TColor.cxx:1012
 TColor.cxx:1013
 TColor.cxx:1014
 TColor.cxx:1015
 TColor.cxx:1016
 TColor.cxx:1017
 TColor.cxx:1018
 TColor.cxx:1019
 TColor.cxx:1020
 TColor.cxx:1021
 TColor.cxx:1022
 TColor.cxx:1023
 TColor.cxx:1024
 TColor.cxx:1025
 TColor.cxx:1026
 TColor.cxx:1027
 TColor.cxx:1028
 TColor.cxx:1029
 TColor.cxx:1030
 TColor.cxx:1031
 TColor.cxx:1032
 TColor.cxx:1033
 TColor.cxx:1034
 TColor.cxx:1035
 TColor.cxx:1036
 TColor.cxx:1037
 TColor.cxx:1038
 TColor.cxx:1039
 TColor.cxx:1040
 TColor.cxx:1041
 TColor.cxx:1042
 TColor.cxx:1043
 TColor.cxx:1044
 TColor.cxx:1045
 TColor.cxx:1046
 TColor.cxx:1047
 TColor.cxx:1048
 TColor.cxx:1049
 TColor.cxx:1050
 TColor.cxx:1051
 TColor.cxx:1052
 TColor.cxx:1053
 TColor.cxx:1054
 TColor.cxx:1055
 TColor.cxx:1056
 TColor.cxx:1057
 TColor.cxx:1058
 TColor.cxx:1059
 TColor.cxx:1060
 TColor.cxx:1061
 TColor.cxx:1062
 TColor.cxx:1063
 TColor.cxx:1064
 TColor.cxx:1065
 TColor.cxx:1066
 TColor.cxx:1067
 TColor.cxx:1068
 TColor.cxx:1069
 TColor.cxx:1070
 TColor.cxx:1071
 TColor.cxx:1072
 TColor.cxx:1073
 TColor.cxx:1074
 TColor.cxx:1075
 TColor.cxx:1076
 TColor.cxx:1077
 TColor.cxx:1078
 TColor.cxx:1079
 TColor.cxx:1080
 TColor.cxx:1081
 TColor.cxx:1082
 TColor.cxx:1083
 TColor.cxx:1084
 TColor.cxx:1085
 TColor.cxx:1086
 TColor.cxx:1087
 TColor.cxx:1088
 TColor.cxx:1089
 TColor.cxx:1090
 TColor.cxx:1091
 TColor.cxx:1092
 TColor.cxx:1093
 TColor.cxx:1094
 TColor.cxx:1095
 TColor.cxx:1096
 TColor.cxx:1097
 TColor.cxx:1098
 TColor.cxx:1099
 TColor.cxx:1100
 TColor.cxx:1101
 TColor.cxx:1102
 TColor.cxx:1103
 TColor.cxx:1104
 TColor.cxx:1105
 TColor.cxx:1106
 TColor.cxx:1107
 TColor.cxx:1108
 TColor.cxx:1109
 TColor.cxx:1110
 TColor.cxx:1111
 TColor.cxx:1112
 TColor.cxx:1113
 TColor.cxx:1114
 TColor.cxx:1115
 TColor.cxx:1116
 TColor.cxx:1117
 TColor.cxx:1118
 TColor.cxx:1119
 TColor.cxx:1120
 TColor.cxx:1121
 TColor.cxx:1122
 TColor.cxx:1123
 TColor.cxx:1124
 TColor.cxx:1125
 TColor.cxx:1126
 TColor.cxx:1127
 TColor.cxx:1128
 TColor.cxx:1129
 TColor.cxx:1130
 TColor.cxx:1131
 TColor.cxx:1132
 TColor.cxx:1133
 TColor.cxx:1134
 TColor.cxx:1135
 TColor.cxx:1136
 TColor.cxx:1137
 TColor.cxx:1138
 TColor.cxx:1139
 TColor.cxx:1140
 TColor.cxx:1141
 TColor.cxx:1142
 TColor.cxx:1143
 TColor.cxx:1144
 TColor.cxx:1145
 TColor.cxx:1146
 TColor.cxx:1147
 TColor.cxx:1148
 TColor.cxx:1149
 TColor.cxx:1150
 TColor.cxx:1151
 TColor.cxx:1152
 TColor.cxx:1153
 TColor.cxx:1154
 TColor.cxx:1155
 TColor.cxx:1156
 TColor.cxx:1157
 TColor.cxx:1158
 TColor.cxx:1159
 TColor.cxx:1160
 TColor.cxx:1161
 TColor.cxx:1162
 TColor.cxx:1163
 TColor.cxx:1164
 TColor.cxx:1165
 TColor.cxx:1166
 TColor.cxx:1167
 TColor.cxx:1168
 TColor.cxx:1169
 TColor.cxx:1170
 TColor.cxx:1171
 TColor.cxx:1172
 TColor.cxx:1173
 TColor.cxx:1174
 TColor.cxx:1175
 TColor.cxx:1176
 TColor.cxx:1177
 TColor.cxx:1178
 TColor.cxx:1179
 TColor.cxx:1180
 TColor.cxx:1181
 TColor.cxx:1182
 TColor.cxx:1183
 TColor.cxx:1184
 TColor.cxx:1185
 TColor.cxx:1186
 TColor.cxx:1187
 TColor.cxx:1188
 TColor.cxx:1189
 TColor.cxx:1190
 TColor.cxx:1191
 TColor.cxx:1192
 TColor.cxx:1193
 TColor.cxx:1194
 TColor.cxx:1195
 TColor.cxx:1196
 TColor.cxx:1197
 TColor.cxx:1198
 TColor.cxx:1199
 TColor.cxx:1200
 TColor.cxx:1201
 TColor.cxx:1202
 TColor.cxx:1203
 TColor.cxx:1204
 TColor.cxx:1205
 TColor.cxx:1206
 TColor.cxx:1207
 TColor.cxx:1208
 TColor.cxx:1209
 TColor.cxx:1210
 TColor.cxx:1211
 TColor.cxx:1212
 TColor.cxx:1213
 TColor.cxx:1214
 TColor.cxx:1215
 TColor.cxx:1216
 TColor.cxx:1217
 TColor.cxx:1218
 TColor.cxx:1219
 TColor.cxx:1220
 TColor.cxx:1221
 TColor.cxx:1222
 TColor.cxx:1223
 TColor.cxx:1224
 TColor.cxx:1225
 TColor.cxx:1226
 TColor.cxx:1227
 TColor.cxx:1228
 TColor.cxx:1229
 TColor.cxx:1230
 TColor.cxx:1231
 TColor.cxx:1232
 TColor.cxx:1233
 TColor.cxx:1234
 TColor.cxx:1235
 TColor.cxx:1236
 TColor.cxx:1237
 TColor.cxx:1238
 TColor.cxx:1239
 TColor.cxx:1240
 TColor.cxx:1241
 TColor.cxx:1242
 TColor.cxx:1243
 TColor.cxx:1244
 TColor.cxx:1245
 TColor.cxx:1246
 TColor.cxx:1247
 TColor.cxx:1248
 TColor.cxx:1249
 TColor.cxx:1250
 TColor.cxx:1251
 TColor.cxx:1252
 TColor.cxx:1253
 TColor.cxx:1254
 TColor.cxx:1255
 TColor.cxx:1256
 TColor.cxx:1257
 TColor.cxx:1258
 TColor.cxx:1259
 TColor.cxx:1260
 TColor.cxx:1261
 TColor.cxx:1262
 TColor.cxx:1263
 TColor.cxx:1264
 TColor.cxx:1265
 TColor.cxx:1266
 TColor.cxx:1267
 TColor.cxx:1268
 TColor.cxx:1269
 TColor.cxx:1270
 TColor.cxx:1271
 TColor.cxx:1272
 TColor.cxx:1273
 TColor.cxx:1274
 TColor.cxx:1275
 TColor.cxx:1276
 TColor.cxx:1277
 TColor.cxx:1278
 TColor.cxx:1279
 TColor.cxx:1280
 TColor.cxx:1281
 TColor.cxx:1282
 TColor.cxx:1283
 TColor.cxx:1284
 TColor.cxx:1285
 TColor.cxx:1286
 TColor.cxx:1287
 TColor.cxx:1288
 TColor.cxx:1289
 TColor.cxx:1290
 TColor.cxx:1291
 TColor.cxx:1292
 TColor.cxx:1293
 TColor.cxx:1294
 TColor.cxx:1295
 TColor.cxx:1296
 TColor.cxx:1297
 TColor.cxx:1298
 TColor.cxx:1299
 TColor.cxx:1300
 TColor.cxx:1301
 TColor.cxx:1302
 TColor.cxx:1303
 TColor.cxx:1304
 TColor.cxx:1305
 TColor.cxx:1306
 TColor.cxx:1307
 TColor.cxx:1308
 TColor.cxx:1309
 TColor.cxx:1310
 TColor.cxx:1311
 TColor.cxx:1312
 TColor.cxx:1313
 TColor.cxx:1314
 TColor.cxx:1315
 TColor.cxx:1316
 TColor.cxx:1317
 TColor.cxx:1318
 TColor.cxx:1319
 TColor.cxx:1320
 TColor.cxx:1321
 TColor.cxx:1322
 TColor.cxx:1323
 TColor.cxx:1324
 TColor.cxx:1325
 TColor.cxx:1326
 TColor.cxx:1327
 TColor.cxx:1328
 TColor.cxx:1329
 TColor.cxx:1330
 TColor.cxx:1331
 TColor.cxx:1332
 TColor.cxx:1333
 TColor.cxx:1334
 TColor.cxx:1335
 TColor.cxx:1336
 TColor.cxx:1337
 TColor.cxx:1338
 TColor.cxx:1339
 TColor.cxx:1340
 TColor.cxx:1341
 TColor.cxx:1342
 TColor.cxx:1343
 TColor.cxx:1344
 TColor.cxx:1345
 TColor.cxx:1346
 TColor.cxx:1347
 TColor.cxx:1348
 TColor.cxx:1349
 TColor.cxx:1350
 TColor.cxx:1351
 TColor.cxx:1352
 TColor.cxx:1353
 TColor.cxx:1354
 TColor.cxx:1355
 TColor.cxx:1356
 TColor.cxx:1357
 TColor.cxx:1358
 TColor.cxx:1359
 TColor.cxx:1360
 TColor.cxx:1361
 TColor.cxx:1362
 TColor.cxx:1363
 TColor.cxx:1364
 TColor.cxx:1365
 TColor.cxx:1366
 TColor.cxx:1367
 TColor.cxx:1368
 TColor.cxx:1369
 TColor.cxx:1370
 TColor.cxx:1371
 TColor.cxx:1372
 TColor.cxx:1373
 TColor.cxx:1374
 TColor.cxx:1375
 TColor.cxx:1376
 TColor.cxx:1377
 TColor.cxx:1378
 TColor.cxx:1379
 TColor.cxx:1380
 TColor.cxx:1381
 TColor.cxx:1382
 TColor.cxx:1383
 TColor.cxx:1384