int i=0; int j=0; bool components=false; pen p; void col(... string[] s) { for(int n=0; n < s.length; ++n) { j -= 10; string s=s[n]; eval("p="+s+";",true); if(components) { real[] a=colors(p); for(int i=0; i < a.length; ++i) s += " "+(string) a[i]; } label(s,(i+10,j),E); filldraw(box((i,j-5),(i+10,j+5)),p); } } col("palered"); col("lightred"); col("mediumred"); col("red"); col("heavyred"); col("brown"); col("darkbrown"); j -= 10; col("palegreen"); col("lightgreen"); col("mediumgreen"); col("green"); col("heavygreen"); col("deepgreen"); col("darkgreen"); j -= 10; col("paleblue"); col("lightblue"); col("mediumblue"); col("blue"); col("heavyblue"); col("deepblue"); col("darkblue"); j -= 10; i += 150; j=0; col("palecyan"); col("lightcyan"); col("mediumcyan"); col("cyan"); col("heavycyan"); col("deepcyan"); col("darkcyan"); j -= 10; col("pink"); col("lightmagenta"); col("mediummagenta"); col("magenta"); col("heavymagenta"); col("deepmagenta"); col("darkmagenta"); j -= 10; col("paleyellow"); col("lightyellow"); col("mediumyellow"); col("yellow"); col("lightolive"); col("olive"); col("darkolive"); j -= 10; col("palegray"); col("lightgray"); col("mediumgray"); col("gray"); col("heavygray"); col("deepgray"); col("darkgray"); j -= 10; i += 150; j=0; col("black"); col("white"); j -= 10; col("orange"); col("fuchsia"); j -= 10; col("chartreuse"); col("springgreen"); j -= 10; col("purple"); col("royalblue"); j -= 10; col("Cyan"); col("Magenta"); col("Yellow"); col("Black"); j -= 10; col("cmyk(red)"); col("cmyk(blue)"); col("cmyk(green)");