From 67033f5c20c9c1c6653cdb3e66a74539d634ec64 Mon Sep 17 00:00:00 2001 From: pepperpepperpepper Date: Wed, 18 Nov 2015 10:08:55 -0800 Subject: cleanup continued --- share/frontend/im/HTACCESS | 3 - share/frontend/im/THEHTACCESS | 3 - share/frontend/im/newimagemaker.html | 289 -- share/frontend/imdither/.gitignore | 2 - share/frontend/imdither/18.bmp | Bin 330 -> 0 bytes share/frontend/imdither/bottle.py | 3605 ------------- share/frontend/imdither/imdither.html | 291 -- share/frontend/imdither/img/logo.png | Bin 8810 -> 0 bytes share/frontend/imdither/jquery.min.js | 18 - share/frontend/imdither/makeDither.py | 72 - share/frontend/imdither/pbutils.py | 238 - share/frontend/imdither/run.py | 35 - share/frontend/imdither/s3.py | 618 --- share/frontend/imdither/urlDownload.py | 33 - share/frontend/imgrid/3ddirs.txt | 256 - share/frontend/imgrid/athenafinal.gif | Bin 5831355 -> 0 bytes share/frontend/imgrid/backup.html | 466 -- share/frontend/imgrid/blackplant2.png | Bin 49197 -> 0 bytes share/frontend/imgrid/blackplant3.png | Bin 90183 -> 0 bytes share/frontend/imgrid/colordictbackup.js | 4 - share/frontend/imgrid/colors/1.html | 59 - share/frontend/imgrid/colors/blackshim.png | Bin 382 -> 0 bytes share/frontend/imgrid/colors/colors/1.html | 59 - share/frontend/imgrid/colors/colors/blackshim.png | Bin 382 -> 0 bytes share/frontend/imgrid/colors/colors/grayshim.png | Bin 399 -> 0 bytes .../frontend/imgrid/colors/colors/hoverbutton.png | Bin 1337 -> 0 bytes share/frontend/imgrid/colors/colors/index.html | 3507 ------------- .../imgrid/colors/colors/js/backgroundswitcher.js | 38 - .../frontend/imgrid/colors/colors/js/colordict.js | 3 - .../imgrid/colors/colors/js/colordictionaries2.js | 3 - .../imgrid/colors/colors/js/ditherbackground.gif | Bin 52 -> 0 bytes .../imgrid/colors/colors/js/goldenfunctions.js | 33 - .../imgrid/colors/colors/js/hexrgbnametoggle.js | 148 - .../imgrid/colors/colors/js/hoverbackground.jpg | Bin 661 -> 0 bytes share/frontend/imgrid/colors/colors/js/hovercss.js | 31 - .../imgrid/colors/colors/js/iftransparentcss.js | 25 - .../imgrid/colors/colors/js/jquery-1.6.4.min.js | 4 - .../imgrid/colors/colors/js/jquery.cookie.js | 96 - .../imgrid/colors/colors/js/setupdimensions.js | 173 - .../imgrid/colors/colors/js/wrkshp/colors.html | 5429 -------------------- .../frontend/imgrid/colors/colors/js/wrkshp/hexes | 1 - .../imgrid/colors/colors/js/wrkshp/maker.py | 33 - .../frontend/imgrid/colors/colors/js/wrkshp/names | 1 - share/frontend/imgrid/colors/colors/js/wrkshp/rgbs | 1 - .../imgrid/colors/colors/junk/ScrollEffect.js | 86 - .../colors/colors/junk/ScrollEffectcomingsoon.js | 237 - share/frontend/imgrid/colors/colors/junk/brush.ani | Bin 12950 -> 0 bytes .../imgrid/colors/colors/junk/colordictOLD.js | 2 - .../imgrid/colors/colors/junk/colorpicker.html | 254 - .../imgrid/colors/colors/junk/colorpixx.css | 2047 -------- .../imgrid/colors/colors/junk/colorpixx.js | 92 - .../frontend/imgrid/colors/colors/junk/colors.html | 5429 -------------------- .../imgrid/colors/colors/junk/colorsbest.html | 3606 ------------- .../frontend/imgrid/colors/colors/junk/divlist.js | 2 - .../imgrid/colors/colors/junk/divlistmaker | 32 - .../imgrid/colors/colors/junk/mapmaker.html | 3586 ------------- share/frontend/imgrid/colors/colors/junk/picker.js | 15 - .../imgrid/colors/colors/junk/scrollio.html | 3850 -------------- share/frontend/imgrid/colors/colors/junk/separate | 126 - share/frontend/imgrid/colors/colors/junk/todo.txt | 135 - .../imgrid/colors/colors/junk/withscroller.html | 3850 -------------- share/frontend/imgrid/colors/colors/minimap.html | 3891 -------------- share/frontend/imgrid/colors/colors/minoan.gif | Bin 16077 -> 0 bytes share/frontend/imgrid/colors/colors/savior.html | 3582 ------------- share/frontend/imgrid/colors/colors/test.html | 56 - share/frontend/imgrid/colors/colors/vase.gif | Bin 8214 -> 0 bytes share/frontend/imgrid/colors/colors/vase.png | Bin 9650 -> 0 bytes share/frontend/imgrid/colors/colors/vaseshim.png | Bin 508 -> 0 bytes share/frontend/imgrid/colors/colors/whiteshim.png | Bin 395 -> 0 bytes share/frontend/imgrid/colors/grayshim.png | Bin 399 -> 0 bytes share/frontend/imgrid/colors/hoverbutton.png | Bin 1337 -> 0 bytes share/frontend/imgrid/colors/index.html | 3507 ------------- .../imgrid/colors/js/backgroundswitcher.js | 38 - share/frontend/imgrid/colors/js/colordict.js | 3 - .../imgrid/colors/js/colordictionaries2.js | 3 - .../frontend/imgrid/colors/js/ditherbackground.gif | Bin 52 -> 0 bytes share/frontend/imgrid/colors/js/goldenfunctions.js | 33 - .../frontend/imgrid/colors/js/hexrgbnametoggle.js | 148 - .../frontend/imgrid/colors/js/hoverbackground.jpg | Bin 661 -> 0 bytes share/frontend/imgrid/colors/js/hovercss.js | 31 - .../frontend/imgrid/colors/js/iftransparentcss.js | 25 - .../frontend/imgrid/colors/js/jquery-1.6.4.min.js | 4 - share/frontend/imgrid/colors/js/jquery.cookie.js | 96 - share/frontend/imgrid/colors/js/setupdimensions.js | 173 - share/frontend/imgrid/colors/js/wrkshp/colors.html | 5429 -------------------- share/frontend/imgrid/colors/js/wrkshp/hexes | 1 - share/frontend/imgrid/colors/js/wrkshp/maker.py | 33 - share/frontend/imgrid/colors/js/wrkshp/names | 1 - share/frontend/imgrid/colors/js/wrkshp/rgbs | 1 - share/frontend/imgrid/colors/junk/ScrollEffect.js | 86 - .../imgrid/colors/junk/ScrollEffectcomingsoon.js | 237 - share/frontend/imgrid/colors/junk/brush.ani | Bin 12950 -> 0 bytes share/frontend/imgrid/colors/junk/colordictOLD.js | 2 - share/frontend/imgrid/colors/junk/colorpicker.html | 254 - share/frontend/imgrid/colors/junk/colorpixx.css | 2047 -------- share/frontend/imgrid/colors/junk/colorpixx.js | 92 - share/frontend/imgrid/colors/junk/colors.html | 5429 -------------------- share/frontend/imgrid/colors/junk/colorsbest.html | 3606 ------------- share/frontend/imgrid/colors/junk/divlist.js | 2 - share/frontend/imgrid/colors/junk/divlistmaker | 32 - share/frontend/imgrid/colors/junk/mapmaker.html | 3586 ------------- share/frontend/imgrid/colors/junk/picker.js | 15 - share/frontend/imgrid/colors/junk/scrollio.html | 3850 -------------- share/frontend/imgrid/colors/junk/separate | 126 - share/frontend/imgrid/colors/junk/todo.txt | 135 - .../frontend/imgrid/colors/junk/withscroller.html | 3850 -------------- share/frontend/imgrid/colors/minimap.html | 3891 -------------- share/frontend/imgrid/colors/minoan.gif | Bin 16077 -> 0 bytes share/frontend/imgrid/colors/savior.html | 3582 ------------- share/frontend/imgrid/colors/test.html | 56 - share/frontend/imgrid/colors/vase.gif | Bin 8214 -> 0 bytes share/frontend/imgrid/colors/vase.png | Bin 9650 -> 0 bytes share/frontend/imgrid/colors/vaseshim.png | Bin 508 -> 0 bytes share/frontend/imgrid/colors/whiteshim.png | Bin 395 -> 0 bytes share/frontend/imgrid/dist/3dmap.jar | Bin 42525 -> 0 bytes share/frontend/imgrid/dist/3dmap.jnlp | 38 - .../imgrid/dist/deployment/v1/gluegen-rt.jnlp | 63 - .../dist/deployment/v1/jar/applet-launcher.jar | Bin 65584 -> 0 bytes .../v1/jar/gluegen-rt-natives-linux-amd64.jar | Bin 8213 -> 0 bytes .../v1/jar/gluegen-rt-natives-linux-i586.jar | Bin 8086 -> 0 bytes .../v1/jar/gluegen-rt-natives-macosx-ppc.jar | Bin 7167 -> 0 bytes .../v1/jar/gluegen-rt-natives-macosx-universal.jar | Bin 8474 -> 0 bytes .../v1/jar/gluegen-rt-natives-solaris-amd64.jar | Bin 8116 -> 0 bytes .../v1/jar/gluegen-rt-natives-solaris-i586.jar | Bin 7909 -> 0 bytes .../v1/jar/gluegen-rt-natives-solaris-sparc.jar | Bin 8345 -> 0 bytes .../v1/jar/gluegen-rt-natives-solaris-sparcv9.jar | Bin 8456 -> 0 bytes .../v1/jar/gluegen-rt-natives-windows-amd64.jar | Bin 8275 -> 0 bytes .../v1/jar/gluegen-rt-natives-windows-i586.jar | Bin 6783 -> 0 bytes .../imgrid/dist/deployment/v1/jar/gluegen-rt.jar | Bin 25059 -> 0 bytes .../deployment/v1/jar/jogl-natives-linux-amd64.jar | Bin 253122 -> 0 bytes .../deployment/v1/jar/jogl-natives-linux-i586.jar | Bin 228834 -> 0 bytes .../deployment/v1/jar/jogl-natives-macosx-ppc.jar | Bin 136490 -> 0 bytes .../v1/jar/jogl-natives-macosx-universal.jar | Bin 444191 -> 0 bytes .../v1/jar/jogl-natives-solaris-amd64.jar | Bin 191870 -> 0 bytes .../v1/jar/jogl-natives-solaris-i586.jar | Bin 234616 -> 0 bytes .../v1/jar/jogl-natives-solaris-sparc.jar | Bin 225183 -> 0 bytes .../v1/jar/jogl-natives-solaris-sparcv9.jar | Bin 214380 -> 0 bytes .../v1/jar/jogl-natives-windows-amd64.jar | Bin 77832 -> 0 bytes .../v1/jar/jogl-natives-windows-i586.jar | Bin 62493 -> 0 bytes .../imgrid/dist/deployment/v1/jar/jogl.jar | Bin 1174256 -> 0 bytes .../imgrid/dist/deployment/v1/jar/testKeys | Bin 1289 -> 0 bytes .../imgrid/dist/deployment/v1/jogl-awt.jnlp | 71 - .../imgrid/dist/http/commons-codec-1.4.jar | Bin 62139 -> 0 bytes .../imgrid/dist/http/commons-logging-1.1.1.jar | Bin 64455 -> 0 bytes .../frontend/imgrid/dist/http/httpclient-4.1.2.jar | Bin 376114 -> 0 bytes .../imgrid/dist/http/httpclient-cache-4.1.2.jar | Bin 111811 -> 0 bytes share/frontend/imgrid/dist/http/httpcore-4.1.2.jar | Bin 195688 -> 0 bytes share/frontend/imgrid/dist/http/httpmime-4.1.2.jar | Bin 29817 -> 0 bytes share/frontend/imgrid/dist/http/plugin.jar | Bin 1778787 -> 0 bytes share/frontend/imgrid/dist/index.html | 24 - share/frontend/imgrid/dist/temp/HeightMap.jpg | Bin 2779 -> 0 bytes share/frontend/imgrid/dist/temp/Texture.jpg | Bin 12198 -> 0 bytes share/frontend/imgrid/dist/testKeys | Bin 1289 -> 0 bytes .../frontend/imgrid/dist_embedded/3DMapAllWin.jar | Bin 5018834 -> 0 bytes share/frontend/imgrid/dist_embedded/index.html | 16 - share/frontend/imgrid/harrisbros.png | Bin 284176 -> 0 bytes share/frontend/imgrid/index.html | 2 +- share/frontend/imgrid/indexOLD.html | 140 - share/frontend/imgrid/indexnewold.html | 336 -- share/frontend/imgrid/indexold.html | 322 -- share/frontend/imgrid/intro.html | 106 - share/frontend/imgrid/jeremy.html | 2 +- share/frontend/imgrid/old.html | 461 -- share/frontend/imgrid/oldathena.gif | Bin 1007360 -> 0 bytes share/frontend/imgrid/oldindex.html | 307 -- share/frontend/imgrid/safety.html | 488 -- share/frontend/imgrid/test.gif | Bin 138525 -> 0 bytes share/frontend/imgrid/thatbackground.gif | Bin 110 -> 0 bytes share/frontend/imlandscape/README.md | 0 share/frontend/imlandscape/simple_proxy.py | 29 - share/frontend/impattern/app.pl | 34 - share/frontend/impattern/impattern.html | 254 - share/frontend/impattern/makePattern.py | 111 - share/frontend/impattern/newimagefromjson.py | 26 - share/frontend/impattern/old/bottle.py | 3605 ------------- share/frontend/impattern/old/index.html.old | 305 -- share/frontend/impattern/old/oldpatterns/1.png | Bin 90 -> 0 bytes share/frontend/impattern/old/oldpatterns/10.png | Bin 2484 -> 0 bytes share/frontend/impattern/old/oldpatterns/11.png | Bin 2484 -> 0 bytes share/frontend/impattern/old/oldpatterns/12.png | Bin 2483 -> 0 bytes share/frontend/impattern/old/oldpatterns/13.png | Bin 2467 -> 0 bytes share/frontend/impattern/old/oldpatterns/14.png | Bin 2478 -> 0 bytes share/frontend/impattern/old/oldpatterns/15.png | Bin 2487 -> 0 bytes share/frontend/impattern/old/oldpatterns/16.png | Bin 2480 -> 0 bytes share/frontend/impattern/old/oldpatterns/17.png | Bin 2461 -> 0 bytes share/frontend/impattern/old/oldpatterns/18.png | Bin 2475 -> 0 bytes share/frontend/impattern/old/oldpatterns/19.png | Bin 2471 -> 0 bytes share/frontend/impattern/old/oldpatterns/2.png | Bin 2470 -> 0 bytes share/frontend/impattern/old/oldpatterns/20.png | Bin 2472 -> 0 bytes share/frontend/impattern/old/oldpatterns/21.png | Bin 2472 -> 0 bytes share/frontend/impattern/old/oldpatterns/22.png | Bin 2477 -> 0 bytes share/frontend/impattern/old/oldpatterns/23.png | Bin 2472 -> 0 bytes share/frontend/impattern/old/oldpatterns/24.png | Bin 2467 -> 0 bytes share/frontend/impattern/old/oldpatterns/25.png | Bin 2473 -> 0 bytes share/frontend/impattern/old/oldpatterns/26.png | Bin 2480 -> 0 bytes share/frontend/impattern/old/oldpatterns/27.png | Bin 2482 -> 0 bytes share/frontend/impattern/old/oldpatterns/28.png | Bin 2482 -> 0 bytes share/frontend/impattern/old/oldpatterns/29.png | Bin 2487 -> 0 bytes share/frontend/impattern/old/oldpatterns/3.png | Bin 2469 -> 0 bytes share/frontend/impattern/old/oldpatterns/30.png | Bin 2487 -> 0 bytes share/frontend/impattern/old/oldpatterns/31.png | Bin 2478 -> 0 bytes share/frontend/impattern/old/oldpatterns/32.png | Bin 2465 -> 0 bytes share/frontend/impattern/old/oldpatterns/33.png | Bin 2484 -> 0 bytes share/frontend/impattern/old/oldpatterns/34.png | Bin 2484 -> 0 bytes share/frontend/impattern/old/oldpatterns/35.png | Bin 2476 -> 0 bytes share/frontend/impattern/old/oldpatterns/36.png | Bin 2490 -> 0 bytes share/frontend/impattern/old/oldpatterns/37.png | Bin 2495 -> 0 bytes share/frontend/impattern/old/oldpatterns/38.png | Bin 2492 -> 0 bytes share/frontend/impattern/old/oldpatterns/39.png | Bin 2482 -> 0 bytes share/frontend/impattern/old/oldpatterns/4.png | Bin 2465 -> 0 bytes share/frontend/impattern/old/oldpatterns/40.png | Bin 2485 -> 0 bytes share/frontend/impattern/old/oldpatterns/41.png | Bin 2496 -> 0 bytes share/frontend/impattern/old/oldpatterns/42.png | Bin 2494 -> 0 bytes share/frontend/impattern/old/oldpatterns/43.png | Bin 2490 -> 0 bytes share/frontend/impattern/old/oldpatterns/44.png | Bin 2491 -> 0 bytes share/frontend/impattern/old/oldpatterns/45.png | Bin 2484 -> 0 bytes share/frontend/impattern/old/oldpatterns/46.png | Bin 2490 -> 0 bytes share/frontend/impattern/old/oldpatterns/47.png | Bin 2486 -> 0 bytes share/frontend/impattern/old/oldpatterns/48.png | Bin 2490 -> 0 bytes share/frontend/impattern/old/oldpatterns/49.png | Bin 2483 -> 0 bytes share/frontend/impattern/old/oldpatterns/5.png | Bin 2476 -> 0 bytes share/frontend/impattern/old/oldpatterns/50.png | Bin 2486 -> 0 bytes share/frontend/impattern/old/oldpatterns/51.png | Bin 2485 -> 0 bytes share/frontend/impattern/old/oldpatterns/52.png | Bin 2490 -> 0 bytes share/frontend/impattern/old/oldpatterns/53.png | Bin 2494 -> 0 bytes share/frontend/impattern/old/oldpatterns/54.png | Bin 2491 -> 0 bytes share/frontend/impattern/old/oldpatterns/55.png | Bin 2474 -> 0 bytes share/frontend/impattern/old/oldpatterns/56.png | Bin 2492 -> 0 bytes share/frontend/impattern/old/oldpatterns/57.png | Bin 2492 -> 0 bytes share/frontend/impattern/old/oldpatterns/58.png | Bin 2487 -> 0 bytes share/frontend/impattern/old/oldpatterns/59.png | Bin 2493 -> 0 bytes share/frontend/impattern/old/oldpatterns/6.png | Bin 2480 -> 0 bytes share/frontend/impattern/old/oldpatterns/60.png | Bin 2488 -> 0 bytes share/frontend/impattern/old/oldpatterns/61.png | Bin 2492 -> 0 bytes share/frontend/impattern/old/oldpatterns/62.png | Bin 2487 -> 0 bytes share/frontend/impattern/old/oldpatterns/63.png | Bin 2494 -> 0 bytes share/frontend/impattern/old/oldpatterns/64.png | Bin 2487 -> 0 bytes share/frontend/impattern/old/oldpatterns/65.png | Bin 2467 -> 0 bytes share/frontend/impattern/old/oldpatterns/66.png | Bin 2471 -> 0 bytes share/frontend/impattern/old/oldpatterns/67.png | Bin 2470 -> 0 bytes share/frontend/impattern/old/oldpatterns/68.png | Bin 2471 -> 0 bytes share/frontend/impattern/old/oldpatterns/69.png | Bin 2470 -> 0 bytes share/frontend/impattern/old/oldpatterns/7.png | Bin 2474 -> 0 bytes share/frontend/impattern/old/oldpatterns/70.png | Bin 2473 -> 0 bytes share/frontend/impattern/old/oldpatterns/71.png | Bin 2477 -> 0 bytes share/frontend/impattern/old/oldpatterns/72.png | Bin 2476 -> 0 bytes share/frontend/impattern/old/oldpatterns/73.png | Bin 2484 -> 0 bytes share/frontend/impattern/old/oldpatterns/74.png | Bin 2486 -> 0 bytes share/frontend/impattern/old/oldpatterns/75.png | Bin 2490 -> 0 bytes share/frontend/impattern/old/oldpatterns/76.png | Bin 2484 -> 0 bytes share/frontend/impattern/old/oldpatterns/77.png | Bin 2492 -> 0 bytes share/frontend/impattern/old/oldpatterns/78.png | Bin 2491 -> 0 bytes share/frontend/impattern/old/oldpatterns/79.png | Bin 2496 -> 0 bytes share/frontend/impattern/old/oldpatterns/8.png | Bin 2476 -> 0 bytes share/frontend/impattern/old/oldpatterns/80.png | Bin 2493 -> 0 bytes share/frontend/impattern/old/oldpatterns/81.png | Bin 2462 -> 0 bytes share/frontend/impattern/old/oldpatterns/82.png | Bin 2472 -> 0 bytes share/frontend/impattern/old/oldpatterns/83.png | Bin 2462 -> 0 bytes share/frontend/impattern/old/oldpatterns/84.png | Bin 2467 -> 0 bytes share/frontend/impattern/old/oldpatterns/85.png | Bin 2462 -> 0 bytes share/frontend/impattern/old/oldpatterns/86.png | Bin 2468 -> 0 bytes share/frontend/impattern/old/oldpatterns/87.png | Bin 2472 -> 0 bytes share/frontend/impattern/old/oldpatterns/88.png | Bin 2475 -> 0 bytes share/frontend/impattern/old/oldpatterns/89.png | Bin 2467 -> 0 bytes share/frontend/impattern/old/oldpatterns/9.png | Bin 2477 -> 0 bytes share/frontend/impattern/old/oldpatterns/90.png | Bin 2471 -> 0 bytes share/frontend/impattern/old/oldpatterns/91.png | Bin 2467 -> 0 bytes share/frontend/impattern/old/oldpatterns/92.png | Bin 2470 -> 0 bytes share/frontend/impattern/old/oldpatterns/93.png | Bin 2483 -> 0 bytes share/frontend/impattern/old/oldpatterns/94.png | Bin 2485 -> 0 bytes share/frontend/impattern/old/oldpatterns/95.png | Bin 2485 -> 0 bytes share/frontend/impattern/old/oldpatterns/96.png | Bin 2477 -> 0 bytes share/frontend/impattern/old/oldpatterns/a0.png | Bin 138 -> 0 bytes share/frontend/impattern/old/oldpatterns/a1.png | Bin 122 -> 0 bytes share/frontend/impattern/old/oldpatterns/a10.png | Bin 129 -> 0 bytes share/frontend/impattern/old/oldpatterns/a11.png | Bin 138 -> 0 bytes share/frontend/impattern/old/oldpatterns/a12.png | Bin 125 -> 0 bytes share/frontend/impattern/old/oldpatterns/a13.png | Bin 132 -> 0 bytes share/frontend/impattern/old/oldpatterns/a14.png | Bin 91 -> 0 bytes share/frontend/impattern/old/oldpatterns/a15.png | Bin 143 -> 0 bytes share/frontend/impattern/old/oldpatterns/a16.png | Bin 87 -> 0 bytes share/frontend/impattern/old/oldpatterns/a17.png | Bin 93 -> 0 bytes share/frontend/impattern/old/oldpatterns/a18.png | Bin 163 -> 0 bytes share/frontend/impattern/old/oldpatterns/a19.png | Bin 119 -> 0 bytes share/frontend/impattern/old/oldpatterns/a2.png | Bin 123 -> 0 bytes share/frontend/impattern/old/oldpatterns/a20.png | Bin 83 -> 0 bytes share/frontend/impattern/old/oldpatterns/a21.png | Bin 111 -> 0 bytes share/frontend/impattern/old/oldpatterns/a22.png | Bin 137 -> 0 bytes share/frontend/impattern/old/oldpatterns/a23.png | Bin 116 -> 0 bytes share/frontend/impattern/old/oldpatterns/a24.png | Bin 96 -> 0 bytes share/frontend/impattern/old/oldpatterns/a25.png | Bin 108 -> 0 bytes share/frontend/impattern/old/oldpatterns/a26.png | Bin 138 -> 0 bytes share/frontend/impattern/old/oldpatterns/a27.png | Bin 108 -> 0 bytes share/frontend/impattern/old/oldpatterns/a28.png | Bin 115 -> 0 bytes share/frontend/impattern/old/oldpatterns/a29.png | Bin 93 -> 0 bytes share/frontend/impattern/old/oldpatterns/a3.png | Bin 124 -> 0 bytes share/frontend/impattern/old/oldpatterns/a30.png | Bin 88 -> 0 bytes share/frontend/impattern/old/oldpatterns/a31.png | Bin 114 -> 0 bytes share/frontend/impattern/old/oldpatterns/a32.png | Bin 139 -> 0 bytes share/frontend/impattern/old/oldpatterns/a33.png | Bin 127 -> 0 bytes share/frontend/impattern/old/oldpatterns/a34.png | Bin 92 -> 0 bytes share/frontend/impattern/old/oldpatterns/a35.png | Bin 91 -> 0 bytes share/frontend/impattern/old/oldpatterns/a36.png | Bin 87 -> 0 bytes share/frontend/impattern/old/oldpatterns/a37.png | Bin 89 -> 0 bytes share/frontend/impattern/old/oldpatterns/a38.png | Bin 83 -> 0 bytes share/frontend/impattern/old/oldpatterns/a39.png | Bin 132 -> 0 bytes share/frontend/impattern/old/oldpatterns/a4.png | Bin 92 -> 0 bytes share/frontend/impattern/old/oldpatterns/a40.png | Bin 138 -> 0 bytes share/frontend/impattern/old/oldpatterns/a41.png | Bin 113 -> 0 bytes share/frontend/impattern/old/oldpatterns/a5.png | Bin 120 -> 0 bytes share/frontend/impattern/old/oldpatterns/a6.png | Bin 105 -> 0 bytes share/frontend/impattern/old/oldpatterns/a7.png | Bin 106 -> 0 bytes share/frontend/impattern/old/oldpatterns/a8.png | Bin 110 -> 0 bytes share/frontend/impattern/old/oldpatterns/a9.png | Bin 110 -> 0 bytes share/frontend/impattern/other_script.py | 90 - share/frontend/impattern/semi_patterns/1.png | Bin 90 -> 0 bytes share/frontend/impattern/semi_patterns/10.png | Bin 2484 -> 0 bytes share/frontend/impattern/semi_patterns/11.png | Bin 2484 -> 0 bytes share/frontend/impattern/semi_patterns/12.png | Bin 2483 -> 0 bytes share/frontend/impattern/semi_patterns/13.png | Bin 2467 -> 0 bytes share/frontend/impattern/semi_patterns/14.png | Bin 2478 -> 0 bytes share/frontend/impattern/semi_patterns/15.png | Bin 2487 -> 0 bytes share/frontend/impattern/semi_patterns/16.png | Bin 2480 -> 0 bytes share/frontend/impattern/semi_patterns/17.png | Bin 2461 -> 0 bytes share/frontend/impattern/semi_patterns/18.png | Bin 2475 -> 0 bytes share/frontend/impattern/semi_patterns/19.png | Bin 2471 -> 0 bytes share/frontend/impattern/semi_patterns/2.png | Bin 2470 -> 0 bytes share/frontend/impattern/semi_patterns/20.png | Bin 2472 -> 0 bytes share/frontend/impattern/semi_patterns/21.png | Bin 2472 -> 0 bytes share/frontend/impattern/semi_patterns/22.png | Bin 2477 -> 0 bytes share/frontend/impattern/semi_patterns/23.png | Bin 2472 -> 0 bytes share/frontend/impattern/semi_patterns/24.png | Bin 2467 -> 0 bytes share/frontend/impattern/semi_patterns/25.png | Bin 2473 -> 0 bytes share/frontend/impattern/semi_patterns/26.png | Bin 2480 -> 0 bytes share/frontend/impattern/semi_patterns/27.png | Bin 2482 -> 0 bytes share/frontend/impattern/semi_patterns/28.png | Bin 2482 -> 0 bytes share/frontend/impattern/semi_patterns/29.png | Bin 2487 -> 0 bytes share/frontend/impattern/semi_patterns/3.png | Bin 2469 -> 0 bytes share/frontend/impattern/semi_patterns/30.png | Bin 2487 -> 0 bytes share/frontend/impattern/semi_patterns/31.png | Bin 2478 -> 0 bytes share/frontend/impattern/semi_patterns/32.png | Bin 2465 -> 0 bytes share/frontend/impattern/semi_patterns/33.png | Bin 2484 -> 0 bytes share/frontend/impattern/semi_patterns/34.png | Bin 2484 -> 0 bytes share/frontend/impattern/semi_patterns/35.png | Bin 2476 -> 0 bytes share/frontend/impattern/semi_patterns/36.png | Bin 2490 -> 0 bytes share/frontend/impattern/semi_patterns/37.png | Bin 2495 -> 0 bytes share/frontend/impattern/semi_patterns/38.png | Bin 2492 -> 0 bytes share/frontend/impattern/semi_patterns/39.png | Bin 2482 -> 0 bytes share/frontend/impattern/semi_patterns/4.png | Bin 2465 -> 0 bytes share/frontend/impattern/semi_patterns/40.png | Bin 2485 -> 0 bytes share/frontend/impattern/semi_patterns/41.png | Bin 2496 -> 0 bytes share/frontend/impattern/semi_patterns/42.png | Bin 2494 -> 0 bytes share/frontend/impattern/semi_patterns/43.png | Bin 2490 -> 0 bytes share/frontend/impattern/semi_patterns/44.png | Bin 2491 -> 0 bytes share/frontend/impattern/semi_patterns/45.png | Bin 2484 -> 0 bytes share/frontend/impattern/semi_patterns/46.png | Bin 2490 -> 0 bytes share/frontend/impattern/semi_patterns/47.png | Bin 2486 -> 0 bytes share/frontend/impattern/semi_patterns/48.png | Bin 2490 -> 0 bytes share/frontend/impattern/semi_patterns/49.png | Bin 2483 -> 0 bytes share/frontend/impattern/semi_patterns/5.png | Bin 2476 -> 0 bytes share/frontend/impattern/semi_patterns/50.png | Bin 2486 -> 0 bytes share/frontend/impattern/semi_patterns/51.png | Bin 2485 -> 0 bytes share/frontend/impattern/semi_patterns/52.png | Bin 2490 -> 0 bytes share/frontend/impattern/semi_patterns/53.png | Bin 2494 -> 0 bytes share/frontend/impattern/semi_patterns/54.png | Bin 2491 -> 0 bytes share/frontend/impattern/semi_patterns/55.png | Bin 2474 -> 0 bytes share/frontend/impattern/semi_patterns/56.png | Bin 2492 -> 0 bytes share/frontend/impattern/semi_patterns/57.png | Bin 2492 -> 0 bytes share/frontend/impattern/semi_patterns/58.png | Bin 2487 -> 0 bytes share/frontend/impattern/semi_patterns/59.png | Bin 2493 -> 0 bytes share/frontend/impattern/semi_patterns/6.png | Bin 2480 -> 0 bytes share/frontend/impattern/semi_patterns/60.png | Bin 2488 -> 0 bytes share/frontend/impattern/semi_patterns/61.png | Bin 2492 -> 0 bytes share/frontend/impattern/semi_patterns/62.png | Bin 2487 -> 0 bytes share/frontend/impattern/semi_patterns/63.png | Bin 2494 -> 0 bytes share/frontend/impattern/semi_patterns/64.png | Bin 2487 -> 0 bytes share/frontend/impattern/semi_patterns/65.png | Bin 2467 -> 0 bytes share/frontend/impattern/semi_patterns/66.png | Bin 2471 -> 0 bytes share/frontend/impattern/semi_patterns/67.png | Bin 2470 -> 0 bytes share/frontend/impattern/semi_patterns/68.png | Bin 2471 -> 0 bytes share/frontend/impattern/semi_patterns/69.png | Bin 2470 -> 0 bytes share/frontend/impattern/semi_patterns/7.png | Bin 2474 -> 0 bytes share/frontend/impattern/semi_patterns/70.png | Bin 2473 -> 0 bytes share/frontend/impattern/semi_patterns/71.png | Bin 2477 -> 0 bytes share/frontend/impattern/semi_patterns/72.png | Bin 2476 -> 0 bytes share/frontend/impattern/semi_patterns/73.png | Bin 2484 -> 0 bytes share/frontend/impattern/semi_patterns/74.png | Bin 2486 -> 0 bytes share/frontend/impattern/semi_patterns/75.png | Bin 2490 -> 0 bytes share/frontend/impattern/semi_patterns/76.png | Bin 2484 -> 0 bytes share/frontend/impattern/semi_patterns/77.png | Bin 2492 -> 0 bytes share/frontend/impattern/semi_patterns/78.png | Bin 2491 -> 0 bytes share/frontend/impattern/semi_patterns/79.png | Bin 2496 -> 0 bytes share/frontend/impattern/semi_patterns/8.png | Bin 2476 -> 0 bytes share/frontend/impattern/semi_patterns/80.png | Bin 2493 -> 0 bytes share/frontend/impattern/semi_patterns/81.png | Bin 2462 -> 0 bytes share/frontend/impattern/semi_patterns/82.png | Bin 2472 -> 0 bytes share/frontend/impattern/semi_patterns/83.png | Bin 2462 -> 0 bytes share/frontend/impattern/semi_patterns/84.png | Bin 2467 -> 0 bytes share/frontend/impattern/semi_patterns/85.png | Bin 2462 -> 0 bytes share/frontend/impattern/semi_patterns/86.png | Bin 2468 -> 0 bytes share/frontend/impattern/semi_patterns/87.png | Bin 2472 -> 0 bytes share/frontend/impattern/semi_patterns/88.png | Bin 2475 -> 0 bytes share/frontend/impattern/semi_patterns/89.png | Bin 2467 -> 0 bytes share/frontend/impattern/semi_patterns/9.png | Bin 2477 -> 0 bytes share/frontend/impattern/semi_patterns/90.png | Bin 2471 -> 0 bytes share/frontend/impattern/semi_patterns/91.png | Bin 2467 -> 0 bytes share/frontend/impattern/semi_patterns/92.png | Bin 2470 -> 0 bytes share/frontend/impattern/semi_patterns/93.png | Bin 2483 -> 0 bytes share/frontend/impattern/semi_patterns/94.png | Bin 2485 -> 0 bytes share/frontend/impattern/semi_patterns/95.png | Bin 2485 -> 0 bytes share/frontend/impattern/semi_patterns/96.png | Bin 2477 -> 0 bytes share/frontend/impattern/semi_patterns/a0.png | Bin 138 -> 0 bytes share/frontend/impattern/semi_patterns/a1.png | Bin 122 -> 0 bytes share/frontend/impattern/semi_patterns/a10.png | Bin 129 -> 0 bytes share/frontend/impattern/semi_patterns/a11.png | Bin 138 -> 0 bytes share/frontend/impattern/semi_patterns/a12.png | Bin 125 -> 0 bytes share/frontend/impattern/semi_patterns/a13.png | Bin 132 -> 0 bytes share/frontend/impattern/semi_patterns/a14.png | Bin 91 -> 0 bytes share/frontend/impattern/semi_patterns/a15.png | Bin 143 -> 0 bytes share/frontend/impattern/semi_patterns/a16.png | Bin 87 -> 0 bytes share/frontend/impattern/semi_patterns/a17.png | Bin 93 -> 0 bytes share/frontend/impattern/semi_patterns/a18.png | Bin 163 -> 0 bytes share/frontend/impattern/semi_patterns/a19.png | Bin 119 -> 0 bytes share/frontend/impattern/semi_patterns/a2.png | Bin 123 -> 0 bytes share/frontend/impattern/semi_patterns/a20.png | Bin 83 -> 0 bytes share/frontend/impattern/semi_patterns/a21.png | Bin 111 -> 0 bytes share/frontend/impattern/semi_patterns/a22.png | Bin 137 -> 0 bytes share/frontend/impattern/semi_patterns/a23.png | Bin 116 -> 0 bytes share/frontend/impattern/semi_patterns/a24.png | Bin 96 -> 0 bytes share/frontend/impattern/semi_patterns/a25.png | Bin 108 -> 0 bytes share/frontend/impattern/semi_patterns/a26.png | Bin 138 -> 0 bytes share/frontend/impattern/semi_patterns/a27.png | Bin 108 -> 0 bytes share/frontend/impattern/semi_patterns/a28.png | Bin 115 -> 0 bytes share/frontend/impattern/semi_patterns/a29.png | Bin 93 -> 0 bytes share/frontend/impattern/semi_patterns/a3.png | Bin 124 -> 0 bytes share/frontend/impattern/semi_patterns/a30.png | Bin 88 -> 0 bytes share/frontend/impattern/semi_patterns/a31.png | Bin 114 -> 0 bytes share/frontend/impattern/semi_patterns/a32.png | Bin 139 -> 0 bytes share/frontend/impattern/semi_patterns/a33.png | Bin 127 -> 0 bytes share/frontend/impattern/semi_patterns/a34.png | Bin 92 -> 0 bytes share/frontend/impattern/semi_patterns/a35.png | Bin 91 -> 0 bytes share/frontend/impattern/semi_patterns/a36.png | Bin 87 -> 0 bytes share/frontend/impattern/semi_patterns/a37.png | Bin 89 -> 0 bytes share/frontend/impattern/semi_patterns/a38.png | Bin 83 -> 0 bytes share/frontend/impattern/semi_patterns/a39.png | Bin 132 -> 0 bytes share/frontend/impattern/semi_patterns/a4.png | Bin 92 -> 0 bytes share/frontend/impattern/semi_patterns/a40.png | Bin 138 -> 0 bytes share/frontend/impattern/semi_patterns/a41.png | Bin 113 -> 0 bytes share/frontend/impattern/semi_patterns/a5.png | Bin 120 -> 0 bytes share/frontend/impattern/semi_patterns/a6.png | Bin 105 -> 0 bytes share/frontend/impattern/semi_patterns/a7.png | Bin 106 -> 0 bytes share/frontend/impattern/semi_patterns/a8.png | Bin 110 -> 0 bytes share/frontend/impattern/semi_patterns/a9.png | Bin 110 -> 0 bytes share/frontend/js/zepto-0.7.zip | Bin 71083 -> 0 bytes share/frontend/js/zepto.js | 4 - 455 files changed, 2 insertions(+), 93691 deletions(-) delete mode 100755 share/frontend/im/HTACCESS delete mode 100755 share/frontend/im/THEHTACCESS delete mode 100755 share/frontend/im/newimagemaker.html delete mode 100755 share/frontend/imdither/.gitignore delete mode 100755 share/frontend/imdither/18.bmp delete mode 100755 share/frontend/imdither/bottle.py delete mode 100755 share/frontend/imdither/imdither.html delete mode 100755 share/frontend/imdither/img/logo.png delete mode 100755 share/frontend/imdither/jquery.min.js delete mode 100755 share/frontend/imdither/makeDither.py delete mode 100755 share/frontend/imdither/pbutils.py delete mode 100755 share/frontend/imdither/run.py delete mode 100755 share/frontend/imdither/s3.py delete mode 100755 share/frontend/imdither/urlDownload.py delete mode 100755 share/frontend/imgrid/3ddirs.txt delete mode 100755 share/frontend/imgrid/athenafinal.gif delete mode 100755 share/frontend/imgrid/backup.html delete mode 100755 share/frontend/imgrid/blackplant2.png delete mode 100755 share/frontend/imgrid/blackplant3.png delete mode 100755 share/frontend/imgrid/colordictbackup.js delete mode 100755 share/frontend/imgrid/colors/1.html delete mode 100755 share/frontend/imgrid/colors/blackshim.png delete mode 100755 share/frontend/imgrid/colors/colors/1.html delete mode 100755 share/frontend/imgrid/colors/colors/blackshim.png delete mode 100755 share/frontend/imgrid/colors/colors/grayshim.png delete mode 100755 share/frontend/imgrid/colors/colors/hoverbutton.png delete mode 100755 share/frontend/imgrid/colors/colors/index.html delete mode 100755 share/frontend/imgrid/colors/colors/js/backgroundswitcher.js delete mode 100755 share/frontend/imgrid/colors/colors/js/colordict.js delete mode 100755 share/frontend/imgrid/colors/colors/js/colordictionaries2.js delete mode 100755 share/frontend/imgrid/colors/colors/js/ditherbackground.gif delete mode 100755 share/frontend/imgrid/colors/colors/js/goldenfunctions.js delete mode 100755 share/frontend/imgrid/colors/colors/js/hexrgbnametoggle.js delete mode 100755 share/frontend/imgrid/colors/colors/js/hoverbackground.jpg delete mode 100755 share/frontend/imgrid/colors/colors/js/hovercss.js delete mode 100755 share/frontend/imgrid/colors/colors/js/iftransparentcss.js delete mode 100755 share/frontend/imgrid/colors/colors/js/jquery-1.6.4.min.js delete mode 100755 share/frontend/imgrid/colors/colors/js/jquery.cookie.js delete mode 100755 share/frontend/imgrid/colors/colors/js/setupdimensions.js delete mode 100755 share/frontend/imgrid/colors/colors/js/wrkshp/colors.html delete mode 100755 share/frontend/imgrid/colors/colors/js/wrkshp/hexes delete mode 100755 share/frontend/imgrid/colors/colors/js/wrkshp/maker.py delete mode 100755 share/frontend/imgrid/colors/colors/js/wrkshp/names delete mode 100755 share/frontend/imgrid/colors/colors/js/wrkshp/rgbs delete mode 100755 share/frontend/imgrid/colors/colors/junk/ScrollEffect.js delete mode 100755 share/frontend/imgrid/colors/colors/junk/ScrollEffectcomingsoon.js delete mode 100755 share/frontend/imgrid/colors/colors/junk/brush.ani delete mode 100755 share/frontend/imgrid/colors/colors/junk/colordictOLD.js delete mode 100755 share/frontend/imgrid/colors/colors/junk/colorpicker.html delete mode 100755 share/frontend/imgrid/colors/colors/junk/colorpixx.css delete mode 100755 share/frontend/imgrid/colors/colors/junk/colorpixx.js delete mode 100755 share/frontend/imgrid/colors/colors/junk/colors.html delete mode 100755 share/frontend/imgrid/colors/colors/junk/colorsbest.html delete mode 100755 share/frontend/imgrid/colors/colors/junk/divlist.js delete mode 100755 share/frontend/imgrid/colors/colors/junk/divlistmaker delete mode 100755 share/frontend/imgrid/colors/colors/junk/mapmaker.html delete mode 100755 share/frontend/imgrid/colors/colors/junk/picker.js delete mode 100755 share/frontend/imgrid/colors/colors/junk/scrollio.html delete mode 100755 share/frontend/imgrid/colors/colors/junk/separate delete mode 100755 share/frontend/imgrid/colors/colors/junk/todo.txt delete mode 100755 share/frontend/imgrid/colors/colors/junk/withscroller.html delete mode 100755 share/frontend/imgrid/colors/colors/minimap.html delete mode 100755 share/frontend/imgrid/colors/colors/minoan.gif delete mode 100755 share/frontend/imgrid/colors/colors/savior.html delete mode 100755 share/frontend/imgrid/colors/colors/test.html delete mode 100755 share/frontend/imgrid/colors/colors/vase.gif delete mode 100755 share/frontend/imgrid/colors/colors/vase.png delete mode 100755 share/frontend/imgrid/colors/colors/vaseshim.png delete mode 100755 share/frontend/imgrid/colors/colors/whiteshim.png delete mode 100755 share/frontend/imgrid/colors/grayshim.png delete mode 100755 share/frontend/imgrid/colors/hoverbutton.png delete mode 100755 share/frontend/imgrid/colors/index.html delete mode 100755 share/frontend/imgrid/colors/js/backgroundswitcher.js delete mode 100755 share/frontend/imgrid/colors/js/colordict.js delete mode 100755 share/frontend/imgrid/colors/js/colordictionaries2.js delete mode 100755 share/frontend/imgrid/colors/js/ditherbackground.gif delete mode 100755 share/frontend/imgrid/colors/js/goldenfunctions.js delete mode 100755 share/frontend/imgrid/colors/js/hexrgbnametoggle.js delete mode 100755 share/frontend/imgrid/colors/js/hoverbackground.jpg delete mode 100755 share/frontend/imgrid/colors/js/hovercss.js delete mode 100755 share/frontend/imgrid/colors/js/iftransparentcss.js delete mode 100755 share/frontend/imgrid/colors/js/jquery-1.6.4.min.js delete mode 100755 share/frontend/imgrid/colors/js/jquery.cookie.js delete mode 100755 share/frontend/imgrid/colors/js/setupdimensions.js delete mode 100755 share/frontend/imgrid/colors/js/wrkshp/colors.html delete mode 100755 share/frontend/imgrid/colors/js/wrkshp/hexes delete mode 100755 share/frontend/imgrid/colors/js/wrkshp/maker.py delete mode 100755 share/frontend/imgrid/colors/js/wrkshp/names delete mode 100755 share/frontend/imgrid/colors/js/wrkshp/rgbs delete mode 100755 share/frontend/imgrid/colors/junk/ScrollEffect.js delete mode 100755 share/frontend/imgrid/colors/junk/ScrollEffectcomingsoon.js delete mode 100755 share/frontend/imgrid/colors/junk/brush.ani delete mode 100755 share/frontend/imgrid/colors/junk/colordictOLD.js delete mode 100755 share/frontend/imgrid/colors/junk/colorpicker.html delete mode 100755 share/frontend/imgrid/colors/junk/colorpixx.css delete mode 100755 share/frontend/imgrid/colors/junk/colorpixx.js delete mode 100755 share/frontend/imgrid/colors/junk/colors.html delete mode 100755 share/frontend/imgrid/colors/junk/colorsbest.html delete mode 100755 share/frontend/imgrid/colors/junk/divlist.js delete mode 100755 share/frontend/imgrid/colors/junk/divlistmaker delete mode 100755 share/frontend/imgrid/colors/junk/mapmaker.html delete mode 100755 share/frontend/imgrid/colors/junk/picker.js delete mode 100755 share/frontend/imgrid/colors/junk/scrollio.html delete mode 100755 share/frontend/imgrid/colors/junk/separate delete mode 100755 share/frontend/imgrid/colors/junk/todo.txt delete mode 100755 share/frontend/imgrid/colors/junk/withscroller.html delete mode 100755 share/frontend/imgrid/colors/minimap.html delete mode 100755 share/frontend/imgrid/colors/minoan.gif delete mode 100755 share/frontend/imgrid/colors/savior.html delete mode 100755 share/frontend/imgrid/colors/test.html delete mode 100755 share/frontend/imgrid/colors/vase.gif delete mode 100755 share/frontend/imgrid/colors/vase.png delete mode 100755 share/frontend/imgrid/colors/vaseshim.png delete mode 100755 share/frontend/imgrid/colors/whiteshim.png delete mode 100755 share/frontend/imgrid/dist/3dmap.jar delete mode 100755 share/frontend/imgrid/dist/3dmap.jnlp delete mode 100755 share/frontend/imgrid/dist/deployment/v1/gluegen-rt.jnlp delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/applet-launcher.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-linux-amd64.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-linux-i586.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-macosx-ppc.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-macosx-universal.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-amd64.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-i586.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-sparc.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-sparcv9.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-windows-amd64.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-windows-i586.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-linux-amd64.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-linux-i586.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-macosx-ppc.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-macosx-universal.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-amd64.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-i586.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-sparc.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-sparcv9.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-windows-amd64.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-windows-i586.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/jogl.jar delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jar/testKeys delete mode 100755 share/frontend/imgrid/dist/deployment/v1/jogl-awt.jnlp delete mode 100755 share/frontend/imgrid/dist/http/commons-codec-1.4.jar delete mode 100755 share/frontend/imgrid/dist/http/commons-logging-1.1.1.jar delete mode 100755 share/frontend/imgrid/dist/http/httpclient-4.1.2.jar delete mode 100755 share/frontend/imgrid/dist/http/httpclient-cache-4.1.2.jar delete mode 100755 share/frontend/imgrid/dist/http/httpcore-4.1.2.jar delete mode 100755 share/frontend/imgrid/dist/http/httpmime-4.1.2.jar delete mode 100755 share/frontend/imgrid/dist/http/plugin.jar delete mode 100755 share/frontend/imgrid/dist/index.html delete mode 100755 share/frontend/imgrid/dist/temp/HeightMap.jpg delete mode 100755 share/frontend/imgrid/dist/temp/Texture.jpg delete mode 100755 share/frontend/imgrid/dist/testKeys delete mode 100755 share/frontend/imgrid/dist_embedded/3DMapAllWin.jar delete mode 100755 share/frontend/imgrid/dist_embedded/index.html delete mode 100755 share/frontend/imgrid/harrisbros.png delete mode 100755 share/frontend/imgrid/indexOLD.html delete mode 100755 share/frontend/imgrid/indexnewold.html delete mode 100755 share/frontend/imgrid/indexold.html delete mode 100755 share/frontend/imgrid/intro.html delete mode 100755 share/frontend/imgrid/old.html delete mode 100755 share/frontend/imgrid/oldathena.gif delete mode 100755 share/frontend/imgrid/oldindex.html delete mode 100755 share/frontend/imgrid/safety.html delete mode 100755 share/frontend/imgrid/test.gif delete mode 100755 share/frontend/imgrid/thatbackground.gif delete mode 100644 share/frontend/imlandscape/README.md delete mode 100644 share/frontend/imlandscape/simple_proxy.py delete mode 100644 share/frontend/impattern/app.pl delete mode 100644 share/frontend/impattern/impattern.html delete mode 100755 share/frontend/impattern/makePattern.py delete mode 100644 share/frontend/impattern/newimagefromjson.py delete mode 100644 share/frontend/impattern/old/bottle.py delete mode 100644 share/frontend/impattern/old/index.html.old delete mode 100644 share/frontend/impattern/old/oldpatterns/1.png delete mode 100644 share/frontend/impattern/old/oldpatterns/10.png delete mode 100644 share/frontend/impattern/old/oldpatterns/11.png delete mode 100644 share/frontend/impattern/old/oldpatterns/12.png delete mode 100644 share/frontend/impattern/old/oldpatterns/13.png delete mode 100644 share/frontend/impattern/old/oldpatterns/14.png delete mode 100644 share/frontend/impattern/old/oldpatterns/15.png delete mode 100644 share/frontend/impattern/old/oldpatterns/16.png delete mode 100644 share/frontend/impattern/old/oldpatterns/17.png delete mode 100644 share/frontend/impattern/old/oldpatterns/18.png delete mode 100644 share/frontend/impattern/old/oldpatterns/19.png delete mode 100644 share/frontend/impattern/old/oldpatterns/2.png delete mode 100644 share/frontend/impattern/old/oldpatterns/20.png delete mode 100644 share/frontend/impattern/old/oldpatterns/21.png delete mode 100644 share/frontend/impattern/old/oldpatterns/22.png delete mode 100644 share/frontend/impattern/old/oldpatterns/23.png delete mode 100644 share/frontend/impattern/old/oldpatterns/24.png delete mode 100644 share/frontend/impattern/old/oldpatterns/25.png delete mode 100644 share/frontend/impattern/old/oldpatterns/26.png delete mode 100644 share/frontend/impattern/old/oldpatterns/27.png delete mode 100644 share/frontend/impattern/old/oldpatterns/28.png delete mode 100644 share/frontend/impattern/old/oldpatterns/29.png delete mode 100644 share/frontend/impattern/old/oldpatterns/3.png delete mode 100644 share/frontend/impattern/old/oldpatterns/30.png delete mode 100644 share/frontend/impattern/old/oldpatterns/31.png delete mode 100644 share/frontend/impattern/old/oldpatterns/32.png delete mode 100644 share/frontend/impattern/old/oldpatterns/33.png delete mode 100644 share/frontend/impattern/old/oldpatterns/34.png delete mode 100644 share/frontend/impattern/old/oldpatterns/35.png delete mode 100644 share/frontend/impattern/old/oldpatterns/36.png delete mode 100644 share/frontend/impattern/old/oldpatterns/37.png delete mode 100644 share/frontend/impattern/old/oldpatterns/38.png delete mode 100644 share/frontend/impattern/old/oldpatterns/39.png delete mode 100644 share/frontend/impattern/old/oldpatterns/4.png delete mode 100644 share/frontend/impattern/old/oldpatterns/40.png delete mode 100644 share/frontend/impattern/old/oldpatterns/41.png delete mode 100644 share/frontend/impattern/old/oldpatterns/42.png delete mode 100644 share/frontend/impattern/old/oldpatterns/43.png delete mode 100644 share/frontend/impattern/old/oldpatterns/44.png delete mode 100644 share/frontend/impattern/old/oldpatterns/45.png delete mode 100644 share/frontend/impattern/old/oldpatterns/46.png delete mode 100644 share/frontend/impattern/old/oldpatterns/47.png delete mode 100644 share/frontend/impattern/old/oldpatterns/48.png delete mode 100644 share/frontend/impattern/old/oldpatterns/49.png delete mode 100644 share/frontend/impattern/old/oldpatterns/5.png delete mode 100644 share/frontend/impattern/old/oldpatterns/50.png delete mode 100644 share/frontend/impattern/old/oldpatterns/51.png delete mode 100644 share/frontend/impattern/old/oldpatterns/52.png delete mode 100644 share/frontend/impattern/old/oldpatterns/53.png delete mode 100644 share/frontend/impattern/old/oldpatterns/54.png delete mode 100644 share/frontend/impattern/old/oldpatterns/55.png delete mode 100644 share/frontend/impattern/old/oldpatterns/56.png delete mode 100644 share/frontend/impattern/old/oldpatterns/57.png delete mode 100644 share/frontend/impattern/old/oldpatterns/58.png delete mode 100644 share/frontend/impattern/old/oldpatterns/59.png delete mode 100644 share/frontend/impattern/old/oldpatterns/6.png delete mode 100644 share/frontend/impattern/old/oldpatterns/60.png delete mode 100644 share/frontend/impattern/old/oldpatterns/61.png delete mode 100644 share/frontend/impattern/old/oldpatterns/62.png delete mode 100644 share/frontend/impattern/old/oldpatterns/63.png delete mode 100644 share/frontend/impattern/old/oldpatterns/64.png delete mode 100644 share/frontend/impattern/old/oldpatterns/65.png delete mode 100644 share/frontend/impattern/old/oldpatterns/66.png delete mode 100644 share/frontend/impattern/old/oldpatterns/67.png delete mode 100644 share/frontend/impattern/old/oldpatterns/68.png delete mode 100644 share/frontend/impattern/old/oldpatterns/69.png delete mode 100644 share/frontend/impattern/old/oldpatterns/7.png delete mode 100644 share/frontend/impattern/old/oldpatterns/70.png delete mode 100644 share/frontend/impattern/old/oldpatterns/71.png delete mode 100644 share/frontend/impattern/old/oldpatterns/72.png delete mode 100644 share/frontend/impattern/old/oldpatterns/73.png delete mode 100644 share/frontend/impattern/old/oldpatterns/74.png delete mode 100644 share/frontend/impattern/old/oldpatterns/75.png delete mode 100644 share/frontend/impattern/old/oldpatterns/76.png delete mode 100644 share/frontend/impattern/old/oldpatterns/77.png delete mode 100644 share/frontend/impattern/old/oldpatterns/78.png delete mode 100644 share/frontend/impattern/old/oldpatterns/79.png delete mode 100644 share/frontend/impattern/old/oldpatterns/8.png delete mode 100644 share/frontend/impattern/old/oldpatterns/80.png delete mode 100644 share/frontend/impattern/old/oldpatterns/81.png delete mode 100644 share/frontend/impattern/old/oldpatterns/82.png delete mode 100644 share/frontend/impattern/old/oldpatterns/83.png delete mode 100644 share/frontend/impattern/old/oldpatterns/84.png delete mode 100644 share/frontend/impattern/old/oldpatterns/85.png delete mode 100644 share/frontend/impattern/old/oldpatterns/86.png delete mode 100644 share/frontend/impattern/old/oldpatterns/87.png delete mode 100644 share/frontend/impattern/old/oldpatterns/88.png delete mode 100644 share/frontend/impattern/old/oldpatterns/89.png delete mode 100644 share/frontend/impattern/old/oldpatterns/9.png delete mode 100644 share/frontend/impattern/old/oldpatterns/90.png delete mode 100644 share/frontend/impattern/old/oldpatterns/91.png delete mode 100644 share/frontend/impattern/old/oldpatterns/92.png delete mode 100644 share/frontend/impattern/old/oldpatterns/93.png delete mode 100644 share/frontend/impattern/old/oldpatterns/94.png delete mode 100644 share/frontend/impattern/old/oldpatterns/95.png delete mode 100644 share/frontend/impattern/old/oldpatterns/96.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a0.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a1.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a10.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a11.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a12.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a13.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a14.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a15.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a16.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a17.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a18.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a19.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a2.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a20.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a21.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a22.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a23.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a24.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a25.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a26.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a27.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a28.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a29.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a3.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a30.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a31.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a32.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a33.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a34.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a35.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a36.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a37.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a38.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a39.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a4.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a40.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a41.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a5.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a6.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a7.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a8.png delete mode 100644 share/frontend/impattern/old/oldpatterns/a9.png delete mode 100644 share/frontend/impattern/other_script.py delete mode 100644 share/frontend/impattern/semi_patterns/1.png delete mode 100644 share/frontend/impattern/semi_patterns/10.png delete mode 100644 share/frontend/impattern/semi_patterns/11.png delete mode 100644 share/frontend/impattern/semi_patterns/12.png delete mode 100644 share/frontend/impattern/semi_patterns/13.png delete mode 100644 share/frontend/impattern/semi_patterns/14.png delete mode 100644 share/frontend/impattern/semi_patterns/15.png delete mode 100644 share/frontend/impattern/semi_patterns/16.png delete mode 100644 share/frontend/impattern/semi_patterns/17.png delete mode 100644 share/frontend/impattern/semi_patterns/18.png delete mode 100644 share/frontend/impattern/semi_patterns/19.png delete mode 100644 share/frontend/impattern/semi_patterns/2.png delete mode 100644 share/frontend/impattern/semi_patterns/20.png delete mode 100644 share/frontend/impattern/semi_patterns/21.png delete mode 100644 share/frontend/impattern/semi_patterns/22.png delete mode 100644 share/frontend/impattern/semi_patterns/23.png delete mode 100644 share/frontend/impattern/semi_patterns/24.png delete mode 100644 share/frontend/impattern/semi_patterns/25.png delete mode 100644 share/frontend/impattern/semi_patterns/26.png delete mode 100644 share/frontend/impattern/semi_patterns/27.png delete mode 100644 share/frontend/impattern/semi_patterns/28.png delete mode 100644 share/frontend/impattern/semi_patterns/29.png delete mode 100644 share/frontend/impattern/semi_patterns/3.png delete mode 100644 share/frontend/impattern/semi_patterns/30.png delete mode 100644 share/frontend/impattern/semi_patterns/31.png delete mode 100644 share/frontend/impattern/semi_patterns/32.png delete mode 100644 share/frontend/impattern/semi_patterns/33.png delete mode 100644 share/frontend/impattern/semi_patterns/34.png delete mode 100644 share/frontend/impattern/semi_patterns/35.png delete mode 100644 share/frontend/impattern/semi_patterns/36.png delete mode 100644 share/frontend/impattern/semi_patterns/37.png delete mode 100644 share/frontend/impattern/semi_patterns/38.png delete mode 100644 share/frontend/impattern/semi_patterns/39.png delete mode 100644 share/frontend/impattern/semi_patterns/4.png delete mode 100644 share/frontend/impattern/semi_patterns/40.png delete mode 100644 share/frontend/impattern/semi_patterns/41.png delete mode 100644 share/frontend/impattern/semi_patterns/42.png delete mode 100644 share/frontend/impattern/semi_patterns/43.png delete mode 100644 share/frontend/impattern/semi_patterns/44.png delete mode 100644 share/frontend/impattern/semi_patterns/45.png delete mode 100644 share/frontend/impattern/semi_patterns/46.png delete mode 100644 share/frontend/impattern/semi_patterns/47.png delete mode 100644 share/frontend/impattern/semi_patterns/48.png delete mode 100644 share/frontend/impattern/semi_patterns/49.png delete mode 100644 share/frontend/impattern/semi_patterns/5.png delete mode 100644 share/frontend/impattern/semi_patterns/50.png delete mode 100644 share/frontend/impattern/semi_patterns/51.png delete mode 100644 share/frontend/impattern/semi_patterns/52.png delete mode 100644 share/frontend/impattern/semi_patterns/53.png delete mode 100644 share/frontend/impattern/semi_patterns/54.png delete mode 100644 share/frontend/impattern/semi_patterns/55.png delete mode 100644 share/frontend/impattern/semi_patterns/56.png delete mode 100644 share/frontend/impattern/semi_patterns/57.png delete mode 100644 share/frontend/impattern/semi_patterns/58.png delete mode 100644 share/frontend/impattern/semi_patterns/59.png delete mode 100644 share/frontend/impattern/semi_patterns/6.png delete mode 100644 share/frontend/impattern/semi_patterns/60.png delete mode 100644 share/frontend/impattern/semi_patterns/61.png delete mode 100644 share/frontend/impattern/semi_patterns/62.png delete mode 100644 share/frontend/impattern/semi_patterns/63.png delete mode 100644 share/frontend/impattern/semi_patterns/64.png delete mode 100644 share/frontend/impattern/semi_patterns/65.png delete mode 100644 share/frontend/impattern/semi_patterns/66.png delete mode 100644 share/frontend/impattern/semi_patterns/67.png delete mode 100644 share/frontend/impattern/semi_patterns/68.png delete mode 100644 share/frontend/impattern/semi_patterns/69.png delete mode 100644 share/frontend/impattern/semi_patterns/7.png delete mode 100644 share/frontend/impattern/semi_patterns/70.png delete mode 100644 share/frontend/impattern/semi_patterns/71.png delete mode 100644 share/frontend/impattern/semi_patterns/72.png delete mode 100644 share/frontend/impattern/semi_patterns/73.png delete mode 100644 share/frontend/impattern/semi_patterns/74.png delete mode 100644 share/frontend/impattern/semi_patterns/75.png delete mode 100644 share/frontend/impattern/semi_patterns/76.png delete mode 100644 share/frontend/impattern/semi_patterns/77.png delete mode 100644 share/frontend/impattern/semi_patterns/78.png delete mode 100644 share/frontend/impattern/semi_patterns/79.png delete mode 100644 share/frontend/impattern/semi_patterns/8.png delete mode 100644 share/frontend/impattern/semi_patterns/80.png delete mode 100644 share/frontend/impattern/semi_patterns/81.png delete mode 100644 share/frontend/impattern/semi_patterns/82.png delete mode 100644 share/frontend/impattern/semi_patterns/83.png delete mode 100644 share/frontend/impattern/semi_patterns/84.png delete mode 100644 share/frontend/impattern/semi_patterns/85.png delete mode 100644 share/frontend/impattern/semi_patterns/86.png delete mode 100644 share/frontend/impattern/semi_patterns/87.png delete mode 100644 share/frontend/impattern/semi_patterns/88.png delete mode 100644 share/frontend/impattern/semi_patterns/89.png delete mode 100644 share/frontend/impattern/semi_patterns/9.png delete mode 100644 share/frontend/impattern/semi_patterns/90.png delete mode 100644 share/frontend/impattern/semi_patterns/91.png delete mode 100644 share/frontend/impattern/semi_patterns/92.png delete mode 100644 share/frontend/impattern/semi_patterns/93.png delete mode 100644 share/frontend/impattern/semi_patterns/94.png delete mode 100644 share/frontend/impattern/semi_patterns/95.png delete mode 100644 share/frontend/impattern/semi_patterns/96.png delete mode 100644 share/frontend/impattern/semi_patterns/a0.png delete mode 100644 share/frontend/impattern/semi_patterns/a1.png delete mode 100644 share/frontend/impattern/semi_patterns/a10.png delete mode 100644 share/frontend/impattern/semi_patterns/a11.png delete mode 100644 share/frontend/impattern/semi_patterns/a12.png delete mode 100644 share/frontend/impattern/semi_patterns/a13.png delete mode 100644 share/frontend/impattern/semi_patterns/a14.png delete mode 100644 share/frontend/impattern/semi_patterns/a15.png delete mode 100644 share/frontend/impattern/semi_patterns/a16.png delete mode 100644 share/frontend/impattern/semi_patterns/a17.png delete mode 100644 share/frontend/impattern/semi_patterns/a18.png delete mode 100644 share/frontend/impattern/semi_patterns/a19.png delete mode 100644 share/frontend/impattern/semi_patterns/a2.png delete mode 100644 share/frontend/impattern/semi_patterns/a20.png delete mode 100644 share/frontend/impattern/semi_patterns/a21.png delete mode 100644 share/frontend/impattern/semi_patterns/a22.png delete mode 100644 share/frontend/impattern/semi_patterns/a23.png delete mode 100644 share/frontend/impattern/semi_patterns/a24.png delete mode 100644 share/frontend/impattern/semi_patterns/a25.png delete mode 100644 share/frontend/impattern/semi_patterns/a26.png delete mode 100644 share/frontend/impattern/semi_patterns/a27.png delete mode 100644 share/frontend/impattern/semi_patterns/a28.png delete mode 100644 share/frontend/impattern/semi_patterns/a29.png delete mode 100644 share/frontend/impattern/semi_patterns/a3.png delete mode 100644 share/frontend/impattern/semi_patterns/a30.png delete mode 100644 share/frontend/impattern/semi_patterns/a31.png delete mode 100644 share/frontend/impattern/semi_patterns/a32.png delete mode 100644 share/frontend/impattern/semi_patterns/a33.png delete mode 100644 share/frontend/impattern/semi_patterns/a34.png delete mode 100644 share/frontend/impattern/semi_patterns/a35.png delete mode 100644 share/frontend/impattern/semi_patterns/a36.png delete mode 100644 share/frontend/impattern/semi_patterns/a37.png delete mode 100644 share/frontend/impattern/semi_patterns/a38.png delete mode 100644 share/frontend/impattern/semi_patterns/a39.png delete mode 100644 share/frontend/impattern/semi_patterns/a4.png delete mode 100644 share/frontend/impattern/semi_patterns/a40.png delete mode 100644 share/frontend/impattern/semi_patterns/a41.png delete mode 100644 share/frontend/impattern/semi_patterns/a5.png delete mode 100644 share/frontend/impattern/semi_patterns/a6.png delete mode 100644 share/frontend/impattern/semi_patterns/a7.png delete mode 100644 share/frontend/impattern/semi_patterns/a8.png delete mode 100644 share/frontend/impattern/semi_patterns/a9.png delete mode 100644 share/frontend/js/zepto-0.7.zip delete mode 100644 share/frontend/js/zepto.js diff --git a/share/frontend/im/HTACCESS b/share/frontend/im/HTACCESS deleted file mode 100755 index 220a0e2..0000000 --- a/share/frontend/im/HTACCESS +++ /dev/null @@ -1,3 +0,0 @@ -RewriteEngine On -RewriteCond %{REQUEST_URI} .*/im/(..)/(.*jpg|.*gif|.*png|.*jpeg)$ [NC] -RewriteRule ^(.*)$ http://i.asdf.us/im/%1/%2 [R=301,L] diff --git a/share/frontend/im/THEHTACCESS b/share/frontend/im/THEHTACCESS deleted file mode 100755 index 220a0e2..0000000 --- a/share/frontend/im/THEHTACCESS +++ /dev/null @@ -1,3 +0,0 @@ -RewriteEngine On -RewriteCond %{REQUEST_URI} .*/im/(..)/(.*jpg|.*gif|.*png|.*jpeg)$ [NC] -RewriteRule ^(.*)$ http://i.asdf.us/im/%1/%2 [R=301,L] diff --git a/share/frontend/im/newimagemaker.html b/share/frontend/im/newimagemaker.html deleted file mode 100755 index 50db4df..0000000 --- a/share/frontend/im/newimagemaker.html +++ /dev/null @@ -1,289 +0,0 @@ - - - -IM PORTAL - - -
- - -
- -
- - - -
- - - -
- - - % -
- -
- - - px -
- - - px -
- -
- - - -
- - - -
- -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - ° -
- -
- - - - - - -
- -
- →
-
- - -
- -
-

- This page provides a basic interface to the command-line image utility IMAGEMAGICK. - Paste a link into the first box, then use the other settings to colorize, distort, and add transparency. -

-
-

- See what people have made → Image Gallery -

-
- - - - - - diff --git a/share/frontend/imdither/.gitignore b/share/frontend/imdither/.gitignore deleted file mode 100755 index 85254be..0000000 --- a/share/frontend/imdither/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -dithers/.* -dithers/* diff --git a/share/frontend/imdither/18.bmp b/share/frontend/imdither/18.bmp deleted file mode 100755 index 058594d..0000000 Binary files a/share/frontend/imdither/18.bmp and /dev/null differ diff --git a/share/frontend/imdither/bottle.py b/share/frontend/imdither/bottle.py deleted file mode 100755 index 40a858d..0000000 --- a/share/frontend/imdither/bottle.py +++ /dev/null @@ -1,3605 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -""" -Bottle is a fast and simple micro-framework for small web applications. It -offers request dispatching (Routes) with url parameter support, templates, -a built-in HTTP Server and adapters for many third party WSGI/HTTP-server and -template engines - all in a single file and with no dependencies other than the -Python Standard Library. - -Homepage and documentation: http://bottlepy.org/ - -Copyright (c) 2012, Marcel Hellkamp. -License: MIT (see LICENSE for details) -""" - -from __future__ import with_statement - -__author__ = 'Marcel Hellkamp' -__version__ = '0.12-dev' -__license__ = 'MIT' - -# The gevent server adapter needs to patch some modules before they are imported -# This is why we parse the commandline parameters here but handle them later -if __name__ == '__main__': - from optparse import OptionParser - _cmd_parser = OptionParser(usage="usage: %prog [options] package.module:app") - _opt = _cmd_parser.add_option - _opt("--version", action="store_true", help="show version number.") - _opt("-b", "--bind", metavar="ADDRESS", help="bind socket to ADDRESS.") - _opt("-s", "--server", default='wsgiref', help="use SERVER as backend.") - _opt("-p", "--plugin", action="append", help="install additional plugin/s.") - _opt("--debug", action="store_true", help="start server in debug mode.") - _opt("--reload", action="store_true", help="auto-reload on file changes.") - _cmd_options, _cmd_args = _cmd_parser.parse_args() - if _cmd_options.server and _cmd_options.server.startswith('gevent'): - import gevent.monkey; gevent.monkey.patch_all() - -import base64, cgi, email.utils, functools, hmac, imp, itertools, mimetypes,\ - os, re, subprocess, sys, tempfile, threading, time, warnings - -from datetime import date as datedate, datetime, timedelta -from tempfile import TemporaryFile -from traceback import format_exc, print_exc -from inspect import getargspec - -try: from simplejson import dumps as json_dumps, loads as json_lds -except ImportError: # pragma: no cover - try: from json import dumps as json_dumps, loads as json_lds - except ImportError: - try: from django.utils.simplejson import dumps as json_dumps, loads as json_lds - except ImportError: - def json_dumps(data): - raise ImportError("JSON support requires Python 2.6 or simplejson.") - json_lds = json_dumps - - - -# We now try to fix 2.5/2.6/3.1/3.2 incompatibilities. -# It ain't pretty but it works... Sorry for the mess. - -py = sys.version_info -py3k = py >= (3, 0, 0) -py25 = py < (2, 6, 0) -py31 = (3, 1, 0) <= py < (3, 2, 0) - -# Workaround for the missing "as" keyword in py3k. -def _e(): return sys.exc_info()[1] - -# Workaround for the "print is a keyword/function" Python 2/3 dilemma -# and a fallback for mod_wsgi (resticts stdout/err attribute access) -try: - _stdout, _stderr = sys.stdout.write, sys.stderr.write -except IOError: - _stdout = lambda x: sys.stdout.write(x) - _stderr = lambda x: sys.stderr.write(x) - -# Lots of stdlib and builtin differences. -if py3k: - import http.client as httplib - import _thread as thread - from urllib.parse import urljoin, SplitResult as UrlSplitResult - from urllib.parse import urlencode, quote as urlquote, unquote as urlunquote - urlunquote = functools.partial(urlunquote, encoding='latin1') - from http.cookies import SimpleCookie - from collections import MutableMapping as DictMixin - import pickle - from io import BytesIO - from configparser import ConfigParser - basestring = str - unicode = str - json_loads = lambda s: json_lds(touni(s)) - callable = lambda x: hasattr(x, '__call__') - imap = map - def _raise(*a): raise a[0](a[1]).with_traceback(a[2]) -else: # 2.x - import httplib - import thread - from urlparse import urljoin, SplitResult as UrlSplitResult - from urllib import urlencode, quote as urlquote, unquote as urlunquote - from Cookie import SimpleCookie - from itertools import imap - import cPickle as pickle - from StringIO import StringIO as BytesIO - from ConfigParser import SafeConfigParser as ConfigParser - if py25: - msg = "Python 2.5 support may be dropped in future versions of Bottle." - warnings.warn(msg, DeprecationWarning) - from UserDict import DictMixin - def next(it): return it.next() - bytes = str - else: # 2.6, 2.7 - from collections import MutableMapping as DictMixin - json_loads = json_lds - eval(compile('def _raise(*a): raise a[0], a[1], a[2]', '', 'exec')) - -# Some helpers for string/byte handling -def tob(s, enc='utf8'): - return s.encode(enc) if isinstance(s, unicode) else bytes(s) -def touni(s, enc='utf8', err='strict'): - return s.decode(enc, err) if isinstance(s, bytes) else unicode(s) -tonat = touni if py3k else tob - -# 3.2 fixes cgi.FieldStorage to accept bytes (which makes a lot of sense). -# 3.1 needs a workaround. -if py31: - from io import TextIOWrapper - class NCTextIOWrapper(TextIOWrapper): - def close(self): pass # Keep wrapped buffer open. - - -# A bug in functools causes it to break if the wrapper is an instance method -def update_wrapper(wrapper, wrapped, *a, **ka): - try: functools.update_wrapper(wrapper, wrapped, *a, **ka) - except AttributeError: pass - - - -# These helpers are used at module level and need to be defined first. -# And yes, I know PEP-8, but sometimes a lower-case classname makes more sense. - -def depr(message, hard=False): - warnings.warn(message, DeprecationWarning, stacklevel=3) - -def makelist(data): # This is just to handy - if isinstance(data, (tuple, list, set, dict)): return list(data) - elif data: return [data] - else: return [] - - -class DictProperty(object): - ''' Property that maps to a key in a local dict-like attribute. ''' - def __init__(self, attr, key=None, read_only=False): - self.attr, self.key, self.read_only = attr, key, read_only - - def __call__(self, func): - functools.update_wrapper(self, func, updated=[]) - self.getter, self.key = func, self.key or func.__name__ - return self - - def __get__(self, obj, cls): - if obj is None: return self - key, storage = self.key, getattr(obj, self.attr) - if key not in storage: storage[key] = self.getter(obj) - return storage[key] - - def __set__(self, obj, value): - if self.read_only: raise AttributeError("Read-Only property.") - getattr(obj, self.attr)[self.key] = value - - def __delete__(self, obj): - if self.read_only: raise AttributeError("Read-Only property.") - del getattr(obj, self.attr)[self.key] - - -class cached_property(object): - ''' A property that is only computed once per instance and then replaces - itself with an ordinary attribute. Deleting the attribute resets the - property. ''' - - def __init__(self, func): - self.__doc__ = getattr(func, '__doc__') - self.func = func - - def __get__(self, obj, cls): - if obj is None: return self - value = obj.__dict__[self.func.__name__] = self.func(obj) - return value - - -class lazy_attribute(object): - ''' A property that caches itself to the class object. ''' - def __init__(self, func): - functools.update_wrapper(self, func, updated=[]) - self.getter = func - - def __get__(self, obj, cls): - value = self.getter(cls) - setattr(cls, self.__name__, value) - return value - - - - - - -############################################################################### -# Exceptions and Events ######################################################## -############################################################################### - - -class BottleException(Exception): - """ A base class for exceptions used by bottle. """ - pass - - - - - - -############################################################################### -# Routing ###################################################################### -############################################################################### - - -class RouteError(BottleException): - """ This is a base class for all routing related exceptions """ - - -class RouteReset(BottleException): - """ If raised by a plugin or request handler, the route is reset and all - plugins are re-applied. """ - -class RouterUnknownModeError(RouteError): pass - - -class RouteSyntaxError(RouteError): - """ The route parser found something not supported by this router. """ - - -class RouteBuildError(RouteError): - """ The route could not be built. """ - - -def _re_flatten(p): - ''' Turn all capturing groups in a regular expression pattern into - non-capturing groups. ''' - if '(' not in p: return p - return re.sub(r'(\\*)(\(\?P<[^>]+>|\((?!\?))', - lambda m: m.group(0) if len(m.group(1)) % 2 else m.group(1) + '(?:', p) - - -class Router(object): - ''' A Router is an ordered collection of route->target pairs. It is used to - efficiently match WSGI requests against a number of routes and return - the first target that satisfies the request. The target may be anything, - usually a string, ID or callable object. A route consists of a path-rule - and a HTTP method. - - The path-rule is either a static path (e.g. `/contact`) or a dynamic - path that contains wildcards (e.g. `/wiki/`). The wildcard syntax - and details on the matching order are described in docs:`routing`. - ''' - - default_pattern = '[^/]+' - default_filter = 're' - - #: The current CPython regexp implementation does not allow more - #: than 99 matching groups per regular expression. - _MAX_GROUPS_PER_PATTERN = 99 - - def __init__(self, strict=False): - self.rules = [] # All rules in order - self._groups = {} # index of regexes to find them in dyna_routes - self.builder = {} # Data structure for the url builder - self.static = {} # Search structure for static routes - self.dyna_routes = {} - self.dyna_regexes = {} # Search structure for dynamic routes - #: If true, static routes are no longer checked first. - self.strict_order = strict - self.filters = { - 're': lambda conf: - (_re_flatten(conf or self.default_pattern), None, None), - 'int': lambda conf: (r'-?\d+', int, lambda x: str(int(x))), - 'float': lambda conf: (r'-?[\d.]+', float, lambda x: str(float(x))), - 'path': lambda conf: (r'.+?', None, None)} - - def add_filter(self, name, func): - ''' Add a filter. The provided function is called with the configuration - string as parameter and must return a (regexp, to_python, to_url) tuple. - The first element is a string, the last two are callables or None. ''' - self.filters[name] = func - - rule_syntax = re.compile('(\\\\*)'\ - '(?:(?::([a-zA-Z_][a-zA-Z_0-9]*)?()(?:#(.*?)#)?)'\ - '|(?:<([a-zA-Z_][a-zA-Z_0-9]*)?(?::([a-zA-Z_]*)'\ - '(?::((?:\\\\.|[^\\\\>]+)+)?)?)?>))') - - def _itertokens(self, rule): - offset, prefix = 0, '' - for match in self.rule_syntax.finditer(rule): - prefix += rule[offset:match.start()] - g = match.groups() - if len(g[0])%2: # Escaped wildcard - prefix += match.group(0)[len(g[0]):] - offset = match.end() - continue - if prefix: - yield prefix, None, None - name, filtr, conf = g[4:7] if g[2] is None else g[1:4] - yield name, filtr or 'default', conf or None - offset, prefix = match.end(), '' - if offset <= len(rule) or prefix: - yield prefix+rule[offset:], None, None - - def add(self, rule, method, target, name=None): - ''' Add a new rule or replace the target for an existing rule. ''' - anons = 0 # Number of anonymous wildcards found - keys = [] # Names of keys - pattern = '' # Regular expression pattern with named groups - filters = [] # Lists of wildcard input filters - builder = [] # Data structure for the URL builder - is_static = True - - for key, mode, conf in self._itertokens(rule): - if mode: - is_static = False - if mode == 'default': mode = self.default_filter - mask, in_filter, out_filter = self.filters[mode](conf) - if not key: - pattern += '(?:%s)' % mask - key = 'anon%d' % anons - anons += 1 - else: - pattern += '(?P<%s>%s)' % (key, mask) - keys.append(key) - if in_filter: filters.append((key, in_filter)) - builder.append((key, out_filter or str)) - elif key: - pattern += re.escape(key) - builder.append((None, key)) - - self.builder[rule] = builder - if name: self.builder[name] = builder - - if is_static and not self.strict_order: - self.static.setdefault(method, {}) - self.static[method][self.build(rule)] = (target, None) - return - - try: - re_pattern = re.compile('^(%s)$' % pattern) - re_match = re_pattern.match - except re.error: - raise RouteSyntaxError("Could not add Route: %s (%s)" % (rule, _e())) - - if filters: - def getargs(path): - url_args = re_match(path).groupdict() - for name, wildcard_filter in filters: - try: - url_args[name] = wildcard_filter(url_args[name]) - except ValueError: - raise HTTPError(400, 'Path has wrong format.') - return url_args - elif re_pattern.groupindex: - def getargs(path): - return re_match(path).groupdict() - else: - getargs = None - - flatpat = _re_flatten(pattern) - whole_rule = (rule, flatpat, target, getargs) - - if (flatpat, method) in self._groups: - if DEBUG: - msg = 'Route <%s %s> overwrites a previously defined route' - warnings.warn(msg % (method, rule), RuntimeWarning) - self.dyna_routes[method][self._groups[flatpat, method]] = whole_rule - else: - self.dyna_routes.setdefault(method, []).append(whole_rule) - self._groups[flatpat, method] = len(self.dyna_routes[method]) - 1 - - self._compile(method) - - def _compile(self, method): - all_rules = self.dyna_routes[method] - comborules = self.dyna_regexes[method] = [] - maxgroups = self._MAX_GROUPS_PER_PATTERN - for x in range(0, len(all_rules), maxgroups): - some = all_rules[x:x+maxgroups] - combined = (flatpat for (_, flatpat, _, _) in some) - combined = '|'.join('(^%s$)' % flatpat for flatpat in combined) - combined = re.compile(combined).match - rules = [(target, getargs) for (_, _, target, getargs) in some] - comborules.append((combined, rules)) - - def build(self, _name, *anons, **query): - ''' Build an URL by filling the wildcards in a rule. ''' - builder = self.builder.get(_name) - if not builder: raise RouteBuildError("No route with that name.", _name) - try: - for i, value in enumerate(anons): query['anon%d'%i] = value - url = ''.join([f(query.pop(n)) if n else f for (n,f) in builder]) - return url if not query else url+'?'+urlencode(query) - except KeyError: - raise RouteBuildError('Missing URL argument: %r' % _e().args[0]) - - def match(self, environ): - ''' Return a (target, url_agrs) tuple or raise HTTPError(400/404/405). ''' - verb = environ['REQUEST_METHOD'].upper() - path = environ['PATH_INFO'] or '/' - target = None - methods = [verb, 'GET', 'ANY'] if verb == 'HEAD' else [verb, 'ANY'] - - for method in methods: - if method in self.static and path in self.static[method]: - target, getargs = self.static[method][path] - return target, getargs(path) if getargs else {} - elif method in self.dyna_regexes: - for combined, rules in self.dyna_regexes[method]: - match = combined(path) - if match: - target, getargs = rules[match.lastindex - 1] - return target, getargs(path) if getargs else {} - - # No matching route found. Collect alternative methods for 405 response - allowed = set([]) - nocheck = set(methods) - for method in set(self.static) - nocheck: - if path in self.static[method]: - allowed.add(verb) - for method in set(self.dyna_regexes) - allowed - nocheck: - for combined, rules in self.dyna_regexes[method]: - match = combined(path) - if match: - allowed.add(method) - if allowed: - allow_header = ",".join(sorted(allowed)) - raise HTTPError(405, "Method not allowed.", Allow=allow_header) - - # No matching route and no alternative method found. We give up - raise HTTPError(404, "Not found: " + repr(path)) - - - - - - -class Route(object): - ''' This class wraps a route callback along with route specific metadata and - configuration and applies Plugins on demand. It is also responsible for - turing an URL path rule into a regular expression usable by the Router. - ''' - - def __init__(self, app, rule, method, callback, name=None, - plugins=None, skiplist=None, **config): - #: The application this route is installed to. - self.app = app - #: The path-rule string (e.g. ``/wiki/:page``). - self.rule = rule - #: The HTTP method as a string (e.g. ``GET``). - self.method = method - #: The original callback with no plugins applied. Useful for introspection. - self.callback = callback - #: The name of the route (if specified) or ``None``. - self.name = name or None - #: A list of route-specific plugins (see :meth:`Bottle.route`). - self.plugins = plugins or [] - #: A list of plugins to not apply to this route (see :meth:`Bottle.route`). - self.skiplist = skiplist or [] - #: Additional keyword arguments passed to the :meth:`Bottle.route` - #: decorator are stored in this dictionary. Used for route-specific - #: plugin configuration and meta-data. - self.config = ConfigDict().load_dict(config) - - def __call__(self, *a, **ka): - depr("Some APIs changed to return Route() instances instead of"\ - " callables. Make sure to use the Route.call method and not to"\ - " call Route instances directly.") - return self.call(*a, **ka) - - @cached_property - def call(self): - ''' The route callback with all plugins applied. This property is - created on demand and then cached to speed up subsequent requests.''' - return self._make_callback() - - def reset(self): - ''' Forget any cached values. The next time :attr:`call` is accessed, - all plugins are re-applied. ''' - self.__dict__.pop('call', None) - - def prepare(self): - ''' Do all on-demand work immediately (useful for debugging).''' - self.call - - @property - def _context(self): - depr('Switch to Plugin API v2 and access the Route object directly.') - return dict(rule=self.rule, method=self.method, callback=self.callback, - name=self.name, app=self.app, config=self.config, - apply=self.plugins, skip=self.skiplist) - - def all_plugins(self): - ''' Yield all Plugins affecting this route. ''' - unique = set() - for p in reversed(self.app.plugins + self.plugins): - if True in self.skiplist: break - name = getattr(p, 'name', False) - if name and (name in self.skiplist or name in unique): continue - if p in self.skiplist or type(p) in self.skiplist: continue - if name: unique.add(name) - yield p - - def _make_callback(self): - callback = self.callback - for plugin in self.all_plugins(): - try: - if hasattr(plugin, 'apply'): - api = getattr(plugin, 'api', 1) - context = self if api > 1 else self._context - callback = plugin.apply(callback, context) - else: - callback = plugin(callback) - except RouteReset: # Try again with changed configuration. - return self._make_callback() - if not callback is self.callback: - update_wrapper(callback, self.callback) - return callback - - def get_undecorated_callback(self): - ''' Return the callback. If the callback is a decorated function, try to - recover the original function. ''' - func = self.callback - func = getattr(func, '__func__' if py3k else 'im_func', func) - closure_attr = '__closure__' if py3k else 'func_closure' - while hasattr(func, closure_attr) and getattr(func, closure_attr): - func = getattr(func, closure_attr)[0].cell_contents - return func - - def get_callback_args(self): - ''' Return a list of argument names the callback (most likely) accepts - as keyword arguments. If the callback is a decorated function, try - to recover the original function before inspection. ''' - return getargspec(self.get_undecorated_callback())[0] - - def get_config(key, default=None): - ''' Lookup a config field and return its value, first checking the - route.config, then route.app.config.''' - for conf in (self.config, self.app.conifg): - if key in conf: return conf[key] - return default - - def __repr__(self): - cb = self.get_undecorated_callback() - return '<%s %r %r>' % (self.method, self.rule, cb) - - - - - - -############################################################################### -# Application Object ########################################################### -############################################################################### - - -class Bottle(object): - """ Each Bottle object represents a single, distinct web application and - consists of routes, callbacks, plugins, resources and configuration. - Instances are callable WSGI applications. - - :param catchall: If true (default), handle all exceptions. Turn off to - let debugging middleware handle exceptions. - """ - - def __init__(self, catchall=True, autojson=True): - - #: A :class:`ConfigDict` for app specific configuration. - self.config = ConfigDict() - self.config._on_change = functools.partial(self.trigger_hook, 'config') - self.config.meta_set('autojson', 'validate', bool) - self.config.meta_set('catchall', 'validate', bool) - self.config['catchall'] = catchall - self.config['autojson'] = autojson - - #: A :class:`ResourceManager` for application files - self.resources = ResourceManager() - - self.routes = [] # List of installed :class:`Route` instances. - self.router = Router() # Maps requests to :class:`Route` instances. - self.error_handler = {} - - # Core plugins - self.plugins = [] # List of installed plugins. - if self.config['autojson']: - self.install(JSONPlugin()) - self.install(TemplatePlugin()) - - #: If true, most exceptions are caught and returned as :exc:`HTTPError` - catchall = DictProperty('config', 'catchall') - - __hook_names = 'before_request', 'after_request', 'app_reset', 'config' - __hook_reversed = 'after_request' - - @cached_property - def _hooks(self): - return dict((name, []) for name in self.__hook_names) - - def add_hook(self, name, func): - ''' Attach a callback to a hook. Three hooks are currently implemented: - - before_request - Executed once before each request. The request context is - available, but no routing has happened yet. - after_request - Executed once after each request regardless of its outcome. - app_reset - Called whenever :meth:`Bottle.reset` is called. - ''' - if name in self.__hook_reversed: - self._hooks[name].insert(0, func) - else: - self._hooks[name].append(func) - - def remove_hook(self, name, func): - ''' Remove a callback from a hook. ''' - if name in self._hooks and func in self._hooks[name]: - self._hooks[name].remove(func) - return True - - def trigger_hook(self, __name, *args, **kwargs): - ''' Trigger a hook and return a list of results. ''' - return [hook(*args, **kwargs) for hook in self._hooks[__name][:]] - - def hook(self, name): - """ Return a decorator that attaches a callback to a hook. See - :meth:`add_hook` for details.""" - def decorator(func): - self.add_hook(name, func) - return func - return decorator - - def mount(self, prefix, app, **options): - ''' Mount an application (:class:`Bottle` or plain WSGI) to a specific - URL prefix. Example:: - - root_app.mount('/admin/', admin_app) - - :param prefix: path prefix or `mount-point`. If it ends in a slash, - that slash is mandatory. - :param app: an instance of :class:`Bottle` or a WSGI application. - - All other parameters are passed to the underlying :meth:`route` call. - ''' - if isinstance(app, basestring): - depr('Parameter order of Bottle.mount() changed.', True) # 0.10 - - segments = [p for p in prefix.split('/') if p] - if not segments: raise ValueError('Empty path prefix.') - path_depth = len(segments) - - def mountpoint_wrapper(): - try: - request.path_shift(path_depth) - rs = HTTPResponse([]) - def start_response(status, headerlist, exc_info=None): - if exc_info: - try: - _raise(*exc_info) - finally: - exc_info = None - rs.status = status - for name, value in headerlist: rs.add_header(name, value) - return rs.body.append - body = app(request.environ, start_response) - if body and rs.body: body = itertools.chain(rs.body, body) - rs.body = body or rs.body - return rs - finally: - request.path_shift(-path_depth) - - options.setdefault('skip', True) - options.setdefault('method', 'ANY') - options.setdefault('mountpoint', {'prefix': prefix, 'target': app}) - options['callback'] = mountpoint_wrapper - - self.route('/%s/<:re:.*>' % '/'.join(segments), **options) - if not prefix.endswith('/'): - self.route('/' + '/'.join(segments), **options) - - def merge(self, routes): - ''' Merge the routes of another :class:`Bottle` application or a list of - :class:`Route` objects into this application. The routes keep their - 'owner', meaning that the :data:`Route.app` attribute is not - changed. ''' - if isinstance(routes, Bottle): - routes = routes.routes - for route in routes: - self.add_route(route) - - def install(self, plugin): - ''' Add a plugin to the list of plugins and prepare it for being - applied to all routes of this application. A plugin may be a simple - decorator or an object that implements the :class:`Plugin` API. - ''' - if hasattr(plugin, 'setup'): plugin.setup(self) - if not callable(plugin) and not hasattr(plugin, 'apply'): - raise TypeError("Plugins must be callable or implement .apply()") - self.plugins.append(plugin) - self.reset() - return plugin - - def uninstall(self, plugin): - ''' Uninstall plugins. Pass an instance to remove a specific plugin, a type - object to remove all plugins that match that type, a string to remove - all plugins with a matching ``name`` attribute or ``True`` to remove all - plugins. Return the list of removed plugins. ''' - removed, remove = [], plugin - for i, plugin in list(enumerate(self.plugins))[::-1]: - if remove is True or remove is plugin or remove is type(plugin) \ - or getattr(plugin, 'name', True) == remove: - removed.append(plugin) - del self.plugins[i] - if hasattr(plugin, 'close'): plugin.close() - if removed: self.reset() - return removed - - def reset(self, route=None): - ''' Reset all routes (force plugins to be re-applied) and clear all - caches. If an ID or route object is given, only that specific route - is affected. ''' - if route is None: routes = self.routes - elif isinstance(route, Route): routes = [route] - else: routes = [self.routes[route]] - for route in routes: route.reset() - if DEBUG: - for route in routes: route.prepare() - self.trigger_hook('app_reset') - - def close(self): - ''' Close the application and all installed plugins. ''' - for plugin in self.plugins: - if hasattr(plugin, 'close'): plugin.close() - self.stopped = True - - def run(self, **kwargs): - ''' Calls :func:`run` with the same parameters. ''' - run(self, **kwargs) - - def match(self, environ): - """ Search for a matching route and return a (:class:`Route` , urlargs) - tuple. The second value is a dictionary with parameters extracted - from the URL. Raise :exc:`HTTPError` (404/405) on a non-match.""" - return self.router.match(environ) - - def get_url(self, routename, **kargs): - """ Return a string that matches a named route """ - scriptname = request.environ.get('SCRIPT_NAME', '').strip('/') + '/' - location = self.router.build(routename, **kargs).lstrip('/') - return urljoin(urljoin('/', scriptname), location) - - def add_route(self, route): - ''' Add a route object, but do not change the :data:`Route.app` - attribute.''' - self.routes.append(route) - self.router.add(route.rule, route.method, route, name=route.name) - if DEBUG: route.prepare() - - def route(self, path=None, method='GET', callback=None, name=None, - apply=None, skip=None, **config): - """ A decorator to bind a function to a request URL. Example:: - - @app.route('/hello/:name') - def hello(name): - return 'Hello %s' % name - - The ``:name`` part is a wildcard. See :class:`Router` for syntax - details. - - :param path: Request path or a list of paths to listen to. If no - path is specified, it is automatically generated from the - signature of the function. - :param method: HTTP method (`GET`, `POST`, `PUT`, ...) or a list of - methods to listen to. (default: `GET`) - :param callback: An optional shortcut to avoid the decorator - syntax. ``route(..., callback=func)`` equals ``route(...)(func)`` - :param name: The name for this route. (default: None) - :param apply: A decorator or plugin or a list of plugins. These are - applied to the route callback in addition to installed plugins. - :param skip: A list of plugins, plugin classes or names. Matching - plugins are not installed to this route. ``True`` skips all. - - Any additional keyword arguments are stored as route-specific - configuration and passed to plugins (see :meth:`Plugin.apply`). - """ - if callable(path): path, callback = None, path - plugins = makelist(apply) - skiplist = makelist(skip) - def decorator(callback): - # TODO: Documentation and tests - if isinstance(callback, basestring): callback = load(callback) - for rule in makelist(path) or yieldroutes(callback): - for verb in makelist(method): - verb = verb.upper() - route = Route(self, rule, verb, callback, name=name, - plugins=plugins, skiplist=skiplist, **config) - self.add_route(route) - return callback - return decorator(callback) if callback else decorator - - def get(self, path=None, method='GET', **options): - """ Equals :meth:`route`. """ - return self.route(path, method, **options) - - def post(self, path=None, method='POST', **options): - """ Equals :meth:`route` with a ``POST`` method parameter. """ - return self.route(path, method, **options) - - def put(self, path=None, method='PUT', **options): - """ Equals :meth:`route` with a ``PUT`` method parameter. """ - return self.route(path, method, **options) - - def delete(self, path=None, method='DELETE', **options): - """ Equals :meth:`route` with a ``DELETE`` method parameter. """ - return self.route(path, method, **options) - - def error(self, code=500): - """ Decorator: Register an output handler for a HTTP error code""" - def wrapper(handler): - self.error_handler[int(code)] = handler - return handler - return wrapper - - def handle(self, path, method='GET'): - """ (deprecated) Execute the first matching route callback and return - the result. :exc:`HTTPResponse` exceptions are caught and returned. - If :attr:`Bottle.catchall` is true, other exceptions are caught as - well and returned as :exc:`HTTPError` instances (500). - """ - depr("This method will change semantics in 0.10. Try to avoid it.") - if isinstance(path, dict): - return self._handle(path) - return self._handle({'PATH_INFO': path, 'REQUEST_METHOD': method.upper()}) - - def default_error_handler(self, res): - return tob(template(ERROR_PAGE_TEMPLATE, e=res)) - - def _handle(self, environ): - try: - environ['bottle.app'] = self - request.bind(environ) - response.bind() - - try: - self.trigger_hook('before_request') - route, args = self.router.match(environ) - environ['route.handle'] = route - environ['bottle.route'] = route - environ['route.url_args'] = args - return route.call(**args) - finally: - self.trigger_hook('after_request') - - except HTTPResponse: - return _e() - except RouteReset: - route.reset() - return self._handle(environ) - except (KeyboardInterrupt, SystemExit, MemoryError): - raise - except Exception: - if not self.catchall: raise - stacktrace = format_exc() - environ['wsgi.errors'].write(stacktrace) - return HTTPError(500, "Internal Server Error", _e(), stacktrace) - - def _cast(self, out, peek=None): - """ Try to convert the parameter into something WSGI compatible and set - correct HTTP headers when possible. - Support: False, str, unicode, dict, HTTPResponse, HTTPError, file-like, - iterable of strings and iterable of unicodes - """ - - # Empty output is done here - if not out: - if 'Content-Length' not in response: - response['Content-Length'] = 0 - return [] - # Join lists of byte or unicode strings. Mixed lists are NOT supported - if isinstance(out, (tuple, list))\ - and isinstance(out[0], (bytes, unicode)): - out = out[0][0:0].join(out) # b'abc'[0:0] -> b'' - # Encode unicode strings - if isinstance(out, unicode): - out = out.encode(response.charset) - # Byte Strings are just returned - if isinstance(out, bytes): - if 'Content-Length' not in response: - response['Content-Length'] = len(out) - return [out] - # HTTPError or HTTPException (recursive, because they may wrap anything) - # TODO: Handle these explicitly in handle() or make them iterable. - if isinstance(out, HTTPError): - out.apply(response) - out = self.error_handler.get(out.status_code, self.default_error_handler)(out) - return self._cast(out) - if isinstance(out, HTTPResponse): - out.apply(response) - return self._cast(out.body) - - # File-like objects. - if hasattr(out, 'read'): - if 'wsgi.file_wrapper' in request.environ: - return request.environ['wsgi.file_wrapper'](out) - elif hasattr(out, 'close') or not hasattr(out, '__iter__'): - return WSGIFileWrapper(out) - - # Handle Iterables. We peek into them to detect their inner type. - try: - iout = iter(out) - first = next(iout) - while not first: - first = next(iout) - except StopIteration: - return self._cast('') - except HTTPResponse: - first = _e() - except (KeyboardInterrupt, SystemExit, MemoryError): - raise - except Exception: - if not self.catchall: raise - first = HTTPError(500, 'Unhandled exception', _e(), format_exc()) - - # These are the inner types allowed in iterator or generator objects. - if isinstance(first, HTTPResponse): - return self._cast(first) - elif isinstance(first, bytes): - new_iter = itertools.chain([first], iout) - elif isinstance(first, unicode): - encoder = lambda x: x.encode(response.charset) - new_iter = imap(encoder, itertools.chain([first], iout)) - else: - msg = 'Unsupported response type: %s' % type(first) - return self._cast(HTTPError(500, msg)) - if hasattr(out, 'close'): - new_iter = _closeiter(new_iter, out.close) - return new_iter - - def wsgi(self, environ, start_response): - """ The bottle WSGI-interface. """ - try: - out = self._cast(self._handle(environ)) - # rfc2616 section 4.3 - if response._status_code in (100, 101, 204, 304)\ - or environ['REQUEST_METHOD'] == 'HEAD': - if hasattr(out, 'close'): out.close() - out = [] - start_response(response._status_line, response.headerlist) - return out - except (KeyboardInterrupt, SystemExit, MemoryError): - raise - except Exception: - if not self.catchall: raise - err = '

Critical error while processing request: %s

' \ - % html_escape(environ.get('PATH_INFO', '/')) - if DEBUG: - err += '

Error:

\n
\n%s\n
\n' \ - '

Traceback:

\n
\n%s\n
\n' \ - % (html_escape(repr(_e())), html_escape(format_exc())) - environ['wsgi.errors'].write(err) - headers = [('Content-Type', 'text/html; charset=UTF-8')] - start_response('500 INTERNAL SERVER ERROR', headers, sys.exc_info()) - return [tob(err)] - - def __call__(self, environ, start_response): - ''' Each instance of :class:'Bottle' is a WSGI application. ''' - return self.wsgi(environ, start_response) - - - - - - -############################################################################### -# HTTP and WSGI Tools ########################################################## -############################################################################### - -class BaseRequest(object): - """ A wrapper for WSGI environment dictionaries that adds a lot of - convenient access methods and properties. Most of them are read-only. - - Adding new attributes to a request actually adds them to the environ - dictionary (as 'bottle.request.ext.'). This is the recommended - way to store and access request-specific data. - """ - - __slots__ = ('environ') - - #: Maximum size of memory buffer for :attr:`body` in bytes. - MEMFILE_MAX = 102400 - #: Maximum number pr GET or POST parameters per request - MAX_PARAMS = 100 - - def __init__(self, environ=None): - """ Wrap a WSGI environ dictionary. """ - #: The wrapped WSGI environ dictionary. This is the only real attribute. - #: All other attributes actually are read-only properties. - self.environ = {} if environ is None else environ - self.environ['bottle.request'] = self - - @DictProperty('environ', 'bottle.app', read_only=True) - def app(self): - ''' Bottle application handling this request. ''' - raise RuntimeError('This request is not connected to an application.') - - @DictProperty('environ', 'bottle.route', read_only=True) - def route(self): - """ The bottle :class:`Route` object that matches this request. """ - raise RuntimeError('This request is not connected to a route.') - - @DictProperty('environ', 'route.url_args', read_only=True) - def url_args(self): - """ The arguments extracted from the URL. """ - raise RuntimeError('This request is not connected to a route.') - - @property - def path(self): - ''' The value of ``PATH_INFO`` with exactly one prefixed slash (to fix - broken clients and avoid the "empty path" edge case). ''' - return '/' + self.environ.get('PATH_INFO','').lstrip('/') - - @property - def method(self): - ''' The ``REQUEST_METHOD`` value as an uppercase string. ''' - return self.environ.get('REQUEST_METHOD', 'GET').upper() - - @DictProperty('environ', 'bottle.request.headers', read_only=True) - def headers(self): - ''' A :class:`WSGIHeaderDict` that provides case-insensitive access to - HTTP request headers. ''' - return WSGIHeaderDict(self.environ) - - def get_header(self, name, default=None): - ''' Return the value of a request header, or a given default value. ''' - return self.headers.get(name, default) - - @DictProperty('environ', 'bottle.request.cookies', read_only=True) - def cookies(self): - """ Cookies parsed into a :class:`FormsDict`. Signed cookies are NOT - decoded. Use :meth:`get_cookie` if you expect signed cookies. """ - cookies = SimpleCookie(self.environ.get('HTTP_COOKIE','')).values() - if len(cookies) > self.MAX_PARAMS: - raise HTTPError(413, 'Too many cookies') - return FormsDict((c.key, c.value) for c in cookies) - - def get_cookie(self, key, default=None, secret=None): - """ Return the content of a cookie. To read a `Signed Cookie`, the - `secret` must match the one used to create the cookie (see - :meth:`BaseResponse.set_cookie`). If anything goes wrong (missing - cookie or wrong signature), return a default value. """ - value = self.cookies.get(key) - if secret and value: - dec = cookie_decode(value, secret) # (key, value) tuple or None - return dec[1] if dec and dec[0] == key else default - return value or default - - @DictProperty('environ', 'bottle.request.query', read_only=True) - def query(self): - ''' The :attr:`query_string` parsed into a :class:`FormsDict`. These - values are sometimes called "URL arguments" or "GET parameters", but - not to be confused with "URL wildcards" as they are provided by the - :class:`Router`. ''' - get = self.environ['bottle.get'] = FormsDict() - pairs = _parse_qsl(self.environ.get('QUERY_STRING', '')) - if len(pairs) > self.MAX_PARAMS: - raise HTTPError(413, 'Too many parameters') - for key, value in pairs: - get[key] = value - return get - - @DictProperty('environ', 'bottle.request.forms', read_only=True) - def forms(self): - """ Form values parsed from an `url-encoded` or `multipart/form-data` - encoded POST or PUT request body. The result is returned as a - :class:`FormsDict`. All keys and values are strings. File uploads - are stored separately in :attr:`files`. """ - forms = FormsDict() - for name, item in self.POST.allitems(): - if not isinstance(item, FileUpload): - forms[name] = item - return forms - - @DictProperty('environ', 'bottle.request.params', read_only=True) - def params(self): - """ A :class:`FormsDict` with the combined values of :attr:`query` and - :attr:`forms`. File uploads are stored in :attr:`files`. """ - params = FormsDict() - for key, value in self.query.allitems(): - params[key] = value - for key, value in self.forms.allitems(): - params[key] = value - return params - - @DictProperty('environ', 'bottle.request.files', read_only=True) - def files(self): - """ File uploads parsed from `multipart/form-data` encoded POST or PUT - request body. The values are instances of :class:`FileUpload`. - - """ - files = FormsDict() - for name, item in self.POST.allitems(): - if isinstance(item, FileUpload): - files[name] = item - return files - - @DictProperty('environ', 'bottle.request.json', read_only=True) - def json(self): - ''' If the ``Content-Type`` header is ``application/json``, this - property holds the parsed content of the request body. Only requests - smaller than :attr:`MEMFILE_MAX` are processed to avoid memory - exhaustion. ''' - if 'application/json' in self.environ.get('CONTENT_TYPE', ''): - return json_loads(self._get_body_string()) - return None - - @DictProperty('environ', 'bottle.request.body', read_only=True) - def _body(self): - maxread = max(0, self.content_length) - stream = self.environ['wsgi.input'] - body = BytesIO() if maxread < self.MEMFILE_MAX else TemporaryFile(mode='w+b') - while maxread > 0: - part = stream.read(min(maxread, self.MEMFILE_MAX)) - if not part: break - body.write(part) - maxread -= len(part) - self.environ['wsgi.input'] = body - body.seek(0) - return body - - def _get_body_string(self): - ''' read body until content-length or MEMFILE_MAX into a string. Raise - HTTPError(413) on requests that are to large. ''' - clen = self.content_length - if clen > self.MEMFILE_MAX: - raise HTTPError(413, 'Request to large') - if clen < 0: clen = self.MEMFILE_MAX + 1 - data = self.body.read(clen) - if len(data) > self.MEMFILE_MAX: # Fail fast - raise HTTPError(413, 'Request to large') - return data - - @property - def body(self): - """ The HTTP request body as a seek-able file-like object. Depending on - :attr:`MEMFILE_MAX`, this is either a temporary file or a - :class:`io.BytesIO` instance. Accessing this property for the first - time reads and replaces the ``wsgi.input`` environ variable. - Subsequent accesses just do a `seek(0)` on the file object. """ - self._body.seek(0) - return self._body - - #: An alias for :attr:`query`. - GET = query - - @DictProperty('environ', 'bottle.request.post', read_only=True) - def POST(self): - """ The values of :attr:`forms` and :attr:`files` combined into a single - :class:`FormsDict`. Values are either strings (form values) or - instances of :class:`cgi.FieldStorage` (file uploads). - """ - post = FormsDict() - # We default to application/x-www-form-urlencoded for everything that - # is not multipart and take the fast path (also: 3.1 workaround) - if not self.content_type.startswith('multipart/'): - pairs = _parse_qsl(tonat(self._get_body_string(), 'latin1')) - if len(pairs) > self.MAX_PARAMS: - raise HTTPError(413, 'Too many parameters') - for key, value in pairs: - post[key] = value - return post - - safe_env = {'QUERY_STRING':''} # Build a safe environment for cgi - for key in ('REQUEST_METHOD', 'CONTENT_TYPE', 'CONTENT_LENGTH'): - if key in self.environ: safe_env[key] = self.environ[key] - args = dict(fp=self.body, environ=safe_env, keep_blank_values=True) - if py31: - args['fp'] = NCTextIOWrapper(args['fp'], encoding='latin1', - newline='\n') - elif py3k: - args['encoding'] = 'latin1' - data = cgi.FieldStorage(**args) - data = data.list or [] - if len(data) > self.MAX_PARAMS: - raise HTTPError(413, 'Too many parameters') - for item in data: - if item.filename: - post[item.name] = FileUpload(item.file, item.name, - item.filename, item.headers) - else: - post[item.name] = item.value - return post - - @property - def COOKIES(self): - ''' Alias for :attr:`cookies` (deprecated). ''' - depr('BaseRequest.COOKIES was renamed to BaseRequest.cookies (lowercase).') - return self.cookies - - @property - def url(self): - """ The full request URI including hostname and scheme. If your app - lives behind a reverse proxy or load balancer and you get confusing - results, make sure that the ``X-Forwarded-Host`` header is set - correctly. """ - return self.urlparts.geturl() - - @DictProperty('environ', 'bottle.request.urlparts', read_only=True) - def urlparts(self): - ''' The :attr:`url` string as an :class:`urlparse.SplitResult` tuple. - The tuple contains (scheme, host, path, query_string and fragment), - but the fragment is always empty because it is not visible to the - server. ''' - env = self.environ - http = env.get('HTTP_X_FORWARDED_PROTO') or env.get('wsgi.url_scheme', 'http') - host = env.get('HTTP_X_FORWARDED_HOST') or env.get('HTTP_HOST') - if not host: - # HTTP 1.1 requires a Host-header. This is for HTTP/1.0 clients. - host = env.get('SERVER_NAME', '127.0.0.1') - port = env.get('SERVER_PORT') - if port and port != ('80' if http == 'http' else '443'): - host += ':' + port - path = urlquote(self.fullpath) - return UrlSplitResult(http, host, path, env.get('QUERY_STRING'), '') - - @property - def fullpath(self): - """ Request path including :attr:`script_name` (if present). """ - return urljoin(self.script_name, self.path.lstrip('/')) - - @property - def query_string(self): - """ The raw :attr:`query` part of the URL (everything in between ``?`` - and ``#``) as a string. """ - return self.environ.get('QUERY_STRING', '') - - @property - def script_name(self): - ''' The initial portion of the URL's `path` that was removed by a higher - level (server or routing middleware) before the application was - called. This script path is returned with leading and tailing - slashes. ''' - script_name = self.environ.get('SCRIPT_NAME', '').strip('/') - return '/' + script_name + '/' if script_name else '/' - - def path_shift(self, shift=1): - ''' Shift path segments from :attr:`path` to :attr:`script_name` and - vice versa. - - :param shift: The number of path segments to shift. May be negative - to change the shift direction. (default: 1) - ''' - script = self.environ.get('SCRIPT_NAME','/') - self['SCRIPT_NAME'], self['PATH_INFO'] = path_shift(script, self.path, shift) - - @property - def content_length(self): - ''' The request body length as an integer. The client is responsible to - set this header. Otherwise, the real length of the body is unknown - and -1 is returned. In this case, :attr:`body` will be empty. ''' - return int(self.environ.get('CONTENT_LENGTH') or -1) - - @property - def content_type(self): - ''' The Content-Type header as a lowercase-string (default: empty). ''' - return self.environ.get('CONTENT_TYPE', '').lower() - - @property - def is_xhr(self): - ''' True if the request was triggered by a XMLHttpRequest. This only - works with JavaScript libraries that support the `X-Requested-With` - header (most of the popular libraries do). ''' - requested_with = self.environ.get('HTTP_X_REQUESTED_WITH','') - return requested_with.lower() == 'xmlhttprequest' - - @property - def is_ajax(self): - ''' Alias for :attr:`is_xhr`. "Ajax" is not the right term. ''' - return self.is_xhr - - @property - def auth(self): - """ HTTP authentication data as a (user, password) tuple. This - implementation currently supports basic (not digest) authentication - only. If the authentication happened at a higher level (e.g. in the - front web-server or a middleware), the password field is None, but - the user field is looked up from the ``REMOTE_USER`` environ - variable. On any errors, None is returned. """ - basic = parse_auth(self.environ.get('HTTP_AUTHORIZATION','')) - if basic: return basic - ruser = self.environ.get('REMOTE_USER') - if ruser: return (ruser, None) - return None - - @property - def remote_route(self): - """ A list of all IPs that were involved in this request, starting with - the client IP and followed by zero or more proxies. This does only - work if all proxies support the ```X-Forwarded-For`` header. Note - that this information can be forged by malicious clients. """ - proxy = self.environ.get('HTTP_X_FORWARDED_FOR') - if proxy: return [ip.strip() for ip in proxy.split(',')] - remote = self.environ.get('REMOTE_ADDR') - return [remote] if remote else [] - - @property - def remote_addr(self): - """ The client IP as a string. Note that this information can be forged - by malicious clients. """ - route = self.remote_route - return route[0] if route else None - - def copy(self): - """ Return a new :class:`Request` with a shallow :attr:`environ` copy. """ - return Request(self.environ.copy()) - - def get(self, value, default=None): return self.environ.get(value, default) - def __getitem__(self, key): return self.environ[key] - def __delitem__(self, key): self[key] = ""; del(self.environ[key]) - def __iter__(self): return iter(self.environ) - def __len__(self): return len(self.environ) - def keys(self): return self.environ.keys() - def __setitem__(self, key, value): - """ Change an environ value and clear all caches that depend on it. """ - - if self.environ.get('bottle.request.readonly'): - raise KeyError('The environ dictionary is read-only.') - - self.environ[key] = value - todelete = () - - if key == 'wsgi.input': - todelete = ('body', 'forms', 'files', 'params', 'post', 'json') - elif key == 'QUERY_STRING': - todelete = ('query', 'params') - elif key.startswith('HTTP_'): - todelete = ('headers', 'cookies') - - for key in todelete: - self.environ.pop('bottle.request.'+key, None) - - def __repr__(self): - return '<%s: %s %s>' % (self.__class__.__name__, self.method, self.url) - - def __getattr__(self, name): - ''' Search in self.environ for additional user defined attributes. ''' - try: - var = self.environ['bottle.request.ext.%s'%name] - return var.__get__(self) if hasattr(var, '__get__') else var - except KeyError: - raise AttributeError('Attribute %r not defined.' % name) - - def __setattr__(self, name, value): - if name == 'environ': return object.__setattr__(self, name, value) - self.environ['bottle.request.ext.%s'%name] = value - - - - -def _hkey(s): - return s.title().replace('_','-') - - -class HeaderProperty(object): - def __init__(self, name, reader=None, writer=str, default=''): - self.name, self.default = name, default - self.reader, self.writer = reader, writer - self.__doc__ = 'Current value of the %r header.' % name.title() - - def __get__(self, obj, cls): - if obj is None: return self - value = obj.headers.get(self.name, self.default) - return self.reader(value) if self.reader else value - - def __set__(self, obj, value): - obj.headers[self.name] = self.writer(value) - - def __delete__(self, obj): - del obj.headers[self.name] - - -class BaseResponse(object): - """ Storage class for a response body as well as headers and cookies. - - This class does support dict-like case-insensitive item-access to - headers, but is NOT a dict. Most notably, iterating over a response - yields parts of the body and not the headers. - - :param body: The response body as one of the supported types. - :param status: Either an HTTP status code (e.g. 200) or a status line - including the reason phrase (e.g. '200 OK'). - :param headers: A dictionary or a list of name-value pairs. - - Additional keyword arguments are added to the list of headers. - Underscores in the header name are replaced with dashes. - """ - - default_status = 200 - default_content_type = 'text/html; charset=UTF-8' - - # Header blacklist for specific response codes - # (rfc2616 section 10.2.3 and 10.3.5) - bad_headers = { - 204: set(('Content-Type',)), - 304: set(('Allow', 'Content-Encoding', 'Content-Language', - 'Content-Length', 'Content-Range', 'Content-Type', - 'Content-Md5', 'Last-Modified'))} - - def __init__(self, body='', status=None, headers=None, **more_headers): - self._cookies = None - self._headers = {} - self.body = body - self.status = status or self.default_status - if headers: - if isinstance(headers, dict): - headers = headers.items() - for name, value in headers: - self.add_header(name, value) - if more_headers: - for name, value in more_headers.items(): - self.add_header(name, value) - - def copy(self, cls=None): - ''' Returns a copy of self. ''' - cls = cls or BaseResponse - assert issubclass(cls, BaseResponse) - copy = cls() - copy.status = self.status - copy._headers = dict((k, v[:]) for (k, v) in self._headers.items()) - copy.COOKIES.load(self.COOKIES.output()) - return copy - - def __iter__(self): - return iter(self.body) - - def close(self): - if hasattr(self.body, 'close'): - self.body.close() - - @property - def status_line(self): - ''' The HTTP status line as a string (e.g. ``404 Not Found``).''' - return self._status_line - - @property - def status_code(self): - ''' The HTTP status code as an integer (e.g. 404).''' - return self._status_code - - def _set_status(self, status): - if isinstance(status, int): - code, status = status, _HTTP_STATUS_LINES.get(status) - elif ' ' in status: - status = status.strip() - code = int(status.split()[0]) - else: - raise ValueError('String status line without a reason phrase.') - if not 100 <= code <= 999: raise ValueError('Status code out of range.') - self._status_code = code - self._status_line = str(status or ('%d Unknown' % code)) - - def _get_status(self): - return self._status_line - - status = property(_get_status, _set_status, None, - ''' A writeable property to change the HTTP response status. It accepts - either a numeric code (100-999) or a string with a custom reason - phrase (e.g. "404 Brain not found"). Both :data:`status_line` and - :data:`status_code` are updated accordingly. The return value is - always a status string. ''') - del _get_status, _set_status - - @property - def headers(self): - ''' An instance of :class:`HeaderDict`, a case-insensitive dict-like - view on the response headers. ''' - hdict = HeaderDict() - hdict.dict = self._headers - return hdict - - def __contains__(self, name): return _hkey(name) in self._headers - def __delitem__(self, name): del self._headers[_hkey(name)] - def __getitem__(self, name): return self._headers[_hkey(name)][-1] - def __setitem__(self, name, value): self._headers[_hkey(name)] = [str(value)] - - def get_header(self, name, default=None): - ''' Return the value of a previously defined header. If there is no - header with that name, return a default value. ''' - return self._headers.get(_hkey(name), [default])[-1] - - def set_header(self, name, value): - ''' Create a new response header, replacing any previously defined - headers with the same name. ''' - self._headers[_hkey(name)] = [str(value)] - - def add_header(self, name, value): - ''' Add an additional response header, not removing duplicates. ''' - self._headers.setdefault(_hkey(name), []).append(str(value)) - - def iter_headers(self): - ''' Yield (header, value) tuples, skipping headers that are not - allowed with the current response status code. ''' - return self.headerlist - - def wsgiheader(self): - depr('The wsgiheader method is deprecated. See headerlist.') #0.10 - return self.headerlist - - @property - def headerlist(self): - ''' WSGI conform list of (header, value) tuples. ''' - out = [] - headers = list(self._headers.items()) - if 'Content-Type' not in self._headers: - headers.append(('Content-Type', [self.default_content_type])) - if self._status_code in self.bad_headers: - bad_headers = self.bad_headers[self._status_code] - headers = [h for h in headers if h[0] not in bad_headers] - out += [(name, val) for name, vals in headers for val in vals] - if self._cookies: - for c in self._cookies.values(): - out.append(('Set-Cookie', c.OutputString())) - return out - - content_type = HeaderProperty('Content-Type') - content_length = HeaderProperty('Content-Length', reader=int) - expires = HeaderProperty('Expires', - reader=lambda x: datetime.utcfromtimestamp(parse_date(x)), - writer=lambda x: http_date(x)) - - @property - def charset(self, default='UTF-8'): - """ Return the charset specified in the content-type header (default: utf8). """ - if 'charset=' in self.content_type: - return self.content_type.split('charset=')[-1].split(';')[0].strip() - return default - - @property - def COOKIES(self): - """ A dict-like SimpleCookie instance. This should not be used directly. - See :meth:`set_cookie`. """ - depr('The COOKIES dict is deprecated. Use `set_cookie()` instead.') # 0.10 - if not self._cookies: - self._cookies = SimpleCookie() - return self._cookies - - def set_cookie(self, name, value, secret=None, **options): - ''' Create a new cookie or replace an old one. If the `secret` parameter is - set, create a `Signed Cookie` (described below). - - :param name: the name of the cookie. - :param value: the value of the cookie. - :param secret: a signature key required for signed cookies. - - Additionally, this method accepts all RFC 2109 attributes that are - supported by :class:`cookie.Morsel`, including: - - :param max_age: maximum age in seconds. (default: None) - :param expires: a datetime object or UNIX timestamp. (default: None) - :param domain: the domain that is allowed to read the cookie. - (default: current domain) - :param path: limits the cookie to a given path (default: current path) - :param secure: limit the cookie to HTTPS connections (default: off). - :param httponly: prevents client-side javascript to read this cookie - (default: off, requires Python 2.6 or newer). - - If neither `expires` nor `max_age` is set (default), the cookie will - expire at the end of the browser session (as soon as the browser - window is closed). - - Signed cookies may store any pickle-able object and are - cryptographically signed to prevent manipulation. Keep in mind that - cookies are limited to 4kb in most browsers. - - Warning: Signed cookies are not encrypted (the client can still see - the content) and not copy-protected (the client can restore an old - cookie). The main intention is to make pickling and unpickling - save, not to store secret information at client side. - ''' - if not self._cookies: - self._cookies = SimpleCookie() - - if secret: - value = touni(cookie_encode((name, value), secret)) - elif not isinstance(value, basestring): - raise TypeError('Secret key missing for non-string Cookie.') - - if len(value) > 4096: raise ValueError('Cookie value to long.') - self._cookies[name] = value - - for key, value in options.items(): - if key == 'max_age': - if isinstance(value, timedelta): - value = value.seconds + value.days * 24 * 3600 - if key == 'expires': - if isinstance(value, (datedate, datetime)): - value = value.timetuple() - elif isinstance(value, (int, float)): - value = time.gmtime(value) - value = time.strftime("%a, %d %b %Y %H:%M:%S GMT", value) - self._cookies[name][key.replace('_', '-')] = value - - def delete_cookie(self, key, **kwargs): - ''' Delete a cookie. Be sure to use the same `domain` and `path` - settings as used to create the cookie. ''' - kwargs['max_age'] = -1 - kwargs['expires'] = 0 - self.set_cookie(key, '', **kwargs) - - def __repr__(self): - out = '' - for name, value in self.headerlist: - out += '%s: %s\n' % (name.title(), value.strip()) - return out - -#: Thread-local storage for :class:`LocalRequest` and :class:`LocalResponse` -#: attributes. -_lctx = threading.local() - -def local_property(name): - def fget(self): - try: - return getattr(_lctx, name) - except AttributeError: - raise RuntimeError("Request context not initialized.") - def fset(self, value): setattr(_lctx, name, value) - def fdel(self): delattr(_lctx, name) - return property(fget, fset, fdel, - 'Thread-local property stored in :data:`_lctx.%s`' % name) - - -class LocalRequest(BaseRequest): - ''' A thread-local subclass of :class:`BaseRequest` with a different - set of attribues for each thread. There is usually only one global - instance of this class (:data:`request`). If accessed during a - request/response cycle, this instance always refers to the *current* - request (even on a multithreaded server). ''' - bind = BaseRequest.__init__ - environ = local_property('request_environ') - - -class LocalResponse(BaseResponse): - ''' A thread-local subclass of :class:`BaseResponse` with a different - set of attribues for each thread. There is usually only one global - instance of this class (:data:`response`). Its attributes are used - to build the HTTP response at the end of the request/response cycle. - ''' - bind = BaseResponse.__init__ - _status_line = local_property('response_status_line') - _status_code = local_property('response_status_code') - _cookies = local_property('response_cookies') - _headers = local_property('response_headers') - body = local_property('response_body') - - -Request = BaseRequest -Response = BaseResponse - - -class HTTPResponse(Response, BottleException): - def __init__(self, body='', status=None, headers=None, - header=None, **more_headers): - if header or 'output' in more_headers: - depr('Call signature changed (for the better). See BaseResponse') - if header: more_headers.update(header) - if 'output' in more_headers: body = more_headers.pop('output') - super(HTTPResponse, self).__init__(body, status, headers, **more_headers) - - def apply(self, response): - response._status_code = self._status_code - response._status_line = self._status_line - response._headers = self._headers - response._cookies = self._cookies - response.body = self.body - - def _output(self, value=None): - depr('Use HTTPResponse.body instead of HTTPResponse.output') - if value is None: return self.body - self.body = value - - output = property(_output, _output, doc='Alias for .body') - - -class HTTPError(HTTPResponse): - default_status = 500 - def __init__(self, status=None, body=None, exception=None, traceback=None, - **options): - self.exception = exception - self.traceback = traceback - super(HTTPError, self).__init__(body, status, **options) - - - - - -############################################################################### -# Plugins ###################################################################### -############################################################################### - -class PluginError(BottleException): pass - - -class JSONPlugin(object): - name = 'json' - api = 2 - - def __init__(self, json_dumps=json_dumps): - self.json_dumps = json_dumps - - def apply(self, callback, route): - dumps = self.json_dumps - if not dumps: return callback - def wrapper(*a, **ka): - try: - rv = callback(*a, **ka) - except HTTPError: - rv = _e() - - if isinstance(rv, dict): - #Attempt to serialize, raises exception on failure - json_response = dumps(rv) - #Set content type only if serialization succesful - response.content_type = 'application/json' - return json_response - elif isinstance(rv, HTTPResponse) and isinstance(rv.body, dict): - rv.body = dumps(rv.body) - rv.content_type = 'application/json' - return rv - - return wrapper - - -class TemplatePlugin(object): - ''' This plugin applies the :func:`view` decorator to all routes with a - `template` config parameter. If the parameter is a tuple, the second - element must be a dict with additional options (e.g. `template_engine`) - or default variables for the template. ''' - name = 'template' - api = 2 - - def apply(self, callback, route): - conf = route.config.get('template') - if isinstance(conf, (tuple, list)) and len(conf) == 2: - return view(conf[0], **conf[1])(callback) - elif isinstance(conf, str): - return view(conf)(callback) - else: - return callback - - -#: Not a plugin, but part of the plugin API. TODO: Find a better place. -class _ImportRedirect(object): - def __init__(self, name, impmask): - ''' Create a virtual package that redirects imports (see PEP 302). ''' - self.name = name - self.impmask = impmask - self.module = sys.modules.setdefault(name, imp.new_module(name)) - self.module.__dict__.update({'__file__': __file__, '__path__': [], - '__all__': [], '__loader__': self}) - sys.meta_path.append(self) - - def find_module(self, fullname, path=None): - if '.' not in fullname: return - packname, modname = fullname.rsplit('.', 1) - if packname != self.name: return - return self - - def load_module(self, fullname): - if fullname in sys.modules: return sys.modules[fullname] - packname, modname = fullname.rsplit('.', 1) - realname = self.impmask % modname - __import__(realname) - module = sys.modules[fullname] = sys.modules[realname] - setattr(self.module, modname, module) - module.__loader__ = self - return module - - - - - - -############################################################################### -# Common Utilities ############################################################# -############################################################################### - - -class MultiDict(DictMixin): - """ This dict stores multiple values per key, but behaves exactly like a - normal dict in that it returns only the newest value for any given key. - There are special methods available to access the full list of values. - """ - - def __init__(self, *a, **k): - self.dict = dict((k, [v]) for (k, v) in dict(*a, **k).items()) - - def __len__(self): return len(self.dict) - def __iter__(self): return iter(self.dict) - def __contains__(self, key): return key in self.dict - def __delitem__(self, key): del self.dict[key] - def __getitem__(self, key): return self.dict[key][-1] - def __setitem__(self, key, value): self.append(key, value) - def keys(self): return self.dict.keys() - - if py3k: - def values(self): return (v[-1] for v in self.dict.values()) - def items(self): return ((k, v[-1]) for k, v in self.dict.items()) - def allitems(self): - return ((k, v) for k, vl in self.dict.items() for v in vl) - iterkeys = keys - itervalues = values - iteritems = items - iterallitems = allitems - - else: - def values(self): return [v[-1] for v in self.dict.values()] - def items(self): return [(k, v[-1]) for k, v in self.dict.items()] - def iterkeys(self): return self.dict.iterkeys() - def itervalues(self): return (v[-1] for v in self.dict.itervalues()) - def iteritems(self): - return ((k, v[-1]) for k, v in self.dict.iteritems()) - def iterallitems(self): - return ((k, v) for k, vl in self.dict.iteritems() for v in vl) - def allitems(self): - return [(k, v) for k, vl in self.dict.iteritems() for v in vl] - - def get(self, key, default=None, index=-1, type=None): - ''' Return the most recent value for a key. - - :param default: The default value to be returned if the key is not - present or the type conversion fails. - :param index: An index for the list of available values. - :param type: If defined, this callable is used to cast the value - into a specific type. Exception are suppressed and result in - the default value to be returned. - ''' - try: - val = self.dict[key][index] - return type(val) if type else val - except Exception: - pass - return default - - def append(self, key, value): - ''' Add a new value to the list of values for this key. ''' - self.dict.setdefault(key, []).append(value) - - def replace(self, key, value): - ''' Replace the list of values with a single value. ''' - self.dict[key] = [value] - - def getall(self, key): - ''' Return a (possibly empty) list of values for a key. ''' - return self.dict.get(key) or [] - - #: Aliases for WTForms to mimic other multi-dict APIs (Django) - getone = get - getlist = getall - - -class FormsDict(MultiDict): - ''' This :class:`MultiDict` subclass is used to store request form data. - Additionally to the normal dict-like item access methods (which return - unmodified data as native strings), this container also supports - attribute-like access to its values. Attributes are automatically de- - or recoded to match :attr:`input_encoding` (default: 'utf8'). Missing - attributes default to an empty string. ''' - - #: Encoding used for attribute values. - input_encoding = 'utf8' - #: If true (default), unicode strings are first encoded with `latin1` - #: and then decoded to match :attr:`input_encoding`. - recode_unicode = True - - def _fix(self, s, encoding=None): - if isinstance(s, unicode) and self.recode_unicode: # Python 3 WSGI - s = s.encode('latin1') - if isinstance(s, bytes): # Python 2 WSGI - return s.decode(encoding or self.input_encoding) - return s - - def decode(self, encoding=None): - ''' Returns a copy with all keys and values de- or recoded to match - :attr:`input_encoding`. Some libraries (e.g. WTForms) want a - unicode dictionary. ''' - copy = FormsDict() - enc = copy.input_encoding = encoding or self.input_encoding - copy.recode_unicode = False - for key, value in self.allitems(): - copy.append(self._fix(key, enc), self._fix(value, enc)) - return copy - - def getunicode(self, name, default=None, encoding=None): - ''' Return the value as a unicode string, or the default. ''' - try: - return self._fix(self[name], encoding) - except (UnicodeError, KeyError): - return default - - def __getattr__(self, name, default=unicode()): - # Without this guard, pickle generates a cryptic TypeError: - if name.startswith('__') and name.endswith('__'): - return super(FormsDict, self).__getattr__(name) - return self.getunicode(name, default=default) - - -class HeaderDict(MultiDict): - """ A case-insensitive version of :class:`MultiDict` that defaults to - replace the old value instead of appending it. """ - - def __init__(self, *a, **ka): - self.dict = {} - if a or ka: self.update(*a, **ka) - - def __contains__(self, key): return _hkey(key) in self.dict - def __delitem__(self, key): del self.dict[_hkey(key)] - def __getitem__(self, key): return self.dict[_hkey(key)][-1] - def __setitem__(self, key, value): self.dict[_hkey(key)] = [str(value)] - def append(self, key, value): - self.dict.setdefault(_hkey(key), []).append(str(value)) - def replace(self, key, value): self.dict[_hkey(key)] = [str(value)] - def getall(self, key): return self.dict.get(_hkey(key)) or [] - def get(self, key, default=None, index=-1): - return MultiDict.get(self, _hkey(key), default, index) - def filter(self, names): - for name in [_hkey(n) for n in names]: - if name in self.dict: - del self.dict[name] - - -class WSGIHeaderDict(DictMixin): - ''' This dict-like class wraps a WSGI environ dict and provides convenient - access to HTTP_* fields. Keys and values are native strings - (2.x bytes or 3.x unicode) and keys are case-insensitive. If the WSGI - environment contains non-native string values, these are de- or encoded - using a lossless 'latin1' character set. - - The API will remain stable even on changes to the relevant PEPs. - Currently PEP 333, 444 and 3333 are supported. (PEP 444 is the only one - that uses non-native strings.) - ''' - #: List of keys that do not have a ``HTTP_`` prefix. - cgikeys = ('CONTENT_TYPE', 'CONTENT_LENGTH') - - def __init__(self, environ): - self.environ = environ - - def _ekey(self, key): - ''' Translate header field name to CGI/WSGI environ key. ''' - key = key.replace('-','_').upper() - if key in self.cgikeys: - return key - return 'HTTP_' + key - - def raw(self, key, default=None): - ''' Return the header value as is (may be bytes or unicode). ''' - return self.environ.get(self._ekey(key), default) - - def __getitem__(self, key): - return tonat(self.environ[self._ekey(key)], 'latin1') - - def __setitem__(self, key, value): - raise TypeError("%s is read-only." % self.__class__) - - def __delitem__(self, key): - raise TypeError("%s is read-only." % self.__class__) - - def __iter__(self): - for key in self.environ: - if key[:5] == 'HTTP_': - yield key[5:].replace('_', '-').title() - elif key in self.cgikeys: - yield key.replace('_', '-').title() - - def keys(self): return [x for x in self] - def __len__(self): return len(self.keys()) - def __contains__(self, key): return self._ekey(key) in self.environ - - - -class ConfigDict(dict): - ''' A dict-like configuration storage with additional support for - namespaces, validators, meta-data, on_change listeners and more. - ''' - - __slots__ = ('_meta', '_on_change') - - def __init__(self, *a, **ka): - self._meta = {} - self._on_change = lambda name, value: None - if a or ka: - depr('Constructor does no longer accept parameters.') - self.update(*a, **ka) - - def load_config(self, filename): - ''' Load values from an *.ini style config file. - - If the config file contains sections, their names are used as - namespaces for the values within. The two special sections - ``DEFAULT`` and ``bottle`` refer to the root namespace (no prefix). - ''' - conf = ConfigParser() - conf.read(filename) - for section in conf.sections(): - for key, value in conf.items(section): - if section not in ('DEFAULT', 'bottle'): - key = section + '.' + key - self[key] = value - return self - - def load_dict(self, source, namespace=''): - ''' Load values from a dictionary structure. Nesting can be used to - represent namespaces. - - >>> c.load_dict({'some': {'namespace': {'key': 'value'} } }) - {'some.namespace.key': 'value'} - ''' - for key, value in source.items(): - if isinstance(key, str): - nskey = (namespace + '.' + key).strip('.') - if isinstance(value, dict): - self.load_dict(value, namespace=nskey) - else: - self[nskey] = value - else: - raise TypeError('Key has type %r (not a string)' % type(key)) - return self - - def update(self, *a, **ka): - ''' If the first parameter is a string, all keys are prefixed with this - namespace. Apart from that it works just as the usual dict.update(). - Example: ``update('some.namespace', key='value')`` ''' - prefix = '' - if a and isinstance(a[0], str): - prefix = a[0].strip('.') + '.' - a = a[1:] - for key, value in dict(*a, **ka).items(): - self[prefix+key] = value - - def setdefault(self, key, value): - if key not in self: - self[key] = value - - def __setitem__(self, key, value): - if not isinstance(key, str): - raise TypeError('Key has type %r (not a string)' % type(key)) - value = self.meta_get(key, 'filter', lambda x: x)(value) - if key in self and self[key] is value: - return - self._on_change(key, value) - dict.__setitem__(self, key, value) - - def __delitem__(self, key): - self._on_change(key, None) - dict.__delitem__(self, key) - - def meta_get(self, key, metafield, default=None): - ''' Return the value of a meta field for a key. ''' - return self._meta.get(key, {}).get(metafield, default) - - def meta_set(self, key, metafield, value): - ''' Set the meta field for a key to a new value. This triggers the - on-change handler for existing keys. ''' - self._meta.setdefault(key, {})[metafield] = value - if key in self: - self[key] = self[key] - - def meta_list(self, key): - ''' Return an iterable of meta field names defined for a key. ''' - return self._meta.get(key, {}).keys() - - # Deprecated ConfigDict features - def __getattr__(self, key): - depr('Attribute access is deprecated.') #0.12 - if key not in self and key[0].isupper(): - self[key] = ConfigDict() - return self.get(key) - - def __setattr__(self, key, value): - if key in self.__slots__: - return dict.__setattr__(self, key, value) - depr('Attribute assignment is deprecated.') #0.12 - if hasattr(dict, key): - raise AttributeError('Read-only attribute.') - if key in self and self[key] and isinstance(self[key], ConfigDict): - raise AttributeError('Non-empty namespace attribute.') - self[key] = value - - def __delattr__(self, key): - if key in self: del self[key] - - def __call__(self, *a, **ka): - depr('Calling ConfDict is deprecated. Use the update() method.') #0.12 - self.update(*a, **ka) - return self - - - -class AppStack(list): - """ A stack-like list. Calling it returns the head of the stack. """ - - def __call__(self): - """ Return the current default application. """ - return self[-1] - - def push(self, value=None): - """ Add a new :class:`Bottle` instance to the stack """ - if not isinstance(value, Bottle): - value = Bottle() - self.append(value) - return value - - -class WSGIFileWrapper(object): - - def __init__(self, fp, buffer_size=1024*64): - self.fp, self.buffer_size = fp, buffer_size - for attr in ('fileno', 'close', 'read', 'readlines', 'tell', 'seek'): - if hasattr(fp, attr): setattr(self, attr, getattr(fp, attr)) - - def __iter__(self): - buff, read = self.buffer_size, self.read - while True: - part = read(buff) - if not part: return - yield part - - -class _closeiter(object): - ''' This only exists to be able to attach a .close method to iterators that - do not support attribute assignment (most of itertools). ''' - - def __init__(self, iterator, close=None): - self.iterator = iterator - self.close_callbacks = makelist(close) - - def __iter__(self): - return iter(self.iterator) - - def close(self): - for func in self.close_callbacks: - func() - - -class ResourceManager(object): - ''' This class manages a list of search paths and helps to find and open - application-bound resources (files). - - :param base: default value for :meth:`add_path` calls. - :param opener: callable used to open resources. - :param cachemode: controls which lookups are cached. One of 'all', - 'found' or 'none'. - ''' - - def __init__(self, base='./', opener=open, cachemode='all'): - self.opener = open - self.base = base - self.cachemode = cachemode - - #: A list of search paths. See :meth:`add_path` for details. - self.path = [] - #: A cache for resolved paths. ``res.cache.clear()`` clears the cache. - self.cache = {} - - def add_path(self, path, base=None, index=None, create=False): - ''' Add a new path to the list of search paths. Return False if the - path does not exist. - - :param path: The new search path. Relative paths are turned into - an absolute and normalized form. If the path looks like a file - (not ending in `/`), the filename is stripped off. - :param base: Path used to absolutize relative search paths. - Defaults to :attr:`base` which defaults to ``os.getcwd()``. - :param index: Position within the list of search paths. Defaults - to last index (appends to the list). - - The `base` parameter makes it easy to reference files installed - along with a python module or package:: - - res.add_path('./resources/', __file__) - ''' - base = os.path.abspath(os.path.dirname(base or self.base)) - path = os.path.abspath(os.path.join(base, os.path.dirname(path))) - path += os.sep - if path in self.path: - self.path.remove(path) - if create and not os.path.isdir(path): - os.makedirs(path) - if index is None: - self.path.append(path) - else: - self.path.insert(index, path) - self.cache.clear() - return os.path.exists(path) - - def __iter__(self): - ''' Iterate over all existing files in all registered paths. ''' - search = self.path[:] - while search: - path = search.pop() - if not os.path.isdir(path): continue - for name in os.listdir(path): - full = os.path.join(path, name) - if os.path.isdir(full): search.append(full) - else: yield full - - def lookup(self, name): - ''' Search for a resource and return an absolute file path, or `None`. - - The :attr:`path` list is searched in order. The first match is - returend. Symlinks are followed. The result is cached to speed up - future lookups. ''' - if name not in self.cache or DEBUG: - for path in self.path: - fpath = os.path.join(path, name) - if os.path.isfile(fpath): - if self.cachemode in ('all', 'found'): - self.cache[name] = fpath - return fpath - if self.cachemode == 'all': - self.cache[name] = None - return self.cache[name] - - def open(self, name, mode='r', *args, **kwargs): - ''' Find a resource and return a file object, or raise IOError. ''' - fname = self.lookup(name) - if not fname: raise IOError("Resource %r not found." % name) - return self.opener(fname, mode=mode, *args, **kwargs) - - -class FileUpload(object): - - def __init__(self, fileobj, name, filename, headers=None): - ''' Wrapper for file uploads. ''' - #: Open file(-like) object (BytesIO buffer or temporary file) - self.file = fileobj - #: Name of the upload form field - self.name = name - #: Raw filename as sent by the client (may contain unsafe characters) - self.raw_filename = filename - #: A :class:`HeaderDict` with additional headers (e.g. content-type) - self.headers = HeaderDict(headers) if headers else HeaderDict() - - content_type = HeaderProperty('Content-Type') - content_length = HeaderProperty('Content-Length', reader=int, default=-1) - - @cached_property - def filename(self): - ''' Name of the file on the client file system, but normalized to ensure - file system compatibility (lowercase, no whitespace, no path - separators, no unsafe characters, ASCII only). An empty filename - is returned as 'empty'. - ''' - from unicodedata import normalize #TODO: Module level import? - fname = self.raw_filename - if isinstance(fname, unicode): - fname = normalize('NFKD', fname).encode('ASCII', 'ignore') - fname = fname.decode('ASCII', 'ignore') - fname = os.path.basename(fname.replace('\\', os.path.sep)) - fname = re.sub(r'[^a-zA-Z0-9-_.\s]', '', fname).strip().lower() - fname = re.sub(r'[-\s]+', '-', fname.strip('.').strip()) - return fname or 'empty' - - def _copy_file(self, fp, chunk_size=2**16): - read, write, offset = self.file.read, fp.write, self.file.tell() - while 1: - buf = read(chunk_size) - if not buf: break - write(buf) - self.file.seek(offset) - - def save(self, destination, overwrite=False, chunk_size=2**16): - ''' Save file to disk or copy its content to an open file(-like) object. - If *destination* is a directory, :attr:`filename` is added to the - path. Existing files are not overwritten by default (IOError). - - :param destination: File path, directory or file(-like) object. - :param overwrite: If True, replace existing files. (default: False) - :param chunk_size: Bytes to read at a time. (default: 64kb) - ''' - if isinstance(destination, basestring): # Except file-likes here - if os.path.isdir(destination): - destination = os.path.join(destination, self.filename) - if not overwrite and os.path.exists(destination): - raise IOError('File exists.') - with open(destination, 'wb') as fp: - self._copy_file(fp, chunk_size) - else: - self._copy_file(destination, chunk_size) - - - - - - -############################################################################### -# Application Helper ########################################################### -############################################################################### - - -def abort(code=500, text='Unknown Error: Application stopped.'): - """ Aborts execution and causes a HTTP error. """ - raise HTTPError(code, text) - - -def redirect(url, code=None): - """ Aborts execution and causes a 303 or 302 redirect, depending on - the HTTP protocol version. """ - if not code: - code = 303 if request.get('SERVER_PROTOCOL') == "HTTP/1.1" else 302 - res = response.copy(cls=HTTPResponse) - res.status = code - res.body = "" - res.set_header('Location', urljoin(request.url, url)) - raise res - - -def _file_iter_range(fp, offset, bytes, maxread=1024*1024): - ''' Yield chunks from a range in a file. No chunk is bigger than maxread.''' - fp.seek(offset) - while bytes > 0: - part = fp.read(min(bytes, maxread)) - if not part: break - bytes -= len(part) - yield part - - -def static_file(filename, root, mimetype='auto', download=False, charset='UTF-8'): - """ Open a file in a safe way and return :exc:`HTTPResponse` with status - code 200, 305, 401 or 404. The ``Content-Type``, ``Content-Encoding``, - ``Content-Length`` and ``Last-Modified`` headers are set if possible. - Special support for ``If-Modified-Since``, ``Range`` and ``HEAD`` - requests. - - :param filename: Name or path of the file to send. - :param root: Root path for file lookups. Should be an absolute directory - path. - :param mimetype: Defines the content-type header (default: guess from - file extension) - :param download: If True, ask the browser to open a `Save as...` dialog - instead of opening the file with the associated program. You can - specify a custom filename as a string. If not specified, the - original filename is used (default: False). - :param charset: The charset to use for files with a ``text/*`` - mime-type. (default: UTF-8) - """ - - root = os.path.abspath(root) + os.sep - filename = os.path.abspath(os.path.join(root, filename.strip('/\\'))) - headers = dict() - - if not filename.startswith(root): - return HTTPError(403, "Access denied.") - if not os.path.exists(filename) or not os.path.isfile(filename): - return HTTPError(404, "File does not exist.") - if not os.access(filename, os.R_OK): - return HTTPError(403, "You do not have permission to access this file.") - - if mimetype == 'auto': - mimetype, encoding = mimetypes.guess_type(filename) - if encoding: headers['Content-Encoding'] = encoding - - if mimetype: - if mimetype[:5] == 'text/' and charset and 'charset' not in mimetype: - mimetype += '; charset=%s' % charset - headers['Content-Type'] = mimetype - - if download: - download = os.path.basename(filename if download == True else download) - headers['Content-Disposition'] = 'attachment; filename="%s"' % download - - stats = os.stat(filename) - headers['Content-Length'] = clen = stats.st_size - lm = time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime(stats.st_mtime)) - headers['Last-Modified'] = lm - - ims = request.environ.get('HTTP_IF_MODIFIED_SINCE') - if ims: - ims = parse_date(ims.split(";")[0].strip()) - if ims is not None and ims >= int(stats.st_mtime): - headers['Date'] = time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime()) - return HTTPResponse(status=304, **headers) - - body = '' if request.method == 'HEAD' else open(filename, 'rb') - - headers["Accept-Ranges"] = "bytes" - ranges = request.environ.get('HTTP_RANGE') - if 'HTTP_RANGE' in request.environ: - ranges = list(parse_range_header(request.environ['HTTP_RANGE'], clen)) - if not ranges: - return HTTPError(416, "Requested Range Not Satisfiable") - offset, end = ranges[0] - headers["Content-Range"] = "bytes %d-%d/%d" % (offset, end-1, clen) - headers["Content-Length"] = str(end-offset) - if body: body = _file_iter_range(body, offset, end-offset) - return HTTPResponse(body, status=206, **headers) - return HTTPResponse(body, **headers) - - - - - - -############################################################################### -# HTTP Utilities and MISC (TODO) ############################################### -############################################################################### - - -def debug(mode=True): - """ Change the debug level. - There is only one debug level supported at the moment.""" - global DEBUG - if mode: warnings.simplefilter('default') - DEBUG = bool(mode) - -def http_date(value): - if isinstance(value, (datedate, datetime)): - value = value.utctimetuple() - elif isinstance(value, (int, float)): - value = time.gmtime(value) - if not isinstance(value, basestring): - value = time.strftime("%a, %d %b %Y %H:%M:%S GMT", value) - return value - -def parse_date(ims): - """ Parse rfc1123, rfc850 and asctime timestamps and return UTC epoch. """ - try: - ts = email.utils.parsedate_tz(ims) - return time.mktime(ts[:8] + (0,)) - (ts[9] or 0) - time.timezone - except (TypeError, ValueError, IndexError, OverflowError): - return None - -def parse_auth(header): - """ Parse rfc2617 HTTP authentication header string (basic) and return (user,pass) tuple or None""" - try: - method, data = header.split(None, 1) - if method.lower() == 'basic': - user, pwd = touni(base64.b64decode(tob(data))).split(':',1) - return user, pwd - except (KeyError, ValueError): - return None - -def parse_range_header(header, maxlen=0): - ''' Yield (start, end) ranges parsed from a HTTP Range header. Skip - unsatisfiable ranges. The end index is non-inclusive.''' - if not header or header[:6] != 'bytes=': return - ranges = [r.split('-', 1) for r in header[6:].split(',') if '-' in r] - for start, end in ranges: - try: - if not start: # bytes=-100 -> last 100 bytes - start, end = max(0, maxlen-int(end)), maxlen - elif not end: # bytes=100- -> all but the first 99 bytes - start, end = int(start), maxlen - else: # bytes=100-200 -> bytes 100-200 (inclusive) - start, end = int(start), min(int(end)+1, maxlen) - if 0 <= start < end <= maxlen: - yield start, end - except ValueError: - pass - -def _parse_qsl(qs): - r = [] - for pair in qs.replace(';','&').split('&'): - if not pair: continue - nv = pair.split('=', 1) - if len(nv) != 2: nv.append('') - key = urlunquote(nv[0].replace('+', ' ')) - value = urlunquote(nv[1].replace('+', ' ')) - r.append((key, value)) - return r - -def _lscmp(a, b): - ''' Compares two strings in a cryptographically safe way: - Runtime is not affected by length of common prefix. ''' - return not sum(0 if x==y else 1 for x, y in zip(a, b)) and len(a) == len(b) - - -def cookie_encode(data, key): - ''' Encode and sign a pickle-able object. Return a (byte) string ''' - msg = base64.b64encode(pickle.dumps(data, -1)) - sig = base64.b64encode(hmac.new(tob(key), msg).digest()) - return tob('!') + sig + tob('?') + msg - - -def cookie_decode(data, key): - ''' Verify and decode an encoded string. Return an object or None.''' - data = tob(data) - if cookie_is_encoded(data): - sig, msg = data.split(tob('?'), 1) - if _lscmp(sig[1:], base64.b64encode(hmac.new(tob(key), msg).digest())): - return pickle.loads(base64.b64decode(msg)) - return None - - -def cookie_is_encoded(data): - ''' Return True if the argument looks like a encoded cookie.''' - return bool(data.startswith(tob('!')) and tob('?') in data) - - -def html_escape(string): - ''' Escape HTML special characters ``&<>`` and quotes ``'"``. ''' - return string.replace('&','&').replace('<','<').replace('>','>')\ - .replace('"','"').replace("'",''') - - -def html_quote(string): - ''' Escape and quote a string to be used as an HTTP attribute.''' - return '"%s"' % html_escape(string).replace('\n','%#10;')\ - .replace('\r',' ').replace('\t',' ') - - -def yieldroutes(func): - """ Return a generator for routes that match the signature (name, args) - of the func parameter. This may yield more than one route if the function - takes optional keyword arguments. The output is best described by example:: - - a() -> '/a' - b(x, y) -> '/b//' - c(x, y=5) -> '/c/' and '/c//' - d(x=5, y=6) -> '/d' and '/d/' and '/d//' - """ - path = '/' + func.__name__.replace('__','/').lstrip('/') - spec = getargspec(func) - argc = len(spec[0]) - len(spec[3] or []) - path += ('/<%s>' * argc) % tuple(spec[0][:argc]) - yield path - for arg in spec[0][argc:]: - path += '/<%s>' % arg - yield path - - -def path_shift(script_name, path_info, shift=1): - ''' Shift path fragments from PATH_INFO to SCRIPT_NAME and vice versa. - - :return: The modified paths. - :param script_name: The SCRIPT_NAME path. - :param script_name: The PATH_INFO path. - :param shift: The number of path fragments to shift. May be negative to - change the shift direction. (default: 1) - ''' - if shift == 0: return script_name, path_info - pathlist = path_info.strip('/').split('/') - scriptlist = script_name.strip('/').split('/') - if pathlist and pathlist[0] == '': pathlist = [] - if scriptlist and scriptlist[0] == '': scriptlist = [] - if shift > 0 and shift <= len(pathlist): - moved = pathlist[:shift] - scriptlist = scriptlist + moved - pathlist = pathlist[shift:] - elif shift < 0 and shift >= -len(scriptlist): - moved = scriptlist[shift:] - pathlist = moved + pathlist - scriptlist = scriptlist[:shift] - else: - empty = 'SCRIPT_NAME' if shift < 0 else 'PATH_INFO' - raise AssertionError("Cannot shift. Nothing left from %s" % empty) - new_script_name = '/' + '/'.join(scriptlist) - new_path_info = '/' + '/'.join(pathlist) - if path_info.endswith('/') and pathlist: new_path_info += '/' - return new_script_name, new_path_info - - -def auth_basic(check, realm="private", text="Access denied"): - ''' Callback decorator to require HTTP auth (basic). - TODO: Add route(check_auth=...) parameter. ''' - def decorator(func): - def wrapper(*a, **ka): - user, password = request.auth or (None, None) - if user is None or not check(user, password): - err = HTTPError(401, text) - err.add_header('WWW-Authenticate', 'Basic realm="%s"' % realm) - return err - return func(*a, **ka) - return wrapper - return decorator - - -# Shortcuts for common Bottle methods. -# They all refer to the current default application. - -def make_default_app_wrapper(name): - ''' Return a callable that relays calls to the current default app. ''' - @functools.wraps(getattr(Bottle, name)) - def wrapper(*a, **ka): - return getattr(app(), name)(*a, **ka) - return wrapper - -route = make_default_app_wrapper('route') -get = make_default_app_wrapper('get') -post = make_default_app_wrapper('post') -put = make_default_app_wrapper('put') -delete = make_default_app_wrapper('delete') -error = make_default_app_wrapper('error') -mount = make_default_app_wrapper('mount') -hook = make_default_app_wrapper('hook') -install = make_default_app_wrapper('install') -uninstall = make_default_app_wrapper('uninstall') -url = make_default_app_wrapper('get_url') - - - - - - - -############################################################################### -# Server Adapter ############################################################### -############################################################################### - - -class ServerAdapter(object): - quiet = False - def __init__(self, host='127.0.0.1', port=8080, **options): - self.options = options - self.host = host - self.port = int(port) - - def run(self, handler): # pragma: no cover - pass - - def __repr__(self): - args = ', '.join(['%s=%s'%(k,repr(v)) for k, v in self.options.items()]) - return "%s(%s)" % (self.__class__.__name__, args) - - -class CGIServer(ServerAdapter): - quiet = True - def run(self, handler): # pragma: no cover - from wsgiref.handlers import CGIHandler - def fixed_environ(environ, start_response): - environ.setdefault('PATH_INFO', '') - return handler(environ, start_response) - CGIHandler().run(fixed_environ) - - -class FlupFCGIServer(ServerAdapter): - def run(self, handler): # pragma: no cover - import flup.server.fcgi - self.options.setdefault('bindAddress', (self.host, self.port)) - flup.server.fcgi.WSGIServer(handler, **self.options).run() - - -class WSGIRefServer(ServerAdapter): - def run(self, app): # pragma: no cover - from wsgiref.simple_server import WSGIRequestHandler, WSGIServer - from wsgiref.simple_server import make_server - import socket - - class FixedHandler(WSGIRequestHandler): - def address_string(self): # Prevent reverse DNS lookups please. - return self.client_address[0] - def log_request(*args, **kw): - if not self.quiet: - return WSGIRequestHandler.log_request(*args, **kw) - - handler_cls = self.options.get('handler_class', FixedHandler) - server_cls = self.options.get('server_class', WSGIServer) - - if ':' in self.host: # Fix wsgiref for IPv6 addresses. - if getattr(server_cls, 'address_family') == socket.AF_INET: - class server_cls(server_cls): - address_family = socket.AF_INET6 - - srv = make_server(self.host, self.port, app, server_cls, handler_cls) - srv.serve_forever() - - -class CherryPyServer(ServerAdapter): - def run(self, handler): # pragma: no cover - from cherrypy import wsgiserver - self.options['bind_addr'] = (self.host, self.port) - self.options['wsgi_app'] = handler - server = wsgiserver.CherryPyWSGIServer(**self.options) - try: - server.start() - finally: - server.stop() - - -class WaitressServer(ServerAdapter): - def run(self, handler): - from waitress import serve - serve(handler, host=self.host, port=self.port) - - -class PasteServer(ServerAdapter): - def run(self, handler): # pragma: no cover - from paste import httpserver - from paste.translogger import TransLogger - handler = TransLogger(handler, setup_console_handler=(not self.quiet)) - httpserver.serve(handler, host=self.host, port=str(self.port), - **self.options) - - -class MeinheldServer(ServerAdapter): - def run(self, handler): - from meinheld import server - server.listen((self.host, self.port)) - server.run(handler) - - -class FapwsServer(ServerAdapter): - """ Extremely fast webserver using libev. See http://www.fapws.org/ """ - def run(self, handler): # pragma: no cover - import fapws._evwsgi as evwsgi - from fapws import base, config - port = self.port - if float(config.SERVER_IDENT[-2:]) > 0.4: - # fapws3 silently changed its API in 0.5 - port = str(port) - evwsgi.start(self.host, port) - # fapws3 never releases the GIL. Complain upstream. I tried. No luck. - if 'BOTTLE_CHILD' in os.environ and not self.quiet: - _stderr("WARNING: Auto-reloading does not work with Fapws3.\n") - _stderr(" (Fapws3 breaks python thread support)\n") - evwsgi.set_base_module(base) - def app(environ, start_response): - environ['wsgi.multiprocess'] = False - return handler(environ, start_response) - evwsgi.wsgi_cb(('', app)) - evwsgi.run() - - -class TornadoServer(ServerAdapter): - """ The super hyped asynchronous server by facebook. Untested. """ - def run(self, handler): # pragma: no cover - import tornado.wsgi, tornado.httpserver, tornado.ioloop - container = tornado.wsgi.WSGIContainer(handler) - server = tornado.httpserver.HTTPServer(container) - server.listen(port=self.port,address=self.host) - tornado.ioloop.IOLoop.instance().start() - - -class AppEngineServer(ServerAdapter): - """ Adapter for Google App Engine. """ - quiet = True - def run(self, handler): - from google.appengine.ext.webapp import util - # A main() function in the handler script enables 'App Caching'. - # Lets makes sure it is there. This _really_ improves performance. - module = sys.modules.get('__main__') - if module and not hasattr(module, 'main'): - module.main = lambda: util.run_wsgi_app(handler) - util.run_wsgi_app(handler) - - -class TwistedServer(ServerAdapter): - """ Untested. """ - def run(self, handler): - from twisted.web import server, wsgi - from twisted.python.threadpool import ThreadPool - from twisted.internet import reactor - thread_pool = ThreadPool() - thread_pool.start() - reactor.addSystemEventTrigger('after', 'shutdown', thread_pool.stop) - factory = server.Site(wsgi.WSGIResource(reactor, thread_pool, handler)) - reactor.listenTCP(self.port, factory, interface=self.host) - reactor.run() - - -class DieselServer(ServerAdapter): - """ Untested. """ - def run(self, handler): - from diesel.protocols.wsgi import WSGIApplication - app = WSGIApplication(handler, port=self.port) - app.run() - - -class GeventServer(ServerAdapter): - """ Untested. Options: - - * `fast` (default: False) uses libevent's http server, but has some - issues: No streaming, no pipelining, no SSL. - * See gevent.wsgi.WSGIServer() documentation for more options. - """ - def run(self, handler): - from gevent import wsgi, pywsgi, local - if not isinstance(_lctx, local.local): - msg = "Bottle requires gevent.monkey.patch_all() (before import)" - raise RuntimeError(msg) - if not self.options.pop('fast', None): wsgi = pywsgi - self.options['log'] = None if self.quiet else 'default' - address = (self.host, self.port) - wsgi.WSGIServer(address, handler, **self.options).serve_forever() - - -class GunicornServer(ServerAdapter): - """ Untested. See http://gunicorn.org/configure.html for options. """ - def run(self, handler): - from gunicorn.app.base import Application - - config = {'bind': "%s:%d" % (self.host, int(self.port))} - config.update(self.options) - - class GunicornApplication(Application): - def init(self, parser, opts, args): - return config - - def load(self): - return handler - - GunicornApplication().run() - - -class EventletServer(ServerAdapter): - """ Untested """ - def run(self, handler): - from eventlet import wsgi, listen - try: - wsgi.server(listen((self.host, self.port)), handler, - log_output=(not self.quiet)) - except TypeError: - # Fallback, if we have old version of eventlet - wsgi.server(listen((self.host, self.port)), handler) - - -class RocketServer(ServerAdapter): - """ Untested. """ - def run(self, handler): - from rocket import Rocket - server = Rocket((self.host, self.port), 'wsgi', { 'wsgi_app' : handler }) - server.start() - - -class BjoernServer(ServerAdapter): - """ Fast server written in C: https://github.com/jonashaag/bjoern """ - def run(self, handler): - from bjoern import run - run(handler, self.host, self.port) - - -class AutoServer(ServerAdapter): - """ Untested. """ - adapters = [WaitressServer, PasteServer, TwistedServer, CherryPyServer, WSGIRefServer] - def run(self, handler): - for sa in self.adapters: - try: - return sa(self.host, self.port, **self.options).run(handler) - except ImportError: - pass - -server_names = { - 'cgi': CGIServer, - 'flup': FlupFCGIServer, - 'wsgiref': WSGIRefServer, - 'waitress': WaitressServer, - 'cherrypy': CherryPyServer, - 'paste': PasteServer, - 'fapws3': FapwsServer, - 'tornado': TornadoServer, - 'gae': AppEngineServer, - 'twisted': TwistedServer, - 'diesel': DieselServer, - 'meinheld': MeinheldServer, - 'gunicorn': GunicornServer, - 'eventlet': EventletServer, - 'gevent': GeventServer, - 'rocket': RocketServer, - 'bjoern' : BjoernServer, - 'auto': AutoServer, -} - - - - - - -############################################################################### -# Application Control ########################################################## -############################################################################### - - -def load(target, **namespace): - """ Import a module or fetch an object from a module. - - * ``package.module`` returns `module` as a module object. - * ``pack.mod:name`` returns the module variable `name` from `pack.mod`. - * ``pack.mod:func()`` calls `pack.mod.func()` and returns the result. - - The last form accepts not only function calls, but any type of - expression. Keyword arguments passed to this function are available as - local variables. Example: ``import_string('re:compile(x)', x='[a-z]')`` - """ - module, target = target.split(":", 1) if ':' in target else (target, None) - if module not in sys.modules: __import__(module) - if not target: return sys.modules[module] - if target.isalnum(): return getattr(sys.modules[module], target) - package_name = module.split('.')[0] - namespace[package_name] = sys.modules[package_name] - return eval('%s.%s' % (module, target), namespace) - - -def load_app(target): - """ Load a bottle application from a module and make sure that the import - does not affect the current default application, but returns a separate - application object. See :func:`load` for the target parameter. """ - global NORUN; NORUN, nr_old = True, NORUN - try: - tmp = default_app.push() # Create a new "default application" - rv = load(target) # Import the target module - return rv if callable(rv) else tmp - finally: - default_app.remove(tmp) # Remove the temporary added default application - NORUN = nr_old - -_debug = debug -def run(app=None, server='wsgiref', host='127.0.0.1', port=8080, - interval=1, reloader=False, quiet=False, plugins=None, - debug=None, **kargs): - """ Start a server instance. This method blocks until the server terminates. - - :param app: WSGI application or target string supported by - :func:`load_app`. (default: :func:`default_app`) - :param server: Server adapter to use. See :data:`server_names` keys - for valid names or pass a :class:`ServerAdapter` subclass. - (default: `wsgiref`) - :param host: Server address to bind to. Pass ``0.0.0.0`` to listens on - all interfaces including the external one. (default: 127.0.0.1) - :param port: Server port to bind to. Values below 1024 require root - privileges. (default: 8080) - :param reloader: Start auto-reloading server? (default: False) - :param interval: Auto-reloader interval in seconds (default: 1) - :param quiet: Suppress output to stdout and stderr? (default: False) - :param options: Options passed to the server adapter. - """ - if NORUN: return - if reloader and not os.environ.get('BOTTLE_CHILD'): - try: - lockfile = None - fd, lockfile = tempfile.mkstemp(prefix='bottle.', suffix='.lock') - os.close(fd) # We only need this file to exist. We never write to it - while os.path.exists(lockfile): - args = [sys.executable] + sys.argv - environ = os.environ.copy() - environ['BOTTLE_CHILD'] = 'true' - environ['BOTTLE_LOCKFILE'] = lockfile - p = subprocess.Popen(args, env=environ) - while p.poll() is None: # Busy wait... - os.utime(lockfile, None) # I am alive! - time.sleep(interval) - if p.poll() != 3: - if os.path.exists(lockfile): os.unlink(lockfile) - sys.exit(p.poll()) - except KeyboardInterrupt: - pass - finally: - if os.path.exists(lockfile): - os.unlink(lockfile) - return - - try: - if debug is not None: _debug(debug) - app = app or default_app() - if isinstance(app, basestring): - app = load_app(app) - if not callable(app): - raise ValueError("Application is not callable: %r" % app) - - for plugin in plugins or []: - app.install(plugin) - - if server in server_names: - server = server_names.get(server) - if isinstance(server, basestring): - server = load(server) - if isinstance(server, type): - server = server(host=host, port=port, **kargs) - if not isinstance(server, ServerAdapter): - raise ValueError("Unknown or unsupported server: %r" % server) - - server.quiet = server.quiet or quiet - if not server.quiet: - _stderr("Bottle v%s server starting up (using %s)...\n" % (__version__, repr(server))) - _stderr("Listening on http://%s:%d/\n" % (server.host, server.port)) - _stderr("Hit Ctrl-C to quit.\n\n") - - if reloader: - lockfile = os.environ.get('BOTTLE_LOCKFILE') - bgcheck = FileCheckerThread(lockfile, interval) - with bgcheck: - server.run(app) - if bgcheck.status == 'reload': - sys.exit(3) - else: - server.run(app) - except KeyboardInterrupt: - pass - except (SystemExit, MemoryError): - raise - except: - if not reloader: raise - if not getattr(server, 'quiet', quiet): - print_exc() - time.sleep(interval) - sys.exit(3) - - - -class FileCheckerThread(threading.Thread): - ''' Interrupt main-thread as soon as a changed module file is detected, - the lockfile gets deleted or gets to old. ''' - - def __init__(self, lockfile, interval): - threading.Thread.__init__(self) - self.lockfile, self.interval = lockfile, interval - #: Is one of 'reload', 'error' or 'exit' - self.status = None - - def run(self): - exists = os.path.exists - mtime = lambda path: os.stat(path).st_mtime - files = dict() - - for module in list(sys.modules.values()): - path = getattr(module, '__file__', '') - if path[-4:] in ('.pyo', '.pyc'): path = path[:-1] - if path and exists(path): files[path] = mtime(path) - - while not self.status: - if not exists(self.lockfile)\ - or mtime(self.lockfile) < time.time() - self.interval - 5: - self.status = 'error' - thread.interrupt_main() - for path, lmtime in list(files.items()): - if not exists(path) or mtime(path) > lmtime: - self.status = 'reload' - thread.interrupt_main() - break - time.sleep(self.interval) - - def __enter__(self): - self.start() - - def __exit__(self, exc_type, exc_val, exc_tb): - if not self.status: self.status = 'exit' # silent exit - self.join() - return exc_type is not None and issubclass(exc_type, KeyboardInterrupt) - - - - - -############################################################################### -# Template Adapters ############################################################ -############################################################################### - - -class TemplateError(HTTPError): - def __init__(self, message): - HTTPError.__init__(self, 500, message) - - -class BaseTemplate(object): - """ Base class and minimal API for template adapters """ - extensions = ['tpl','html','thtml','stpl'] - settings = {} #used in prepare() - defaults = {} #used in render() - - def __init__(self, source=None, name=None, lookup=[], encoding='utf8', **settings): - """ Create a new template. - If the source parameter (str or buffer) is missing, the name argument - is used to guess a template filename. Subclasses can assume that - self.source and/or self.filename are set. Both are strings. - The lookup, encoding and settings parameters are stored as instance - variables. - The lookup parameter stores a list containing directory paths. - The encoding parameter should be used to decode byte strings or files. - The settings parameter contains a dict for engine-specific settings. - """ - self.name = name - self.source = source.read() if hasattr(source, 'read') else source - self.filename = source.filename if hasattr(source, 'filename') else None - self.lookup = [os.path.abspath(x) for x in lookup] - self.encoding = encoding - self.settings = self.settings.copy() # Copy from class variable - self.settings.update(settings) # Apply - if not self.source and self.name: - self.filename = self.search(self.name, self.lookup) - if not self.filename: - raise TemplateError('Template %s not found.' % repr(name)) - if not self.source and not self.filename: - raise TemplateError('No template specified.') - self.prepare(**self.settings) - - @classmethod - def search(cls, name, lookup=[]): - """ Search name in all directories specified in lookup. - First without, then with common extensions. Return first hit. """ - if not lookup: - depr('The template lookup path list should not be empty.') - lookup = ['.'] - - if os.path.isabs(name) and os.path.isfile(name): - depr('Absolute template path names are deprecated.') - return os.path.abspath(name) - - for spath in lookup: - spath = os.path.abspath(spath) + os.sep - fname = os.path.abspath(os.path.join(spath, name)) - if not fname.startswith(spath): continue - if os.path.isfile(fname): return fname - for ext in cls.extensions: - if os.path.isfile('%s.%s' % (fname, ext)): - return '%s.%s' % (fname, ext) - - @classmethod - def global_config(cls, key, *args): - ''' This reads or sets the global settings stored in class.settings. ''' - if args: - cls.settings = cls.settings.copy() # Make settings local to class - cls.settings[key] = args[0] - else: - return cls.settings[key] - - def prepare(self, **options): - """ Run preparations (parsing, caching, ...). - It should be possible to call this again to refresh a template or to - update settings. - """ - raise NotImplementedError - - def render(self, *args, **kwargs): - """ Render the template with the specified local variables and return - a single byte or unicode string. If it is a byte string, the encoding - must match self.encoding. This method must be thread-safe! - Local variables may be provided in dictionaries (args) - or directly, as keywords (kwargs). - """ - raise NotImplementedError - - -class MakoTemplate(BaseTemplate): - def prepare(self, **options): - from mako.template import Template - from mako.lookup import TemplateLookup - options.update({'input_encoding':self.encoding}) - options.setdefault('format_exceptions', bool(DEBUG)) - lookup = TemplateLookup(directories=self.lookup, **options) - if self.source: - self.tpl = Template(self.source, lookup=lookup, **options) - else: - self.tpl = Template(uri=self.name, filename=self.filename, lookup=lookup, **options) - - def render(self, *args, **kwargs): - for dictarg in args: kwargs.update(dictarg) - _defaults = self.defaults.copy() - _defaults.update(kwargs) - return self.tpl.render(**_defaults) - - -class CheetahTemplate(BaseTemplate): - def prepare(self, **options): - from Cheetah.Template import Template - self.context = threading.local() - self.context.vars = {} - options['searchList'] = [self.context.vars] - if self.source: - self.tpl = Template(source=self.source, **options) - else: - self.tpl = Template(file=self.filename, **options) - - def render(self, *args, **kwargs): - for dictarg in args: kwargs.update(dictarg) - self.context.vars.update(self.defaults) - self.context.vars.update(kwargs) - out = str(self.tpl) - self.context.vars.clear() - return out - - -class Jinja2Template(BaseTemplate): - def prepare(self, filters=None, tests=None, **kwargs): - from jinja2 import Environment, FunctionLoader - if 'prefix' in kwargs: # TODO: to be removed after a while - raise RuntimeError('The keyword argument `prefix` has been removed. ' - 'Use the full jinja2 environment name line_statement_prefix instead.') - self.env = Environment(loader=FunctionLoader(self.loader), **kwargs) - if filters: self.env.filters.update(filters) - if tests: self.env.tests.update(tests) - if self.source: - self.tpl = self.env.from_string(self.source) - else: - self.tpl = self.env.get_template(self.filename) - - def render(self, *args, **kwargs): - for dictarg in args: kwargs.update(dictarg) - _defaults = self.defaults.copy() - _defaults.update(kwargs) - return self.tpl.render(**_defaults) - - def loader(self, name): - fname = self.search(name, self.lookup) - if not fname: return - with open(fname, "rb") as f: - return f.read().decode(self.encoding) - - -class SimpleTemplate(BaseTemplate): - - def prepare(self, escape_func=html_escape, noescape=False, syntax=None, **ka): - self.cache = {} - enc = self.encoding - self._str = lambda x: touni(x, enc) - self._escape = lambda x: escape_func(touni(x, enc)) - self.syntax = syntax - if noescape: - self._str, self._escape = self._escape, self._str - - @cached_property - def co(self): - return compile(self.code, self.filename or '', 'exec') - - @cached_property - def code(self): - source = self.source or open(self.filename, 'rb').read() - try: - source, encoding = touni(source), 'utf8' - except UnicodeError: - depr('Template encodings other than utf8 are no longer supported.') - source, encoding = touni(source, 'latin1'), 'latin1' - parser = StplParser(source, encoding=encoding, syntax=self.syntax) - code = parser.translate() - self.encoding = parser.encoding - return code - - def _rebase(self, _env, _name=None, **kwargs): - if _name is None: - depr('Rebase function called without arguments.' - ' You were probably looking for {{base}}?', True) - _env['_rebase'] = (_name, kwargs) - - def _include(self, _env, _name=None, **kwargs): - if _name is None: - depr('Rebase function called without arguments.' - ' You were probably looking for {{base}}?', True) - env = _env.copy() - env.update(kwargs) - if _name not in self.cache: - self.cache[_name] = self.__class__(name=_name, lookup=self.lookup) - return self.cache[_name].execute(env['_stdout'], env) - - def execute(self, _stdout, kwargs): - env = self.defaults.copy() - env.update(kwargs) - env.update({'_stdout': _stdout, '_printlist': _stdout.extend, - 'include': functools.partial(self._include, env), - 'rebase': functools.partial(self._rebase, env), '_rebase': None, - '_str': self._str, '_escape': self._escape, 'get': env.get, - 'setdefault': env.setdefault, 'defined': env.__contains__ }) - eval(self.co, env) - if env.get('_rebase'): - subtpl, rargs = env.pop('_rebase') - rargs['base'] = ''.join(_stdout) #copy stdout - del _stdout[:] # clear stdout - return self._include(env, subtpl, **rargs) - return env - - def render(self, *args, **kwargs): - """ Render the template using keyword arguments as local variables. """ - env = {}; stdout = [] - for dictarg in args: env.update(dictarg) - env.update(kwargs) - self.execute(stdout, env) - return ''.join(stdout) - - -class StplSyntaxError(TemplateError): pass - - -class StplParser(object): - ''' Parser for stpl templates. ''' - _re_cache = {} #: Cache for compiled re patterns - # This huge pile of voodoo magic splits python code into 8 different tokens. - # 1: All kinds of python strings (trust me, it works) - _re_tok = '((?m)[urbURB]?(?:\'\'(?!\')|""(?!")|\'{6}|"{6}' \ - '|\'(?:[^\\\\\']|\\\\.)+?\'|"(?:[^\\\\"]|\\\\.)+?"' \ - '|\'{3}(?:[^\\\\]|\\\\.|\\n)+?\'{3}' \ - '|"{3}(?:[^\\\\]|\\\\.|\\n)+?"{3}))' - _re_inl = _re_tok.replace('|\\n','') # We re-use this string pattern later - # 2: Comments (until end of line, but not the newline itself) - _re_tok += '|(#.*)' - # 3,4: Keywords that start or continue a python block (only start of line) - _re_tok += '|^([ \\t]*(?:if|for|while|with|try|def|class)\\b)' \ - '|^([ \\t]*(?:elif|else|except|finally)\\b)' - # 5: Our special 'end' keyword (but only if it stands alone) - _re_tok += '|((?:^|;)[ \\t]*end[ \\t]*(?=(?:%(block_close)s[ \\t]*)?\\r?$|;|#))' - # 6: A customizable end-of-code-block template token (only end of line) - _re_tok += '|(%(block_close)s[ \\t]*(?=$))' - # 7: And finally, a single newline. The 8th token is 'everything else' - _re_tok += '|(\\r?\\n)' - # Match the start tokens of code areas in a template - _re_split = '(?m)^[ \t]*(\\\\?)((%(line_start)s)|(%(block_start)s))(%%?)' - # Match inline statements (may contain python strings) - _re_inl = '%%(inline_start)s((?:%s|[^\'"\n]*?)+)%%(inline_end)s' % _re_inl - - default_syntax = '<% %> % {{ }}' - - def __init__(self, source, syntax=None, encoding='utf8'): - self.source, self.encoding = touni(source, encoding), encoding - self.set_syntax(syntax or self.default_syntax) - self.code_buffer, self.text_buffer = [], [] - self.lineno, self.offset = 1, 0 - self.indent, self.indent_mod = 0, 0 - - def get_syntax(self): - ''' Tokens as a space separated string (default: <% %> % {{ }}) ''' - return self._syntax - - def set_syntax(self, syntax): - self._syntax = syntax - self._tokens = syntax.split() - if not syntax in self._re_cache: - names = 'block_start block_close line_start inline_start inline_end' - etokens = map(re.escape, self._tokens) - pattern_vars = dict(zip(names.split(), etokens)) - patterns = (self._re_split, self._re_tok, self._re_inl) - patterns = [re.compile(p%pattern_vars) for p in patterns] - self._re_cache[syntax] = patterns - self.re_split, self.re_tok, self.re_inl = self._re_cache[syntax] - - syntax = property(get_syntax, set_syntax) - - def translate(self): - if self.offset: raise RuntimeError('Parser is a one time instance.') - while True: - m = self.re_split.search(self.source[self.offset:]) - if m: - text = self.source[self.offset:self.offset+m.start()] - self.text_buffer.append(text) - self.offset += m.end() - if m.group(1): # New escape syntax - line, sep, _ = self.source[self.offset:].partition('\n') - self.text_buffer.append(m.group(2)+m.group(5)+line+sep) - self.offset += len(line+sep)+1 - continue - elif m.group(5): # Old escape syntax - depr('Escape code lines with a backslash.') - line, sep, _ = self.source[self.offset:].partition('\n') - self.text_buffer.append(m.group(2)+line+sep) - self.offset += len(line+sep)+1 - continue - self.flush_text() - self.read_code(multiline=bool(m.group(4))) - else: break - self.text_buffer.append(self.source[self.offset:]) - self.flush_text() - return ''.join(self.code_buffer) - - def read_code(self, multiline): - code_line, comment, start_line = '', '', self.lineno - while True: - m = self.re_tok.search(self.source[self.offset:]) - if not m: - code_line += self.source[self.offset:] - self.offset = len(self.source) - self.write_code(code_line.strip(), comment) - return - code_line += self.source[self.offset:self.offset+m.start()] - self.offset += m.end() - _str, _com, _blk1, _blk2, _end, _cend, _nl = m.groups() - if _str: # Python string - code_line += _str - elif _com: # Python comment (up to EOL) - comment = _com - if multiline and _com.strip().endswith(self._tokens[1]): - multiline = False # Allow end-of-block in comments - elif _blk1: # Start-block keyword (if/for/while/def/try/...) - code_line, self.indent_mod = _blk1, -1 - self.indent += 1 - elif _blk2: # Continue-block keyword (else/elif/except/...) - code_line, self.indent_mod = _blk2, -1 - elif _end: # The non-standard 'end'-keyword (ends a block) - self.indent -= 1 - elif _cend: # The end-code-block template token (usually '%>') - if multiline: multiline = False - else: code_line += _cend - else: # \n - self.write_code(code_line.strip(), comment) - self.lineno += 1 - code_line, comment, self.indent_mod = '', '', 0 - if not multiline: - break - - def flush_text(self): - text = ''.join(self.text_buffer) - del self.text_buffer[:] - if not text: return - parts, pos, nl = [], 0, '\\\n'+' '*self.indent - for m in self.re_inl.finditer(text): - prefix, pos = text[pos:m.start()], m.end() - if prefix: - parts.append(nl.join(map(repr, prefix.splitlines(True)))) - if prefix.endswith('\n'): parts[-1] += nl - parts.append(self.process_inline(m.group(1).strip())) - if pos < len(text): - prefix = text[pos:] - lines = prefix.splitlines(True) - if lines[-1].endswith('\\\\\n'): lines[-1] = lines[-1][:-3] - parts.append(nl.join(map(repr, lines))) - code = '_printlist((%s,))' % ', '.join(parts) - self.lineno += code.count('\n')+1 - self.write_code(code) - - def process_inline(self, chunk): - if chunk[0] == '!': return '_str(%s)' % chunk[1:] - return '_escape(%s)' % chunk - - def write_code(self, line, comment=''): - line, comment = self.fix_backward_compatibility(line, comment) - code = ' ' * (self.indent+self.indent_mod) - code += line.lstrip() + comment + '\n' - self.code_buffer.append(code) - - def fix_backward_compatibility(self, line, comment): - parts = line.strip().split(None, 2) - if parts and parts[0] in ('include', 'rebase'): - depr('The include and rebase keywords are functions now.') - if len(parts) == 1: return "_printlist([base])", comment - elif len(parts) == 2: return "_=%s(%r)" % tuple(parts), comment - else: return "_=%s(%r, %s)" % tuple(parts), comment - if self.lineno <= 2 and not line.strip() and 'coding' in comment: - m = re.match(r"#.*coding[:=]\s*([-\w.]+)", comment) - if m: - depr('PEP263 encoding strings in templates are deprecated.') - enc = m.group(1) - self.source = self.source.encode(self.encoding).decode(enc) - self.encoding = enc - return line, comment.replace('coding','coding*') - return line, comment - - -def template(*args, **kwargs): - ''' - Get a rendered template as a string iterator. - You can use a name, a filename or a template string as first parameter. - Template rendering arguments can be passed as dictionaries - or directly (as keyword arguments). - ''' - tpl = args[0] if args else None - adapter = kwargs.pop('template_adapter', SimpleTemplate) - lookup = kwargs.pop('template_lookup', TEMPLATE_PATH) - tplid = (id(lookup), tpl) - if tplid not in TEMPLATES or DEBUG: - settings = kwargs.pop('template_settings', {}) - if isinstance(tpl, adapter): - TEMPLATES[tplid] = tpl - if settings: TEMPLATES[tplid].prepare(**settings) - elif "\n" in tpl or "{" in tpl or "%" in tpl or '$' in tpl: - TEMPLATES[tplid] = adapter(source=tpl, lookup=lookup, **settings) - else: - TEMPLATES[tplid] = adapter(name=tpl, lookup=lookup, **settings) - if not TEMPLATES[tplid]: - abort(500, 'Template (%s) not found' % tpl) - for dictarg in args[1:]: kwargs.update(dictarg) - return TEMPLATES[tplid].render(kwargs) - -mako_template = functools.partial(template, template_adapter=MakoTemplate) -cheetah_template = functools.partial(template, template_adapter=CheetahTemplate) -jinja2_template = functools.partial(template, template_adapter=Jinja2Template) - - -def view(tpl_name, **defaults): - ''' Decorator: renders a template for a handler. - The handler can control its behavior like that: - - - return a dict of template vars to fill out the template - - return something other than a dict and the view decorator will not - process the template, but return the handler result as is. - This includes returning a HTTPResponse(dict) to get, - for instance, JSON with autojson or other castfilters. - ''' - def decorator(func): - @functools.wraps(func) - def wrapper(*args, **kwargs): - result = func(*args, **kwargs) - if isinstance(result, (dict, DictMixin)): - tplvars = defaults.copy() - tplvars.update(result) - return template(tpl_name, **tplvars) - elif result is None: - return template(tpl_name, defaults) - return result - return wrapper - return decorator - -mako_view = functools.partial(view, template_adapter=MakoTemplate) -cheetah_view = functools.partial(view, template_adapter=CheetahTemplate) -jinja2_view = functools.partial(view, template_adapter=Jinja2Template) - - - - - - -############################################################################### -# Constants and Globals ######################################################## -############################################################################### - - -TEMPLATE_PATH = ['./', './views/'] -TEMPLATES = {} -DEBUG = False -NORUN = False # If set, run() does nothing. Used by load_app() - -#: A dict to map HTTP status codes (e.g. 404) to phrases (e.g. 'Not Found') -HTTP_CODES = httplib.responses -HTTP_CODES[418] = "I'm a teapot" # RFC 2324 -HTTP_CODES[428] = "Precondition Required" -HTTP_CODES[429] = "Too Many Requests" -HTTP_CODES[431] = "Request Header Fields Too Large" -HTTP_CODES[511] = "Network Authentication Required" -_HTTP_STATUS_LINES = dict((k, '%d %s'%(k,v)) for (k,v) in HTTP_CODES.items()) - -#: The default template used for error pages. Override with @error() -ERROR_PAGE_TEMPLATE = """ -%%try: - %%from %s import DEBUG, HTTP_CODES, request, touni - - - - Error: {{e.status}} - - - -

Error: {{e.status}}

-

Sorry, the requested URL {{repr(request.url)}} - caused an error:

-
{{e.body}}
- %%if DEBUG and e.exception: -

Exception:

-
{{repr(e.exception)}}
- %%end - %%if DEBUG and e.traceback: -

Traceback:

-
{{e.traceback}}
- %%end - - -%%except ImportError: - ImportError: Could not generate the error page. Please add bottle to - the import path. -%%end -""" % __name__ - -#: A thread-safe instance of :class:`LocalRequest`. If accessed from within a -#: request callback, this instance always refers to the *current* request -#: (even on a multithreaded server). -request = LocalRequest() - -#: A thread-safe instance of :class:`LocalResponse`. It is used to change the -#: HTTP response for the *current* request. -response = LocalResponse() - -#: A thread-safe namespace. Not used by Bottle. -local = threading.local() - -# Initialize app stack (create first empty Bottle app) -# BC: 0.6.4 and needed for run() -app = default_app = AppStack() -app.push() - -#: A virtual package that redirects import statements. -#: Example: ``import bottle.ext.sqlite`` actually imports `bottle_sqlite`. -ext = _ImportRedirect('bottle.ext' if __name__ == '__main__' else __name__+".ext", 'bottle_%s').module - -if __name__ == '__main__': - opt, args, parser = _cmd_options, _cmd_args, _cmd_parser - if opt.version: - _stdout('Bottle %s\n'%__version__) - sys.exit(0) - if not args: - parser.print_help() - _stderr('\nError: No application specified.\n') - sys.exit(1) - - sys.path.insert(0, '.') - sys.modules.setdefault('bottle', sys.modules['__main__']) - - host, port = (opt.bind or 'localhost'), 8080 - if ':' in host and host.rfind(']') < host.rfind(':'): - host, port = host.rsplit(':', 1) - host = host.strip('[]') - - run(args[0], host=host, port=int(port), server=opt.server, - reloader=opt.reload, plugins=opt.plugin, debug=opt.debug) - - - - -# THE END diff --git a/share/frontend/imdither/imdither.html b/share/frontend/imdither/imdither.html deleted file mode 100755 index 1aee616..0000000 --- a/share/frontend/imdither/imdither.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - - - -
- -
- -
-Step 1: Choose your dither -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  
- - -
  -
- -
-Image to overlay: -Or Upload -
- - -
-
- - - - - - - - diff --git a/share/frontend/imdither/img/logo.png b/share/frontend/imdither/img/logo.png deleted file mode 100755 index 64432e3..0000000 Binary files a/share/frontend/imdither/img/logo.png and /dev/null differ diff --git a/share/frontend/imdither/jquery.min.js b/share/frontend/imdither/jquery.min.js deleted file mode 100755 index b2ac174..0000000 --- a/share/frontend/imdither/jquery.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * jQuery JavaScript Library v1.6.1 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Thu May 12 15:04:36 2011 -0400 - */ -(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!cj[a]){var b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),c.body.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write("");b=cl.createElement(a),cl.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ck)}cj[a]=d}return cj[a]}function cu(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function ct(){cq=b}function cs(){setTimeout(ct,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g=0===c})}function W(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function O(a,b){return(a&&a!=="*"?a+".":"")+b.replace(A,"`").replace(B,"&")}function N(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function L(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function F(){return!0}function E(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.1",length:0,size:function(){return this.length},toArray:function(){return D.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
a",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};f=c.createElement("select"),g=f.appendChild(c.createElement("option")),h=a.getElementsByTagName("input")[0],j={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},h.checked=!0,j.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,j.optDisabled=!g.disabled;try{delete a.test}catch(s){j.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function b(){j.noCloneEvent=!1,a.detachEvent("onclick",b)}),a.cloneNode(!0).fireEvent("onclick")),h=c.createElement("input"),h.value="t",h.setAttribute("type","radio"),j.radioValue=h.value==="t",h.setAttribute("checked","checked"),a.appendChild(h),k=c.createDocumentFragment(),k.appendChild(a.firstChild),j.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",l=c.createElement("body"),m={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(q in m)l.style[q]=m[q];l.appendChild(a),b.insertBefore(l,b.firstChild),j.appendChecked=h.checked,j.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,j.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",j.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
",n=a.getElementsByTagName("td"),r=n[0].offsetHeight===0,n[0].style.display="",n[1].style.display="none",j.reliableHiddenOffsets=r&&n[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(i=c.createElement("div"),i.style.width="0",i.style.marginRight="0",a.appendChild(i),j.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(i,null)||{marginRight:0}).marginRight,10)||0)===0),l.innerHTML="",b.removeChild(l);if(a.attachEvent)for(q in{submit:1,change:1,focusin:1})p="on"+q,r=p in a,r||(a.setAttribute(p,"return;"),r=typeof a[p]=="function"),j[q+"Bubbles"]=r;return j}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c],i||(!t.test(c)||typeof d!="boolean"&&d!==b&&d.toLowerCase()!==c.toLowerCase()?v&&(f.nodeName(a,"form")||u.test(c))&&(i=v):i=w);if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return i.get(a,c);h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return a[f.propFix[c]||c]?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=b),a.setAttribute(c,c.toLowerCase()));return c}},f.attrHooks.value={get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return a.value},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=Object.prototype.hasOwnProperty,y=/\.(.*)$/,z=/^(?:textarea|input|select)$/i,A=/\./g,B=/ /g,C=/[^\w\s.|`]/g,D=function(a){return a.replace(C,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=E;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=E);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),D).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem -)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},K=function(c){var d=c.target,e,g;if(!!z.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=J(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:K,beforedeactivate:K,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&K.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&K.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",J(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in I)f.event.add(this,c+".specialChange",I[c]);return z.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return z.test(this.nodeName)}},I=f.event.special.change.filters,I.focus=I.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=U.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(W(c[0])||W(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=T.call(arguments);P.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!V[a]?f.unique(e):e,(this.length>1||R.test(d))&&Q.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y=/ jQuery\d+="(?:\d+|null)"/g,Z=/^\s+/,$=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,_=/<([\w:]+)/,ba=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Y,""):null;if(typeof a=="string"&&!bc.test(a)&&(f.support.leadingWhitespace||!Z.test(a))&&!bg[(_.exec(a)||["",""])[1].toLowerCase()]){a=a.replace($,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bj(a,d),e=bk(a),g=bk(d);for(h=0;e[h];++h)bj(e[h],g[h])}if(b){bi(a,d);if(c){e=bk(a),g=bk(d);for(h=0;e[h];++h)bi(e[h],g[h])}}return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument|| -b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bb.test(k))k=b.createTextNode(k);else{k=k.replace($,"<$1>");var l=(_.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=ba.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Z.test(k)&&o.insertBefore(b.createTextNode(Z.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bp.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bo.test(g)?g.replace(bo,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,c){var d,e,g;c=c.replace(br,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bs.test(d)&&bt.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bE=/%20/g,bF=/\[\]$/,bG=/\r?\n/g,bH=/#.*$/,bI=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bJ=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bK=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bL=/^(?:GET|HEAD)$/,bM=/^\/\//,bN=/\?/,bO=/)<[^<]*)*<\/script>/gi,bP=/^(?:select|textarea)/i,bQ=/\s+/,bR=/([?&])_=[^&]*/,bS=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bT=f.fn.load,bU={},bV={},bW,bX;try{bW=e.href}catch(bY){bW=c.createElement("a"),bW.href="",bW=bW.href}bX=bS.exec(bW.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bT)return bT.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bO,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bP.test(this.nodeName)||bJ.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bG,"\r\n")}}):{name:b.name,value:c.replace(bG,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bW,isLocal:bK.test(bX[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bZ(bU),ajaxTransport:bZ(bV),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?ca(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=cb(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bI.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bH,"").replace(bM,bX[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bQ),d.crossDomain==null&&(r=bS.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bX[1]&&r[2]==bX[2]&&(r[3]||(r[1]==="http:"?80:443))==(bX[3]||(bX[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bU,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bL.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bN.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bR,"$1_="+x);d.url=y+(y===d.url?(bN.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bV,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bE,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq,cr=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b
";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){return this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/share/frontend/imdither/makeDither.py b/share/frontend/imdither/makeDither.py deleted file mode 100755 index 57775fb..0000000 --- a/share/frontend/imdither/makeDither.py +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/python2.7 - -import cgi -import pbutils -from os import getpid, path -from subprocess import call - -MAIN_DIRECTORY = "" -BIN_CONVERT = "convert" -BIN_IDENTIFY = "identify" -BIN_COMPOSITE = "composite" - -class Dither: - def __init__(self, - input_file_path, - dither_file="1.png", - username="", - ): - - self.nametag = "imDither"; - if username: - self.username = username - else: - self.username = ""; - - self.pid = str(getpid()) - self.dither_file = dither_file; - self.original_file = input_file_path; - self.MAX_NAME_LENGTH = 10; - - self.image_format = self.original_file.split(".")[-1] - try: - self.dimensions = pbutils.image_dimensions_and_test(self.original_file); - except Exception as E: - pbutils.error("Corrupt image") - self.canvas_file = self.pid+"blank_canvas.png"; - self.makeCanvas(); - self.mask_file = self.pid+"mask_file"+"."+self.image_format; - self.makeMask(); - self.result_file = self.makeResultFilename(); - self.fuseMask(); - - def makeResultFilename(self): - file_base, extension = path.splitext(self.original_file) - if len(file_base) > self.MAX_NAME_LENGTH: - file_base = file_base[0:self.MAX_NAME_LENGTH] - return "%s_%s_%s%s%s" % (file_base, self.username, self.nametag, pbutils.now(), extension) - - #first step - def makeCanvas(self): - call([BIN_CONVERT,"-size",self.dimensions[0]+"x"+self.dimensions[1],"canvas:transparent", self.canvas_file]) - - #second step use the Canvas as a background - def makeMask(self): - #tile the dither pattern on the canvas - call([BIN_COMPOSITE,"-tile", self.dither_file, self.canvas_file, self.mask_file]) - - #fuse the tiled file to create a mask - #convert thebg.gif -compose Dst_In null: thefile.gif -matte -layers composite new.gif - call([BIN_CONVERT, self.mask_file, "-compose", "Dst_In", "null:", self.original_file, "-matte", "-layers", "composite", self.mask_file]) - - #cleanup - call(["rm", self.canvas_file]) - - #third step - def fuseMask(self, fuse_mode="Pin_Light"): - call([BIN_CONVERT, self.mask_file, "null:", self.original_file, "-matte", "-compose", fuse_mode, "-layers", "composite", self.result_file]) - call(["rm", self.mask_file]) - - -if __name__ == "__main__": - dither = Dither("./test.gif"); diff --git a/share/frontend/imdither/pbutils.py b/share/frontend/imdither/pbutils.py deleted file mode 100755 index bcc188d..0000000 --- a/share/frontend/imdither/pbutils.py +++ /dev/null @@ -1,238 +0,0 @@ -#!/usr/bin/python -import time -import re -from urllib2 import Request, urlopen -from subprocess import check_output, call, Popen, PIPE -from os import stat, path -from random import randint -from hashlib import sha1 -import mimetypes -import s3 -import MySQLdb -import logging - - -ACCEPTABLE_FILE_TYPES = [".png", ".jpg", ".gif", ".jpeg"] -MAX_DOWNLOAD_SIZE = 1024 * 1024 * 1.2 - -AWS_ACCESS_KEY_ID = "SECRETID" -AWS_SECRET_ACCESS_KEY = "SECRETACCESSKEY" -BUCKET_NAME = "i.asdf.us" - -MYSQLUSER = "secretuser" -MYSQLDB = "secretdb" -MYSQLPW = "secretpw" - -BASE_DIR = "/var/www/asdf.us/im/" -IDENTIFY = "/usr/bin/identify" -CONVERT = "/usr/bin/convert" - -def now(): - return str(int(time.time())) - -class pb_log: - " creates a log for each script " - def __init__(self, logname): - self.logger = logging.getLogger(logname) - hdlr = logging.FileHandler("/var/tmp/photoblaster/"+logname+".log") - formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') - hdlr.setFormatter(formatter) - self.logger.addHandler(hdlr) - self.logger.setLevel(logging.WARNING) - def log(self, message): - self.logger.warning(message) - - -def error(s): - " returns an error and exits the program " - print("ERROR: "+s) - exit(1) - -def hexdir(filename): - " creates a two-letter directory name " - return sha1(filename.encode()).hexdigest()[:2] - -def image_dimensions_and_test(filename): - ident = Popen([IDENTIFY, filename], stdout=PIPE).communicate()[0] - partz = ident.split(" ") - filetype = "."+partz[1] - size = partz[6] - if filetype.lower() not in ACCEPTABLE_FILE_TYPES: - error("file was not an image") - return partz[2].split("x") - -#ok is this a little better? yes, add a dot to filetype since ACCEPTABLE_FILE_TYPES have one - -def image_dimensions(filename): - ident = Popen([IDENTIFY, filename], stdout=PIPE).communicate()[0] - partz = ident.split(" ") - return partz[2].split("x") - - -def process_form(form, param_list): - """ converts form returned from form submission into an object with values - takes the form and splitted param param_list as args """ - return dict([(key, form[key].value() or "" ) for key in param_list]) - - -def sanitize(s): - " sanitizes potential shell commands out of form entries " - return re.sub("[^a-zA-Z0-9]", '', s) - - -def is_number(s): - " makes sure that the number entries are numbers, not malicious strings " - try: - float(s) - if s.lower() == "nan": raise ValueError - return True - except (ValueError, TypeError): - error("One of the number values entered is not a number.") - return False - - -def check_color(colorparam, index, defaultcolors): - " makes sure that there aren't malicious strings in the colorparam " - if not colorparam: - return defaultcolors[index] - elif colorparam[0] != "#" and "rgb" not in colorparam: - return sanitize(colorparam) - else: - return colorparam - - -class gifCheck: - " checks to see if file is a gif " - - def __init__(self, f): - self.f = f - frames = check_output([IDENTIFY, f]).decode().split('\n') - self.frames = frames.remove('') - - def check_anim(self): - return len(self.frames) > 1 - - def pick_frame(self): - if self.check_anim() is True: - i = randint(0, (len(self.frames) - 1)) - choice = self.f + "[" + str(i) + "]" - return choice - else: - return self.f - - def collapse(self): - choice = self.pick_frame() - call([CONVERT, choice, self.f]) - - -def pb_s3(hexdir,filename): - " sends a file to s3 and returns the new url " - s3object = '/'.join(('im',hexdir,filename)) - f = path.join(BASE_DIR, "im", hexdir, filename) - conn = s3.AWSAuthConnection(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) - with open(f, 'rb') as opened: - filedata = opened.read() - content_type = mimetypes.guess_type(f)[0] - if not content_type: - content_type = 'text/plain' - try: - conn.put(BUCKET_NAME, s3object, s3.S3Object(filedata), - {'x-amz-acl': 'public-read', 'Content-Type': content_type, - 'x-amz-storage-class': 'REDUCED_REDUNDANCY'}) - call(['rm',f]) - return "http://i.asdf.us/"+s3object - except Exception as e: - return e - - -#so now I need to test the image? yes - -def test_image(basename, ext): - """ checks to make sure the image is an image """ - - -def download_image(url, filename=None,final_path=""): - " downloads an image and stores it in a directory " - headers = { - 'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)', - 'Accept': '*/*', - } - if not filename: - filename = url.split("/")[-1] - try: - req = Request(url, None, headers) - response = urlopen(req).read() - if not response: error("File did not exist or was zero-length") - if len(response) > MAX_DOWNLOAD_SIZE: - error( - "file too big: max size %sKB\n %s is %s KB" % - ( MAX_DOWNLOAD_SIZE/1024, filename, len(response)/1024 ) - ) - f = open(final_path+filename, "w") - f.write(response) - f.close() - return final_path - - except Exception as E: - error('There is a problem with the url or an I/O error: \n %s' % (E)) - - - -def new_filename_from_url(url, username="", nametag=""): - " creates a safe filename from a url " - parts = url.rsplit("/", -1) - try: - name, filetype = parts.rsplit(".", -1) - except: - error("Invalid url") # I could pass in the logging function as an argument if you wanted to store the invalid urls - if "?" in filetype: filetype = filetype.split("?")[1] - name = sanitize(name) - filetype = sanitize(filetype) - if not ('.' + filetype.lower()) in ACCEPTABLE_FILE_TYPES: - error("Invalid url") - - - if len(name) > 32: name = "__abridged" - name = now()+"_"+name - - if username: name += "_" + username - if nametag: name += "_" + nametag - return name +"."+filetype - -def new_filename(filetype, username="", nametag=""): - " creates a new image filename " - parts = now() - if username: parts += "_"+username - if nametag: parts += "_"+nametag - return parts+"."+filetype - - -def file_size (file): - " returns the file size in bytes " - return stat(file)[6] - - -class db: - " initializes the database connection " - def __init__ (self): - self.conn = None - self.cursor = None - self.connect() - - def connect (self): - self.conn = MySQLdb.connect (host = "localhost", - user = MYSQLUSER, - passwd = MYSQLPW, - db = MYSQLDB) - self.cursor = self.conn.cursor () - - def execute (self,sql,args=()): - try: - self.cursor.execute(sql,args) - except MySQLdb.Error, e: - error(" %d: %s" % (e.args[0], e.args[1])) - - def lastinsertid (self): - return self.conn.insert_id() - -#pb_db = db() diff --git a/share/frontend/imdither/run.py b/share/frontend/imdither/run.py deleted file mode 100755 index 3fed429..0000000 --- a/share/frontend/imdither/run.py +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/python2.7 -from bottle import route, run, static_file, request -import makeDither -import urlDownload - -@route('/') -def server_static(): - return static_file("imdither.html", root='./') - -@route('/dithers/') -def server_static(filename): - return static_file(filename, root='./dithers/') - -@route('/img/') -def server_static(filename): - return static_file(filename, root='./img/') - -@route('/') -def server_static(filename): - return static_file(filename, root='./') - -@route('/process', method='POST') -def process_image(): - url = request.forms.get('url') - params = request.forms.get('params') - download = urlDownload.UrlDownload(url) - tempfile = download.dir + download.filename - makeDither.Dither(tempfile) - -@route('/status', method='GET') -def show_status(): - pass -#run(host='0.0.0.0', port=4111, debug=True) -run(server='flup', host='localhost', port=4111, debug=True) - diff --git a/share/frontend/imdither/s3.py b/share/frontend/imdither/s3.py deleted file mode 100755 index 1c2b09e..0000000 --- a/share/frontend/imdither/s3.py +++ /dev/null @@ -1,618 +0,0 @@ -#!/usr/bin/env python - -# This software code is made available "AS IS" without warranties of any -# kind. You may copy, display, modify and redistribute the software -# code either by itself or as incorporated into your code; provided that -# you do not remove any proprietary notices. Your use of this software -# code is at your own risk and you waive any claim against Amazon -# Digital Services, Inc. or its affiliates with respect to your use of -# this software code. (c) 2006-2007 Amazon Digital Services, Inc. or its -# affiliates. - -import base64 -import hmac -import httplib -import re -import sha -import sys -import time -import urllib -import urlparse -import xml.sax - -DEFAULT_HOST = 's3.amazonaws.com' -PORTS_BY_SECURITY = { True: 443, False: 80 } -METADATA_PREFIX = 'x-amz-meta-' -AMAZON_HEADER_PREFIX = 'x-amz-' - -# generates the aws canonical string for the given parameters -def canonical_string(method, bucket="", key="", query_args={}, headers={}, expires=None): - interesting_headers = {} - for header_key in headers: - lk = header_key.lower() - if lk in ['content-md5', 'content-type', 'date'] or lk.startswith(AMAZON_HEADER_PREFIX): - interesting_headers[lk] = headers[header_key].strip() - - # these keys get empty strings if they don't exist - if not interesting_headers.has_key('content-type'): - interesting_headers['content-type'] = '' - if not interesting_headers.has_key('content-md5'): - interesting_headers['content-md5'] = '' - - # just in case someone used this. it's not necessary in this lib. - if interesting_headers.has_key('x-amz-date'): - interesting_headers['date'] = '' - - # if you're using expires for query string auth, then it trumps date - # (and x-amz-date) - if expires: - interesting_headers['date'] = str(expires) - - sorted_header_keys = interesting_headers.keys() - sorted_header_keys.sort() - - buf = "%s\n" % method - for header_key in sorted_header_keys: - if header_key.startswith(AMAZON_HEADER_PREFIX): - buf += "%s:%s\n" % (header_key, interesting_headers[header_key]) - else: - buf += "%s\n" % interesting_headers[header_key] - - # append the bucket if it exists - if bucket != "": - buf += "/%s" % bucket - - # add the key. even if it doesn't exist, add the slash - buf += "/%s" % urllib.quote_plus(key) - - # handle special query string arguments - - if query_args.has_key("acl"): - buf += "?acl" - elif query_args.has_key("torrent"): - buf += "?torrent" - elif query_args.has_key("logging"): - buf += "?logging" - elif query_args.has_key("location"): - buf += "?location" - - return buf - -# computes the base64'ed hmac-sha hash of the canonical string and the secret -# access key, optionally urlencoding the result -def encode(aws_secret_access_key, str, urlencode=False): - b64_hmac = base64.encodestring(hmac.new(aws_secret_access_key, str, sha).digest()).strip() - if urlencode: - return urllib.quote_plus(b64_hmac) - else: - return b64_hmac - -def merge_meta(headers, metadata): - final_headers = headers.copy() - for k in metadata.keys(): - final_headers[METADATA_PREFIX + k] = metadata[k] - - return final_headers - -# builds the query arg string -def query_args_hash_to_string(query_args): - query_string = "" - pairs = [] - for k, v in query_args.items(): - piece = k - if v != None: - piece += "=%s" % urllib.quote_plus(str(v)) - pairs.append(piece) - - return '&'.join(pairs) - - -class CallingFormat: - PATH = 1 - SUBDOMAIN = 2 - VANITY = 3 - - def build_url_base(protocol, server, port, bucket, calling_format): - url_base = '%s://' % protocol - - if bucket == '': - url_base += server - elif calling_format == CallingFormat.SUBDOMAIN: - url_base += "%s.%s" % (bucket, server) - elif calling_format == CallingFormat.VANITY: - url_base += bucket - else: - url_base += server - - url_base += ":%s" % port - - if (bucket != '') and (calling_format == CallingFormat.PATH): - url_base += "/%s" % bucket - - return url_base - - build_url_base = staticmethod(build_url_base) - - - -class Location: - DEFAULT = None - EU = 'EU' - - - -class AWSAuthConnection: - def __init__(self, aws_access_key_id, aws_secret_access_key, is_secure=True, - server=DEFAULT_HOST, port=None, calling_format=CallingFormat.SUBDOMAIN): - - if not port: - port = PORTS_BY_SECURITY[is_secure] - - self.aws_access_key_id = aws_access_key_id - self.aws_secret_access_key = aws_secret_access_key - self.is_secure = is_secure - self.server = server - self.port = port - self.calling_format = calling_format - - def create_bucket(self, bucket, headers={}): - return Response(self._make_request('PUT', bucket, '', {}, headers)) - - def create_located_bucket(self, bucket, location=Location.DEFAULT, headers={}): - if location == Location.DEFAULT: - body = "" - else: - body = "" + \ - location + \ - "" - return Response(self._make_request('PUT', bucket, '', {}, headers, body)) - - def check_bucket_exists(self, bucket): - return self._make_request('HEAD', bucket, '', {}, {}) - - def list_bucket(self, bucket, options={}, headers={}): - return ListBucketResponse(self._make_request('GET', bucket, '', options, headers)) - - def delete_bucket(self, bucket, headers={}): - return Response(self._make_request('DELETE', bucket, '', {}, headers)) - - def put(self, bucket, key, object, headers={}): - if not isinstance(object, S3Object): - object = S3Object(object) - - return Response( - self._make_request( - 'PUT', - bucket, - key, - {}, - headers, - object.data, - object.metadata)) - - def get(self, bucket, key, headers={}): - return GetResponse( - self._make_request('GET', bucket, key, {}, headers)) - - def delete(self, bucket, key, headers={}): - return Response( - self._make_request('DELETE', bucket, key, {}, headers)) - - def get_bucket_logging(self, bucket, headers={}): - return GetResponse(self._make_request('GET', bucket, '', { 'logging': None }, headers)) - - def put_bucket_logging(self, bucket, logging_xml_doc, headers={}): - return Response(self._make_request('PUT', bucket, '', { 'logging': None }, headers, logging_xml_doc)) - - def get_bucket_acl(self, bucket, headers={}): - return self.get_acl(bucket, '', headers) - - def get_acl(self, bucket, key, headers={}): - return GetResponse( - self._make_request('GET', bucket, key, { 'acl': None }, headers)) - - def put_bucket_acl(self, bucket, acl_xml_document, headers={}): - return self.put_acl(bucket, '', acl_xml_document, headers) - - def put_acl(self, bucket, key, acl_xml_document, headers={}): - return Response( - self._make_request( - 'PUT', - bucket, - key, - { 'acl': None }, - headers, - acl_xml_document)) - - def list_all_my_buckets(self, headers={}): - return ListAllMyBucketsResponse(self._make_request('GET', '', '', {}, headers)) - - def get_bucket_location(self, bucket): - return LocationResponse(self._make_request('GET', bucket, '', {'location' : None})) - - # end public methods - - def _make_request(self, method, bucket='', key='', query_args={}, headers={}, data='', metadata={}): - - server = '' - if bucket == '': - server = self.server - elif self.calling_format == CallingFormat.SUBDOMAIN: - server = "%s.%s" % (bucket, self.server) - elif self.calling_format == CallingFormat.VANITY: - server = bucket - else: - server = self.server - - path = '' - - if (bucket != '') and (self.calling_format == CallingFormat.PATH): - path += "/%s" % bucket - - # add the slash after the bucket regardless - # the key will be appended if it is non-empty - path += "/%s" % urllib.quote_plus(key) - - - # build the path_argument string - # add the ? in all cases since - # signature and credentials follow path args - if len(query_args): - path += "?" + query_args_hash_to_string(query_args) - - is_secure = self.is_secure - host = "%s:%d" % (server, self.port) - while True: - if (is_secure): - connection = httplib.HTTPSConnection(host) - else: - connection = httplib.HTTPConnection(host) - - final_headers = merge_meta(headers, metadata); - # add auth header - self._add_aws_auth_header(final_headers, method, bucket, key, query_args) - - connection.request(method, path, data, final_headers) - resp = connection.getresponse() - if resp.status < 300 or resp.status >= 400: - return resp - # handle redirect - location = resp.getheader('location') - if not location: - return resp - # (close connection) - resp.read() - scheme, host, path, params, query, fragment \ - = urlparse.urlparse(location) - if scheme == "http": is_secure = True - elif scheme == "https": is_secure = False - else: raise invalidURL("Not http/https: " + location) - if query: path += "?" + query - # retry with redirect - - def _add_aws_auth_header(self, headers, method, bucket, key, query_args): - if not headers.has_key('Date'): - headers['Date'] = time.strftime("%a, %d %b %Y %X GMT", time.gmtime()) - - c_string = canonical_string(method, bucket, key, query_args, headers) - headers['Authorization'] = \ - "AWS %s:%s" % (self.aws_access_key_id, encode(self.aws_secret_access_key, c_string)) - - -class QueryStringAuthGenerator: - # by default, expire in 1 minute - DEFAULT_EXPIRES_IN = 60 - - def __init__(self, aws_access_key_id, aws_secret_access_key, is_secure=True, - server=DEFAULT_HOST, port=None, calling_format=CallingFormat.SUBDOMAIN): - - if not port: - port = PORTS_BY_SECURITY[is_secure] - - self.aws_access_key_id = aws_access_key_id - self.aws_secret_access_key = aws_secret_access_key - if (is_secure): - self.protocol = 'https' - else: - self.protocol = 'http' - - self.is_secure = is_secure - self.server = server - self.port = port - self.calling_format = calling_format - self.__expires_in = QueryStringAuthGenerator.DEFAULT_EXPIRES_IN - self.__expires = None - - # for backwards compatibility with older versions - self.server_name = "%s:%s" % (self.server, self.port) - - def set_expires_in(self, expires_in): - self.__expires_in = expires_in - self.__expires = None - - def set_expires(self, expires): - self.__expires = expires - self.__expires_in = None - - def create_bucket(self, bucket, headers={}): - return self.generate_url('PUT', bucket, '', {}, headers) - - def list_bucket(self, bucket, options={}, headers={}): - return self.generate_url('GET', bucket, '', options, headers) - - def delete_bucket(self, bucket, headers={}): - return self.generate_url('DELETE', bucket, '', {}, headers) - - def put(self, bucket, key, object, headers={}): - if not isinstance(object, S3Object): - object = S3Object(object) - - return self.generate_url( - 'PUT', - bucket, - key, - {}, - merge_meta(headers, object.metadata)) - - def get(self, bucket, key, headers={}): - return self.generate_url('GET', bucket, key, {}, headers) - - def delete(self, bucket, key, headers={}): - return self.generate_url('DELETE', bucket, key, {}, headers) - - def get_bucket_logging(self, bucket, headers={}): - return self.generate_url('GET', bucket, '', { 'logging': None }, headers) - - def put_bucket_logging(self, bucket, logging_xml_doc, headers={}): - return self.generate_url('PUT', bucket, '', { 'logging': None }, headers) - - def get_bucket_acl(self, bucket, headers={}): - return self.get_acl(bucket, '', headers) - - def get_acl(self, bucket, key='', headers={}): - return self.generate_url('GET', bucket, key, { 'acl': None }, headers) - - def put_bucket_acl(self, bucket, acl_xml_document, headers={}): - return self.put_acl(bucket, '', acl_xml_document, headers) - - # don't really care what the doc is here. - def put_acl(self, bucket, key, acl_xml_document, headers={}): - return self.generate_url('PUT', bucket, key, { 'acl': None }, headers) - - def list_all_my_buckets(self, headers={}): - return self.generate_url('GET', '', '', {}, headers) - - def make_bare_url(self, bucket, key=''): - full_url = self.generate_url(self, bucket, key) - return full_url[:full_url.index('?')] - - def generate_url(self, method, bucket='', key='', query_args={}, headers={}): - expires = 0 - if self.__expires_in != None: - expires = int(time.time() + self.__expires_in) - elif self.__expires != None: - expires = int(self.__expires) - else: - raise "Invalid expires state" - - canonical_str = canonical_string(method, bucket, key, query_args, headers, expires) - encoded_canonical = encode(self.aws_secret_access_key, canonical_str) - - url = CallingFormat.build_url_base(self.protocol, self.server, self.port, bucket, self.calling_format) - - url += "/%s" % urllib.quote_plus(key) - - query_args['Signature'] = encoded_canonical - query_args['Expires'] = expires - query_args['AWSAccessKeyId'] = self.aws_access_key_id - - url += "?%s" % query_args_hash_to_string(query_args) - - return url - - -class S3Object: - def __init__(self, data, metadata={}): - self.data = data - self.metadata = metadata - -class Owner: - def __init__(self, id='', display_name=''): - self.id = id - self.display_name = display_name - -class ListEntry: - def __init__(self, key='', last_modified=None, etag='', size=0, storage_class='', owner=None): - self.key = key - self.last_modified = last_modified - self.etag = etag - self.size = size - self.storage_class = storage_class - self.owner = owner - -class CommonPrefixEntry: - def __init(self, prefix=''): - self.prefix = prefix - -class Bucket: - def __init__(self, name='', creation_date=''): - self.name = name - self.creation_date = creation_date - -class Response: - def __init__(self, http_response): - self.http_response = http_response - # you have to do this read, even if you don't expect a body. - # otherwise, the next request fails. - self.body = http_response.read() - if http_response.status >= 300 and self.body: - self.message = self.body - else: - self.message = "%03d %s" % (http_response.status, http_response.reason) - - - -class ListBucketResponse(Response): - def __init__(self, http_response): - Response.__init__(self, http_response) - if http_response.status < 300: - handler = ListBucketHandler() - xml.sax.parseString(self.body, handler) - self.entries = handler.entries - self.common_prefixes = handler.common_prefixes - self.name = handler.name - self.marker = handler.marker - self.prefix = handler.prefix - self.is_truncated = handler.is_truncated - self.delimiter = handler.delimiter - self.max_keys = handler.max_keys - self.next_marker = handler.next_marker - else: - self.entries = [] - -class ListAllMyBucketsResponse(Response): - def __init__(self, http_response): - Response.__init__(self, http_response) - if http_response.status < 300: - handler = ListAllMyBucketsHandler() - xml.sax.parseString(self.body, handler) - self.entries = handler.entries - else: - self.entries = [] - -class GetResponse(Response): - def __init__(self, http_response): - Response.__init__(self, http_response) - response_headers = http_response.msg # older pythons don't have getheaders - metadata = self.get_aws_metadata(response_headers) - self.object = S3Object(self.body, metadata) - - def get_aws_metadata(self, headers): - metadata = {} - for hkey in headers.keys(): - if hkey.lower().startswith(METADATA_PREFIX): - metadata[hkey[len(METADATA_PREFIX):]] = headers[hkey] - del headers[hkey] - - return metadata - -class LocationResponse(Response): - def __init__(self, http_response): - Response.__init__(self, http_response) - if http_response.status < 300: - handler = LocationHandler() - xml.sax.parseString(self.body, handler) - self.location = handler.location - -class ListBucketHandler(xml.sax.ContentHandler): - def __init__(self): - self.entries = [] - self.curr_entry = None - self.curr_text = '' - self.common_prefixes = [] - self.curr_common_prefix = None - self.name = '' - self.marker = '' - self.prefix = '' - self.is_truncated = False - self.delimiter = '' - self.max_keys = 0 - self.next_marker = '' - self.is_echoed_prefix_set = False - - def startElement(self, name, attrs): - if name == 'Contents': - self.curr_entry = ListEntry() - elif name == 'Owner': - self.curr_entry.owner = Owner() - elif name == 'CommonPrefixes': - self.curr_common_prefix = CommonPrefixEntry() - - - def endElement(self, name): - if name == 'Contents': - self.entries.append(self.curr_entry) - elif name == 'CommonPrefixes': - self.common_prefixes.append(self.curr_common_prefix) - elif name == 'Key': - self.curr_entry.key = self.curr_text - elif name == 'LastModified': - self.curr_entry.last_modified = self.curr_text - elif name == 'ETag': - self.curr_entry.etag = self.curr_text - elif name == 'Size': - self.curr_entry.size = int(self.curr_text) - elif name == 'ID': - self.curr_entry.owner.id = self.curr_text - elif name == 'DisplayName': - self.curr_entry.owner.display_name = self.curr_text - elif name == 'StorageClass': - self.curr_entry.storage_class = self.curr_text - elif name == 'Name': - self.name = self.curr_text - elif name == 'Prefix' and self.is_echoed_prefix_set: - self.curr_common_prefix.prefix = self.curr_text - elif name == 'Prefix': - self.prefix = self.curr_text - self.is_echoed_prefix_set = True - elif name == 'Marker': - self.marker = self.curr_text - elif name == 'IsTruncated': - self.is_truncated = self.curr_text == 'true' - elif name == 'Delimiter': - self.delimiter = self.curr_text - elif name == 'MaxKeys': - self.max_keys = int(self.curr_text) - elif name == 'NextMarker': - self.next_marker = self.curr_text - - self.curr_text = '' - - def characters(self, content): - self.curr_text += content - - -class ListAllMyBucketsHandler(xml.sax.ContentHandler): - def __init__(self): - self.entries = [] - self.curr_entry = None - self.curr_text = '' - - def startElement(self, name, attrs): - if name == 'Bucket': - self.curr_entry = Bucket() - - def endElement(self, name): - if name == 'Name': - self.curr_entry.name = self.curr_text - elif name == 'CreationDate': - self.curr_entry.creation_date = self.curr_text - elif name == 'Bucket': - self.entries.append(self.curr_entry) - - def characters(self, content): - self.curr_text = content - - -class LocationHandler(xml.sax.ContentHandler): - def __init__(self): - self.location = None - self.state = 'init' - - def startElement(self, name, attrs): - if self.state == 'init': - if name == 'LocationConstraint': - self.state = 'tag_location' - self.location = '' - else: self.state = 'bad' - else: self.state = 'bad' - - def endElement(self, name): - if self.state == 'tag_location' and name == 'LocationConstraint': - self.state = 'done' - else: self.state = 'bad' - - def characters(self, content): - if self.state == 'tag_location': - self.location += content - diff --git a/share/frontend/imdither/urlDownload.py b/share/frontend/imdither/urlDownload.py deleted file mode 100755 index f806650..0000000 --- a/share/frontend/imdither/urlDownload.py +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/python2.7 -import pbutils -from os import getpid -class UrlDownload: - def __init__(self, url): - self.dir = "/tmp/"; - self.url = url - self.filename = self.makeTempname() - try: - self.download(); - except Exception as E: - print E - pbutils.error("Could not download image") - - def makeTempname(self): - self.url = self.url.split("?")[0] - parts = self.url.split(".") - namepart = pbutils.sanitize(parts[-2].split("/")[-1]) - extension = pbutils.sanitize(parts[-1]) - return str(getpid()) + namepart + "." + extension; - - - def getFilename(self): - return self.filename - def download(self): - pbutils.download_image(self.url, self.filename, self.dir) - -from sys import argv - -if __name__ == "__main__": - if len(argv) < 2: - pbutils.error("supply a url as an argument") - download = UrlDownload(argv[1]) diff --git a/share/frontend/imgrid/3ddirs.txt b/share/frontend/imgrid/3ddirs.txt deleted file mode 100755 index 5c00c34..0000000 --- a/share/frontend/imgrid/3ddirs.txt +++ /dev/null @@ -1,256 +0,0 @@ -00 -01 -02 -03 -04 -05 -06 -07 -08 -09 -0a -0b -0c -0d -0e -0f -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -1a -1b -1c -1d -1e -1f -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -2a -2b -2c -2d -2e -2f -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -3a -3b -3c -3d -3e -3f -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -4a -4b -4c -4d -4e -4f -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -5a -5b -5c -5d -5e -5f -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -6a -6b -6c -6d -6e -6f -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -7a -7b -7c -7d -7e -7f -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -8a -8b -8c -8d -8e -8f -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -9a -9b -9c -9d -9e -9f -a0 -a1 -a2 -a3 -a4 -a5 -a6 -a7 -a8 -a9 -aa -ab -ac -ad -ae -af -b0 -b1 -b2 -b3 -b4 -b5 -b6 -b7 -b8 -b9 -ba -bb -bc -bd -be -bf -c0 -c1 -c2 -c3 -c4 -c5 -c6 -c7 -c8 -c9 -ca -cb -cc -cd -ce -cf -d0 -d1 -d2 -d3 -d4 -d5 -d6 -d7 -d8 -d9 -da -db -dc -dd -de -df -e0 -e1 -e2 -e3 -e4 -e5 -e6 -e7 -e8 -e9 -ea -eb -ec -ed -ee -ef -f0 -f1 -f2 -f3 -f4 -f5 -f6 -f7 -f8 -f9 -fa -fb -fc -fd -fe -ff diff --git a/share/frontend/imgrid/athenafinal.gif b/share/frontend/imgrid/athenafinal.gif deleted file mode 100755 index 19e0d58..0000000 Binary files a/share/frontend/imgrid/athenafinal.gif and /dev/null differ diff --git a/share/frontend/imgrid/backup.html b/share/frontend/imgrid/backup.html deleted file mode 100755 index 86ee325..0000000 --- a/share/frontend/imgrid/backup.html +++ /dev/null @@ -1,466 +0,0 @@ - - - - - - - - - - - - - - - - - - IMGRID - a 3D GRID-PLANE GENERATOR - - - - - - - - -
- -
- - -
-
3D-GRID-PLANE GENERATOR -
-hit enter or click GENERATE to get your 2D plane - - -
- -
-
- - - - -
DIMENSIONS
+
-
- - - - - -
HEIGHT PX
WIDTHPX
 
-
- - - - - - - - - - -
SWING 
TILT 
ROLL 
ZOOM  (in/out)  
- - - - -
 
CROP WHITESPACE
 
- -
IMAGE FORMAT -
-
- - - - -
GRID AND IMAGE
+
- -
- - - -
USE IMAGE INSTEAD OF GRIDIMG URL eg:http://ww...
- - - - - - - - - -
GRID THICKNESS:PX  
GRID COLOR:COLOR LIST
- - - - - - - - - - - - - - - -
GRID OPACITY:
GRID SPACING:
USE ONLY VERTICAL LINES
USE ONLY HORIZONTAL LINES
- - -
GRID BACKGROUND COLOR COLOR LIST
- - - -
OR GRID BACKGROUND IMAGEIMG URL eg:http://ww...
- - - - - -
GRID-TRANSITION
- - - - -
DROP SHADOW
-
- - - - - - -
BACKGROUND
+
-
- -
BACKGROUND COLORCOLOR LIST
- - - -
OR BACKGROUND IMAGEIMG URL eg:http://ww...
- - - - -
SKYCOLORfor the area above the horizon-lineCOLOR LIST
- -
- - - -
 
USERNAME
+
- -
- -
- - -
- - - -
-
- - - - -
-
- - - - -COPYRIGHT 2011 PEPPER DREAMTEAMER - - - - - - - - - - diff --git a/share/frontend/imgrid/blackplant2.png b/share/frontend/imgrid/blackplant2.png deleted file mode 100755 index e4f8096..0000000 Binary files a/share/frontend/imgrid/blackplant2.png and /dev/null differ diff --git a/share/frontend/imgrid/blackplant3.png b/share/frontend/imgrid/blackplant3.png deleted file mode 100755 index 4052e9d..0000000 Binary files a/share/frontend/imgrid/blackplant3.png and /dev/null differ diff --git a/share/frontend/imgrid/colordictbackup.js b/share/frontend/imgrid/colordictbackup.js deleted file mode 100755 index 62f914a..0000000 --- a/share/frontend/imgrid/colordictbackup.js +++ /dev/null @@ -1,4 +0,0 @@ -var hextoname = {'#EE1289': 'DeepPink2', '#EE8262': 'salmon2', '#C4C4C4': 'gray77', '#556B2F': 'DarkOliveGreen', '#FF8C00': 'DarkOrange', '#8B7B8B': 'thistle4', '#0000EE': 'blue2', '#EED5D2': 'MistyRose2', '#BA55D3': 'MediumOrchid', '#FFF5EE': 'seashell', '#912CEE': 'purple2', '#2F4F4F': 'DarkSlateGray', '#32814B': 'MediumForestGreen', '#D15FEE': 'MediumOrchid2', '#F0FFF0': 'honeydew', '#B23AEE': 'DarkOrchid2', '#8B7765': 'PeachPuff4', '#3D3D3D': 'gray24', '#54FF9F': 'SeaGreen1', '#636363': 'gray39', '#8B8386': 'LavenderBlush4', '#FF4040': 'brown1', '#EEA9B8': 'pink2', '#C2C2C2': 'gray76', '#800080': 'purple', '#545454': 'gray33', '#EE3A8C': 'VioletRed2', '#8A8A8A': 'gray54', '#FF00FF': 'fuchsia', '#436EEE': 'RoyalBlue2', '#8B864E': 'khaki4', '#0A0A0A': 'gray4', '#808000': 'olive', '#E3E3E3': 'gray89', '#1874CD': 'DodgerBlue3', '#BCD2EE': 'LightSteelBlue2', '#A9A9A9': 'DarkGray', '#F4A460': 'SandyBrown', '#FF3030': 'firebrick1', '#FFEBCD': 'BlanchedAlmond', '#B0C4DE': 'LightSteelBlue', '#00CDCD': 'cyan3', '#C0FF3E': 'OliveDrab1', '#FFD700': 'gold', '#242424': 'gray14', '#8B2252': 'VioletRed4', '#4EEE94': 'SeaGreen2', '#CD3278': 'VioletRed3', '#00E5EE': 'turquoise2', '#CD853F': 'peru', '#ADD8E6': 'LightBlue', '#C7C7C7': 'gray78', '#CD2990': 'maroon3', '#EEE5DE': 'seashell2', '#66CD00': 'chartreuse3', '#878787': 'gray53', '#FFA54F': 'tan1', '#A2B5CD': 'LightSteelBlue3', '#BC8F8F': 'RosyBrown', '#C9C9C9': 'gray79', '#D1C166': 'MediumGoldenRod', '#8B2323': 'brown4', '#B3EE3A': 'OliveDrab2', '#EEEED1': 'LightYellow2', '#AEEEEE': 'PaleTurquoise2', '#BDBDBD': 'gray74', '#FF7F00': 'DarkOrange1', '#FFC0CB': 'pink', '#EE3B3B': 'brown2', '#CDC8B1': 'cornsilk3', '#CDB38B': 'NavajoWhite3', '#CDBA96': 'wheat3', '#B4EEB4': 'DarkSeaGreen2', '#40E0D0': 'turquoise', '#8B795E': 'NavajoWhite4', '#27408B': 'RoyalBlue4', '#424242': 'gray26', '#CDB7B5': 'MistyRose3', '#CAE1FF': 'LightSteelBlue1', '#F0FFFF': 'azure', '#2E8B57': 'SeaGreen', '#87CEEB': 'SkyBlue', '#CD00CD': 'magenta3', '#CDAA7D': 'burlywood3', '#836FFF': 'SlateBlue1', '#ABABAB': 'gray67', '#EEB4B4': 'RosyBrown2', '#8B7355': 'burlywood4', '#F0E68C': 'khaki', '#CDCDB4': 'LightYellow3', '#4D4D4D': 'gray30', '#B8B8B8': 'gray72', '#B4CDCD': 'LightCyan3', '#008B8B': 'cyan4', '#828282': 'gray51', '#00EEEE': 'cyan2', '#708090': 'SlateGray', '#9AFF9A': 'PaleGreen1', '#FFA07A': 'LightSalmon', '#EBEBEB': 'gray92', '#FFB5C5': 'pink1', '#00688B': 'DeepSkyBlue4', '#DBDBDB': 'gray86', '#191970': 'MidnightBlue', '#FF83FA': 'orchid1', '#A1A1A1': 'gray63', '#838B8B': 'azure4', '#FFA500': 'orange', '#00FF7F': 'SpringGreen', '#EEAD0E': 'DarkGoldenrod2', '#B03060': 'maroon', '#96CDCD': 'PaleTurquoise3', '#CD3333': 'brown3', '#CDBE70': 'LightGoldenrod3', '#7CCD7C': 'PaleGreen3', '#97FFFF': 'DarkSlateGray1', '#DAA520': 'goldenrod', '#8B3A3A': 'IndianRed4', '#6B6B6B': 'gray42', '#FFFAF0': 'FloralWhite', '#757575': 'gray46', '#BFBFBF': 'gray75', '#00EE76': 'SpringGreen2', '#FFFAFA': 'snow', '#6E8B3D': 'DarkOliveGreen4', '#EEE685': 'khaki2', '#FF3E96': 'VioletRed1', '#EE0000': 'red2', '#FDF5E6': 'OldLace', '#E066FF': 'MediumOrchid1', '#8DB6CD': 'LightSkyBlue3', '#FF7256': 'coral1', '#7CFC00': 'LawnGreen', '#838B83': 'honeydew4', '#BF3EFF': 'DarkOrchid1', '#8B6914': 'goldenrod4', '#00CD66': 'SpringGreen3', '#525252': 'gray32', '#A4D3EE': 'LightSkyBlue2', '#00868B': 'turquoise4', '#8DEEEE': 'DarkSlateGray2', '#787878': 'gray47', '#8B1C62': 'maroon4', '#616161': 'gray38', '#4876FF': 'RoyalBlue1', '#9F79EE': 'MediumPurple2', '#212121': 'gray13', '#C1CDC1': 'honeydew3', '#CD69C9': 'orchid3', '#E0EEEE': 'azure2', '#8B7E66': 'wheat4', '#8A2BE2': 'BlueViolet', '#CDCD00': 'yellow3', '#EE5C42': 'tomato2', '#6E6E6E': 'gray43', '#EEAEEE': 'plum2', '#DC143C': 'crimson', '#CD919E': 'pink3', '#528B8B': 'DarkSlateGray4', '#AFEEEE': 'PaleTurquoise', '#CD6889': 'PaleVioletRed3', '#E6E6FA': 'lavender', '#EE00EE': 'magenta2', '#999999': 'gray60', '#F0F8FF': 'AliceBlue', '#595959': 'gray35', '#FF7F50': 'coral', '#A6A6A6': 'gray65', '#DEDEDE': 'gray87', '#262626': 'gray15', '#6CA6CD': 'SkyBlue3', '#8B8B83': 'ivory4', '#474747': 'gray28', '#F7F7F7': 'gray97', '#548B54': 'PaleGreen4', '#48D1CC': 'MediumTurquoise', '#C1CDCD': 'azure3', '#E0EEE0': 'honeydew2', '#FFB90F': 'DarkGoldenrod1', '#FFD39B': 'burlywood1', '#8B5A2B': 'tan4', '#EEE9BF': 'LemonChiffon2', '#BCEE68': 'DarkOliveGreen2', '#8470FF': 'LightSlateBlue', '#8B0A50': 'DeepPink4', '#FFF68F': 'khaki1', '#EEA2AD': 'LightPink2', '#CD5B45': 'coral3', '#7FFF00': 'chartreuse', '#8B8378': 'AntiqueWhite4', '#9BCD9B': 'DarkSeaGreen3', '#454545': 'gray27', '#D1D1D1': 'gray82', '#EEE8AA': 'PaleGoldenrod', '#668B8B': 'PaleTurquoise4', '#EE30A7': 'maroon2', '#FFC125': 'goldenrod1', '#8B475D': 'PaleVioletRed4', '#D8BFD8': 'thistle', '#404040': 'gray25', '#EEEE00': 'yellow2', '#CDB5CD': 'thistle3', '#00C5CD': 'turquoise3', '#00CED1': 'DarkTurquoise', '#CFCFCF': 'gray81', '#008B00': 'green4', '#7A7A7A': 'gray48', '#B8860B': 'DarkGoldenrod', '#1C86EE': 'DodgerBlue2', '#8B5742': 'LightSalmon4', '#1A1A1A': 'gray10', '#8B008B': 'DarkMagenta', '#0F0F0F': 'gray6', '#CD3700': 'OrangeRed3', '#7F7F7F': 'gray50', '#FF6EB4': 'HotPink1', '#6959CD': 'SlateBlue3', '#90EE90': 'LightGreen', '#8B4789': 'orchid4', '#EE7AE9': 'orchid2', '#8968CD': 'MediumPurple3', '#080808': 'gray3', '#CDC9C9': 'snow3', '#BDB76B': 'DarkKhaki', '#9370DB': 'MediumPurple', '#EEDC82': 'LightGoldenrod2', '#3CB371': 'MediumSeaGreen', '#F5FFFA': 'MintCream', '#303030': 'gray19', '#B9D3EE': 'SlateGray2', '#575757': 'gray34', '#F5F5DC': 'beige', '#BABABA': 'gray73', '#0000CD': 'blue3', '#FF8247': 'sienna1', '#F2F2F2': 'gray95', '#EED5B7': 'bisque2', '#FFEC8B': 'LightGoldenrod1', '#EE7600': 'DarkOrange2', '#8B636C': 'pink4', '#8B814C': 'LightGoldenrod4', '#FFE4B5': 'moccasin', '#4F94CD': 'SteelBlue3', '#CDAD00': 'gold3', '#CD5555': 'IndianRed3', '#8B7500': 'gold4', '#473C8B': 'SlateBlue4', '#B0E0E6': 'PowderBlue', '#FFFF00': 'yellow', '#CD96CD': 'plum3', '#006400': 'DarkGreen', '#FAFAFA': 'gray98', '#53868B': 'CadetBlue4', '#8B4513': 'chocolate4', '#98FB98': 'PaleGreen', '#63B8FF': 'SteelBlue1', '#FFAEB9': 'LightPink1', '#EE6A50': 'coral2', '#87CEFF': 'SkyBlue1', '#87CEFA': 'LightSkyBlue', '#ADFF2F': 'GreenYellow', '#008B45': 'SpringGreen4', '#EE4000': 'OrangeRed2', '#8B6969': 'RosyBrown4', '#00008B': 'blue4', '#DB7093': 'PaleVioletRed', '#7EC0EE': 'SkyBlue2', '#3B3B3B': 'gray23', '#8C8C8C': 'gray55', '#5F9EA0': 'cadet blue', '#EE799F': 'PaleVioletRed2', '#CD6090': 'HotPink3', '#8B8682': 'seashell4', '#458B74': 'aquamarine4', '#EECFA1': 'NavajoWhite2', '#76EE00': 'chartreuse2', '#000080': 'navy', '#228B22': 'ForestGreen', '#8B8B00': 'yellow4', '#B5B5B5': 'gray71', '#CD950C': 'DarkGoldenrod3', '#EE82EE': 'violet', '#EDEDED': 'gray93', '#F5DEB3': 'wheat', '#3A5FCD': 'RoyalBlue3', '#00FA9A': 'MediumSpringGreen', '#F0F0F0': 'gray94', '#D1EEEE': 'LightCyan2', '#2E2E2E': 'gray18', '#EEC591': 'burlywood2', '#8B3E2F': 'coral4', '#CD8162': 'LightSalmon3', '#9AC0CD': 'LightBlue3', '#8B8989': 'snow4', '#EED8AE': 'wheat2', '#551A8B': 'purple4', '#919191': 'gray57', '#949494': 'gray58', '#778899': 'LightSlateGray', '#FFFACD': 'LemonChiffon', '#458B00': 'chartreuse4', '#008000': 'green', '#FFFFF0': 'ivory', '#E0E0E0': 'gray88', '#EEB422': 'goldenrod2', '#A020F0': 'purple', '#5CACEE': 'SteelBlue2', '#CD4F39': 'tomato3', '#CDC0B0': 'AntiqueWhite3', '#6E7B8B': 'LightSteelBlue4', '#9E9E9E': 'gray62', '#CDC673': 'khaki3', '#104E8B': 'DodgerBlue4', '#E0FFFF': 'LightCyan', '#FFFFFF': 'white', '#6C7B8B': 'SlateGray4', '#FFC1C1': 'RosyBrown1', '#D6D6D6': 'gray84', '#8B4726': 'sienna4', '#CD9B1D': 'goldenrod3', '#FF6347': 'tomato', '#FF34B3': 'maroon1', '#7D7D7D': 'gray49', '#121212': 'gray7', '#B0E2FF': 'LightSkyBlue1', '#8B3A62': 'HotPink4', '#CD5C5C': 'IndianRed', '#4A4A4A': 'gray29', '#B0B0B0': 'gray69', '#D9D9D9': 'gray85', '#A2CD5A': 'DarkOliveGreen3', '#8B0000': 'DarkRed', '#FF6A6A': 'IndianRed1', '#CD6600': 'DarkOrange3', '#FFEFDB': 'AntiqueWhite1', '#E9967A': 'DarkSalmon', '#EEE9E9': 'snow2', '#D4D4D4': 'gray83', '#383838': 'gray22', '#7A67EE': 'SlateBlue2', '#4169E1': 'RoyalBlue', '#5E5E5E': 'gray37', '#00F5FF': 'turquoise1', '#FFEFD5': 'PapayaWhip', '#CDAF95': 'PeachPuff3', '#CCCCCC': 'gray80', '#00BFFF': 'DeepSkyBlue', '#CDB79E': 'bisque3', '#969696': 'gray59', '#4F4F4F': 'gray31', '#1E90FF': 'DodgerBlue', '#FCFCFC': 'gray99', '#EE2C2C': 'firebrick2', '#8B6508': 'DarkGoldenrod4', '#696969': 'DimGray', '#FF7F24': 'chocolate1', '#8FBC8F': 'DarkSeaGreen', '#66CDAA': 'aquamarine3', '#6495ED': 'CornflowerBlue', '#0D0D0D': 'gray5', '#EEE0E5': 'LavenderBlush2', '#666666': 'gray40', '#B2DFEE': 'LightBlue2', '#B22222': 'firebrick', '#4B0082': 'indigo', '#FF82AB': 'PaleVioletRed1', '#AB82FF': 'MediumPurple1', '#79CDCD': 'DarkSlateGray3', '#FFE4C4': 'bisque', '#DEB887': 'burlywood', '#5D478B': 'MediumPurple4', '#8B3626': 'tomato4', '#FFFFE0': 'LightYellow', '#FFE4E1': 'MistyRose', '#171717': 'gray9', '#EEDFCC': 'AntiqueWhite2', '#9400D3': 'DarkViolet', '#BFEFFF': 'LightBlue1', '#8B7D6B': 'bisque4', '#FF8C69': 'salmon1', '#C6E2FF': 'SlateGray1', '#1C1C1C': 'gray11', '#FF4500': 'OrangeRed', '#FFE7BA': 'wheat1', '#808080': 'fractal', '#EE9572': 'LightSalmon2', '#CD8500': 'orange3', '#8B5A00': 'orange4', '#9932CC': 'DarkOrchid', '#EECBAD': 'PeachPuff2', '#CD8C95': 'LightPink3', '#292929': 'gray16', '#CD1076': 'DeepPink3', '#7A378B': 'MediumOrchid4', '#FF0000': 'red', '#698B22': 'OliveDrab4', '#ADADAD': 'gray68', '#EEE8CD': 'cornsilk2', '#DDA0DD': 'plum', '#7D26CD': 'purple3', '#DA70D6': 'orchid', '#DCDCDC': 'gainsboro', '#68228B': 'DarkOrchid4', '#7B68EE': 'MediumSlateBlue', '#000000': 'black', '#6B8E23': 'OliveDrab', '#FF69B4': 'HotPink', '#800000': 'maroon', '#8B668B': 'plum4', '#363636': 'gray21', '#8B4500': 'DarkOrange4', '#D3D3D3': 'LightGray', '#607B8B': 'LightSkyBlue4', '#F08080': 'LightCoral', '#CD9B9B': 'RosyBrown3', '#76EEC6': 'aquamarine2', '#FAEBD7': 'AntiqueWhite', '#68838B': 'LightBlue4', '#7FFFD4': 'aquamarine', '#C0C0C0': 'silver', '#EEDD82': 'LightGoldenrod', '#EE9A49': 'tan2', '#4A708B': 'SkyBlue4', '#008080': 'teal', '#7AC5CD': 'CadetBlue3', '#98F5FF': 'CadetBlue1', '#8B2500': 'OrangeRed4', '#8F8F8F': 'gray56', '#FFF0F5': 'LavenderBlush', '#8B8970': 'LemonChiffon4', '#8B8878': 'cornsilk4', '#6A5ACD': 'SlateBlue', '#4682B4': 'SteelBlue', '#EEEEE0': 'ivory2', '#B3B3B3': 'gray70', '#00FF00': 'green1', '#FFDEAD': 'NavajoWhite', '#CD2626': 'firebrick3', '#8B4C39': 'salmon4', '#9B30FF': 'purple1', '#E5E5E5': 'gray90', '#36648B': 'SteelBlue4', '#9C9C9C': 'gray61', '#F8F8FF': 'GhostWhite', '#333333': 'gray20', '#5C5C5C': 'gray36', '#737373': 'gray45', '#EEC900': 'gold2', '#FFE1FF': 'thistle1', '#C1FFC1': 'DarkSeaGreen1', '#CDC5BF': 'seashell3', '#A0522D': 'sienna', '#8B5F65': 'LightPink4', '#CDC1C5': 'LavenderBlush3', '#EE7621': 'chocolate2', '#FFBBFF': 'plum1', '#CD6839': 'sienna3', '#698B69': 'DarkSeaGreen4', '#050505': 'gray2', '#CD661D': 'chocolate3', '#FAFAD2': 'LightGoldenrodYellow', '#CDCDC1': 'ivory3', '#FFF8DC': 'cornsilk', '#A8A8A8': 'gray66', '#B452CD': 'MediumOrchid3', '#D2B48C': 'tan', '#8EE5EE': 'CadetBlue2', '#483D8B': 'DarkSlateBlue', '#BBFFFF': 'PaleTurquoise1', '#0000FF': 'blue', '#EE6AA7': 'HotPink2', '#EE7942': 'sienna2', '#00CD00': 'green3', '#141414': 'gray8', '#9ACD32': 'OliveDrab3', '#C71585': 'MediumVioletRed', '#EE9A00': 'orange2', '#CAFF70': 'DarkOliveGreen1', '#F5F5F5': 'gray96', '#32CD32': 'LimeGreen', '#00EE00': 'green2', '#FFB6C1': 'LightPink', '#8B1A1A': 'firebrick4', '#00B2EE': 'DeepSkyBlue2', '#20B2AA': 'LightSeaGreen', '#707070': 'gray44', '#009ACD': 'DeepSkyBlue3', '#A52A2A': 'brown', '#EE6363': 'IndianRed2', '#FAF0E6': 'linen', '#8B7D7B': 'MistyRose4', '#9A32CD': 'DarkOrchid3', '#1F1F1F': 'gray12', '#E8E8E8': 'gray91', '#7E7E7E': 'gray', '#7A8B8B': 'LightCyan4', '#CD7054': 'salmon3', '#9FB6CD': 'SlateGray3', '#CDC9A5': 'LemonChiffon3', '#D02090': 'VioletRed', '#00FFFF': 'aqua', '#2B2B2B': 'gray17', '#858585': 'gray52', '#A3A3A3': 'gray64', '#CD0000': 'red3', '#43CD80': 'SeaGreen3', '#FA8072': 'salmon', '#FFDAB9': 'PeachPuff', '#D2691E': 'chocolate', '#FF1493': 'DeepPink', '#EED2EE': 'thistle2', '#030303': 'gray1', '#8B8B7A': 'LightYellow4'} -var nametohex = {'grey21': '#363636', 'yellow': '#FFFF00', 'grey61': '#9C9C9C', 'HotPink3': '#CD6090', 'grey63': '#A1A1A1', 'grey62': '#9E9E9E', 'grey65': '#A6A6A6', 'AliceBlue': '#F0F8FF', 'grey67': '#ABABAB', 'grey66': '#A8A8A8', 'LightCyan1': '#E0FFFF', 'grey68': '#ADADAD', 'LightCyan3': '#B4CDCD', 'LightCyan2': '#D1EEEE', 'LightCyan4': '#7A8B8B', 'gray32': '#525252', 'gray33': '#545454', 'DarkTurquoise': '#00CED1', 'gray31': '#4F4F4F', 'gray36': '#5C5C5C', 'gray37': '#5E5E5E', 'gray34': '#575757', 'gray35': '#595959', 'aquamarine4': '#458B74', 'gray38': '#616161', 'gray39': '#636363', 'aquamarine1': '#7FFFD4', 'aquamarine3': '#66CDAA', 'aquamarine2': '#76EEC6', 'CadetBlue4': '#53868B', 'CadetBlue3': '#7AC5CD', 'CadetBlue2': '#8EE5EE', 'CadetBlue1': '#98F5FF', 'crimson': '#DC143C', 'VioletRed1': '#FF3E96', 'VioletRed2': '#EE3A8C', 'VioletRed3': '#CD3278', 'VioletRed4': '#8B2252', 'brown': '#A52A2A', 'DarkGoldenrod': '#B8860B', 'gray8': '#141414', 'SlateGrey': '#708090', 'NavajoWhite2': '#EECFA1', 'gray2': '#050505', 'cyan': '#00FFFF', 'gray0': '#000000', 'gray1': '#030303', 'fractal': '#808080', 'gray7': '#121212', 'gray4': '#0A0A0A', 'gray5': '#0D0D0D', 'grey60': '#999999', 'DarkBlue': '#00008B', 'gray98': '#FAFAFA', 'DarkKhaki': '#BDB76B', 'gray99': '#FCFCFC', 'teal': '#008080', 'grey11': '#1C1C1C', 'coral4': '#8B3E2F', 'grey12': '#1F1F1F', 'grey64': '#A3A3A3', 'PaleGreen1': '#9AFF9A', 'PaleGreen3': '#7CCD7C', 'PaleGreen2': '#90EE90', 'PaleGreen4': '#548B54', 'grey14': '#242424', 'lavender': '#E6E6FA', 'grey15': '#262626', 'chartreuse3': '#66CD00', 'chartreuse2': '#76EE00', 'chartreuse1': '#7FFF00', 'chartreuse4': '#458B00', 'RosyBrown': '#BC8F8F', 'blue': '#0000FF', 'NavajoWhite': '#FFDEAD', 'opaque': '#000000', 'maroon4': '#8B1C62', 'maroon3': '#CD2990', 'maroon2': '#EE30A7', 'maroon1': '#FF34B3', 'gold3': '#CDAD00', 'gold2': '#EEC900', 'gold1': '#FFD700', 'gold4': '#8B7500', 'LightSlateGrey': '#778899', 'gray30': '#4D4D4D', 'DarkGreen': '#006400', 'SkyBlue': '#87CEEB', 'GhostWhite': '#F8F8FF', 'LavenderBlush': '#FFF0F5', 'SeaGreen': '#2E8B57', 'BlanchedAlmond': '#FFEBCD', 'gray60': '#999999', 'DarkOliveGreen': '#556B2F', 'firebrick2': '#EE2C2C', 'firebrick1': '#FF3030', 'firebrick4': '#8B1A1A', 'sienna': '#A0522D', 'blue1': '#0000FF', 'lime': '#00FF00', 'gray55': '#8C8C8C', 'blue2': '#0000EE', 'DarkViolet': '#9400D3', 'blue4': '#00008B', 'peru': '#CD853F', 'DarkMagenta': '#8B008B', 'LightBlue2': '#B2DFEE', 'red2': '#EE0000', 'red1': '#FF0000', 'LightBlue1': '#BFEFFF', 'LightBlue4': '#68838B', 'red4': '#8B0000', 'MediumSpringGreen': '#00FA9A', 'chocolate': '#D2691E', 'ForestGreen': '#228B22', 'DarkRed': '#8B0000', 'olive': '#808000', 'HotPink2': '#EE6AA7', 'HotPink1': '#FF6EB4', 'HotPink4': '#8B3A62', 'grey18': '#2E2E2E', 'grey19': '#303030', 'none': '#000000', 'PeachPuff': '#FFDAB9', 'MediumGoldenRod': '#D1C166', 'moccasin': '#FFE4B5', 'grey10': '#1A1A1A', 'chocolate1': '#FF7F24', 'chocolate2': '#EE7621', 'chocolate3': '#CD661D', 'chocolate4': '#8B4513', 'wheat2': '#EED8AE', 'grey16': '#292929', 'grey17': '#2B2B2B', 'gray69': '#B0B0B0', 'gray68': '#ADADAD', 'gray65': '#A6A6A6', 'gray64': '#A3A3A3', 'gray67': '#ABABAB', 'gray66': '#A8A8A8', 'gray61': '#9C9C9C', 'coral': '#FF7F50', 'gray63': '#A1A1A1', 'gray62': '#9E9E9E', 'LightGoldenrod': '#EEDD82', 'turquoise4': '#00868B', 'seashell2': '#EEE5DE', 'seashell3': '#CDC5BF', 'magenta': '#FF00FF', 'seashell1': '#FFF5EE', 'tan': '#D2B48C', 'seashell4': '#8B8682', 'pink': '#FFC0CB', 'LightSlateBlue': '#8470FF', 'SteelBlue1': '#63B8FF', 'SteelBlue3': '#4F94CD', 'SteelBlue2': '#5CACEE', 'SteelBlue4': '#36648B', 'grey89': '#E3E3E3', 'grey88': '#E0E0E0', 'grey87': '#DEDEDE', 'grey86': '#DBDBDB', 'grey85': '#D9D9D9', 'grey84': '#D6D6D6', 'grey83': '#D4D4D4', 'grey82': '#D1D1D1', 'grey81': '#CFCFCF', 'grey80': '#CCCCCC', 'ivory2': '#EEEEE0', 'khaki4': '#8B864E', 'khaki1': '#FFF68F', 'khaki2': '#EEE685', 'khaki3': '#CDC673', 'salmon1': '#FF8C69', 'salmon3': '#CD7054', 'salmon2': '#EE8262', 'salmon4': '#8B4C39', 'LightPink': '#FFB6C1', 'gray9': '#171717', 'green': '#008000', 'brown2': '#EE3B3B', 'brown3': '#CD3333', 'brown1': '#FF4040', 'brown4': '#8B2323', 'cadet blue': '#5F9EA0', 'orange4': '#8B5A00', 'orange1': '#FFA500', 'orange3': '#CD8500', 'orange2': '#EE9A00', 'gray3': '#080808', 'gray6': '#0F0F0F', 'yellow4': '#8B8B00', 'yellow3': '#CDCD00', 'yellow2': '#EEEE00', 'yellow1': '#FFFF00', 'PapayaWhip': '#FFEFD5', 'bisque2': '#EED5B7', 'OliveDrab4': '#698B22', 'bisque3': '#CDB79E', 'OliveDrab1': '#C0FF3E', 'OliveDrab2': '#B3EE3A', 'OliveDrab3': '#9ACD32', 'SkyBlue4': '#4A708B', 'SkyBlue1': '#87CEFF', 'SkyBlue3': '#6CA6CD', 'SkyBlue2': '#7EC0EE', 'grey58': '#949494', 'grey59': '#969696', 'grey54': '#8A8A8A', 'grey55': '#8C8C8C', 'grey56': '#8F8F8F', 'grey57': '#919191', 'grey50': '#7F7F7F', 'silver': '#C0C0C0', 'grey52': '#858585', 'grey53': '#878787', 'cyan2': '#00EEEE', 'cyan3': '#00CDCD', 'gray23': '#3B3B3B', 'RosyBrown4': '#8B6969', 'gray25': '#404040', 'CornflowerBlue': '#6495ED', 'cyan4': '#008B8B', 'gray26': '#424242', 'gray29': '#4A4A4A', 'LimeGreen': '#32CD32', 'MistyRose': '#FFE4E1', 'navy': '#000080', 'gray94': '#F0F0F0', 'gray95': '#F2F2F2', 'gray96': '#F5F5F5', 'gray97': '#F7F7F7', 'gray90': '#E5E5E5', 'gray91': '#E8E8E8', 'gray92': '#EBEBEB', 'gray93': '#EDEDED', 'MediumPurple': '#9370DB', 'MidnightBlue': '#191970', 'cornsilk': '#FFF8DC', 'red': '#FF0000', 'grey69': '#B0B0B0', 'DarkOrchid4': '#68228B', 'blue3': '#0000CD', 'LightSteelBlue': '#B0C4DE', 'DarkOrchid1': '#BF3EFF', 'DarkOrchid2': '#B23AEE', 'DarkOrchid3': '#9A32CD', 'grey72': '#B8B8B8', 'FloralWhite': '#FFFAF0', 'grey70': '#B3B3B3', 'DarkSeaGreen': '#8FBC8F', 'grey71': '#B5B5B5', 'gray17': '#2B2B2B', 'grey77': '#C4C4C4', 'tomato4': '#8B3626', 'tomato1': '#FF6347', 'tomato3': '#CD4F39', 'tomato2': '#EE5C42', 'DarkSlateGray1': '#97FFFF', 'DarkSlateGray2': '#8DEEEE', 'DarkSlateGray3': '#79CDCD', 'DarkSlateGray4': '#528B8B', 'SteelBlue': '#4682B4', 'MediumSlateBlue': '#7B68EE', 'OrangeRed': '#FF4500', 'grey79': '#C9C9C9', 'MediumVioletRed': '#C71585', 'burlywood': '#DEB887', 'white': '#FFFFFF', 'tomato': '#FF6347', 'DodgerBlue': '#1E90FF', 'RoyalBlue4': '#27408B', 'RoyalBlue1': '#4876FF', 'RoyalBlue3': '#3A5FCD', 'RoyalBlue2': '#436EEE', 'MistyRose1': '#FFE4E1', 'MistyRose3': '#CDB7B5', 'MistyRose2': '#EED5D2', 'MistyRose4': '#8B7D7B', 'LightGray': '#D3D3D3', 'LightYellow': '#FFFFE0', 'DarkOrange': '#FF8C00', 'DarkGray': '#A9A9A9', 'SlateGray': '#708090', 'turquoise3': '#00C5CD', 'turquoise2': '#00E5EE', 'turquoise1': '#00F5FF', 'burlywood2': '#EEC591', 'burlywood4': '#8B7355', 'DarkSlateGray': '#2F4F4F', 'linen': '#FAF0E6', 'grey47': '#787878', 'snow': '#FFFAFA', 'grey46': '#757575', 'gray58': '#949494', 'gray59': '#969696', 'IndianRed4': '#8B3A3A', 'purple4': '#551A8B', 'gray52': '#858585', 'gray53': '#878787', 'purple1': '#9B30FF', 'IndianRed1': '#FF6A6A', 'purple3': '#7D26CD', 'purple2': '#912CEE', 'thistle3': '#CDB5CD', 'thistle2': '#EED2EE', 'SpringGreen2': '#00EE76', 'SpringGreen3': '#00CD66', 'SpringGreen4': '#008B45', 'thistle4': '#8B7B8B', 'LightPink2': '#EEA2AD', 'LightPink3': '#CD8C95', 'LightPink1': '#FFAEB9', 'LightPink4': '#8B5F65', 'MediumPurple1': '#AB82FF', 'MediumPurple2': '#9F79EE', 'MediumPurple3': '#8968CD', 'MediumPurple4': '#5D478B', 'MediumTurquoise': '#48D1CC', 'DimGray': '#696969', 'gray14': '#242424', 'grey100': '#FFFFFF', 'OrangeRed3': '#CD3700', 'OrangeRed2': '#EE4000', 'OrangeRed1': '#FF4500', 'LightSeaGreen': '#20B2AA', 'gold': '#FFD700', 'OrangeRed4': '#8B2500', 'NavajoWhite4': '#8B795E', 'NavajoWhite1': '#FFDEAD', 'LawnGreen': '#7CFC00', 'NavajoWhite3': '#CDB38B', 'LightGoldenrod4': '#8B814C', 'LightGoldenrod1': '#FFEC8B', 'LightGoldenrod3': '#CDBE70', 'LightGoldenrod2': '#EEDC82', 'gray21': '#363636', 'PaleGreen': '#98FB98', 'green4': '#008B00', 'green1': '#00FF00', 'green3': '#00CD00', 'green2': '#00EE00', 'MediumOrchid': '#BA55D3', 'black': '#000000', 'gray20': '#333333', 'orchid4': '#8B4789', 'DodgerBlue1': '#1E90FF', 'DodgerBlue2': '#1C86EE', 'DodgerBlue3': '#1874CD', 'DodgerBlue4': '#104E8B', 'orchid1': '#FF83FA', 'orchid2': '#EE7AE9', 'orchid3': '#CD69C9', 'DarkSeaGreen4': '#698B69', 'DarkSeaGreen3': '#9BCD9B', 'DarkSeaGreen2': '#B4EEB4', 'DarkSeaGreen1': '#C1FFC1', 'gray100': '#FFFFFF', 'BlueViolet': '#8A2BE2', 'bisque4': '#8B7D6B', 'MediumOrchid4': '#7A378B', 'MintCream': '#F5FFFA', 'MediumOrchid1': '#E066FF', 'bisque1': '#FFE4C4', 'MediumOrchid3': '#B452CD', 'MediumOrchid2': '#D15FEE', 'gray': '#7E7E7E', 'DeepSkyBlue': '#00BFFF', 'LightGrey': '#D3D3D3', 'grey78': '#C7C7C7', 'gray22': '#383838', 'plum4': '#8B668B', 'plum3': '#CD96CD', 'plum2': '#EEAEEE', 'plum1': '#FFBBFF', 'DarkSlateGrey': '#2F4F4F', 'DarkOrchid': '#9932CC', 'OliveDrab': '#6B8E23', 'gray83': '#D4D4D4', 'grey49': '#7D7D7D', 'grey48': '#7A7A7A', 'thistle': '#D8BFD8', 'violet': '#EE82EE', 'grey43': '#6E6E6E', 'grey42': '#6B6B6B', 'LightSalmon4': '#8B5742', 'grey40': '#666666', 'LightSalmon2': '#EE9572', 'LightSalmon3': '#CD8162', 'grey45': '#737373', 'LightSalmon1': '#FFA07A', 'honeydew': '#F0FFF0', 'gray18': '#2E2E2E', 'gray19': '#303030', 'LightCyan': '#E0FFFF', 'gray15': '#262626', 'gray16': '#292929', 'gray82': '#D1D1D1', 'gray10': '#1A1A1A', 'gray11': '#1C1C1C', 'gray12': '#1F1F1F', 'gray13': '#212121', 'grey93': '#EDEDED', 'PaleGoldenrod': '#EEE8AA', 'gainsboro': '#DCDCDC', 'AntiqueWhite3': '#CDC0B0', 'AntiqueWhite2': '#EEDFCC', 'AntiqueWhite1': '#FFEFDB', 'gray27': '#454545', 'SlateBlue': '#6A5ACD', 'AntiqueWhite4': '#8B8378', 'DimGrey': '#696969', 'VioletRed': '#D02090', 'WhiteSmoke': '#F5F5F5', 'grey38': '#616161', 'grey39': '#636363', 'grey36': '#5C5C5C', 'grey37': '#5E5E5E', 'grey34': '#575757', 'grey35': '#595959', 'aqua': '#00FFFF', 'grey33': '#545454', 'grey30': '#4D4D4D', 'grey31': '#4F4F4F', 'NavyBlue': '#000080', 'sienna4': '#8B4726', 'gray81': '#CFCFCF', 'gray80': '#CCCCCC', 'sienna1': '#FF8247', 'gray86': '#DBDBDB', 'sienna3': '#CD6839', 'sienna2': '#EE7942', 'gray89': '#E3E3E3', 'gray88': '#E0E0E0', 'SlateBlue4': '#473C8B', 'gray87': '#DEDEDE', 'LightSteelBlue1': '#CAE1FF', 'magenta3': '#CD00CD', 'IndianRed': '#CD5C5C', 'SlateBlue2': '#7A67EE', 'SlateBlue1': '#836FFF', 'LightBlue': '#ADD8E6', 'PeachPuff4': '#8B7765', 'seashell': '#FFF5EE', 'SaddleBrown': '#8B4513', 'PeachPuff1': '#FFDAB9', 'PeachPuff2': '#EECBAD', 'PeachPuff3': '#CDAF95', 'aquamarine': '#7FFFD4', 'LemonChiffon2': '#EEE9BF', 'LemonChiffon1': '#FFFACD', 'tan4': '#8B5A2B', 'tan3': '#CD853F', 'tan2': '#EE9A49', 'tan1': '#FFA54F', 'LemonChiffon4': '#8B8970', 'orange': '#FFA500', 'OldLace': '#FDF5E6', 'PowderBlue': '#B0E0E6', 'RosyBrown3': '#CD9B9B', 'RoyalBlue': '#4169E1', 'LightSkyBlue4': '#607B8B', 'LightSkyBlue1': '#B0E2FF', 'LightSkyBlue2': '#A4D3EE', 'LightSkyBlue3': '#8DB6CD', 'LightYellow1': '#FFFFE0', 'LightYellow2': '#EEEED1', 'LightYellow3': '#CDCDB4', 'LightYellow4': '#8B8B7A', 'goldenrod4': '#8B6914', 'goldenrod1': '#FFC125', 'goldenrod2': '#EEB422', 'goldenrod3': '#CD9B1D', 'grey32': '#525252', 'LemonChiffon': '#FFFACD', 'burlywood1': '#FFD39B', 'YellowGreen': '#9ACD32', 'LightCoral': '#F08080', 'burlywood3': '#CDAA7D', 'ivory3': '#CDCDC1', 'firebrick3': '#CD2626', 'ivory1': '#FFFFF0', 'grey8': '#141414', 'ivory4': '#8B8B83', 'grey9': '#171717', 'DarkSalmon': '#E9967A', 'SlateGray1': '#C6E2FF', 'SlateGray2': '#B9D3EE', 'SlateGray3': '#9FB6CD', 'SlateGray4': '#6C7B8B', 'RosyBrown2': '#EEB4B4', 'RosyBrown1': '#FFC1C1', 'gray85': '#D9D9D9', 'gray84': '#D6D6D6', 'LightGreen': '#90EE90', 'LavenderBlush1': '#FFF0F5', 'grey73': '#BABABA', 'LavenderBlush3': '#CDC1C5', 'LavenderBlush2': '#EEE0E5', 'grey76': '#C2C2C2', 'LavenderBlush4': '#8B8386', 'grey74': '#BDBDBD', 'grey75': '#BFBFBF', 'pink1': '#FFB5C5', 'pink3': '#CD919E', 'pink2': '#EEA9B8', 'pink4': '#8B636C', 'gray47': '#787878', 'gray46': '#757575', 'gray45': '#737373', 'gray44': '#707070', 'gray43': '#6E6E6E', 'gray42': '#6B6B6B', 'gray41': '#696969', 'gray40': '#666666', 'gray49': '#7D7D7D', 'gray48': '#7A7A7A', 'MediumAquamarine': '#66CDAA', 'MediumForestGreen': '#32814B', 'azure1': '#F0FFFF', 'azure3': '#C1CDCD', 'azure2': '#E0EEEE', 'indigo': '#4B0082', 'azure4': '#838B8B', 'firebrick': '#B22222', 'DarkGrey': '#A9A9A9', 'magenta4': '#8B008B', 'SlateBlue3': '#6959CD', 'magenta2': '#EE00EE', 'magenta1': '#FF00FF', 'grey51': '#828282', 'chartreuse': '#7FFF00', 'grey41': '#696969', 'DarkOliveGreen4': '#6E8B3D', 'turquoise': '#40E0D0', 'DarkOliveGreen1': '#CAFF70', 'DarkOliveGreen3': '#A2CD5A', 'DarkOliveGreen2': '#BCEE68', 'grey6': '#0F0F0F', 'grey7': '#121212', 'grey4': '#0A0A0A', 'grey5': '#0D0D0D', 'grey2': '#050505', 'grey3': '#080808', 'grey0': '#000000', 'grey1': '#030303', 'gray50': '#7F7F7F', 'cyan1': '#00FFFF', 'gray51': '#828282', 'gray24': '#3D3D3D', 'HotPink': '#FF69B4', 'DarkGoldenrod4': '#8B6508', 'gray54': '#8A8A8A', 'DarkGoldenrod1': '#FFB90F', 'DarkGoldenrod2': '#EEAD0E', 'DarkGoldenrod3': '#CD950C', 'IndianRed2': '#EE6363', 'DeepPink': '#FF1493', 'gray28': '#474747', 'IndianRed3': '#CD5555', 'DarkCyan': '#008B8B', 'GreenYellow': '#ADFF2F', 'LightSalmon': '#FFA07A', 'DarkOrange4': '#8B4500', 'DarkOrange1': '#FF7F00', 'transparent': '#000000', 'DarkOrange3': '#CD6600', 'orchid': '#DA70D6', 'purple': '#800080', 'wheat4': '#8B7E66', 'wheat1': '#FFE7BA', 'wheat3': '#CDBA96', 'SpringGreen1': '#00FF7F', 'coral3': '#CD5B45', 'coral2': '#EE6A50', 'coral1': '#FF7256', 'thistle1': '#FFE1FF', 'PaleTurquoise': '#AFEEEE', 'bisque': '#FFE4C4', 'DeepPink3': '#CD1076', 'DeepPink2': '#EE1289', 'DeepPink1': '#FF1493', 'khaki': '#F0E68C', 'wheat': '#F5DEB3', 'MediumSeaGreen': '#3CB371', 'DeepPink4': '#8B0A50', 'salmon': '#FA8072', 'grey44': '#707070', 'DarkSlateBlue': '#483D8B', 'PaleVioletRed4': '#8B475D', 'PaleVioletRed1': '#FF82AB', 'PaleVioletRed2': '#EE799F', 'PaleVioletRed3': '#CD6889', 'AntiqueWhite': '#FAEBD7', 'PaleTurquoise4': '#668B8B', 'PaleTurquoise3': '#96CDCD', 'PaleTurquoise2': '#AEEEEE', 'PaleTurquoise1': '#BBFFFF', 'gray56': '#8F8F8F', 'plum': '#DDA0DD', 'beige': '#F5F5DC', 'SpringGreen': '#00FF7F', 'azure': '#F0FFFF', 'honeydew1': '#F0FFF0', 'honeydew2': '#E0EEE0', 'honeydew3': '#C1CDC1', 'honeydew4': '#838B83', 'gray57': '#919191', 'snow4': '#8B8989', 'snow2': '#EEE9E9', 'snow3': '#CDC9C9', 'snow1': '#FFFAFA', 'SandyBrown': '#F4A460', 'grey13': '#212121', 'SeaGreen4': '#2E8B57', 'SeaGreen3': '#43CD80', 'SeaGreen2': '#4EEE94', 'SeaGreen1': '#54FF9F', 'grey29': '#4A4A4A', 'grey28': '#474747', 'grey25': '#404040', 'grey24': '#3D3D3D', 'grey27': '#454545', 'grey26': '#424242', 'fuchsia': '#FF00FF', 'grey20': '#333333', 'grey23': '#3B3B3B', 'grey22': '#383838', 'gray78': '#C7C7C7', 'gray79': '#C9C9C9', 'gray76': '#C2C2C2', 'gray77': '#C4C4C4', 'gray74': '#BDBDBD', 'gray75': '#BFBFBF', 'gray72': '#B8B8B8', 'gray73': '#BABABA', 'gray70': '#B3B3B3', 'gray71': '#B5B5B5', 'ivory': '#FFFFF0', 'LemonChiffon3': '#CDC9A5', 'DeepSkyBlue4': '#00688B', 'DeepSkyBlue3': '#009ACD', 'DeepSkyBlue2': '#00B2EE', 'DeepSkyBlue1': '#00BFFF', 'cornsilk4': '#8B8878', 'cornsilk2': '#EEE8CD', 'cornsilk3': '#CDC8B1', 'CadetBlue': '#5F9EA0', 'cornsilk1': '#FFF8DC', 'grey90': '#E5E5E5', 'grey91': '#E8E8E8', 'grey92': '#EBEBEB', 'goldenrod': '#DAA520', 'grey94': '#F0F0F0', 'grey95': '#F2F2F2', 'grey96': '#F5F5F5', 'grey97': '#F7F7F7', 'grey98': '#FAFAFA', 'grey99': '#FCFCFC', 'red3': '#CD0000', 'LightSteelBlue2': '#BCD2EE', 'LightSteelBlue3': '#A2B5CD', 'LightSteelBlue4': '#6E7B8B', 'LightBlue3': '#9AC0CD', 'maroon': '#800000', 'LightSkyBlue': '#87CEFA', 'LightGoldenrodYellow': '#FAFAD2', 'MediumBlue': '#0000CD', 'LightSlateGray': '#778899', 'DarkOrange2': '#EE7600', 'PaleVioletRed': '#DB7093'} -var divlist = ['#d0', '#d1', '#d2', '#d3', '#d4', '#d5', '#d6', '#d7', '#d8', '#d9', '#d10', '#d11', '#d12', '#d13', '#d14', '#d15', '#d16', '#d17', '#d18', '#d19', '#d20', '#d21', '#d22', '#d23', '#d24', '#d25', '#d26', '#d27', '#d28', '#d29', '#d30', '#d31', '#d32', '#d33', '#d34', '#d35', '#d36', '#d37', '#d38', '#d39', '#d40', '#d41', '#d42', '#d43', '#d44', '#d45', '#d46', '#d47', '#d48', '#d49', '#d50', '#d51', '#d52', '#d53', '#d54', '#d55', '#d56', '#d57', '#d58', '#d59', '#d60', '#d61', '#d62', '#d63', '#d64', '#d65', '#d66', '#d67', '#d68', '#d69', '#d70', '#d71', '#d72', '#d73', '#d74', '#d75', '#d76', '#d77', '#d78', '#d79', '#d80', '#d81', '#d82', '#d83', '#d84', '#d85', '#d86', '#d87', '#d88', '#d89', '#d90', '#d91', '#d92', '#d93', '#d94', '#d95', '#d96', '#d97', '#d98', '#d99', '#d100', '#d101', '#d102', '#d103', '#d104', '#d105', '#d106', '#d107', '#d108', '#d109', '#d110', '#d111', '#d112', '#d113', '#d114', '#d115', '#d116', '#d117', '#d118', '#d119', '#d120', '#d121', '#d122', '#d123', '#d124', '#d125', '#d126', '#d127', '#d128', '#d129', '#d130', '#d131', '#d132', '#d133', '#d134', '#d135', '#d136', '#d137', '#d138', '#d139', '#d140', '#d141', '#d142', '#d143', '#d144', '#d145', '#d146', '#d147', '#d148', '#d149', '#d150', '#d151', '#d152', '#d153', '#d154', '#d155', '#d156', '#d157', '#d158', '#d159', '#d160', '#d161', '#d162', '#d163', '#d164', '#d165', '#d166', '#d167', '#d168', '#d169', '#d170', '#d171', '#d172', '#d173', '#d174', '#d175', '#d176', '#d177', '#d178', '#d179', '#d180', '#d181', '#d182', '#d183', '#d184', '#d185', '#d186', '#d187', '#d188', '#d189', '#d190', '#d191', '#d192', '#d193', '#d194', '#d195', '#d196', '#d197', '#d198', '#d199', '#d200', '#d201', '#d202', '#d203', '#d204', '#d205', '#d206', '#d207', '#d208', '#d209', '#d210', '#d211', '#d212', '#d213', '#d214', '#d215', '#d216', '#d217', '#d218', '#d219', '#d220', '#d221', '#d222', '#d223', '#d224', '#d225', '#d226', '#d227', '#d228', '#d229', '#d230', '#d231', '#d232', '#d233', '#d234', '#d235', '#d236', '#d237', '#d238', '#d239', '#d240', '#d241', '#d242', '#d243', '#d244', '#d245', '#d246', '#d247', '#d248', '#d249', '#d250', '#d251', '#d252', '#d253', '#d254', '#d255', '#d256', '#d257', '#d258', '#d259', '#d260', '#d261', '#d262', '#d263', '#d264', '#d265', '#d266', '#d267', '#d268', '#d269', '#d270', '#d271', '#d272', '#d273', '#d274', '#d275', '#d276', '#d277', '#d278', '#d279', '#d280', '#d281', '#d282', '#d283', '#d284', '#d285', '#d286', '#d287', '#d288', '#d289', '#d290', '#d291', '#d292', '#d293', '#d294', '#d295', '#d296', '#d297', '#d298', '#d299', '#d300', '#d301', '#d302', '#d303', '#d304', '#d305', '#d306', '#d307', '#d308', '#d309', '#d310', '#d311', '#d312', '#d313', '#d314', '#d315', '#d316', '#d317', '#d318', '#d319', '#d320', '#d321', '#d322', '#d323', '#d324', '#d325', '#d326', '#d327', '#d328', '#d329', '#d330', '#d331', '#d332', '#d333', '#d334', '#d335', '#d336', '#d337', '#d338', '#d339', '#d340', '#d341', '#d342', '#d343', '#d344', '#d345', '#d346', '#d347', '#d348', '#d349', '#d350', '#d351', '#d352', '#d353', '#d354', '#d355', '#d356', '#d357', '#d358', '#d359', '#d360', '#d361', '#d362', '#d363', '#d364', '#d365', '#d366', '#d367', '#d368', '#d369', '#d370', '#d371', '#d372', '#d373', '#d374', '#d375', '#d376', '#d377', '#d378', '#d379', '#d380', '#d381', '#d382', '#d383', '#d384', '#d385', '#d386', '#d387', '#d388', '#d389', '#d390', '#d391', '#d392', '#d393', '#d394', '#d395', '#d396', '#d397', '#d398', '#d399', '#d400', '#d401', '#d402', '#d403', '#d404', '#d405', '#d406', '#d407', '#d408', '#d409', '#d410', '#d411', '#d412', '#d413', '#d414', '#d415', '#d416', '#d417', '#d418', '#d419', '#d420', '#d421', '#d422', '#d423', '#d424', '#d425', '#d426', '#d427', '#d428', '#d429', '#d430', '#d431', '#d432', '#d433', '#d434', '#d435', '#d436', '#d437', '#d438', '#d439', '#d440', '#d441', '#d442', '#d443', '#d444', '#d445', '#d446', '#d447', '#d448', '#d449', '#d450', '#d451', '#d452', '#d453', '#d454', '#d455', '#d456', '#d457', '#d458', '#d459', '#d460', '#d461', '#d462', '#d463', '#d464', '#d465', '#d466', '#d467', '#d468', '#d469', '#d470', '#d471', '#d472', '#d473', '#d474', '#d475', '#d476', '#d477', '#d478', '#d479', '#d480', '#d481', '#d482', '#d483', '#d484', '#d485', '#d486', '#d487', '#d488', '#d489', '#d490', '#d491', '#d492', '#d493', '#d494', '#d495', '#d496', '#d497', '#d498', '#d499', '#d500', '#d501', '#d502', '#d503', '#d504', '#d505', '#d506', '#d507', '#d508', '#d509', '#d510', '#d511', '#d512', '#d513', '#d514', '#d515', '#d516', '#d517', '#d518', '#d519', '#d520', '#d521', '#d522', '#d523', '#d524', '#d525', '#d526', '#d527', '#d528', '#d529', '#d530', '#d531', '#d532', '#d533', '#d534', '#d535', '#d536', '#d537', '#d538', '#d539', '#d540', '#d541', '#d542', '#d543', '#d544', '#d545', '#d546', '#d547', '#d548', '#d549', '#d550', '#d551', '#d552', '#d553', '#d554', '#d555', '#d556', '#d557', '#d558', '#d559', '#d560', '#d561', '#d562', '#d563', '#d564', '#d565', '#d566', '#d567', '#d568', '#d569', '#d570', '#d571', '#d572', '#d573', '#d574', '#d575', '#d576', '#d577', '#d578', '#d579', '#d580', '#d581', '#d582', '#d583', '#d584', '#d585', '#d586', '#d587', '#d588', '#d589', '#d590', '#d591', '#d592', '#d593', '#d594', '#d595', '#d596', '#d597', '#d598', '#d599', '#d600', '#d601', '#d602', '#d603', '#d604', '#d605', '#d606', '#d607', '#d608', '#d609', '#d610', '#d611', '#d612', '#d613', '#d614', '#d615', '#d616', '#d617', '#d618', '#d619', '#d620', '#d621', '#d622', '#d623', '#d624', '#d625', '#d626', '#d627', '#d628', '#d629', '#d630', '#d631', '#d632', '#d633', '#d634', '#d635', '#d636', '#d637', '#d638', '#d639', '#d640', '#d641', '#d642', '#d643', '#d644', '#d645', '#d646', '#d647', '#d648', '#d649', '#d650', '#d651', '#d652', '#d653', '#d654', '#d655', '#d656', '#d657', '#d658', '#d659', '#d660', '#d661', '#d662', '#d663', '#d664', '#d665', '#d666', '#d667', '#d668', '#d669', '#d670', '#d671', '#d672', '#d673'] -var divtoname = {'#d322': 'khaki4', '#d600': 'gray34', '#d118': 'MediumPurple1', '#d119': 'MediumPurple2', '#d114': 'purple3', '#d115': 'purple4', '#d116': 'purple1', '#d117': 'MediumPurple', '#d110': 'purple', '#d111': 'indigo', '#d112': 'BlueViolet', '#d113': 'purple2', '#d529': 'grey67', '#d231': 'DarkSlateGray', '#d339': 'LightGoldenrod3', '#d233': 'MediumTurquoise', '#d232': 'DarkSlateGrey', '#d235': 'turquoise', '#d234': 'LightSeaGreen', '#d237': 'aquamarine', '#d236': 'aquamarine4', '#d239': 'aquamarine2', '#d238': 'aquamarine1', '#d332': 'gold1', '#d333': 'gold2', '#d334': 'gold3', '#d335': 'gold4', '#d336': 'LightGoldenrod', '#d337': 'LightGoldenrod4', '#d424': 'LightSalmon3', '#d425': 'LightSalmon', '#d426': 'LightSalmon1', '#d427': 'LightSalmon4', '#d420': 'sienna', '#d421': 'sienna1', '#d422': 'sienna2', '#d423': 'sienna3', '#d587': 'grey41', '#d586': 'gray41', '#d585': 'DimGrey', '#d584': 'DimGray', '#d428': 'LightSalmon2', '#d429': 'coral', '#d581': 'grey43', '#d580': 'gray43', '#d89': 'thistle4', '#d88': 'plum3', '#d349': 'goldenrod4', '#d348': 'goldenrod3', '#d81': 'thistle2', '#d80': 'thistle1', '#d83': 'plum2', '#d82': 'plum1', '#d85': 'thistle3', '#d84': 'thistle', '#d87': 'violet', '#d86': 'plum', '#d601': 'grey34', '#d67': 'DeepPink3', '#d66': 'DeepPink2', '#d65': 'DeepPink1', '#d64': 'DeepPink', '#d63': 'HotPink', '#d62': 'HotPink4', '#d61': 'HotPink1', '#d60': 'HotPink2', '#d69': 'maroon1', '#d68': 'DeepPink4', '#d510': 'grey76', '#d511': 'silver', '#d512': 'gray75', '#d513': 'grey75', '#d514': 'gray74', '#d515': 'grey74', '#d516': 'gray73', '#d517': 'grey73', '#d518': 'gray72', '#d519': 'grey72', '#d150': 'LightSteelBlue2', '#d151': 'LightSteelBlue3', '#d152': 'LightSteelBlue4', '#d153': 'SlateGray4', '#d154': 'SlateGray1', '#d155': 'SlateGray2', '#d156': 'SlateGray3', '#d157': 'LightSlateGray', '#d158': 'LightSlateGrey', '#d159': 'SlateGray', '#d565': 'gray50', '#d564': 'fractal', '#d567': 'gray', '#d566': 'grey50', '#d561': 'grey52', '#d560': 'gray52', '#d563': 'grey51', '#d562': 'gray51', '#d604': 'gray32', '#d605': 'grey32', '#d606': 'gray31', '#d607': 'grey31', '#d569': 'grey49', '#d568': 'gray49', '#d602': 'gray33', '#d603': 'grey33', '#d125': 'SlateBlue', '#d124': 'MediumSlateBlue', '#d127': 'SlateBlue2', '#d126': 'SlateBlue1', '#d121': 'MediumPurple4', '#d120': 'MediumPurple3', '#d123': 'LightSlateBlue', '#d122': 'DarkSlateBlue', '#d359': 'wheat1', '#d129': 'SlateBlue4', '#d128': 'SlateBlue3', '#d301': 'LightYellow', '#d300': 'ivory1', '#d303': 'beige', '#d302': 'LightYellow1', '#d305': 'LightGoldenrodYellow', '#d304': 'ivory2', '#d307': 'ivory3', '#d306': 'LightYellow2', '#d309': 'ivory4', '#d308': 'LightYellow3', '#d462': 'grey98', '#d351': 'DarkGoldenrod1', '#d464': 'grey97', '#d465': 'gray96', '#d466': 'grey96', '#d467': 'WhiteSmoke', '#d463': 'gray97', '#d268': 'PaleGreen3', '#d269': 'honeydew4', '#d266': 'DarkSeaGreen3', '#d267': 'DarkSeaGreen', '#d264': 'LightGreen', '#d265': 'PaleGreen2', '#d262': 'PaleGreen', '#d263': 'honeydew3', '#d260': 'DarkSeaGreen2', '#d261': 'PaleGreen1', '#d598': 'gray35', '#d29': 'firebrick4', '#d28': 'brown4', '#d23': 'red2', '#d22': 'firebrick3', '#d21': 'RosyBrown4', '#d20': 'red1', '#d27': 'IndianRed4', '#d26': 'red3', '#d25': 'brown', '#d24': 'firebrick', '#d599': 'grey35', '#d338': 'LightGoldenrod1', '#d419': 'sienna4', '#d418': 'seashell1', '#d230': 'teal', '#d415': 'chocolate4', '#d414': 'chocolate3', '#d417': 'seashell', '#d416': 'SaddleBrown', '#d411': 'chocolate', '#d410': 'seashell3', '#d413': 'chocolate2', '#d412': 'chocolate1', '#d398': 'tan1', '#d399': 'tan2', '#d392': 'DarkOrange1', '#d393': 'linen', '#d390': 'bisque1', '#d391': 'bisque3', '#d396': 'DarkOrange4', '#d397': 'peru', '#d394': 'DarkOrange2', '#d395': 'DarkOrange3', '#d194': 'CadetBlue2', '#d195': 'CadetBlue3', '#d196': 'CadetBlue4', '#d197': 'turquoise1', '#d190': 'LightBlue', '#d191': 'LightBlue4', '#d192': 'PowderBlue', '#d193': 'CadetBlue1', '#d198': 'turquoise2', '#d199': 'turquoise3', '#d330': 'cornsilk4', '#d331': 'gold', '#d640': 'gray14', '#d641': 'grey14', '#d642': 'gray13', '#d643': 'grey13', '#d644': 'gray12', '#d645': 'grey12', '#d646': 'gray11', '#d647': 'grey11', '#d648': 'gray10', '#d649': 'grey10', '#d668': 'black', '#d486': 'gainsboro', '#d487': 'gray86', '#d484': 'gray87', '#d485': 'grey87', '#d482': 'gray88', '#d483': 'grey88', '#d480': 'gray89', '#d481': 'grey89', '#d521': 'grey71', '#d520': 'gray71', '#d523': 'grey70', '#d522': 'gray70', '#d525': 'grey69', '#d524': 'gray69', '#d488': 'grey86', '#d489': 'gray85', '#d430': 'OrangeRed', '#d660': 'gray4', '#d169': 'SteelBlue1', '#d168': 'SteelBlue', '#d661': 'grey4', '#d161': 'DodgerBlue', '#d160': 'SlateGrey', '#d163': 'DodgerBlue2', '#d162': 'DodgerBlue1', '#d165': 'DodgerBlue3', '#d164': 'DodgerBlue4', '#d167': 'SteelBlue4', '#d166': 'AliceBlue', '#d635': 'grey17', '#d634': 'gray17', '#d637': 'grey16', '#d636': 'gray16', '#d631': 'grey19', '#d630': 'gray19', '#d633': 'grey18', '#d632': 'gray18', '#d639': 'grey15', '#d638': 'gray15', '#d368': 'PapayaWhip', '#d222': 'cyan', '#d223': 'cyan1', '#d220': 'LightCyan4', '#d221': 'aqua', '#d226': 'DarkSlateGray4', '#d227': 'cyan3', '#d224': 'PaleTurquoise4', '#d225': 'cyan2', '#d228': 'cyan4', '#d229': 'DarkCyan', '#d590': 'gray39', '#d538': 'gray63', '#d539': 'grey63', '#d591': 'grey39', '#d451': 'MistyRose', '#d450': 'MistyRose2', '#d453': 'salmon', '#d452': 'MistyRose1', '#d455': 'white', '#d454': 'MistyRose3', '#d457': 'grey100', '#d456': 'gray100', '#d459': 'gray99', '#d458': 'grey100', '#d592': 'gray38', '#d593': 'grey38', '#d594': 'gray37', '#d595': 'grey37', '#d596': 'gray36', '#d597': 'grey36', '#d297': 'YellowGreen', '#d296': 'OliveDrab3', '#d295': 'OliveDrab2', '#d294': 'OliveDrab1', '#d293': 'OliveDrab', '#d292': 'DarkOliveGreen', '#d291': 'DarkOliveGreen4', '#d290': 'DarkOliveGreen2', '#d356': 'wheat2', '#d357': 'OldLace', '#d354': 'DarkGoldenrod4', '#d355': 'FloralWhite', '#d352': 'DarkGoldenrod2', '#d353': 'DarkGoldenrod3', '#d299': 'ivory', '#d298': 'OliveDrab4', '#d468': 'gray95', '#d534': 'gray65', '#d535': 'grey65', '#d52': 'LavenderBlush2', '#d53': 'LavenderBlush4', '#d50': 'LavenderBlush1', '#d51': 'LavenderBlush3', '#d56': 'VioletRed3', '#d57': 'VioletRed1', '#d54': 'maroon', '#d55': 'HotPink3', '#d58': 'VioletRed2', '#d59': 'VioletRed4', '#d469': 'grey95', '#d558': 'gray53', '#d559': 'grey53', '#d576': 'gray45', '#d577': 'grey45', '#d574': 'gray46', '#d575': 'grey46', '#d572': 'gray47', '#d573': 'grey47', '#d570': 'gray48', '#d571': 'grey48', '#d671': 'opaque', '#d670': 'grey0', '#d673': 'transparent', '#d672': 'none', '#d578': 'gray44', '#d579': 'grey44', '#d589': 'grey40', '#d588': 'gray40', '#d4': 'RosyBrown2', '#d5': 'snow3', '#d6': 'LightCoral', '#d7': 'IndianRed1', '#d0': 'snow', '#d1': 'snow1', '#d2': 'snow2', '#d3': 'RosyBrown1', '#d8': 'RosyBrown3', '#d9': 'IndianRed2', '#d136': 'MediumBlue', '#d137': 'blue4', '#d134': 'blue2', '#d135': 'blue3', '#d132': 'blue', '#d133': 'blue1', '#d130': 'GhostWhite', '#d131': 'lavender', '#d583': 'grey42', '#d138': 'DarkBlue', '#d139': 'MidnightBlue', '#d312': 'yellow1', '#d313': 'yellow2', '#d310': 'LightYellow4', '#d311': 'yellow', '#d316': 'olive', '#d317': 'DarkKhaki', '#d314': 'yellow3', '#d315': 'yellow4', '#d318': 'khaki2', '#d319': 'LemonChiffon4', '#d259': 'DarkSeaGreen1', '#d258': 'honeydew2', '#d253': 'SeaGreen4', '#d252': 'SeaGreen1', '#d251': 'SeaGreen3', '#d250': 'SeaGreen', '#d257': 'honeydew1', '#d256': 'honeydew', '#d255': 'MediumForestGreen', '#d254': 'SeaGreen2', '#d345': 'goldenrod', '#d344': 'cornsilk1', '#d612': 'gray28', '#d347': 'goldenrod2', '#d461': 'gray98', '#d346': 'goldenrod1', '#d479': 'grey90', '#d341': 'cornsilk3', '#d478': 'gray90', '#d340': 'LightGoldenrod2', '#d343': 'cornsilk', '#d342': 'cornsilk2', '#d528': 'gray67', '#d408': 'seashell4', '#d409': 'seashell2', '#d406': 'PeachPuff3', '#d407': 'SandyBrown', '#d404': 'PeachPuff4', '#d405': 'PeachPuff2', '#d402': 'PeachPuff', '#d403': 'PeachPuff1', '#d400': 'tan3', '#d401': 'tan4', '#d552': 'gray56', '#d460': 'grey99', '#d16': 'firebrick2', '#d17': 'snow4', '#d14': 'IndianRed', '#d15': 'IndianRed3', '#d12': 'firebrick1', '#d13': 'brown2', '#d10': 'RosyBrown', '#d11': 'brown1', '#d532': 'gray66', '#d533': 'grey66', '#d530': 'DarkGray', '#d531': 'DarkGrey', '#d536': 'gray64', '#d537': 'grey64', '#d18': 'brown3', '#d19': 'red', '#d329': 'MediumGoldenRod', '#d328': 'LemonChiffon2', '#d178': 'LightSkyBlue1', '#d179': 'LightSkyBlue2', '#d172': 'SkyBlue4', '#d173': 'SkyBlue1', '#d170': 'SteelBlue2', '#d171': 'SteelBlue3', '#d176': 'LightSkyBlue', '#d177': 'LightSkyBlue4', '#d174': 'SkyBlue2', '#d175': 'SkyBlue3', '#d626': 'gray21', '#d627': 'grey21', '#d624': 'gray22', '#d625': 'grey22', '#d622': 'gray23', '#d623': 'grey23', '#d620': 'gray24', '#d621': 'grey24', '#d628': 'gray20', '#d629': 'grey20', '#d219': 'azure4', '#d218': 'DarkSlateGray3', '#d217': 'PaleTurquoise3', '#d216': 'DarkSlateGray2', '#d215': 'LightCyan3', '#d214': 'azure3', '#d213': 'DarkSlateGray1', '#d212': 'PaleTurquoise2', '#d211': 'PaleTurquoise', '#d210': 'PaleTurquoise1', '#d669': 'gray0', '#d582': 'gray42', '#d442': 'coral3', '#d443': 'coral4', '#d440': 'coral1', '#d441': 'coral2', '#d446': 'tomato1', '#d447': 'tomato2', '#d444': 'tomato4', '#d445': 'tomato', '#d448': 'tomato3', '#d449': 'MistyRose4', '#d280': 'DarkGreen', '#d281': 'LawnGreen', '#d282': 'chartreuse', '#d283': 'chartreuse1', '#d284': 'chartreuse2', '#d285': 'chartreuse3', '#d286': 'chartreuse4', '#d287': 'GreenYellow', '#d288': 'DarkOliveGreen3', '#d289': 'DarkOliveGreen1', '#d361': 'orange', '#d360': 'wheat3', '#d367': 'moccasin', '#d366': 'wheat4', '#d365': 'orange4', '#d364': 'orange3', '#d49': 'LavenderBlush', '#d48': 'PaleVioletRed3', '#d45': 'PaleVioletRed', '#d44': 'PaleVioletRed4', '#d47': 'PaleVioletRed1', '#d46': 'PaleVioletRed2', '#d41': 'pink2', '#d40': 'pink1', '#d43': 'pink4', '#d42': 'pink3', '#d358': 'wheat', '#d527': 'grey68', '#d526': 'gray68', '#d614': 'gray27', '#d543': 'grey61', '#d542': 'gray61', '#d541': 'grey62', '#d540': 'gray62', '#d547': 'grey59', '#d546': 'gray59', '#d545': 'grey60', '#d544': 'gray60', '#d662': 'gray3', '#d663': 'grey3', '#d549': 'grey58', '#d548': 'gray58', '#d666': 'gray1', '#d667': 'grey1', '#d664': 'gray2', '#d665': 'grey2', '#d103': 'MediumOrchid4', '#d102': 'MediumOrchid3', '#d101': 'MediumOrchid2', '#d100': 'MediumOrchid1', '#d107': 'DarkOrchid3', '#d106': 'DarkOrchid1', '#d105': 'DarkOrchid', '#d104': 'DarkViolet', '#d109': 'DarkOrchid4', '#d108': 'DarkOrchid2', '#d244': 'SpringGreen', '#d245': 'SpringGreen1', '#d246': 'SpringGreen2', '#d247': 'SpringGreen3', '#d240': 'aquamarine3', '#d241': 'MediumAquamarine', '#d242': 'MediumSpringGreen', '#d243': 'MintCream', '#d327': 'LemonChiffon3', '#d326': 'khaki', '#d325': 'LemonChiffon1', '#d324': 'LemonChiffon', '#d248': 'SpringGreen4', '#d249': 'MediumSeaGreen', '#d321': 'khaki3', '#d320': 'khaki1', '#d350': 'DarkGoldenrod', '#d439': 'salmon4', '#d438': 'salmon3', '#d98': 'purple', '#d99': 'MediumOrchid', '#d96': 'DarkMagenta', '#d97': 'magenta4', '#d94': 'magenta2', '#d95': 'magenta3', '#d92': 'magenta1', '#d93': 'plum4', '#d90': 'fuchsia', '#d91': 'magenta', '#d433': 'OrangeRed3', '#d432': 'OrangeRed2', '#d431': 'OrangeRed1', '#d74': 'VioletRed', '#d75': 'orchid2', '#d76': 'orchid', '#d77': 'orchid1', '#d70': 'maroon2', '#d71': 'maroon3', '#d72': 'maroon4', '#d73': 'MediumVioletRed', '#d437': 'salmon2', '#d78': 'orchid3', '#d79': 'orchid4', '#d436': 'salmon1', '#d435': 'DarkSalmon', '#d434': 'OrangeRed4', '#d507': 'gray77', '#d506': 'grey78', '#d505': 'gray78', '#d504': 'grey79', '#d503': 'gray79', '#d502': 'grey80', '#d501': 'gray80', '#d500': 'grey81', '#d509': 'gray76', '#d508': 'grey77', '#d473': 'grey93', '#d369': 'NavajoWhite3', '#d147': 'CornflowerBlue', '#d146': 'RoyalBlue4', '#d145': 'RoyalBlue3', '#d144': 'RoyalBlue2', '#d143': 'RoyalBlue1', '#d142': 'RoyalBlue', '#d141': 'NavyBlue', '#d140': 'navy', '#d149': 'LightSteelBlue1', '#d148': 'LightSteelBlue', '#d472': 'gray93', '#d613': 'grey28', '#d363': 'orange2', '#d611': 'grey29', '#d610': 'gray29', '#d617': 'grey26', '#d616': 'gray26', '#d615': 'grey27', '#d362': 'orange1', '#d619': 'grey25', '#d618': 'gray25', '#d208': 'azure2', '#d209': 'LightCyan2', '#d200': 'turquoise4', '#d201': 'cadet blue', '#d202': 'CadetBlue', '#d203': 'DarkTurquoise', '#d204': 'azure', '#d205': 'azure1', '#d206': 'LightCyan', '#d207': 'LightCyan1', '#d608': 'gray30', '#d609': 'grey30', '#d374': 'NavajoWhite4', '#d375': 'AntiqueWhite4', '#d376': 'AntiqueWhite', '#d377': 'tan', '#d370': 'BlanchedAlmond', '#d371': 'NavajoWhite', '#d372': 'NavajoWhite1', '#d373': 'NavajoWhite2', '#d477': 'grey91', '#d476': 'gray91', '#d475': 'grey92', '#d474': 'gray92', '#d378': 'bisque4', '#d379': 'burlywood', '#d471': 'grey94', '#d470': 'gray94', '#d279': 'green', '#d278': 'green4', '#d275': 'PaleGreen4', '#d274': 'green2', '#d277': 'ForestGreen', '#d276': 'green3', '#d271': 'lime', '#d270': 'green1', '#d273': 'DarkSeaGreen4', '#d272': 'LimeGreen', '#d38': 'pink', '#d39': 'crimson', '#d30': 'DarkRed', '#d31': 'red4', '#d32': 'maroon', '#d33': 'LightPink1', '#d34': 'LightPink3', '#d35': 'LightPink4', '#d36': 'LightPink2', '#d37': 'LightPink', '#d658': 'gray5', '#d389': 'bisque', '#d388': 'bisque2', '#d381': 'burlywood1', '#d380': 'AntiqueWhite2', '#d383': 'burlywood2', '#d382': 'burlywood3', '#d385': 'burlywood4', '#d384': 'AntiqueWhite1', '#d387': 'DarkOrange', '#d386': 'AntiqueWhite3', '#d189': 'LightBlue2', '#d188': 'LightBlue1', '#d183': 'DeepSkyBlue', '#d182': 'LightBlue3', '#d181': 'SkyBlue', '#d180': 'LightSkyBlue3', '#d187': 'DeepSkyBlue3', '#d186': 'DeepSkyBlue4', '#d185': 'DeepSkyBlue2', '#d184': 'DeepSkyBlue1', '#d657': 'grey6', '#d656': 'gray6', '#d655': 'grey7', '#d654': 'gray7', '#d653': 'grey8', '#d652': 'gray8', '#d651': 'grey9', '#d650': 'gray9', '#d550': 'gray57', '#d659': 'grey5', '#d551': 'grey57', '#d495': 'LightGray', '#d494': 'grey83', '#d497': 'gray82', '#d496': 'LightGrey', '#d491': 'gray84', '#d490': 'grey85', '#d493': 'gray83', '#d492': 'grey84', '#d554': 'gray55', '#d555': 'grey55', '#d556': 'gray54', '#d557': 'grey54', '#d499': 'gray81', '#d498': 'grey82', '#d323': 'PaleGoldenrod', '#d553': 'grey56'} \ No newline at end of file diff --git a/share/frontend/imgrid/colors/1.html b/share/frontend/imgrid/colors/1.html deleted file mode 100755 index 284b791..0000000 --- a/share/frontend/imgrid/colors/1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - -
-
-
-
-
- -
-
-
-
-
-
-
-
- -
- - - - diff --git a/share/frontend/imgrid/colors/blackshim.png b/share/frontend/imgrid/colors/blackshim.png deleted file mode 100755 index a122193..0000000 Binary files a/share/frontend/imgrid/colors/blackshim.png and /dev/null differ diff --git a/share/frontend/imgrid/colors/colors/1.html b/share/frontend/imgrid/colors/colors/1.html deleted file mode 100755 index 284b791..0000000 --- a/share/frontend/imgrid/colors/colors/1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - -
-
-
-
-
- -
-
-
-
-
-
-
-
- -
- - - - diff --git a/share/frontend/imgrid/colors/colors/blackshim.png b/share/frontend/imgrid/colors/colors/blackshim.png deleted file mode 100755 index a122193..0000000 Binary files a/share/frontend/imgrid/colors/colors/blackshim.png and /dev/null differ diff --git a/share/frontend/imgrid/colors/colors/grayshim.png b/share/frontend/imgrid/colors/colors/grayshim.png deleted file mode 100755 index 6f71223..0000000 Binary files a/share/frontend/imgrid/colors/colors/grayshim.png and /dev/null differ diff --git a/share/frontend/imgrid/colors/colors/hoverbutton.png b/share/frontend/imgrid/colors/colors/hoverbutton.png deleted file mode 100755 index b14281e..0000000 Binary files a/share/frontend/imgrid/colors/colors/hoverbutton.png and /dev/null differ diff --git a/share/frontend/imgrid/colors/colors/index.html b/share/frontend/imgrid/colors/colors/index.html deleted file mode 100755 index 93b1a9b..0000000 --- a/share/frontend/imgrid/colors/colors/index.html +++ /dev/null @@ -1,3507 +0,0 @@ - - - - -
-
-
-snow
-
-snow1
-
-snow2
-
-RosyBrown1
-
-RosyBrown2
-
-snow3
-
-LightCoral
-
-IndianRed1
-
-RosyBrown3
-
-IndianRed2
-
-RosyBrown
-
-brown1
-
-firebrick1
-
-brown2
-
-IndianRed
-
-IndianRed3
-
-firebrick2
-
-snow4
-
-brown3
-
-red
-
-red1
-
-RosyBrown4
-
-firebrick3
-
-red2
-
-firebrick
-
-brown
-
-red3
-
-IndianRed4
-
-brown4
-
-firebrick4
-
-DarkRed
-
-red4
-
-maroon
-
-LightPink1
-
-LightPink3
-
-LightPink4
-
-LightPink2
-
-LightPink
-
-pink
-
-crimson
-
-pink1
-
-pink2
-
-pink3
-
-pink4
-
-PaleVioletRed4
-
-PaleVioletRed
-
-PaleVioletRed2
-
-PaleVioletRed1
-
-PaleVioletRed3
-
-LavenderBlush
-
-LavenderBlush1
-
-LavenderBlush3
-
-LavenderBlush2
-
-LavenderBlush4
-
-maroon
-
-HotPink3
-
-VioletRed3
-
-VioletRed1
-
-VioletRed2
-
-VioletRed4
-
-HotPink2
-
-HotPink1
-
-HotPink4
-
-HotPink
-
-DeepPink
-
-DeepPink1
-
-DeepPink2
-
-DeepPink3
-
-DeepPink4
-
-maroon1
-
-maroon2
-
-maroon3
-
-maroon4
-
-MediumVioletRed
-
-VioletRed
-
-orchid2
-
-orchid
-
-orchid1
-
-orchid3
-
-orchid4
-
-thistle1
-
-thistle2
-
-plum1
-
-plum2
-
-thistle
-
-thistle3
-
-plum
-
-violet
-
-plum3
-
-thistle4
-
-fuchsia
-
-magenta
-
-magenta1
-
-plum4
-
-magenta2
-
-magenta3
-
-DarkMagenta
-
-magenta4
-
-purple
-
-MediumOrchid
-
-MediumOrchid1
-
-MediumOrchid2
-
-MediumOrchid3
-
-MediumOrchid4
-
-DarkViolet
-
-DarkOrchid
-
-DarkOrchid1
-
-DarkOrchid3
-
-DarkOrchid2
-
-DarkOrchid4
-
-purple
-
-indigo
-
-BlueViolet
-
-purple2
-
-purple3
-
-purple4
-
-purple1
-
-MediumPurple
-
-MediumPurple1
-
-MediumPurple2
-
-MediumPurple3
-
-MediumPurple4
-
-DarkSlateBlue
-
-LightSlateBlue
-
-MediumSlateBlue
-
-SlateBlue
-
-SlateBlue1
-
-SlateBlue2
-
-SlateBlue3
-
-SlateBlue4
-
-GhostWhite
-
-lavender
-
-blue
-
-blue1
-
-blue2
-
-blue3
-
-MediumBlue
-
-blue4
-
-DarkBlue
-
-MidnightBlue
-
-navy
-
-NavyBlue
-
-RoyalBlue
-
-RoyalBlue1
-
-RoyalBlue2
-
-RoyalBlue3
-
-RoyalBlue4
-
-CornflowerBlue
-
-LightSteelBlue
-
-LightSteelBlue1
-
-LightSteelBlue2
-
-LightSteelBlue3
-
-LightSteelBlue4
-
-SlateGray4
-
-SlateGray1
-
-SlateGray2
-
-SlateGray3
-
-LightSlateGray
-
-LightSlateGrey
-
-SlateGray
-
-SlateGrey
-
-DodgerBlue
-
-DodgerBlue1
-
-DodgerBlue2
-
-DodgerBlue4
-
-DodgerBlue3
-
-AliceBlue
-
-SteelBlue4
-
-SteelBlue
-
-SteelBlue1
-
-SteelBlue2
-
-SteelBlue3
-
-SkyBlue4
-
-SkyBlue1
-
-SkyBlue2
-
-SkyBlue3
-
-LightSkyBlue
-
-LightSkyBlue4
-
-LightSkyBlue1
-
-LightSkyBlue2
-
-LightSkyBlue3
-
-SkyBlue
-
-LightBlue3
-
-DeepSkyBlue
-
-DeepSkyBlue1
-
-DeepSkyBlue2
-
-DeepSkyBlue4
-
-DeepSkyBlue3
-
-LightBlue1
-
-LightBlue2
-
-LightBlue
-
-LightBlue4
-
-PowderBlue
-
-CadetBlue1
-
-CadetBlue2
-
-CadetBlue3
-
-CadetBlue4
-
-turquoise1
-
-turquoise2
-
-turquoise3
-
-turquoise4
-
-cadet blue
-
-CadetBlue
-
-DarkTurquoise
-
-azure
-
-azure1
-
-LightCyan
-
-LightCyan1
-
-azure2
-
-LightCyan2
-
-PaleTurquoise1
-
-PaleTurquoise
-
-PaleTurquoise2
-
-DarkSlateGray1
-
-azure3
-
-LightCyan3
-
-DarkSlateGray2
-
-PaleTurquoise3
-
-DarkSlateGray3
-
-azure4
-
-LightCyan4
-
-aqua
-
-cyan
-
-cyan1
-
-PaleTurquoise4
-
-cyan2
-
-DarkSlateGray4
-
-cyan3
-
-cyan4
-
-DarkCyan
-
-teal
-
-DarkSlateGray
-
-DarkSlateGrey
-
-MediumTurquoise
-
-LightSeaGreen
-
-turquoise
-
-aquamarine4
-
-aquamarine
-
-aquamarine1
-
-aquamarine2
-
-aquamarine3
-
-MediumAquamarine
-
-MediumSpringGreen
-
-MintCream
-
-SpringGreen
-
-SpringGreen1
-
-SpringGreen2
-
-SpringGreen3
-
-SpringGreen4
-
-MediumSeaGreen
-
-SeaGreen
-
-SeaGreen3
-
-SeaGreen1
-
-SeaGreen4
-
-SeaGreen2
-
-MediumForestGreen
-
-honeydew
-
-honeydew1
-
-honeydew2
-
-DarkSeaGreen1
-
-DarkSeaGreen2
-
-PaleGreen1
-
-PaleGreen
-
-honeydew3
-
-LightGreen
-
-PaleGreen2
-
-DarkSeaGreen3
-
-DarkSeaGreen
-
-PaleGreen3
-
-honeydew4
-
-green1
-
-lime
-
-LimeGreen
-
-DarkSeaGreen4
-
-green2
-
-PaleGreen4
-
-green3
-
-ForestGreen
-
-green4
-
-green
-
-DarkGreen
-
-LawnGreen
-
-chartreuse
-
-chartreuse1
-
-chartreuse2
-
-chartreuse3
-
-chartreuse4
-
-GreenYellow
-
-DarkOliveGreen3
-
-DarkOliveGreen1
-
-DarkOliveGreen2
-
-DarkOliveGreen4
-
-DarkOliveGreen
-
-OliveDrab
-
-OliveDrab1
-
-OliveDrab2
-
-OliveDrab3
-
-YellowGreen
-
-OliveDrab4
-
-ivory
-
-ivory1
-
-LightYellow
-
-LightYellow1
-
-beige
-
-ivory2
-
-LightGoldenrodYellow
-
-LightYellow2
-
-ivory3
-
-LightYellow3
-
-ivory4
-
-LightYellow4
-
-yellow
-
-yellow1
-
-yellow2
-
-yellow3
-
-yellow4
-
-olive
-
-DarkKhaki
-
-khaki2
-
-LemonChiffon4
-
-khaki1
-
-khaki3
-
-khaki4
-
-PaleGoldenrod
-
-LemonChiffon
-
-LemonChiffon1
-
-khaki
-
-LemonChiffon3
-
-LemonChiffon2
-
-MediumGoldenRod
-
-cornsilk4
-
-gold
-
-gold1
-
-gold2
-
-gold3
-
-gold4
-
-LightGoldenrod
-
-LightGoldenrod4
-
-LightGoldenrod1
-
-LightGoldenrod3
-
-LightGoldenrod2
-
-cornsilk3
-
-cornsilk2
-
-cornsilk
-
-cornsilk1
-
-goldenrod
-
-goldenrod1
-
-goldenrod2
-
-goldenrod3
-
-goldenrod4
-
-DarkGoldenrod
-
-DarkGoldenrod1
-
-DarkGoldenrod2
-
-DarkGoldenrod3
-
-DarkGoldenrod4
-
-FloralWhite
-
-wheat2
-
-OldLace
-
-wheat
-
-wheat1
-
-wheat3
-
-orange
-
-orange1
-
-orange2
-
-orange3
-
-orange4
-
-wheat4
-
-moccasin
-
-PapayaWhip
-
-NavajoWhite3
-
-BlanchedAlmond
-
-NavajoWhite
-
-NavajoWhite1
-
-NavajoWhite2
-
-NavajoWhite4
-
-AntiqueWhite4
-
-AntiqueWhite
-
-tan
-
-bisque4
-
-burlywood
-
-AntiqueWhite2
-
-burlywood1
-
-burlywood3
-
-burlywood2
-
-AntiqueWhite1
-
-burlywood4
-
-AntiqueWhite3
-
-DarkOrange
-
-bisque2
-
-bisque
-
-bisque1
-
-bisque3
-
-DarkOrange1
-
-linen
-
-DarkOrange2
-
-DarkOrange3
-
-DarkOrange4
-
-peru
-
-tan1
-
-tan2
-
-tan3
-
-tan4
-
-PeachPuff
-
-PeachPuff1
-
-PeachPuff4
-
-PeachPuff2
-
-PeachPuff3
-
-SandyBrown
-
-seashell4
-
-seashell2
-
-seashell3
-
-chocolate
-
-chocolate1
-
-chocolate2
-
-chocolate3
-
-chocolate4
-
-SaddleBrown
-
-seashell
-
-seashell1
-
-sienna4
-
-sienna
-
-sienna1
-
-sienna2
-
-sienna3
-
-LightSalmon3
-
-LightSalmon
-
-LightSalmon1
-
-LightSalmon4
-
-LightSalmon2
-
-coral
-
-OrangeRed
-
-OrangeRed1
-
-OrangeRed2
-
-OrangeRed3
-
-OrangeRed4
-
-DarkSalmon
-
-salmon1
-
-salmon2
-
-salmon3
-
-salmon4
-
-coral1
-
-coral2
-
-coral3
-
-coral4
-
-tomato4
-
-tomato
-
-tomato1
-
-tomato2
-
-tomato3
-
-MistyRose4
-
-MistyRose2
-
-MistyRose
-
-MistyRose1
-
-salmon
-
-MistyRose3
-
-white
-
-gray100
-
-grey100
-
-grey100
-
-gray99
-
-grey99
-
-gray98
-
-grey98
-
-gray97
-
-grey97
-
-gray96
-
-grey96
-
-WhiteSmoke
-
-gray95
-
-grey95
-
-gray94
-
-grey94
-
-gray93
-
-grey93
-
-gray92
-
-grey92
-
-gray91
-
-grey91
-
-gray90
-
-grey90
-
-gray89
-
-grey89
-
-gray88
-
-grey88
-
-gray87
-
-grey87
-
-gainsboro
-
-gray86
-
-grey86
-
-gray85
-
-grey85
-
-gray84
-
-grey84
-
-gray83
-
-grey83
-
-LightGray
-
-LightGrey
-
-gray82
-
-grey82
-
-gray81
-
-grey81
-
-gray80
-
-grey80
-
-gray79
-
-grey79
-
-gray78
-
-grey78
-
-gray77
-
-grey77
-
-gray76
-
-grey76
-
-silver
-
-gray75
-
-grey75
-
-gray74
-
-grey74
-
-gray73
-
-grey73
-
-gray72
-
-grey72
-
-gray71
-
-grey71
-
-gray70
-
-grey70
-
-gray69
-
-grey69
-
-gray68
-
-grey68
-
-gray67
-
-grey67
-
-DarkGray
-
-DarkGrey
-
-gray66
-
-grey66
-
-gray65
-
-grey65
-
-gray64
-
-grey64
-
-gray63
-
-grey63
-
-gray62
-
-grey62
-
-gray61
-
-grey61
-
-gray60
-
-grey60
-
-gray59
-
-grey59
-
-gray58
-
-grey58
-
-gray57
-
-grey57
-
-gray56
-
-grey56
-
-gray55
-
-grey55
-
-gray54
-
-grey54
-
-gray53
-
-grey53
-
-gray52
-
-grey52
-
-gray51
-
-grey51
-
-fractal
-
-gray50
-
-grey50
-
-gray
-
-gray49
-
-grey49
-
-gray48
-
-grey48
-
-gray47
-
-grey47
-
-gray46
-
-grey46
-
-gray45
-
-grey45
-
-gray44
-
-grey44
-
-gray43
-
-grey43
-
-gray42
-
-grey42
-
-DimGray
-
-DimGrey
-
-gray41
-
-grey41
-
-gray40
-
-grey40
-
-gray39
-
-grey39
-
-gray38
-
-grey38
-
-gray37
-
-grey37
-
-gray36
-
-grey36
-
-gray35
-
-grey35
-
-gray34
-
-grey34
-
-gray33
-
-grey33
-
-gray32
-
-grey32
-
-gray31
-
-grey31
-
-gray30
-
-grey30
-
-gray29
-
-grey29
-
-gray28
-
-grey28
-
-gray27
-
-grey27
-
-gray26
-
-grey26
-
-gray25
-
-grey25
-
-gray24
-
-grey24
-
-gray23
-
-grey23
-
-gray22
-
-grey22
-
-gray21
-
-grey21
-
-gray20
-
-grey20
-
-gray19
-
-grey19
-
-gray18
-
-grey18
-
-gray17
-
-grey17
-
-gray16
-
-grey16
-
-gray15
-
-grey15
-
-gray14
-
-grey14
-
-gray13
-
-grey13
-
-gray12
-
-grey12
-
-gray11
-
-grey11
-
-gray10
-
-grey10
-
-gray9
-
-grey9
-
-gray8
-
-grey8
-
-gray7
-
-grey7
-
-gray6
-
-grey6
-
-gray5
-
-grey5
-
-gray4
-
-grey4
-
-gray3
-
-grey3
-
-gray2
-
-grey2
-
-gray1
-
-grey1
-
-black
-
-gray0
-
-grey0
-
-opaque
-
-none
-
-transparent
-
- -
-CLICK TO CHOOSE THE COLOR -
- -
- OPTIONS -
 
-
-
CLICK TO TOGGLE PALATE INFO
-
-
CLICK TO TOGGLE BACKGROUNDS
-
-
-
YOU WILL CHOOSE:
-
- to choose transparent as a color, click HERE -
-
- -
-
- - - - - - - - - - - - diff --git a/share/frontend/imgrid/colors/colors/js/backgroundswitcher.js b/share/frontend/imgrid/colors/colors/js/backgroundswitcher.js deleted file mode 100755 index 74e8367..0000000 --- a/share/frontend/imgrid/colors/colors/js/backgroundswitcher.js +++ /dev/null @@ -1,38 +0,0 @@ -backgroundstate = 2; -function switchbackground() - { - if(backgroundstate == 1) - { - $('#colorpicker').css('background-color','black') - $('#colorpicker').css('background-image','url(js/ditherbackground.gif)') - backgroundstate = 2; - $('#colornames').css('color', 'white') - $('#colornames').css('text-shadow', 'black 1px 2px') - $('#vaseshim').css('background-image','url(vaseshim.png)') - } - else if(backgroundstate == 2) - { - $('#colorpicker').css('background-color','black') - $('#colorpicker').css('background-image', 'none') - $('#vaseshim').css('background-image','url(blackshim.png)') - backgroundstate = 3; - } - else if(backgroundstate == 3) - { - $('#colorpicker').css('background-color','gray') - $('#colorpicker').css('background-image','none') - $('#vaseshim').css('background-image','url(grayshim.png)') - backgroundstate = 0; - } - else if(backgroundstate == 0) - { - $('#colorpicker').css('background-color', 'white') - $('#colorpicker').css('background-image', 'none') - $('#colornames').css('color', '#7F7F7F') - $('#vaseshim').css('background-image','url(whiteshim.png)') - backgroundstate = 1 - } - } - -$('#backgroundswitch').click(function(){switchbackground()}) - diff --git a/share/frontend/imgrid/colors/colors/js/colordict.js b/share/frontend/imgrid/colors/colors/js/colordict.js deleted file mode 100755 index 5c69bc8..0000000 --- a/share/frontend/imgrid/colors/colors/js/colordict.js +++ /dev/null @@ -1,3 +0,0 @@ -var nametohex = {'grey21': '#363636', 'yellow': '#FFFF00', 'grey61': '#9C9C9C', 'HotPink3': '#CD6090', 'grey63': '#A1A1A1', 'grey62': '#9E9E9E', 'grey65': '#A6A6A6', 'AliceBlue': '#F0F8FF', 'grey67': '#ABABAB', 'grey66': '#A8A8A8', 'LightCyan1': '#E0FFFF', 'grey68': '#ADADAD', 'LightCyan3': '#B4CDCD', 'LightCyan2': '#D1EEEE', 'LightCyan4': '#7A8B8B', 'gray32': '#525252', 'gray33': '#545454', 'DarkTurquoise': '#00CED1', 'gray31': '#4F4F4F', 'gray36': '#5C5C5C', 'gray37': '#5E5E5E', 'gray34': '#575757', 'gray35': '#595959', 'aquamarine4': '#458B74', 'gray38': '#616161', 'gray39': '#636363', 'aquamarine1': '#7FFFD4', 'aquamarine3': '#66CDAA', 'aquamarine2': '#76EEC6', 'CadetBlue4': '#53868B', 'CadetBlue3': '#7AC5CD', 'CadetBlue2': '#8EE5EE', 'CadetBlue1': '#98F5FF', 'crimson': '#DC143C', 'VioletRed1': '#FF3E96', 'VioletRed2': '#EE3A8C', 'VioletRed3': '#CD3278', 'VioletRed4': '#8B2252', 'brown': '#A52A2A', 'DarkGoldenrod': '#B8860B', 'gray8': '#141414', 'SlateGrey': '#708090', 'NavajoWhite2': '#EECFA1', 'gray2': '#050505', 'cyan': '#00FFFF', 'gray0': '#000000', 'gray1': '#030303', 'fractal': '#808080', 'gray7': '#121212', 'gray4': '#0A0A0A', 'gray5': '#0D0D0D', 'grey60': '#999999', 'DarkBlue': '#00008B', 'gray98': '#FAFAFA', 'DarkKhaki': '#BDB76B', 'gray99': '#FCFCFC', 'teal': '#008080', 'grey11': '#1C1C1C', 'coral4': '#8B3E2F', 'grey12': '#1F1F1F', 'grey64': '#A3A3A3', 'PaleGreen1': '#9AFF9A', 'PaleGreen3': '#7CCD7C', 'PaleGreen2': '#90EE90', 'PaleGreen4': '#548B54', 'grey14': '#242424', 'lavender': '#E6E6FA', 'grey15': '#262626', 'chartreuse3': '#66CD00', 'chartreuse2': '#76EE00', 'chartreuse1': '#7FFF00', 'chartreuse4': '#458B00', 'RosyBrown': '#BC8F8F', 'blue': '#0000FF', 'NavajoWhite': '#FFDEAD', 'opaque': '#000000', 'maroon4': '#8B1C62', 'maroon3': '#CD2990', 'maroon2': '#EE30A7', 'maroon1': '#FF34B3', 'gold3': '#CDAD00', 'gold2': '#EEC900', 'gold1': '#FFD700', 'gold4': '#8B7500', 'LightSlateGrey': '#778899', 'gray30': '#4D4D4D', 'DarkGreen': '#006400', 'SkyBlue': '#87CEEB', 'GhostWhite': '#F8F8FF', 'LavenderBlush': '#FFF0F5', 'SeaGreen': '#2E8B57', 'BlanchedAlmond': '#FFEBCD', 'gray60': '#999999', 'DarkOliveGreen': '#556B2F', 'firebrick2': '#EE2C2C', 'firebrick1': '#FF3030', 'firebrick4': '#8B1A1A', 'sienna': '#A0522D', 'blue1': '#0000FF', 'lime': '#00FF00', 'gray55': '#8C8C8C', 'blue2': '#0000EE', 'DarkViolet': '#9400D3', 'blue4': '#00008B', 'peru': '#CD853F', 'DarkMagenta': '#8B008B', 'LightBlue2': '#B2DFEE', 'red2': '#EE0000', 'red1': '#FF0000', 'LightBlue1': '#BFEFFF', 'LightBlue4': '#68838B', 'red4': '#8B0000', 'MediumSpringGreen': '#00FA9A', 'chocolate': '#D2691E', 'ForestGreen': '#228B22', 'DarkRed': '#8B0000', 'olive': '#808000', 'HotPink2': '#EE6AA7', 'HotPink1': '#FF6EB4', 'HotPink4': '#8B3A62', 'grey18': '#2E2E2E', 'grey19': '#303030', 'none': '#000000', 'PeachPuff': '#FFDAB9', 'MediumGoldenRod': '#D1C166', 'moccasin': '#FFE4B5', 'grey10': '#1A1A1A', 'chocolate1': '#FF7F24', 'chocolate2': '#EE7621', 'chocolate3': '#CD661D', 'chocolate4': '#8B4513', 'wheat2': '#EED8AE', 'grey16': '#292929', 'grey17': '#2B2B2B', 'gray69': '#B0B0B0', 'gray68': '#ADADAD', 'gray65': '#A6A6A6', 'gray64': '#A3A3A3', 'gray67': '#ABABAB', 'gray66': '#A8A8A8', 'gray61': '#9C9C9C', 'coral': '#FF7F50', 'gray63': '#A1A1A1', 'gray62': '#9E9E9E', 'LightGoldenrod': '#EEDD82', 'turquoise4': '#00868B', 'seashell2': '#EEE5DE', 'seashell3': '#CDC5BF', 'magenta': '#FF00FF', 'seashell1': '#FFF5EE', 'tan': '#D2B48C', 'seashell4': '#8B8682', 'pink': '#FFC0CB', 'LightSlateBlue': '#8470FF', 'SteelBlue1': '#63B8FF', 'SteelBlue3': '#4F94CD', 'SteelBlue2': '#5CACEE', 'SteelBlue4': '#36648B', 'grey89': '#E3E3E3', 'grey88': '#E0E0E0', 'grey87': '#DEDEDE', 'grey86': '#DBDBDB', 'grey85': '#D9D9D9', 'grey84': '#D6D6D6', 'grey83': '#D4D4D4', 'grey82': '#D1D1D1', 'grey81': '#CFCFCF', 'grey80': '#CCCCCC', 'ivory2': '#EEEEE0', 'khaki4': '#8B864E', 'khaki1': '#FFF68F', 'khaki2': '#EEE685', 'khaki3': '#CDC673', 'salmon1': '#FF8C69', 'salmon3': '#CD7054', 'salmon2': '#EE8262', 'salmon4': '#8B4C39', 'LightPink': '#FFB6C1', 'gray9': '#171717', 'green': '#008000', 'brown2': '#EE3B3B', 'brown3': '#CD3333', 'brown1': '#FF4040', 'brown4': '#8B2323', 'cadet blue': '#5F9EA0', 'orange4': '#8B5A00', 'orange1': '#FFA500', 'orange3': '#CD8500', 'orange2': '#EE9A00', 'gray3': '#080808', 'gray6': '#0F0F0F', 'yellow4': '#8B8B00', 'yellow3': '#CDCD00', 'yellow2': '#EEEE00', 'yellow1': '#FFFF00', 'PapayaWhip': '#FFEFD5', 'bisque2': '#EED5B7', 'OliveDrab4': '#698B22', 'bisque3': '#CDB79E', 'OliveDrab1': '#C0FF3E', 'OliveDrab2': '#B3EE3A', 'OliveDrab3': '#9ACD32', 'SkyBlue4': '#4A708B', 'SkyBlue1': '#87CEFF', 'SkyBlue3': '#6CA6CD', 'SkyBlue2': '#7EC0EE', 'grey58': '#949494', 'grey59': '#969696', 'grey54': '#8A8A8A', 'grey55': '#8C8C8C', 'grey56': '#8F8F8F', 'grey57': '#919191', 'grey50': '#7F7F7F', 'silver': '#C0C0C0', 'grey52': '#858585', 'grey53': '#878787', 'cyan2': '#00EEEE', 'cyan3': '#00CDCD', 'gray23': '#3B3B3B', 'RosyBrown4': '#8B6969', 'gray25': '#404040', 'CornflowerBlue': '#6495ED', 'cyan4': '#008B8B', 'gray26': '#424242', 'gray29': '#4A4A4A', 'LimeGreen': '#32CD32', 'MistyRose': '#FFE4E1', 'navy': '#000080', 'gray94': '#F0F0F0', 'gray95': '#F2F2F2', 'gray96': '#F5F5F5', 'gray97': '#F7F7F7', 'gray90': '#E5E5E5', 'gray91': '#E8E8E8', 'gray92': '#EBEBEB', 'gray93': '#EDEDED', 'MediumPurple': '#9370DB', 'MidnightBlue': '#191970', 'cornsilk': '#FFF8DC', 'red': '#FF0000', 'grey69': '#B0B0B0', 'DarkOrchid4': '#68228B', 'blue3': '#0000CD', 'LightSteelBlue': '#B0C4DE', 'DarkOrchid1': '#BF3EFF', 'DarkOrchid2': '#B23AEE', 'DarkOrchid3': '#9A32CD', 'grey72': '#B8B8B8', 'FloralWhite': '#FFFAF0', 'grey70': '#B3B3B3', 'DarkSeaGreen': '#8FBC8F', 'grey71': '#B5B5B5', 'gray17': '#2B2B2B', 'grey77': '#C4C4C4', 'tomato4': '#8B3626', 'tomato1': '#FF6347', 'tomato3': '#CD4F39', 'tomato2': '#EE5C42', 'DarkSlateGray1': '#97FFFF', 'DarkSlateGray2': '#8DEEEE', 'DarkSlateGray3': '#79CDCD', 'DarkSlateGray4': '#528B8B', 'SteelBlue': '#4682B4', 'MediumSlateBlue': '#7B68EE', 'OrangeRed': '#FF4500', 'grey79': '#C9C9C9', 'MediumVioletRed': '#C71585', 'burlywood': '#DEB887', 'white': '#FFFFFF', 'tomato': '#FF6347', 'DodgerBlue': '#1E90FF', 'RoyalBlue4': '#27408B', 'RoyalBlue1': '#4876FF', 'RoyalBlue3': '#3A5FCD', 'RoyalBlue2': '#436EEE', 'MistyRose1': '#FFE4E1', 'MistyRose3': '#CDB7B5', 'MistyRose2': '#EED5D2', 'MistyRose4': '#8B7D7B', 'LightGray': '#D3D3D3', 'LightYellow': '#FFFFE0', 'DarkOrange': '#FF8C00', 'DarkGray': '#A9A9A9', 'SlateGray': '#708090', 'turquoise3': '#00C5CD', 'turquoise2': '#00E5EE', 'turquoise1': '#00F5FF', 'burlywood2': '#EEC591', 'burlywood4': '#8B7355', 'DarkSlateGray': '#2F4F4F', 'linen': '#FAF0E6', 'grey47': '#787878', 'snow': '#FFFAFA', 'grey46': '#757575', 'gray58': '#949494', 'gray59': '#969696', 'IndianRed4': '#8B3A3A', 'purple4': '#551A8B', 'gray52': '#858585', 'gray53': '#878787', 'purple1': '#9B30FF', 'IndianRed1': '#FF6A6A', 'purple3': '#7D26CD', 'purple2': '#912CEE', 'thistle3': '#CDB5CD', 'thistle2': '#EED2EE', 'SpringGreen2': '#00EE76', 'SpringGreen3': '#00CD66', 'SpringGreen4': '#008B45', 'thistle4': '#8B7B8B', 'LightPink2': '#EEA2AD', 'LightPink3': '#CD8C95', 'LightPink1': '#FFAEB9', 'LightPink4': '#8B5F65', 'MediumPurple1': '#AB82FF', 'MediumPurple2': '#9F79EE', 'MediumPurple3': '#8968CD', 'MediumPurple4': '#5D478B', 'MediumTurquoise': '#48D1CC', 'DimGray': '#696969', 'gray14': '#242424', 'grey100': '#FFFFFF', 'OrangeRed3': '#CD3700', 'OrangeRed2': '#EE4000', 'OrangeRed1': '#FF4500', 'LightSeaGreen': '#20B2AA', 'gold': '#FFD700', 'OrangeRed4': '#8B2500', 'NavajoWhite4': '#8B795E', 'NavajoWhite1': '#FFDEAD', 'LawnGreen': '#7CFC00', 'NavajoWhite3': '#CDB38B', 'LightGoldenrod4': '#8B814C', 'LightGoldenrod1': '#FFEC8B', 'LightGoldenrod3': '#CDBE70', 'LightGoldenrod2': '#EEDC82', 'gray21': '#363636', 'PaleGreen': '#98FB98', 'green4': '#008B00', 'green1': '#00FF00', 'green3': '#00CD00', 'green2': '#00EE00', 'MediumOrchid': '#BA55D3', 'black': '#000000', 'gray20': '#333333', 'orchid4': '#8B4789', 'DodgerBlue1': '#1E90FF', 'DodgerBlue2': '#1C86EE', 'DodgerBlue3': '#1874CD', 'DodgerBlue4': '#104E8B', 'orchid1': '#FF83FA', 'orchid2': '#EE7AE9', 'orchid3': '#CD69C9', 'DarkSeaGreen4': '#698B69', 'DarkSeaGreen3': '#9BCD9B', 'DarkSeaGreen2': '#B4EEB4', 'DarkSeaGreen1': '#C1FFC1', 'gray100': '#FFFFFF', 'BlueViolet': '#8A2BE2', 'bisque4': '#8B7D6B', 'MediumOrchid4': '#7A378B', 'MintCream': '#F5FFFA', 'MediumOrchid1': '#E066FF', 'bisque1': '#FFE4C4', 'MediumOrchid3': '#B452CD', 'MediumOrchid2': '#D15FEE', 'gray': '#7E7E7E', 'DeepSkyBlue': '#00BFFF', 'LightGrey': '#D3D3D3', 'grey78': '#C7C7C7', 'gray22': '#383838', 'plum4': '#8B668B', 'plum3': '#CD96CD', 'plum2': '#EEAEEE', 'plum1': '#FFBBFF', 'DarkSlateGrey': '#2F4F4F', 'DarkOrchid': '#9932CC', 'OliveDrab': '#6B8E23', 'gray83': '#D4D4D4', 'grey49': '#7D7D7D', 'grey48': '#7A7A7A', 'thistle': '#D8BFD8', 'violet': '#EE82EE', 'grey43': '#6E6E6E', 'grey42': '#6B6B6B', 'LightSalmon4': '#8B5742', 'grey40': '#666666', 'LightSalmon2': '#EE9572', 'LightSalmon3': '#CD8162', 'grey45': '#737373', 'LightSalmon1': '#FFA07A', 'honeydew': '#F0FFF0', 'gray18': '#2E2E2E', 'gray19': '#303030', 'LightCyan': '#E0FFFF', 'gray15': '#262626', 'gray16': '#292929', 'gray82': '#D1D1D1', 'gray10': '#1A1A1A', 'gray11': '#1C1C1C', 'gray12': '#1F1F1F', 'gray13': '#212121', 'grey93': '#EDEDED', 'PaleGoldenrod': '#EEE8AA', 'gainsboro': '#DCDCDC', 'AntiqueWhite3': '#CDC0B0', 'AntiqueWhite2': '#EEDFCC', 'AntiqueWhite1': '#FFEFDB', 'gray27': '#454545', 'SlateBlue': '#6A5ACD', 'AntiqueWhite4': '#8B8378', 'DimGrey': '#696969', 'VioletRed': '#D02090', 'WhiteSmoke': '#F5F5F5', 'grey38': '#616161', 'grey39': '#636363', 'grey36': '#5C5C5C', 'grey37': '#5E5E5E', 'grey34': '#575757', 'grey35': '#595959', 'aqua': '#00FFFF', 'grey33': '#545454', 'grey30': '#4D4D4D', 'grey31': '#4F4F4F', 'NavyBlue': '#000080', 'sienna4': '#8B4726', 'gray81': '#CFCFCF', 'gray80': '#CCCCCC', 'sienna1': '#FF8247', 'gray86': '#DBDBDB', 'sienna3': '#CD6839', 'sienna2': '#EE7942', 'gray89': '#E3E3E3', 'gray88': '#E0E0E0', 'SlateBlue4': '#473C8B', 'gray87': '#DEDEDE', 'LightSteelBlue1': '#CAE1FF', 'magenta3': '#CD00CD', 'IndianRed': '#CD5C5C', 'SlateBlue2': '#7A67EE', 'SlateBlue1': '#836FFF', 'LightBlue': '#ADD8E6', 'PeachPuff4': '#8B7765', 'seashell': '#FFF5EE', 'SaddleBrown': '#8B4513', 'PeachPuff1': '#FFDAB9', 'PeachPuff2': '#EECBAD', 'PeachPuff3': '#CDAF95', 'aquamarine': '#7FFFD4', 'LemonChiffon2': '#EEE9BF', 'LemonChiffon1': '#FFFACD', 'tan4': '#8B5A2B', 'tan3': '#CD853F', 'tan2': '#EE9A49', 'tan1': '#FFA54F', 'LemonChiffon4': '#8B8970', 'orange': '#FFA500', 'OldLace': '#FDF5E6', 'PowderBlue': '#B0E0E6', 'RosyBrown3': '#CD9B9B', 'RoyalBlue': '#4169E1', 'LightSkyBlue4': '#607B8B', 'LightSkyBlue1': '#B0E2FF', 'LightSkyBlue2': '#A4D3EE', 'LightSkyBlue3': '#8DB6CD', 'LightYellow1': '#FFFFE0', 'LightYellow2': '#EEEED1', 'LightYellow3': '#CDCDB4', 'LightYellow4': '#8B8B7A', 'goldenrod4': '#8B6914', 'goldenrod1': '#FFC125', 'goldenrod2': '#EEB422', 'goldenrod3': '#CD9B1D', 'grey32': '#525252', 'LemonChiffon': '#FFFACD', 'burlywood1': '#FFD39B', 'YellowGreen': '#9ACD32', 'LightCoral': '#F08080', 'burlywood3': '#CDAA7D', 'ivory3': '#CDCDC1', 'firebrick3': '#CD2626', 'ivory1': '#FFFFF0', 'grey8': '#141414', 'ivory4': '#8B8B83', 'grey9': '#171717', 'DarkSalmon': '#E9967A', 'SlateGray1': '#C6E2FF', 'SlateGray2': '#B9D3EE', 'SlateGray3': '#9FB6CD', 'SlateGray4': '#6C7B8B', 'RosyBrown2': '#EEB4B4', 'RosyBrown1': '#FFC1C1', 'gray85': '#D9D9D9', 'gray84': '#D6D6D6', 'LightGreen': '#90EE90', 'LavenderBlush1': '#FFF0F5', 'grey73': '#BABABA', 'LavenderBlush3': '#CDC1C5', 'LavenderBlush2': '#EEE0E5', 'grey76': '#C2C2C2', 'LavenderBlush4': '#8B8386', 'grey74': '#BDBDBD', 'grey75': '#BFBFBF', 'pink1': '#FFB5C5', 'pink3': '#CD919E', 'pink2': '#EEA9B8', 'pink4': '#8B636C', 'gray47': '#787878', 'gray46': '#757575', 'gray45': '#737373', 'gray44': '#707070', 'gray43': '#6E6E6E', 'gray42': '#6B6B6B', 'gray41': '#696969', 'gray40': '#666666', 'gray49': '#7D7D7D', 'gray48': '#7A7A7A', 'MediumAquamarine': '#66CDAA', 'MediumForestGreen': '#32814B', 'azure1': '#F0FFFF', 'azure3': '#C1CDCD', 'azure2': '#E0EEEE', 'indigo': '#4B0082', 'azure4': '#838B8B', 'firebrick': '#B22222', 'DarkGrey': '#A9A9A9', 'magenta4': '#8B008B', 'SlateBlue3': '#6959CD', 'magenta2': '#EE00EE', 'magenta1': '#FF00FF', 'grey51': '#828282', 'chartreuse': '#7FFF00', 'grey41': '#696969', 'DarkOliveGreen4': '#6E8B3D', 'turquoise': '#40E0D0', 'DarkOliveGreen1': '#CAFF70', 'DarkOliveGreen3': '#A2CD5A', 'DarkOliveGreen2': '#BCEE68', 'grey6': '#0F0F0F', 'grey7': '#121212', 'grey4': '#0A0A0A', 'grey5': '#0D0D0D', 'grey2': '#050505', 'grey3': '#080808', 'grey0': '#000000', 'grey1': '#030303', 'gray50': '#7F7F7F', 'cyan1': '#00FFFF', 'gray51': '#828282', 'gray24': '#3D3D3D', 'HotPink': '#FF69B4', 'DarkGoldenrod4': '#8B6508', 'gray54': '#8A8A8A', 'DarkGoldenrod1': '#FFB90F', 'DarkGoldenrod2': '#EEAD0E', 'DarkGoldenrod3': '#CD950C', 'IndianRed2': '#EE6363', 'DeepPink': '#FF1493', 'gray28': '#474747', 'IndianRed3': '#CD5555', 'DarkCyan': '#008B8B', 'GreenYellow': '#ADFF2F', 'LightSalmon': '#FFA07A', 'DarkOrange4': '#8B4500', 'DarkOrange1': '#FF7F00', 'transparent': '#000000', 'DarkOrange3': '#CD6600', 'orchid': '#DA70D6', 'purple': '#800080', 'wheat4': '#8B7E66', 'wheat1': '#FFE7BA', 'wheat3': '#CDBA96', 'SpringGreen1': '#00FF7F', 'coral3': '#CD5B45', 'coral2': '#EE6A50', 'coral1': '#FF7256', 'thistle1': '#FFE1FF', 'PaleTurquoise': '#AFEEEE', 'bisque': '#FFE4C4', 'DeepPink3': '#CD1076', 'DeepPink2': '#EE1289', 'DeepPink1': '#FF1493', 'khaki': '#F0E68C', 'wheat': '#F5DEB3', 'MediumSeaGreen': '#3CB371', 'DeepPink4': '#8B0A50', 'salmon': '#FA8072', 'grey44': '#707070', 'DarkSlateBlue': '#483D8B', 'PaleVioletRed4': '#8B475D', 'PaleVioletRed1': '#FF82AB', 'PaleVioletRed2': '#EE799F', 'PaleVioletRed3': '#CD6889', 'AntiqueWhite': '#FAEBD7', 'PaleTurquoise4': '#668B8B', 'PaleTurquoise3': '#96CDCD', 'PaleTurquoise2': '#AEEEEE', 'PaleTurquoise1': '#BBFFFF', 'gray56': '#8F8F8F', 'plum': '#DDA0DD', 'beige': '#F5F5DC', 'SpringGreen': '#00FF7F', 'azure': '#F0FFFF', 'honeydew1': '#F0FFF0', 'honeydew2': '#E0EEE0', 'honeydew3': '#C1CDC1', 'honeydew4': '#838B83', 'gray57': '#919191', 'snow4': '#8B8989', 'snow2': '#EEE9E9', 'snow3': '#CDC9C9', 'snow1': '#FFFAFA', 'SandyBrown': '#F4A460', 'grey13': '#212121', 'SeaGreen4': '#2E8B57', 'SeaGreen3': '#43CD80', 'SeaGreen2': '#4EEE94', 'SeaGreen1': '#54FF9F', 'grey29': '#4A4A4A', 'grey28': '#474747', 'grey25': '#404040', 'grey24': '#3D3D3D', 'grey27': '#454545', 'grey26': '#424242', 'fuchsia': '#FF00FF', 'grey20': '#333333', 'grey23': '#3B3B3B', 'grey22': '#383838', 'gray78': '#C7C7C7', 'gray79': '#C9C9C9', 'gray76': '#C2C2C2', 'gray77': '#C4C4C4', 'gray74': '#BDBDBD', 'gray75': '#BFBFBF', 'gray72': '#B8B8B8', 'gray73': '#BABABA', 'gray70': '#B3B3B3', 'gray71': '#B5B5B5', 'ivory': '#FFFFF0', 'LemonChiffon3': '#CDC9A5', 'DeepSkyBlue4': '#00688B', 'DeepSkyBlue3': '#009ACD', 'DeepSkyBlue2': '#00B2EE', 'DeepSkyBlue1': '#00BFFF', 'cornsilk4': '#8B8878', 'cornsilk2': '#EEE8CD', 'cornsilk3': '#CDC8B1', 'CadetBlue': '#5F9EA0', 'cornsilk1': '#FFF8DC', 'grey90': '#E5E5E5', 'grey91': '#E8E8E8', 'grey92': '#EBEBEB', 'goldenrod': '#DAA520', 'grey94': '#F0F0F0', 'grey95': '#F2F2F2', 'grey96': '#F5F5F5', 'grey97': '#F7F7F7', 'grey98': '#FAFAFA', 'grey99': '#FCFCFC', 'red3': '#CD0000', 'LightSteelBlue2': '#BCD2EE', 'LightSteelBlue3': '#A2B5CD', 'LightSteelBlue4': '#6E7B8B', 'LightBlue3': '#9AC0CD', 'maroon': '#800000', 'LightSkyBlue': '#87CEFA', 'LightGoldenrodYellow': '#FAFAD2', 'MediumBlue': '#0000CD', 'LightSlateGray': '#778899', 'DarkOrange2': '#EE7600', 'PaleVioletRed': '#DB7093'} -var divlist = ['#d0', '#d1', '#d2', '#d3', '#d4', '#d5', '#d6', '#d7', '#d8', '#d9', '#d10', '#d11', '#d12', '#d13', '#d14', '#d15', '#d16', '#d17', '#d18', '#d19', '#d20', '#d21', '#d22', '#d23', '#d24', '#d25', '#d26', '#d27', '#d28', '#d29', '#d30', '#d31', '#d32', '#d33', '#d34', '#d35', '#d36', '#d37', '#d38', '#d39', '#d40', '#d41', '#d42', '#d43', '#d44', '#d45', '#d46', '#d47', '#d48', '#d49', '#d50', '#d51', '#d52', '#d53', '#d54', '#d55', '#d56', '#d57', '#d58', '#d59', '#d60', '#d61', '#d62', '#d63', '#d64', '#d65', '#d66', '#d67', '#d68', '#d69', '#d70', '#d71', '#d72', '#d73', '#d74', '#d75', '#d76', '#d77', '#d78', '#d79', '#d80', '#d81', '#d82', '#d83', '#d84', '#d85', '#d86', '#d87', '#d88', '#d89', '#d90', '#d91', '#d92', '#d93', '#d94', '#d95', '#d96', '#d97', '#d98', '#d99', '#d100', '#d101', '#d102', '#d103', '#d104', '#d105', '#d106', '#d107', '#d108', '#d109', '#d110', '#d111', '#d112', '#d113', '#d114', '#d115', '#d116', '#d117', '#d118', '#d119', '#d120', '#d121', '#d122', '#d123', '#d124', '#d125', '#d126', '#d127', '#d128', '#d129', '#d130', '#d131', '#d132', '#d133', '#d134', '#d135', '#d136', '#d137', '#d138', '#d139', '#d140', '#d141', '#d142', '#d143', '#d144', '#d145', '#d146', '#d147', '#d148', '#d149', '#d150', '#d151', '#d152', '#d153', '#d154', '#d155', '#d156', '#d157', '#d158', '#d159', '#d160', '#d161', '#d162', '#d163', '#d164', '#d165', '#d166', '#d167', '#d168', '#d169', '#d170', '#d171', '#d172', '#d173', '#d174', '#d175', '#d176', '#d177', '#d178', '#d179', '#d180', '#d181', '#d182', '#d183', '#d184', '#d185', '#d186', '#d187', '#d188', '#d189', '#d190', '#d191', '#d192', '#d193', '#d194', '#d195', '#d196', '#d197', '#d198', '#d199', '#d200', '#d201', '#d202', '#d203', '#d204', '#d205', '#d206', '#d207', '#d208', '#d209', '#d210', '#d211', '#d212', '#d213', '#d214', '#d215', '#d216', '#d217', '#d218', '#d219', '#d220', '#d221', '#d222', '#d223', '#d224', '#d225', '#d226', '#d227', '#d228', '#d229', '#d230', '#d231', '#d232', '#d233', '#d234', '#d235', '#d236', '#d237', '#d238', '#d239', '#d240', '#d241', '#d242', '#d243', '#d244', '#d245', '#d246', '#d247', '#d248', '#d249', '#d250', '#d251', '#d252', '#d253', '#d254', '#d255', '#d256', '#d257', '#d258', '#d259', '#d260', '#d261', '#d262', '#d263', '#d264', '#d265', '#d266', '#d267', '#d268', '#d269', '#d270', '#d271', '#d272', '#d273', '#d274', '#d275', '#d276', '#d277', '#d278', '#d279', '#d280', '#d281', '#d282', '#d283', '#d284', '#d285', '#d286', '#d287', '#d288', '#d289', '#d290', '#d291', '#d292', '#d293', '#d294', '#d295', '#d296', '#d297', '#d298', '#d299', '#d300', '#d301', '#d302', '#d303', '#d304', '#d305', '#d306', '#d307', '#d308', '#d309', '#d310', '#d311', '#d312', '#d313', '#d314', '#d315', '#d316', '#d317', '#d318', '#d319', '#d320', '#d321', '#d322', '#d323', '#d324', '#d325', '#d326', '#d327', '#d328', '#d329', '#d330', '#d331', '#d332', '#d333', '#d334', '#d335', '#d336', '#d337', '#d338', '#d339', '#d340', '#d341', '#d342', '#d343', '#d344', '#d345', '#d346', '#d347', '#d348', '#d349', '#d350', '#d351', '#d352', '#d353', '#d354', '#d355', '#d356', '#d357', '#d358', '#d359', '#d360', '#d361', '#d362', '#d363', '#d364', '#d365', '#d366', '#d367', '#d368', '#d369', '#d370', '#d371', '#d372', '#d373', '#d374', '#d375', '#d376', '#d377', '#d378', '#d379', '#d380', '#d381', '#d382', '#d383', '#d384', '#d385', '#d386', '#d387', '#d388', '#d389', '#d390', '#d391', '#d392', '#d393', '#d394', '#d395', '#d396', '#d397', '#d398', '#d399', '#d400', '#d401', '#d402', '#d403', '#d404', '#d405', '#d406', '#d407', '#d408', '#d409', '#d410', '#d411', '#d412', '#d413', '#d414', '#d415', '#d416', '#d417', '#d418', '#d419', '#d420', '#d421', '#d422', '#d423', '#d424', '#d425', '#d426', '#d427', '#d428', '#d429', '#d430', '#d431', '#d432', '#d433', '#d434', '#d435', '#d436', '#d437', '#d438', '#d439', '#d440', '#d441', '#d442', '#d443', '#d444', '#d445', '#d446', '#d447', '#d448', '#d449', '#d450', '#d451', '#d452', '#d453', '#d454', '#d455', '#d456', '#d457', '#d458', '#d459', '#d460', '#d461', '#d462', '#d463', '#d464', '#d465', '#d466', '#d467', '#d468', '#d469', '#d470', '#d471', '#d472', '#d473', '#d474', '#d475', '#d476', '#d477', '#d478', '#d479', '#d480', '#d481', '#d482', '#d483', '#d484', '#d485', '#d486', '#d487', '#d488', '#d489', '#d490', '#d491', '#d492', '#d493', '#d494', '#d495', '#d496', '#d497', '#d498', '#d499', '#d500', '#d501', '#d502', '#d503', '#d504', '#d505', '#d506', '#d507', '#d508', '#d509', '#d510', '#d511', '#d512', '#d513', '#d514', '#d515', '#d516', '#d517', '#d518', '#d519', '#d520', '#d521', '#d522', '#d523', '#d524', '#d525', '#d526', '#d527', '#d528', '#d529', '#d530', '#d531', '#d532', '#d533', '#d534', '#d535', '#d536', '#d537', '#d538', '#d539', '#d540', '#d541', '#d542', '#d543', '#d544', '#d545', '#d546', '#d547', '#d548', '#d549', '#d550', '#d551', '#d552', '#d553', '#d554', '#d555', '#d556', '#d557', '#d558', '#d559', '#d560', '#d561', '#d562', '#d563', '#d564', '#d565', '#d566', '#d567', '#d568', '#d569', '#d570', '#d571', '#d572', '#d573', '#d574', '#d575', '#d576', '#d577', '#d578', '#d579', '#d580', '#d581', '#d582', '#d583', '#d584', '#d585', '#d586', '#d587', '#d588', '#d589', '#d590', '#d591', '#d592', '#d593', '#d594', '#d595', '#d596', '#d597', '#d598', '#d599', '#d600', '#d601', '#d602', '#d603', '#d604', '#d605', '#d606', '#d607', '#d608', '#d609', '#d610', '#d611', '#d612', '#d613', '#d614', '#d615', '#d616', '#d617', '#d618', '#d619', '#d620', '#d621', '#d622', '#d623', '#d624', '#d625', '#d626', '#d627', '#d628', '#d629', '#d630', '#d631', '#d632', '#d633', '#d634', '#d635', '#d636', '#d637', '#d638', '#d639', '#d640', '#d641', '#d642', '#d643', '#d644', '#d645', '#d646', '#d647', '#d648', '#d649', '#d650', '#d651', '#d652', '#d653', '#d654', '#d655', '#d656', '#d657', '#d658', '#d659', '#d660', '#d661', '#d662', '#d663', '#d664', '#d665', '#d666', '#d667', '#d668', '#d669', '#d670', '#d671', '#d672', '#d673'] -var divtoname = {'#d322': 'khaki4', '#d600': 'gray34', '#d118': 'MediumPurple1', '#d119': 'MediumPurple2', '#d114': 'purple3', '#d115': 'purple4', '#d116': 'purple1', '#d117': 'MediumPurple', '#d110': 'purple', '#d111': 'indigo', '#d112': 'BlueViolet', '#d113': 'purple2', '#d529': 'grey67', '#d231': 'DarkSlateGray', '#d339': 'LightGoldenrod3', '#d233': 'MediumTurquoise', '#d232': 'DarkSlateGrey', '#d235': 'turquoise', '#d234': 'LightSeaGreen', '#d237': 'aquamarine', '#d236': 'aquamarine4', '#d239': 'aquamarine2', '#d238': 'aquamarine1', '#d332': 'gold1', '#d333': 'gold2', '#d334': 'gold3', '#d335': 'gold4', '#d336': 'LightGoldenrod', '#d337': 'LightGoldenrod4', '#d424': 'LightSalmon3', '#d425': 'LightSalmon', '#d426': 'LightSalmon1', '#d427': 'LightSalmon4', '#d420': 'sienna', '#d421': 'sienna1', '#d422': 'sienna2', '#d423': 'sienna3', '#d587': 'grey41', '#d586': 'gray41', '#d585': 'DimGrey', '#d584': 'DimGray', '#d428': 'LightSalmon2', '#d429': 'coral', '#d581': 'grey43', '#d580': 'gray43', '#d89': 'thistle4', '#d88': 'plum3', '#d349': 'goldenrod4', '#d348': 'goldenrod3', '#d81': 'thistle2', '#d80': 'thistle1', '#d83': 'plum2', '#d82': 'plum1', '#d85': 'thistle3', '#d84': 'thistle', '#d87': 'violet', '#d86': 'plum', '#d601': 'grey34', '#d67': 'DeepPink3', '#d66': 'DeepPink2', '#d65': 'DeepPink1', '#d64': 'DeepPink', '#d63': 'HotPink', '#d62': 'HotPink4', '#d61': 'HotPink1', '#d60': 'HotPink2', '#d69': 'maroon1', '#d68': 'DeepPink4', '#d510': 'grey76', '#d511': 'silver', '#d512': 'gray75', '#d513': 'grey75', '#d514': 'gray74', '#d515': 'grey74', '#d516': 'gray73', '#d517': 'grey73', '#d518': 'gray72', '#d519': 'grey72', '#d150': 'LightSteelBlue2', '#d151': 'LightSteelBlue3', '#d152': 'LightSteelBlue4', '#d153': 'SlateGray4', '#d154': 'SlateGray1', '#d155': 'SlateGray2', '#d156': 'SlateGray3', '#d157': 'LightSlateGray', '#d158': 'LightSlateGrey', '#d159': 'SlateGray', '#d565': 'gray50', '#d564': 'fractal', '#d567': 'gray', '#d566': 'grey50', '#d561': 'grey52', '#d560': 'gray52', '#d563': 'grey51', '#d562': 'gray51', '#d604': 'gray32', '#d605': 'grey32', '#d606': 'gray31', '#d607': 'grey31', '#d569': 'grey49', '#d568': 'gray49', '#d602': 'gray33', '#d603': 'grey33', '#d125': 'SlateBlue', '#d124': 'MediumSlateBlue', '#d127': 'SlateBlue2', '#d126': 'SlateBlue1', '#d121': 'MediumPurple4', '#d120': 'MediumPurple3', '#d123': 'LightSlateBlue', '#d122': 'DarkSlateBlue', '#d359': 'wheat1', '#d129': 'SlateBlue4', '#d128': 'SlateBlue3', '#d301': 'LightYellow', '#d300': 'ivory1', '#d303': 'beige', '#d302': 'LightYellow1', '#d305': 'LightGoldenrodYellow', '#d304': 'ivory2', '#d307': 'ivory3', '#d306': 'LightYellow2', '#d309': 'ivory4', '#d308': 'LightYellow3', '#d462': 'grey98', '#d351': 'DarkGoldenrod1', '#d464': 'grey97', '#d465': 'gray96', '#d466': 'grey96', '#d467': 'WhiteSmoke', '#d463': 'gray97', '#d268': 'PaleGreen3', '#d269': 'honeydew4', '#d266': 'DarkSeaGreen3', '#d267': 'DarkSeaGreen', '#d264': 'LightGreen', '#d265': 'PaleGreen2', '#d262': 'PaleGreen', '#d263': 'honeydew3', '#d260': 'DarkSeaGreen2', '#d261': 'PaleGreen1', '#d598': 'gray35', '#d29': 'firebrick4', '#d28': 'brown4', '#d23': 'red2', '#d22': 'firebrick3', '#d21': 'RosyBrown4', '#d20': 'red1', '#d27': 'IndianRed4', '#d26': 'red3', '#d25': 'brown', '#d24': 'firebrick', '#d599': 'grey35', '#d338': 'LightGoldenrod1', '#d419': 'sienna4', '#d418': 'seashell1', '#d230': 'teal', '#d415': 'chocolate4', '#d414': 'chocolate3', '#d417': 'seashell', '#d416': 'SaddleBrown', '#d411': 'chocolate', '#d410': 'seashell3', '#d413': 'chocolate2', '#d412': 'chocolate1', '#d398': 'tan1', '#d399': 'tan2', '#d392': 'DarkOrange1', '#d393': 'linen', '#d390': 'bisque1', '#d391': 'bisque3', '#d396': 'DarkOrange4', '#d397': 'peru', '#d394': 'DarkOrange2', '#d395': 'DarkOrange3', '#d194': 'CadetBlue2', '#d195': 'CadetBlue3', '#d196': 'CadetBlue4', '#d197': 'turquoise1', '#d190': 'LightBlue', '#d191': 'LightBlue4', '#d192': 'PowderBlue', '#d193': 'CadetBlue1', '#d198': 'turquoise2', '#d199': 'turquoise3', '#d330': 'cornsilk4', '#d331': 'gold', '#d640': 'gray14', '#d641': 'grey14', '#d642': 'gray13', '#d643': 'grey13', '#d644': 'gray12', '#d645': 'grey12', '#d646': 'gray11', '#d647': 'grey11', '#d648': 'gray10', '#d649': 'grey10', '#d668': 'black', '#d486': 'gainsboro', '#d487': 'gray86', '#d484': 'gray87', '#d485': 'grey87', '#d482': 'gray88', '#d483': 'grey88', '#d480': 'gray89', '#d481': 'grey89', '#d521': 'grey71', '#d520': 'gray71', '#d523': 'grey70', '#d522': 'gray70', '#d525': 'grey69', '#d524': 'gray69', '#d488': 'grey86', '#d489': 'gray85', '#d430': 'OrangeRed', '#d660': 'gray4', '#d169': 'SteelBlue1', '#d168': 'SteelBlue', '#d661': 'grey4', '#d161': 'DodgerBlue', '#d160': 'SlateGrey', '#d163': 'DodgerBlue2', '#d162': 'DodgerBlue1', '#d165': 'DodgerBlue3', '#d164': 'DodgerBlue4', '#d167': 'SteelBlue4', '#d166': 'AliceBlue', '#d635': 'grey17', '#d634': 'gray17', '#d637': 'grey16', '#d636': 'gray16', '#d631': 'grey19', '#d630': 'gray19', '#d633': 'grey18', '#d632': 'gray18', '#d639': 'grey15', '#d638': 'gray15', '#d368': 'PapayaWhip', '#d222': 'cyan', '#d223': 'cyan1', '#d220': 'LightCyan4', '#d221': 'aqua', '#d226': 'DarkSlateGray4', '#d227': 'cyan3', '#d224': 'PaleTurquoise4', '#d225': 'cyan2', '#d228': 'cyan4', '#d229': 'DarkCyan', '#d590': 'gray39', '#d538': 'gray63', '#d539': 'grey63', '#d591': 'grey39', '#d451': 'MistyRose', '#d450': 'MistyRose2', '#d453': 'salmon', '#d452': 'MistyRose1', '#d455': 'white', '#d454': 'MistyRose3', '#d457': 'grey100', '#d456': 'gray100', '#d459': 'gray99', '#d458': 'grey100', '#d592': 'gray38', '#d593': 'grey38', '#d594': 'gray37', '#d595': 'grey37', '#d596': 'gray36', '#d597': 'grey36', '#d297': 'YellowGreen', '#d296': 'OliveDrab3', '#d295': 'OliveDrab2', '#d294': 'OliveDrab1', '#d293': 'OliveDrab', '#d292': 'DarkOliveGreen', '#d291': 'DarkOliveGreen4', '#d290': 'DarkOliveGreen2', '#d356': 'wheat2', '#d357': 'OldLace', '#d354': 'DarkGoldenrod4', '#d355': 'FloralWhite', '#d352': 'DarkGoldenrod2', '#d353': 'DarkGoldenrod3', '#d299': 'ivory', '#d298': 'OliveDrab4', '#d468': 'gray95', '#d534': 'gray65', '#d535': 'grey65', '#d52': 'LavenderBlush2', '#d53': 'LavenderBlush4', '#d50': 'LavenderBlush1', '#d51': 'LavenderBlush3', '#d56': 'VioletRed3', '#d57': 'VioletRed1', '#d54': 'maroon', '#d55': 'HotPink3', '#d58': 'VioletRed2', '#d59': 'VioletRed4', '#d469': 'grey95', '#d558': 'gray53', '#d559': 'grey53', '#d576': 'gray45', '#d577': 'grey45', '#d574': 'gray46', '#d575': 'grey46', '#d572': 'gray47', '#d573': 'grey47', '#d570': 'gray48', '#d571': 'grey48', '#d671': 'opaque', '#d670': 'grey0', '#d673': 'transparent', '#d672': 'none', '#d578': 'gray44', '#d579': 'grey44', '#d589': 'grey40', '#d588': 'gray40', '#d4': 'RosyBrown2', '#d5': 'snow3', '#d6': 'LightCoral', '#d7': 'IndianRed1', '#d0': 'snow', '#d1': 'snow1', '#d2': 'snow2', '#d3': 'RosyBrown1', '#d8': 'RosyBrown3', '#d9': 'IndianRed2', '#d136': 'MediumBlue', '#d137': 'blue4', '#d134': 'blue2', '#d135': 'blue3', '#d132': 'blue', '#d133': 'blue1', '#d130': 'GhostWhite', '#d131': 'lavender', '#d583': 'grey42', '#d138': 'DarkBlue', '#d139': 'MidnightBlue', '#d312': 'yellow1', '#d313': 'yellow2', '#d310': 'LightYellow4', '#d311': 'yellow', '#d316': 'olive', '#d317': 'DarkKhaki', '#d314': 'yellow3', '#d315': 'yellow4', '#d318': 'khaki2', '#d319': 'LemonChiffon4', '#d259': 'DarkSeaGreen1', '#d258': 'honeydew2', '#d253': 'SeaGreen4', '#d252': 'SeaGreen1', '#d251': 'SeaGreen3', '#d250': 'SeaGreen', '#d257': 'honeydew1', '#d256': 'honeydew', '#d255': 'MediumForestGreen', '#d254': 'SeaGreen2', '#d345': 'goldenrod', '#d344': 'cornsilk1', '#d612': 'gray28', '#d347': 'goldenrod2', '#d461': 'gray98', '#d346': 'goldenrod1', '#d479': 'grey90', '#d341': 'cornsilk3', '#d478': 'gray90', '#d340': 'LightGoldenrod2', '#d343': 'cornsilk', '#d342': 'cornsilk2', '#d528': 'gray67', '#d408': 'seashell4', '#d409': 'seashell2', '#d406': 'PeachPuff3', '#d407': 'SandyBrown', '#d404': 'PeachPuff4', '#d405': 'PeachPuff2', '#d402': 'PeachPuff', '#d403': 'PeachPuff1', '#d400': 'tan3', '#d401': 'tan4', '#d552': 'gray56', '#d460': 'grey99', '#d16': 'firebrick2', '#d17': 'snow4', '#d14': 'IndianRed', '#d15': 'IndianRed3', '#d12': 'firebrick1', '#d13': 'brown2', '#d10': 'RosyBrown', '#d11': 'brown1', '#d532': 'gray66', '#d533': 'grey66', '#d530': 'DarkGray', '#d531': 'DarkGrey', '#d536': 'gray64', '#d537': 'grey64', '#d18': 'brown3', '#d19': 'red', '#d329': 'MediumGoldenRod', '#d328': 'LemonChiffon2', '#d178': 'LightSkyBlue1', '#d179': 'LightSkyBlue2', '#d172': 'SkyBlue4', '#d173': 'SkyBlue1', '#d170': 'SteelBlue2', '#d171': 'SteelBlue3', '#d176': 'LightSkyBlue', '#d177': 'LightSkyBlue4', '#d174': 'SkyBlue2', '#d175': 'SkyBlue3', '#d626': 'gray21', '#d627': 'grey21', '#d624': 'gray22', '#d625': 'grey22', '#d622': 'gray23', '#d623': 'grey23', '#d620': 'gray24', '#d621': 'grey24', '#d628': 'gray20', '#d629': 'grey20', '#d219': 'azure4', '#d218': 'DarkSlateGray3', '#d217': 'PaleTurquoise3', '#d216': 'DarkSlateGray2', '#d215': 'LightCyan3', '#d214': 'azure3', '#d213': 'DarkSlateGray1', '#d212': 'PaleTurquoise2', '#d211': 'PaleTurquoise', '#d210': 'PaleTurquoise1', '#d669': 'gray0', '#d582': 'gray42', '#d442': 'coral3', '#d443': 'coral4', '#d440': 'coral1', '#d441': 'coral2', '#d446': 'tomato1', '#d447': 'tomato2', '#d444': 'tomato4', '#d445': 'tomato', '#d448': 'tomato3', '#d449': 'MistyRose4', '#d280': 'DarkGreen', '#d281': 'LawnGreen', '#d282': 'chartreuse', '#d283': 'chartreuse1', '#d284': 'chartreuse2', '#d285': 'chartreuse3', '#d286': 'chartreuse4', '#d287': 'GreenYellow', '#d288': 'DarkOliveGreen3', '#d289': 'DarkOliveGreen1', '#d361': 'orange', '#d360': 'wheat3', '#d367': 'moccasin', '#d366': 'wheat4', '#d365': 'orange4', '#d364': 'orange3', '#d49': 'LavenderBlush', '#d48': 'PaleVioletRed3', '#d45': 'PaleVioletRed', '#d44': 'PaleVioletRed4', '#d47': 'PaleVioletRed1', '#d46': 'PaleVioletRed2', '#d41': 'pink2', '#d40': 'pink1', '#d43': 'pink4', '#d42': 'pink3', '#d358': 'wheat', '#d527': 'grey68', '#d526': 'gray68', '#d614': 'gray27', '#d543': 'grey61', '#d542': 'gray61', '#d541': 'grey62', '#d540': 'gray62', '#d547': 'grey59', '#d546': 'gray59', '#d545': 'grey60', '#d544': 'gray60', '#d662': 'gray3', '#d663': 'grey3', '#d549': 'grey58', '#d548': 'gray58', '#d666': 'gray1', '#d667': 'grey1', '#d664': 'gray2', '#d665': 'grey2', '#d103': 'MediumOrchid4', '#d102': 'MediumOrchid3', '#d101': 'MediumOrchid2', '#d100': 'MediumOrchid1', '#d107': 'DarkOrchid3', '#d106': 'DarkOrchid1', '#d105': 'DarkOrchid', '#d104': 'DarkViolet', '#d109': 'DarkOrchid4', '#d108': 'DarkOrchid2', '#d244': 'SpringGreen', '#d245': 'SpringGreen1', '#d246': 'SpringGreen2', '#d247': 'SpringGreen3', '#d240': 'aquamarine3', '#d241': 'MediumAquamarine', '#d242': 'MediumSpringGreen', '#d243': 'MintCream', '#d327': 'LemonChiffon3', '#d326': 'khaki', '#d325': 'LemonChiffon1', '#d324': 'LemonChiffon', '#d248': 'SpringGreen4', '#d249': 'MediumSeaGreen', '#d321': 'khaki3', '#d320': 'khaki1', '#d350': 'DarkGoldenrod', '#d439': 'salmon4', '#d438': 'salmon3', '#d98': 'purple', '#d99': 'MediumOrchid', '#d96': 'DarkMagenta', '#d97': 'magenta4', '#d94': 'magenta2', '#d95': 'magenta3', '#d92': 'magenta1', '#d93': 'plum4', '#d90': 'fuchsia', '#d91': 'magenta', '#d433': 'OrangeRed3', '#d432': 'OrangeRed2', '#d431': 'OrangeRed1', '#d74': 'VioletRed', '#d75': 'orchid2', '#d76': 'orchid', '#d77': 'orchid1', '#d70': 'maroon2', '#d71': 'maroon3', '#d72': 'maroon4', '#d73': 'MediumVioletRed', '#d437': 'salmon2', '#d78': 'orchid3', '#d79': 'orchid4', '#d436': 'salmon1', '#d435': 'DarkSalmon', '#d434': 'OrangeRed4', '#d507': 'gray77', '#d506': 'grey78', '#d505': 'gray78', '#d504': 'grey79', '#d503': 'gray79', '#d502': 'grey80', '#d501': 'gray80', '#d500': 'grey81', '#d509': 'gray76', '#d508': 'grey77', '#d473': 'grey93', '#d369': 'NavajoWhite3', '#d147': 'CornflowerBlue', '#d146': 'RoyalBlue4', '#d145': 'RoyalBlue3', '#d144': 'RoyalBlue2', '#d143': 'RoyalBlue1', '#d142': 'RoyalBlue', '#d141': 'NavyBlue', '#d140': 'navy', '#d149': 'LightSteelBlue1', '#d148': 'LightSteelBlue', '#d472': 'gray93', '#d613': 'grey28', '#d363': 'orange2', '#d611': 'grey29', '#d610': 'gray29', '#d617': 'grey26', '#d616': 'gray26', '#d615': 'grey27', '#d362': 'orange1', '#d619': 'grey25', '#d618': 'gray25', '#d208': 'azure2', '#d209': 'LightCyan2', '#d200': 'turquoise4', '#d201': 'cadet blue', '#d202': 'CadetBlue', '#d203': 'DarkTurquoise', '#d204': 'azure', '#d205': 'azure1', '#d206': 'LightCyan', '#d207': 'LightCyan1', '#d608': 'gray30', '#d609': 'grey30', '#d374': 'NavajoWhite4', '#d375': 'AntiqueWhite4', '#d376': 'AntiqueWhite', '#d377': 'tan', '#d370': 'BlanchedAlmond', '#d371': 'NavajoWhite', '#d372': 'NavajoWhite1', '#d373': 'NavajoWhite2', '#d477': 'grey91', '#d476': 'gray91', '#d475': 'grey92', '#d474': 'gray92', '#d378': 'bisque4', '#d379': 'burlywood', '#d471': 'grey94', '#d470': 'gray94', '#d279': 'green', '#d278': 'green4', '#d275': 'PaleGreen4', '#d274': 'green2', '#d277': 'ForestGreen', '#d276': 'green3', '#d271': 'lime', '#d270': 'green1', '#d273': 'DarkSeaGreen4', '#d272': 'LimeGreen', '#d38': 'pink', '#d39': 'crimson', '#d30': 'DarkRed', '#d31': 'red4', '#d32': 'maroon', '#d33': 'LightPink1', '#d34': 'LightPink3', '#d35': 'LightPink4', '#d36': 'LightPink2', '#d37': 'LightPink', '#d658': 'gray5', '#d389': 'bisque', '#d388': 'bisque2', '#d381': 'burlywood1', '#d380': 'AntiqueWhite2', '#d383': 'burlywood2', '#d382': 'burlywood3', '#d385': 'burlywood4', '#d384': 'AntiqueWhite1', '#d387': 'DarkOrange', '#d386': 'AntiqueWhite3', '#d189': 'LightBlue2', '#d188': 'LightBlue1', '#d183': 'DeepSkyBlue', '#d182': 'LightBlue3', '#d181': 'SkyBlue', '#d180': 'LightSkyBlue3', '#d187': 'DeepSkyBlue3', '#d186': 'DeepSkyBlue4', '#d185': 'DeepSkyBlue2', '#d184': 'DeepSkyBlue1', '#d657': 'grey6', '#d656': 'gray6', '#d655': 'grey7', '#d654': 'gray7', '#d653': 'grey8', '#d652': 'gray8', '#d651': 'grey9', '#d650': 'gray9', '#d550': 'gray57', '#d659': 'grey5', '#d551': 'grey57', '#d495': 'LightGray', '#d494': 'grey83', '#d497': 'gray82', '#d496': 'LightGrey', '#d491': 'gray84', '#d490': 'grey85', '#d493': 'gray83', '#d492': 'grey84', '#d554': 'gray55', '#d555': 'grey55', '#d556': 'gray54', '#d557': 'grey54', '#d499': 'gray81', '#d498': 'grey82', '#d323': 'PaleGoldenrod', '#d553': 'grey56'} diff --git a/share/frontend/imgrid/colors/colors/js/colordictionaries2.js b/share/frontend/imgrid/colors/colors/js/colordictionaries2.js deleted file mode 100755 index a4acbf2..0000000 --- a/share/frontend/imgrid/colors/colors/js/colordictionaries2.js +++ /dev/null @@ -1,3 +0,0 @@ -rgbtohex = {'rgb(255, 235, 205)': '#FFEBCD', 'rgb(205, 155, 155)': '#CD9B9B', 'rgb(0, 0, 128)': '#000080', 'rgb(179, 238, 58)': '#B3EE3A', 'rgb(205, 51, 51)': '#CD3333', 'rgb(118, 238, 198)': '#76EEC6', 'rgb(214, 214, 214)': '#D6D6D6', 'rgb(189, 189, 189)': '#BDBDBD', 'rgb(139, 131, 120)': '#8B8378', 'rgb(0, 238, 238)': '#00EEEE', 'rgb(137, 104, 205)': '#8968CD', 'rgb(85, 107, 47)': '#556B2F', 'rgb(107, 107, 107)': '#6B6B6B', 'rgb(205, 205, 180)': '#CDCDB4', 'rgb(218, 112, 214)': '#DA70D6', 'rgb(34, 139, 34)': '#228B22', 'rgb(245, 222, 179)': '#F5DEB3', 'rgb(139, 90, 43)': '#8B5A2B', 'rgb(255, 246, 143)': '#FFF68F', 'rgb(205, 91, 69)': '#CD5B45', 'rgb(255, 187, 255)': '#FFBBFF', 'rgb(162, 181, 205)': '#A2B5CD', 'rgb(238, 118, 0)': '#EE7600', 'rgb(238, 154, 73)': '#EE9A49', 'rgb(194, 194, 194)': '#C2C2C2', 'rgb(184, 134, 11)': '#B8860B', 'rgb(93, 71, 139)': '#5D478B', 'rgb(255, 182, 193)': '#FFB6C1', 'rgb(139, 69, 0)': '#8B4500', 'rgb(105, 89, 205)': '#6959CD', 'rgb(238, 173, 14)': '#EEAD0E', 'rgb(151, 255, 255)': '#97FFFF', 'rgb(205, 150, 205)': '#CD96CD', 'rgb(255, 69, 0)': '#FF4500', 'rgb(0, 134, 139)': '#00868B', 'rgb(0, 238, 0)': '#00EE00', 'rgb(255, 106, 106)': '#FF6A6A', 'rgb(186, 186, 186)': '#BABABA', 'rgb(143, 188, 143)': '#8FBC8F', 'rgb(139, 99, 108)': '#8B636C', 'rgb(224, 102, 255)': '#E066FF', 'rgb(100, 149, 237)': '#6495ED', 'rgb(0, 139, 69)': '#008B45', 'rgb(178, 223, 238)': '#B2DFEE', 'rgb(205, 192, 176)': '#CDC0B0', 'rgb(0, 206, 209)': '#00CED1', 'rgb(104, 131, 139)': '#68838B', 'rgb(155, 205, 155)': '#9BCD9B', 'rgb(139, 76, 57)': '#8B4C39', 'rgb(205, 149, 12)': '#CD950C', 'rgb(67, 205, 128)': '#43CD80', 'rgb(54, 54, 54)': '#363636', 'rgb(0, 205, 205)': '#00CDCD', 'rgb(99, 184, 255)': '#63B8FF', 'rgb(238, 233, 233)': '#EEE9E9', 'rgb(205, 201, 201)': '#CDC9C9', 'rgb(156, 156, 156)': '#9C9C9C', 'rgb(139, 125, 123)': '#8B7D7B', 'rgb(148, 148, 148)': '#949494', 'rgb(102, 205, 170)': '#66CDAA', 'rgb(139, 54, 38)': '#8B3626', 'rgb(255, 181, 197)': '#FFB5C5', 'rgb(173, 216, 230)': '#ADD8E6', 'rgb(46, 46, 46)': '#2E2E2E', 'rgb(164, 211, 238)': '#A4D3EE', 'rgb(232, 232, 232)': '#E8E8E8', 'rgb(105, 105, 105)': '#696969', 'rgb(205, 193, 197)': '#CDC1C5', 'rgb(20, 20, 20)': '#141414', 'rgb(139, 139, 131)': '#8B8B83', 'rgb(255, 114, 86)': '#FF7256', 'rgb(0, 104, 139)': '#00688B', 'rgb(205, 41, 144)': '#CD2990', 'rgb(127, 127, 127)': '#7F7F7F', 'rgb(255, 239, 213)': '#FFEFD5', 'rgb(238, 238, 209)': '#EEEED1', 'rgb(242, 242, 242)': '#F2F2F2', 'rgb(240, 230, 140)': '#F0E68C', 'rgb(238, 207, 161)': '#EECFA1', 'rgb(25, 25, 112)': '#191970', 'rgb(205, 79, 57)': '#CD4F39', 'rgb(84, 84, 84)': '#545454', 'rgb(110, 139, 61)': '#6E8B3D', 'rgb(255, 215, 0)': '#FFD700', 'rgb(143, 143, 143)': '#8F8F8F', 'rgb(238, 59, 59)': '#EE3B3B', 'rgb(166, 166, 166)': '#A6A6A6', 'rgb(255, 160, 122)': '#FFA07A', 'rgb(51, 51, 51)': '#333333', 'rgb(224, 238, 224)': '#E0EEE0', 'rgb(139, 121, 94)': '#8B795E', 'rgb(110, 123, 139)': '#6E7B8B', 'rgb(26, 26, 26)': '#1A1A1A', 'rgb(238, 99, 99)': '#EE6363', 'rgb(178, 58, 238)': '#B23AEE', 'rgb(238, 197, 145)': '#EEC591', 'rgb(171, 171, 171)': '#ABABAB', 'rgb(237, 237, 237)': '#EDEDED', 'rgb(238, 0, 0)': '#EE0000', 'rgb(139, 71, 38)': '#8B4726', 'rgb(82, 139, 139)': '#528B8B', 'rgb(139, 105, 105)': '#8B6969', 'rgb(160, 32, 240)': '#A020F0', 'rgb(78, 238, 148)': '#4EEE94', 'rgb(205, 85, 85)': '#CD5555', 'rgb(205, 181, 205)': '#CDB5CD', 'rgb(184, 184, 184)': '#B8B8B8', 'rgb(255, 222, 173)': '#FFDEAD', 'rgb(8, 8, 8)': '#080808', 'rgb(255, 248, 220)': '#FFF8DC', 'rgb(175, 238, 238)': '#AFEEEE', 'rgb(255, 130, 71)': '#FF8247', 'rgb(13, 13, 13)': '#0D0D0D', 'rgb(0, 139, 139)': '#008B8B', 'rgb(187, 255, 255)': '#BBFFFF', 'rgb(147, 112, 219)': '#9370DB', 'rgb(0, 128, 0)': '#008000', 'rgb(238, 64, 0)': '#EE4000', 'rgb(238, 18, 137)': '#EE1289', 'rgb(54, 100, 139)': '#36648B', 'rgb(176, 176, 176)': '#B0B0B0', 'rgb(0, 0, 238)': '#0000EE', 'rgb(238, 154, 0)': '#EE9A00', 'rgb(188, 143, 143)': '#BC8F8F', 'rgb(240, 255, 255)': '#F0FFFF', 'rgb(191, 62, 255)': '#BF3EFF', 'rgb(171, 130, 255)': '#AB82FF', 'rgb(205, 173, 0)': '#CDAD00', 'rgb(255, 48, 48)': '#FF3030', 'rgb(122, 197, 205)': '#7AC5CD', 'rgb(139, 87, 66)': '#8B5742', 'rgb(204, 204, 204)': '#CCCCCC', 'rgb(205, 129, 98)': '#CD8162', 'rgb(224, 224, 224)': '#E0E0E0', 'rgb(218, 165, 32)': '#DAA520', 'rgb(205, 145, 158)': '#CD919E', 'rgb(139, 62, 47)': '#8B3E2F', 'rgb(238, 122, 233)': '#EE7AE9', 'rgb(152, 251, 152)': '#98FB98', 'rgb(240, 128, 128)': '#F08080', 'rgb(162, 205, 90)': '#A2CD5A', 'rgb(79, 79, 79)': '#4F4F4F', 'rgb(169, 169, 169)': '#A9A9A9', 'rgb(255, 127, 0)': '#FF7F00', 'rgb(139, 28, 98)': '#8B1C62', 'rgb(253, 245, 230)': '#FDF5E6', 'rgb(141, 238, 238)': '#8DEEEE', 'rgb(238, 213, 210)': '#EED5D2', 'rgb(208, 32, 144)': '#D02090', 'rgb(0, 205, 0)': '#00CD00', 'rgb(139, 71, 137)': '#8B4789', 'rgb(205, 201, 165)': '#CDC9A5', 'rgb(0, 229, 238)': '#00E5EE', 'rgb(205, 140, 149)': '#CD8C95', 'rgb(124, 205, 124)': '#7CCD7C', 'rgb(220, 220, 220)': '#DCDCDC', 'rgb(238, 229, 222)': '#EEE5DE', 'rgb(87, 87, 87)': '#575757', 'rgb(70, 130, 180)': '#4682B4', 'rgb(205, 104, 137)': '#CD6889', 'rgb(15, 15, 15)': '#0F0F0F', 'rgb(38, 38, 38)': '#262626', 'rgb(238, 180, 34)': '#EEB422', 'rgb(205, 200, 177)': '#CDC8B1', 'rgb(238, 210, 238)': '#EED2EE', 'rgb(150, 150, 150)': '#969696', 'rgb(0, 255, 127)': '#00FF7F', 'rgb(139, 126, 102)': '#8B7E66', 'rgb(205, 175, 149)': '#CDAF95', 'rgb(152, 245, 255)': '#98F5FF', 'rgb(0, 250, 154)': '#00FA9A', 'rgb(120, 120, 120)': '#787878', 'rgb(238, 118, 33)': '#EE7621', 'rgb(128, 128, 0)': '#808000', 'rgb(139, 137, 112)': '#8B8970', 'rgb(107, 142, 35)': '#6B8E23', 'rgb(219, 219, 219)': '#DBDBDB', 'rgb(205, 205, 0)': '#CDCD00', 'rgb(180, 205, 205)': '#B4CDCD', 'rgb(115, 115, 115)': '#737373', 'rgb(131, 139, 139)': '#838B8B', 'rgb(0, 178, 238)': '#00B2EE', 'rgb(94, 94, 94)': '#5E5E5E', 'rgb(135, 135, 135)': '#878787', 'rgb(145, 145, 145)': '#919191', 'rgb(205, 0, 0)': '#CD0000', 'rgb(16, 78, 139)': '#104E8B', 'rgb(133, 133, 133)': '#858585', 'rgb(205, 38, 38)': '#CD2626', 'rgb(255, 193, 193)': '#FFC1C1', 'rgb(205, 183, 181)': '#CDB7B5', 'rgb(122, 55, 139)': '#7A378B', 'rgb(154, 192, 205)': '#9AC0CD', 'rgb(191, 239, 255)': '#BFEFFF', 'rgb(219, 112, 147)': '#DB7093', 'rgb(121, 205, 205)': '#79CDCD', 'rgb(238, 232, 170)': '#EEE8AA', 'rgb(102, 205, 0)': '#66CD00', 'rgb(255, 185, 15)': '#FFB90F', 'rgb(176, 196, 222)': '#B0C4DE', 'rgb(255, 236, 139)': '#FFEC8B', 'rgb(205, 105, 201)': '#CD69C9', 'rgb(250, 250, 250)': '#FAFAFA', 'rgb(245, 245, 220)': '#F5F5DC', 'rgb(238, 106, 80)': '#EE6A50', 'rgb(64, 64, 64)': '#404040', 'rgb(238, 220, 130)': '#EEDC82', 'white': '#000000', 'rgb(125, 38, 205)': '#7D26CD', 'rgb(205, 133, 63)': '#CD853F', 'rgb(139, 102, 139)': '#8B668B', 'rgb(71, 71, 71)': '#474747', 'rgb(118, 238, 0)': '#76EE00', 'rgb(192, 255, 62)': '#C0FF3E', 'rgb(0, 0, 139)': '#00008B', 'rgb(248, 248, 255)': '#F8F8FF', 'rgb(3, 3, 3)': '#030303', 'rgb(176, 226, 255)': '#B0E2FF', 'rgb(139, 105, 20)': '#8B6914', 'rgb(255, 105, 180)': '#FF69B4', 'rgb(124, 252, 0)': '#7CFC00', 'rgb(238, 238, 224)': '#EEEEE0', 'rgb(139, 69, 19)': '#8B4513', 'rgb(139, 0, 139)': '#8B008B', 'rgb(31, 31, 31)': '#1F1F1F', 'rgb(159, 182, 205)': '#9FB6CD', 'rgb(181, 181, 181)': '#B5B5B5', 'rgb(0, 245, 255)': '#00F5FF', 'rgb(105, 139, 105)': '#698B69', 'rgb(159, 121, 238)': '#9F79EE', 'rgb(205, 198, 115)': '#CDC673', 'rgb(77, 77, 77)': '#4D4D4D', 'rgb(139, 90, 0)': '#8B5A00', 'rgb(122, 122, 122)': '#7A7A7A', 'rgb(224, 238, 238)': '#E0EEEE', 'rgb(50, 129, 75)': '#32814B', 'rgb(202, 225, 255)': '#CAE1FF', 'rgb(255, 110, 180)': '#FF6EB4', 'rgb(238, 48, 167)': '#EE30A7', 'rgb(220, 20, 60)': '#DC143C', 'rgb(127, 255, 212)': '#7FFFD4', 'rgb(205, 179, 139)': '#CDB38B', 'rgb(28, 28, 28)': '#1C1C1C', 'rgb(229, 229, 229)': '#E5E5E5', 'rgb(47, 79, 79)': '#2F4F4F', 'rgb(59, 59, 59)': '#3B3B3B', 'rgb(69, 139, 116)': '#458B74', 'rgb(255, 211, 155)': '#FFD39B', 'rgb(139, 119, 101)': '#8B7765', 'rgb(238, 230, 133)': '#EEE685', 'rgb(10, 10, 10)': '#0A0A0A', 'rgb(144, 238, 144)': '#90EE90', 'rgb(99, 99, 99)': '#636363', 'rgb(188, 238, 104)': '#BCEE68', 'rgb(255, 231, 186)': '#FFE7BA', 'rgb(154, 50, 205)': '#9A32CD', 'rgb(46, 139, 87)': '#2E8B57', 'rgb(145, 44, 238)': '#912CEE', 'rgb(255, 240, 245)': '#FFF0F5', 'rgb(67, 110, 238)': '#436EEE', 'rgb(238, 180, 180)': '#EEB4B4', 'rgb(108, 166, 205)': '#6CA6CD', 'rgb(173, 173, 173)': '#ADADAD', 'rgb(176, 48, 96)': '#B03060', 'rgb(23, 23, 23)': '#171717', 'rgb(138, 138, 138)': '#8A8A8A', 'rgb(139, 137, 137)': '#8B8989', 'rgb(209, 193, 102)': '#D1C166', 'rgb(139, 123, 139)': '#8B7B8B', 'rgb(154, 255, 154)': '#9AFF9A', 'rgb(130, 130, 130)': '#828282', 'rgb(255, 99, 71)': '#FF6347', 'rgb(205, 183, 158)': '#CDB79E', 'rgb(205, 102, 29)': '#CD661D', 'rgb(128, 0, 0)': '#800000', 'rgb(0, 0, 255)': '#0000FF', 'rgb(255, 52, 179)': '#FF34B3', 'rgb(250, 235, 215)': '#FAEBD7', 'rgb(163, 163, 163)': '#A3A3A3', 'rgb(56, 56, 56)': '#383838', 'rgb(85, 26, 139)': '#551A8B', 'rgb(139, 58, 58)': '#8B3A3A', 'rgb(168, 168, 168)': '#A8A8A8', 'rgb(255, 225, 255)': '#FFE1FF', 'rgb(125, 125, 125)': '#7D7D7D', 'rgb(131, 111, 255)': '#836FFF', 'rgb(95, 158, 160)': '#5F9EA0', 'rgb(165, 42, 42)': '#A52A2A', 'rgb(245, 255, 250)': '#F5FFFA', 'rgb(255, 218, 185)': '#FFDAB9', 'rgb(255, 228, 225)': '#FFE4E1', 'rgb(216, 191, 216)': '#D8BFD8', 'rgb(139, 101, 8)': '#8B6508', 'rgb(205, 104, 57)': '#CD6839', 'rgb(255, 131, 250)': '#FF83FA', 'rgb(82, 82, 82)': '#525252', 'rgb(117, 117, 117)': '#757575', 'rgb(255, 165, 0)': '#FFA500', 'rgb(255, 64, 64)': '#FF4040', 'rgb(255, 165, 79)': '#FFA54F', 'rgb(205, 55, 0)': '#CD3700', 'rgb(188, 210, 238)': '#BCD2EE', 'rgb(238, 121, 159)': '#EE799F', 'rgb(5, 5, 5)': '#050505', 'rgb(217, 217, 217)': '#D9D9D9', 'rgb(205, 186, 150)': '#CDBA96', 'rgb(139, 131, 134)': '#8B8386', 'rgb(185, 211, 238)': '#B9D3EE', 'rgb(235, 235, 235)': '#EBEBEB', 'rgb(230, 230, 250)': '#E6E6FA', 'rgb(41, 41, 41)': '#292929', 'rgb(205, 92, 92)': '#CD5C5C', 'rgb(131, 139, 131)': '#838B83', 'rgb(123, 104, 238)': '#7B68EE', 'rgb(128, 0, 128)': '#800080', 'rgb(139, 26, 26)': '#8B1A1A', 'rgb(141, 182, 205)': '#8DB6CD', 'rgb(212, 212, 212)': '#D4D4D4', 'rgb(238, 162, 173)': '#EEA2AD', 'rgb(255, 255, 0)': '#FFFF00', 'rgb(192, 192, 192)': '#C0C0C0', 'rgb(139, 71, 93)': '#8B475D', 'rgb(0, 100, 0)': '#006400', 'rgb(139, 37, 0)': '#8B2500', 'rgb(198, 226, 255)': '#C6E2FF', 'rgb(24, 116, 205)': '#1874CD', 'rgb(178, 34, 34)': '#B22222', 'rgb(28, 134, 238)': '#1C86EE', 'rgb(255, 0, 255)': '#FF00FF', 'rgb(33, 33, 33)': '#212121', 'rgb(209, 238, 238)': '#D1EEEE', 'rgb(255, 127, 80)': '#FF7F50', 'rgb(0, 154, 205)': '#009ACD', 'rgb(255, 255, 224)': '#FFFFE0', 'rgb(75, 0, 130)': '#4B0082', 'rgb(160, 82, 45)': '#A0522D', 'rgb(138, 43, 226)': '#8A2BE2', 'rgb(238, 224, 229)': '#EEE0E5', 'rgb(106, 90, 205)': '#6A5ACD', 'rgb(227, 227, 227)': '#E3E3E3', 'rgb(255, 250, 250)': '#FFFAFA', 'rgb(255, 174, 185)': '#FFAEB9', 'rgb(205, 0, 205)': '#CD00CD', 'rgb(126, 126, 126)': '#7E7E7E', 'rgb(139, 10, 80)': '#8B0A50', 'rgb(186, 85, 211)': '#BA55D3', 'rgb(205, 133, 0)': '#CD8500', 'rgb(211, 211, 211)': '#D3D3D3', 'rgb(69, 69, 69)': '#454545', 'rgb(222, 222, 222)': '#DEDEDE', 'rgb(221, 160, 221)': '#DDA0DD', 'rgb(255, 255, 240)': '#FFFFF0', 'rgb(112, 112, 112)': '#707070', 'rgb(209, 95, 238)': '#D15FEE', 'rgb(0, 255, 0)': '#00FF00', 'rgb(238, 233, 191)': '#EEE9BF', 'rgb(92, 92, 92)': '#5C5C5C', 'rgb(205, 112, 84)': '#CD7054', 'rgb(255, 228, 196)': '#FFE4C4', 'rgb(255, 192, 203)': '#FFC0CB', 'rgb(238, 130, 238)': '#EE82EE', 'rgb(122, 103, 238)': '#7A67EE', 'rgb(238, 121, 66)': '#EE7942', 'rgb(102, 139, 139)': '#668B8B', 'rgb(250, 240, 230)': '#FAF0E6', 'rgb(247, 247, 247)': '#F7F7F7', 'rgb(32, 178, 170)': '#20B2AA', 'rgb(97, 97, 97)': '#616161', 'rgb(150, 205, 205)': '#96CDCD', 'rgb(158, 158, 158)': '#9E9E9E', 'rgb(238, 58, 140)': '#EE3A8C', 'rgb(255, 228, 181)': '#FFE4B5', 'rgb(0, 197, 205)': '#00C5CD', 'rgb(205, 96, 144)': '#CD6090', 'rgb(205, 16, 118)': '#CD1076', 'rgb(240, 240, 240)': '#F0F0F0', 'rgb(176, 224, 230)': '#B0E0E6', 'rgb(199, 21, 133)': '#C71585', 'rgb(238, 203, 173)': '#EECBAD', 'rgb(173, 255, 47)': '#ADFF2F', 'rgb(238, 174, 238)': '#EEAEEE', 'rgb(191, 191, 191)': '#BFBFBF', 'rgb(222, 184, 135)': '#DEB887', 'rgb(18, 18, 18)': '#121212', 'rgb(83, 134, 139)': '#53868B', 'rgb(139, 134, 130)': '#8B8682', 'rgb(142, 229, 238)': '#8EE5EE', 'rgb(0, 139, 0)': '#008B00', 'rgb(240, 255, 240)': '#F0FFF0', 'rgb(104, 34, 139)': '#68228B', 'rgb(193, 255, 193)': '#C1FFC1', 'rgb(0, 0, 0)': '#000000', 'rgb(139, 58, 98)': '#8B3A62', 'rgb(89, 89, 89)': '#595959', 'rgb(72, 118, 255)': '#4876FF', 'rgb(108, 123, 139)': '#6C7B8B', 'rgb(255, 20, 147)': '#FF1493', 'rgb(255, 250, 240)': '#FFFAF0', 'rgb(132, 112, 255)': '#8470FF', 'rgb(255, 62, 150)': '#FF3E96', 'rgb(139, 125, 107)': '#8B7D6B', 'rgb(64, 224, 208)': '#40E0D0', 'rgb(148, 0, 211)': '#9400D3', 'rgb(238, 106, 167)': '#EE6AA7', 'rgb(238, 44, 44)': '#EE2C2C', 'rgb(72, 209, 204)': '#48D1CC', 'rgb(205, 155, 29)': '#CD9B1D', 'rgb(139, 0, 0)': '#8B0000', 'rgb(238, 92, 66)': '#EE5C42', 'rgb(238, 216, 174)': '#EED8AE', 'rgb(65, 105, 225)': '#4169E1', 'rgb(0, 205, 102)': '#00CD66', 'rgb(96, 123, 139)': '#607B8B', 'rgb(210, 180, 140)': '#D2B48C', 'rgb(135, 206, 255)': '#87CEFF', 'rgb(252, 252, 252)': '#FCFCFC', 'rgb(61, 61, 61)': '#3D3D3D', 'rgb(205, 102, 0)': '#CD6600', 'rgb(58, 95, 205)': '#3A5FCD', 'rgb(30, 144, 255)': '#1E90FF', 'rgb(245, 245, 245)': '#F5F5F5', 'rgb(255, 130, 171)': '#FF82AB', 'rgb(60, 179, 113)': '#3CB371', 'rgb(139, 139, 122)': '#8B8B7A', 'rgb(139, 136, 120)': '#8B8878', 'rgb(139, 34, 82)': '#8B2252', 'rgb(238, 223, 204)': '#EEDFCC', 'rgb(238, 213, 183)': '#EED5B7', 'rgb(250, 250, 210)': '#FAFAD2', 'rgb(255, 250, 205)': '#FFFACD', 'rgb(39, 64, 139)': '#27408B', 'rgb(84, 139, 84)': '#548B54', 'rgb(238, 221, 130)': '#EEDD82', 'rgb(139, 95, 101)': '#8B5F65', 'rgb(210, 105, 30)': '#D2691E', 'rgb(139, 139, 0)': '#8B8B00', 'rgb(238, 149, 114)': '#EE9572', 'rgb(0, 255, 255)': '#00FFFF', 'rgb(71, 60, 139)': '#473C8B', 'rgb(207, 207, 207)': '#CFCFCF', 'rgb(153, 50, 204)': '#9932CC', 'rgb(36, 36, 36)': '#242424', 'rgb(153, 153, 153)': '#999999', 'rgb(250, 128, 114)': '#FA8072', 'rgb(174, 238, 238)': '#AEEEEE', 'rgb(139, 117, 0)': '#8B7500', 'rgb(139, 35, 35)': '#8B2323', 'rgb(92, 172, 238)': '#5CACEE', 'rgb(48, 48, 48)': '#303030', 'rgb(139, 129, 76)': '#8B814C', 'rgb(72, 61, 139)': '#483D8B', 'rgb(238, 169, 184)': '#EEA9B8', 'rgb(69, 139, 0)': '#458B00', 'rgb(0, 128, 128)': '#008080', 'rgb(255, 255, 255)': '#FFFFFF', 'rgb(244, 164, 96)': '#F4A460', 'rgb(154, 205, 50)': '#9ACD32', 'rgb(126, 192, 238)': '#7EC0EE', 'rgb(209, 209, 209)': '#D1D1D1', 'rgb(74, 112, 139)': '#4A708B', 'rgb(112, 128, 144)': '#708090', 'rgb(105, 139, 34)': '#698B22', 'rgb(110, 110, 110)': '#6E6E6E', 'rgb(179, 179, 179)': '#B3B3B3', 'rgb(205, 50, 120)': '#CD3278', 'rgb(119, 136, 153)': '#778899', 'rgb(139, 115, 85)': '#8B7355', 'rgb(255, 193, 37)': '#FFC125', 'rgb(224, 255, 255)': '#E0FFFF', 'rgb(66, 66, 66)': '#424242', 'rgb(193, 205, 193)': '#C1CDC1', 'rgb(0, 191, 255)': '#00BFFF', 'rgb(205, 205, 193)': '#CDCDC1', 'rgb(238, 238, 0)': '#EEEE00', 'rgb(255, 140, 105)': '#FF8C69', 'rgb(135, 206, 235)': '#87CEEB', 'rgb(238, 201, 0)': '#EEC900', 'rgb(238, 232, 205)': '#EEE8CD', 'rgb(0, 0, 205)': '#0000CD', 'rgb(238, 130, 98)': '#EE8262', 'rgb(155, 48, 255)': '#9B30FF', 'rgb(43, 43, 43)': '#2B2B2B', 'rgb(240, 248, 255)': '#F0F8FF', 'rgb(238, 0, 238)': '#EE00EE', 'rgb(128, 128, 128)': '#808080', 'rgb(193, 205, 205)': '#C1CDCD', 'rgb(50, 205, 50)': '#32CD32', 'rgb(201, 201, 201)': '#C9C9C9', 'rgb(255, 239, 219)': '#FFEFDB', 'rgb(196, 196, 196)': '#C4C4C4', 'rgb(135, 206, 250)': '#87CEFA', 'rgb(139, 134, 78)': '#8B864E', 'rgb(79, 148, 205)': '#4F94CD', 'rgb(74, 74, 74)': '#4A4A4A', 'rgb(255, 0, 0)': '#FF0000', 'rgb(233, 150, 122)': '#E9967A', 'rgb(205, 190, 112)': '#CDBE70', 'rgb(84, 255, 159)': '#54FF9F', 'rgb(205, 170, 125)': '#CDAA7D', 'rgb(127, 255, 0)': '#7FFF00', 'rgb(102, 102, 102)': '#666666', 'rgb(180, 238, 180)': '#B4EEB4', 'rgb(122, 139, 139)': '#7A8B8B', 'rgb(255, 140, 0)': '#FF8C00', 'rgb(205, 197, 191)': '#CDC5BF', 'rgb(140, 140, 140)': '#8C8C8C', 'rgb(199, 199, 199)': '#C7C7C7', 'rgb(202, 255, 112)': '#CAFF70', 'rgb(255, 245, 238)': '#FFF5EE', 'rgb(189, 183, 107)': '#BDB76B', 'rgb(0, 238, 118)': '#00EE76', 'rgb(180, 82, 205)': '#B452CD', 'rgb(255, 127, 36)': '#FF7F24', 'rgb(161, 161, 161)': '#A1A1A1'} -rgbtoname = {'rgb(255, 235, 205)': 'BlanchedAlmond', 'rgb(205, 155, 155)': 'RosyBrown3', 'rgb(0, 0, 128)': 'NavyBlue', 'rgb(179, 238, 58)': 'OliveDrab2', 'rgb(205, 51, 51)': 'brown3', 'rgb(118, 238, 198)': 'aquamarine2', 'rgb(214, 214, 214)': 'grey84', 'rgb(189, 189, 189)': 'grey74', 'rgb(139, 131, 120)': 'AntiqueWhite4', 'rgb(0, 238, 238)': 'cyan2', 'rgb(137, 104, 205)': 'MediumPurple3', 'rgb(85, 107, 47)': 'DarkOliveGreen', 'rgb(107, 107, 107)': 'grey42', 'rgb(205, 205, 180)': 'LightYellow3', 'rgb(218, 112, 214)': 'orchid', 'rgb(34, 139, 34)': 'ForestGreen', 'rgb(245, 222, 179)': 'wheat', 'rgb(139, 90, 43)': 'tan4', 'rgb(255, 246, 143)': 'khaki1', 'rgb(205, 91, 69)': 'coral3', 'rgb(255, 187, 255)': 'plum1', 'rgb(162, 181, 205)': 'LightSteelBlue3', 'rgb(238, 118, 0)': 'DarkOrange2', 'rgb(238, 154, 73)': 'tan2', 'rgb(194, 194, 194)': 'grey76', 'rgb(184, 134, 11)': 'DarkGoldenrod', 'rgb(93, 71, 139)': 'MediumPurple4', 'rgb(255, 182, 193)': 'LightPink', 'rgb(139, 69, 0)': 'DarkOrange4', 'rgb(105, 89, 205)': 'SlateBlue3', 'rgb(238, 173, 14)': 'DarkGoldenrod2', 'rgb(151, 255, 255)': 'DarkSlateGray1', 'rgb(205, 150, 205)': 'plum3', 'rgb(255, 69, 0)': 'OrangeRed1', 'rgb(0, 134, 139)': 'turquoise4', 'rgb(0, 238, 0)': 'green2', 'rgb(255, 106, 106)': 'IndianRed1', 'rgb(186, 186, 186)': 'grey73', 'rgb(143, 188, 143)': 'DarkSeaGreen', 'rgb(139, 99, 108)': 'pink4', 'rgb(224, 102, 255)': 'MediumOrchid1', 'rgb(100, 149, 237)': 'CornflowerBlue', 'rgb(0, 139, 69)': 'SpringGreen4', 'rgb(178, 223, 238)': 'LightBlue2', 'rgb(205, 192, 176)': 'AntiqueWhite3', 'rgb(0, 206, 209)': 'DarkTurquoise', 'rgb(104, 131, 139)': 'LightBlue4', 'rgb(155, 205, 155)': 'DarkSeaGreen3', 'rgb(139, 76, 57)': 'salmon4', 'rgb(205, 149, 12)': 'DarkGoldenrod3', 'rgb(67, 205, 128)': 'SeaGreen3', 'rgb(54, 54, 54)': 'grey21', 'rgb(0, 205, 205)': 'cyan3', 'rgb(99, 184, 255)': 'SteelBlue1', 'rgb(238, 233, 233)': 'snow2', 'rgb(205, 201, 201)': 'snow3', 'rgb(156, 156, 156)': 'grey61', 'rgb(139, 125, 123)': 'MistyRose4', 'rgb(148, 148, 148)': 'grey58', 'rgb(102, 205, 170)': 'MediumAquamarine', 'rgb(139, 54, 38)': 'tomato4', 'rgb(255, 181, 197)': 'pink1', 'rgb(173, 216, 230)': 'LightBlue', 'rgb(46, 46, 46)': 'grey18', 'rgb(164, 211, 238)': 'LightSkyBlue2', 'rgb(232, 232, 232)': 'grey91', 'rgb(105, 105, 105)': 'grey41', 'rgb(205, 193, 197)': 'LavenderBlush3', 'rgb(20, 20, 20)': 'grey8', 'rgb(139, 139, 131)': 'ivory4', 'rgb(255, 114, 86)': 'coral1', 'rgb(0, 104, 139)': 'DeepSkyBlue4', 'rgb(205, 41, 144)': 'maroon3', 'rgb(127, 127, 127)': 'grey50', 'rgb(255, 239, 213)': 'PapayaWhip', 'rgb(238, 238, 209)': 'LightYellow2', 'rgb(242, 242, 242)': 'grey95', 'rgb(240, 230, 140)': 'khaki', 'rgb(238, 207, 161)': 'NavajoWhite2', 'rgb(25, 25, 112)': 'MidnightBlue', 'rgb(205, 79, 57)': 'tomato3', 'rgb(84, 84, 84)': 'grey33', 'rgb(110, 139, 61)': 'DarkOliveGreen4', 'rgb(255, 215, 0)': 'gold1', 'rgb(143, 143, 143)': 'grey56', 'rgb(238, 59, 59)': 'brown2', 'rgb(166, 166, 166)': 'grey65', 'rgb(255, 160, 122)': 'LightSalmon1', 'rgb(51, 51, 51)': 'grey20', 'rgb(224, 238, 224)': 'honeydew2', 'rgb(139, 121, 94)': 'NavajoWhite4', 'rgb(110, 123, 139)': 'LightSteelBlue4', 'rgb(26, 26, 26)': 'grey10', 'rgb(238, 99, 99)': 'IndianRed2', 'rgb(178, 58, 238)': 'DarkOrchid2', 'rgb(238, 197, 145)': 'burlywood2', 'rgb(171, 171, 171)': 'grey67', 'rgb(237, 237, 237)': 'grey93', 'rgb(238, 0, 0)': 'red2', 'rgb(139, 71, 38)': 'sienna4', 'rgb(82, 139, 139)': 'DarkSlateGray4', 'rgb(139, 105, 105)': 'RosyBrown4', 'rgb(160, 32, 240)': 'purple', 'rgb(78, 238, 148)': 'SeaGreen2', 'rgb(205, 85, 85)': 'IndianRed3', 'rgb(205, 181, 205)': 'thistle3', 'rgb(184, 184, 184)': 'grey72', 'rgb(255, 222, 173)': 'NavajoWhite1', 'rgb(8, 8, 8)': 'grey3', 'rgb(255, 248, 220)': 'cornsilk1', 'rgb(175, 238, 238)': 'PaleTurquoise', 'rgb(255, 130, 71)': 'sienna1', 'rgb(13, 13, 13)': 'grey5', 'rgb(0, 139, 139)': 'DarkCyan', 'rgb(187, 255, 255)': 'PaleTurquoise1', 'rgb(147, 112, 219)': 'MediumPurple', 'rgb(0, 128, 0)': 'green', 'rgb(238, 64, 0)': 'OrangeRed2', 'rgb(238, 18, 137)': 'DeepPink2', 'rgb(54, 100, 139)': 'SteelBlue4', 'rgb(176, 176, 176)': 'grey69', 'rgb(0, 0, 238)': 'blue2', 'rgb(238, 154, 0)': 'orange2', 'rgb(188, 143, 143)': 'RosyBrown', 'rgb(240, 255, 255)': 'azure1', 'rgb(191, 62, 255)': 'DarkOrchid1', 'rgb(171, 130, 255)': 'MediumPurple1', 'rgb(205, 173, 0)': 'gold3', 'rgb(255, 48, 48)': 'firebrick1', 'rgb(122, 197, 205)': 'CadetBlue3', 'rgb(139, 87, 66)': 'LightSalmon4', 'rgb(204, 204, 204)': 'grey80', 'rgb(205, 129, 98)': 'LightSalmon3', 'rgb(224, 224, 224)': 'grey88', 'rgb(218, 165, 32)': 'goldenrod', 'rgb(205, 145, 158)': 'pink3', 'rgb(139, 62, 47)': 'coral4', 'rgb(238, 122, 233)': 'orchid2', 'rgb(152, 251, 152)': 'PaleGreen', 'rgb(240, 128, 128)': 'LightCoral', 'rgb(162, 205, 90)': 'DarkOliveGreen3', 'rgb(79, 79, 79)': 'grey31', 'rgb(169, 169, 169)': 'DarkGrey', 'rgb(255, 127, 0)': 'DarkOrange1', 'rgb(139, 28, 98)': 'maroon4', 'rgb(253, 245, 230)': 'OldLace', 'rgb(141, 238, 238)': 'DarkSlateGray2', 'rgb(238, 213, 210)': 'MistyRose2', 'rgb(208, 32, 144)': 'VioletRed', 'rgb(0, 205, 0)': 'green3', 'rgb(139, 71, 137)': 'orchid4', 'rgb(205, 201, 165)': 'LemonChiffon3', 'rgb(0, 229, 238)': 'turquoise2', 'rgb(205, 140, 149)': 'LightPink3', 'rgb(124, 205, 124)': 'PaleGreen3', 'rgb(220, 220, 220)': 'gainsboro', 'rgb(238, 229, 222)': 'seashell2', 'rgb(87, 87, 87)': 'grey34', 'rgb(70, 130, 180)': 'SteelBlue', 'rgb(205, 104, 137)': 'PaleVioletRed3', 'rgb(15, 15, 15)': 'grey6', 'rgb(38, 38, 38)': 'grey15', 'rgb(238, 180, 34)': 'goldenrod2', 'rgb(205, 200, 177)': 'cornsilk3', 'rgb(238, 210, 238)': 'thistle2', 'rgb(150, 150, 150)': 'grey59', 'rgb(0, 255, 127)': 'SpringGreen1', 'rgb(139, 126, 102)': 'wheat4', 'rgb(205, 175, 149)': 'PeachPuff3', 'rgb(152, 245, 255)': 'CadetBlue1', 'rgb(0, 250, 154)': 'MediumSpringGreen', 'rgb(120, 120, 120)': 'grey47', 'rgb(238, 118, 33)': 'chocolate2', 'rgb(128, 128, 0)': 'olive', 'rgb(139, 137, 112)': 'LemonChiffon4', 'rgb(107, 142, 35)': 'OliveDrab', 'rgb(219, 219, 219)': 'grey86', 'rgb(205, 205, 0)': 'yellow3', 'rgb(180, 205, 205)': 'LightCyan3', 'rgb(115, 115, 115)': 'grey45', 'rgb(131, 139, 139)': 'azure4', 'rgb(0, 178, 238)': 'DeepSkyBlue2', 'rgb(94, 94, 94)': 'grey37', 'rgb(135, 135, 135)': 'grey53', 'rgb(145, 145, 145)': 'grey57', 'rgb(205, 0, 0)': 'red3', 'rgb(16, 78, 139)': 'DodgerBlue4', 'rgb(133, 133, 133)': 'grey52', 'rgb(205, 38, 38)': 'firebrick3', 'rgb(255, 193, 193)': 'RosyBrown1', 'rgb(205, 183, 181)': 'MistyRose3', 'rgb(122, 55, 139)': 'MediumOrchid4', 'rgb(154, 192, 205)': 'LightBlue3', 'rgb(191, 239, 255)': 'LightBlue1', 'rgb(219, 112, 147)': 'PaleVioletRed', 'rgb(121, 205, 205)': 'DarkSlateGray3', 'rgb(238, 232, 170)': 'PaleGoldenrod', 'rgb(102, 205, 0)': 'chartreuse3', 'rgb(255, 185, 15)': 'DarkGoldenrod1', 'rgb(176, 196, 222)': 'LightSteelBlue', 'rgb(255, 236, 139)': 'LightGoldenrod1', 'rgb(205, 105, 201)': 'orchid3', 'rgb(250, 250, 250)': 'grey98', 'rgb(245, 245, 220)': 'beige', 'rgb(238, 106, 80)': 'coral2', 'rgb(64, 64, 64)': 'grey25', 'rgb(238, 220, 130)': 'LightGoldenrod2', 'white': 'none', 'rgb(125, 38, 205)': 'purple3', 'rgb(205, 133, 63)': 'tan3', 'rgb(139, 102, 139)': 'plum4', 'rgb(71, 71, 71)': 'grey28', 'rgb(118, 238, 0)': 'chartreuse2', 'rgb(192, 255, 62)': 'OliveDrab1', 'rgb(0, 0, 139)': 'DarkBlue', 'rgb(248, 248, 255)': 'GhostWhite', 'rgb(3, 3, 3)': 'grey1', 'rgb(176, 226, 255)': 'LightSkyBlue1', 'rgb(139, 105, 20)': 'goldenrod4', 'rgb(255, 105, 180)': 'HotPink', 'rgb(124, 252, 0)': 'LawnGreen', 'rgb(238, 238, 224)': 'ivory2', 'rgb(139, 69, 19)': 'SaddleBrown', 'rgb(139, 0, 139)': 'magenta4', 'rgb(31, 31, 31)': 'grey12', 'rgb(159, 182, 205)': 'SlateGray3', 'rgb(181, 181, 181)': 'grey71', 'rgb(0, 245, 255)': 'turquoise1', 'rgb(105, 139, 105)': 'DarkSeaGreen4', 'rgb(159, 121, 238)': 'MediumPurple2', 'rgb(205, 198, 115)': 'khaki3', 'rgb(77, 77, 77)': 'grey30', 'rgb(139, 90, 0)': 'orange4', 'rgb(122, 122, 122)': 'grey48', 'rgb(224, 238, 238)': 'azure2', 'rgb(50, 129, 75)': 'MediumForestGreen', 'rgb(202, 225, 255)': 'LightSteelBlue1', 'rgb(255, 110, 180)': 'HotPink1', 'rgb(238, 48, 167)': 'maroon2', 'rgb(220, 20, 60)': 'crimson', 'rgb(127, 255, 212)': 'aquamarine1', 'rgb(205, 179, 139)': 'NavajoWhite3', 'rgb(28, 28, 28)': 'grey11', 'rgb(229, 229, 229)': 'grey90', 'rgb(47, 79, 79)': 'DarkSlateGrey', 'rgb(59, 59, 59)': 'grey23', 'rgb(69, 139, 116)': 'aquamarine4', 'rgb(255, 211, 155)': 'burlywood1', 'rgb(139, 119, 101)': 'PeachPuff4', 'rgb(238, 230, 133)': 'khaki2', 'rgb(10, 10, 10)': 'grey4', 'rgb(144, 238, 144)': 'PaleGreen2', 'rgb(99, 99, 99)': 'grey39', 'rgb(188, 238, 104)': 'DarkOliveGreen2', 'rgb(255, 231, 186)': 'wheat1', 'rgb(154, 50, 205)': 'DarkOrchid3', 'rgb(46, 139, 87)': 'SeaGreen4', 'rgb(145, 44, 238)': 'purple2', 'rgb(255, 240, 245)': 'LavenderBlush1', 'rgb(67, 110, 238)': 'RoyalBlue2', 'rgb(238, 180, 180)': 'RosyBrown2', 'rgb(108, 166, 205)': 'SkyBlue3', 'rgb(173, 173, 173)': 'grey68', 'rgb(176, 48, 96)': 'maroon', 'rgb(23, 23, 23)': 'grey9', 'rgb(138, 138, 138)': 'grey54', 'rgb(139, 137, 137)': 'snow4', 'rgb(209, 193, 102)': 'MediumGoldenRod', 'rgb(139, 123, 139)': 'thistle4', 'rgb(154, 255, 154)': 'PaleGreen1', 'rgb(130, 130, 130)': 'grey51', 'rgb(255, 99, 71)': 'tomato1', 'rgb(205, 183, 158)': 'bisque3', 'rgb(205, 102, 29)': 'chocolate3', 'rgb(128, 0, 0)': 'maroon', 'rgb(0, 0, 255)': 'blue1', 'rgb(255, 52, 179)': 'maroon1', 'rgb(250, 235, 215)': 'AntiqueWhite', 'rgb(163, 163, 163)': 'grey64', 'rgb(56, 56, 56)': 'grey22', 'rgb(85, 26, 139)': 'purple4', 'rgb(139, 58, 58)': 'IndianRed4', 'rgb(168, 168, 168)': 'grey66', 'rgb(255, 225, 255)': 'thistle1', 'rgb(125, 125, 125)': 'grey49', 'rgb(131, 111, 255)': 'SlateBlue1', 'rgb(95, 158, 160)': 'CadetBlue', 'rgb(165, 42, 42)': 'brown', 'rgb(245, 255, 250)': 'MintCream', 'rgb(255, 218, 185)': 'PeachPuff1', 'rgb(255, 228, 225)': 'MistyRose1', 'rgb(216, 191, 216)': 'thistle', 'rgb(139, 101, 8)': 'DarkGoldenrod4', 'rgb(205, 104, 57)': 'sienna3', 'rgb(255, 131, 250)': 'orchid1', 'rgb(82, 82, 82)': 'grey32', 'rgb(117, 117, 117)': 'grey46', 'rgb(255, 165, 0)': 'orange1', 'rgb(255, 64, 64)': 'brown1', 'rgb(255, 165, 79)': 'tan1', 'rgb(205, 55, 0)': 'OrangeRed3', 'rgb(188, 210, 238)': 'LightSteelBlue2', 'rgb(238, 121, 159)': 'PaleVioletRed2', 'rgb(5, 5, 5)': 'grey2', 'rgb(217, 217, 217)': 'grey85', 'rgb(205, 186, 150)': 'wheat3', 'rgb(139, 131, 134)': 'LavenderBlush4', 'rgb(185, 211, 238)': 'SlateGray2', 'rgb(235, 235, 235)': 'grey92', 'rgb(230, 230, 250)': 'lavender', 'rgb(41, 41, 41)': 'grey16', 'rgb(205, 92, 92)': 'IndianRed', 'rgb(131, 139, 131)': 'honeydew4', 'rgb(123, 104, 238)': 'MediumSlateBlue', 'rgb(128, 0, 128)': 'purple', 'rgb(139, 26, 26)': 'firebrick4', 'rgb(141, 182, 205)': 'LightSkyBlue3', 'rgb(212, 212, 212)': 'grey83', 'rgb(238, 162, 173)': 'LightPink2', 'rgb(255, 255, 0)': 'yellow1', 'rgb(192, 192, 192)': 'silver', 'rgb(139, 71, 93)': 'PaleVioletRed4', 'rgb(0, 100, 0)': 'DarkGreen', 'rgb(139, 37, 0)': 'OrangeRed4', 'rgb(198, 226, 255)': 'SlateGray1', 'rgb(24, 116, 205)': 'DodgerBlue3', 'rgb(178, 34, 34)': 'firebrick', 'rgb(28, 134, 238)': 'DodgerBlue2', 'rgb(255, 0, 255)': 'magenta1', 'rgb(33, 33, 33)': 'grey13', 'rgb(209, 238, 238)': 'LightCyan2', 'rgb(255, 127, 80)': 'coral', 'rgb(0, 154, 205)': 'DeepSkyBlue3', 'rgb(255, 255, 224)': 'LightYellow1', 'rgb(75, 0, 130)': 'indigo', 'rgb(160, 82, 45)': 'sienna', 'rgb(138, 43, 226)': 'BlueViolet', 'rgb(238, 224, 229)': 'LavenderBlush2', 'rgb(106, 90, 205)': 'SlateBlue', 'rgb(227, 227, 227)': 'grey89', 'rgb(255, 250, 250)': 'snow1', 'rgb(255, 174, 185)': 'LightPink1', 'rgb(205, 0, 205)': 'magenta3', 'rgb(126, 126, 126)': 'gray', 'rgb(139, 10, 80)': 'DeepPink4', 'rgb(186, 85, 211)': 'MediumOrchid', 'rgb(205, 133, 0)': 'orange3', 'rgb(211, 211, 211)': 'LightGrey', 'rgb(69, 69, 69)': 'grey27', 'rgb(222, 222, 222)': 'grey87', 'rgb(221, 160, 221)': 'plum', 'rgb(255, 255, 240)': 'ivory1', 'rgb(112, 112, 112)': 'grey44', 'rgb(209, 95, 238)': 'MediumOrchid2', 'rgb(0, 255, 0)': 'lime', 'rgb(238, 233, 191)': 'LemonChiffon2', 'rgb(92, 92, 92)': 'grey36', 'rgb(205, 112, 84)': 'salmon3', 'rgb(255, 228, 196)': 'bisque1', 'rgb(255, 192, 203)': 'pink', 'rgb(238, 130, 238)': 'violet', 'rgb(122, 103, 238)': 'SlateBlue2', 'rgb(238, 121, 66)': 'sienna2', 'rgb(102, 139, 139)': 'PaleTurquoise4', 'rgb(250, 240, 230)': 'linen', 'rgb(247, 247, 247)': 'grey97', 'rgb(32, 178, 170)': 'LightSeaGreen', 'rgb(97, 97, 97)': 'grey38', 'rgb(150, 205, 205)': 'PaleTurquoise3', 'rgb(158, 158, 158)': 'grey62', 'rgb(238, 58, 140)': 'VioletRed2', 'rgb(255, 228, 181)': 'moccasin', 'rgb(0, 197, 205)': 'turquoise3', 'rgb(205, 96, 144)': 'HotPink3', 'rgb(205, 16, 118)': 'DeepPink3', 'rgb(240, 240, 240)': 'grey94', 'rgb(176, 224, 230)': 'PowderBlue', 'rgb(199, 21, 133)': 'MediumVioletRed', 'rgb(238, 203, 173)': 'PeachPuff2', 'rgb(173, 255, 47)': 'GreenYellow', 'rgb(238, 174, 238)': 'plum2', 'rgb(191, 191, 191)': 'grey75', 'rgb(222, 184, 135)': 'burlywood', 'rgb(18, 18, 18)': 'grey7', 'rgb(83, 134, 139)': 'CadetBlue4', 'rgb(139, 134, 130)': 'seashell4', 'rgb(142, 229, 238)': 'CadetBlue2', 'rgb(0, 139, 0)': 'green4', 'rgb(240, 255, 240)': 'honeydew1', 'rgb(104, 34, 139)': 'DarkOrchid4', 'rgb(193, 255, 193)': 'DarkSeaGreen1', 'rgb(0, 0, 0)': 'opaque', 'rgb(139, 58, 98)': 'HotPink4', 'rgb(89, 89, 89)': 'grey35', 'rgb(72, 118, 255)': 'RoyalBlue1', 'rgb(108, 123, 139)': 'SlateGray4', 'rgb(255, 20, 147)': 'DeepPink1', 'rgb(255, 250, 240)': 'FloralWhite', 'rgb(132, 112, 255)': 'LightSlateBlue', 'rgb(255, 62, 150)': 'VioletRed1', 'rgb(139, 125, 107)': 'bisque4', 'rgb(64, 224, 208)': 'turquoise', 'rgb(148, 0, 211)': 'DarkViolet', 'rgb(238, 106, 167)': 'HotPink2', 'rgb(238, 44, 44)': 'firebrick2', 'rgb(72, 209, 204)': 'MediumTurquoise', 'rgb(205, 155, 29)': 'goldenrod3', 'rgb(139, 0, 0)': 'red4', 'rgb(238, 92, 66)': 'tomato2', 'rgb(238, 216, 174)': 'wheat2', 'rgb(65, 105, 225)': 'RoyalBlue', 'rgb(0, 205, 102)': 'SpringGreen3', 'rgb(96, 123, 139)': 'LightSkyBlue4', 'rgb(210, 180, 140)': 'tan', 'rgb(135, 206, 255)': 'SkyBlue1', 'rgb(252, 252, 252)': 'grey99', 'rgb(61, 61, 61)': 'grey24', 'rgb(205, 102, 0)': 'DarkOrange3', 'rgb(58, 95, 205)': 'RoyalBlue3', 'rgb(30, 144, 255)': 'DodgerBlue1', 'rgb(245, 245, 245)': 'WhiteSmoke', 'rgb(255, 130, 171)': 'PaleVioletRed1', 'rgb(60, 179, 113)': 'MediumSeaGreen', 'rgb(139, 139, 122)': 'LightYellow4', 'rgb(139, 136, 120)': 'cornsilk4', 'rgb(139, 34, 82)': 'VioletRed4', 'rgb(238, 223, 204)': 'AntiqueWhite2', 'rgb(238, 213, 183)': 'bisque2', 'rgb(250, 250, 210)': 'LightGoldenrodYellow', 'rgb(255, 250, 205)': 'LemonChiffon1', 'rgb(39, 64, 139)': 'RoyalBlue4', 'rgb(84, 139, 84)': 'PaleGreen4', 'rgb(238, 221, 130)': 'LightGoldenrod', 'rgb(139, 95, 101)': 'LightPink4', 'rgb(210, 105, 30)': 'chocolate', 'rgb(139, 139, 0)': 'yellow4', 'rgb(238, 149, 114)': 'LightSalmon2', 'rgb(0, 255, 255)': 'cyan1', 'rgb(71, 60, 139)': 'SlateBlue4', 'rgb(207, 207, 207)': 'grey81', 'rgb(153, 50, 204)': 'DarkOrchid', 'rgb(36, 36, 36)': 'grey14', 'rgb(153, 153, 153)': 'grey60', 'rgb(250, 128, 114)': 'salmon', 'rgb(174, 238, 238)': 'PaleTurquoise2', 'rgb(139, 117, 0)': 'gold4', 'rgb(139, 35, 35)': 'brown4', 'rgb(92, 172, 238)': 'SteelBlue2', 'rgb(48, 48, 48)': 'grey19', 'rgb(139, 129, 76)': 'LightGoldenrod4', 'rgb(72, 61, 139)': 'DarkSlateBlue', 'rgb(238, 169, 184)': 'pink2', 'rgb(69, 139, 0)': 'chartreuse4', 'rgb(0, 128, 128)': 'teal', 'rgb(255, 255, 255)': 'grey100', 'rgb(244, 164, 96)': 'SandyBrown', 'rgb(154, 205, 50)': 'YellowGreen', 'rgb(126, 192, 238)': 'SkyBlue2', 'rgb(209, 209, 209)': 'grey82', 'rgb(74, 112, 139)': 'SkyBlue4', 'rgb(112, 128, 144)': 'SlateGrey', 'rgb(105, 139, 34)': 'OliveDrab4', 'rgb(110, 110, 110)': 'grey43', 'rgb(179, 179, 179)': 'grey70', 'rgb(205, 50, 120)': 'VioletRed3', 'rgb(119, 136, 153)': 'LightSlateGrey', 'rgb(139, 115, 85)': 'burlywood4', 'rgb(255, 193, 37)': 'goldenrod1', 'rgb(224, 255, 255)': 'LightCyan1', 'rgb(66, 66, 66)': 'grey26', 'rgb(193, 205, 193)': 'honeydew3', 'rgb(0, 191, 255)': 'DeepSkyBlue1', 'rgb(205, 205, 193)': 'ivory3', 'rgb(238, 238, 0)': 'yellow2', 'rgb(255, 140, 105)': 'salmon1', 'rgb(135, 206, 235)': 'SkyBlue', 'rgb(238, 201, 0)': 'gold2', 'rgb(238, 232, 205)': 'cornsilk2', 'rgb(0, 0, 205)': 'MediumBlue', 'rgb(238, 130, 98)': 'salmon2', 'rgb(155, 48, 255)': 'purple1', 'rgb(43, 43, 43)': 'grey17', 'rgb(240, 248, 255)': 'AliceBlue', 'rgb(238, 0, 238)': 'magenta2', 'rgb(128, 128, 128)': 'fractal', 'rgb(193, 205, 205)': 'azure3', 'rgb(50, 205, 50)': 'LimeGreen', 'rgb(201, 201, 201)': 'grey79', 'rgb(255, 239, 219)': 'AntiqueWhite1', 'rgb(196, 196, 196)': 'grey77', 'rgb(135, 206, 250)': 'LightSkyBlue', 'rgb(139, 134, 78)': 'khaki4', 'rgb(79, 148, 205)': 'SteelBlue3', 'rgb(74, 74, 74)': 'grey29', 'rgb(255, 0, 0)': 'red1', 'rgb(233, 150, 122)': 'DarkSalmon', 'rgb(205, 190, 112)': 'LightGoldenrod3', 'rgb(84, 255, 159)': 'SeaGreen1', 'rgb(205, 170, 125)': 'burlywood3', 'rgb(127, 255, 0)': 'chartreuse1', 'rgb(102, 102, 102)': 'grey40', 'rgb(180, 238, 180)': 'DarkSeaGreen2', 'rgb(122, 139, 139)': 'LightCyan4', 'rgb(255, 140, 0)': 'DarkOrange', 'rgb(205, 197, 191)': 'seashell3', 'rgb(140, 140, 140)': 'grey55', 'rgb(199, 199, 199)': 'grey78', 'rgb(202, 255, 112)': 'DarkOliveGreen1', 'rgb(255, 245, 238)': 'seashell1', 'rgb(189, 183, 107)': 'DarkKhaki', 'rgb(0, 238, 118)': 'SpringGreen2', 'rgb(180, 82, 205)': 'MediumOrchid3', 'rgb(255, 127, 36)': 'chocolate1', 'rgb(161, 161, 161)': 'grey63'} -hextorgb = {'#EE1289': 'rgb(238, 18, 137)', '#EE8262': 'rgb(238, 130, 98)', '#C4C4C4': 'rgb(196, 196, 196)', '#556B2F': 'rgb(85, 107, 47)', '#FF8C00': 'rgb(255, 140, 0)', '#8B7B8B': 'rgb(139, 123, 139)', '#0000EE': 'rgb(0, 0, 238)', '#EED5D2': 'rgb(238, 213, 210)', '#BA55D3': 'rgb(186, 85, 211)', '#FFF5EE': 'rgb(255, 245, 238)', '#912CEE': 'rgb(145, 44, 238)', '#2F4F4F': 'rgb(47, 79, 79)', '#32814B': 'rgb(50, 129, 75)', '#D15FEE': 'rgb(209, 95, 238)', '#F0FFF0': 'rgb(240, 255, 240)', '#B23AEE': 'rgb(178, 58, 238)', '#8B7765': 'rgb(139, 119, 101)', '#3D3D3D': 'rgb(61, 61, 61)', '#54FF9F': 'rgb(84, 255, 159)', '#636363': 'rgb(99, 99, 99)', '#8B8386': 'rgb(139, 131, 134)', '#FF4040': 'rgb(255, 64, 64)', '#EEA9B8': 'rgb(238, 169, 184)', '#C2C2C2': 'rgb(194, 194, 194)', '#800080': 'rgb(128, 0, 128)', '#545454': 'rgb(84, 84, 84)', '#EE3A8C': 'rgb(238, 58, 140)', '#8A8A8A': 'rgb(138, 138, 138)', '#FF00FF': 'rgb(255, 0, 255)', '#436EEE': 'rgb(67, 110, 238)', '#8B864E': 'rgb(139, 134, 78)', '#0A0A0A': 'rgb(10, 10, 10)', '#808000': 'rgb(128, 128, 0)', '#E3E3E3': 'rgb(227, 227, 227)', '#1874CD': 'rgb(24, 116, 205)', '#BCD2EE': 'rgb(188, 210, 238)', '#A9A9A9': 'rgb(169, 169, 169)', '#F4A460': 'rgb(244, 164, 96)', '#FF3030': 'rgb(255, 48, 48)', '#FFEBCD': 'rgb(255, 235, 205)', '#B0C4DE': 'rgb(176, 196, 222)', '#00CDCD': 'rgb(0, 205, 205)', '#C0FF3E': 'rgb(192, 255, 62)', '#FFD700': 'rgb(255, 215, 0)', '#242424': 'rgb(36, 36, 36)', '#8B2252': 'rgb(139, 34, 82)', '#4EEE94': 'rgb(78, 238, 148)', '#CD3278': 'rgb(205, 50, 120)', '#00E5EE': 'rgb(0, 229, 238)', '#CD853F': 'rgb(205, 133, 63)', '#ADD8E6': 'rgb(173, 216, 230)', '#C7C7C7': 'rgb(199, 199, 199)', '#CD2990': 'rgb(205, 41, 144)', '#EEE5DE': 'rgb(238, 229, 222)', '#66CD00': 'rgb(102, 205, 0)', '#878787': 'rgb(135, 135, 135)', '#FFA54F': 'rgb(255, 165, 79)', '#A2B5CD': 'rgb(162, 181, 205)', '#BC8F8F': 'rgb(188, 143, 143)', '#C9C9C9': 'rgb(201, 201, 201)', '#D1C166': 'rgb(209, 193, 102)', '#8B2323': 'rgb(139, 35, 35)', '#B3EE3A': 'rgb(179, 238, 58)', '#EEEED1': 'rgb(238, 238, 209)', '#AEEEEE': 'rgb(174, 238, 238)', '#BDBDBD': 'rgb(189, 189, 189)', '#FF7F00': 'rgb(255, 127, 0)', '#FFC0CB': 'rgb(255, 192, 203)', '#EE3B3B': 'rgb(238, 59, 59)', '#CDC8B1': 'rgb(205, 200, 177)', '#CDB38B': 'rgb(205, 179, 139)', '#CDBA96': 'rgb(205, 186, 150)', '#B4EEB4': 'rgb(180, 238, 180)', '#40E0D0': 'rgb(64, 224, 208)', '#8B795E': 'rgb(139, 121, 94)', '#27408B': 'rgb(39, 64, 139)', '#424242': 'rgb(66, 66, 66)', '#CDB7B5': 'rgb(205, 183, 181)', '#CAE1FF': 'rgb(202, 225, 255)', '#F0FFFF': 'rgb(240, 255, 255)', '#2E8B57': 'rgb(46, 139, 87)', '#87CEEB': 'rgb(135, 206, 235)', '#CD00CD': 'rgb(205, 0, 205)', '#CDAA7D': 'rgb(205, 170, 125)', '#836FFF': 'rgb(131, 111, 255)', '#ABABAB': 'rgb(171, 171, 171)', '#EEB4B4': 'rgb(238, 180, 180)', '#8B7355': 'rgb(139, 115, 85)', '#F0E68C': 'rgb(240, 230, 140)', '#CDCDB4': 'rgb(205, 205, 180)', '#4D4D4D': 'rgb(77, 77, 77)', '#B8B8B8': 'rgb(184, 184, 184)', '#B4CDCD': 'rgb(180, 205, 205)', '#008B8B': 'rgb(0, 139, 139)', '#828282': 'rgb(130, 130, 130)', '#00EEEE': 'rgb(0, 238, 238)', '#708090': 'rgb(112, 128, 144)', '#9AFF9A': 'rgb(154, 255, 154)', '#FFA07A': 'rgb(255, 160, 122)', '#EBEBEB': 'rgb(235, 235, 235)', '#FFB5C5': 'rgb(255, 181, 197)', '#00688B': 'rgb(0, 104, 139)', '#DBDBDB': 'rgb(219, 219, 219)', '#191970': 'rgb(25, 25, 112)', '#FF83FA': 'rgb(255, 131, 250)', '#A1A1A1': 'rgb(161, 161, 161)', '#838B8B': 'rgb(131, 139, 139)', '#FFA500': 'rgb(255, 165, 0)', '#00FF7F': 'rgb(0, 255, 127)', '#EEAD0E': 'rgb(238, 173, 14)', '#B03060': 'rgb(176, 48, 96)', '#96CDCD': 'rgb(150, 205, 205)', '#CD3333': 'rgb(205, 51, 51)', '#CDBE70': 'rgb(205, 190, 112)', '#7CCD7C': 'rgb(124, 205, 124)', '#97FFFF': 'rgb(151, 255, 255)', '#DAA520': 'rgb(218, 165, 32)', '#8B3A3A': 'rgb(139, 58, 58)', '#6B6B6B': 'rgb(107, 107, 107)', '#FFFAF0': 'rgb(255, 250, 240)', '#757575': 'rgb(117, 117, 117)', '#BFBFBF': 'rgb(191, 191, 191)', '#00EE76': 'rgb(0, 238, 118)', '#FFFAFA': 'rgb(255, 250, 250)', '#6E8B3D': 'rgb(110, 139, 61)', '#EEE685': 'rgb(238, 230, 133)', '#FF3E96': 'rgb(255, 62, 150)', '#EE0000': 'rgb(238, 0, 0)', '#FDF5E6': 'rgb(253, 245, 230)', '#E066FF': 'rgb(224, 102, 255)', '#8DB6CD': 'rgb(141, 182, 205)', '#FF7256': 'rgb(255, 114, 86)', '#7CFC00': 'rgb(124, 252, 0)', '#838B83': 'rgb(131, 139, 131)', '#BF3EFF': 'rgb(191, 62, 255)', '#8B6914': 'rgb(139, 105, 20)', '#00CD66': 'rgb(0, 205, 102)', '#525252': 'rgb(82, 82, 82)', '#A4D3EE': 'rgb(164, 211, 238)', '#00868B': 'rgb(0, 134, 139)', '#8DEEEE': 'rgb(141, 238, 238)', '#787878': 'rgb(120, 120, 120)', '#8B1C62': 'rgb(139, 28, 98)', '#616161': 'rgb(97, 97, 97)', '#4876FF': 'rgb(72, 118, 255)', '#9F79EE': 'rgb(159, 121, 238)', '#212121': 'rgb(33, 33, 33)', '#C1CDC1': 'rgb(193, 205, 193)', '#CD69C9': 'rgb(205, 105, 201)', '#E0EEEE': 'rgb(224, 238, 238)', '#8B7E66': 'rgb(139, 126, 102)', '#8A2BE2': 'rgb(138, 43, 226)', '#CDCD00': 'rgb(205, 205, 0)', '#EE5C42': 'rgb(238, 92, 66)', '#6E6E6E': 'rgb(110, 110, 110)', '#EEAEEE': 'rgb(238, 174, 238)', '#DC143C': 'rgb(220, 20, 60)', '#CD919E': 'rgb(205, 145, 158)', '#528B8B': 'rgb(82, 139, 139)', '#AFEEEE': 'rgb(175, 238, 238)', '#CD6889': 'rgb(205, 104, 137)', '#E6E6FA': 'rgb(230, 230, 250)', '#EE00EE': 'rgb(238, 0, 238)', '#999999': 'rgb(153, 153, 153)', '#F0F8FF': 'rgb(240, 248, 255)', '#595959': 'rgb(89, 89, 89)', '#FF7F50': 'rgb(255, 127, 80)', '#A6A6A6': 'rgb(166, 166, 166)', '#DEDEDE': 'rgb(222, 222, 222)', '#262626': 'rgb(38, 38, 38)', '#6CA6CD': 'rgb(108, 166, 205)', '#8B8B83': 'rgb(139, 139, 131)', '#474747': 'rgb(71, 71, 71)', '#F7F7F7': 'rgb(247, 247, 247)', '#548B54': 'rgb(84, 139, 84)', '#48D1CC': 'rgb(72, 209, 204)', '#C1CDCD': 'rgb(193, 205, 205)', '#E0EEE0': 'rgb(224, 238, 224)', '#FFB90F': 'rgb(255, 185, 15)', '#FFD39B': 'rgb(255, 211, 155)', '#8B5A2B': 'rgb(139, 90, 43)', '#EEE9BF': 'rgb(238, 233, 191)', '#BCEE68': 'rgb(188, 238, 104)', '#8470FF': 'rgb(132, 112, 255)', '#8B0A50': 'rgb(139, 10, 80)', '#FFF68F': 'rgb(255, 246, 143)', '#EEA2AD': 'rgb(238, 162, 173)', '#CD5B45': 'rgb(205, 91, 69)', '#7FFF00': 'rgb(127, 255, 0)', '#8B8378': 'rgb(139, 131, 120)', '#9BCD9B': 'rgb(155, 205, 155)', '#454545': 'rgb(69, 69, 69)', '#D1D1D1': 'rgb(209, 209, 209)', '#EEE8AA': 'rgb(238, 232, 170)', '#668B8B': 'rgb(102, 139, 139)', '#EE30A7': 'rgb(238, 48, 167)', '#FFC125': 'rgb(255, 193, 37)', '#8B475D': 'rgb(139, 71, 93)', '#D8BFD8': 'rgb(216, 191, 216)', '#404040': 'rgb(64, 64, 64)', '#EEEE00': 'rgb(238, 238, 0)', '#CDB5CD': 'rgb(205, 181, 205)', '#00C5CD': 'rgb(0, 197, 205)', '#00CED1': 'rgb(0, 206, 209)', '#CFCFCF': 'rgb(207, 207, 207)', '#008B00': 'rgb(0, 139, 0)', '#7A7A7A': 'rgb(122, 122, 122)', '#B8860B': 'rgb(184, 134, 11)', '#1C86EE': 'rgb(28, 134, 238)', '#8B5742': 'rgb(139, 87, 66)', '#1A1A1A': 'rgb(26, 26, 26)', '#8B008B': 'rgb(139, 0, 139)', '#0F0F0F': 'rgb(15, 15, 15)', '#CD3700': 'rgb(205, 55, 0)', '#7F7F7F': 'rgb(127, 127, 127)', '#FF6EB4': 'rgb(255, 110, 180)', '#6959CD': 'rgb(105, 89, 205)', '#90EE90': 'rgb(144, 238, 144)', '#8B4789': 'rgb(139, 71, 137)', '#EE7AE9': 'rgb(238, 122, 233)', '#8968CD': 'rgb(137, 104, 205)', '#080808': 'rgb(8, 8, 8)', '#CDC9C9': 'rgb(205, 201, 201)', '#BDB76B': 'rgb(189, 183, 107)', '#9370DB': 'rgb(147, 112, 219)', '#EEDC82': 'rgb(238, 220, 130)', '#3CB371': 'rgb(60, 179, 113)', '#F5FFFA': 'rgb(245, 255, 250)', '#303030': 'rgb(48, 48, 48)', '#B9D3EE': 'rgb(185, 211, 238)', '#575757': 'rgb(87, 87, 87)', '#F5F5DC': 'rgb(245, 245, 220)', '#BABABA': 'rgb(186, 186, 186)', '#0000CD': 'rgb(0, 0, 205)', '#FF8247': 'rgb(255, 130, 71)', '#F2F2F2': 'rgb(242, 242, 242)', '#EED5B7': 'rgb(238, 213, 183)', '#FFEC8B': 'rgb(255, 236, 139)', '#EE7600': 'rgb(238, 118, 0)', '#8B636C': 'rgb(139, 99, 108)', '#8B814C': 'rgb(139, 129, 76)', '#FFE4B5': 'rgb(255, 228, 181)', '#4F94CD': 'rgb(79, 148, 205)', '#CDAD00': 'rgb(205, 173, 0)', '#CD5555': 'rgb(205, 85, 85)', '#8B7500': 'rgb(139, 117, 0)', '#473C8B': 'rgb(71, 60, 139)', '#B0E0E6': 'rgb(176, 224, 230)', '#FFFF00': 'rgb(255, 255, 0)', '#CD96CD': 'rgb(205, 150, 205)', '#006400': 'rgb(0, 100, 0)', '#FAFAFA': 'rgb(250, 250, 250)', '#53868B': 'rgb(83, 134, 139)', '#8B4513': 'rgb(139, 69, 19)', '#98FB98': 'rgb(152, 251, 152)', '#63B8FF': 'rgb(99, 184, 255)', '#FFAEB9': 'rgb(255, 174, 185)', '#EE6A50': 'rgb(238, 106, 80)', '#87CEFF': 'rgb(135, 206, 255)', '#87CEFA': 'rgb(135, 206, 250)', '#ADFF2F': 'rgb(173, 255, 47)', '#008B45': 'rgb(0, 139, 69)', '#EE4000': 'rgb(238, 64, 0)', '#8B6969': 'rgb(139, 105, 105)', '#00008B': 'rgb(0, 0, 139)', '#DB7093': 'rgb(219, 112, 147)', '#7EC0EE': 'rgb(126, 192, 238)', '#3B3B3B': 'rgb(59, 59, 59)', '#8C8C8C': 'rgb(140, 140, 140)', '#5F9EA0': 'rgb(95, 158, 160)', '#EE799F': 'rgb(238, 121, 159)', '#CD6090': 'rgb(205, 96, 144)', '#8B8682': 'rgb(139, 134, 130)', '#458B74': 'rgb(69, 139, 116)', '#EECFA1': 'rgb(238, 207, 161)', '#76EE00': 'rgb(118, 238, 0)', '#000080': 'rgb(0, 0, 128)', '#228B22': 'rgb(34, 139, 34)', '#8B8B00': 'rgb(139, 139, 0)', '#B5B5B5': 'rgb(181, 181, 181)', '#CD950C': 'rgb(205, 149, 12)', '#EE82EE': 'rgb(238, 130, 238)', '#EDEDED': 'rgb(237, 237, 237)', '#F5DEB3': 'rgb(245, 222, 179)', '#3A5FCD': 'rgb(58, 95, 205)', '#00FA9A': 'rgb(0, 250, 154)', '#F0F0F0': 'rgb(240, 240, 240)', '#D1EEEE': 'rgb(209, 238, 238)', '#2E2E2E': 'rgb(46, 46, 46)', '#EEC591': 'rgb(238, 197, 145)', '#8B3E2F': 'rgb(139, 62, 47)', '#CD8162': 'rgb(205, 129, 98)', '#9AC0CD': 'rgb(154, 192, 205)', '#8B8989': 'rgb(139, 137, 137)', '#EED8AE': 'rgb(238, 216, 174)', '#551A8B': 'rgb(85, 26, 139)', '#919191': 'rgb(145, 145, 145)', '#949494': 'rgb(148, 148, 148)', '#778899': 'rgb(119, 136, 153)', '#FFFACD': 'rgb(255, 250, 205)', '#458B00': 'rgb(69, 139, 0)', '#008000': 'rgb(0, 128, 0)', '#FFFFF0': 'rgb(255, 255, 240)', '#E0E0E0': 'rgb(224, 224, 224)', '#EEB422': 'rgb(238, 180, 34)', '#A020F0': 'rgb(160, 32, 240)', '#5CACEE': 'rgb(92, 172, 238)', '#CD4F39': 'rgb(205, 79, 57)', '#CDC0B0': 'rgb(205, 192, 176)', '#6E7B8B': 'rgb(110, 123, 139)', '#9E9E9E': 'rgb(158, 158, 158)', '#CDC673': 'rgb(205, 198, 115)', '#104E8B': 'rgb(16, 78, 139)', '#E0FFFF': 'rgb(224, 255, 255)', '#FFFFFF': 'rgb(255, 255, 255)', '#6C7B8B': 'rgb(108, 123, 139)', '#FFC1C1': 'rgb(255, 193, 193)', '#D6D6D6': 'rgb(214, 214, 214)', '#8B4726': 'rgb(139, 71, 38)', '#CD9B1D': 'rgb(205, 155, 29)', '#FF6347': 'rgb(255, 99, 71)', '#FF34B3': 'rgb(255, 52, 179)', '#7D7D7D': 'rgb(125, 125, 125)', '#121212': 'rgb(18, 18, 18)', '#B0E2FF': 'rgb(176, 226, 255)', '#8B3A62': 'rgb(139, 58, 98)', '#CD5C5C': 'rgb(205, 92, 92)', '#4A4A4A': 'rgb(74, 74, 74)', '#B0B0B0': 'rgb(176, 176, 176)', '#D9D9D9': 'rgb(217, 217, 217)', '#A2CD5A': 'rgb(162, 205, 90)', '#8B0000': 'rgb(139, 0, 0)', '#FF6A6A': 'rgb(255, 106, 106)', '#CD6600': 'rgb(205, 102, 0)', '#FFEFDB': 'rgb(255, 239, 219)', '#E9967A': 'rgb(233, 150, 122)', '#EEE9E9': 'rgb(238, 233, 233)', '#D4D4D4': 'rgb(212, 212, 212)', '#383838': 'rgb(56, 56, 56)', '#7A67EE': 'rgb(122, 103, 238)', '#4169E1': 'rgb(65, 105, 225)', '#5E5E5E': 'rgb(94, 94, 94)', '#00F5FF': 'rgb(0, 245, 255)', '#FFEFD5': 'rgb(255, 239, 213)', '#CDAF95': 'rgb(205, 175, 149)', '#CCCCCC': 'rgb(204, 204, 204)', '#00BFFF': 'rgb(0, 191, 255)', '#CDB79E': 'rgb(205, 183, 158)', '#969696': 'rgb(150, 150, 150)', '#4F4F4F': 'rgb(79, 79, 79)', '#1E90FF': 'rgb(30, 144, 255)', '#FCFCFC': 'rgb(252, 252, 252)', '#EE2C2C': 'rgb(238, 44, 44)', '#8B6508': 'rgb(139, 101, 8)', '#696969': 'rgb(105, 105, 105)', '#FF7F24': 'rgb(255, 127, 36)', '#8FBC8F': 'rgb(143, 188, 143)', '#66CDAA': 'rgb(102, 205, 170)', '#6495ED': 'rgb(100, 149, 237)', '#0D0D0D': 'rgb(13, 13, 13)', '#EEE0E5': 'rgb(238, 224, 229)', '#666666': 'rgb(102, 102, 102)', '#B2DFEE': 'rgb(178, 223, 238)', '#B22222': 'rgb(178, 34, 34)', '#4B0082': 'rgb(75, 0, 130)', '#FF82AB': 'rgb(255, 130, 171)', '#AB82FF': 'rgb(171, 130, 255)', '#79CDCD': 'rgb(121, 205, 205)', '#FFE4C4': 'rgb(255, 228, 196)', '#DEB887': 'rgb(222, 184, 135)', '#5D478B': 'rgb(93, 71, 139)', '#8B3626': 'rgb(139, 54, 38)', '#FFFFE0': 'rgb(255, 255, 224)', '#FFE4E1': 'rgb(255, 228, 225)', '#171717': 'rgb(23, 23, 23)', '#EEDFCC': 'rgb(238, 223, 204)', '#9400D3': 'rgb(148, 0, 211)', '#BFEFFF': 'rgb(191, 239, 255)', '#8B7D6B': 'rgb(139, 125, 107)', '#FF8C69': 'rgb(255, 140, 105)', '#C6E2FF': 'rgb(198, 226, 255)', '#1C1C1C': 'rgb(28, 28, 28)', '#FF4500': 'rgb(255, 69, 0)', '#FFE7BA': 'rgb(255, 231, 186)', '#808080': 'rgb(128, 128, 128)', '#EE9572': 'rgb(238, 149, 114)', '#CD8500': 'rgb(205, 133, 0)', '#8B5A00': 'rgb(139, 90, 0)', '#9932CC': 'rgb(153, 50, 204)', '#EECBAD': 'rgb(238, 203, 173)', '#CD8C95': 'rgb(205, 140, 149)', '#292929': 'rgb(41, 41, 41)', '#CD1076': 'rgb(205, 16, 118)', '#7A378B': 'rgb(122, 55, 139)', '#FF0000': 'rgb(255, 0, 0)', '#698B22': 'rgb(105, 139, 34)', '#ADADAD': 'rgb(173, 173, 173)', '#EEE8CD': 'rgb(238, 232, 205)', '#DDA0DD': 'rgb(221, 160, 221)', '#7D26CD': 'rgb(125, 38, 205)', '#DA70D6': 'rgb(218, 112, 214)', '#DCDCDC': 'rgb(220, 220, 220)', '#68228B': 'rgb(104, 34, 139)', '#7B68EE': 'rgb(123, 104, 238)', '#000000': 'white', '#6B8E23': 'rgb(107, 142, 35)', '#FF69B4': 'rgb(255, 105, 180)', '#800000': 'rgb(128, 0, 0)', '#8B668B': 'rgb(139, 102, 139)', '#363636': 'rgb(54, 54, 54)', '#8B4500': 'rgb(139, 69, 0)', '#D3D3D3': 'rgb(211, 211, 211)', '#607B8B': 'rgb(96, 123, 139)', '#F08080': 'rgb(240, 128, 128)', '#CD9B9B': 'rgb(205, 155, 155)', '#76EEC6': 'rgb(118, 238, 198)', '#FAEBD7': 'rgb(250, 235, 215)', '#68838B': 'rgb(104, 131, 139)', '#7FFFD4': 'rgb(127, 255, 212)', '#C0C0C0': 'rgb(192, 192, 192)', '#EEDD82': 'rgb(238, 221, 130)', '#EE9A49': 'rgb(238, 154, 73)', '#4A708B': 'rgb(74, 112, 139)', '#008080': 'rgb(0, 128, 128)', '#7AC5CD': 'rgb(122, 197, 205)', '#98F5FF': 'rgb(152, 245, 255)', '#8B2500': 'rgb(139, 37, 0)', '#8F8F8F': 'rgb(143, 143, 143)', '#FFF0F5': 'rgb(255, 240, 245)', '#8B8970': 'rgb(139, 137, 112)', '#8B8878': 'rgb(139, 136, 120)', '#6A5ACD': 'rgb(106, 90, 205)', '#4682B4': 'rgb(70, 130, 180)', '#EEEEE0': 'rgb(238, 238, 224)', '#B3B3B3': 'rgb(179, 179, 179)', '#00FF00': 'rgb(0, 255, 0)', '#FFDEAD': 'rgb(255, 222, 173)', '#CD2626': 'rgb(205, 38, 38)', '#8B4C39': 'rgb(139, 76, 57)', '#9B30FF': 'rgb(155, 48, 255)', '#E5E5E5': 'rgb(229, 229, 229)', '#36648B': 'rgb(54, 100, 139)', '#9C9C9C': 'rgb(156, 156, 156)', '#F8F8FF': 'rgb(248, 248, 255)', '#333333': 'rgb(51, 51, 51)', '#5C5C5C': 'rgb(92, 92, 92)', '#737373': 'rgb(115, 115, 115)', '#EEC900': 'rgb(238, 201, 0)', '#FFE1FF': 'rgb(255, 225, 255)', '#C1FFC1': 'rgb(193, 255, 193)', '#CDC5BF': 'rgb(205, 197, 191)', '#A0522D': 'rgb(160, 82, 45)', '#8B5F65': 'rgb(139, 95, 101)', '#CDC1C5': 'rgb(205, 193, 197)', '#EE7621': 'rgb(238, 118, 33)', '#FFBBFF': 'rgb(255, 187, 255)', '#CD6839': 'rgb(205, 104, 57)', '#698B69': 'rgb(105, 139, 105)', '#050505': 'rgb(5, 5, 5)', '#CD661D': 'rgb(205, 102, 29)', '#FAFAD2': 'rgb(250, 250, 210)', '#CDCDC1': 'rgb(205, 205, 193)', '#FFF8DC': 'rgb(255, 248, 220)', '#A8A8A8': 'rgb(168, 168, 168)', '#B452CD': 'rgb(180, 82, 205)', '#D2B48C': 'rgb(210, 180, 140)', '#8EE5EE': 'rgb(142, 229, 238)', '#483D8B': 'rgb(72, 61, 139)', '#BBFFFF': 'rgb(187, 255, 255)', '#0000FF': 'rgb(0, 0, 255)', '#EE6AA7': 'rgb(238, 106, 167)', '#EE7942': 'rgb(238, 121, 66)', '#00CD00': 'rgb(0, 205, 0)', '#141414': 'rgb(20, 20, 20)', '#9ACD32': 'rgb(154, 205, 50)', '#C71585': 'rgb(199, 21, 133)', '#EE9A00': 'rgb(238, 154, 0)', '#CAFF70': 'rgb(202, 255, 112)', '#F5F5F5': 'rgb(245, 245, 245)', '#32CD32': 'rgb(50, 205, 50)', '#00EE00': 'rgb(0, 238, 0)', '#FFB6C1': 'rgb(255, 182, 193)', '#8B1A1A': 'rgb(139, 26, 26)', '#00B2EE': 'rgb(0, 178, 238)', '#20B2AA': 'rgb(32, 178, 170)', '#707070': 'rgb(112, 112, 112)', '#009ACD': 'rgb(0, 154, 205)', '#A52A2A': 'rgb(165, 42, 42)', '#EE6363': 'rgb(238, 99, 99)', '#FAF0E6': 'rgb(250, 240, 230)', '#8B7D7B': 'rgb(139, 125, 123)', '#9A32CD': 'rgb(154, 50, 205)', '#1F1F1F': 'rgb(31, 31, 31)', '#E8E8E8': 'rgb(232, 232, 232)', '#7E7E7E': 'rgb(126, 126, 126)', '#7A8B8B': 'rgb(122, 139, 139)', '#CD7054': 'rgb(205, 112, 84)', '#9FB6CD': 'rgb(159, 182, 205)', '#CDC9A5': 'rgb(205, 201, 165)', '#D02090': 'rgb(208, 32, 144)', '#00FFFF': 'rgb(0, 255, 255)', '#2B2B2B': 'rgb(43, 43, 43)', '#858585': 'rgb(133, 133, 133)', '#A3A3A3': 'rgb(163, 163, 163)', '#CD0000': 'rgb(205, 0, 0)', '#43CD80': 'rgb(67, 205, 128)', '#FA8072': 'rgb(250, 128, 114)', '#FFDAB9': 'rgb(255, 218, 185)', '#D2691E': 'rgb(210, 105, 30)', '#FF1493': 'rgb(255, 20, 147)', '#EED2EE': 'rgb(238, 210, 238)', '#030303': 'rgb(3, 3, 3)', '#8B8B7A': 'rgb(139, 139, 122)'} diff --git a/share/frontend/imgrid/colors/colors/js/ditherbackground.gif b/share/frontend/imgrid/colors/colors/js/ditherbackground.gif deleted file mode 100755 index 670df08..0000000 Binary files a/share/frontend/imgrid/colors/colors/js/ditherbackground.gif and /dev/null differ diff --git a/share/frontend/imgrid/colors/colors/js/goldenfunctions.js b/share/frontend/imgrid/colors/colors/js/goldenfunctions.js deleted file mode 100755 index ab39533..0000000 --- a/share/frontend/imgrid/colors/colors/js/goldenfunctions.js +++ /dev/null @@ -1,33 +0,0 @@ -function regolden(num) - { - ratio = (1+Math.sqrt(5))/2 - newnum = Math.round(num/ratio) - return newnum - } -function goldenize(num) - { - ratio = (1+Math.sqrt(5))/2 - newnum = Math.round(num*ratio) - return newnum - } -//turns css property width or height into an integer value -function getproperty(idandselectr, propertystr) - { - grab = $(idandselectr).css(propertystr) - grab = grab.slice(0,-2) - numval = parseInt(grab) - return numval - } -function makegolden(idandselectr, propertystr) - { - result = getproperty(idandselectr, propertystr) - newval = goldenize(result) - propval = newval.toString()+'px' - if(propertystr == 'height'){ - $(idandselectr).css('width', propval) - } - else if(propertystr == 'width'){ - $(idandselectr).css('height', propval) - } - } - diff --git a/share/frontend/imgrid/colors/colors/js/hexrgbnametoggle.js b/share/frontend/imgrid/colors/colors/js/hexrgbnametoggle.js deleted file mode 100755 index 60567a5..0000000 --- a/share/frontend/imgrid/colors/colors/js/hexrgbnametoggle.js +++ /dev/null @@ -1,148 +0,0 @@ -///threewayselector for what goes in the divs///////////////////// -///MUST SWITCH TO FOUR WAY WITH RGB/////////////////////////////// -var infostate = 0 -var stringvalue = "CLICK TO CHOOSE THE COLOR" -function switchinfo() - { - if(infostate == 1) - { - for(var i=0; i < divlist.length; i++) - { - $(divlist[i]).html(divtoname[divlist[i]]) - }; - infostate = 2 - $('#infospace').html('(NAMES)'); - } - else if(infostate == 0) - { - for(var i=0; i < divlist.length; i++) - { - $(divlist[i]).html("") - }; - infostate = 1 - $('#infospace').html('(NONE)'); - } - else if(infostate == 2) - { - for(var i=0; i < divlist.length; i++) - { - $(divlist[i]).html(nametohex[divtoname[divlist[i]]]) - }; - infostate = 3 - $('#infospace').html('(HEXES)'); - } - else if(infostate == 3) - { - for(var i=0; i < divlist.length; i++) - { - $(divlist[i]).html(hextorgb[nametohex[divtoname[divlist[i]]]]); - // $(divlist[i]).html($(divlist[i]).css('background-color')); - } - infostate = 0 - $('#infospace').html('(RGBS)'); - } - - } -switchinfo() -$('#infoswitch').hover(function(){$('#infospace').show()}, function(){$('#infospace').hide('slow')} ) -$('#infoswitch').click(function(){switchinfo()}) -///////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////// -//takes a div name and returns the colorname associated with that div -var rgb -var selectedrgb -var colorname -function showcolorname(divstr) - { - rgb = $('#'+divstr).css('background-color'); - colorname = divtoname['#'+divstr] - // hex = nametohex[colorname] - imname = colorname - // imname = hextoname[hex] - if (hexes === true) - { - imname = rgb - } - else if (rgbs === true) - { - imname = colorname - } - else if (names === true) - { - imname = rgbtohex[rgb] - } - return imname - } -function bigname(divstr) - { - stringvalue = showcolorname(divstr) - $('#colornames').html(stringvalue) - } -$('.colors').hover(function() - { - thabg = $(this).css('background-color') - bigname(this.id); - }); - -////////////////////////////////////////////////////////////////////// -//THIS CONTROLS THE VALUE OF THE SELECTION ETC -//MUST ADD RGB VALUES TO THIS AND MAKE IT A THREE-WAY SELECTOR -var names = true; -var hexes = false; -var rgbs = false; -var selectedname = ""; -function hexswitch() - { - if(names == true) - { - hexes = false; - rgbs = false; - $('#hexswitch').html('CLICK TO SWITCH TO RGB VALUES'); - $('#namespace').val(selectedname); - names = false; - rgbs = true; - } - else if(hexes == true) - { - rgbs = false; - names = false; - $('#hexswitch').html('CLICK TO SWITCH TO COLOR NAMES'); - $('#namespace').val(rgbtohex[selectedrgb]); - hexes = false; - names = true; - } - else if(rgbs == true) - { - names = false; - hexes = false; - $('#hexswitch').html('CLICK TO SWITCH TO HEX VALUES') - $('#namespace').val(selectedrgb) - rgbs = false; - hexes = true; - } - } -hexswitch() -$('#hexswitch').click(function(){hexswitch()}); -////////////////////////////////////////////////////// -//////////CLICK TO PUT THE COLORS IN////////////////// -function putitin() - { - if (rgbs === true) - {thecolor = selectedname} - if (hexes === true) - {thecolor = selectedrgb} - if (names === true) - {thecolor = rgbtohex[selectedrgb]} - $('#namespace').val(thecolor) - $('#preview').css({'background-color':selectedrgb,'border-style':'none'}) - $('#vasebackground').css('background-color',selectedrgb) - } -$('.colors').click(function() - { - selectednameid = $(this).attr('id') - selectedname = divtoname['#'+selectednameid] - selectedrgb = $(this).css('background-color'); - putitin() - }); - - diff --git a/share/frontend/imgrid/colors/colors/js/hoverbackground.jpg b/share/frontend/imgrid/colors/colors/js/hoverbackground.jpg deleted file mode 100755 index c1ef116..0000000 Binary files a/share/frontend/imgrid/colors/colors/js/hoverbackground.jpg and /dev/null differ diff --git a/share/frontend/imgrid/colors/colors/js/hovercss.js b/share/frontend/imgrid/colors/colors/js/hovercss.js deleted file mode 100755 index 0223b8b..0000000 --- a/share/frontend/imgrid/colors/colors/js/hovercss.js +++ /dev/null @@ -1,31 +0,0 @@ -//HOVER CSS SCRIPT// -var old = {}; -function hovercss(sel, uno) - { - var chng = {}; - chng['color'] = 'white'; - chng['text-shadow'] = 'black 1px 2px'; - chng['background-image'] = 'url(js/hoverbackground.jpg)'; - if(uno == 'over') - { - for(var key in chng){ - old[key] = $('#'+sel).css(key) - } - for(var key in chng){ - $('#'+sel).css(key, chng[key]) - } - } - if(uno == 'out'){ - for(var key in old){ - $('#'+sel).css(key, old[key]) - } - } - }; -$('.theswitches').hover(function() - { - hovercss(this.id, 'over') - }, function() - { - hovercss(this.id, 'out') - }); - diff --git a/share/frontend/imgrid/colors/colors/js/iftransparentcss.js b/share/frontend/imgrid/colors/colors/js/iftransparentcss.js deleted file mode 100755 index fd4fe6c..0000000 --- a/share/frontend/imgrid/colors/colors/js/iftransparentcss.js +++ /dev/null @@ -1,25 +0,0 @@ -///if transparent etc styling -var transcss = { - 'color':'#141414','box-shadow':'10px 10px 5px #141414', - 'background-color':'#D1D1D1','color':'#141414', - 'border-width':'2px','border-style':'outset','cursor':'pointer'} -$('#transbutton').css(transcss) -var hovertrans = { - 'background-color':'DarkGrey','color':'#383838','box-shadow':'5px 5px 2px #141414' - } -$('#transbutton').hover(function(){$('#transbutton').css(hovertrans)},function(){$('#transbutton').css(transcss)}) - -function transparent() - { - $('#namespace').val('transparent'); - $('#preview').css({'background-color':'transparent','border-style':'dashed','border-width':'2px'}) - } -$('#transbutton').click(function() - { - transparent() - $('#colornames').html('transparent') - $('#colornames').fadeOut(100);$('#colornames').fadeIn(500); - $('#extra').html('

note: the .jpg image format does not support transparency') - }); - - diff --git a/share/frontend/imgrid/colors/colors/js/jquery-1.6.4.min.js b/share/frontend/imgrid/colors/colors/js/jquery-1.6.4.min.js deleted file mode 100755 index 628ed9b..0000000 --- a/share/frontend/imgrid/colors/colors/js/jquery-1.6.4.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.6.4 http://jquery.com/ | http://jquery.org/license */ -(function(a,b){function cu(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cr(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"":"")+""),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cq(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cp(){cn=b}function co(){setTimeout(cp,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bv(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bl(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bd,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bk(a){f.nodeName(a,"input")?bj(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bj)}function bj(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bi(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bh(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bg(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i=0===c})}function U(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function M(a,b){return(a&&a!=="*"?a+".":"")+b.replace(y,"`").replace(z,"&")}function L(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function J(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function D(){return!0}function C(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(K,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.4",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;B.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
a",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-1000px",top:"-1000px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i=f.expando,j=typeof c=="string",k=a.nodeType,l=k?f.cache:a,m=k?a[f.expando]:a[f.expando]&&f.expando;if((!m||e&&m&&l[m]&&!l[m][i])&&j&&d===b)return;m||(k?a[f.expando]=m=++f.uuid:m=f.expando),l[m]||(l[m]={},k||(l[m].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?l[m][i]=f.extend(l[m][i],c):l[m]=f.extend(l[m],c);g=l[m],e&&(g[i]||(g[i]={}),g=g[i]),d!==b&&(g[f.camelCase(c)]=d);if(c==="events"&&!g[c])return g[i]&&g[i].events;j?(h=g[c],h==null&&(h=g[f.camelCase(c)])):h=g;return h}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e=f.expando,g=a.nodeType,h=g?f.cache:a,i=g?a[f.expando]:f.expando;if(!h[i])return;if(b){d=c?h[i][e]:h[i];if(d){d[b]||(b=f.camelCase(b)),delete d[b];if(!l(d))return}}if(c){delete h[i][e];if(!l(h[i]))return}var j=h[i][e];f.support.deleteExpando||!h.setInterval?delete h[i]:h[i]=null,j?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=j):g&&(f.support.deleteExpando?delete a[f.expando]:a.removeAttribute?a.removeAttribute(f.expando):a[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=v:u&&(i=u)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.attr(a,b,""),a.removeAttribute(b),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(u&&f.nodeName(a,"button"))return u.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(u&&f.nodeName(a,"button"))return u.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==null?g:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabIndex=f.propHooks.tabIndex,v={get:function(a,c){var d;return f.prop(a,c)===!0||(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(u=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var w=/\.(.*)$/,x=/^(?:textarea|input|select)$/i,y=/\./g,z=/ /g,A=/[^\w\s.|`]/g,B=function(a){return a.replace(A,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=C;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=C);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),B).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},I=function(c){var d=c.target,e,g;if(!!x.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=H(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:I,beforedeactivate:I,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&I.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&I.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",H(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in G)f.event.add(this,c+".specialChange",G[c]);return x.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return x.test(this.nodeName)}},G=f.event.special.change.filters,G.focus=G.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=S.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(U(c[0])||U(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=R.call(arguments);N.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!T[a]?f.unique(e):e,(this.length>1||P.test(d))&&O.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!be[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)g[h]&&bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=be[l]||be._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bm,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bm.test(g)?g.replace(bm,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bv(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bw=function(a,c){var d,e,g;c=c.replace(bo,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bx=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bp.test(d)&&bq.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bv=bw||bx,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bz=/%20/g,bA=/\[\]$/,bB=/\r?\n/g,bC=/#.*$/,bD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bE=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bF=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bG=/^(?:GET|HEAD)$/,bH=/^\/\//,bI=/\?/,bJ=/)<[^<]*)*<\/script>/gi,bK=/^(?:select|textarea)/i,bL=/\s+/,bM=/([?&])_=[^&]*/,bN=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bO=f.fn.load,bP={},bQ={},bR,bS,bT=["*/"]+["*"];try{bR=e.href}catch(bU){bR=c.createElement("a"),bR.href="",bR=bR.href}bS=bN.exec(bR.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bO)return bO.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bJ,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bK.test(this.nodeName)||bE.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bB,"\r\n")}}):{name:b.name,value:c.replace(bB,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?bX(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),bX(a,b);return a},ajaxSettings:{url:bR,isLocal:bF.test(bS[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bT},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bV(bP),ajaxTransport:bV(bQ),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?bZ(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=b$(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bD.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bC,"").replace(bH,bS[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bL),d.crossDomain==null&&(r=bN.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bS[1]&&r[2]==bS[2]&&(r[3]||(r[1]==="http:"?80:443))==(bS[3]||(bS[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bW(bP,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bG.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bI.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bM,"$1_="+x);d.url=y+(y===d.url?(bI.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bT+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bW(bQ,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){s<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bz,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cq("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b
";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=ct.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!ct.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cu(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cu(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNaN(j)?i:j}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/share/frontend/imgrid/colors/colors/js/jquery.cookie.js b/share/frontend/imgrid/colors/colors/js/jquery.cookie.js deleted file mode 100755 index 6036754..0000000 --- a/share/frontend/imgrid/colors/colors/js/jquery.cookie.js +++ /dev/null @@ -1,96 +0,0 @@ -/** - * Cookie plugin - * - * Copyright (c) 2006 Klaus Hartl (stilbuero.de) - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - * - */ - -/** - * Create a cookie with the given name and value and other optional parameters. - * - * @example $.cookie('the_cookie', 'the_value'); - * @desc Set the value of a cookie. - * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true }); - * @desc Create a cookie with all available options. - * @example $.cookie('the_cookie', 'the_value'); - * @desc Create a session cookie. - * @example $.cookie('the_cookie', null); - * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain - * used when the cookie was set. - * - * @param String name The name of the cookie. - * @param String value The value of the cookie. - * @param Object options An object literal containing key/value pairs to provide optional cookie attributes. - * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object. - * If a negative value is specified (e.g. a date in the past), the cookie will be deleted. - * If set to null or omitted, the cookie will be a session cookie and will not be retained - * when the the browser exits. - * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie). - * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie). - * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will - * require a secure protocol (like HTTPS). - * @type undefined - * - * @name $.cookie - * @cat Plugins/Cookie - * @author Klaus Hartl/klaus.hartl@stilbuero.de - */ - -/** - * Get the value of a cookie with the given name. - * - * @example $.cookie('the_cookie'); - * @desc Get the value of a cookie. - * - * @param String name The name of the cookie. - * @return The value of the cookie. - * @type String - * - * @name $.cookie - * @cat Plugins/Cookie - * @author Klaus Hartl/klaus.hartl@stilbuero.de - */ -jQuery.cookie = function(name, value, options) { - if (typeof value != 'undefined') { // name and value given, set cookie - options = options || {}; - if (value === null) { - value = ''; - options.expires = -1; - } - var expires = ''; - if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { - var date; - if (typeof options.expires == 'number') { - date = new Date(); - date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); - } else { - date = options.expires; - } - expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE - } - // CAUTION: Needed to parenthesize options.path and options.domain - // in the following expressions, otherwise they evaluate to undefined - // in the packed version for some reason... - var path = options.path ? '; path=' + (options.path) : ''; - var domain = options.domain ? '; domain=' + (options.domain) : ''; - var secure = options.secure ? '; secure' : ''; - document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); - } else { // only name given, get cookie - var cookieValue = null; - if (document.cookie && document.cookie != '') { - var cookies = document.cookie.split(';'); - for (var i = 0; i < cookies.length; i++) { - var cookie = jQuery.trim(cookies[i]); - // Does this cookie string begin with the name we want? - if (cookie.substring(0, name.length + 1) == (name + '=')) { - cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); - break; - } - } - } - return cookieValue; - } -}; \ No newline at end of file diff --git a/share/frontend/imgrid/colors/colors/js/setupdimensions.js b/share/frontend/imgrid/colors/colors/js/setupdimensions.js deleted file mode 100755 index a496e87..0000000 --- a/share/frontend/imgrid/colors/colors/js/setupdimensions.js +++ /dev/null @@ -1,173 +0,0 @@ -//setup dimensions -//everything needs to be positioned according to -//window.innerWidth - -//step 1...forget about the rollover css for now -//step 2...make sure ratios are in place - -//function makebig(divstr) -// { -/// newheight = goldenize(colorsheight) -/// $('#'+divstr).height(newheight) -// } -//function makesmall(divstr) -// { -// $('#'+divstr).height(colorsheight) -// } -////////////////// -/////////////this function runs a for loop -////////////and makes it so that the colors are related -//////////by width to the innerwidth of the window -widthratio = 7 -numberacross = 10 - - -function shrinkwidth(arg, ratio) - { - for(var i=0; i < ratio; i++) - { - arg = regolden(arg) - } - division = Math.round(arg) - return division - } -////////////////right now the ratio is set at 1/6th -var colorsh -function makecolorswidth() - { - colorswidth = shrinkwidth(windowWidth, widthratio) - $('.colors').css('width', colorswidth.toString()+'px') - } - -function makecolorsheight() - { - colorsheight = regolden(colorswidth) - propval = colorsheight.toString()+'px' - $('.colors').css('height', propval) - } -//the following function sets up the font sizes -//inrelation to the size of the hexswitch font -function getcontainerwidth() - { - basis = $('.colors').css('width') - basis = parseInt(basis.slice(0,-2)) - secondbasis = '2px' - secondbasis = parseInt(secondbasis.slice(0,-2)) - widthval = (secondbasis*(numberacross*2))+(basis*numberacross)+(basis*.44)//(goldenize(basis)-basis) - widthval = widthval.toString()+'px' - return widthval - } -function makecontainerwidth() - { - var containerwidth = getcontainerwidth() - $('#container').css('width',containerwidth) - } -function setupsides() - { - $('#container').css({'position':'relative','z-index':'1'}) - $('#switches').css('z-index','10') - var basis = $('#container').css('width') - basis = parseInt(basis.slice(0,-2)) - remainder = (100-basis)/2 - widths = regolden(basis) - widths = widths.toString()+'px' - lateralbasis = regolden(remainder) - leftside = toString(lateralbasis)+'%' - rightside = toString(100-lateralbasis)+'%' - $('#colornames').css('left', leftside) - $('#switches').css({'width': widths, 'left': rightside, 'overflow':'hidden','top':'118px'}) - } -//////preview dimensions is for the -///preview box inside the switches container -function previewdimensions() - { - first = $('#switches').css('width') - first = parseInt(first.slice(0,-2)) - width = regolden(first) - height = regolden(width) - width = width.toString()+'px' - height = height.toString()+'px' - $('#preview').css({'width':width, 'height':height}) - } -///////////////////////////// -////font-size is related to hexswitch font-size -////also the width of the switches container -var fontratioone -function setupfonts() - { - fontratioone = shrinkwidth(windowWidth, 9) - $('.theswitches').css('font-size',fontratioone) - fontratiotwo = shrinkwidth(windowWidth, 8) - $('#nameholder, #title, #namespace').css('font-size',fontratiotwo) - $('#colornames').css('font-size', goldenize(fontratiotwo)+'px') - $('#colornames').css('text-shadow', 'black 1px 2px') - var transfont = regolden(fontratioone) - $('#transparent, #extra').css({'width':'100%','font-size':transfont}) - switcheswidth = $('#switches').css('width') - $('#namespace, #nameholder').css('width', '100%') - } -function setupdimensions() - { - if(window.innerWidth > 933) - {windowWidth = window.innerWidth} - else - {windowWidth = 933} - $('#container').css('font-size','0'); - $('.colors').css('font-size','9px'); - makecolorswidth() - makecolorsheight() - makecontainerwidth() - setupfonts() - setupsides() - makegolden('#switches','width') - previewdimensions() - $('#namespace').css('width', 'inherit') - $('#nameholder').css('width', 'inherit') - $('#transparent').css({'float':'bottom','width':'inherit'}) - $('.colors').css({'margin-top': '2px','margin-right':'2px'}); - } -$(window).resize(function() - { - setupdimensions() - }); -var colorsheight -var colorswidth -setupdimensions() -function makebig(divstr) - { - newheight = goldenize(colorsheight) - $('#'+divstr).height(newheight) - } -function makesmall(divstr) - { - $('#'+divstr).height(colorsheight) - } -var firstwidth -$('.colors').mouseover(function() - { - $('#extra').html(""); - if(this.id != 'd0') - { - $(this).css({'height':goldenize(colorsheight),'width':goldenize(colorswidth)}) - firstwidth = $('#container').css('width') - newwidth = firstwidth+goldenize(colorswidth)-colorswidth - $('#container').css('width',newwidth) -// makebig(this.id); - // makegolden('#'+this.id, 'height') - } - }); - - - - -$('.colors').mouseout(function() - { - $(this).css('height',colorsheight) - $(this).css('width', colorswidth) - $('#container').css('width',firstwidth) - }); - -$(".colors").hover(function(){ -$('#colornames').fadeOut(100);$('#colornames').fadeIn(500); - }); - diff --git a/share/frontend/imgrid/colors/colors/js/wrkshp/colors.html b/share/frontend/imgrid/colors/colors/js/wrkshp/colors.html deleted file mode 100755 index 0ef22f9..0000000 --- a/share/frontend/imgrid/colors/colors/js/wrkshp/colors.html +++ /dev/null @@ -1,5429 +0,0 @@ - - - - - - - - -
-

List of Color Names

-
- -

a list of named colors for use with PHOTOBLASTER:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameColorRGBHex
snowsnowrgb(255, 250, 250)#FFFAFA
snow1snow1rgb(255, 250, 250)#FFFAFA
snow2snow2rgb(238, 233, 233)#EEE9E9
RosyBrown1RosyBrown1rgb(255, 193, 193)#FFC1C1
RosyBrown2RosyBrown2rgb(238, 180, 180)#EEB4B4
snow3snow3rgb(205, 201, 201)#CDC9C9
LightCoralLightCoralrgb(240, 128, 128)#F08080
IndianRed1IndianRed1rgb(255, 106, 106)#FF6A6A
RosyBrown3RosyBrown3rgb(205, 155, 155)#CD9B9B
IndianRed2IndianRed2rgb(238, 99, 99)#EE6363
RosyBrownRosyBrownrgb(188, 143, 143)#BC8F8F
brown1brown1rgb(255, 64, 64)#FF4040
firebrick1firebrick1rgb(255, 48, 48)#FF3030
brown2brown2rgb(238, 59, 59)#EE3B3B
IndianRedIndianRedrgb(205, 92, 92)#CD5C5C
IndianRed3IndianRed3rgb(205, 85, 85)#CD5555
firebrick2firebrick2rgb(238, 44, 44)#EE2C2C
snow4snow4rgb(139, 137, 137)#8B8989
brown3brown3rgb(205, 51, 51)#CD3333
redredrgb(255, 0, 0)#FF0000
red1red1rgb(255, 0, 0)#FF0000
RosyBrown4RosyBrown4rgb(139, 105, 105)#8B6969
firebrick3firebrick3rgb(205, 38, 38)#CD2626
red2red2rgb(238, 0, 0)#EE0000
firebrickfirebrickrgb(178, 34, 34)#B22222
brownbrownrgb(165, 42, 42)#A52A2A
red3red3rgb(205, 0, 0)#CD0000
IndianRed4IndianRed4rgb(139, 58, 58)#8B3A3A
brown4brown4rgb(139, 35, 35)#8B2323
firebrick4firebrick4rgb(139, 26, 26)#8B1A1A
DarkRedDarkRedrgb(139, 0, 0)#8B0000
red4red4rgb(139, 0, 0)#8B0000
maroonmaroonrgb(128, 0, 0)#800000
LightPink1LightPink1rgb(255, 174, 185)#FFAEB9
LightPink3LightPink3rgb(205, 140, 149)#CD8C95
LightPink4LightPink4rgb(139, 95, 101)#8B5F65
LightPink2LightPink2rgb(238, 162, 173)#EEA2AD
LightPinkLightPinkrgb(255, 182, 193)#FFB6C1
pinkpinkrgb(255, 192, 203)#FFC0CB
crimsoncrimsonrgb(220, 20, 60)#DC143C
pink1pink1rgb(255, 181, 197)#FFB5C5
pink2pink2rgb(238, 169, 184)#EEA9B8
pink3pink3rgb(205, 145, 158)#CD919E
pink4pink4rgb(139, 99, 108)#8B636C
PaleVioletRed4PaleVioletRed4rgb(139, 71, 93)#8B475D
PaleVioletRedPaleVioletRedrgb(219, 112, 147)#DB7093
PaleVioletRed2PaleVioletRed2rgb(238, 121, 159)#EE799F
PaleVioletRed1PaleVioletRed1rgb(255, 130, 171)#FF82AB
PaleVioletRed3PaleVioletRed3rgb(205, 104, 137)#CD6889
LavenderBlushLavenderBlushrgb(255, 240, 245)#FFF0F5
LavenderBlush1LavenderBlush1rgb(255, 240, 245)#FFF0F5
LavenderBlush3LavenderBlush3rgb(205, 193, 197)#CDC1C5
LavenderBlush2LavenderBlush2rgb(238, 224, 229)#EEE0E5
LavenderBlush4LavenderBlush4rgb(139, 131, 134)#8B8386
maroonmaroonrgb(176, 48, 96)#B03060
HotPink3HotPink3rgb(205, 96, 144)#CD6090
VioletRed3VioletRed3rgb(205, 50, 120)#CD3278
VioletRed1VioletRed1rgb(255, 62, 150)#FF3E96
VioletRed2VioletRed2rgb(238, 58, 140)#EE3A8C
VioletRed4VioletRed4rgb(139, 34, 82)#8B2252
HotPink2HotPink2rgb(238, 106, 167)#EE6AA7
HotPink1HotPink1rgb(255, 110, 180)#FF6EB4
HotPink4HotPink4rgb(139, 58, 98)#8B3A62
HotPinkHotPinkrgb(255, 105, 180)#FF69B4
DeepPinkDeepPinkrgb(255, 20, 147)#FF1493
DeepPink1DeepPink1rgb(255, 20, 147)#FF1493
DeepPink2DeepPink2rgb(238, 18, 137)#EE1289
DeepPink3DeepPink3rgb(205, 16, 118)#CD1076
DeepPink4DeepPink4rgb(139, 10, 80)#8B0A50
maroon1maroon1rgb(255, 52, 179)#FF34B3
maroon2maroon2rgb(238, 48, 167)#EE30A7
maroon3maroon3rgb(205, 41, 144)#CD2990
maroon4maroon4rgb(139, 28, 98)#8B1C62
MediumVioletRedMediumVioletRedrgb(199, 21, 133)#C71585
VioletRedVioletRedrgb(208, 32, 144)#D02090
orchid2orchid2rgb(238, 122, 233)#EE7AE9
orchidorchidrgb(218, 112, 214)#DA70D6
orchid1orchid1rgb(255, 131, 250)#FF83FA
orchid3orchid3rgb(205, 105, 201)#CD69C9
orchid4orchid4rgb(139, 71, 137)#8B4789
thistle1thistle1rgb(255, 225, 255)#FFE1FF
thistle2thistle2rgb(238, 210, 238)#EED2EE
plum1plum1rgb(255, 187, 255)#FFBBFF
plum2plum2rgb(238, 174, 238)#EEAEEE
thistlethistlergb(216, 191, 216)#D8BFD8
thistle3thistle3rgb(205, 181, 205)#CDB5CD
plumplumrgb(221, 160, 221)#DDA0DD
violetvioletrgb(238, 130, 238)#EE82EE
plum3plum3rgb(205, 150, 205)#CD96CD
thistle4thistle4rgb(139, 123, 139)#8B7B8B
fuchsiafuchsiargb(255, 0, 255)#FF00FF
magentamagentargb(255, 0, 255)#FF00FF
magenta1magenta1rgb(255, 0, 255)#FF00FF
plum4plum4rgb(139, 102, 139)#8B668B
magenta2magenta2rgb(238, 0, 238)#EE00EE
magenta3magenta3rgb(205, 0, 205)#CD00CD
DarkMagentaDarkMagentargb(139, 0, 139)#8B008B
magenta4magenta4rgb(139, 0, 139)#8B008B
purplepurplergb(128, 0, 128)#800080
MediumOrchidMediumOrchidrgb(186, 85, 211)#BA55D3
MediumOrchid1MediumOrchid1rgb(224, 102, 255)#E066FF
MediumOrchid2MediumOrchid2rgb(209, 95, 238)#D15FEE
MediumOrchid3MediumOrchid3rgb(180, 82, 205)#B452CD
MediumOrchid4MediumOrchid4rgb(122, 55, 139)#7A378B
DarkVioletDarkVioletrgb(148, 0, 211)#9400D3
DarkOrchidDarkOrchidrgb(153, 50, 204)#9932CC
DarkOrchid1DarkOrchid1rgb(191, 62, 255)#BF3EFF
DarkOrchid3DarkOrchid3rgb(154, 50, 205)#9A32CD
DarkOrchid2DarkOrchid2rgb(178, 58, 238)#B23AEE
DarkOrchid4DarkOrchid4rgb(104, 34, 139)#68228B
purplepurplergb(160, 32, 240)#A020F0
indigoindigorgb( 75, 0, 130)#4B0082
BlueVioletBlueVioletrgb(138, 43, 226)#8A2BE2
purple2purple2rgb(145, 44, 238)#912CEE
purple3purple3rgb(125, 38, 205)#7D26CD
purple4purple4rgb( 85, 26, 139)#551A8B
purple1purple1rgb(155, 48, 255)#9B30FF
MediumPurpleMediumPurplergb(147, 112, 219)#9370DB
MediumPurple1MediumPurple1rgb(171, 130, 255)#AB82FF
MediumPurple2MediumPurple2rgb(159, 121, 238)#9F79EE
MediumPurple3MediumPurple3rgb(137, 104, 205)#8968CD
MediumPurple4MediumPurple4rgb( 93, 71, 139)#5D478B
DarkSlateBlueDarkSlateBluergb( 72, 61, 139)#483D8B
LightSlateBlueLightSlateBluergb(132, 112, 255)#8470FF
MediumSlateBlueMediumSlateBluergb(123, 104, 238)#7B68EE
SlateBlueSlateBluergb(106, 90, 205)#6A5ACD
SlateBlue1SlateBlue1rgb(131, 111, 255)#836FFF
SlateBlue2SlateBlue2rgb(122, 103, 238)#7A67EE
SlateBlue3SlateBlue3rgb(105, 89, 205)#6959CD
SlateBlue4SlateBlue4rgb( 71, 60, 139)#473C8B
GhostWhiteGhostWhitergb(248, 248, 255)#F8F8FF
lavenderlavenderrgb(230, 230, 250)#E6E6FA
bluebluergb( 0, 0, 255)#0000FF
blue1blue1rgb( 0, 0, 255)#0000FF
blue2blue2rgb( 0, 0, 238)#0000EE
blue3blue3rgb( 0, 0, 205)#0000CD
MediumBlueMediumBluergb( 0, 0, 205)#0000CD
blue4blue4rgb( 0, 0, 139)#00008B
DarkBlueDarkBluergb( 0, 0, 139)#00008B
MidnightBlueMidnightBluergb( 25, 25, 112)#191970
navynavyrgb( 0, 0, 128)#000080
NavyBlueNavyBluergb( 0, 0, 128)#000080
RoyalBlueRoyalBluergb( 65, 105, 225)#4169E1
RoyalBlue1RoyalBlue1rgb( 72, 118, 255)#4876FF
RoyalBlue2RoyalBlue2rgb( 67, 110, 238)#436EEE
RoyalBlue3RoyalBlue3rgb( 58, 95, 205)#3A5FCD
RoyalBlue4RoyalBlue4rgb( 39, 64, 139)#27408B
CornflowerBlueCornflowerBluergb(100, 149, 237)#6495ED
LightSteelBlueLightSteelBluergb(176, 196, 222)#B0C4DE
LightSteelBlue1LightSteelBlue1rgb(202, 225, 255)#CAE1FF
LightSteelBlue2LightSteelBlue2rgb(188, 210, 238)#BCD2EE
LightSteelBlue3LightSteelBlue3rgb(162, 181, 205)#A2B5CD
LightSteelBlue4LightSteelBlue4rgb(110, 123, 139)#6E7B8B
SlateGray4SlateGray4rgb(108, 123, 139)#6C7B8B
SlateGray1SlateGray1rgb(198, 226, 255)#C6E2FF
SlateGray2SlateGray2rgb(185, 211, 238)#B9D3EE
SlateGray3SlateGray3rgb(159, 182, 205)#9FB6CD
LightSlateGrayLightSlateGrayrgb(119, 136, 153)#778899
LightSlateGreyLightSlateGreyrgb(119, 136, 153)#778899
SlateGraySlateGrayrgb(112, 128, 144)#708090
SlateGreySlateGreyrgb(112, 128, 144)#708090
DodgerBlueDodgerBluergb( 30, 144, 255)#1E90FF
DodgerBlue1DodgerBlue1rgb( 30, 144, 255)#1E90FF
DodgerBlue2DodgerBlue2rgb( 28, 134, 238)#1C86EE
DodgerBlue4DodgerBlue4rgb( 16, 78, 139)#104E8B
DodgerBlue3DodgerBlue3rgb( 24, 116, 205)#1874CD
AliceBlueAliceBluergb(240, 248, 255)#F0F8FF
SteelBlue4SteelBlue4rgb( 54, 100, 139)#36648B
SteelBlueSteelBluergb( 70, 130, 180)#4682B4
SteelBlue1SteelBlue1rgb( 99, 184, 255)#63B8FF
SteelBlue2SteelBlue2rgb( 92, 172, 238)#5CACEE
SteelBlue3SteelBlue3rgb( 79, 148, 205)#4F94CD
SkyBlue4SkyBlue4rgb( 74, 112, 139)#4A708B
SkyBlue1SkyBlue1rgb(135, 206, 255)#87CEFF
SkyBlue2SkyBlue2rgb(126, 192, 238)#7EC0EE
SkyBlue3SkyBlue3rgb(108, 166, 205)#6CA6CD
LightSkyBlueLightSkyBluergb(135, 206, 250)#87CEFA
LightSkyBlue4LightSkyBlue4rgb( 96, 123, 139)#607B8B
LightSkyBlue1LightSkyBlue1rgb(176, 226, 255)#B0E2FF
LightSkyBlue2LightSkyBlue2rgb(164, 211, 238)#A4D3EE
LightSkyBlue3LightSkyBlue3rgb(141, 182, 205)#8DB6CD
SkyBlueSkyBluergb(135, 206, 235)#87CEEB
LightBlue3LightBlue3rgb(154, 192, 205)#9AC0CD
DeepSkyBlueDeepSkyBluergb( 0, 191, 255)#00BFFF
DeepSkyBlue1DeepSkyBlue1rgb( 0, 191, 255)#00BFFF
DeepSkyBlue2DeepSkyBlue2rgb( 0, 178, 238)#00B2EE
DeepSkyBlue4DeepSkyBlue4rgb( 0, 104, 139)#00688B
DeepSkyBlue3DeepSkyBlue3rgb( 0, 154, 205)#009ACD
LightBlue1LightBlue1rgb(191, 239, 255)#BFEFFF
LightBlue2LightBlue2rgb(178, 223, 238)#B2DFEE
LightBlueLightBluergb(173, 216, 230)#ADD8E6
LightBlue4LightBlue4rgb(104, 131, 139)#68838B
PowderBluePowderBluergb(176, 224, 230)#B0E0E6
CadetBlue1CadetBlue1rgb(152, 245, 255)#98F5FF
CadetBlue2CadetBlue2rgb(142, 229, 238)#8EE5EE
CadetBlue3CadetBlue3rgb(122, 197, 205)#7AC5CD
CadetBlue4CadetBlue4rgb( 83, 134, 139)#53868B
turquoise1turquoise1rgb( 0, 245, 255)#00F5FF
turquoise2turquoise2rgb( 0, 229, 238)#00E5EE
turquoise3turquoise3rgb( 0, 197, 205)#00C5CD
turquoise4turquoise4rgb( 0, 134, 139)#00868B
cadet bluecadet bluergb( 95, 158, 160)#5F9EA0
CadetBlueCadetBluergb( 95, 158, 160)#5F9EA0
DarkTurquoiseDarkTurquoisergb( 0, 206, 209)#00CED1
azureazurergb(240, 255, 255)#F0FFFF
azure1azure1rgb(240, 255, 255)#F0FFFF
LightCyanLightCyanrgb(224, 255, 255)#E0FFFF
LightCyan1LightCyan1rgb(224, 255, 255)#E0FFFF
azure2azure2rgb(224, 238, 238)#E0EEEE
LightCyan2LightCyan2rgb(209, 238, 238)#D1EEEE
PaleTurquoise1PaleTurquoise1rgb(187, 255, 255)#BBFFFF
PaleTurquoisePaleTurquoisergb(175, 238, 238)#AFEEEE
PaleTurquoise2PaleTurquoise2rgb(174, 238, 238)#AEEEEE
DarkSlateGray1DarkSlateGray1rgb(151, 255, 255)#97FFFF
azure3azure3rgb(193, 205, 205)#C1CDCD
LightCyan3LightCyan3rgb(180, 205, 205)#B4CDCD
DarkSlateGray2DarkSlateGray2rgb(141, 238, 238)#8DEEEE
PaleTurquoise3PaleTurquoise3rgb(150, 205, 205)#96CDCD
DarkSlateGray3DarkSlateGray3rgb(121, 205, 205)#79CDCD
azure4azure4rgb(131, 139, 139)#838B8B
LightCyan4LightCyan4rgb(122, 139, 139)#7A8B8B
aquaaquargb( 0, 255, 255)#00FFFF
cyancyanrgb( 0, 255, 255)#00FFFF
cyan1cyan1rgb( 0, 255, 255)#00FFFF
PaleTurquoise4PaleTurquoise4rgb(102, 139, 139)#668B8B
cyan2cyan2rgb( 0, 238, 238)#00EEEE
DarkSlateGray4DarkSlateGray4rgb( 82, 139, 139)#528B8B
cyan3cyan3rgb( 0, 205, 205)#00CDCD
cyan4cyan4rgb( 0, 139, 139)#008B8B
DarkCyanDarkCyanrgb( 0, 139, 139)#008B8B
tealtealrgb( 0, 128, 128)#008080
DarkSlateGrayDarkSlateGrayrgb( 47, 79, 79)#2F4F4F
DarkSlateGreyDarkSlateGreyrgb( 47, 79, 79)#2F4F4F
MediumTurquoiseMediumTurquoisergb( 72, 209, 204)#48D1CC
LightSeaGreenLightSeaGreenrgb( 32, 178, 170)#20B2AA
turquoiseturquoisergb( 64, 224, 208)#40E0D0
aquamarine4aquamarine4rgb( 69, 139, 116)#458B74
aquamarineaquamarinergb(127, 255, 212)#7FFFD4
aquamarine1aquamarine1rgb(127, 255, 212)#7FFFD4
aquamarine2aquamarine2rgb(118, 238, 198)#76EEC6
aquamarine3aquamarine3rgb(102, 205, 170)#66CDAA
MediumAquamarineMediumAquamarinergb(102, 205, 170)#66CDAA
MediumSpringGreenMediumSpringGreenrgb( 0, 250, 154)#00FA9A
MintCreamMintCreamrgb(245, 255, 250)#F5FFFA
SpringGreenSpringGreenrgb( 0, 255, 127)#00FF7F
SpringGreen1SpringGreen1rgb( 0, 255, 127)#00FF7F
SpringGreen2SpringGreen2rgb( 0, 238, 118)#00EE76
SpringGreen3SpringGreen3rgb( 0, 205, 102)#00CD66
SpringGreen4SpringGreen4rgb( 0, 139, 69)#008B45
MediumSeaGreenMediumSeaGreenrgb( 60, 179, 113)#3CB371
SeaGreenSeaGreenrgb( 46, 139, 87)#2E8B57
SeaGreen3SeaGreen3rgb( 67, 205, 128)#43CD80
SeaGreen1SeaGreen1rgb( 84, 255, 159)#54FF9F
SeaGreen4SeaGreen4rgb( 46, 139, 87)#2E8B57
SeaGreen2SeaGreen2rgb( 78, 238, 148)#4EEE94
MediumForestGreenMediumForestGreenrgb( 50, 129, 75)#32814B
honeydewhoneydewrgb(240, 255, 240)#F0FFF0
honeydew1honeydew1rgb(240, 255, 240)#F0FFF0
honeydew2honeydew2rgb(224, 238, 224)#E0EEE0
DarkSeaGreen1DarkSeaGreen1rgb(193, 255, 193)#C1FFC1
DarkSeaGreen2DarkSeaGreen2rgb(180, 238, 180)#B4EEB4
PaleGreen1PaleGreen1rgb(154, 255, 154)#9AFF9A
PaleGreenPaleGreenrgb(152, 251, 152)#98FB98
honeydew3honeydew3rgb(193, 205, 193)#C1CDC1
LightGreenLightGreenrgb(144, 238, 144)#90EE90
PaleGreen2PaleGreen2rgb(144, 238, 144)#90EE90
DarkSeaGreen3DarkSeaGreen3rgb(155, 205, 155)#9BCD9B
DarkSeaGreenDarkSeaGreenrgb(143, 188, 143)#8FBC8F
PaleGreen3PaleGreen3rgb(124, 205, 124)#7CCD7C
honeydew4honeydew4rgb(131, 139, 131)#838B83
green1green1rgb( 0, 255, 0)#00FF00
limelimergb( 0, 255, 0)#00FF00
LimeGreenLimeGreenrgb( 50, 205, 50)#32CD32
DarkSeaGreen4DarkSeaGreen4rgb(105, 139, 105)#698B69
green2green2rgb( 0, 238, 0)#00EE00
PaleGreen4PaleGreen4rgb( 84, 139, 84)#548B54
green3green3rgb( 0, 205, 0)#00CD00
ForestGreenForestGreenrgb( 34, 139, 34)#228B22
green4green4rgb( 0, 139, 0)#008B00
greengreenrgb( 0, 128, 0)#008000
DarkGreenDarkGreenrgb( 0, 100, 0)#006400
LawnGreenLawnGreenrgb(124, 252, 0)#7CFC00
chartreusechartreusergb(127, 255, 0)#7FFF00
chartreuse1chartreuse1rgb(127, 255, 0)#7FFF00
chartreuse2chartreuse2rgb(118, 238, 0)#76EE00
chartreuse3chartreuse3rgb(102, 205, 0)#66CD00
chartreuse4chartreuse4rgb( 69, 139, 0)#458B00
GreenYellowGreenYellowrgb(173, 255, 47)#ADFF2F
DarkOliveGreen3DarkOliveGreen3rgb(162, 205, 90)#A2CD5A
DarkOliveGreen1DarkOliveGreen1rgb(202, 255, 112)#CAFF70
DarkOliveGreen2DarkOliveGreen2rgb(188, 238, 104)#BCEE68
DarkOliveGreen4DarkOliveGreen4rgb(110, 139, 61)#6E8B3D
DarkOliveGreenDarkOliveGreenrgb( 85, 107, 47)#556B2F
OliveDrabOliveDrabrgb(107, 142, 35)#6B8E23
OliveDrab1OliveDrab1rgb(192, 255, 62)#C0FF3E
OliveDrab2OliveDrab2rgb(179, 238, 58)#B3EE3A
OliveDrab3OliveDrab3rgb(154, 205, 50)#9ACD32
YellowGreenYellowGreenrgb(154, 205, 50)#9ACD32
OliveDrab4OliveDrab4rgb(105, 139, 34)#698B22
ivoryivoryrgb(255, 255, 240)#FFFFF0
ivory1ivory1rgb(255, 255, 240)#FFFFF0
LightYellowLightYellowrgb(255, 255, 224)#FFFFE0
LightYellow1LightYellow1rgb(255, 255, 224)#FFFFE0
beigebeigergb(245, 245, 220)#F5F5DC
ivory2ivory2rgb(238, 238, 224)#EEEEE0
LightGoldenrodYellowLightGoldenrodYellowrgb(250, 250, 210)#FAFAD2
LightYellow2LightYellow2rgb(238, 238, 209)#EEEED1
ivory3ivory3rgb(205, 205, 193)#CDCDC1
LightYellow3LightYellow3rgb(205, 205, 180)#CDCDB4
ivory4ivory4rgb(139, 139, 131)#8B8B83
LightYellow4LightYellow4rgb(139, 139, 122)#8B8B7A
yellowyellowrgb(255, 255, 0)#FFFF00
yellow1yellow1rgb(255, 255, 0)#FFFF00
yellow2yellow2rgb(238, 238, 0)#EEEE00
yellow3yellow3rgb(205, 205, 0)#CDCD00
yellow4yellow4rgb(139, 139, 0)#8B8B00
oliveolivergb(128, 128, 0)#808000
DarkKhakiDarkKhakirgb(189, 183, 107)#BDB76B
khaki2khaki2rgb(238, 230, 133)#EEE685
LemonChiffon4LemonChiffon4rgb(139, 137, 112)#8B8970
khaki1khaki1rgb(255, 246, 143)#FFF68F
khaki3khaki3rgb(205, 198, 115)#CDC673
khaki4khaki4rgb(139, 134, 78)#8B864E
PaleGoldenrodPaleGoldenrodrgb(238, 232, 170)#EEE8AA
LemonChiffonLemonChiffonrgb(255, 250, 205)#FFFACD
LemonChiffon1LemonChiffon1rgb(255, 250, 205)#FFFACD
khakikhakirgb(240, 230, 140)#F0E68C
LemonChiffon3LemonChiffon3rgb(205, 201, 165)#CDC9A5
LemonChiffon2LemonChiffon2rgb(238, 233, 191)#EEE9BF
MediumGoldenRodMediumGoldenRodrgb(209, 193, 102)#D1C166
cornsilk4cornsilk4rgb(139, 136, 120)#8B8878
goldgoldrgb(255, 215, 0)#FFD700
gold1gold1rgb(255, 215, 0)#FFD700
gold2gold2rgb(238, 201, 0)#EEC900
gold3gold3rgb(205, 173, 0)#CDAD00
gold4gold4rgb(139, 117, 0)#8B7500
LightGoldenrodLightGoldenrodrgb(238, 221, 130)#EEDD82
LightGoldenrod4LightGoldenrod4rgb(139, 129, 76)#8B814C
LightGoldenrod1LightGoldenrod1rgb(255, 236, 139)#FFEC8B
LightGoldenrod3LightGoldenrod3rgb(205, 190, 112)#CDBE70
LightGoldenrod2LightGoldenrod2rgb(238, 220, 130)#EEDC82
cornsilk3cornsilk3rgb(205, 200, 177)#CDC8B1
cornsilk2cornsilk2rgb(238, 232, 205)#EEE8CD
cornsilkcornsilkrgb(255, 248, 220)#FFF8DC
cornsilk1cornsilk1rgb(255, 248, 220)#FFF8DC
goldenrodgoldenrodrgb(218, 165, 32)#DAA520
goldenrod1goldenrod1rgb(255, 193, 37)#FFC125
goldenrod2goldenrod2rgb(238, 180, 34)#EEB422
goldenrod3goldenrod3rgb(205, 155, 29)#CD9B1D
goldenrod4goldenrod4rgb(139, 105, 20)#8B6914
DarkGoldenrodDarkGoldenrodrgb(184, 134, 11)#B8860B
DarkGoldenrod1DarkGoldenrod1rgb(255, 185, 15)#FFB90F
DarkGoldenrod2DarkGoldenrod2rgb(238, 173, 14)#EEAD0E
DarkGoldenrod3DarkGoldenrod3rgb(205, 149, 12)#CD950C
DarkGoldenrod4DarkGoldenrod4rgb(139, 101, 8)#8B6508
FloralWhiteFloralWhitergb(255, 250, 240)#FFFAF0
wheat2wheat2rgb(238, 216, 174)#EED8AE
OldLaceOldLacergb(253, 245, 230)#FDF5E6
wheatwheatrgb(245, 222, 179)#F5DEB3
wheat1wheat1rgb(255, 231, 186)#FFE7BA
wheat3wheat3rgb(205, 186, 150)#CDBA96
orangeorangergb(255, 165, 0)#FFA500
orange1orange1rgb(255, 165, 0)#FFA500
orange2orange2rgb(238, 154, 0)#EE9A00
orange3orange3rgb(205, 133, 0)#CD8500
orange4orange4rgb(139, 90, 0)#8B5A00
wheat4wheat4rgb(139, 126, 102)#8B7E66
moccasinmoccasinrgb(255, 228, 181)#FFE4B5
PapayaWhipPapayaWhiprgb(255, 239, 213)#FFEFD5
NavajoWhite3NavajoWhite3rgb(205, 179, 139)#CDB38B
BlanchedAlmondBlanchedAlmondrgb(255, 235, 205)#FFEBCD
NavajoWhiteNavajoWhitergb(255, 222, 173)#FFDEAD
NavajoWhite1NavajoWhite1rgb(255, 222, 173)#FFDEAD
NavajoWhite2NavajoWhite2rgb(238, 207, 161)#EECFA1
NavajoWhite4NavajoWhite4rgb(139, 121, 94)#8B795E
AntiqueWhite4AntiqueWhite4rgb(139, 131, 120)#8B8378
AntiqueWhiteAntiqueWhitergb(250, 235, 215)#FAEBD7
tantanrgb(210, 180, 140)#D2B48C
bisque4bisque4rgb(139, 125, 107)#8B7D6B
burlywoodburlywoodrgb(222, 184, 135)#DEB887
AntiqueWhite2AntiqueWhite2rgb(238, 223, 204)#EEDFCC
burlywood1burlywood1rgb(255, 211, 155)#FFD39B
burlywood3burlywood3rgb(205, 170, 125)#CDAA7D
burlywood2burlywood2rgb(238, 197, 145)#EEC591
AntiqueWhite1AntiqueWhite1rgb(255, 239, 219)#FFEFDB
burlywood4burlywood4rgb(139, 115, 85)#8B7355
AntiqueWhite3AntiqueWhite3rgb(205, 192, 176)#CDC0B0
DarkOrangeDarkOrangergb(255, 140, 0)#FF8C00
bisque2bisque2rgb(238, 213, 183)#EED5B7
bisquebisquergb(255, 228, 196)#FFE4C4
bisque1bisque1rgb(255, 228, 196)#FFE4C4
bisque3bisque3rgb(205, 183, 158)#CDB79E
DarkOrange1DarkOrange1rgb(255, 127, 0)#FF7F00
linenlinenrgb(250, 240, 230)#FAF0E6
DarkOrange2DarkOrange2rgb(238, 118, 0)#EE7600
DarkOrange3DarkOrange3rgb(205, 102, 0)#CD6600
DarkOrange4DarkOrange4rgb(139, 69, 0)#8B4500
peruperurgb(205, 133, 63)#CD853F
tan1tan1rgb(255, 165, 79)#FFA54F
tan2tan2rgb(238, 154, 73)#EE9A49
tan3tan3rgb(205, 133, 63)#CD853F
tan4tan4rgb(139, 90, 43)#8B5A2B
PeachPuffPeachPuffrgb(255, 218, 185)#FFDAB9
PeachPuff1PeachPuff1rgb(255, 218, 185)#FFDAB9
PeachPuff4PeachPuff4rgb(139, 119, 101)#8B7765
PeachPuff2PeachPuff2rgb(238, 203, 173)#EECBAD
PeachPuff3PeachPuff3rgb(205, 175, 149)#CDAF95
SandyBrownSandyBrownrgb(244, 164, 96)#F4A460
seashell4seashell4rgb(139, 134, 130)#8B8682
seashell2seashell2rgb(238, 229, 222)#EEE5DE
seashell3seashell3rgb(205, 197, 191)#CDC5BF
chocolatechocolatergb(210, 105, 30)#D2691E
chocolate1chocolate1rgb(255, 127, 36)#FF7F24
chocolate2chocolate2rgb(238, 118, 33)#EE7621
chocolate3chocolate3rgb(205, 102, 29)#CD661D
chocolate4chocolate4rgb(139, 69, 19)#8B4513
SaddleBrownSaddleBrownrgb(139, 69, 19)#8B4513
seashellseashellrgb(255, 245, 238)#FFF5EE
seashell1seashell1rgb(255, 245, 238)#FFF5EE
sienna4sienna4rgb(139, 71, 38)#8B4726
siennasiennargb(160, 82, 45)#A0522D
sienna1sienna1rgb(255, 130, 71)#FF8247
sienna2sienna2rgb(238, 121, 66)#EE7942
sienna3sienna3rgb(205, 104, 57)#CD6839
LightSalmon3LightSalmon3rgb(205, 129, 98)#CD8162
LightSalmonLightSalmonrgb(255, 160, 122)#FFA07A
LightSalmon1LightSalmon1rgb(255, 160, 122)#FFA07A
LightSalmon4LightSalmon4rgb(139, 87, 66)#8B5742
LightSalmon2LightSalmon2rgb(238, 149, 114)#EE9572
coralcoralrgb(255, 127, 80)#FF7F50
OrangeRedOrangeRedrgb(255, 69, 0)#FF4500
OrangeRed1OrangeRed1rgb(255, 69, 0)#FF4500
OrangeRed2OrangeRed2rgb(238, 64, 0)#EE4000
OrangeRed3OrangeRed3rgb(205, 55, 0)#CD3700
OrangeRed4OrangeRed4rgb(139, 37, 0)#8B2500
DarkSalmonDarkSalmonrgb(233, 150, 122)#E9967A
salmon1salmon1rgb(255, 140, 105)#FF8C69
salmon2salmon2rgb(238, 130, 98)#EE8262
salmon3salmon3rgb(205, 112, 84)#CD7054
salmon4salmon4rgb(139, 76, 57)#8B4C39
coral1coral1rgb(255, 114, 86)#FF7256
coral2coral2rgb(238, 106, 80)#EE6A50
coral3coral3rgb(205, 91, 69)#CD5B45
coral4coral4rgb(139, 62, 47)#8B3E2F
tomato4tomato4rgb(139, 54, 38)#8B3626
tomatotomatorgb(255, 99, 71)#FF6347
tomato1tomato1rgb(255, 99, 71)#FF6347
tomato2tomato2rgb(238, 92, 66)#EE5C42
tomato3tomato3rgb(205, 79, 57)#CD4F39
MistyRose4MistyRose4rgb(139, 125, 123)#8B7D7B
MistyRose2MistyRose2rgb(238, 213, 210)#EED5D2
MistyRoseMistyRosergb(255, 228, 225)#FFE4E1
MistyRose1MistyRose1rgb(255, 228, 225)#FFE4E1
salmonsalmonrgb(250, 128, 114)#FA8072
MistyRose3MistyRose3rgb(205, 183, 181)#CDB7B5
whitewhitergb(255, 255, 255)#FFFFFF
gray100gray100rgb(255, 255, 255)#FFFFFF
grey100grey100rgb(255, 255, 255)#FFFFFF
grey100grey100rgb(255, 255, 255)#FFFFFF
gray99gray99rgb(252, 252, 252)#FCFCFC
grey99grey99rgb(252, 252, 252)#FCFCFC
gray98gray98rgb(250, 250, 250)#FAFAFA
grey98grey98rgb(250, 250, 250)#FAFAFA
gray97gray97rgb(247, 247, 247)#F7F7F7
grey97grey97rgb(247, 247, 247)#F7F7F7
gray96gray96rgb(245, 245, 245)#F5F5F5
grey96grey96rgb(245, 245, 245)#F5F5F5
WhiteSmokeWhiteSmokergb(245, 245, 245)#F5F5F5
gray95gray95rgb(242, 242, 242)#F2F2F2
grey95grey95rgb(242, 242, 242)#F2F2F2
gray94gray94rgb(240, 240, 240)#F0F0F0
grey94grey94rgb(240, 240, 240)#F0F0F0
gray93gray93rgb(237, 237, 237)#EDEDED
grey93grey93rgb(237, 237, 237)#EDEDED
gray92gray92rgb(235, 235, 235)#EBEBEB
grey92grey92rgb(235, 235, 235)#EBEBEB
gray91gray91rgb(232, 232, 232)#E8E8E8
grey91grey91rgb(232, 232, 232)#E8E8E8
gray90gray90rgb(229, 229, 229)#E5E5E5
grey90grey90rgb(229, 229, 229)#E5E5E5
gray89gray89rgb(227, 227, 227)#E3E3E3
grey89grey89rgb(227, 227, 227)#E3E3E3
gray88gray88rgb(224, 224, 224)#E0E0E0
grey88grey88rgb(224, 224, 224)#E0E0E0
gray87gray87rgb(222, 222, 222)#DEDEDE
grey87grey87rgb(222, 222, 222)#DEDEDE
gainsborogainsbororgb(220, 220, 220)#DCDCDC
gray86gray86rgb(219, 219, 219)#DBDBDB
grey86grey86rgb(219, 219, 219)#DBDBDB
gray85gray85rgb(217, 217, 217)#D9D9D9
grey85grey85rgb(217, 217, 217)#D9D9D9
gray84gray84rgb(214, 214, 214)#D6D6D6
grey84grey84rgb(214, 214, 214)#D6D6D6
gray83gray83rgb(212, 212, 212)#D4D4D4
grey83grey83rgb(212, 212, 212)#D4D4D4
LightGrayLightGrayrgb(211, 211, 211)#D3D3D3
LightGreyLightGreyrgb(211, 211, 211)#D3D3D3
gray82gray82rgb(209, 209, 209)#D1D1D1
grey82grey82rgb(209, 209, 209)#D1D1D1
gray81gray81rgb(207, 207, 207)#CFCFCF
grey81grey81rgb(207, 207, 207)#CFCFCF
gray80gray80rgb(204, 204, 204)#CCCCCC
grey80grey80rgb(204, 204, 204)#CCCCCC
gray79gray79rgb(201, 201, 201)#C9C9C9
grey79grey79rgb(201, 201, 201)#C9C9C9
gray78gray78rgb(199, 199, 199)#C7C7C7
grey78grey78rgb(199, 199, 199)#C7C7C7
gray77gray77rgb(196, 196, 196)#C4C4C4
grey77grey77rgb(196, 196, 196)#C4C4C4
gray76gray76rgb(194, 194, 194)#C2C2C2
grey76grey76rgb(194, 194, 194)#C2C2C2
silversilverrgb(192, 192, 192)#C0C0C0
gray75gray75rgb(191, 191, 191)#BFBFBF
grey75grey75rgb(191, 191, 191)#BFBFBF
gray74gray74rgb(189, 189, 189)#BDBDBD
grey74grey74rgb(189, 189, 189)#BDBDBD
gray73gray73rgb(186, 186, 186)#BABABA
grey73grey73rgb(186, 186, 186)#BABABA
gray72gray72rgb(184, 184, 184)#B8B8B8
grey72grey72rgb(184, 184, 184)#B8B8B8
gray71gray71rgb(181, 181, 181)#B5B5B5
grey71grey71rgb(181, 181, 181)#B5B5B5
gray70gray70rgb(179, 179, 179)#B3B3B3
grey70grey70rgb(179, 179, 179)#B3B3B3
gray69gray69rgb(176, 176, 176)#B0B0B0
grey69grey69rgb(176, 176, 176)#B0B0B0
gray68gray68rgb(173, 173, 173)#ADADAD
grey68grey68rgb(173, 173, 173)#ADADAD
gray67gray67rgb(171, 171, 171)#ABABAB
grey67grey67rgb(171, 171, 171)#ABABAB
DarkGrayDarkGrayrgb(169, 169, 169)#A9A9A9
DarkGreyDarkGreyrgb(169, 169, 169)#A9A9A9
gray66gray66rgb(168, 168, 168)#A8A8A8
grey66grey66rgb(168, 168, 168)#A8A8A8
gray65gray65rgb(166, 166, 166)#A6A6A6
grey65grey65rgb(166, 166, 166)#A6A6A6
gray64gray64rgb(163, 163, 163)#A3A3A3
grey64grey64rgb(163, 163, 163)#A3A3A3
gray63gray63rgb(161, 161, 161)#A1A1A1
grey63grey63rgb(161, 161, 161)#A1A1A1
gray62gray62rgb(158, 158, 158)#9E9E9E
grey62grey62rgb(158, 158, 158)#9E9E9E
gray61gray61rgb(156, 156, 156)#9C9C9C
grey61grey61rgb(156, 156, 156)#9C9C9C
gray60gray60rgb(153, 153, 153)#999999
grey60grey60rgb(153, 153, 153)#999999
gray59gray59rgb(150, 150, 150)#969696
grey59grey59rgb(150, 150, 150)#969696
gray58gray58rgb(148, 148, 148)#949494
grey58grey58rgb(148, 148, 148)#949494
gray57gray57rgb(145, 145, 145)#919191
grey57grey57rgb(145, 145, 145)#919191
gray56gray56rgb(143, 143, 143)#8F8F8F
grey56grey56rgb(143, 143, 143)#8F8F8F
gray55gray55rgb(140, 140, 140)#8C8C8C
grey55grey55rgb(140, 140, 140)#8C8C8C
gray54gray54rgb(138, 138, 138)#8A8A8A
grey54grey54rgb(138, 138, 138)#8A8A8A
gray53gray53rgb(135, 135, 135)#878787
grey53grey53rgb(135, 135, 135)#878787
gray52gray52rgb(133, 133, 133)#858585
grey52grey52rgb(133, 133, 133)#858585
gray51gray51rgb(130, 130, 130)#828282
grey51grey51rgb(130, 130, 130)#828282
fractalfractalrgb(128, 128, 128)#808080
gray50gray50rgb(127, 127, 127)#7F7F7F
grey50grey50rgb(127, 127, 127)#7F7F7F
graygrayrgb(126, 126, 126)#7E7E7E
gray49gray49rgb(125, 125, 125)#7D7D7D
grey49grey49rgb(125, 125, 125)#7D7D7D
gray48gray48rgb(122, 122, 122)#7A7A7A
grey48grey48rgb(122, 122, 122)#7A7A7A
gray47gray47rgb(120, 120, 120)#787878
grey47grey47rgb(120, 120, 120)#787878
gray46gray46rgb(117, 117, 117)#757575
grey46grey46rgb(117, 117, 117)#757575
gray45gray45rgb(115, 115, 115)#737373
grey45grey45rgb(115, 115, 115)#737373
gray44gray44rgb(112, 112, 112)#707070
grey44grey44rgb(112, 112, 112)#707070
gray43gray43rgb(110, 110, 110)#6E6E6E
grey43grey43rgb(110, 110, 110)#6E6E6E
gray42gray42rgb(107, 107, 107)#6B6B6B
grey42grey42rgb(107, 107, 107)#6B6B6B
DimGrayDimGrayrgb(105, 105, 105)#696969
DimGreyDimGreyrgb(105, 105, 105)#696969
gray41gray41rgb(105, 105, 105)#696969
grey41grey41rgb(105, 105, 105)#696969
gray40gray40rgb(102, 102, 102)#666666
grey40grey40rgb(102, 102, 102)#666666
gray39gray39rgb( 99, 99, 99)#636363
grey39grey39rgb( 99, 99, 99)#636363
gray38gray38rgb( 97, 97, 97)#616161
grey38grey38rgb( 97, 97, 97)#616161
gray37gray37rgb( 94, 94, 94)#5E5E5E
grey37grey37rgb( 94, 94, 94)#5E5E5E
gray36gray36rgb( 92, 92, 92)#5C5C5C
grey36grey36rgb( 92, 92, 92)#5C5C5C
gray35gray35rgb( 89, 89, 89)#595959
grey35grey35rgb( 89, 89, 89)#595959
gray34gray34rgb( 87, 87, 87)#575757
grey34grey34rgb( 87, 87, 87)#575757
gray33gray33rgb( 84, 84, 84)#545454
grey33grey33rgb( 84, 84, 84)#545454
gray32gray32rgb( 82, 82, 82)#525252
grey32grey32rgb( 82, 82, 82)#525252
gray31gray31rgb( 79, 79, 79)#4F4F4F
grey31grey31rgb( 79, 79, 79)#4F4F4F
gray30gray30rgb( 77, 77, 77)#4D4D4D
grey30grey30rgb( 77, 77, 77)#4D4D4D
gray29gray29rgb( 74, 74, 74)#4A4A4A
grey29grey29rgb( 74, 74, 74)#4A4A4A
gray28gray28rgb( 71, 71, 71)#474747
grey28grey28rgb( 71, 71, 71)#474747
gray27gray27rgb( 69, 69, 69)#454545
grey27grey27rgb( 69, 69, 69)#454545
gray26gray26rgb( 66, 66, 66)#424242
grey26grey26rgb( 66, 66, 66)#424242
gray25gray25rgb( 64, 64, 64)#404040
grey25grey25rgb( 64, 64, 64)#404040
gray24gray24rgb( 61, 61, 61)#3D3D3D
grey24grey24rgb( 61, 61, 61)#3D3D3D
gray23gray23rgb( 59, 59, 59)#3B3B3B
grey23grey23rgb( 59, 59, 59)#3B3B3B
gray22gray22rgb( 56, 56, 56)#383838
grey22grey22rgb( 56, 56, 56)#383838
gray21gray21rgb( 54, 54, 54)#363636
grey21grey21rgb( 54, 54, 54)#363636
gray20gray20rgb( 51, 51, 51)#333333
grey20grey20rgb( 51, 51, 51)#333333
gray19gray19rgb( 48, 48, 48)#303030
grey19grey19rgb( 48, 48, 48)#303030
gray18gray18rgb( 46, 46, 46)#2E2E2E
grey18grey18rgb( 46, 46, 46)#2E2E2E
gray17gray17rgb( 43, 43, 43)#2B2B2B
grey17grey17rgb( 43, 43, 43)#2B2B2B
gray16gray16rgb( 41, 41, 41)#292929
grey16grey16rgb( 41, 41, 41)#292929
gray15gray15rgb( 38, 38, 38)#262626
grey15grey15rgb( 38, 38, 38)#262626
gray14gray14rgb( 36, 36, 36)#242424
grey14grey14rgb( 36, 36, 36)#242424
gray13gray13rgb( 33, 33, 33)#212121
grey13grey13rgb( 33, 33, 33)#212121
gray12gray12rgb( 31, 31, 31)#1F1F1F
grey12grey12rgb( 31, 31, 31)#1F1F1F
gray11gray11rgb( 28, 28, 28)#1C1C1C
grey11grey11rgb( 28, 28, 28)#1C1C1C
gray10gray10rgb( 26, 26, 26)#1A1A1A
grey10grey10rgb( 26, 26, 26)#1A1A1A
gray9gray9rgb( 23, 23, 23)#171717
grey9grey9rgb( 23, 23, 23)#171717
gray8gray8rgb( 20, 20, 20)#141414
grey8grey8rgb( 20, 20, 20)#141414
gray7gray7rgb( 18, 18, 18)#121212
grey7grey7rgb( 18, 18, 18)#121212
gray6gray6rgb( 15, 15, 15)#0F0F0F
grey6grey6rgb( 15, 15, 15)#0F0F0F
gray5gray5rgb( 13, 13, 13)#0D0D0D
grey5grey5rgb( 13, 13, 13)#0D0D0D
gray4gray4rgb( 10, 10, 10)#0A0A0A
grey4grey4rgb( 10, 10, 10)#0A0A0A
gray3gray3rgb( 8, 8, 8)#080808
grey3grey3rgb( 8, 8, 8)#080808
gray2gray2rgb( 5, 5, 5)#050505
grey2grey2rgb( 5, 5, 5)#050505
gray1gray1rgb( 3, 3, 3)#030303
grey1grey1rgb( 3, 3, 3)#030303
blackblackrgb( 0, 0, 0)#000000
gray0gray0rgb( 0, 0, 0)#000000
grey0grey0rgb( 0, 0, 0)#000000
opaqueopaquergb( 0, 0, 0)#000000
nonenonergba( 0, 0, 0, 0.0)#00000000
transparenttransparentrgba( 0, 0, 0, 0.0)#00000000
- -
- -
- - diff --git a/share/frontend/imgrid/colors/colors/js/wrkshp/hexes b/share/frontend/imgrid/colors/colors/js/wrkshp/hexes deleted file mode 100755 index dcc3bda..0000000 --- a/share/frontend/imgrid/colors/colors/js/wrkshp/hexes +++ /dev/null @@ -1 +0,0 @@ -hexlist = ['#FFFAFA', '#FFFAFA', '#EEE9E9', '#FFC1C1', '#EEB4B4', '#CDC9C9', '#F08080', '#FF6A6A', '#CD9B9B', '#EE6363', '#BC8F8F', '#FF4040', '#FF3030', '#EE3B3B', '#CD5C5C', '#CD5555', '#EE2C2C', '#8B8989', '#CD3333', '#FF0000', '#FF0000', '#8B6969', '#CD2626', '#EE0000', '#B22222', '#A52A2A', '#CD0000', '#8B3A3A', '#8B2323', '#8B1A1A', '#8B0000', '#8B0000', '#800000', '#FFAEB9', '#CD8C95', '#8B5F65', '#EEA2AD', '#FFB6C1', '#FFC0CB', '#DC143C', '#FFB5C5', '#EEA9B8', '#CD919E', '#8B636C', '#8B475D', '#DB7093', '#EE799F', '#FF82AB', '#CD6889', '#FFF0F5', '#FFF0F5', '#CDC1C5', '#EEE0E5', '#8B8386', '#B03060', '#CD6090', '#CD3278', '#FF3E96', '#EE3A8C', '#8B2252', '#EE6AA7', '#FF6EB4', '#8B3A62', '#FF69B4', '#FF1493', '#FF1493', '#EE1289', '#CD1076', '#8B0A50', '#FF34B3', '#EE30A7', '#CD2990', '#8B1C62', '#C71585', '#D02090', '#EE7AE9', '#DA70D6', '#FF83FA', '#CD69C9', '#8B4789', '#FFE1FF', '#EED2EE', '#FFBBFF', '#EEAEEE', '#D8BFD8', '#CDB5CD', '#DDA0DD', '#EE82EE', '#CD96CD', '#8B7B8B', '#FF00FF', '#FF00FF', '#FF00FF', '#8B668B', '#EE00EE', '#CD00CD', '#8B008B', '#8B008B', '#800080', '#BA55D3', '#E066FF', '#D15FEE', '#B452CD', '#7A378B', '#9400D3', '#9932CC', '#BF3EFF', '#9A32CD', '#B23AEE', '#68228B', '#A020F0', '#4B0082', '#8A2BE2', '#912CEE', '#7D26CD', '#551A8B', '#9B30FF', '#9370DB', '#AB82FF', '#9F79EE', '#8968CD', '#5D478B', '#483D8B', '#8470FF', '#7B68EE', '#6A5ACD', '#836FFF', '#7A67EE', '#6959CD', '#473C8B', '#F8F8FF', '#E6E6FA', '#0000FF', '#0000FF', '#0000EE', '#0000CD', '#0000CD', '#00008B', '#00008B', '#191970', '#000080', '#000080', '#4169E1', '#4876FF', '#436EEE', '#3A5FCD', '#27408B', '#6495ED', '#B0C4DE', '#CAE1FF', '#BCD2EE', '#A2B5CD', '#6E7B8B', '#6C7B8B', '#C6E2FF', '#B9D3EE', '#9FB6CD', '#778899', '#778899', '#708090', '#708090', '#1E90FF', '#1E90FF', '#1C86EE', '#104E8B', '#1874CD', '#F0F8FF', '#36648B', '#4682B4', '#63B8FF', '#5CACEE', '#4F94CD', '#4A708B', '#87CEFF', '#7EC0EE', '#6CA6CD', '#87CEFA', '#607B8B', '#B0E2FF', '#A4D3EE', '#8DB6CD', '#87CEEB', '#9AC0CD', '#00BFFF', '#00BFFF', '#00B2EE', '#00688B', '#009ACD', '#BFEFFF', '#B2DFEE', '#ADD8E6', '#68838B', '#B0E0E6', '#98F5FF', '#8EE5EE', '#7AC5CD', '#53868B', '#00F5FF', '#00E5EE', '#00C5CD', '#00868B', '#5F9EA0', '#5F9EA0', '#00CED1', '#F0FFFF', '#F0FFFF', '#E0FFFF', '#E0FFFF', '#E0EEEE', '#D1EEEE', '#BBFFFF', '#AFEEEE', '#AEEEEE', '#97FFFF', '#C1CDCD', '#B4CDCD', '#8DEEEE', '#96CDCD', '#79CDCD', '#838B8B', '#7A8B8B', '#00FFFF', '#00FFFF', '#00FFFF', '#668B8B', '#00EEEE', '#528B8B', '#00CDCD', '#008B8B', '#008B8B', '#008080', '#2F4F4F', '#2F4F4F', '#48D1CC', '#20B2AA', '#40E0D0', '#458B74', '#7FFFD4', '#7FFFD4', '#76EEC6', '#66CDAA', '#66CDAA', '#00FA9A', '#F5FFFA', '#00FF7F', '#00FF7F', '#00EE76', '#00CD66', '#008B45', '#3CB371', '#2E8B57', '#43CD80', '#54FF9F', '#2E8B57', '#4EEE94', '#32814B', '#F0FFF0', '#F0FFF0', '#E0EEE0', '#C1FFC1', '#B4EEB4', '#9AFF9A', '#98FB98', '#C1CDC1', '#90EE90', '#90EE90', '#9BCD9B', '#8FBC8F', '#7CCD7C', '#838B83', '#00FF00', '#00FF00', '#32CD32', '#698B69', '#00EE00', '#548B54', '#00CD00', '#228B22', '#008B00', '#008000', '#006400', '#7CFC00', '#7FFF00', '#7FFF00', '#76EE00', '#66CD00', '#458B00', '#ADFF2F', '#A2CD5A', '#CAFF70', '#BCEE68', '#6E8B3D', '#556B2F', '#6B8E23', '#C0FF3E', '#B3EE3A', '#9ACD32', '#9ACD32', '#698B22', '#FFFFF0', '#FFFFF0', '#FFFFE0', '#FFFFE0', '#F5F5DC', '#EEEEE0', '#FAFAD2', '#EEEED1', '#CDCDC1', '#CDCDB4', '#8B8B83', '#8B8B7A', '#FFFF00', '#FFFF00', '#EEEE00', '#CDCD00', '#8B8B00', '#808000', '#BDB76B', '#EEE685', '#8B8970', '#FFF68F', '#CDC673', '#8B864E', '#EEE8AA', '#FFFACD', '#FFFACD', '#F0E68C', '#CDC9A5', '#EEE9BF', '#D1C166', '#8B8878', '#FFD700', '#FFD700', '#EEC900', '#CDAD00', '#8B7500', '#EEDD82', '#8B814C', '#FFEC8B', '#CDBE70', '#EEDC82', '#CDC8B1', '#EEE8CD', '#FFF8DC', '#FFF8DC', '#DAA520', '#FFC125', '#EEB422', '#CD9B1D', '#8B6914', '#B8860B', '#FFB90F', '#EEAD0E', '#CD950C', '#8B6508', '#FFFAF0', '#EED8AE', '#FDF5E6', '#F5DEB3', '#FFE7BA', '#CDBA96', '#FFA500', '#FFA500', '#EE9A00', '#CD8500', '#8B5A00', '#8B7E66', '#FFE4B5', '#FFEFD5', '#CDB38B', '#FFEBCD', '#FFDEAD', '#FFDEAD', '#EECFA1', '#8B795E', '#8B8378', '#FAEBD7', '#D2B48C', '#8B7D6B', '#DEB887', '#EEDFCC', '#FFD39B', '#CDAA7D', '#EEC591', '#FFEFDB', '#8B7355', '#CDC0B0', '#FF8C00', '#EED5B7', '#FFE4C4', '#FFE4C4', '#CDB79E', '#FF7F00', '#FAF0E6', '#EE7600', '#CD6600', '#8B4500', '#CD853F', '#FFA54F', '#EE9A49', '#CD853F', '#8B5A2B', '#FFDAB9', '#FFDAB9', '#8B7765', '#EECBAD', '#CDAF95', '#F4A460', '#8B8682', '#EEE5DE', '#CDC5BF', '#D2691E', '#FF7F24', '#EE7621', '#CD661D', '#8B4513', '#8B4513', '#FFF5EE', '#FFF5EE', '#8B4726', '#A0522D', '#FF8247', '#EE7942', '#CD6839', '#CD8162', '#FFA07A', '#FFA07A', '#8B5742', '#EE9572', '#FF7F50', '#FF4500', '#FF4500', '#EE4000', '#CD3700', '#8B2500', '#E9967A', '#FF8C69', '#EE8262', '#CD7054', '#8B4C39', '#FF7256', '#EE6A50', '#CD5B45', '#8B3E2F', '#8B3626', '#FF6347', '#FF6347', '#EE5C42', '#CD4F39', '#8B7D7B', '#EED5D2', '#FFE4E1', '#FFE4E1', '#FA8072', '#CDB7B5', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FCFCFC', '#FCFCFC', '#FAFAFA', '#FAFAFA', '#F7F7F7', '#F7F7F7', '#F5F5F5', '#F5F5F5', '#F5F5F5', '#F2F2F2', '#F2F2F2', '#F0F0F0', '#F0F0F0', '#EDEDED', '#EDEDED', '#EBEBEB', '#EBEBEB', '#E8E8E8', '#E8E8E8', '#E5E5E5', '#E5E5E5', '#E3E3E3', '#E3E3E3', '#E0E0E0', '#E0E0E0', '#DEDEDE', '#DEDEDE', '#DCDCDC', '#DBDBDB', '#DBDBDB', '#D9D9D9', '#D9D9D9', '#D6D6D6', '#D6D6D6', '#D4D4D4', '#D4D4D4', '#D3D3D3', '#D3D3D3', '#D1D1D1', '#D1D1D1', '#CFCFCF', '#CFCFCF', '#CCCCCC', '#CCCCCC', '#C9C9C9', '#C9C9C9', '#C7C7C7', '#C7C7C7', '#C4C4C4', '#C4C4C4', '#C2C2C2', '#C2C2C2', '#C0C0C0', '#BFBFBF', '#BFBFBF', '#BDBDBD', '#BDBDBD', '#BABABA', '#BABABA', '#B8B8B8', '#B8B8B8', '#B5B5B5', '#B5B5B5', '#B3B3B3', '#B3B3B3', '#B0B0B0', '#B0B0B0', '#ADADAD', '#ADADAD', '#ABABAB', '#ABABAB', '#A9A9A9', '#A9A9A9', '#A8A8A8', '#A8A8A8', '#A6A6A6', '#A6A6A6', '#A3A3A3', '#A3A3A3', '#A1A1A1', '#A1A1A1', '#9E9E9E', '#9E9E9E', '#9C9C9C', '#9C9C9C', '#999999', '#999999', '#969696', '#969696', '#949494', '#949494', '#919191', '#919191', '#8F8F8F', '#8F8F8F', '#8C8C8C', '#8C8C8C', '#8A8A8A', '#8A8A8A', '#878787', '#878787', '#858585', '#858585', '#828282', '#828282', '#808080', '#7F7F7F', '#7F7F7F', '#7E7E7E', '#7D7D7D', '#7D7D7D', '#7A7A7A', '#7A7A7A', '#787878', '#787878', '#757575', '#757575', '#737373', '#737373', '#707070', '#707070', '#6E6E6E', '#6E6E6E', '#6B6B6B', '#6B6B6B', '#696969', '#696969', '#696969', '#696969', '#666666', '#666666', '#636363', '#636363', '#616161', '#616161', '#5E5E5E', '#5E5E5E', '#5C5C5C', '#5C5C5C', '#595959', '#595959', '#575757', '#575757', '#545454', '#545454', '#525252', '#525252', '#4F4F4F', '#4F4F4F', '#4D4D4D', '#4D4D4D', '#4A4A4A', '#4A4A4A', '#474747', '#474747', '#454545', '#454545', '#424242', '#424242', '#404040', '#404040', '#3D3D3D', '#3D3D3D', '#3B3B3B', '#3B3B3B', '#383838', '#383838', '#363636', '#363636', '#333333', '#333333', '#303030', '#303030', '#2E2E2E', '#2E2E2E', '#2B2B2B', '#2B2B2B', '#292929', '#292929', '#262626', '#262626', '#242424', '#242424', '#212121', '#212121', '#1F1F1F', '#1F1F1F', '#1C1C1C', '#1C1C1C', '#1A1A1A', '#1A1A1A', '#171717', '#171717', '#141414', '#141414', '#121212', '#121212', '#0F0F0F', '#0F0F0F', '#0D0D0D', '#0D0D0D', '#0A0A0A', '#0A0A0A', '#080808', '#080808', '#050505', '#050505', '#030303', '#030303', '#000000', '#000000', '#000000', '#000000', '#000000', '#000000'] \ No newline at end of file diff --git a/share/frontend/imgrid/colors/colors/js/wrkshp/maker.py b/share/frontend/imgrid/colors/colors/js/wrkshp/maker.py deleted file mode 100755 index 65209aa..0000000 --- a/share/frontend/imgrid/colors/colors/js/wrkshp/maker.py +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/python2.7 - - - -hexlist = ['#FFFAFA', '#FFFAFA', '#EEE9E9', '#FFC1C1', '#EEB4B4', '#CDC9C9', '#F08080', '#FF6A6A', '#CD9B9B', '#EE6363', '#BC8F8F', '#FF4040', '#FF3030', '#EE3B3B', '#CD5C5C', '#CD5555', '#EE2C2C', '#8B8989', '#CD3333', '#FF0000', '#FF0000', '#8B6969', '#CD2626', '#EE0000', '#B22222', '#A52A2A', '#CD0000', '#8B3A3A', '#8B2323', '#8B1A1A', '#8B0000', '#8B0000', '#800000', '#FFAEB9', '#CD8C95', '#8B5F65', '#EEA2AD', '#FFB6C1', '#FFC0CB', '#DC143C', '#FFB5C5', '#EEA9B8', '#CD919E', '#8B636C', '#8B475D', '#DB7093', '#EE799F', '#FF82AB', '#CD6889', '#FFF0F5', '#FFF0F5', '#CDC1C5', '#EEE0E5', '#8B8386', '#B03060', '#CD6090', '#CD3278', '#FF3E96', '#EE3A8C', '#8B2252', '#EE6AA7', '#FF6EB4', '#8B3A62', '#FF69B4', '#FF1493', '#FF1493', '#EE1289', '#CD1076', '#8B0A50', '#FF34B3', '#EE30A7', '#CD2990', '#8B1C62', '#C71585', '#D02090', '#EE7AE9', '#DA70D6', '#FF83FA', '#CD69C9', '#8B4789', '#FFE1FF', '#EED2EE', '#FFBBFF', '#EEAEEE', '#D8BFD8', '#CDB5CD', '#DDA0DD', '#EE82EE', '#CD96CD', '#8B7B8B', '#FF00FF', '#FF00FF', '#FF00FF', '#8B668B', '#EE00EE', '#CD00CD', '#8B008B', '#8B008B', '#800080', '#BA55D3', '#E066FF', '#D15FEE', '#B452CD', '#7A378B', '#9400D3', '#9932CC', '#BF3EFF', '#9A32CD', '#B23AEE', '#68228B', '#A020F0', '#4B0082', '#8A2BE2', '#912CEE', '#7D26CD', '#551A8B', '#9B30FF', '#9370DB', '#AB82FF', '#9F79EE', '#8968CD', '#5D478B', '#483D8B', '#8470FF', '#7B68EE', '#6A5ACD', '#836FFF', '#7A67EE', '#6959CD', '#473C8B', '#F8F8FF', '#E6E6FA', '#0000FF', '#0000FF', '#0000EE', '#0000CD', '#0000CD', '#00008B', '#00008B', '#191970', '#000080', '#000080', '#4169E1', '#4876FF', '#436EEE', '#3A5FCD', '#27408B', '#6495ED', '#B0C4DE', '#CAE1FF', '#BCD2EE', '#A2B5CD', '#6E7B8B', '#6C7B8B', '#C6E2FF', '#B9D3EE', '#9FB6CD', '#778899', '#778899', '#708090', '#708090', '#1E90FF', '#1E90FF', '#1C86EE', '#104E8B', '#1874CD', '#F0F8FF', '#36648B', '#4682B4', '#63B8FF', '#5CACEE', '#4F94CD', '#4A708B', '#87CEFF', '#7EC0EE', '#6CA6CD', '#87CEFA', '#607B8B', '#B0E2FF', '#A4D3EE', '#8DB6CD', '#87CEEB', '#9AC0CD', '#00BFFF', '#00BFFF', '#00B2EE', '#00688B', '#009ACD', '#BFEFFF', '#B2DFEE', '#ADD8E6', '#68838B', '#B0E0E6', '#98F5FF', '#8EE5EE', '#7AC5CD', '#53868B', '#00F5FF', '#00E5EE', '#00C5CD', '#00868B', '#5F9EA0', '#5F9EA0', '#00CED1', '#F0FFFF', '#F0FFFF', '#E0FFFF', '#E0FFFF', '#E0EEEE', '#D1EEEE', '#BBFFFF', '#AFEEEE', '#AEEEEE', '#97FFFF', '#C1CDCD', '#B4CDCD', '#8DEEEE', '#96CDCD', '#79CDCD', '#838B8B', '#7A8B8B', '#00FFFF', '#00FFFF', '#00FFFF', '#668B8B', '#00EEEE', '#528B8B', '#00CDCD', '#008B8B', '#008B8B', '#008080', '#2F4F4F', '#2F4F4F', '#48D1CC', '#20B2AA', '#40E0D0', '#458B74', '#7FFFD4', '#7FFFD4', '#76EEC6', '#66CDAA', '#66CDAA', '#00FA9A', '#F5FFFA', '#00FF7F', '#00FF7F', '#00EE76', '#00CD66', '#008B45', '#3CB371', '#2E8B57', '#43CD80', '#54FF9F', '#2E8B57', '#4EEE94', '#32814B', '#F0FFF0', '#F0FFF0', '#E0EEE0', '#C1FFC1', '#B4EEB4', '#9AFF9A', '#98FB98', '#C1CDC1', '#90EE90', '#90EE90', '#9BCD9B', '#8FBC8F', '#7CCD7C', '#838B83', '#00FF00', '#00FF00', '#32CD32', '#698B69', '#00EE00', '#548B54', '#00CD00', '#228B22', '#008B00', '#008000', '#006400', '#7CFC00', '#7FFF00', '#7FFF00', '#76EE00', '#66CD00', '#458B00', '#ADFF2F', '#A2CD5A', '#CAFF70', '#BCEE68', '#6E8B3D', '#556B2F', '#6B8E23', '#C0FF3E', '#B3EE3A', '#9ACD32', '#9ACD32', '#698B22', '#FFFFF0', '#FFFFF0', '#FFFFE0', '#FFFFE0', '#F5F5DC', '#EEEEE0', '#FAFAD2', '#EEEED1', '#CDCDC1', '#CDCDB4', '#8B8B83', '#8B8B7A', '#FFFF00', '#FFFF00', '#EEEE00', '#CDCD00', '#8B8B00', '#808000', '#BDB76B', '#EEE685', '#8B8970', '#FFF68F', '#CDC673', '#8B864E', '#EEE8AA', '#FFFACD', '#FFFACD', '#F0E68C', '#CDC9A5', '#EEE9BF', '#D1C166', '#8B8878', '#FFD700', '#FFD700', '#EEC900', '#CDAD00', '#8B7500', '#EEDD82', '#8B814C', '#FFEC8B', '#CDBE70', '#EEDC82', '#CDC8B1', '#EEE8CD', '#FFF8DC', '#FFF8DC', '#DAA520', '#FFC125', '#EEB422', '#CD9B1D', '#8B6914', '#B8860B', '#FFB90F', '#EEAD0E', '#CD950C', '#8B6508', '#FFFAF0', '#EED8AE', '#FDF5E6', '#F5DEB3', '#FFE7BA', '#CDBA96', '#FFA500', '#FFA500', '#EE9A00', '#CD8500', '#8B5A00', '#8B7E66', '#FFE4B5', '#FFEFD5', '#CDB38B', '#FFEBCD', '#FFDEAD', '#FFDEAD', '#EECFA1', '#8B795E', '#8B8378', '#FAEBD7', '#D2B48C', '#8B7D6B', '#DEB887', '#EEDFCC', '#FFD39B', '#CDAA7D', '#EEC591', '#FFEFDB', '#8B7355', '#CDC0B0', '#FF8C00', '#EED5B7', '#FFE4C4', '#FFE4C4', '#CDB79E', '#FF7F00', '#FAF0E6', '#EE7600', '#CD6600', '#8B4500', '#CD853F', '#FFA54F', '#EE9A49', '#CD853F', '#8B5A2B', '#FFDAB9', '#FFDAB9', '#8B7765', '#EECBAD', '#CDAF95', '#F4A460', '#8B8682', '#EEE5DE', '#CDC5BF', '#D2691E', '#FF7F24', '#EE7621', '#CD661D', '#8B4513', '#8B4513', '#FFF5EE', '#FFF5EE', '#8B4726', '#A0522D', '#FF8247', '#EE7942', '#CD6839', '#CD8162', '#FFA07A', '#FFA07A', '#8B5742', '#EE9572', '#FF7F50', '#FF4500', '#FF4500', '#EE4000', '#CD3700', '#8B2500', '#E9967A', '#FF8C69', '#EE8262', '#CD7054', '#8B4C39', '#FF7256', '#EE6A50', '#CD5B45', '#8B3E2F', '#8B3626', '#FF6347', '#FF6347', '#EE5C42', '#CD4F39', '#8B7D7B', '#EED5D2', '#FFE4E1', '#FFE4E1', '#FA8072', '#CDB7B5', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FCFCFC', '#FCFCFC', '#FAFAFA', '#FAFAFA', '#F7F7F7', '#F7F7F7', '#F5F5F5', '#F5F5F5', '#F5F5F5', '#F2F2F2', '#F2F2F2', '#F0F0F0', '#F0F0F0', '#EDEDED', '#EDEDED', '#EBEBEB', '#EBEBEB', '#E8E8E8', '#E8E8E8', '#E5E5E5', '#E5E5E5', '#E3E3E3', '#E3E3E3', '#E0E0E0', '#E0E0E0', '#DEDEDE', '#DEDEDE', '#DCDCDC', '#DBDBDB', '#DBDBDB', '#D9D9D9', '#D9D9D9', '#D6D6D6', '#D6D6D6', '#D4D4D4', '#D4D4D4', '#D3D3D3', '#D3D3D3', '#D1D1D1', '#D1D1D1', '#CFCFCF', '#CFCFCF', '#CCCCCC', '#CCCCCC', '#C9C9C9', '#C9C9C9', '#C7C7C7', '#C7C7C7', '#C4C4C4', '#C4C4C4', '#C2C2C2', '#C2C2C2', '#C0C0C0', '#BFBFBF', '#BFBFBF', '#BDBDBD', '#BDBDBD', '#BABABA', '#BABABA', '#B8B8B8', '#B8B8B8', '#B5B5B5', '#B5B5B5', '#B3B3B3', '#B3B3B3', '#B0B0B0', '#B0B0B0', '#ADADAD', '#ADADAD', '#ABABAB', '#ABABAB', '#A9A9A9', '#A9A9A9', '#A8A8A8', '#A8A8A8', '#A6A6A6', '#A6A6A6', '#A3A3A3', '#A3A3A3', '#A1A1A1', '#A1A1A1', '#9E9E9E', '#9E9E9E', '#9C9C9C', '#9C9C9C', '#999999', '#999999', '#969696', '#969696', '#949494', '#949494', '#919191', '#919191', '#8F8F8F', '#8F8F8F', '#8C8C8C', '#8C8C8C', '#8A8A8A', '#8A8A8A', '#878787', '#878787', '#858585', '#858585', '#828282', '#828282', '#808080', '#7F7F7F', '#7F7F7F', '#7E7E7E', '#7D7D7D', '#7D7D7D', '#7A7A7A', '#7A7A7A', '#787878', '#787878', '#757575', '#757575', '#737373', '#737373', '#707070', '#707070', '#6E6E6E', '#6E6E6E', '#6B6B6B', '#6B6B6B', '#696969', '#696969', '#696969', '#696969', '#666666', '#666666', '#636363', '#636363', '#616161', '#616161', '#5E5E5E', '#5E5E5E', '#5C5C5C', '#5C5C5C', '#595959', '#595959', '#575757', '#575757', '#545454', '#545454', '#525252', '#525252', '#4F4F4F', '#4F4F4F', '#4D4D4D', '#4D4D4D', '#4A4A4A', '#4A4A4A', '#474747', '#474747', '#454545', '#454545', '#424242', '#424242', '#404040', '#404040', '#3D3D3D', '#3D3D3D', '#3B3B3B', '#3B3B3B', '#383838', '#383838', '#363636', '#363636', '#333333', '#333333', '#303030', '#303030', '#2E2E2E', '#2E2E2E', '#2B2B2B', '#2B2B2B', '#292929', '#292929', '#262626', '#262626', '#242424', '#242424', '#212121', '#212121', '#1F1F1F', '#1F1F1F', '#1C1C1C', '#1C1C1C', '#1A1A1A', '#1A1A1A', '#171717', '#171717', '#141414', '#141414', '#121212', '#121212', '#0F0F0F', '#0F0F0F', '#0D0D0D', '#0D0D0D', '#0A0A0A', '#0A0A0A', '#080808', '#080808', '#050505', '#050505', '#030303', '#030303', '#000000', '#000000', '#000000', '#000000', '#000000', '#000000'] -rgblist = ['rgb(255, 250, 250)', 'rgb(255, 250, 250)', 'rgb(238, 233, 233)', 'rgb(255, 193, 193)', 'rgb(238, 180, 180)', 'rgb(205, 201, 201)', 'rgb(240, 128, 128)', 'rgb(255, 106, 106)', 'rgb(205, 155, 155)', 'rgb(238, 99, 99)', 'rgb(188, 143, 143)', 'rgb(255, 64, 64)', 'rgb(255, 48, 48)', 'rgb(238, 59, 59)', 'rgb(205, 92, 92)', 'rgb(205, 85, 85)', 'rgb(238, 44, 44)', 'rgb(139, 137, 137)', 'rgb(205, 51, 51)', 'rgb(255, 0, 0)', 'rgb(255, 0, 0)', 'rgb(139, 105, 105)', 'rgb(205, 38, 38)', 'rgb(238, 0, 0)', 'rgb(178, 34, 34)', 'rgb(165, 42, 42)', 'rgb(205, 0, 0)', 'rgb(139, 58, 58)', 'rgb(139, 35, 35)', 'rgb(139, 26, 26)', 'rgb(139, 0, 0)', 'rgb(139, 0, 0)', 'rgb(128, 0, 0)', 'rgb(255, 174, 185)', 'rgb(205, 140, 149)', 'rgb(139, 95, 101)', 'rgb(238, 162, 173)', 'rgb(255, 182, 193)', 'rgb(255, 192, 203)', 'rgb(220, 20, 60)', 'rgb(255, 181, 197)', 'rgb(238, 169, 184)', 'rgb(205, 145, 158)', 'rgb(139, 99, 108)', 'rgb(139, 71, 93)', 'rgb(219, 112, 147)', 'rgb(238, 121, 159)', 'rgb(255, 130, 171)', 'rgb(205, 104, 137)', 'rgb(255, 240, 245)', 'rgb(255, 240, 245)', 'rgb(205, 193, 197)', 'rgb(238, 224, 229)', 'rgb(139, 131, 134)', 'rgb(176, 48, 96)', 'rgb(205, 96, 144)', 'rgb(205, 50, 120)', 'rgb(255, 62, 150)', 'rgb(238, 58, 140)', 'rgb(139, 34, 82)', 'rgb(238, 106, 167)', 'rgb(255, 110, 180)', 'rgb(139, 58, 98)', 'rgb(255, 105, 180)', 'rgb(255, 20, 147)', 'rgb(255, 20, 147)', 'rgb(238, 18, 137)', 'rgb(205, 16, 118)', 'rgb(139, 10, 80)', 'rgb(255, 52, 179)', 'rgb(238, 48, 167)', 'rgb(205, 41, 144)', 'rgb(139, 28, 98)', 'rgb(199, 21, 133)', 'rgb(208, 32, 144)', 'rgb(238, 122, 233)', 'rgb(218, 112, 214)', 'rgb(255, 131, 250)', 'rgb(205, 105, 201)', 'rgb(139, 71, 137)', 'rgb(255, 225, 255)', 'rgb(238, 210, 238)', 'rgb(255, 187, 255)', 'rgb(238, 174, 238)', 'rgb(216, 191, 216)', 'rgb(205, 181, 205)', 'rgb(221, 160, 221)', 'rgb(238, 130, 238)', 'rgb(205, 150, 205)', 'rgb(139, 123, 139)', 'rgb(255, 0, 255)', 'rgb(255, 0, 255)', 'rgb(255, 0, 255)', 'rgb(139, 102, 139)', 'rgb(238, 0, 238)', 'rgb(205, 0, 205)', 'rgb(139, 0, 139)', 'rgb(139, 0, 139)', 'rgb(128, 0, 128)', 'rgb(186, 85, 211)', 'rgb(224, 102, 255)', 'rgb(209, 95, 238)', 'rgb(180, 82, 205)', 'rgb(122, 55, 139)', 'rgb(148, 0, 211)', 'rgb(153, 50, 204)', 'rgb(191, 62, 255)', 'rgb(154, 50, 205)', 'rgb(178, 58, 238)', 'rgb(104, 34, 139)', 'rgb(160, 32, 240)', 'rgb( 75, 0, 130)', 'rgb(138, 43, 226)', 'rgb(145, 44, 238)', 'rgb(125, 38, 205)', 'rgb( 85, 26, 139)', 'rgb(155, 48, 255)', 'rgb(147, 112, 219)', 'rgb(171, 130, 255)', 'rgb(159, 121, 238)', 'rgb(137, 104, 205)', 'rgb( 93, 71, 139)', 'rgb( 72, 61, 139)', 'rgb(132, 112, 255)', 'rgb(123, 104, 238)', 'rgb(106, 90, 205)', 'rgb(131, 111, 255)', 'rgb(122, 103, 238)', 'rgb(105, 89, 205)', 'rgb( 71, 60, 139)', 'rgb(248, 248, 255)', 'rgb(230, 230, 250)', 'rgb( 0, 0, 255)', 'rgb( 0, 0, 255)', 'rgb( 0, 0, 238)', 'rgb( 0, 0, 205)', 'rgb( 0, 0, 205)', 'rgb( 0, 0, 139)', 'rgb( 0, 0, 139)', 'rgb( 25, 25, 112)', 'rgb( 0, 0, 128)', 'rgb( 0, 0, 128)', 'rgb( 65, 105, 225)', 'rgb( 72, 118, 255)', 'rgb( 67, 110, 238)', 'rgb( 58, 95, 205)', 'rgb( 39, 64, 139)', 'rgb(100, 149, 237)', 'rgb(176, 196, 222)', 'rgb(202, 225, 255)', 'rgb(188, 210, 238)', 'rgb(162, 181, 205)', 'rgb(110, 123, 139)', 'rgb(108, 123, 139)', 'rgb(198, 226, 255)', 'rgb(185, 211, 238)', 'rgb(159, 182, 205)', 'rgb(119, 136, 153)', 'rgb(119, 136, 153)', 'rgb(112, 128, 144)', 'rgb(112, 128, 144)', 'rgb( 30, 144, 255)', 'rgb( 30, 144, 255)', 'rgb( 28, 134, 238)', 'rgb( 16, 78, 139)', 'rgb( 24, 116, 205)', 'rgb(240, 248, 255)', 'rgb( 54, 100, 139)', 'rgb( 70, 130, 180)', 'rgb( 99, 184, 255)', 'rgb( 92, 172, 238)', 'rgb( 79, 148, 205)', 'rgb( 74, 112, 139)', 'rgb(135, 206, 255)', 'rgb(126, 192, 238)', 'rgb(108, 166, 205)', 'rgb(135, 206, 250)', 'rgb( 96, 123, 139)', 'rgb(176, 226, 255)', 'rgb(164, 211, 238)', 'rgb(141, 182, 205)', 'rgb(135, 206, 235)', 'rgb(154, 192, 205)', 'rgb( 0, 191, 255)', 'rgb( 0, 191, 255)', 'rgb( 0, 178, 238)', 'rgb( 0, 104, 139)', 'rgb( 0, 154, 205)', 'rgb(191, 239, 255)', 'rgb(178, 223, 238)', 'rgb(173, 216, 230)', 'rgb(104, 131, 139)', 'rgb(176, 224, 230)', 'rgb(152, 245, 255)', 'rgb(142, 229, 238)', 'rgb(122, 197, 205)', 'rgb( 83, 134, 139)', 'rgb( 0, 245, 255)', 'rgb( 0, 229, 238)', 'rgb( 0, 197, 205)', 'rgb( 0, 134, 139)', 'rgb( 95, 158, 160)', 'rgb( 95, 158, 160)', 'rgb( 0, 206, 209)', 'rgb(240, 255, 255)', 'rgb(240, 255, 255)', 'rgb(224, 255, 255)', 'rgb(224, 255, 255)', 'rgb(224, 238, 238)', 'rgb(209, 238, 238)', 'rgb(187, 255, 255)', 'rgb(175, 238, 238)', 'rgb(174, 238, 238)', 'rgb(151, 255, 255)', 'rgb(193, 205, 205)', 'rgb(180, 205, 205)', 'rgb(141, 238, 238)', 'rgb(150, 205, 205)', 'rgb(121, 205, 205)', 'rgb(131, 139, 139)', 'rgb(122, 139, 139)', 'rgb( 0, 255, 255)', 'rgb( 0, 255, 255)', 'rgb( 0, 255, 255)', 'rgb(102, 139, 139)', 'rgb( 0, 238, 238)', 'rgb( 82, 139, 139)', 'rgb( 0, 205, 205)', 'rgb( 0, 139, 139)', 'rgb( 0, 139, 139)', 'rgb( 0, 128, 128)', 'rgb( 47, 79, 79)', 'rgb( 47, 79, 79)', 'rgb( 72, 209, 204)', 'rgb( 32, 178, 170)', 'rgb( 64, 224, 208)', 'rgb( 69, 139, 116)', 'rgb(127, 255, 212)', 'rgb(127, 255, 212)', 'rgb(118, 238, 198)', 'rgb(102, 205, 170)', 'rgb(102, 205, 170)', 'rgb( 0, 250, 154)', 'rgb(245, 255, 250)', 'rgb( 0, 255, 127)', 'rgb( 0, 255, 127)', 'rgb( 0, 238, 118)', 'rgb( 0, 205, 102)', 'rgb( 0, 139, 69)', 'rgb( 60, 179, 113)', 'rgb( 46, 139, 87)', 'rgb( 67, 205, 128)', 'rgb( 84, 255, 159)', 'rgb( 46, 139, 87)', 'rgb( 78, 238, 148)', 'rgb( 50, 129, 75)', 'rgb(240, 255, 240)', 'rgb(240, 255, 240)', 'rgb(224, 238, 224)', 'rgb(193, 255, 193)', 'rgb(180, 238, 180)', 'rgb(154, 255, 154)', 'rgb(152, 251, 152)', 'rgb(193, 205, 193)', 'rgb(144, 238, 144)', 'rgb(144, 238, 144)', 'rgb(155, 205, 155)', 'rgb(143, 188, 143)', 'rgb(124, 205, 124)', 'rgb(131, 139, 131)', 'rgb( 0, 255, 0)', 'rgb( 0, 255, 0)', 'rgb( 50, 205, 50)', 'rgb(105, 139, 105)', 'rgb( 0, 238, 0)', 'rgb( 84, 139, 84)', 'rgb( 0, 205, 0)', 'rgb( 34, 139, 34)', 'rgb( 0, 139, 0)', 'rgb( 0, 128, 0)', 'rgb( 0, 100, 0)', 'rgb(124, 252, 0)', 'rgb(127, 255, 0)', 'rgb(127, 255, 0)', 'rgb(118, 238, 0)', 'rgb(102, 205, 0)', 'rgb( 69, 139, 0)', 'rgb(173, 255, 47)', 'rgb(162, 205, 90)', 'rgb(202, 255, 112)', 'rgb(188, 238, 104)', 'rgb(110, 139, 61)', 'rgb( 85, 107, 47)', 'rgb(107, 142, 35)', 'rgb(192, 255, 62)', 'rgb(179, 238, 58)', 'rgb(154, 205, 50)', 'rgb(154, 205, 50)', 'rgb(105, 139, 34)', 'rgb(255, 255, 240)', 'rgb(255, 255, 240)', 'rgb(255, 255, 224)', 'rgb(255, 255, 224)', 'rgb(245, 245, 220)', 'rgb(238, 238, 224)', 'rgb(250, 250, 210)', 'rgb(238, 238, 209)', 'rgb(205, 205, 193)', 'rgb(205, 205, 180)', 'rgb(139, 139, 131)', 'rgb(139, 139, 122)', 'rgb(255, 255, 0)', 'rgb(255, 255, 0)', 'rgb(238, 238, 0)', 'rgb(205, 205, 0)', 'rgb(139, 139, 0)', 'rgb(128, 128, 0)', 'rgb(189, 183, 107)', 'rgb(238, 230, 133)', 'rgb(139, 137, 112)', 'rgb(255, 246, 143)', 'rgb(205, 198, 115)', 'rgb(139, 134, 78)', 'rgb(238, 232, 170)', 'rgb(255, 250, 205)', 'rgb(255, 250, 205)', 'rgb(240, 230, 140)', 'rgb(205, 201, 165)', 'rgb(238, 233, 191)', 'rgb(209, 193, 102)', 'rgb(139, 136, 120)', 'rgb(255, 215, 0)', 'rgb(255, 215, 0)', 'rgb(238, 201, 0)', 'rgb(205, 173, 0)', 'rgb(139, 117, 0)', 'rgb(238, 221, 130)', 'rgb(139, 129, 76)', 'rgb(255, 236, 139)', 'rgb(205, 190, 112)', 'rgb(238, 220, 130)', 'rgb(205, 200, 177)', 'rgb(238, 232, 205)', 'rgb(255, 248, 220)', 'rgb(255, 248, 220)', 'rgb(218, 165, 32)', 'rgb(255, 193, 37)', 'rgb(238, 180, 34)', 'rgb(205, 155, 29)', 'rgb(139, 105, 20)', 'rgb(184, 134, 11)', 'rgb(255, 185, 15)', 'rgb(238, 173, 14)', 'rgb(205, 149, 12)', 'rgb(139, 101, 8)', 'rgb(255, 250, 240)', 'rgb(238, 216, 174)', 'rgb(253, 245, 230)', 'rgb(245, 222, 179)', 'rgb(255, 231, 186)', 'rgb(205, 186, 150)', 'rgb(255, 165, 0)', 'rgb(255, 165, 0)', 'rgb(238, 154, 0)', 'rgb(205, 133, 0)', 'rgb(139, 90, 0)', 'rgb(139, 126, 102)', 'rgb(255, 228, 181)', 'rgb(255, 239, 213)', 'rgb(205, 179, 139)', 'rgb(255, 235, 205)', 'rgb(255, 222, 173)', 'rgb(255, 222, 173)', 'rgb(238, 207, 161)', 'rgb(139, 121, 94)', 'rgb(139, 131, 120)', 'rgb(250, 235, 215)', 'rgb(210, 180, 140)', 'rgb(139, 125, 107)', 'rgb(222, 184, 135)', 'rgb(238, 223, 204)', 'rgb(255, 211, 155)', 'rgb(205, 170, 125)', 'rgb(238, 197, 145)', 'rgb(255, 239, 219)', 'rgb(139, 115, 85)', 'rgb(205, 192, 176)', 'rgb(255, 140, 0)', 'rgb(238, 213, 183)', 'rgb(255, 228, 196)', 'rgb(255, 228, 196)', 'rgb(205, 183, 158)', 'rgb(255, 127, 0)', 'rgb(250, 240, 230)', 'rgb(238, 118, 0)', 'rgb(205, 102, 0)', 'rgb(139, 69, 0)', 'rgb(205, 133, 63)', 'rgb(255, 165, 79)', 'rgb(238, 154, 73)', 'rgb(205, 133, 63)', 'rgb(139, 90, 43)', 'rgb(255, 218, 185)', 'rgb(255, 218, 185)', 'rgb(139, 119, 101)', 'rgb(238, 203, 173)', 'rgb(205, 175, 149)', 'rgb(244, 164, 96)', 'rgb(139, 134, 130)', 'rgb(238, 229, 222)', 'rgb(205, 197, 191)', 'rgb(210, 105, 30)', 'rgb(255, 127, 36)', 'rgb(238, 118, 33)', 'rgb(205, 102, 29)', 'rgb(139, 69, 19)', 'rgb(139, 69, 19)', 'rgb(255, 245, 238)', 'rgb(255, 245, 238)', 'rgb(139, 71, 38)', 'rgb(160, 82, 45)', 'rgb(255, 130, 71)', 'rgb(238, 121, 66)', 'rgb(205, 104, 57)', 'rgb(205, 129, 98)', 'rgb(255, 160, 122)', 'rgb(255, 160, 122)', 'rgb(139, 87, 66)', 'rgb(238, 149, 114)', 'rgb(255, 127, 80)', 'rgb(255, 69, 0)', 'rgb(255, 69, 0)', 'rgb(238, 64, 0)', 'rgb(205, 55, 0)', 'rgb(139, 37, 0)', 'rgb(233, 150, 122)', 'rgb(255, 140, 105)', 'rgb(238, 130, 98)', 'rgb(205, 112, 84)', 'rgb(139, 76, 57)', 'rgb(255, 114, 86)', 'rgb(238, 106, 80)', 'rgb(205, 91, 69)', 'rgb(139, 62, 47)', 'rgb(139, 54, 38)', 'rgb(255, 99, 71)', 'rgb(255, 99, 71)', 'rgb(238, 92, 66)', 'rgb(205, 79, 57)', 'rgb(139, 125, 123)', 'rgb(238, 213, 210)', 'rgb(255, 228, 225)', 'rgb(255, 228, 225)', 'rgb(250, 128, 114)', 'rgb(205, 183, 181)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(252, 252, 252)', 'rgb(252, 252, 252)', 'rgb(250, 250, 250)', 'rgb(250, 250, 250)', 'rgb(247, 247, 247)', 'rgb(247, 247, 247)', 'rgb(245, 245, 245)', 'rgb(245, 245, 245)', 'rgb(245, 245, 245)', 'rgb(242, 242, 242)', 'rgb(242, 242, 242)', 'rgb(240, 240, 240)', 'rgb(240, 240, 240)', 'rgb(237, 237, 237)', 'rgb(237, 237, 237)', 'rgb(235, 235, 235)', 'rgb(235, 235, 235)', 'rgb(232, 232, 232)', 'rgb(232, 232, 232)', 'rgb(229, 229, 229)', 'rgb(229, 229, 229)', 'rgb(227, 227, 227)', 'rgb(227, 227, 227)', 'rgb(224, 224, 224)', 'rgb(224, 224, 224)', 'rgb(222, 222, 222)', 'rgb(222, 222, 222)', 'rgb(220, 220, 220)', 'rgb(219, 219, 219)', 'rgb(219, 219, 219)', 'rgb(217, 217, 217)', 'rgb(217, 217, 217)', 'rgb(214, 214, 214)', 'rgb(214, 214, 214)', 'rgb(212, 212, 212)', 'rgb(212, 212, 212)', 'rgb(211, 211, 211)', 'rgb(211, 211, 211)', 'rgb(209, 209, 209)', 'rgb(209, 209, 209)', 'rgb(207, 207, 207)', 'rgb(207, 207, 207)', 'rgb(204, 204, 204)', 'rgb(204, 204, 204)', 'rgb(201, 201, 201)', 'rgb(201, 201, 201)', 'rgb(199, 199, 199)', 'rgb(199, 199, 199)', 'rgb(196, 196, 196)', 'rgb(196, 196, 196)', 'rgb(194, 194, 194)', 'rgb(194, 194, 194)', 'rgb(192, 192, 192)', 'rgb(191, 191, 191)', 'rgb(191, 191, 191)', 'rgb(189, 189, 189)', 'rgb(189, 189, 189)', 'rgb(186, 186, 186)', 'rgb(186, 186, 186)', 'rgb(184, 184, 184)', 'rgb(184, 184, 184)', 'rgb(181, 181, 181)', 'rgb(181, 181, 181)', 'rgb(179, 179, 179)', 'rgb(179, 179, 179)', 'rgb(176, 176, 176)', 'rgb(176, 176, 176)', 'rgb(173, 173, 173)', 'rgb(173, 173, 173)', 'rgb(171, 171, 171)', 'rgb(171, 171, 171)', 'rgb(169, 169, 169)', 'rgb(169, 169, 169)', 'rgb(168, 168, 168)', 'rgb(168, 168, 168)', 'rgb(166, 166, 166)', 'rgb(166, 166, 166)', 'rgb(163, 163, 163)', 'rgb(163, 163, 163)', 'rgb(161, 161, 161)', 'rgb(161, 161, 161)', 'rgb(158, 158, 158)', 'rgb(158, 158, 158)', 'rgb(156, 156, 156)', 'rgb(156, 156, 156)', 'rgb(153, 153, 153)', 'rgb(153, 153, 153)', 'rgb(150, 150, 150)', 'rgb(150, 150, 150)', 'rgb(148, 148, 148)', 'rgb(148, 148, 148)', 'rgb(145, 145, 145)', 'rgb(145, 145, 145)', 'rgb(143, 143, 143)', 'rgb(143, 143, 143)', 'rgb(140, 140, 140)', 'rgb(140, 140, 140)', 'rgb(138, 138, 138)', 'rgb(138, 138, 138)', 'rgb(135, 135, 135)', 'rgb(135, 135, 135)', 'rgb(133, 133, 133)', 'rgb(133, 133, 133)', 'rgb(130, 130, 130)', 'rgb(130, 130, 130)', 'rgb(128, 128, 128)', 'rgb(127, 127, 127)', 'rgb(127, 127, 127)', 'rgb(126, 126, 126)', 'rgb(125, 125, 125)', 'rgb(125, 125, 125)', 'rgb(122, 122, 122)', 'rgb(122, 122, 122)', 'rgb(120, 120, 120)', 'rgb(120, 120, 120)', 'rgb(117, 117, 117)', 'rgb(117, 117, 117)', 'rgb(115, 115, 115)', 'rgb(115, 115, 115)', 'rgb(112, 112, 112)', 'rgb(112, 112, 112)', 'rgb(110, 110, 110)', 'rgb(110, 110, 110)', 'rgb(107, 107, 107)', 'rgb(107, 107, 107)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(102, 102, 102)', 'rgb(102, 102, 102)', 'rgb( 99, 99, 99)', 'rgb( 99, 99, 99)', 'rgb( 97, 97, 97)', 'rgb( 97, 97, 97)', 'rgb( 94, 94, 94)', 'rgb( 94, 94, 94)', 'rgb( 92, 92, 92)', 'rgb( 92, 92, 92)', 'rgb( 89, 89, 89)', 'rgb( 89, 89, 89)', 'rgb( 87, 87, 87)', 'rgb( 87, 87, 87)', 'rgb( 84, 84, 84)', 'rgb( 84, 84, 84)', 'rgb( 82, 82, 82)', 'rgb( 82, 82, 82)', 'rgb( 79, 79, 79)', 'rgb( 79, 79, 79)', 'rgb( 77, 77, 77)', 'rgb( 77, 77, 77)', 'rgb( 74, 74, 74)', 'rgb( 74, 74, 74)', 'rgb( 71, 71, 71)', 'rgb( 71, 71, 71)', 'rgb( 69, 69, 69)', 'rgb( 69, 69, 69)', 'rgb( 66, 66, 66)', 'rgb( 66, 66, 66)', 'rgb( 64, 64, 64)', 'rgb( 64, 64, 64)', 'rgb( 61, 61, 61)', 'rgb( 61, 61, 61)', 'rgb( 59, 59, 59)', 'rgb( 59, 59, 59)', 'rgb( 56, 56, 56)', 'rgb( 56, 56, 56)', 'rgb( 54, 54, 54)', 'rgb( 54, 54, 54)', 'rgb( 51, 51, 51)', 'rgb( 51, 51, 51)', 'rgb( 48, 48, 48)', 'rgb( 48, 48, 48)', 'rgb( 46, 46, 46)', 'rgb( 46, 46, 46)', 'rgb( 43, 43, 43)', 'rgb( 43, 43, 43)', 'rgb( 41, 41, 41)', 'rgb( 41, 41, 41)', 'rgb( 38, 38, 38)', 'rgb( 38, 38, 38)', 'rgb( 36, 36, 36)', 'rgb( 36, 36, 36)', 'rgb( 33, 33, 33)', 'rgb( 33, 33, 33)', 'rgb( 31, 31, 31)', 'rgb( 31, 31, 31)', 'rgb( 28, 28, 28)', 'rgb( 28, 28, 28)', 'rgb( 26, 26, 26)', 'rgb( 26, 26, 26)', 'rgb( 23, 23, 23)', 'rgb( 23, 23, 23)', 'rgb( 20, 20, 20)', 'rgb( 20, 20, 20)', 'rgb( 18, 18, 18)', 'rgb( 18, 18, 18)', 'rgb( 15, 15, 15)', 'rgb( 15, 15, 15)', 'rgb( 13, 13, 13)', 'rgb( 13, 13, 13)', 'rgb( 10, 10, 10)', 'rgb( 10, 10, 10)', 'rgb( 8, 8, 8)', 'rgb( 8, 8, 8)', 'rgb( 5, 5, 5)', 'rgb( 5, 5, 5)', 'rgb( 3, 3, 3)', 'rgb( 3, 3, 3)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'white', 'white'] -namelist = ['snow', 'snow1', 'snow2', 'RosyBrown1', 'RosyBrown2', 'snow3', 'LightCoral', 'IndianRed1', 'RosyBrown3', 'IndianRed2', 'RosyBrown', 'brown1', 'firebrick1', 'brown2', 'IndianRed', 'IndianRed3', 'firebrick2', 'snow4', 'brown3', 'red', 'red1', 'RosyBrown4', 'firebrick3', 'red2', 'firebrick', 'brown', 'red3', 'IndianRed4', 'brown4', 'firebrick4', 'DarkRed', 'red4', 'maroon', 'LightPink1', 'LightPink3', 'LightPink4', 'LightPink2', 'LightPink', 'pink', 'crimson', 'pink1', 'pink2', 'pink3', 'pink4', 'PaleVioletRed4', 'PaleVioletRed', 'PaleVioletRed2', 'PaleVioletRed1', 'PaleVioletRed3', 'LavenderBlush', 'LavenderBlush1', 'LavenderBlush3', 'LavenderBlush2', 'LavenderBlush4', 'maroon', 'HotPink3', 'VioletRed3', 'VioletRed1', 'VioletRed2', 'VioletRed4', 'HotPink2', 'HotPink1', 'HotPink4', 'HotPink', 'DeepPink', 'DeepPink1', 'DeepPink2', 'DeepPink3', 'DeepPink4', 'maroon1', 'maroon2', 'maroon3', 'maroon4', 'MediumVioletRed', 'VioletRed', 'orchid2', 'orchid', 'orchid1', 'orchid3', 'orchid4', 'thistle1', 'thistle2', 'plum1', 'plum2', 'thistle', 'thistle3', 'plum', 'violet', 'plum3', 'thistle4', 'fuchsia', 'magenta', 'magenta1', 'plum4', 'magenta2', 'magenta3', 'DarkMagenta', 'magenta4', 'purple', 'MediumOrchid', 'MediumOrchid1', 'MediumOrchid2', 'MediumOrchid3', 'MediumOrchid4', 'DarkViolet', 'DarkOrchid', 'DarkOrchid1', 'DarkOrchid3', 'DarkOrchid2', 'DarkOrchid4', 'purple', 'indigo', 'BlueViolet', 'purple2', 'purple3', 'purple4', 'purple1', 'MediumPurple', 'MediumPurple1', 'MediumPurple2', 'MediumPurple3', 'MediumPurple4', 'DarkSlateBlue', 'LightSlateBlue', 'MediumSlateBlue', 'SlateBlue', 'SlateBlue1', 'SlateBlue2', 'SlateBlue3', 'SlateBlue4', 'GhostWhite', 'lavender', 'blue', 'blue1', 'blue2', 'blue3', 'MediumBlue', 'blue4', 'DarkBlue', 'MidnightBlue', 'navy', 'NavyBlue', 'RoyalBlue', 'RoyalBlue1', 'RoyalBlue2', 'RoyalBlue3', 'RoyalBlue4', 'CornflowerBlue', 'LightSteelBlue', 'LightSteelBlue1', 'LightSteelBlue2', 'LightSteelBlue3', 'LightSteelBlue4', 'SlateGray4', 'SlateGray1', 'SlateGray2', 'SlateGray3', 'LightSlateGray', 'LightSlateGrey', 'SlateGray', 'SlateGrey', 'DodgerBlue', 'DodgerBlue1', 'DodgerBlue2', 'DodgerBlue4', 'DodgerBlue3', 'AliceBlue', 'SteelBlue4', 'SteelBlue', 'SteelBlue1', 'SteelBlue2', 'SteelBlue3', 'SkyBlue4', 'SkyBlue1', 'SkyBlue2', 'SkyBlue3', 'LightSkyBlue', 'LightSkyBlue4', 'LightSkyBlue1', 'LightSkyBlue2', 'LightSkyBlue3', 'SkyBlue', 'LightBlue3', 'DeepSkyBlue', 'DeepSkyBlue1', 'DeepSkyBlue2', 'DeepSkyBlue4', 'DeepSkyBlue3', 'LightBlue1', 'LightBlue2', 'LightBlue', 'LightBlue4', 'PowderBlue', 'CadetBlue1', 'CadetBlue2', 'CadetBlue3', 'CadetBlue4', 'turquoise1', 'turquoise2', 'turquoise3', 'turquoise4', 'cadet blue', 'CadetBlue', 'DarkTurquoise', 'azure', 'azure1', 'LightCyan', 'LightCyan1', 'azure2', 'LightCyan2', 'PaleTurquoise1', 'PaleTurquoise', 'PaleTurquoise2', 'DarkSlateGray1', 'azure3', 'LightCyan3', 'DarkSlateGray2', 'PaleTurquoise3', 'DarkSlateGray3', 'azure4', 'LightCyan4', 'aqua', 'cyan', 'cyan1', 'PaleTurquoise4', 'cyan2', 'DarkSlateGray4', 'cyan3', 'cyan4', 'DarkCyan', 'teal', 'DarkSlateGray', 'DarkSlateGrey', 'MediumTurquoise', 'LightSeaGreen', 'turquoise', 'aquamarine4', 'aquamarine', 'aquamarine1', 'aquamarine2', 'aquamarine3', 'MediumAquamarine', 'MediumSpringGreen', 'MintCream', 'SpringGreen', 'SpringGreen1', 'SpringGreen2', 'SpringGreen3', 'SpringGreen4', 'MediumSeaGreen', 'SeaGreen', 'SeaGreen3', 'SeaGreen1', 'SeaGreen4', 'SeaGreen2', 'MediumForestGreen', 'honeydew', 'honeydew1', 'honeydew2', 'DarkSeaGreen1', 'DarkSeaGreen2', 'PaleGreen1', 'PaleGreen', 'honeydew3', 'LightGreen', 'PaleGreen2', 'DarkSeaGreen3', 'DarkSeaGreen', 'PaleGreen3', 'honeydew4', 'green1', 'lime', 'LimeGreen', 'DarkSeaGreen4', 'green2', 'PaleGreen4', 'green3', 'ForestGreen', 'green4', 'green', 'DarkGreen', 'LawnGreen', 'chartreuse', 'chartreuse1', 'chartreuse2', 'chartreuse3', 'chartreuse4', 'GreenYellow', 'DarkOliveGreen3', 'DarkOliveGreen1', 'DarkOliveGreen2', 'DarkOliveGreen4', 'DarkOliveGreen', 'OliveDrab', 'OliveDrab1', 'OliveDrab2', 'OliveDrab3', 'YellowGreen', 'OliveDrab4', 'ivory', 'ivory1', 'LightYellow', 'LightYellow1', 'beige', 'ivory2', 'LightGoldenrodYellow', 'LightYellow2', 'ivory3', 'LightYellow3', 'ivory4', 'LightYellow4', 'yellow', 'yellow1', 'yellow2', 'yellow3', 'yellow4', 'olive', 'DarkKhaki', 'khaki2', 'LemonChiffon4', 'khaki1', 'khaki3', 'khaki4', 'PaleGoldenrod', 'LemonChiffon', 'LemonChiffon1', 'khaki', 'LemonChiffon3', 'LemonChiffon2', 'MediumGoldenRod', 'cornsilk4', 'gold', 'gold1', 'gold2', 'gold3', 'gold4', 'LightGoldenrod', 'LightGoldenrod4', 'LightGoldenrod1', 'LightGoldenrod3', 'LightGoldenrod2', 'cornsilk3', 'cornsilk2', 'cornsilk', 'cornsilk1', 'goldenrod', 'goldenrod1', 'goldenrod2', 'goldenrod3', 'goldenrod4', 'DarkGoldenrod', 'DarkGoldenrod1', 'DarkGoldenrod2', 'DarkGoldenrod3', 'DarkGoldenrod4', 'FloralWhite', 'wheat2', 'OldLace', 'wheat', 'wheat1', 'wheat3', 'orange', 'orange1', 'orange2', 'orange3', 'orange4', 'wheat4', 'moccasin', 'PapayaWhip', 'NavajoWhite3', 'BlanchedAlmond', 'NavajoWhite', 'NavajoWhite1', 'NavajoWhite2', 'NavajoWhite4', 'AntiqueWhite4', 'AntiqueWhite', 'tan', 'bisque4', 'burlywood', 'AntiqueWhite2', 'burlywood1', 'burlywood3', 'burlywood2', 'AntiqueWhite1', 'burlywood4', 'AntiqueWhite3', 'DarkOrange', 'bisque2', 'bisque', 'bisque1', 'bisque3', 'DarkOrange1', 'linen', 'DarkOrange2', 'DarkOrange3', 'DarkOrange4', 'peru', 'tan1', 'tan2', 'tan3', 'tan4', 'PeachPuff', 'PeachPuff1', 'PeachPuff4', 'PeachPuff2', 'PeachPuff3', 'SandyBrown', 'seashell4', 'seashell2', 'seashell3', 'chocolate', 'chocolate1', 'chocolate2', 'chocolate3', 'chocolate4', 'SaddleBrown', 'seashell', 'seashell1', 'sienna4', 'sienna', 'sienna1', 'sienna2', 'sienna3', 'LightSalmon3', 'LightSalmon', 'LightSalmon1', 'LightSalmon4', 'LightSalmon2', 'coral', 'OrangeRed', 'OrangeRed1', 'OrangeRed2', 'OrangeRed3', 'OrangeRed4', 'DarkSalmon', 'salmon1', 'salmon2', 'salmon3', 'salmon4', 'coral1', 'coral2', 'coral3', 'coral4', 'tomato4', 'tomato', 'tomato1', 'tomato2', 'tomato3', 'MistyRose4', 'MistyRose2', 'MistyRose', 'MistyRose1', 'salmon', 'MistyRose3', 'white', 'gray100', 'grey100', 'grey100', 'gray99', 'grey99', 'gray98', 'grey98', 'gray97', 'grey97', 'gray96', 'grey96', 'WhiteSmoke', 'gray95', 'grey95', 'gray94', 'grey94', 'gray93', 'grey93', 'gray92', 'grey92', 'gray91', 'grey91', 'gray90', 'grey90', 'gray89', 'grey89', 'gray88', 'grey88', 'gray87', 'grey87', 'gainsboro', 'gray86', 'grey86', 'gray85', 'grey85', 'gray84', 'grey84', 'gray83', 'grey83', 'LightGray', 'LightGrey', 'gray82', 'grey82', 'gray81', 'grey81', 'gray80', 'grey80', 'gray79', 'grey79', 'gray78', 'grey78', 'gray77', 'grey77', 'gray76', 'grey76', 'silver', 'gray75', 'grey75', 'gray74', 'grey74', 'gray73', 'grey73', 'gray72', 'grey72', 'gray71', 'grey71', 'gray70', 'grey70', 'gray69', 'grey69', 'gray68', 'grey68', 'gray67', 'grey67', 'DarkGray', 'DarkGrey', 'gray66', 'grey66', 'gray65', 'grey65', 'gray64', 'grey64', 'gray63', 'grey63', 'gray62', 'grey62', 'gray61', 'grey61', 'gray60', 'grey60', 'gray59', 'grey59', 'gray58', 'grey58', 'gray57', 'grey57', 'gray56', 'grey56', 'gray55', 'grey55', 'gray54', 'grey54', 'gray53', 'grey53', 'gray52', 'grey52', 'gray51', 'grey51', 'fractal', 'gray50', 'grey50', 'gray', 'gray49', 'grey49', 'gray48', 'grey48', 'gray47', 'grey47', 'gray46', 'grey46', 'gray45', 'grey45', 'gray44', 'grey44', 'gray43', 'grey43', 'gray42', 'grey42', 'DimGray', 'DimGrey', 'gray41', 'grey41', 'gray40', 'grey40', 'gray39', 'grey39', 'gray38', 'grey38', 'gray37', 'grey37', 'gray36', 'grey36', 'gray35', 'grey35', 'gray34', 'grey34', 'gray33', 'grey33', 'gray32', 'grey32', 'gray31', 'grey31', 'gray30', 'grey30', 'gray29', 'grey29', 'gray28', 'grey28', 'gray27', 'grey27', 'gray26', 'grey26', 'gray25', 'grey25', 'gray24', 'grey24', 'gray23', 'grey23', 'gray22', 'grey22', 'gray21', 'grey21', 'gray20', 'grey20', 'gray19', 'grey19', 'gray18', 'grey18', 'gray17', 'grey17', 'gray16', 'grey16', 'gray15', 'grey15', 'gray14', 'grey14', 'gray13', 'grey13', 'gray12', 'grey12', 'gray11', 'grey11', 'gray10', 'grey10', 'gray9', 'grey9', 'gray8', 'grey8', 'gray7', 'grey7', 'gray6', 'grey6', 'gray5', 'grey5', 'gray4', 'grey4', 'gray3', 'grey3', 'gray2', 'grey2', 'gray1', 'grey1', 'black', 'gray0', 'grey0', 'opaque', 'none', 'transparent'] - - -#### create some dictionaries###### -#rgb to hex -#rgb to name -#the rest will not work -#maybe hex to rgb - -rgbtohex = {} -for x in xrange(0,len(hexlist)-1): - rgbtohex[rgblist[x]] = hexlist[x] - -rgbtoname ={} -for x in xrange(0, len(namelist)-1): - rgbtoname[rgblist[x]] = namelist[x] - -hextorgb = {} -for x in xrange(0, len(hexlist)-1): - hextorgb[hexlist[x]] = rgblist[x] - -f = open("colordictionaries2.js","w") -f.write('rgbtohex = '+str(rgbtohex)+'\n') -f.write('rgbtoname = '+str(rgbtoname)+'\n') -f.write('hextorgb = '+str(hextorgb)+'\n') - -f.close() diff --git a/share/frontend/imgrid/colors/colors/js/wrkshp/names b/share/frontend/imgrid/colors/colors/js/wrkshp/names deleted file mode 100755 index ebcec30..0000000 --- a/share/frontend/imgrid/colors/colors/js/wrkshp/names +++ /dev/null @@ -1 +0,0 @@ -namelist = ['snow', 'snow1', 'snow2', 'RosyBrown1', 'RosyBrown2', 'snow3', 'LightCoral', 'IndianRed1', 'RosyBrown3', 'IndianRed2', 'RosyBrown', 'brown1', 'firebrick1', 'brown2', 'IndianRed', 'IndianRed3', 'firebrick2', 'snow4', 'brown3', 'red', 'red1', 'RosyBrown4', 'firebrick3', 'red2', 'firebrick', 'brown', 'red3', 'IndianRed4', 'brown4', 'firebrick4', 'DarkRed', 'red4', 'maroon', 'LightPink1', 'LightPink3', 'LightPink4', 'LightPink2', 'LightPink', 'pink', 'crimson', 'pink1', 'pink2', 'pink3', 'pink4', 'PaleVioletRed4', 'PaleVioletRed', 'PaleVioletRed2', 'PaleVioletRed1', 'PaleVioletRed3', 'LavenderBlush', 'LavenderBlush1', 'LavenderBlush3', 'LavenderBlush2', 'LavenderBlush4', 'maroon', 'HotPink3', 'VioletRed3', 'VioletRed1', 'VioletRed2', 'VioletRed4', 'HotPink2', 'HotPink1', 'HotPink4', 'HotPink', 'DeepPink', 'DeepPink1', 'DeepPink2', 'DeepPink3', 'DeepPink4', 'maroon1', 'maroon2', 'maroon3', 'maroon4', 'MediumVioletRed', 'VioletRed', 'orchid2', 'orchid', 'orchid1', 'orchid3', 'orchid4', 'thistle1', 'thistle2', 'plum1', 'plum2', 'thistle', 'thistle3', 'plum', 'violet', 'plum3', 'thistle4', 'fuchsia', 'magenta', 'magenta1', 'plum4', 'magenta2', 'magenta3', 'DarkMagenta', 'magenta4', 'purple', 'MediumOrchid', 'MediumOrchid1', 'MediumOrchid2', 'MediumOrchid3', 'MediumOrchid4', 'DarkViolet', 'DarkOrchid', 'DarkOrchid1', 'DarkOrchid3', 'DarkOrchid2', 'DarkOrchid4', 'purple', 'indigo', 'BlueViolet', 'purple2', 'purple3', 'purple4', 'purple1', 'MediumPurple', 'MediumPurple1', 'MediumPurple2', 'MediumPurple3', 'MediumPurple4', 'DarkSlateBlue', 'LightSlateBlue', 'MediumSlateBlue', 'SlateBlue', 'SlateBlue1', 'SlateBlue2', 'SlateBlue3', 'SlateBlue4', 'GhostWhite', 'lavender', 'blue', 'blue1', 'blue2', 'blue3', 'MediumBlue', 'blue4', 'DarkBlue', 'MidnightBlue', 'navy', 'NavyBlue', 'RoyalBlue', 'RoyalBlue1', 'RoyalBlue2', 'RoyalBlue3', 'RoyalBlue4', 'CornflowerBlue', 'LightSteelBlue', 'LightSteelBlue1', 'LightSteelBlue2', 'LightSteelBlue3', 'LightSteelBlue4', 'SlateGray4', 'SlateGray1', 'SlateGray2', 'SlateGray3', 'LightSlateGray', 'LightSlateGrey', 'SlateGray', 'SlateGrey', 'DodgerBlue', 'DodgerBlue1', 'DodgerBlue2', 'DodgerBlue4', 'DodgerBlue3', 'AliceBlue', 'SteelBlue4', 'SteelBlue', 'SteelBlue1', 'SteelBlue2', 'SteelBlue3', 'SkyBlue4', 'SkyBlue1', 'SkyBlue2', 'SkyBlue3', 'LightSkyBlue', 'LightSkyBlue4', 'LightSkyBlue1', 'LightSkyBlue2', 'LightSkyBlue3', 'SkyBlue', 'LightBlue3', 'DeepSkyBlue', 'DeepSkyBlue1', 'DeepSkyBlue2', 'DeepSkyBlue4', 'DeepSkyBlue3', 'LightBlue1', 'LightBlue2', 'LightBlue', 'LightBlue4', 'PowderBlue', 'CadetBlue1', 'CadetBlue2', 'CadetBlue3', 'CadetBlue4', 'turquoise1', 'turquoise2', 'turquoise3', 'turquoise4', 'cadet blue', 'CadetBlue', 'DarkTurquoise', 'azure', 'azure1', 'LightCyan', 'LightCyan1', 'azure2', 'LightCyan2', 'PaleTurquoise1', 'PaleTurquoise', 'PaleTurquoise2', 'DarkSlateGray1', 'azure3', 'LightCyan3', 'DarkSlateGray2', 'PaleTurquoise3', 'DarkSlateGray3', 'azure4', 'LightCyan4', 'aqua', 'cyan', 'cyan1', 'PaleTurquoise4', 'cyan2', 'DarkSlateGray4', 'cyan3', 'cyan4', 'DarkCyan', 'teal', 'DarkSlateGray', 'DarkSlateGrey', 'MediumTurquoise', 'LightSeaGreen', 'turquoise', 'aquamarine4', 'aquamarine', 'aquamarine1', 'aquamarine2', 'aquamarine3', 'MediumAquamarine', 'MediumSpringGreen', 'MintCream', 'SpringGreen', 'SpringGreen1', 'SpringGreen2', 'SpringGreen3', 'SpringGreen4', 'MediumSeaGreen', 'SeaGreen', 'SeaGreen3', 'SeaGreen1', 'SeaGreen4', 'SeaGreen2', 'MediumForestGreen', 'honeydew', 'honeydew1', 'honeydew2', 'DarkSeaGreen1', 'DarkSeaGreen2', 'PaleGreen1', 'PaleGreen', 'honeydew3', 'LightGreen', 'PaleGreen2', 'DarkSeaGreen3', 'DarkSeaGreen', 'PaleGreen3', 'honeydew4', 'green1', 'lime', 'LimeGreen', 'DarkSeaGreen4', 'green2', 'PaleGreen4', 'green3', 'ForestGreen', 'green4', 'green', 'DarkGreen', 'LawnGreen', 'chartreuse', 'chartreuse1', 'chartreuse2', 'chartreuse3', 'chartreuse4', 'GreenYellow', 'DarkOliveGreen3', 'DarkOliveGreen1', 'DarkOliveGreen2', 'DarkOliveGreen4', 'DarkOliveGreen', 'OliveDrab', 'OliveDrab1', 'OliveDrab2', 'OliveDrab3', 'YellowGreen', 'OliveDrab4', 'ivory', 'ivory1', 'LightYellow', 'LightYellow1', 'beige', 'ivory2', 'LightGoldenrodYellow', 'LightYellow2', 'ivory3', 'LightYellow3', 'ivory4', 'LightYellow4', 'yellow', 'yellow1', 'yellow2', 'yellow3', 'yellow4', 'olive', 'DarkKhaki', 'khaki2', 'LemonChiffon4', 'khaki1', 'khaki3', 'khaki4', 'PaleGoldenrod', 'LemonChiffon', 'LemonChiffon1', 'khaki', 'LemonChiffon3', 'LemonChiffon2', 'MediumGoldenRod', 'cornsilk4', 'gold', 'gold1', 'gold2', 'gold3', 'gold4', 'LightGoldenrod', 'LightGoldenrod4', 'LightGoldenrod1', 'LightGoldenrod3', 'LightGoldenrod2', 'cornsilk3', 'cornsilk2', 'cornsilk', 'cornsilk1', 'goldenrod', 'goldenrod1', 'goldenrod2', 'goldenrod3', 'goldenrod4', 'DarkGoldenrod', 'DarkGoldenrod1', 'DarkGoldenrod2', 'DarkGoldenrod3', 'DarkGoldenrod4', 'FloralWhite', 'wheat2', 'OldLace', 'wheat', 'wheat1', 'wheat3', 'orange', 'orange1', 'orange2', 'orange3', 'orange4', 'wheat4', 'moccasin', 'PapayaWhip', 'NavajoWhite3', 'BlanchedAlmond', 'NavajoWhite', 'NavajoWhite1', 'NavajoWhite2', 'NavajoWhite4', 'AntiqueWhite4', 'AntiqueWhite', 'tan', 'bisque4', 'burlywood', 'AntiqueWhite2', 'burlywood1', 'burlywood3', 'burlywood2', 'AntiqueWhite1', 'burlywood4', 'AntiqueWhite3', 'DarkOrange', 'bisque2', 'bisque', 'bisque1', 'bisque3', 'DarkOrange1', 'linen', 'DarkOrange2', 'DarkOrange3', 'DarkOrange4', 'peru', 'tan1', 'tan2', 'tan3', 'tan4', 'PeachPuff', 'PeachPuff1', 'PeachPuff4', 'PeachPuff2', 'PeachPuff3', 'SandyBrown', 'seashell4', 'seashell2', 'seashell3', 'chocolate', 'chocolate1', 'chocolate2', 'chocolate3', 'chocolate4', 'SaddleBrown', 'seashell', 'seashell1', 'sienna4', 'sienna', 'sienna1', 'sienna2', 'sienna3', 'LightSalmon3', 'LightSalmon', 'LightSalmon1', 'LightSalmon4', 'LightSalmon2', 'coral', 'OrangeRed', 'OrangeRed1', 'OrangeRed2', 'OrangeRed3', 'OrangeRed4', 'DarkSalmon', 'salmon1', 'salmon2', 'salmon3', 'salmon4', 'coral1', 'coral2', 'coral3', 'coral4', 'tomato4', 'tomato', 'tomato1', 'tomato2', 'tomato3', 'MistyRose4', 'MistyRose2', 'MistyRose', 'MistyRose1', 'salmon', 'MistyRose3', 'white', 'gray100', 'grey100', 'grey100', 'gray99', 'grey99', 'gray98', 'grey98', 'gray97', 'grey97', 'gray96', 'grey96', 'WhiteSmoke', 'gray95', 'grey95', 'gray94', 'grey94', 'gray93', 'grey93', 'gray92', 'grey92', 'gray91', 'grey91', 'gray90', 'grey90', 'gray89', 'grey89', 'gray88', 'grey88', 'gray87', 'grey87', 'gainsboro', 'gray86', 'grey86', 'gray85', 'grey85', 'gray84', 'grey84', 'gray83', 'grey83', 'LightGray', 'LightGrey', 'gray82', 'grey82', 'gray81', 'grey81', 'gray80', 'grey80', 'gray79', 'grey79', 'gray78', 'grey78', 'gray77', 'grey77', 'gray76', 'grey76', 'silver', 'gray75', 'grey75', 'gray74', 'grey74', 'gray73', 'grey73', 'gray72', 'grey72', 'gray71', 'grey71', 'gray70', 'grey70', 'gray69', 'grey69', 'gray68', 'grey68', 'gray67', 'grey67', 'DarkGray', 'DarkGrey', 'gray66', 'grey66', 'gray65', 'grey65', 'gray64', 'grey64', 'gray63', 'grey63', 'gray62', 'grey62', 'gray61', 'grey61', 'gray60', 'grey60', 'gray59', 'grey59', 'gray58', 'grey58', 'gray57', 'grey57', 'gray56', 'grey56', 'gray55', 'grey55', 'gray54', 'grey54', 'gray53', 'grey53', 'gray52', 'grey52', 'gray51', 'grey51', 'fractal', 'gray50', 'grey50', 'gray', 'gray49', 'grey49', 'gray48', 'grey48', 'gray47', 'grey47', 'gray46', 'grey46', 'gray45', 'grey45', 'gray44', 'grey44', 'gray43', 'grey43', 'gray42', 'grey42', 'DimGray', 'DimGrey', 'gray41', 'grey41', 'gray40', 'grey40', 'gray39', 'grey39', 'gray38', 'grey38', 'gray37', 'grey37', 'gray36', 'grey36', 'gray35', 'grey35', 'gray34', 'grey34', 'gray33', 'grey33', 'gray32', 'grey32', 'gray31', 'grey31', 'gray30', 'grey30', 'gray29', 'grey29', 'gray28', 'grey28', 'gray27', 'grey27', 'gray26', 'grey26', 'gray25', 'grey25', 'gray24', 'grey24', 'gray23', 'grey23', 'gray22', 'grey22', 'gray21', 'grey21', 'gray20', 'grey20', 'gray19', 'grey19', 'gray18', 'grey18', 'gray17', 'grey17', 'gray16', 'grey16', 'gray15', 'grey15', 'gray14', 'grey14', 'gray13', 'grey13', 'gray12', 'grey12', 'gray11', 'grey11', 'gray10', 'grey10', 'gray9', 'grey9', 'gray8', 'grey8', 'gray7', 'grey7', 'gray6', 'grey6', 'gray5', 'grey5', 'gray4', 'grey4', 'gray3', 'grey3', 'gray2', 'grey2', 'gray1', 'grey1', 'black', 'gray0', 'grey0', 'opaque', 'none', 'transparent'] \ No newline at end of file diff --git a/share/frontend/imgrid/colors/colors/js/wrkshp/rgbs b/share/frontend/imgrid/colors/colors/js/wrkshp/rgbs deleted file mode 100755 index 59981a8..0000000 --- a/share/frontend/imgrid/colors/colors/js/wrkshp/rgbs +++ /dev/null @@ -1 +0,0 @@ -rgblist = ['rgb(255, 250, 250)', 'rgb(255, 250, 250)', 'rgb(238, 233, 233)', 'rgb(255, 193, 193)', 'rgb(238, 180, 180)', 'rgb(205, 201, 201)', 'rgb(240, 128, 128)', 'rgb(255, 106, 106)', 'rgb(205, 155, 155)', 'rgb(238, 99, 99)', 'rgb(188, 143, 143)', 'rgb(255, 64, 64)', 'rgb(255, 48, 48)', 'rgb(238, 59, 59)', 'rgb(205, 92, 92)', 'rgb(205, 85, 85)', 'rgb(238, 44, 44)', 'rgb(139, 137, 137)', 'rgb(205, 51, 51)', 'rgb(255, 0, 0)', 'rgb(255, 0, 0)', 'rgb(139, 105, 105)', 'rgb(205, 38, 38)', 'rgb(238, 0, 0)', 'rgb(178, 34, 34)', 'rgb(165, 42, 42)', 'rgb(205, 0, 0)', 'rgb(139, 58, 58)', 'rgb(139, 35, 35)', 'rgb(139, 26, 26)', 'rgb(139, 0, 0)', 'rgb(139, 0, 0)', 'rgb(128, 0, 0)', 'rgb(255, 174, 185)', 'rgb(205, 140, 149)', 'rgb(139, 95, 101)', 'rgb(238, 162, 173)', 'rgb(255, 182, 193)', 'rgb(255, 192, 203)', 'rgb(220, 20, 60)', 'rgb(255, 181, 197)', 'rgb(238, 169, 184)', 'rgb(205, 145, 158)', 'rgb(139, 99, 108)', 'rgb(139, 71, 93)', 'rgb(219, 112, 147)', 'rgb(238, 121, 159)', 'rgb(255, 130, 171)', 'rgb(205, 104, 137)', 'rgb(255, 240, 245)', 'rgb(255, 240, 245)', 'rgb(205, 193, 197)', 'rgb(238, 224, 229)', 'rgb(139, 131, 134)', 'rgb(176, 48, 96)', 'rgb(205, 96, 144)', 'rgb(205, 50, 120)', 'rgb(255, 62, 150)', 'rgb(238, 58, 140)', 'rgb(139, 34, 82)', 'rgb(238, 106, 167)', 'rgb(255, 110, 180)', 'rgb(139, 58, 98)', 'rgb(255, 105, 180)', 'rgb(255, 20, 147)', 'rgb(255, 20, 147)', 'rgb(238, 18, 137)', 'rgb(205, 16, 118)', 'rgb(139, 10, 80)', 'rgb(255, 52, 179)', 'rgb(238, 48, 167)', 'rgb(205, 41, 144)', 'rgb(139, 28, 98)', 'rgb(199, 21, 133)', 'rgb(208, 32, 144)', 'rgb(238, 122, 233)', 'rgb(218, 112, 214)', 'rgb(255, 131, 250)', 'rgb(205, 105, 201)', 'rgb(139, 71, 137)', 'rgb(255, 225, 255)', 'rgb(238, 210, 238)', 'rgb(255, 187, 255)', 'rgb(238, 174, 238)', 'rgb(216, 191, 216)', 'rgb(205, 181, 205)', 'rgb(221, 160, 221)', 'rgb(238, 130, 238)', 'rgb(205, 150, 205)', 'rgb(139, 123, 139)', 'rgb(255, 0, 255)', 'rgb(255, 0, 255)', 'rgb(255, 0, 255)', 'rgb(139, 102, 139)', 'rgb(238, 0, 238)', 'rgb(205, 0, 205)', 'rgb(139, 0, 139)', 'rgb(139, 0, 139)', 'rgb(128, 0, 128)', 'rgb(186, 85, 211)', 'rgb(224, 102, 255)', 'rgb(209, 95, 238)', 'rgb(180, 82, 205)', 'rgb(122, 55, 139)', 'rgb(148, 0, 211)', 'rgb(153, 50, 204)', 'rgb(191, 62, 255)', 'rgb(154, 50, 205)', 'rgb(178, 58, 238)', 'rgb(104, 34, 139)', 'rgb(160, 32, 240)', 'rgb( 75, 0, 130)', 'rgb(138, 43, 226)', 'rgb(145, 44, 238)', 'rgb(125, 38, 205)', 'rgb( 85, 26, 139)', 'rgb(155, 48, 255)', 'rgb(147, 112, 219)', 'rgb(171, 130, 255)', 'rgb(159, 121, 238)', 'rgb(137, 104, 205)', 'rgb( 93, 71, 139)', 'rgb( 72, 61, 139)', 'rgb(132, 112, 255)', 'rgb(123, 104, 238)', 'rgb(106, 90, 205)', 'rgb(131, 111, 255)', 'rgb(122, 103, 238)', 'rgb(105, 89, 205)', 'rgb( 71, 60, 139)', 'rgb(248, 248, 255)', 'rgb(230, 230, 250)', 'rgb( 0, 0, 255)', 'rgb( 0, 0, 255)', 'rgb( 0, 0, 238)', 'rgb( 0, 0, 205)', 'rgb( 0, 0, 205)', 'rgb( 0, 0, 139)', 'rgb( 0, 0, 139)', 'rgb( 25, 25, 112)', 'rgb( 0, 0, 128)', 'rgb( 0, 0, 128)', 'rgb( 65, 105, 225)', 'rgb( 72, 118, 255)', 'rgb( 67, 110, 238)', 'rgb( 58, 95, 205)', 'rgb( 39, 64, 139)', 'rgb(100, 149, 237)', 'rgb(176, 196, 222)', 'rgb(202, 225, 255)', 'rgb(188, 210, 238)', 'rgb(162, 181, 205)', 'rgb(110, 123, 139)', 'rgb(108, 123, 139)', 'rgb(198, 226, 255)', 'rgb(185, 211, 238)', 'rgb(159, 182, 205)', 'rgb(119, 136, 153)', 'rgb(119, 136, 153)', 'rgb(112, 128, 144)', 'rgb(112, 128, 144)', 'rgb( 30, 144, 255)', 'rgb( 30, 144, 255)', 'rgb( 28, 134, 238)', 'rgb( 16, 78, 139)', 'rgb( 24, 116, 205)', 'rgb(240, 248, 255)', 'rgb( 54, 100, 139)', 'rgb( 70, 130, 180)', 'rgb( 99, 184, 255)', 'rgb( 92, 172, 238)', 'rgb( 79, 148, 205)', 'rgb( 74, 112, 139)', 'rgb(135, 206, 255)', 'rgb(126, 192, 238)', 'rgb(108, 166, 205)', 'rgb(135, 206, 250)', 'rgb( 96, 123, 139)', 'rgb(176, 226, 255)', 'rgb(164, 211, 238)', 'rgb(141, 182, 205)', 'rgb(135, 206, 235)', 'rgb(154, 192, 205)', 'rgb( 0, 191, 255)', 'rgb( 0, 191, 255)', 'rgb( 0, 178, 238)', 'rgb( 0, 104, 139)', 'rgb( 0, 154, 205)', 'rgb(191, 239, 255)', 'rgb(178, 223, 238)', 'rgb(173, 216, 230)', 'rgb(104, 131, 139)', 'rgb(176, 224, 230)', 'rgb(152, 245, 255)', 'rgb(142, 229, 238)', 'rgb(122, 197, 205)', 'rgb( 83, 134, 139)', 'rgb( 0, 245, 255)', 'rgb( 0, 229, 238)', 'rgb( 0, 197, 205)', 'rgb( 0, 134, 139)', 'rgb( 95, 158, 160)', 'rgb( 95, 158, 160)', 'rgb( 0, 206, 209)', 'rgb(240, 255, 255)', 'rgb(240, 255, 255)', 'rgb(224, 255, 255)', 'rgb(224, 255, 255)', 'rgb(224, 238, 238)', 'rgb(209, 238, 238)', 'rgb(187, 255, 255)', 'rgb(175, 238, 238)', 'rgb(174, 238, 238)', 'rgb(151, 255, 255)', 'rgb(193, 205, 205)', 'rgb(180, 205, 205)', 'rgb(141, 238, 238)', 'rgb(150, 205, 205)', 'rgb(121, 205, 205)', 'rgb(131, 139, 139)', 'rgb(122, 139, 139)', 'rgb( 0, 255, 255)', 'rgb( 0, 255, 255)', 'rgb( 0, 255, 255)', 'rgb(102, 139, 139)', 'rgb( 0, 238, 238)', 'rgb( 82, 139, 139)', 'rgb( 0, 205, 205)', 'rgb( 0, 139, 139)', 'rgb( 0, 139, 139)', 'rgb( 0, 128, 128)', 'rgb( 47, 79, 79)', 'rgb( 47, 79, 79)', 'rgb( 72, 209, 204)', 'rgb( 32, 178, 170)', 'rgb( 64, 224, 208)', 'rgb( 69, 139, 116)', 'rgb(127, 255, 212)', 'rgb(127, 255, 212)', 'rgb(118, 238, 198)', 'rgb(102, 205, 170)', 'rgb(102, 205, 170)', 'rgb( 0, 250, 154)', 'rgb(245, 255, 250)', 'rgb( 0, 255, 127)', 'rgb( 0, 255, 127)', 'rgb( 0, 238, 118)', 'rgb( 0, 205, 102)', 'rgb( 0, 139, 69)', 'rgb( 60, 179, 113)', 'rgb( 46, 139, 87)', 'rgb( 67, 205, 128)', 'rgb( 84, 255, 159)', 'rgb( 46, 139, 87)', 'rgb( 78, 238, 148)', 'rgb( 50, 129, 75)', 'rgb(240, 255, 240)', 'rgb(240, 255, 240)', 'rgb(224, 238, 224)', 'rgb(193, 255, 193)', 'rgb(180, 238, 180)', 'rgb(154, 255, 154)', 'rgb(152, 251, 152)', 'rgb(193, 205, 193)', 'rgb(144, 238, 144)', 'rgb(144, 238, 144)', 'rgb(155, 205, 155)', 'rgb(143, 188, 143)', 'rgb(124, 205, 124)', 'rgb(131, 139, 131)', 'rgb( 0, 255, 0)', 'rgb( 0, 255, 0)', 'rgb( 50, 205, 50)', 'rgb(105, 139, 105)', 'rgb( 0, 238, 0)', 'rgb( 84, 139, 84)', 'rgb( 0, 205, 0)', 'rgb( 34, 139, 34)', 'rgb( 0, 139, 0)', 'rgb( 0, 128, 0)', 'rgb( 0, 100, 0)', 'rgb(124, 252, 0)', 'rgb(127, 255, 0)', 'rgb(127, 255, 0)', 'rgb(118, 238, 0)', 'rgb(102, 205, 0)', 'rgb( 69, 139, 0)', 'rgb(173, 255, 47)', 'rgb(162, 205, 90)', 'rgb(202, 255, 112)', 'rgb(188, 238, 104)', 'rgb(110, 139, 61)', 'rgb( 85, 107, 47)', 'rgb(107, 142, 35)', 'rgb(192, 255, 62)', 'rgb(179, 238, 58)', 'rgb(154, 205, 50)', 'rgb(154, 205, 50)', 'rgb(105, 139, 34)', 'rgb(255, 255, 240)', 'rgb(255, 255, 240)', 'rgb(255, 255, 224)', 'rgb(255, 255, 224)', 'rgb(245, 245, 220)', 'rgb(238, 238, 224)', 'rgb(250, 250, 210)', 'rgb(238, 238, 209)', 'rgb(205, 205, 193)', 'rgb(205, 205, 180)', 'rgb(139, 139, 131)', 'rgb(139, 139, 122)', 'rgb(255, 255, 0)', 'rgb(255, 255, 0)', 'rgb(238, 238, 0)', 'rgb(205, 205, 0)', 'rgb(139, 139, 0)', 'rgb(128, 128, 0)', 'rgb(189, 183, 107)', 'rgb(238, 230, 133)', 'rgb(139, 137, 112)', 'rgb(255, 246, 143)', 'rgb(205, 198, 115)', 'rgb(139, 134, 78)', 'rgb(238, 232, 170)', 'rgb(255, 250, 205)', 'rgb(255, 250, 205)', 'rgb(240, 230, 140)', 'rgb(205, 201, 165)', 'rgb(238, 233, 191)', 'rgb(209, 193, 102)', 'rgb(139, 136, 120)', 'rgb(255, 215, 0)', 'rgb(255, 215, 0)', 'rgb(238, 201, 0)', 'rgb(205, 173, 0)', 'rgb(139, 117, 0)', 'rgb(238, 221, 130)', 'rgb(139, 129, 76)', 'rgb(255, 236, 139)', 'rgb(205, 190, 112)', 'rgb(238, 220, 130)', 'rgb(205, 200, 177)', 'rgb(238, 232, 205)', 'rgb(255, 248, 220)', 'rgb(255, 248, 220)', 'rgb(218, 165, 32)', 'rgb(255, 193, 37)', 'rgb(238, 180, 34)', 'rgb(205, 155, 29)', 'rgb(139, 105, 20)', 'rgb(184, 134, 11)', 'rgb(255, 185, 15)', 'rgb(238, 173, 14)', 'rgb(205, 149, 12)', 'rgb(139, 101, 8)', 'rgb(255, 250, 240)', 'rgb(238, 216, 174)', 'rgb(253, 245, 230)', 'rgb(245, 222, 179)', 'rgb(255, 231, 186)', 'rgb(205, 186, 150)', 'rgb(255, 165, 0)', 'rgb(255, 165, 0)', 'rgb(238, 154, 0)', 'rgb(205, 133, 0)', 'rgb(139, 90, 0)', 'rgb(139, 126, 102)', 'rgb(255, 228, 181)', 'rgb(255, 239, 213)', 'rgb(205, 179, 139)', 'rgb(255, 235, 205)', 'rgb(255, 222, 173)', 'rgb(255, 222, 173)', 'rgb(238, 207, 161)', 'rgb(139, 121, 94)', 'rgb(139, 131, 120)', 'rgb(250, 235, 215)', 'rgb(210, 180, 140)', 'rgb(139, 125, 107)', 'rgb(222, 184, 135)', 'rgb(238, 223, 204)', 'rgb(255, 211, 155)', 'rgb(205, 170, 125)', 'rgb(238, 197, 145)', 'rgb(255, 239, 219)', 'rgb(139, 115, 85)', 'rgb(205, 192, 176)', 'rgb(255, 140, 0)', 'rgb(238, 213, 183)', 'rgb(255, 228, 196)', 'rgb(255, 228, 196)', 'rgb(205, 183, 158)', 'rgb(255, 127, 0)', 'rgb(250, 240, 230)', 'rgb(238, 118, 0)', 'rgb(205, 102, 0)', 'rgb(139, 69, 0)', 'rgb(205, 133, 63)', 'rgb(255, 165, 79)', 'rgb(238, 154, 73)', 'rgb(205, 133, 63)', 'rgb(139, 90, 43)', 'rgb(255, 218, 185)', 'rgb(255, 218, 185)', 'rgb(139, 119, 101)', 'rgb(238, 203, 173)', 'rgb(205, 175, 149)', 'rgb(244, 164, 96)', 'rgb(139, 134, 130)', 'rgb(238, 229, 222)', 'rgb(205, 197, 191)', 'rgb(210, 105, 30)', 'rgb(255, 127, 36)', 'rgb(238, 118, 33)', 'rgb(205, 102, 29)', 'rgb(139, 69, 19)', 'rgb(139, 69, 19)', 'rgb(255, 245, 238)', 'rgb(255, 245, 238)', 'rgb(139, 71, 38)', 'rgb(160, 82, 45)', 'rgb(255, 130, 71)', 'rgb(238, 121, 66)', 'rgb(205, 104, 57)', 'rgb(205, 129, 98)', 'rgb(255, 160, 122)', 'rgb(255, 160, 122)', 'rgb(139, 87, 66)', 'rgb(238, 149, 114)', 'rgb(255, 127, 80)', 'rgb(255, 69, 0)', 'rgb(255, 69, 0)', 'rgb(238, 64, 0)', 'rgb(205, 55, 0)', 'rgb(139, 37, 0)', 'rgb(233, 150, 122)', 'rgb(255, 140, 105)', 'rgb(238, 130, 98)', 'rgb(205, 112, 84)', 'rgb(139, 76, 57)', 'rgb(255, 114, 86)', 'rgb(238, 106, 80)', 'rgb(205, 91, 69)', 'rgb(139, 62, 47)', 'rgb(139, 54, 38)', 'rgb(255, 99, 71)', 'rgb(255, 99, 71)', 'rgb(238, 92, 66)', 'rgb(205, 79, 57)', 'rgb(139, 125, 123)', 'rgb(238, 213, 210)', 'rgb(255, 228, 225)', 'rgb(255, 228, 225)', 'rgb(250, 128, 114)', 'rgb(205, 183, 181)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(252, 252, 252)', 'rgb(252, 252, 252)', 'rgb(250, 250, 250)', 'rgb(250, 250, 250)', 'rgb(247, 247, 247)', 'rgb(247, 247, 247)', 'rgb(245, 245, 245)', 'rgb(245, 245, 245)', 'rgb(245, 245, 245)', 'rgb(242, 242, 242)', 'rgb(242, 242, 242)', 'rgb(240, 240, 240)', 'rgb(240, 240, 240)', 'rgb(237, 237, 237)', 'rgb(237, 237, 237)', 'rgb(235, 235, 235)', 'rgb(235, 235, 235)', 'rgb(232, 232, 232)', 'rgb(232, 232, 232)', 'rgb(229, 229, 229)', 'rgb(229, 229, 229)', 'rgb(227, 227, 227)', 'rgb(227, 227, 227)', 'rgb(224, 224, 224)', 'rgb(224, 224, 224)', 'rgb(222, 222, 222)', 'rgb(222, 222, 222)', 'rgb(220, 220, 220)', 'rgb(219, 219, 219)', 'rgb(219, 219, 219)', 'rgb(217, 217, 217)', 'rgb(217, 217, 217)', 'rgb(214, 214, 214)', 'rgb(214, 214, 214)', 'rgb(212, 212, 212)', 'rgb(212, 212, 212)', 'rgb(211, 211, 211)', 'rgb(211, 211, 211)', 'rgb(209, 209, 209)', 'rgb(209, 209, 209)', 'rgb(207, 207, 207)', 'rgb(207, 207, 207)', 'rgb(204, 204, 204)', 'rgb(204, 204, 204)', 'rgb(201, 201, 201)', 'rgb(201, 201, 201)', 'rgb(199, 199, 199)', 'rgb(199, 199, 199)', 'rgb(196, 196, 196)', 'rgb(196, 196, 196)', 'rgb(194, 194, 194)', 'rgb(194, 194, 194)', 'rgb(192, 192, 192)', 'rgb(191, 191, 191)', 'rgb(191, 191, 191)', 'rgb(189, 189, 189)', 'rgb(189, 189, 189)', 'rgb(186, 186, 186)', 'rgb(186, 186, 186)', 'rgb(184, 184, 184)', 'rgb(184, 184, 184)', 'rgb(181, 181, 181)', 'rgb(181, 181, 181)', 'rgb(179, 179, 179)', 'rgb(179, 179, 179)', 'rgb(176, 176, 176)', 'rgb(176, 176, 176)', 'rgb(173, 173, 173)', 'rgb(173, 173, 173)', 'rgb(171, 171, 171)', 'rgb(171, 171, 171)', 'rgb(169, 169, 169)', 'rgb(169, 169, 169)', 'rgb(168, 168, 168)', 'rgb(168, 168, 168)', 'rgb(166, 166, 166)', 'rgb(166, 166, 166)', 'rgb(163, 163, 163)', 'rgb(163, 163, 163)', 'rgb(161, 161, 161)', 'rgb(161, 161, 161)', 'rgb(158, 158, 158)', 'rgb(158, 158, 158)', 'rgb(156, 156, 156)', 'rgb(156, 156, 156)', 'rgb(153, 153, 153)', 'rgb(153, 153, 153)', 'rgb(150, 150, 150)', 'rgb(150, 150, 150)', 'rgb(148, 148, 148)', 'rgb(148, 148, 148)', 'rgb(145, 145, 145)', 'rgb(145, 145, 145)', 'rgb(143, 143, 143)', 'rgb(143, 143, 143)', 'rgb(140, 140, 140)', 'rgb(140, 140, 140)', 'rgb(138, 138, 138)', 'rgb(138, 138, 138)', 'rgb(135, 135, 135)', 'rgb(135, 135, 135)', 'rgb(133, 133, 133)', 'rgb(133, 133, 133)', 'rgb(130, 130, 130)', 'rgb(130, 130, 130)', 'rgb(128, 128, 128)', 'rgb(127, 127, 127)', 'rgb(127, 127, 127)', 'rgb(126, 126, 126)', 'rgb(125, 125, 125)', 'rgb(125, 125, 125)', 'rgb(122, 122, 122)', 'rgb(122, 122, 122)', 'rgb(120, 120, 120)', 'rgb(120, 120, 120)', 'rgb(117, 117, 117)', 'rgb(117, 117, 117)', 'rgb(115, 115, 115)', 'rgb(115, 115, 115)', 'rgb(112, 112, 112)', 'rgb(112, 112, 112)', 'rgb(110, 110, 110)', 'rgb(110, 110, 110)', 'rgb(107, 107, 107)', 'rgb(107, 107, 107)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(102, 102, 102)', 'rgb(102, 102, 102)', 'rgb( 99, 99, 99)', 'rgb( 99, 99, 99)', 'rgb( 97, 97, 97)', 'rgb( 97, 97, 97)', 'rgb( 94, 94, 94)', 'rgb( 94, 94, 94)', 'rgb( 92, 92, 92)', 'rgb( 92, 92, 92)', 'rgb( 89, 89, 89)', 'rgb( 89, 89, 89)', 'rgb( 87, 87, 87)', 'rgb( 87, 87, 87)', 'rgb( 84, 84, 84)', 'rgb( 84, 84, 84)', 'rgb( 82, 82, 82)', 'rgb( 82, 82, 82)', 'rgb( 79, 79, 79)', 'rgb( 79, 79, 79)', 'rgb( 77, 77, 77)', 'rgb( 77, 77, 77)', 'rgb( 74, 74, 74)', 'rgb( 74, 74, 74)', 'rgb( 71, 71, 71)', 'rgb( 71, 71, 71)', 'rgb( 69, 69, 69)', 'rgb( 69, 69, 69)', 'rgb( 66, 66, 66)', 'rgb( 66, 66, 66)', 'rgb( 64, 64, 64)', 'rgb( 64, 64, 64)', 'rgb( 61, 61, 61)', 'rgb( 61, 61, 61)', 'rgb( 59, 59, 59)', 'rgb( 59, 59, 59)', 'rgb( 56, 56, 56)', 'rgb( 56, 56, 56)', 'rgb( 54, 54, 54)', 'rgb( 54, 54, 54)', 'rgb( 51, 51, 51)', 'rgb( 51, 51, 51)', 'rgb( 48, 48, 48)', 'rgb( 48, 48, 48)', 'rgb( 46, 46, 46)', 'rgb( 46, 46, 46)', 'rgb( 43, 43, 43)', 'rgb( 43, 43, 43)', 'rgb( 41, 41, 41)', 'rgb( 41, 41, 41)', 'rgb( 38, 38, 38)', 'rgb( 38, 38, 38)', 'rgb( 36, 36, 36)', 'rgb( 36, 36, 36)', 'rgb( 33, 33, 33)', 'rgb( 33, 33, 33)', 'rgb( 31, 31, 31)', 'rgb( 31, 31, 31)', 'rgb( 28, 28, 28)', 'rgb( 28, 28, 28)', 'rgb( 26, 26, 26)', 'rgb( 26, 26, 26)', 'rgb( 23, 23, 23)', 'rgb( 23, 23, 23)', 'rgb( 20, 20, 20)', 'rgb( 20, 20, 20)', 'rgb( 18, 18, 18)', 'rgb( 18, 18, 18)', 'rgb( 15, 15, 15)', 'rgb( 15, 15, 15)', 'rgb( 13, 13, 13)', 'rgb( 13, 13, 13)', 'rgb( 10, 10, 10)', 'rgb( 10, 10, 10)', 'rgb( 8, 8, 8)', 'rgb( 8, 8, 8)', 'rgb( 5, 5, 5)', 'rgb( 5, 5, 5)', 'rgb( 3, 3, 3)', 'rgb( 3, 3, 3)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'white', 'white'] \ No newline at end of file diff --git a/share/frontend/imgrid/colors/colors/junk/ScrollEffect.js b/share/frontend/imgrid/colors/colors/junk/ScrollEffect.js deleted file mode 100755 index ac8ca3f..0000000 --- a/share/frontend/imgrid/colors/colors/junk/ScrollEffect.js +++ /dev/null @@ -1,86 +0,0 @@ -var vt = function () { - var view_box, - scrolled_element, - scrolled_element_actualheight = 0, - new_scrolled_element_top_position = 0, - final_Landing_Spot = 0, - hidden_material = 0, - viewbox_actualheight = 0, - y_coordinate = 0; - - var velx; - var prevY; - // ----- setup jquery selectors, set mouse event, run function run on timer - var start = function (view_element, element_to_be_scrolled) { - - // ----- mouse event ----- - $('.colors').mousemove(function(e){ - y_coordinate = e.clientY; - velx = e.clientY - prevY; - }); - - // ----- selectors and variables - view_box = $('#'+view_element)[0];//.(view_element);//viewarea - scrolled_element = $('#'+element_to_be_scrolled)[0]; //container - viewbox_actualheight = view_box.offsetHeight;//always 850px - scrolled_element_actualheight = scrolled_element.offsetHeight; - hidden_material = scrolled_element_actualheight - viewbox_actualheight; - - - // ----- start engine ----- - - setInterval(run, 60);//previously 16, the higher the number, the easier it is on the browser - }; - ///////////////////////////////////////////////////////////////////////////// - - - // ----- main ----- all this function does is adjust the top position of the div - var run = function () { - - prevY = y_coordinate; - - //if velocity is negative, landing spot and scrolltop increase in value (you have to add it) - - //velocity function if velocity is high, final landing spot is high, - -//FINAL LANDING SPOT IS NO LONGER FINAL LANDING SPOT. INSTEAD it's -//how much the div will move - // ----- calculate the final landing spot -// if(y_coordinate < viewbox_actualheight){ //it almost always is - final_Landing_Spot = y_coordinate * -18.5//( hidden_material / viewbox_actualheight)*-1; //this is negative because it's adjusting top css - - $('#preview').html('x-velocity='+'scrolled element'+scrolled_element_offset_height+'thats it'+velx+'
') -// } - /*this is the mouse position multiplied by the ratio of hidden to visible. this makes sense going in the negative direction, because - it allows the number to grow in proportion to how much invisible stuff there is...the issue is that the mouse position is small at the top of - the screen and large at the bottom...it needs to be equalized*/ - - - - // ----- function to determine easing - var velocity = (final_Landing_Spot - new_scrolled_element_top_position) - new_scrolled_element_top_position += Math.max(-25, Math.min(25, (final_Landing_Spot - new_scrolled_element_top_position))); - - - - - - - - - - - - - $('#boners').html(' final_Landing_Spot ='+(final_Landing_Spot - new_scrolled_element_top_position)+'
var vvvvvvelocity='+velocity+'
clientY='+y_coordinate+'
new scrolled top='+new_scrolled_element_top_position+'
') - // ----- HTML position ----- - scrolled_element.style.top = Math.round(new_scrolled_element_top_position) + 'px'; //and finally it's put in...continuously against the timer - - }; - - return { - //////////////////////////////////////////////////////////////////////////// - /* ==== public functions ==== */ - start : start, - } -}(); diff --git a/share/frontend/imgrid/colors/colors/junk/ScrollEffectcomingsoon.js b/share/frontend/imgrid/colors/colors/junk/ScrollEffectcomingsoon.js deleted file mode 100755 index 3388d5f..0000000 --- a/share/frontend/imgrid/colors/colors/junk/ScrollEffectcomingsoon.js +++ /dev/null @@ -1,237 +0,0 @@ -var vt = function () { - var view_box, - scrolled_element, - scrolled_element_actualheight = 0, - easing = 0, - final_resting_place = 0, - hidden_material = 0, - viewbox_actualheight = 0; - var y_coordinate = 0; - - var velocity; - var prevY; - var lastrested = 0; - // ----- setup jquery selectors, set mouse event, run function run on timer - var start = function (view_element, element_to_be_scrolled) { - - // ----- mouse event ----- - $('.colors').mousemove(function(e){ - y_coordinate = e.clientY; - velocity = e.clientY - prevY; - }); - velocity = y_coordinate - prevY - // ----- selectors and variables - view_box = $('#'+view_element)[0];//.(view_element);//viewarea - scrolled_element = $('#'+element_to_be_scrolled)[0]; //container - viewbox_actualheight = view_box.offsetHeight;//always 850px - scrolled_element_actualheight = scrolled_element.offsetHeight; - hidden_material = scrolled_element_actualheight - viewbox_actualheight; - - - // ----- timer ----- - - setInterval(run, 50);//previously 16, the higher the number, the easier it is on the browser - }; - ///////////////////////////////////////////////////////////////////////////// - - - // ----- main ----- all this function does is adjust the top position of the div - var run = function () { - - prevY = y_coordinate; - - //if velocity is negative, landing spot and scrolltop increase in value (you have to add it) - - //velocity function if velocity is high, final landing spot is high, - -//FINAL LANDING SPOT IS NO LONGER FINAL LANDING SPOT. INSTEAD it's -//how much the div will move - // ----- calculate the final landing spot -// if(y_coordinate < viewbox_actualheight){ //it almost always is - final_resting_place = velocity * -8 - // -18.5//( hidden_material / viewbox_actualheight)*-1; //this is negative because it's adjusting top css - var rush = velocity*.1 - - $('#preview').html('velocity='+velocity+'
rush='+rush+'
') -// } - /*this is the mouse position multiplied by the ratio of hidden to visible. this makes sense going in the negative direction, because - it allows the number to grow in proportion to how much invisible stuff there is...the issue is that the mouse position is small at the top of - the screen and large at the bottom...it needs to be equalized*/ - - - - // ----- function to determine roll_to_zero - // var wheelshow; - var roll_to_zero; - // if(Math.abs(velocity)<10){roll_to_zero = roll_to_zero} - // else{ - roll_to_zero = (final_resting_place - easing) - // easing += Math.max(-25, Math.min(25, roll_to_zero));} - // easing += Math.max(-25, Math.min(25, roll_to_zero));} - if (roll_to_zero > 0) - {if (roll_to_zero > 8000) - {easing = easing + 100} - else if (roll_to_zero > 6000) - {easing = easing +50} - else if (roll_to_zero > 3000) - {easing = easing + 30} - else if (roll_to_zero > 1000) - {easing = easing + 20} - else if (roll_to_zero > 50) - {easing = easing +5} - else{easing = easing +1}} - else if (roll_to_zero < 0) - {if (roll_to_zero < 8000) - {easing = easing - 100} - else if (roll_to_zero < 6000) - {easing = easing -50} - else if (roll_to_zero < 3000) - {easing = easing - 30} - else if (roll_to_zero < 1000) - {easing = easing - 20} - else if (roll_to_zero < 50) - {easing = easing -1}} - else{easing = final_resting_place} - - if (roll_to_zero == 0){roll_to_zero = 0} - if (Math.abs(velocity) <= 50){roll_to_zero = 0} -// } - // easing = - //in other words if its less than 25(and moving down to zero), it uses 25 and if it's greater than 25 (moving up to zero) it uses 25. it will move - //faster going up if the Math.min(25, number is higher, but since the value is determined by the mouse cursor position it won't move as fast - - - - - - - - - - - $('#boners').html('
final resting place='+final_resting_place+'
var roll_to_zero='+roll_to_zero+'
clientY='+y_coordinate+'
easing='+easing+'
') - // ----- HTML position ----- - scrolled_element.style.top = Math.round(easing) + 'px'; //and finally it's put in...continuously against the timer - - }; -// var wheelshow = final_resting_place - lastrested; - // while(easing > 0){html = this div rightwheel} -// while(easing < 0){html = this div leftwheel.show} //wheel should be gray and transparent 3/4 view bg = colors under the mouseover - // if(easing == 0){hmtl = ''} - return { - //////////////////////////////////////////////////////////////////////////// - /* ==== public functions ==== */ - start : start, - } -}(); - - -/*minimap...how would it work? - -an image of the page... - -plus a div with a border - -there would have to be some sort of mathematical correllation to the window.height and the height of the div -against the minimap - - - - - -WHAT WE'VE GOT;;;;;;;;;;;;;;;;;;;;;;;;; -VELOCITY Y...A NUMBER THAT INDICATES THE CHANGE IN POSITION OF THE MOUSE - -HIDDENMATERIAL/VIEWBOX ACTUAL HeIGHT = 18.5 - -resting space range is -200 -1200 - - - -the way the algorithm works - - -final_top_position = (y coordinate)(-20) //some big number that's dependent on the y position - - -easing function...rolling toward the final_top_position - -[first off -the y coordinate shouldn't be based on the upper left (only because of VALUE, that's why it's easier to scroll down than up)] - -[e.pageY-($(window).height()*0.5)] - -value should be eradicated...we should instead use velocity which is DELTA. doesn't matter - - - roll_to_zero = (final_Landing_Spot - easing) first a destination spot is calculated, then easing takes place -new_scrolled_element - - - roll_to_zero = (final_Landing_Spot - easing)} - easing += Math.max(-25, Math.min(25, roll_to_zero)) - -instead of adjusting the height to the final landing spot, it becomes the easing value - -how easing works - x += Math.max(-25, Math.min(25, finalrestingplace-x));//as x approaches the final resting place, easing is used. 25 and -25 are used to traverse -long spaces more quickly - -where x = the current scroller position -as x becomes larger final resting place gets closer to 0 (it would actually be smaller, but we're dealing with negative values) - -the function is read from the inside out - -and of course, the statement that is missing is that x MUST be less than the overall distance travelable (which MUST be calculated) - -what's less important is the destination spot. more important would be the distance traveled per mouse move - -if the velocity is low, the distance is low, if the velocity is really high, it zooms to the end. - -before getting into specifics, for ease of reference lets say the velocity is has a range of -10 to 10, the over all distance traveled is 100px - -if the velocity is equal to range(-3,3) distance traved = 0 -if the velocity is between range(-4,-3) or range(3,4) distance traveled = 2 -if the velocity is between range (5,6) or (-5,-6) distance traveled would be 20 -if the velocity is between the range of 7,8 or -7,-8 the distance traveled would be 40 -if the velocity is between the range of 89 the velocity traveled would 80 -9-10 velocity is 160 - -0 --12302 from the top is the current max - - - - - - - - -plotted out this looks like this - # - - - - - - - - # - - - - - # - - -__- __- __# __ __ __ __ __ __ __ __ __ - -essentially we want something that looks like this (0.3x)^5 -0.ax^b - -we can play with which exponent is right, but only choosing odd ones -where a is the stationary range number -and b is the new slope - - -this function is called on a timer*/ diff --git a/share/frontend/imgrid/colors/colors/junk/brush.ani b/share/frontend/imgrid/colors/colors/junk/brush.ani deleted file mode 100755 index 6da99b4..0000000 Binary files a/share/frontend/imgrid/colors/colors/junk/brush.ani and /dev/null differ diff --git a/share/frontend/imgrid/colors/colors/junk/colordictOLD.js b/share/frontend/imgrid/colors/colors/junk/colordictOLD.js deleted file mode 100755 index 67220ca..0000000 --- a/share/frontend/imgrid/colors/colors/junk/colordictOLD.js +++ /dev/null @@ -1,2 +0,0 @@ -var hextoname = {'#EE1289': 'DeepPink2', '#EE8262': 'salmon2', '#C4C4C4': 'gray77', '#556B2F': 'DarkOliveGreen', '#FF8C00': 'DarkOrange', '#8B7B8B': 'thistle4', '#0000EE': 'blue2', '#EED5D2': 'MistyRose2', '#BA55D3': 'MediumOrchid', '#FFF5EE': 'seashell', '#912CEE': 'purple2', '#2F4F4F': 'DarkSlateGray', '#32814B': 'MediumForestGreen', '#D15FEE': 'MediumOrchid2', '#F0FFF0': 'honeydew', '#B23AEE': 'DarkOrchid2', '#8B7765': 'PeachPuff4', '#3D3D3D': 'gray24', '#54FF9F': 'SeaGreen1', '#636363': 'gray39', '#8B8386': 'LavenderBlush4', '#FF4040': 'brown1', '#EEA9B8': 'pink2', '#C2C2C2': 'gray76', '#800080': 'purple', '#545454': 'gray33', '#EE3A8C': 'VioletRed2', '#8A8A8A': 'gray54', '#FF00FF': 'fuchsia', '#436EEE': 'RoyalBlue2', '#8B864E': 'khaki4', '#0A0A0A': 'gray4', '#808000': 'olive', '#E3E3E3': 'gray89', '#1874CD': 'DodgerBlue3', '#BCD2EE': 'LightSteelBlue2', '#A9A9A9': 'DarkGray', '#F4A460': 'SandyBrown', '#FF3030': 'firebrick1', '#FFEBCD': 'BlanchedAlmond', '#B0C4DE': 'LightSteelBlue', '#00CDCD': 'cyan3', '#C0FF3E': 'OliveDrab1', '#FFD700': 'gold', '#242424': 'gray14', '#8B2252': 'VioletRed4', '#4EEE94': 'SeaGreen2', '#CD3278': 'VioletRed3', '#00E5EE': 'turquoise2', '#CD853F': 'peru', '#ADD8E6': 'LightBlue', '#C7C7C7': 'gray78', '#CD2990': 'maroon3', '#EEE5DE': 'seashell2', '#66CD00': 'chartreuse3', '#878787': 'gray53', '#FFA54F': 'tan1', '#A2B5CD': 'LightSteelBlue3', '#BC8F8F': 'RosyBrown', '#C9C9C9': 'gray79', '#D1C166': 'MediumGoldenRod', '#8B2323': 'brown4', '#B3EE3A': 'OliveDrab2', '#EEEED1': 'LightYellow2', '#AEEEEE': 'PaleTurquoise2', '#BDBDBD': 'gray74', '#FF7F00': 'DarkOrange1', '#FFC0CB': 'pink', '#EE3B3B': 'brown2', '#CDC8B1': 'cornsilk3', '#CDB38B': 'NavajoWhite3', '#CDBA96': 'wheat3', '#B4EEB4': 'DarkSeaGreen2', '#40E0D0': 'turquoise', '#8B795E': 'NavajoWhite4', '#27408B': 'RoyalBlue4', '#424242': 'gray26', '#CDB7B5': 'MistyRose3', '#CAE1FF': 'LightSteelBlue1', '#F0FFFF': 'azure', '#2E8B57': 'SeaGreen', '#87CEEB': 'SkyBlue', '#CD00CD': 'magenta3', '#CDAA7D': 'burlywood3', '#836FFF': 'SlateBlue1', '#ABABAB': 'gray67', '#EEB4B4': 'RosyBrown2', '#8B7355': 'burlywood4', '#F0E68C': 'khaki', '#CDCDB4': 'LightYellow3', '#4D4D4D': 'gray30', '#B8B8B8': 'gray72', '#B4CDCD': 'LightCyan3', '#008B8B': 'cyan4', '#828282': 'gray51', '#00EEEE': 'cyan2', '#708090': 'SlateGray', '#9AFF9A': 'PaleGreen1', '#FFA07A': 'LightSalmon', '#EBEBEB': 'gray92', '#FFB5C5': 'pink1', '#00688B': 'DeepSkyBlue4', '#DBDBDB': 'gray86', '#191970': 'MidnightBlue', '#FF83FA': 'orchid1', '#A1A1A1': 'gray63', '#838B8B': 'azure4', '#FFA500': 'orange', '#00FF7F': 'SpringGreen', '#EEAD0E': 'DarkGoldenrod2', '#B03060': 'maroon', '#96CDCD': 'PaleTurquoise3', '#CD3333': 'brown3', '#CDBE70': 'LightGoldenrod3', '#7CCD7C': 'PaleGreen3', '#97FFFF': 'DarkSlateGray1', '#DAA520': 'goldenrod', '#8B3A3A': 'IndianRed4', '#6B6B6B': 'gray42', '#FFFAF0': 'FloralWhite', '#757575': 'gray46', '#BFBFBF': 'gray75', '#00EE76': 'SpringGreen2', '#FFFAFA': 'snow', '#6E8B3D': 'DarkOliveGreen4', '#EEE685': 'khaki2', '#FF3E96': 'VioletRed1', '#EE0000': 'red2', '#FDF5E6': 'OldLace', '#E066FF': 'MediumOrchid1', '#8DB6CD': 'LightSkyBlue3', '#FF7256': 'coral1', '#7CFC00': 'LawnGreen', '#838B83': 'honeydew4', '#BF3EFF': 'DarkOrchid1', '#8B6914': 'goldenrod4', '#00CD66': 'SpringGreen3', '#525252': 'gray32', '#A4D3EE': 'LightSkyBlue2', '#00868B': 'turquoise4', '#8DEEEE': 'DarkSlateGray2', '#787878': 'gray47', '#8B1C62': 'maroon4', '#616161': 'gray38', '#4876FF': 'RoyalBlue1', '#9F79EE': 'MediumPurple2', '#212121': 'gray13', '#C1CDC1': 'honeydew3', '#CD69C9': 'orchid3', '#E0EEEE': 'azure2', '#8B7E66': 'wheat4', '#8A2BE2': 'BlueViolet', '#CDCD00': 'yellow3', '#EE5C42': 'tomato2', '#6E6E6E': 'gray43', '#EEAEEE': 'plum2', '#DC143C': 'crimson', '#CD919E': 'pink3', '#528B8B': 'DarkSlateGray4', '#AFEEEE': 'PaleTurquoise', '#CD6889': 'PaleVioletRed3', '#E6E6FA': 'lavender', '#EE00EE': 'magenta2', '#999999': 'gray60', '#F0F8FF': 'AliceBlue', '#595959': 'gray35', '#FF7F50': 'coral', '#A6A6A6': 'gray65', '#DEDEDE': 'gray87', '#262626': 'gray15', '#6CA6CD': 'SkyBlue3', '#8B8B83': 'ivory4', '#474747': 'gray28', '#F7F7F7': 'gray97', '#548B54': 'PaleGreen4', '#48D1CC': 'MediumTurquoise', '#C1CDCD': 'azure3', '#E0EEE0': 'honeydew2', '#FFB90F': 'DarkGoldenrod1', '#FFD39B': 'burlywood1', '#8B5A2B': 'tan4', '#EEE9BF': 'LemonChiffon2', '#BCEE68': 'DarkOliveGreen2', '#8470FF': 'LightSlateBlue', '#8B0A50': 'DeepPink4', '#FFF68F': 'khaki1', '#EEA2AD': 'LightPink2', '#CD5B45': 'coral3', '#7FFF00': 'chartreuse', '#8B8378': 'AntiqueWhite4', '#9BCD9B': 'DarkSeaGreen3', '#454545': 'gray27', '#D1D1D1': 'gray82', '#EEE8AA': 'PaleGoldenrod', '#668B8B': 'PaleTurquoise4', '#EE30A7': 'maroon2', '#FFC125': 'goldenrod1', '#8B475D': 'PaleVioletRed4', '#D8BFD8': 'thistle', '#404040': 'gray25', '#EEEE00': 'yellow2', '#CDB5CD': 'thistle3', '#00C5CD': 'turquoise3', '#00CED1': 'DarkTurquoise', '#CFCFCF': 'gray81', '#008B00': 'green4', '#7A7A7A': 'gray48', '#B8860B': 'DarkGoldenrod', '#1C86EE': 'DodgerBlue2', '#8B5742': 'LightSalmon4', '#1A1A1A': 'gray10', '#8B008B': 'DarkMagenta', '#0F0F0F': 'gray6', '#CD3700': 'OrangeRed3', '#7F7F7F': 'gray50', '#FF6EB4': 'HotPink1', '#6959CD': 'SlateBlue3', '#90EE90': 'LightGreen', '#8B4789': 'orchid4', '#EE7AE9': 'orchid2', '#8968CD': 'MediumPurple3', '#080808': 'gray3', '#CDC9C9': 'snow3', '#BDB76B': 'DarkKhaki', '#9370DB': 'MediumPurple', '#EEDC82': 'LightGoldenrod2', '#3CB371': 'MediumSeaGreen', '#F5FFFA': 'MintCream', '#303030': 'gray19', '#B9D3EE': 'SlateGray2', '#575757': 'gray34', '#F5F5DC': 'beige', '#BABABA': 'gray73', '#0000CD': 'blue3', '#FF8247': 'sienna1', '#F2F2F2': 'gray95', '#EED5B7': 'bisque2', '#FFEC8B': 'LightGoldenrod1', '#EE7600': 'DarkOrange2', '#8B636C': 'pink4', '#8B814C': 'LightGoldenrod4', '#FFE4B5': 'moccasin', '#4F94CD': 'SteelBlue3', '#CDAD00': 'gold3', '#CD5555': 'IndianRed3', '#8B7500': 'gold4', '#473C8B': 'SlateBlue4', '#B0E0E6': 'PowderBlue', '#FFFF00': 'yellow', '#CD96CD': 'plum3', '#006400': 'DarkGreen', '#FAFAFA': 'gray98', '#53868B': 'CadetBlue4', '#8B4513': 'chocolate4', '#98FB98': 'PaleGreen', '#63B8FF': 'SteelBlue1', '#FFAEB9': 'LightPink1', '#EE6A50': 'coral2', '#87CEFF': 'SkyBlue1', '#87CEFA': 'LightSkyBlue', '#ADFF2F': 'GreenYellow', '#008B45': 'SpringGreen4', '#EE4000': 'OrangeRed2', '#8B6969': 'RosyBrown4', '#00008B': 'blue4', '#DB7093': 'PaleVioletRed', '#7EC0EE': 'SkyBlue2', '#3B3B3B': 'gray23', '#8C8C8C': 'gray55', '#5F9EA0': 'cadet blue', '#EE799F': 'PaleVioletRed2', '#CD6090': 'HotPink3', '#8B8682': 'seashell4', '#458B74': 'aquamarine4', '#EECFA1': 'NavajoWhite2', '#76EE00': 'chartreuse2', '#000080': 'navy', '#228B22': 'ForestGreen', '#8B8B00': 'yellow4', '#B5B5B5': 'gray71', '#CD950C': 'DarkGoldenrod3', '#EE82EE': 'violet', '#EDEDED': 'gray93', '#F5DEB3': 'wheat', '#3A5FCD': 'RoyalBlue3', '#00FA9A': 'MediumSpringGreen', '#F0F0F0': 'gray94', '#D1EEEE': 'LightCyan2', '#2E2E2E': 'gray18', '#EEC591': 'burlywood2', '#8B3E2F': 'coral4', '#CD8162': 'LightSalmon3', '#9AC0CD': 'LightBlue3', '#8B8989': 'snow4', '#EED8AE': 'wheat2', '#551A8B': 'purple4', '#919191': 'gray57', '#949494': 'gray58', '#778899': 'LightSlateGray', '#FFFACD': 'LemonChiffon', '#458B00': 'chartreuse4', '#008000': 'green', '#FFFFF0': 'ivory', '#E0E0E0': 'gray88', '#EEB422': 'goldenrod2', '#A020F0': 'purple', '#5CACEE': 'SteelBlue2', '#CD4F39': 'tomato3', '#CDC0B0': 'AntiqueWhite3', '#6E7B8B': 'LightSteelBlue4', '#9E9E9E': 'gray62', '#CDC673': 'khaki3', '#104E8B': 'DodgerBlue4', '#E0FFFF': 'LightCyan', '#FFFFFF': 'white', '#6C7B8B': 'SlateGray4', '#FFC1C1': 'RosyBrown1', '#D6D6D6': 'gray84', '#8B4726': 'sienna4', '#CD9B1D': 'goldenrod3', '#FF6347': 'tomato', '#FF34B3': 'maroon1', '#7D7D7D': 'gray49', '#121212': 'gray7', '#B0E2FF': 'LightSkyBlue1', '#8B3A62': 'HotPink4', '#CD5C5C': 'IndianRed', '#4A4A4A': 'gray29', '#B0B0B0': 'gray69', '#D9D9D9': 'gray85', '#A2CD5A': 'DarkOliveGreen3', '#8B0000': 'DarkRed', '#FF6A6A': 'IndianRed1', '#CD6600': 'DarkOrange3', '#FFEFDB': 'AntiqueWhite1', '#E9967A': 'DarkSalmon', '#EEE9E9': 'snow2', '#D4D4D4': 'gray83', '#383838': 'gray22', '#7A67EE': 'SlateBlue2', '#4169E1': 'RoyalBlue', '#5E5E5E': 'gray37', '#00F5FF': 'turquoise1', '#FFEFD5': 'PapayaWhip', '#CDAF95': 'PeachPuff3', '#CCCCCC': 'gray80', '#00BFFF': 'DeepSkyBlue', '#CDB79E': 'bisque3', '#969696': 'gray59', '#4F4F4F': 'gray31', '#1E90FF': 'DodgerBlue', '#FCFCFC': 'gray99', '#EE2C2C': 'firebrick2', '#8B6508': 'DarkGoldenrod4', '#696969': 'DimGray', '#FF7F24': 'chocolate1', '#8FBC8F': 'DarkSeaGreen', '#66CDAA': 'aquamarine3', '#6495ED': 'CornflowerBlue', '#0D0D0D': 'gray5', '#EEE0E5': 'LavenderBlush2', '#666666': 'gray40', '#B2DFEE': 'LightBlue2', '#B22222': 'firebrick', '#4B0082': 'indigo', '#FF82AB': 'PaleVioletRed1', '#AB82FF': 'MediumPurple1', '#79CDCD': 'DarkSlateGray3', '#FFE4C4': 'bisque', '#DEB887': 'burlywood', '#5D478B': 'MediumPurple4', '#8B3626': 'tomato4', '#FFFFE0': 'LightYellow', '#FFE4E1': 'MistyRose', '#171717': 'gray9', '#EEDFCC': 'AntiqueWhite2', '#9400D3': 'DarkViolet', '#BFEFFF': 'LightBlue1', '#8B7D6B': 'bisque4', '#FF8C69': 'salmon1', '#C6E2FF': 'SlateGray1', '#1C1C1C': 'gray11', '#FF4500': 'OrangeRed', '#FFE7BA': 'wheat1', '#808080': 'fractal', '#EE9572': 'LightSalmon2', '#CD8500': 'orange3', '#8B5A00': 'orange4', '#9932CC': 'DarkOrchid', '#EECBAD': 'PeachPuff2', '#CD8C95': 'LightPink3', '#292929': 'gray16', '#CD1076': 'DeepPink3', '#7A378B': 'MediumOrchid4', '#FF0000': 'red', '#698B22': 'OliveDrab4', '#ADADAD': 'gray68', '#EEE8CD': 'cornsilk2', '#DDA0DD': 'plum', '#7D26CD': 'purple3', '#DA70D6': 'orchid', '#DCDCDC': 'gainsboro', '#68228B': 'DarkOrchid4', '#7B68EE': 'MediumSlateBlue', '#000000': 'black', '#6B8E23': 'OliveDrab', '#FF69B4': 'HotPink', '#800000': 'maroon', '#8B668B': 'plum4', '#363636': 'gray21', '#8B4500': 'DarkOrange4', '#D3D3D3': 'LightGray', '#607B8B': 'LightSkyBlue4', '#F08080': 'LightCoral', '#CD9B9B': 'RosyBrown3', '#76EEC6': 'aquamarine2', '#FAEBD7': 'AntiqueWhite', '#68838B': 'LightBlue4', '#7FFFD4': 'aquamarine', '#C0C0C0': 'silver', '#EEDD82': 'LightGoldenrod', '#EE9A49': 'tan2', '#4A708B': 'SkyBlue4', '#008080': 'teal', '#7AC5CD': 'CadetBlue3', '#98F5FF': 'CadetBlue1', '#8B2500': 'OrangeRed4', '#8F8F8F': 'gray56', '#FFF0F5': 'LavenderBlush', '#8B8970': 'LemonChiffon4', '#8B8878': 'cornsilk4', '#6A5ACD': 'SlateBlue', '#4682B4': 'SteelBlue', '#EEEEE0': 'ivory2', '#B3B3B3': 'gray70', '#00FF00': 'green1', '#FFDEAD': 'NavajoWhite', '#CD2626': 'firebrick3', '#8B4C39': 'salmon4', '#9B30FF': 'purple1', '#E5E5E5': 'gray90', '#36648B': 'SteelBlue4', '#9C9C9C': 'gray61', '#F8F8FF': 'GhostWhite', '#333333': 'gray20', '#5C5C5C': 'gray36', '#737373': 'gray45', '#EEC900': 'gold2', '#FFE1FF': 'thistle1', '#C1FFC1': 'DarkSeaGreen1', '#CDC5BF': 'seashell3', '#A0522D': 'sienna', '#8B5F65': 'LightPink4', '#CDC1C5': 'LavenderBlush3', '#EE7621': 'chocolate2', '#FFBBFF': 'plum1', '#CD6839': 'sienna3', '#698B69': 'DarkSeaGreen4', '#050505': 'gray2', '#CD661D': 'chocolate3', '#FAFAD2': 'LightGoldenrodYellow', '#CDCDC1': 'ivory3', '#FFF8DC': 'cornsilk', '#A8A8A8': 'gray66', '#B452CD': 'MediumOrchid3', '#D2B48C': 'tan', '#8EE5EE': 'CadetBlue2', '#483D8B': 'DarkSlateBlue', '#BBFFFF': 'PaleTurquoise1', '#0000FF': 'blue', '#EE6AA7': 'HotPink2', '#EE7942': 'sienna2', '#00CD00': 'green3', '#141414': 'gray8', '#9ACD32': 'OliveDrab3', '#C71585': 'MediumVioletRed', '#EE9A00': 'orange2', '#CAFF70': 'DarkOliveGreen1', '#F5F5F5': 'gray96', '#32CD32': 'LimeGreen', '#00EE00': 'green2', '#FFB6C1': 'LightPink', '#8B1A1A': 'firebrick4', '#00B2EE': 'DeepSkyBlue2', '#20B2AA': 'LightSeaGreen', '#707070': 'gray44', '#009ACD': 'DeepSkyBlue3', '#A52A2A': 'brown', '#EE6363': 'IndianRed2', '#FAF0E6': 'linen', '#8B7D7B': 'MistyRose4', '#9A32CD': 'DarkOrchid3', '#1F1F1F': 'gray12', '#E8E8E8': 'gray91', '#7E7E7E': 'gray', '#7A8B8B': 'LightCyan4', '#CD7054': 'salmon3', '#9FB6CD': 'SlateGray3', '#CDC9A5': 'LemonChiffon3', '#D02090': 'VioletRed', '#00FFFF': 'aqua', '#2B2B2B': 'gray17', '#858585': 'gray52', '#A3A3A3': 'gray64', '#CD0000': 'red3', '#43CD80': 'SeaGreen3', '#FA8072': 'salmon', '#FFDAB9': 'PeachPuff', '#D2691E': 'chocolate', '#FF1493': 'DeepPink', '#EED2EE': 'thistle2', '#030303': 'gray1', '#8B8B7A': 'LightYellow4'} -var nametohex = {'grey21': '#363636', 'yellow': '#FFFF00', 'grey61': '#9C9C9C', 'HotPink3': '#CD6090', 'grey63': '#A1A1A1', 'grey62': '#9E9E9E', 'grey65': '#A6A6A6', 'AliceBlue': '#F0F8FF', 'grey67': '#ABABAB', 'grey66': '#A8A8A8', 'LightCyan1': '#E0FFFF', 'grey68': '#ADADAD', 'LightCyan3': '#B4CDCD', 'LightCyan2': '#D1EEEE', 'LightCyan4': '#7A8B8B', 'gray32': '#525252', 'gray33': '#545454', 'DarkTurquoise': '#00CED1', 'gray31': '#4F4F4F', 'gray36': '#5C5C5C', 'gray37': '#5E5E5E', 'gray34': '#575757', 'gray35': '#595959', 'aquamarine4': '#458B74', 'gray38': '#616161', 'gray39': '#636363', 'aquamarine1': '#7FFFD4', 'aquamarine3': '#66CDAA', 'aquamarine2': '#76EEC6', 'CadetBlue4': '#53868B', 'CadetBlue3': '#7AC5CD', 'CadetBlue2': '#8EE5EE', 'CadetBlue1': '#98F5FF', 'crimson': '#DC143C', 'VioletRed1': '#FF3E96', 'VioletRed2': '#EE3A8C', 'VioletRed3': '#CD3278', 'VioletRed4': '#8B2252', 'brown': '#A52A2A', 'DarkGoldenrod': '#B8860B', 'gray8': '#141414', 'SlateGrey': '#708090', 'NavajoWhite2': '#EECFA1', 'gray2': '#050505', 'cyan': '#00FFFF', 'gray0': '#000000', 'gray1': '#030303', 'fractal': '#808080', 'gray7': '#121212', 'gray4': '#0A0A0A', 'gray5': '#0D0D0D', 'grey60': '#999999', 'DarkBlue': '#00008B', 'gray98': '#FAFAFA', 'DarkKhaki': '#BDB76B', 'gray99': '#FCFCFC', 'teal': '#008080', 'grey11': '#1C1C1C', 'coral4': '#8B3E2F', 'grey12': '#1F1F1F', 'grey64': '#A3A3A3', 'PaleGreen1': '#9AFF9A', 'PaleGreen3': '#7CCD7C', 'PaleGreen2': '#90EE90', 'PaleGreen4': '#548B54', 'grey14': '#242424', 'lavender': '#E6E6FA', 'grey15': '#262626', 'chartreuse3': '#66CD00', 'chartreuse2': '#76EE00', 'chartreuse1': '#7FFF00', 'chartreuse4': '#458B00', 'RosyBrown': '#BC8F8F', 'blue': '#0000FF', 'NavajoWhite': '#FFDEAD', 'opaque': '#000000', 'maroon4': '#8B1C62', 'maroon3': '#CD2990', 'maroon2': '#EE30A7', 'maroon1': '#FF34B3', 'gold3': '#CDAD00', 'gold2': '#EEC900', 'gold1': '#FFD700', 'gold4': '#8B7500', 'LightSlateGrey': '#778899', 'gray30': '#4D4D4D', 'DarkGreen': '#006400', 'SkyBlue': '#87CEEB', 'GhostWhite': '#F8F8FF', 'LavenderBlush': '#FFF0F5', 'SeaGreen': '#2E8B57', 'BlanchedAlmond': '#FFEBCD', 'gray60': '#999999', 'DarkOliveGreen': '#556B2F', 'firebrick2': '#EE2C2C', 'firebrick1': '#FF3030', 'firebrick4': '#8B1A1A', 'sienna': '#A0522D', 'blue1': '#0000FF', 'lime': '#00FF00', 'gray55': '#8C8C8C', 'blue2': '#0000EE', 'DarkViolet': '#9400D3', 'blue4': '#00008B', 'peru': '#CD853F', 'DarkMagenta': '#8B008B', 'LightBlue2': '#B2DFEE', 'red2': '#EE0000', 'red1': '#FF0000', 'LightBlue1': '#BFEFFF', 'LightBlue4': '#68838B', 'red4': '#8B0000', 'MediumSpringGreen': '#00FA9A', 'chocolate': '#D2691E', 'ForestGreen': '#228B22', 'DarkRed': '#8B0000', 'olive': '#808000', 'HotPink2': '#EE6AA7', 'HotPink1': '#FF6EB4', 'HotPink4': '#8B3A62', 'grey18': '#2E2E2E', 'grey19': '#303030', 'none': '#000000', 'PeachPuff': '#FFDAB9', 'MediumGoldenRod': '#D1C166', 'moccasin': '#FFE4B5', 'grey10': '#1A1A1A', 'chocolate1': '#FF7F24', 'chocolate2': '#EE7621', 'chocolate3': '#CD661D', 'chocolate4': '#8B4513', 'wheat2': '#EED8AE', 'grey16': '#292929', 'grey17': '#2B2B2B', 'gray69': '#B0B0B0', 'gray68': '#ADADAD', 'gray65': '#A6A6A6', 'gray64': '#A3A3A3', 'gray67': '#ABABAB', 'gray66': '#A8A8A8', 'gray61': '#9C9C9C', 'coral': '#FF7F50', 'gray63': '#A1A1A1', 'gray62': '#9E9E9E', 'LightGoldenrod': '#EEDD82', 'turquoise4': '#00868B', 'seashell2': '#EEE5DE', 'seashell3': '#CDC5BF', 'magenta': '#FF00FF', 'seashell1': '#FFF5EE', 'tan': '#D2B48C', 'seashell4': '#8B8682', 'pink': '#FFC0CB', 'LightSlateBlue': '#8470FF', 'SteelBlue1': '#63B8FF', 'SteelBlue3': '#4F94CD', 'SteelBlue2': '#5CACEE', 'SteelBlue4': '#36648B', 'grey89': '#E3E3E3', 'grey88': '#E0E0E0', 'grey87': '#DEDEDE', 'grey86': '#DBDBDB', 'grey85': '#D9D9D9', 'grey84': '#D6D6D6', 'grey83': '#D4D4D4', 'grey82': '#D1D1D1', 'grey81': '#CFCFCF', 'grey80': '#CCCCCC', 'ivory2': '#EEEEE0', 'khaki4': '#8B864E', 'khaki1': '#FFF68F', 'khaki2': '#EEE685', 'khaki3': '#CDC673', 'salmon1': '#FF8C69', 'salmon3': '#CD7054', 'salmon2': '#EE8262', 'salmon4': '#8B4C39', 'LightPink': '#FFB6C1', 'gray9': '#171717', 'green': '#008000', 'brown2': '#EE3B3B', 'brown3': '#CD3333', 'brown1': '#FF4040', 'brown4': '#8B2323', 'cadet blue': '#5F9EA0', 'orange4': '#8B5A00', 'orange1': '#FFA500', 'orange3': '#CD8500', 'orange2': '#EE9A00', 'gray3': '#080808', 'gray6': '#0F0F0F', 'yellow4': '#8B8B00', 'yellow3': '#CDCD00', 'yellow2': '#EEEE00', 'yellow1': '#FFFF00', 'PapayaWhip': '#FFEFD5', 'bisque2': '#EED5B7', 'OliveDrab4': '#698B22', 'bisque3': '#CDB79E', 'OliveDrab1': '#C0FF3E', 'OliveDrab2': '#B3EE3A', 'OliveDrab3': '#9ACD32', 'SkyBlue4': '#4A708B', 'SkyBlue1': '#87CEFF', 'SkyBlue3': '#6CA6CD', 'SkyBlue2': '#7EC0EE', 'grey58': '#949494', 'grey59': '#969696', 'grey54': '#8A8A8A', 'grey55': '#8C8C8C', 'grey56': '#8F8F8F', 'grey57': '#919191', 'grey50': '#7F7F7F', 'silver': '#C0C0C0', 'grey52': '#858585', 'grey53': '#878787', 'cyan2': '#00EEEE', 'cyan3': '#00CDCD', 'gray23': '#3B3B3B', 'RosyBrown4': '#8B6969', 'gray25': '#404040', 'CornflowerBlue': '#6495ED', 'cyan4': '#008B8B', 'gray26': '#424242', 'gray29': '#4A4A4A', 'LimeGreen': '#32CD32', 'MistyRose': '#FFE4E1', 'navy': '#000080', 'gray94': '#F0F0F0', 'gray95': '#F2F2F2', 'gray96': '#F5F5F5', 'gray97': '#F7F7F7', 'gray90': '#E5E5E5', 'gray91': '#E8E8E8', 'gray92': '#EBEBEB', 'gray93': '#EDEDED', 'MediumPurple': '#9370DB', 'MidnightBlue': '#191970', 'cornsilk': '#FFF8DC', 'red': '#FF0000', 'grey69': '#B0B0B0', 'DarkOrchid4': '#68228B', 'blue3': '#0000CD', 'LightSteelBlue': '#B0C4DE', 'DarkOrchid1': '#BF3EFF', 'DarkOrchid2': '#B23AEE', 'DarkOrchid3': '#9A32CD', 'grey72': '#B8B8B8', 'FloralWhite': '#FFFAF0', 'grey70': '#B3B3B3', 'DarkSeaGreen': '#8FBC8F', 'grey71': '#B5B5B5', 'gray17': '#2B2B2B', 'grey77': '#C4C4C4', 'tomato4': '#8B3626', 'tomato1': '#FF6347', 'tomato3': '#CD4F39', 'tomato2': '#EE5C42', 'DarkSlateGray1': '#97FFFF', 'DarkSlateGray2': '#8DEEEE', 'DarkSlateGray3': '#79CDCD', 'DarkSlateGray4': '#528B8B', 'SteelBlue': '#4682B4', 'MediumSlateBlue': '#7B68EE', 'OrangeRed': '#FF4500', 'grey79': '#C9C9C9', 'MediumVioletRed': '#C71585', 'burlywood': '#DEB887', 'white': '#FFFFFF', 'tomato': '#FF6347', 'DodgerBlue': '#1E90FF', 'RoyalBlue4': '#27408B', 'RoyalBlue1': '#4876FF', 'RoyalBlue3': '#3A5FCD', 'RoyalBlue2': '#436EEE', 'MistyRose1': '#FFE4E1', 'MistyRose3': '#CDB7B5', 'MistyRose2': '#EED5D2', 'MistyRose4': '#8B7D7B', 'LightGray': '#D3D3D3', 'LightYellow': '#FFFFE0', 'DarkOrange': '#FF8C00', 'DarkGray': '#A9A9A9', 'SlateGray': '#708090', 'turquoise3': '#00C5CD', 'turquoise2': '#00E5EE', 'turquoise1': '#00F5FF', 'burlywood2': '#EEC591', 'burlywood4': '#8B7355', 'DarkSlateGray': '#2F4F4F', 'linen': '#FAF0E6', 'grey47': '#787878', 'snow': '#FFFAFA', 'grey46': '#757575', 'gray58': '#949494', 'gray59': '#969696', 'IndianRed4': '#8B3A3A', 'purple4': '#551A8B', 'gray52': '#858585', 'gray53': '#878787', 'purple1': '#9B30FF', 'IndianRed1': '#FF6A6A', 'purple3': '#7D26CD', 'purple2': '#912CEE', 'thistle3': '#CDB5CD', 'thistle2': '#EED2EE', 'SpringGreen2': '#00EE76', 'SpringGreen3': '#00CD66', 'SpringGreen4': '#008B45', 'thistle4': '#8B7B8B', 'LightPink2': '#EEA2AD', 'LightPink3': '#CD8C95', 'LightPink1': '#FFAEB9', 'LightPink4': '#8B5F65', 'MediumPurple1': '#AB82FF', 'MediumPurple2': '#9F79EE', 'MediumPurple3': '#8968CD', 'MediumPurple4': '#5D478B', 'MediumTurquoise': '#48D1CC', 'DimGray': '#696969', 'gray14': '#242424', 'grey100': '#FFFFFF', 'OrangeRed3': '#CD3700', 'OrangeRed2': '#EE4000', 'OrangeRed1': '#FF4500', 'LightSeaGreen': '#20B2AA', 'gold': '#FFD700', 'OrangeRed4': '#8B2500', 'NavajoWhite4': '#8B795E', 'NavajoWhite1': '#FFDEAD', 'LawnGreen': '#7CFC00', 'NavajoWhite3': '#CDB38B', 'LightGoldenrod4': '#8B814C', 'LightGoldenrod1': '#FFEC8B', 'LightGoldenrod3': '#CDBE70', 'LightGoldenrod2': '#EEDC82', 'gray21': '#363636', 'PaleGreen': '#98FB98', 'green4': '#008B00', 'green1': '#00FF00', 'green3': '#00CD00', 'green2': '#00EE00', 'MediumOrchid': '#BA55D3', 'black': '#000000', 'gray20': '#333333', 'orchid4': '#8B4789', 'DodgerBlue1': '#1E90FF', 'DodgerBlue2': '#1C86EE', 'DodgerBlue3': '#1874CD', 'DodgerBlue4': '#104E8B', 'orchid1': '#FF83FA', 'orchid2': '#EE7AE9', 'orchid3': '#CD69C9', 'DarkSeaGreen4': '#698B69', 'DarkSeaGreen3': '#9BCD9B', 'DarkSeaGreen2': '#B4EEB4', 'DarkSeaGreen1': '#C1FFC1', 'gray100': '#FFFFFF', 'BlueViolet': '#8A2BE2', 'bisque4': '#8B7D6B', 'MediumOrchid4': '#7A378B', 'MintCream': '#F5FFFA', 'MediumOrchid1': '#E066FF', 'bisque1': '#FFE4C4', 'MediumOrchid3': '#B452CD', 'MediumOrchid2': '#D15FEE', 'gray': '#7E7E7E', 'DeepSkyBlue': '#00BFFF', 'LightGrey': '#D3D3D3', 'grey78': '#C7C7C7', 'gray22': '#383838', 'plum4': '#8B668B', 'plum3': '#CD96CD', 'plum2': '#EEAEEE', 'plum1': '#FFBBFF', 'DarkSlateGrey': '#2F4F4F', 'DarkOrchid': '#9932CC', 'OliveDrab': '#6B8E23', 'gray83': '#D4D4D4', 'grey49': '#7D7D7D', 'grey48': '#7A7A7A', 'thistle': '#D8BFD8', 'violet': '#EE82EE', 'grey43': '#6E6E6E', 'grey42': '#6B6B6B', 'LightSalmon4': '#8B5742', 'grey40': '#666666', 'LightSalmon2': '#EE9572', 'LightSalmon3': '#CD8162', 'grey45': '#737373', 'LightSalmon1': '#FFA07A', 'honeydew': '#F0FFF0', 'gray18': '#2E2E2E', 'gray19': '#303030', 'LightCyan': '#E0FFFF', 'gray15': '#262626', 'gray16': '#292929', 'gray82': '#D1D1D1', 'gray10': '#1A1A1A', 'gray11': '#1C1C1C', 'gray12': '#1F1F1F', 'gray13': '#212121', 'grey93': '#EDEDED', 'PaleGoldenrod': '#EEE8AA', 'gainsboro': '#DCDCDC', 'AntiqueWhite3': '#CDC0B0', 'AntiqueWhite2': '#EEDFCC', 'AntiqueWhite1': '#FFEFDB', 'gray27': '#454545', 'SlateBlue': '#6A5ACD', 'AntiqueWhite4': '#8B8378', 'DimGrey': '#696969', 'VioletRed': '#D02090', 'WhiteSmoke': '#F5F5F5', 'grey38': '#616161', 'grey39': '#636363', 'grey36': '#5C5C5C', 'grey37': '#5E5E5E', 'grey34': '#575757', 'grey35': '#595959', 'aqua': '#00FFFF', 'grey33': '#545454', 'grey30': '#4D4D4D', 'grey31': '#4F4F4F', 'NavyBlue': '#000080', 'sienna4': '#8B4726', 'gray81': '#CFCFCF', 'gray80': '#CCCCCC', 'sienna1': '#FF8247', 'gray86': '#DBDBDB', 'sienna3': '#CD6839', 'sienna2': '#EE7942', 'gray89': '#E3E3E3', 'gray88': '#E0E0E0', 'SlateBlue4': '#473C8B', 'gray87': '#DEDEDE', 'LightSteelBlue1': '#CAE1FF', 'magenta3': '#CD00CD', 'IndianRed': '#CD5C5C', 'SlateBlue2': '#7A67EE', 'SlateBlue1': '#836FFF', 'LightBlue': '#ADD8E6', 'PeachPuff4': '#8B7765', 'seashell': '#FFF5EE', 'SaddleBrown': '#8B4513', 'PeachPuff1': '#FFDAB9', 'PeachPuff2': '#EECBAD', 'PeachPuff3': '#CDAF95', 'aquamarine': '#7FFFD4', 'LemonChiffon2': '#EEE9BF', 'LemonChiffon1': '#FFFACD', 'tan4': '#8B5A2B', 'tan3': '#CD853F', 'tan2': '#EE9A49', 'tan1': '#FFA54F', 'LemonChiffon4': '#8B8970', 'orange': '#FFA500', 'OldLace': '#FDF5E6', 'PowderBlue': '#B0E0E6', 'RosyBrown3': '#CD9B9B', 'RoyalBlue': '#4169E1', 'LightSkyBlue4': '#607B8B', 'LightSkyBlue1': '#B0E2FF', 'LightSkyBlue2': '#A4D3EE', 'LightSkyBlue3': '#8DB6CD', 'LightYellow1': '#FFFFE0', 'LightYellow2': '#EEEED1', 'LightYellow3': '#CDCDB4', 'LightYellow4': '#8B8B7A', 'goldenrod4': '#8B6914', 'goldenrod1': '#FFC125', 'goldenrod2': '#EEB422', 'goldenrod3': '#CD9B1D', 'grey32': '#525252', 'LemonChiffon': '#FFFACD', 'burlywood1': '#FFD39B', 'YellowGreen': '#9ACD32', 'LightCoral': '#F08080', 'burlywood3': '#CDAA7D', 'ivory3': '#CDCDC1', 'firebrick3': '#CD2626', 'ivory1': '#FFFFF0', 'grey8': '#141414', 'ivory4': '#8B8B83', 'grey9': '#171717', 'DarkSalmon': '#E9967A', 'SlateGray1': '#C6E2FF', 'SlateGray2': '#B9D3EE', 'SlateGray3': '#9FB6CD', 'SlateGray4': '#6C7B8B', 'RosyBrown2': '#EEB4B4', 'RosyBrown1': '#FFC1C1', 'gray85': '#D9D9D9', 'gray84': '#D6D6D6', 'LightGreen': '#90EE90', 'LavenderBlush1': '#FFF0F5', 'grey73': '#BABABA', 'LavenderBlush3': '#CDC1C5', 'LavenderBlush2': '#EEE0E5', 'grey76': '#C2C2C2', 'LavenderBlush4': '#8B8386', 'grey74': '#BDBDBD', 'grey75': '#BFBFBF', 'pink1': '#FFB5C5', 'pink3': '#CD919E', 'pink2': '#EEA9B8', 'pink4': '#8B636C', 'gray47': '#787878', 'gray46': '#757575', 'gray45': '#737373', 'gray44': '#707070', 'gray43': '#6E6E6E', 'gray42': '#6B6B6B', 'gray41': '#696969', 'gray40': '#666666', 'gray49': '#7D7D7D', 'gray48': '#7A7A7A', 'MediumAquamarine': '#66CDAA', 'MediumForestGreen': '#32814B', 'azure1': '#F0FFFF', 'azure3': '#C1CDCD', 'azure2': '#E0EEEE', 'indigo': '#4B0082', 'azure4': '#838B8B', 'firebrick': '#B22222', 'DarkGrey': '#A9A9A9', 'magenta4': '#8B008B', 'SlateBlue3': '#6959CD', 'magenta2': '#EE00EE', 'magenta1': '#FF00FF', 'grey51': '#828282', 'chartreuse': '#7FFF00', 'grey41': '#696969', 'DarkOliveGreen4': '#6E8B3D', 'turquoise': '#40E0D0', 'DarkOliveGreen1': '#CAFF70', 'DarkOliveGreen3': '#A2CD5A', 'DarkOliveGreen2': '#BCEE68', 'grey6': '#0F0F0F', 'grey7': '#121212', 'grey4': '#0A0A0A', 'grey5': '#0D0D0D', 'grey2': '#050505', 'grey3': '#080808', 'grey0': '#000000', 'grey1': '#030303', 'gray50': '#7F7F7F', 'cyan1': '#00FFFF', 'gray51': '#828282', 'gray24': '#3D3D3D', 'HotPink': '#FF69B4', 'DarkGoldenrod4': '#8B6508', 'gray54': '#8A8A8A', 'DarkGoldenrod1': '#FFB90F', 'DarkGoldenrod2': '#EEAD0E', 'DarkGoldenrod3': '#CD950C', 'IndianRed2': '#EE6363', 'DeepPink': '#FF1493', 'gray28': '#474747', 'IndianRed3': '#CD5555', 'DarkCyan': '#008B8B', 'GreenYellow': '#ADFF2F', 'LightSalmon': '#FFA07A', 'DarkOrange4': '#8B4500', 'DarkOrange1': '#FF7F00', 'transparent': '#000000', 'DarkOrange3': '#CD6600', 'orchid': '#DA70D6', 'purple': '#800080', 'wheat4': '#8B7E66', 'wheat1': '#FFE7BA', 'wheat3': '#CDBA96', 'SpringGreen1': '#00FF7F', 'coral3': '#CD5B45', 'coral2': '#EE6A50', 'coral1': '#FF7256', 'thistle1': '#FFE1FF', 'PaleTurquoise': '#AFEEEE', 'bisque': '#FFE4C4', 'DeepPink3': '#CD1076', 'DeepPink2': '#EE1289', 'DeepPink1': '#FF1493', 'khaki': '#F0E68C', 'wheat': '#F5DEB3', 'MediumSeaGreen': '#3CB371', 'DeepPink4': '#8B0A50', 'salmon': '#FA8072', 'grey44': '#707070', 'DarkSlateBlue': '#483D8B', 'PaleVioletRed4': '#8B475D', 'PaleVioletRed1': '#FF82AB', 'PaleVioletRed2': '#EE799F', 'PaleVioletRed3': '#CD6889', 'AntiqueWhite': '#FAEBD7', 'PaleTurquoise4': '#668B8B', 'PaleTurquoise3': '#96CDCD', 'PaleTurquoise2': '#AEEEEE', 'PaleTurquoise1': '#BBFFFF', 'gray56': '#8F8F8F', 'plum': '#DDA0DD', 'beige': '#F5F5DC', 'SpringGreen': '#00FF7F', 'azure': '#F0FFFF', 'honeydew1': '#F0FFF0', 'honeydew2': '#E0EEE0', 'honeydew3': '#C1CDC1', 'honeydew4': '#838B83', 'gray57': '#919191', 'snow4': '#8B8989', 'snow2': '#EEE9E9', 'snow3': '#CDC9C9', 'snow1': '#FFFAFA', 'SandyBrown': '#F4A460', 'grey13': '#212121', 'SeaGreen4': '#2E8B57', 'SeaGreen3': '#43CD80', 'SeaGreen2': '#4EEE94', 'SeaGreen1': '#54FF9F', 'grey29': '#4A4A4A', 'grey28': '#474747', 'grey25': '#404040', 'grey24': '#3D3D3D', 'grey27': '#454545', 'grey26': '#424242', 'fuchsia': '#FF00FF', 'grey20': '#333333', 'grey23': '#3B3B3B', 'grey22': '#383838', 'gray78': '#C7C7C7', 'gray79': '#C9C9C9', 'gray76': '#C2C2C2', 'gray77': '#C4C4C4', 'gray74': '#BDBDBD', 'gray75': '#BFBFBF', 'gray72': '#B8B8B8', 'gray73': '#BABABA', 'gray70': '#B3B3B3', 'gray71': '#B5B5B5', 'ivory': '#FFFFF0', 'LemonChiffon3': '#CDC9A5', 'DeepSkyBlue4': '#00688B', 'DeepSkyBlue3': '#009ACD', 'DeepSkyBlue2': '#00B2EE', 'DeepSkyBlue1': '#00BFFF', 'cornsilk4': '#8B8878', 'cornsilk2': '#EEE8CD', 'cornsilk3': '#CDC8B1', 'CadetBlue': '#5F9EA0', 'cornsilk1': '#FFF8DC', 'grey90': '#E5E5E5', 'grey91': '#E8E8E8', 'grey92': '#EBEBEB', 'goldenrod': '#DAA520', 'grey94': '#F0F0F0', 'grey95': '#F2F2F2', 'grey96': '#F5F5F5', 'grey97': '#F7F7F7', 'grey98': '#FAFAFA', 'grey99': '#FCFCFC', 'red3': '#CD0000', 'LightSteelBlue2': '#BCD2EE', 'LightSteelBlue3': '#A2B5CD', 'LightSteelBlue4': '#6E7B8B', 'LightBlue3': '#9AC0CD', 'maroon': '#800000', 'LightSkyBlue': '#87CEFA', 'LightGoldenrodYellow': '#FAFAD2', 'MediumBlue': '#0000CD', 'LightSlateGray': '#778899', 'DarkOrange2': '#EE7600', 'PaleVioletRed': '#DB7093'} diff --git a/share/frontend/imgrid/colors/colors/junk/colorpicker.html b/share/frontend/imgrid/colors/colors/junk/colorpicker.html deleted file mode 100755 index 23993ac..0000000 --- a/share/frontend/imgrid/colors/colors/junk/colorpicker.html +++ /dev/null @@ -1,254 +0,0 @@ - - - - - - -
BLACH BLAH BLAH
- -

hex

-

text

-
CLICK TO SHOW HEXES
-
-
funny
-
happy
-
silly
-
smart
-
click it
- -
click me
-
-
- -
choose between hex or text...
- - - - - diff --git a/share/frontend/imgrid/colors/colors/junk/colorpixx.css b/share/frontend/imgrid/colors/colors/junk/colorpixx.css deleted file mode 100755 index 1ddf557..0000000 --- a/share/frontend/imgrid/colors/colors/junk/colorpixx.css +++ /dev/null @@ -1,2047 +0,0 @@ - -body -{word-wrap: break-word;} - -#main div -{display: -moz-inline-stack; -display:inline-block; -vertical-align:bottom; -min-height: 30px; -min-width:20px; -zoom: 1; -*display: inline;} -} - -#main - { - width:600px; - } -#colornames -{position:fixed; -font-size:50px; -top:50px; -right:50%;} -#d0 -{background-color:#FFFAFA} - -#d1 -{background-color:#FFFAFA} - -#d2 -{background-color:#EEE9E9} - -#d3 -{background-color:#FFC1C1} - -#d4 -{background-color:#EEB4B4} - -#d5 -{background-color:#CDC9C9} - -#d6 -{background-color:#F08080} - -#d7 -{background-color:#FF6A6A} - -#d8 -{background-color:#CD9B9B} - -#d9 -{background-color:#EE6363} - -#d10 -{background-color:#BC8F8F} - -#d11 -{background-color:#FF4040} - -#d12 -{background-color:#FF3030} - -#d13 -{background-color:#EE3B3B} - -#d14 -{background-color:#CD5C5C} - -#d15 -{background-color:#CD5555} - -#d16 -{background-color:#EE2C2C} - -#d17 -{background-color:#8B8989} - -#d18 -{background-color:#CD3333} - -#d19 -{background-color:#FF0000} - -#d20 -{background-color:#FF0000} - -#d21 -{background-color:#8B6969} - -#d22 -{background-color:#CD2626} - -#d23 -{background-color:#EE0000} - -#d24 -{background-color:#B22222} - -#d25 -{background-color:#A52A2A} - -#d26 -{background-color:#CD0000} - -#d27 -{background-color:#8B3A3A} - -#d28 -{background-color:#8B2323} - -#d29 -{background-color:#8B1A1A} - -#d30 -{background-color:#8B0000} - -#d31 -{background-color:#8B0000} - -#d32 -{background-color:#800000} - -#d33 -{background-color:#FFAEB9} - -#d34 -{background-color:#CD8C95} - -#d35 -{background-color:#8B5F65} - -#d36 -{background-color:#EEA2AD} - -#d37 -{background-color:#FFB6C1} - -#d38 -{background-color:#FFC0CB} - -#d39 -{background-color:#DC143C} - -#d40 -{background-color:#FFB5C5} - -#d41 -{background-color:#EEA9B8} - -#d42 -{background-color:#CD919E} - -#d43 -{background-color:#8B636C} - -#d44 -{background-color:#8B475D} - -#d45 -{background-color:#DB7093} - -#d46 -{background-color:#EE799F} - -#d47 -{background-color:#FF82AB} - -#d48 -{background-color:#CD6889} - -#d49 -{background-color:#FFF0F5} - -#d50 -{background-color:#FFF0F5} - -#d51 -{background-color:#CDC1C5} - -#d52 -{background-color:#EEE0E5} - -#d53 -{background-color:#8B8386} - -#d54 -{background-color:#B03060} - -#d55 -{background-color:#CD6090} - -#d56 -{background-color:#CD3278} - -#d57 -{background-color:#FF3E96} - -#d58 -{background-color:#EE3A8C} - -#d59 -{background-color:#8B2252} - -#d60 -{background-color:#EE6AA7} - -#d61 -{background-color:#FF6EB4} - -#d62 -{background-color:#8B3A62} - -#d63 -{background-color:#FF69B4} - -#d64 -{background-color:#FF1493} - -#d65 -{background-color:#FF1493} - -#d66 -{background-color:#EE1289} - -#d67 -{background-color:#CD1076} - -#d68 -{background-color:#8B0A50} - -#d69 -{background-color:#FF34B3} - -#d70 -{background-color:#EE30A7} - -#d71 -{background-color:#CD2990} - -#d72 -{background-color:#8B1C62} - -#d73 -{background-color:#C71585} - -#d74 -{background-color:#D02090} - -#d75 -{background-color:#EE7AE9} - -#d76 -{background-color:#DA70D6} - -#d77 -{background-color:#FF83FA} - -#d78 -{background-color:#CD69C9} - -#d79 -{background-color:#8B4789} - -#d80 -{background-color:#FFE1FF} - -#d81 -{background-color:#EED2EE} - -#d82 -{background-color:#FFBBFF} - -#d83 -{background-color:#EEAEEE} - -#d84 -{background-color:#D8BFD8} - -#d85 -{background-color:#CDB5CD} - -#d86 -{background-color:#DDA0DD} - -#d87 -{background-color:#EE82EE} - -#d88 -{background-color:#CD96CD} - -#d89 -{background-color:#8B7B8B} - -#d90 -{background-color:#FF00FF} - -#d91 -{background-color:#FF00FF} - -#d92 -{background-color:#FF00FF} - -#d93 -{background-color:#8B668B} - -#d94 -{background-color:#EE00EE} - -#d95 -{background-color:#CD00CD} - -#d96 -{background-color:#8B008B} - -#d97 -{background-color:#8B008B} - -#d98 -{background-color:#800080} - -#d99 -{background-color:#BA55D3} - -#d100 -{background-color:#E066FF} - -#d101 -{background-color:#D15FEE} - -#d102 -{background-color:#B452CD} - -#d103 -{background-color:#7A378B} - -#d104 -{background-color:#9400D3} - -#d105 -{background-color:#9932CC} - -#d106 -{background-color:#BF3EFF} - -#d107 -{background-color:#9A32CD} - -#d108 -{background-color:#B23AEE} - -#d109 -{background-color:#68228B} - -#d110 -{background-color:#A020F0} - -#d111 -{background-color:#4B0082} - -#d112 -{background-color:#8A2BE2} - -#d113 -{background-color:#912CEE} - -#d114 -{background-color:#7D26CD} - -#d115 -{background-color:#551A8B} - -#d116 -{background-color:#9B30FF} - -#d117 -{background-color:#9370DB} - -#d118 -{background-color:#AB82FF} - -#d119 -{background-color:#9F79EE} - -#d120 -{background-color:#8968CD} - -#d121 -{background-color:#5D478B} - -#d122 -{background-color:#483D8B} - -#d123 -{background-color:#8470FF} - -#d124 -{background-color:#7B68EE} - -#d125 -{background-color:#6A5ACD} - -#d126 -{background-color:#836FFF} - -#d127 -{background-color:#7A67EE} - -#d128 -{background-color:#6959CD} - -#d129 -{background-color:#473C8B} - -#d130 -{background-color:#F8F8FF} - -#d131 -{background-color:#E6E6FA} - -#d132 -{background-color:#0000FF} - -#d133 -{background-color:#0000FF} - -#d134 -{background-color:#0000EE} - -#d135 -{background-color:#0000CD} - -#d136 -{background-color:#0000CD} - -#d137 -{background-color:#00008B} - -#d138 -{background-color:#00008B} - -#d139 -{background-color:#191970} - -#d140 -{background-color:#000080} - -#d141 -{background-color:#000080} - -#d142 -{background-color:#4169E1} - -#d143 -{background-color:#4876FF} - -#d144 -{background-color:#436EEE} - -#d145 -{background-color:#3A5FCD} - -#d146 -{background-color:#27408B} - -#d147 -{background-color:#6495ED} - -#d148 -{background-color:#B0C4DE} - -#d149 -{background-color:#CAE1FF} - -#d150 -{background-color:#BCD2EE} - -#d151 -{background-color:#A2B5CD} - -#d152 -{background-color:#6E7B8B} - -#d153 -{background-color:#6C7B8B} - -#d154 -{background-color:#C6E2FF} - -#d155 -{background-color:#B9D3EE} - -#d156 -{background-color:#9FB6CD} - -#d157 -{background-color:#778899} - -#d158 -{background-color:#778899} - -#d159 -{background-color:#708090} - -#d160 -{background-color:#708090} - -#d161 -{background-color:#1E90FF} - -#d162 -{background-color:#1E90FF} - -#d163 -{background-color:#1C86EE} - -#d164 -{background-color:#104E8B} - -#d165 -{background-color:#1874CD} - -#d166 -{background-color:#F0F8FF} - -#d167 -{background-color:#36648B} - -#d168 -{background-color:#4682B4} - -#d169 -{background-color:#63B8FF} - -#d170 -{background-color:#5CACEE} - -#d171 -{background-color:#4F94CD} - -#d172 -{background-color:#4A708B} - -#d173 -{background-color:#87CEFF} - -#d174 -{background-color:#7EC0EE} - -#d175 -{background-color:#6CA6CD} - -#d176 -{background-color:#87CEFA} - -#d177 -{background-color:#607B8B} - -#d178 -{background-color:#B0E2FF} - -#d179 -{background-color:#A4D3EE} - -#d180 -{background-color:#8DB6CD} - -#d181 -{background-color:#87CEEB} - -#d182 -{background-color:#9AC0CD} - -#d183 -{background-color:#00BFFF} - -#d184 -{background-color:#00BFFF} - -#d185 -{background-color:#00B2EE} - -#d186 -{background-color:#00688B} - -#d187 -{background-color:#009ACD} - -#d188 -{background-color:#BFEFFF} - -#d189 -{background-color:#B2DFEE} - -#d190 -{background-color:#ADD8E6} - -#d191 -{background-color:#68838B} - -#d192 -{background-color:#B0E0E6} - -#d193 -{background-color:#98F5FF} - -#d194 -{background-color:#8EE5EE} - -#d195 -{background-color:#7AC5CD} - -#d196 -{background-color:#53868B} - -#d197 -{background-color:#00F5FF} - -#d198 -{background-color:#00E5EE} - -#d199 -{background-color:#00C5CD} - -#d200 -{background-color:#00868B} - -#d201 -{background-color:#5F9EA0} - -#d202 -{background-color:#5F9EA0} - -#d203 -{background-color:#00CED1} - -#d204 -{background-color:#F0FFFF} - -#d205 -{background-color:#F0FFFF} - -#d206 -{background-color:#E0FFFF} - -#d207 -{background-color:#E0FFFF} - -#d208 -{background-color:#E0EEEE} - -#d209 -{background-color:#D1EEEE} - -#d210 -{background-color:#BBFFFF} - -#d211 -{background-color:#AFEEEE} - -#d212 -{background-color:#AEEEEE} - -#d213 -{background-color:#97FFFF} - -#d214 -{background-color:#C1CDCD} - -#d215 -{background-color:#B4CDCD} - -#d216 -{background-color:#8DEEEE} - -#d217 -{background-color:#96CDCD} - -#d218 -{background-color:#79CDCD} - -#d219 -{background-color:#838B8B} - -#d220 -{background-color:#7A8B8B} - -#d221 -{background-color:#00FFFF} - -#d222 -{background-color:#00FFFF} - -#d223 -{background-color:#00FFFF} - -#d224 -{background-color:#668B8B} - -#d225 -{background-color:#00EEEE} - -#d226 -{background-color:#528B8B} - -#d227 -{background-color:#00CDCD} - -#d228 -{background-color:#008B8B} - -#d229 -{background-color:#008B8B} - -#d230 -{background-color:#008080} - -#d231 -{background-color:#2F4F4F} - -#d232 -{background-color:#2F4F4F} - -#d233 -{background-color:#48D1CC} - -#d234 -{background-color:#20B2AA} - -#d235 -{background-color:#40E0D0} - -#d236 -{background-color:#458B74} - -#d237 -{background-color:#7FFFD4} - -#d238 -{background-color:#7FFFD4} - -#d239 -{background-color:#76EEC6} - -#d240 -{background-color:#66CDAA} - -#d241 -{background-color:#66CDAA} - -#d242 -{background-color:#00FA9A} - -#d243 -{background-color:#F5FFFA} - -#d244 -{background-color:#00FF7F} - -#d245 -{background-color:#00FF7F} - -#d246 -{background-color:#00EE76} - -#d247 -{background-color:#00CD66} - -#d248 -{background-color:#008B45} - -#d249 -{background-color:#3CB371} - -#d250 -{background-color:#2E8B57} - -#d251 -{background-color:#43CD80} - -#d252 -{background-color:#54FF9F} - -#d253 -{background-color:#2E8B57} - -#d254 -{background-color:#4EEE94} - -#d255 -{background-color:#32814B} - -#d256 -{background-color:#F0FFF0} - -#d257 -{background-color:#F0FFF0} - -#d258 -{background-color:#E0EEE0} - -#d259 -{background-color:#C1FFC1} - -#d260 -{background-color:#B4EEB4} - -#d261 -{background-color:#9AFF9A} - -#d262 -{background-color:#98FB98} - -#d263 -{background-color:#C1CDC1} - -#d264 -{background-color:#90EE90} - -#d265 -{background-color:#90EE90} - -#d266 -{background-color:#9BCD9B} - -#d267 -{background-color:#8FBC8F} - -#d268 -{background-color:#7CCD7C} - -#d269 -{background-color:#838B83} - -#d270 -{background-color:#00FF00} - -#d271 -{background-color:#00FF00} - -#d272 -{background-color:#32CD32} - -#d273 -{background-color:#698B69} - -#d274 -{background-color:#00EE00} - -#d275 -{background-color:#548B54} - -#d276 -{background-color:#00CD00} - -#d277 -{background-color:#228B22} - -#d278 -{background-color:#008B00} - -#d279 -{background-color:#008000} - -#d280 -{background-color:#006400} - -#d281 -{background-color:#7CFC00} - -#d282 -{background-color:#7FFF00} - -#d283 -{background-color:#7FFF00} - -#d284 -{background-color:#76EE00} - -#d285 -{background-color:#66CD00} - -#d286 -{background-color:#458B00} - -#d287 -{background-color:#ADFF2F} - -#d288 -{background-color:#A2CD5A} - -#d289 -{background-color:#CAFF70} - -#d290 -{background-color:#BCEE68} - -#d291 -{background-color:#6E8B3D} - -#d292 -{background-color:#556B2F} - -#d293 -{background-color:#6B8E23} - -#d294 -{background-color:#C0FF3E} - -#d295 -{background-color:#B3EE3A} - -#d296 -{background-color:#9ACD32} - -#d297 -{background-color:#9ACD32} - -#d298 -{background-color:#698B22} - -#d299 -{background-color:#FFFFF0} - -#d300 -{background-color:#FFFFF0} - -#d301 -{background-color:#FFFFE0} - -#d302 -{background-color:#FFFFE0} - -#d303 -{background-color:#F5F5DC} - -#d304 -{background-color:#EEEEE0} - -#d305 -{background-color:#FAFAD2} - -#d306 -{background-color:#EEEED1} - -#d307 -{background-color:#CDCDC1} - -#d308 -{background-color:#CDCDB4} - -#d309 -{background-color:#8B8B83} - -#d310 -{background-color:#8B8B7A} - -#d311 -{background-color:#FFFF00} - -#d312 -{background-color:#FFFF00} - -#d313 -{background-color:#EEEE00} - -#d314 -{background-color:#CDCD00} - -#d315 -{background-color:#8B8B00} - -#d316 -{background-color:#808000} - -#d317 -{background-color:#BDB76B} - -#d318 -{background-color:#EEE685} - -#d319 -{background-color:#8B8970} - -#d320 -{background-color:#FFF68F} - -#d321 -{background-color:#CDC673} - -#d322 -{background-color:#8B864E} - -#d323 -{background-color:#EEE8AA} - -#d324 -{background-color:#FFFACD} - -#d325 -{background-color:#FFFACD} - -#d326 -{background-color:#F0E68C} - -#d327 -{background-color:#CDC9A5} - -#d328 -{background-color:#EEE9BF} - -#d329 -{background-color:#D1C166} - -#d330 -{background-color:#8B8878} - -#d331 -{background-color:#FFD700} - -#d332 -{background-color:#FFD700} - -#d333 -{background-color:#EEC900} - -#d334 -{background-color:#CDAD00} - -#d335 -{background-color:#8B7500} - -#d336 -{background-color:#EEDD82} - -#d337 -{background-color:#8B814C} - -#d338 -{background-color:#FFEC8B} - -#d339 -{background-color:#CDBE70} - -#d340 -{background-color:#EEDC82} - -#d341 -{background-color:#CDC8B1} - -#d342 -{background-color:#EEE8CD} - -#d343 -{background-color:#FFF8DC} - -#d344 -{background-color:#FFF8DC} - -#d345 -{background-color:#DAA520} - -#d346 -{background-color:#FFC125} - -#d347 -{background-color:#EEB422} - -#d348 -{background-color:#CD9B1D} - -#d349 -{background-color:#8B6914} - -#d350 -{background-color:#B8860B} - -#d351 -{background-color:#FFB90F} - -#d352 -{background-color:#EEAD0E} - -#d353 -{background-color:#CD950C} - -#d354 -{background-color:#8B6508} - -#d355 -{background-color:#FFFAF0} - -#d356 -{background-color:#EED8AE} - -#d357 -{background-color:#FDF5E6} - -#d358 -{background-color:#F5DEB3} - -#d359 -{background-color:#FFE7BA} - -#d360 -{background-color:#CDBA96} - -#d361 -{background-color:#FFA500} - -#d362 -{background-color:#FFA500} - -#d363 -{background-color:#EE9A00} - -#d364 -{background-color:#CD8500} - -#d365 -{background-color:#8B5A00} - -#d366 -{background-color:#8B7E66} - -#d367 -{background-color:#FFE4B5} - -#d368 -{background-color:#FFEFD5} - -#d369 -{background-color:#CDB38B} - -#d370 -{background-color:#FFEBCD} - -#d371 -{background-color:#FFDEAD} - -#d372 -{background-color:#FFDEAD} - -#d373 -{background-color:#EECFA1} - -#d374 -{background-color:#8B795E} - -#d375 -{background-color:#8B8378} - -#d376 -{background-color:#FAEBD7} - -#d377 -{background-color:#D2B48C} - -#d378 -{background-color:#8B7D6B} - -#d379 -{background-color:#DEB887} - -#d380 -{background-color:#EEDFCC} - -#d381 -{background-color:#FFD39B} - -#d382 -{background-color:#CDAA7D} - -#d383 -{background-color:#EEC591} - -#d384 -{background-color:#FFEFDB} - -#d385 -{background-color:#8B7355} - -#d386 -{background-color:#CDC0B0} - -#d387 -{background-color:#FF8C00} - -#d388 -{background-color:#EED5B7} - -#d389 -{background-color:#FFE4C4} - -#d390 -{background-color:#FFE4C4} - -#d391 -{background-color:#CDB79E} - -#d392 -{background-color:#FF7F00} - -#d393 -{background-color:#FAF0E6} - -#d394 -{background-color:#EE7600} - -#d395 -{background-color:#CD6600} - -#d396 -{background-color:#8B4500} - -#d397 -{background-color:#CD853F} - -#d398 -{background-color:#FFA54F} - -#d399 -{background-color:#EE9A49} - -#d400 -{background-color:#CD853F} - -#d401 -{background-color:#8B5A2B} - -#d402 -{background-color:#FFDAB9} - -#d403 -{background-color:#FFDAB9} - -#d404 -{background-color:#8B7765} - -#d405 -{background-color:#EECBAD} - -#d406 -{background-color:#CDAF95} - -#d407 -{background-color:#F4A460} - -#d408 -{background-color:#8B8682} - -#d409 -{background-color:#EEE5DE} - -#d410 -{background-color:#CDC5BF} - -#d411 -{background-color:#D2691E} - -#d412 -{background-color:#FF7F24} - -#d413 -{background-color:#EE7621} - -#d414 -{background-color:#CD661D} - -#d415 -{background-color:#8B4513} - -#d416 -{background-color:#8B4513} - -#d417 -{background-color:#FFF5EE} - -#d418 -{background-color:#FFF5EE} - -#d419 -{background-color:#8B4726} - -#d420 -{background-color:#A0522D} - -#d421 -{background-color:#FF8247} - -#d422 -{background-color:#EE7942} - -#d423 -{background-color:#CD6839} - -#d424 -{background-color:#CD8162} - -#d425 -{background-color:#FFA07A} - -#d426 -{background-color:#FFA07A} - -#d427 -{background-color:#8B5742} - -#d428 -{background-color:#EE9572} - -#d429 -{background-color:#FF7F50} - -#d430 -{background-color:#FF4500} - -#d431 -{background-color:#FF4500} - -#d432 -{background-color:#EE4000} - -#d433 -{background-color:#CD3700} - -#d434 -{background-color:#8B2500} - -#d435 -{background-color:#E9967A} - -#d436 -{background-color:#FF8C69} - -#d437 -{background-color:#EE8262} - -#d438 -{background-color:#CD7054} - -#d439 -{background-color:#8B4C39} - -#d440 -{background-color:#FF7256} - -#d441 -{background-color:#EE6A50} - -#d442 -{background-color:#CD5B45} - -#d443 -{background-color:#8B3E2F} - -#d444 -{background-color:#8B3626} - -#d445 -{background-color:#FF6347} - -#d446 -{background-color:#FF6347} - -#d447 -{background-color:#EE5C42} - -#d448 -{background-color:#CD4F39} - -#d449 -{background-color:#8B7D7B} - -#d450 -{background-color:#EED5D2} - -#d451 -{background-color:#FFE4E1} - -#d452 -{background-color:#FFE4E1} - -#d453 -{background-color:#FA8072} - -#d454 -{background-color:#CDB7B5} - -#d455 -{background-color:#FFFFFF} - -#d456 -{background-color:#FFFFFF} - -#d457 -{background-color:#FFFFFF} - -#d458 -{background-color:#FFFFFF} - -#d459 -{background-color:#FCFCFC} - -#d460 -{background-color:#FCFCFC} - -#d461 -{background-color:#FAFAFA} - -#d462 -{background-color:#FAFAFA} - -#d463 -{background-color:#F7F7F7} - -#d464 -{background-color:#F7F7F7} - -#d465 -{background-color:#F5F5F5} - -#d466 -{background-color:#F5F5F5} - -#d467 -{background-color:#F5F5F5} - -#d468 -{background-color:#F2F2F2} - -#d469 -{background-color:#F2F2F2} - -#d470 -{background-color:#F0F0F0} - -#d471 -{background-color:#F0F0F0} - -#d472 -{background-color:#EDEDED} - -#d473 -{background-color:#EDEDED} - -#d474 -{background-color:#EBEBEB} - -#d475 -{background-color:#EBEBEB} - -#d476 -{background-color:#E8E8E8} - -#d477 -{background-color:#E8E8E8} - -#d478 -{background-color:#E5E5E5} - -#d479 -{background-color:#E5E5E5} - -#d480 -{background-color:#E3E3E3} - -#d481 -{background-color:#E3E3E3} - -#d482 -{background-color:#E0E0E0} - -#d483 -{background-color:#E0E0E0} - -#d484 -{background-color:#DEDEDE} - -#d485 -{background-color:#DEDEDE} - -#d486 -{background-color:#DCDCDC} - -#d487 -{background-color:#DBDBDB} - -#d488 -{background-color:#DBDBDB} - -#d489 -{background-color:#D9D9D9} - -#d490 -{background-color:#D9D9D9} - -#d491 -{background-color:#D6D6D6} - -#d492 -{background-color:#D6D6D6} - -#d493 -{background-color:#D4D4D4} - -#d494 -{background-color:#D4D4D4} - -#d495 -{background-color:#D3D3D3} - -#d496 -{background-color:#D3D3D3} - -#d497 -{background-color:#D1D1D1} - -#d498 -{background-color:#D1D1D1} - -#d499 -{background-color:#CFCFCF} - -#d500 -{background-color:#CFCFCF} - -#d501 -{background-color:#CCCCCC} - -#d502 -{background-color:#CCCCCC} - -#d503 -{background-color:#C9C9C9} - -#d504 -{background-color:#C9C9C9} - -#d505 -{background-color:#C7C7C7} - -#d506 -{background-color:#C7C7C7} - -#d507 -{background-color:#C4C4C4} - -#d508 -{background-color:#C4C4C4} - -#d509 -{background-color:#C2C2C2} - -#d510 -{background-color:#C2C2C2} - -#d511 -{background-color:#C0C0C0} - -#d512 -{background-color:#BFBFBF} - -#d513 -{background-color:#BFBFBF} - -#d514 -{background-color:#BDBDBD} - -#d515 -{background-color:#BDBDBD} - -#d516 -{background-color:#BABABA} - -#d517 -{background-color:#BABABA} - -#d518 -{background-color:#B8B8B8} - -#d519 -{background-color:#B8B8B8} - -#d520 -{background-color:#B5B5B5} - -#d521 -{background-color:#B5B5B5} - -#d522 -{background-color:#B3B3B3} - -#d523 -{background-color:#B3B3B3} - -#d524 -{background-color:#B0B0B0} - -#d525 -{background-color:#B0B0B0} - -#d526 -{background-color:#ADADAD} - -#d527 -{background-color:#ADADAD} - -#d528 -{background-color:#ABABAB} - -#d529 -{background-color:#ABABAB} - -#d530 -{background-color:#A9A9A9} - -#d531 -{background-color:#A9A9A9} - -#d532 -{background-color:#A8A8A8} - -#d533 -{background-color:#A8A8A8} - -#d534 -{background-color:#A6A6A6} - -#d535 -{background-color:#A6A6A6} - -#d536 -{background-color:#A3A3A3} - -#d537 -{background-color:#A3A3A3} - -#d538 -{background-color:#A1A1A1} - -#d539 -{background-color:#A1A1A1} - -#d540 -{background-color:#9E9E9E} - -#d541 -{background-color:#9E9E9E} - -#d542 -{background-color:#9C9C9C} - -#d543 -{background-color:#9C9C9C} - -#d544 -{background-color:#999999} - -#d545 -{background-color:#999999} - -#d546 -{background-color:#969696} - -#d547 -{background-color:#969696} - -#d548 -{background-color:#949494} - -#d549 -{background-color:#949494} - -#d550 -{background-color:#919191} - -#d551 -{background-color:#919191} - -#d552 -{background-color:#8F8F8F} - -#d553 -{background-color:#8F8F8F} - -#d554 -{background-color:#8C8C8C} - -#d555 -{background-color:#8C8C8C} - -#d556 -{background-color:#8A8A8A} - -#d557 -{background-color:#8A8A8A} - -#d558 -{background-color:#878787} - -#d559 -{background-color:#878787} - -#d560 -{background-color:#858585} - -#d561 -{background-color:#858585} - -#d562 -{background-color:#828282} - -#d563 -{background-color:#828282} - -#d564 -{background-color:#808080} - -#d565 -{background-color:#7F7F7F} - -#d566 -{background-color:#7F7F7F} - -#d567 -{background-color:#7E7E7E} - -#d568 -{background-color:#7D7D7D} - -#d569 -{background-color:#7D7D7D} - -#d570 -{background-color:#7A7A7A} - -#d571 -{background-color:#7A7A7A} - -#d572 -{background-color:#787878} - -#d573 -{background-color:#787878} - -#d574 -{background-color:#757575} - -#d575 -{background-color:#757575} - -#d576 -{background-color:#737373} - -#d577 -{background-color:#737373} - -#d578 -{background-color:#707070} - -#d579 -{background-color:#707070} - -#d580 -{background-color:#6E6E6E} - -#d581 -{background-color:#6E6E6E} - -#d582 -{background-color:#6B6B6B} - -#d583 -{background-color:#6B6B6B} - -#d584 -{background-color:#696969} - -#d585 -{background-color:#696969} - -#d586 -{background-color:#696969} - -#d587 -{background-color:#696969} - -#d588 -{background-color:#666666} - -#d589 -{background-color:#666666} - -#d590 -{background-color:#636363} - -#d591 -{background-color:#636363} - -#d592 -{background-color:#616161} - -#d593 -{background-color:#616161} - -#d594 -{background-color:#5E5E5E} - -#d595 -{background-color:#5E5E5E} - -#d596 -{background-color:#5C5C5C} - -#d597 -{background-color:#5C5C5C} - -#d598 -{background-color:#595959} - -#d599 -{background-color:#595959} - -#d600 -{background-color:#575757} - -#d601 -{background-color:#575757} - -#d602 -{background-color:#545454} - -#d603 -{background-color:#545454} - -#d604 -{background-color:#525252} - -#d605 -{background-color:#525252} - -#d606 -{background-color:#4F4F4F} - -#d607 -{background-color:#4F4F4F} - -#d608 -{background-color:#4D4D4D} - -#d609 -{background-color:#4D4D4D} - -#d610 -{background-color:#4A4A4A} - -#d611 -{background-color:#4A4A4A} - -#d612 -{background-color:#474747} - -#d613 -{background-color:#474747} - -#d614 -{background-color:#454545} - -#d615 -{background-color:#454545} - -#d616 -{background-color:#424242} - -#d617 -{background-color:#424242} - -#d618 -{background-color:#404040} - -#d619 -{background-color:#404040} - -#d620 -{background-color:#3D3D3D} - -#d621 -{background-color:#3D3D3D} - -#d622 -{background-color:#3B3B3B} - -#d623 -{background-color:#3B3B3B} - -#d624 -{background-color:#383838} - -#d625 -{background-color:#383838} - -#d626 -{background-color:#363636} - -#d627 -{background-color:#363636} - -#d628 -{background-color:#333333} - -#d629 -{background-color:#333333} - -#d630 -{background-color:#303030} - -#d631 -{background-color:#303030} - -#d632 -{background-color:#2E2E2E} - -#d633 -{background-color:#2E2E2E} - -#d634 -{background-color:#2B2B2B} - -#d635 -{background-color:#2B2B2B} - -#d636 -{background-color:#292929} - -#d637 -{background-color:#292929} - -#d638 -{background-color:#262626} - -#d639 -{background-color:#262626} - -#d640 -{background-color:#242424} - -#d641 -{background-color:#242424} - -#d642 -{background-color:#212121} - -#d643 -{background-color:#212121} - -#d644 -{background-color:#1F1F1F} - -#d645 -{background-color:#1F1F1F} - -#d646 -{background-color:#1C1C1C} - -#d647 -{background-color:#1C1C1C} - -#d648 -{background-color:#1A1A1A} - -#d649 -{background-color:#1A1A1A} - -#d650 -{background-color:#171717} - -#d651 -{background-color:#171717} - -#d652 -{background-color:#141414} - -#d653 -{background-color:#141414} - -#d654 -{background-color:#121212} - -#d655 -{background-color:#121212} - -#d656 -{background-color:#0F0F0F} - -#d657 -{background-color:#0F0F0F} - -#d658 -{background-color:#0D0D0D} - -#d659 -{background-color:#0D0D0D} - -#d660 -{background-color:#0A0A0A} - -#d661 -{background-color:#0A0A0A} - -#d662 -{background-color:#080808} - -#d663 -{background-color:#080808} - -#d664 -{background-color:#050505} - -#d665 -{background-color:#050505} - -#d666 -{background-color:#030303} - -#d667 -{background-color:#030303} - -#d668 -{background-color:#000000} - -#d669 -{background-color:#000000} - -#d670 -{background-color:#000000} - -#d671 -{background-color:#000000} - -#d672 -{background-color:#000000} - -#d673 -{background-color:#000000} -.colors -{height:30px; -width:10px;} diff --git a/share/frontend/imgrid/colors/colors/junk/colorpixx.js b/share/frontend/imgrid/colors/colors/junk/colorpixx.js deleted file mode 100755 index 4b42e4d..0000000 --- a/share/frontend/imgrid/colors/colors/junk/colorpixx.js +++ /dev/null @@ -1,92 +0,0 @@ -function goldenize(num) - { - ratio = (1+Math.sqrt(5))/2 - newnum = Math.round(num*ratio) - return newnum - } -//turns css property width or height into an integer value -function getproperty(idandselectr, propertystr) - { - grab = $(idandselectr).css(propertystr) - grab = grab.slice(0,-2) - numval = parseInt(grab) - return numval - } -function makegolden(idandselectr, propertystr) - { - result = getproperty(idandselectr, propertystr) - newwidth = goldenize(result) - widthval = newwidth.toString()+'px' - $(idandselectr).css('width', widthval) - } -makegolden('.colors', 'height') -//remove content this function takes the name out of the divs - -function removecontent() - { - $('.colors').html("") - } -removecontent() - -function colorToHex(color) { - if (color.substr(0, 1) === '#') { - return color; - } - var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color); - - var red = parseInt(digits[2]); - var green = parseInt(digits[3]); - var blue = parseInt(digits[4]); - - var rgb = blue | (green << 8) | (red << 16); - return digits[1] + '#' + rgb.toString(16); -}; - -//takes a div name and returns a colorname - -function showcolorname(divstr) - - { - - bgcolor = $('#'+divstr).css('background-color') - lowercasehex = colorToHex(bgcolor) - hex = lowercasehex.toUpperCase() - imname = hextoname[hex] -/* if ($('#hexortext:checked').length == 1) - { - imname = hex - }*/ - return imname - } -function bigname(divstr) - { - bebop = showcolorname(divstr) -// $('#colornames').html(bebop) - } -function writeit(text) - { -// $('#colornames').append(text) - } -function makebig(divstr) - { - firstheight = $('#'+divstr).height() - newheight = goldenize(firstheight) - $('#'+divstr).height(newheight) -// $('#colornames').append(firstheight) - } -function makesmall(divstr) - { - oldheight = $('.colors').height() - $('#'+divstr).height(oldheight) - } -$('.colors').hover(function() { - bigname(this.id); - makebig(this.id); - makegolden('#'+this.id, 'height')}, -function(){ - makesmall(this.id); - makegolden('#'+this.id, 'height') -}); -$('#colornames').html("") -$("#popupContact").css('background-color', 'black') -$('.colors').css('margin-top', '2px') diff --git a/share/frontend/imgrid/colors/colors/junk/colors.html b/share/frontend/imgrid/colors/colors/junk/colors.html deleted file mode 100755 index 0ef22f9..0000000 --- a/share/frontend/imgrid/colors/colors/junk/colors.html +++ /dev/null @@ -1,5429 +0,0 @@ - - - - - - - - -
-

List of Color Names

-
- -

a list of named colors for use with PHOTOBLASTER:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameColorRGBHex
snowsnowrgb(255, 250, 250)#FFFAFA
snow1snow1rgb(255, 250, 250)#FFFAFA
snow2snow2rgb(238, 233, 233)#EEE9E9
RosyBrown1RosyBrown1rgb(255, 193, 193)#FFC1C1
RosyBrown2RosyBrown2rgb(238, 180, 180)#EEB4B4
snow3snow3rgb(205, 201, 201)#CDC9C9
LightCoralLightCoralrgb(240, 128, 128)#F08080
IndianRed1IndianRed1rgb(255, 106, 106)#FF6A6A
RosyBrown3RosyBrown3rgb(205, 155, 155)#CD9B9B
IndianRed2IndianRed2rgb(238, 99, 99)#EE6363
RosyBrownRosyBrownrgb(188, 143, 143)#BC8F8F
brown1brown1rgb(255, 64, 64)#FF4040
firebrick1firebrick1rgb(255, 48, 48)#FF3030
brown2brown2rgb(238, 59, 59)#EE3B3B
IndianRedIndianRedrgb(205, 92, 92)#CD5C5C
IndianRed3IndianRed3rgb(205, 85, 85)#CD5555
firebrick2firebrick2rgb(238, 44, 44)#EE2C2C
snow4snow4rgb(139, 137, 137)#8B8989
brown3brown3rgb(205, 51, 51)#CD3333
redredrgb(255, 0, 0)#FF0000
red1red1rgb(255, 0, 0)#FF0000
RosyBrown4RosyBrown4rgb(139, 105, 105)#8B6969
firebrick3firebrick3rgb(205, 38, 38)#CD2626
red2red2rgb(238, 0, 0)#EE0000
firebrickfirebrickrgb(178, 34, 34)#B22222
brownbrownrgb(165, 42, 42)#A52A2A
red3red3rgb(205, 0, 0)#CD0000
IndianRed4IndianRed4rgb(139, 58, 58)#8B3A3A
brown4brown4rgb(139, 35, 35)#8B2323
firebrick4firebrick4rgb(139, 26, 26)#8B1A1A
DarkRedDarkRedrgb(139, 0, 0)#8B0000
red4red4rgb(139, 0, 0)#8B0000
maroonmaroonrgb(128, 0, 0)#800000
LightPink1LightPink1rgb(255, 174, 185)#FFAEB9
LightPink3LightPink3rgb(205, 140, 149)#CD8C95
LightPink4LightPink4rgb(139, 95, 101)#8B5F65
LightPink2LightPink2rgb(238, 162, 173)#EEA2AD
LightPinkLightPinkrgb(255, 182, 193)#FFB6C1
pinkpinkrgb(255, 192, 203)#FFC0CB
crimsoncrimsonrgb(220, 20, 60)#DC143C
pink1pink1rgb(255, 181, 197)#FFB5C5
pink2pink2rgb(238, 169, 184)#EEA9B8
pink3pink3rgb(205, 145, 158)#CD919E
pink4pink4rgb(139, 99, 108)#8B636C
PaleVioletRed4PaleVioletRed4rgb(139, 71, 93)#8B475D
PaleVioletRedPaleVioletRedrgb(219, 112, 147)#DB7093
PaleVioletRed2PaleVioletRed2rgb(238, 121, 159)#EE799F
PaleVioletRed1PaleVioletRed1rgb(255, 130, 171)#FF82AB
PaleVioletRed3PaleVioletRed3rgb(205, 104, 137)#CD6889
LavenderBlushLavenderBlushrgb(255, 240, 245)#FFF0F5
LavenderBlush1LavenderBlush1rgb(255, 240, 245)#FFF0F5
LavenderBlush3LavenderBlush3rgb(205, 193, 197)#CDC1C5
LavenderBlush2LavenderBlush2rgb(238, 224, 229)#EEE0E5
LavenderBlush4LavenderBlush4rgb(139, 131, 134)#8B8386
maroonmaroonrgb(176, 48, 96)#B03060
HotPink3HotPink3rgb(205, 96, 144)#CD6090
VioletRed3VioletRed3rgb(205, 50, 120)#CD3278
VioletRed1VioletRed1rgb(255, 62, 150)#FF3E96
VioletRed2VioletRed2rgb(238, 58, 140)#EE3A8C
VioletRed4VioletRed4rgb(139, 34, 82)#8B2252
HotPink2HotPink2rgb(238, 106, 167)#EE6AA7
HotPink1HotPink1rgb(255, 110, 180)#FF6EB4
HotPink4HotPink4rgb(139, 58, 98)#8B3A62
HotPinkHotPinkrgb(255, 105, 180)#FF69B4
DeepPinkDeepPinkrgb(255, 20, 147)#FF1493
DeepPink1DeepPink1rgb(255, 20, 147)#FF1493
DeepPink2DeepPink2rgb(238, 18, 137)#EE1289
DeepPink3DeepPink3rgb(205, 16, 118)#CD1076
DeepPink4DeepPink4rgb(139, 10, 80)#8B0A50
maroon1maroon1rgb(255, 52, 179)#FF34B3
maroon2maroon2rgb(238, 48, 167)#EE30A7
maroon3maroon3rgb(205, 41, 144)#CD2990
maroon4maroon4rgb(139, 28, 98)#8B1C62
MediumVioletRedMediumVioletRedrgb(199, 21, 133)#C71585
VioletRedVioletRedrgb(208, 32, 144)#D02090
orchid2orchid2rgb(238, 122, 233)#EE7AE9
orchidorchidrgb(218, 112, 214)#DA70D6
orchid1orchid1rgb(255, 131, 250)#FF83FA
orchid3orchid3rgb(205, 105, 201)#CD69C9
orchid4orchid4rgb(139, 71, 137)#8B4789
thistle1thistle1rgb(255, 225, 255)#FFE1FF
thistle2thistle2rgb(238, 210, 238)#EED2EE
plum1plum1rgb(255, 187, 255)#FFBBFF
plum2plum2rgb(238, 174, 238)#EEAEEE
thistlethistlergb(216, 191, 216)#D8BFD8
thistle3thistle3rgb(205, 181, 205)#CDB5CD
plumplumrgb(221, 160, 221)#DDA0DD
violetvioletrgb(238, 130, 238)#EE82EE
plum3plum3rgb(205, 150, 205)#CD96CD
thistle4thistle4rgb(139, 123, 139)#8B7B8B
fuchsiafuchsiargb(255, 0, 255)#FF00FF
magentamagentargb(255, 0, 255)#FF00FF
magenta1magenta1rgb(255, 0, 255)#FF00FF
plum4plum4rgb(139, 102, 139)#8B668B
magenta2magenta2rgb(238, 0, 238)#EE00EE
magenta3magenta3rgb(205, 0, 205)#CD00CD
DarkMagentaDarkMagentargb(139, 0, 139)#8B008B
magenta4magenta4rgb(139, 0, 139)#8B008B
purplepurplergb(128, 0, 128)#800080
MediumOrchidMediumOrchidrgb(186, 85, 211)#BA55D3
MediumOrchid1MediumOrchid1rgb(224, 102, 255)#E066FF
MediumOrchid2MediumOrchid2rgb(209, 95, 238)#D15FEE
MediumOrchid3MediumOrchid3rgb(180, 82, 205)#B452CD
MediumOrchid4MediumOrchid4rgb(122, 55, 139)#7A378B
DarkVioletDarkVioletrgb(148, 0, 211)#9400D3
DarkOrchidDarkOrchidrgb(153, 50, 204)#9932CC
DarkOrchid1DarkOrchid1rgb(191, 62, 255)#BF3EFF
DarkOrchid3DarkOrchid3rgb(154, 50, 205)#9A32CD
DarkOrchid2DarkOrchid2rgb(178, 58, 238)#B23AEE
DarkOrchid4DarkOrchid4rgb(104, 34, 139)#68228B
purplepurplergb(160, 32, 240)#A020F0
indigoindigorgb( 75, 0, 130)#4B0082
BlueVioletBlueVioletrgb(138, 43, 226)#8A2BE2
purple2purple2rgb(145, 44, 238)#912CEE
purple3purple3rgb(125, 38, 205)#7D26CD
purple4purple4rgb( 85, 26, 139)#551A8B
purple1purple1rgb(155, 48, 255)#9B30FF
MediumPurpleMediumPurplergb(147, 112, 219)#9370DB
MediumPurple1MediumPurple1rgb(171, 130, 255)#AB82FF
MediumPurple2MediumPurple2rgb(159, 121, 238)#9F79EE
MediumPurple3MediumPurple3rgb(137, 104, 205)#8968CD
MediumPurple4MediumPurple4rgb( 93, 71, 139)#5D478B
DarkSlateBlueDarkSlateBluergb( 72, 61, 139)#483D8B
LightSlateBlueLightSlateBluergb(132, 112, 255)#8470FF
MediumSlateBlueMediumSlateBluergb(123, 104, 238)#7B68EE
SlateBlueSlateBluergb(106, 90, 205)#6A5ACD
SlateBlue1SlateBlue1rgb(131, 111, 255)#836FFF
SlateBlue2SlateBlue2rgb(122, 103, 238)#7A67EE
SlateBlue3SlateBlue3rgb(105, 89, 205)#6959CD
SlateBlue4SlateBlue4rgb( 71, 60, 139)#473C8B
GhostWhiteGhostWhitergb(248, 248, 255)#F8F8FF
lavenderlavenderrgb(230, 230, 250)#E6E6FA
bluebluergb( 0, 0, 255)#0000FF
blue1blue1rgb( 0, 0, 255)#0000FF
blue2blue2rgb( 0, 0, 238)#0000EE
blue3blue3rgb( 0, 0, 205)#0000CD
MediumBlueMediumBluergb( 0, 0, 205)#0000CD
blue4blue4rgb( 0, 0, 139)#00008B
DarkBlueDarkBluergb( 0, 0, 139)#00008B
MidnightBlueMidnightBluergb( 25, 25, 112)#191970
navynavyrgb( 0, 0, 128)#000080
NavyBlueNavyBluergb( 0, 0, 128)#000080
RoyalBlueRoyalBluergb( 65, 105, 225)#4169E1
RoyalBlue1RoyalBlue1rgb( 72, 118, 255)#4876FF
RoyalBlue2RoyalBlue2rgb( 67, 110, 238)#436EEE
RoyalBlue3RoyalBlue3rgb( 58, 95, 205)#3A5FCD
RoyalBlue4RoyalBlue4rgb( 39, 64, 139)#27408B
CornflowerBlueCornflowerBluergb(100, 149, 237)#6495ED
LightSteelBlueLightSteelBluergb(176, 196, 222)#B0C4DE
LightSteelBlue1LightSteelBlue1rgb(202, 225, 255)#CAE1FF
LightSteelBlue2LightSteelBlue2rgb(188, 210, 238)#BCD2EE
LightSteelBlue3LightSteelBlue3rgb(162, 181, 205)#A2B5CD
LightSteelBlue4LightSteelBlue4rgb(110, 123, 139)#6E7B8B
SlateGray4SlateGray4rgb(108, 123, 139)#6C7B8B
SlateGray1SlateGray1rgb(198, 226, 255)#C6E2FF
SlateGray2SlateGray2rgb(185, 211, 238)#B9D3EE
SlateGray3SlateGray3rgb(159, 182, 205)#9FB6CD
LightSlateGrayLightSlateGrayrgb(119, 136, 153)#778899
LightSlateGreyLightSlateGreyrgb(119, 136, 153)#778899
SlateGraySlateGrayrgb(112, 128, 144)#708090
SlateGreySlateGreyrgb(112, 128, 144)#708090
DodgerBlueDodgerBluergb( 30, 144, 255)#1E90FF
DodgerBlue1DodgerBlue1rgb( 30, 144, 255)#1E90FF
DodgerBlue2DodgerBlue2rgb( 28, 134, 238)#1C86EE
DodgerBlue4DodgerBlue4rgb( 16, 78, 139)#104E8B
DodgerBlue3DodgerBlue3rgb( 24, 116, 205)#1874CD
AliceBlueAliceBluergb(240, 248, 255)#F0F8FF
SteelBlue4SteelBlue4rgb( 54, 100, 139)#36648B
SteelBlueSteelBluergb( 70, 130, 180)#4682B4
SteelBlue1SteelBlue1rgb( 99, 184, 255)#63B8FF
SteelBlue2SteelBlue2rgb( 92, 172, 238)#5CACEE
SteelBlue3SteelBlue3rgb( 79, 148, 205)#4F94CD
SkyBlue4SkyBlue4rgb( 74, 112, 139)#4A708B
SkyBlue1SkyBlue1rgb(135, 206, 255)#87CEFF
SkyBlue2SkyBlue2rgb(126, 192, 238)#7EC0EE
SkyBlue3SkyBlue3rgb(108, 166, 205)#6CA6CD
LightSkyBlueLightSkyBluergb(135, 206, 250)#87CEFA
LightSkyBlue4LightSkyBlue4rgb( 96, 123, 139)#607B8B
LightSkyBlue1LightSkyBlue1rgb(176, 226, 255)#B0E2FF
LightSkyBlue2LightSkyBlue2rgb(164, 211, 238)#A4D3EE
LightSkyBlue3LightSkyBlue3rgb(141, 182, 205)#8DB6CD
SkyBlueSkyBluergb(135, 206, 235)#87CEEB
LightBlue3LightBlue3rgb(154, 192, 205)#9AC0CD
DeepSkyBlueDeepSkyBluergb( 0, 191, 255)#00BFFF
DeepSkyBlue1DeepSkyBlue1rgb( 0, 191, 255)#00BFFF
DeepSkyBlue2DeepSkyBlue2rgb( 0, 178, 238)#00B2EE
DeepSkyBlue4DeepSkyBlue4rgb( 0, 104, 139)#00688B
DeepSkyBlue3DeepSkyBlue3rgb( 0, 154, 205)#009ACD
LightBlue1LightBlue1rgb(191, 239, 255)#BFEFFF
LightBlue2LightBlue2rgb(178, 223, 238)#B2DFEE
LightBlueLightBluergb(173, 216, 230)#ADD8E6
LightBlue4LightBlue4rgb(104, 131, 139)#68838B
PowderBluePowderBluergb(176, 224, 230)#B0E0E6
CadetBlue1CadetBlue1rgb(152, 245, 255)#98F5FF
CadetBlue2CadetBlue2rgb(142, 229, 238)#8EE5EE
CadetBlue3CadetBlue3rgb(122, 197, 205)#7AC5CD
CadetBlue4CadetBlue4rgb( 83, 134, 139)#53868B
turquoise1turquoise1rgb( 0, 245, 255)#00F5FF
turquoise2turquoise2rgb( 0, 229, 238)#00E5EE
turquoise3turquoise3rgb( 0, 197, 205)#00C5CD
turquoise4turquoise4rgb( 0, 134, 139)#00868B
cadet bluecadet bluergb( 95, 158, 160)#5F9EA0
CadetBlueCadetBluergb( 95, 158, 160)#5F9EA0
DarkTurquoiseDarkTurquoisergb( 0, 206, 209)#00CED1
azureazurergb(240, 255, 255)#F0FFFF
azure1azure1rgb(240, 255, 255)#F0FFFF
LightCyanLightCyanrgb(224, 255, 255)#E0FFFF
LightCyan1LightCyan1rgb(224, 255, 255)#E0FFFF
azure2azure2rgb(224, 238, 238)#E0EEEE
LightCyan2LightCyan2rgb(209, 238, 238)#D1EEEE
PaleTurquoise1PaleTurquoise1rgb(187, 255, 255)#BBFFFF
PaleTurquoisePaleTurquoisergb(175, 238, 238)#AFEEEE
PaleTurquoise2PaleTurquoise2rgb(174, 238, 238)#AEEEEE
DarkSlateGray1DarkSlateGray1rgb(151, 255, 255)#97FFFF
azure3azure3rgb(193, 205, 205)#C1CDCD
LightCyan3LightCyan3rgb(180, 205, 205)#B4CDCD
DarkSlateGray2DarkSlateGray2rgb(141, 238, 238)#8DEEEE
PaleTurquoise3PaleTurquoise3rgb(150, 205, 205)#96CDCD
DarkSlateGray3DarkSlateGray3rgb(121, 205, 205)#79CDCD
azure4azure4rgb(131, 139, 139)#838B8B
LightCyan4LightCyan4rgb(122, 139, 139)#7A8B8B
aquaaquargb( 0, 255, 255)#00FFFF
cyancyanrgb( 0, 255, 255)#00FFFF
cyan1cyan1rgb( 0, 255, 255)#00FFFF
PaleTurquoise4PaleTurquoise4rgb(102, 139, 139)#668B8B
cyan2cyan2rgb( 0, 238, 238)#00EEEE
DarkSlateGray4DarkSlateGray4rgb( 82, 139, 139)#528B8B
cyan3cyan3rgb( 0, 205, 205)#00CDCD
cyan4cyan4rgb( 0, 139, 139)#008B8B
DarkCyanDarkCyanrgb( 0, 139, 139)#008B8B
tealtealrgb( 0, 128, 128)#008080
DarkSlateGrayDarkSlateGrayrgb( 47, 79, 79)#2F4F4F
DarkSlateGreyDarkSlateGreyrgb( 47, 79, 79)#2F4F4F
MediumTurquoiseMediumTurquoisergb( 72, 209, 204)#48D1CC
LightSeaGreenLightSeaGreenrgb( 32, 178, 170)#20B2AA
turquoiseturquoisergb( 64, 224, 208)#40E0D0
aquamarine4aquamarine4rgb( 69, 139, 116)#458B74
aquamarineaquamarinergb(127, 255, 212)#7FFFD4
aquamarine1aquamarine1rgb(127, 255, 212)#7FFFD4
aquamarine2aquamarine2rgb(118, 238, 198)#76EEC6
aquamarine3aquamarine3rgb(102, 205, 170)#66CDAA
MediumAquamarineMediumAquamarinergb(102, 205, 170)#66CDAA
MediumSpringGreenMediumSpringGreenrgb( 0, 250, 154)#00FA9A
MintCreamMintCreamrgb(245, 255, 250)#F5FFFA
SpringGreenSpringGreenrgb( 0, 255, 127)#00FF7F
SpringGreen1SpringGreen1rgb( 0, 255, 127)#00FF7F
SpringGreen2SpringGreen2rgb( 0, 238, 118)#00EE76
SpringGreen3SpringGreen3rgb( 0, 205, 102)#00CD66
SpringGreen4SpringGreen4rgb( 0, 139, 69)#008B45
MediumSeaGreenMediumSeaGreenrgb( 60, 179, 113)#3CB371
SeaGreenSeaGreenrgb( 46, 139, 87)#2E8B57
SeaGreen3SeaGreen3rgb( 67, 205, 128)#43CD80
SeaGreen1SeaGreen1rgb( 84, 255, 159)#54FF9F
SeaGreen4SeaGreen4rgb( 46, 139, 87)#2E8B57
SeaGreen2SeaGreen2rgb( 78, 238, 148)#4EEE94
MediumForestGreenMediumForestGreenrgb( 50, 129, 75)#32814B
honeydewhoneydewrgb(240, 255, 240)#F0FFF0
honeydew1honeydew1rgb(240, 255, 240)#F0FFF0
honeydew2honeydew2rgb(224, 238, 224)#E0EEE0
DarkSeaGreen1DarkSeaGreen1rgb(193, 255, 193)#C1FFC1
DarkSeaGreen2DarkSeaGreen2rgb(180, 238, 180)#B4EEB4
PaleGreen1PaleGreen1rgb(154, 255, 154)#9AFF9A
PaleGreenPaleGreenrgb(152, 251, 152)#98FB98
honeydew3honeydew3rgb(193, 205, 193)#C1CDC1
LightGreenLightGreenrgb(144, 238, 144)#90EE90
PaleGreen2PaleGreen2rgb(144, 238, 144)#90EE90
DarkSeaGreen3DarkSeaGreen3rgb(155, 205, 155)#9BCD9B
DarkSeaGreenDarkSeaGreenrgb(143, 188, 143)#8FBC8F
PaleGreen3PaleGreen3rgb(124, 205, 124)#7CCD7C
honeydew4honeydew4rgb(131, 139, 131)#838B83
green1green1rgb( 0, 255, 0)#00FF00
limelimergb( 0, 255, 0)#00FF00
LimeGreenLimeGreenrgb( 50, 205, 50)#32CD32
DarkSeaGreen4DarkSeaGreen4rgb(105, 139, 105)#698B69
green2green2rgb( 0, 238, 0)#00EE00
PaleGreen4PaleGreen4rgb( 84, 139, 84)#548B54
green3green3rgb( 0, 205, 0)#00CD00
ForestGreenForestGreenrgb( 34, 139, 34)#228B22
green4green4rgb( 0, 139, 0)#008B00
greengreenrgb( 0, 128, 0)#008000
DarkGreenDarkGreenrgb( 0, 100, 0)#006400
LawnGreenLawnGreenrgb(124, 252, 0)#7CFC00
chartreusechartreusergb(127, 255, 0)#7FFF00
chartreuse1chartreuse1rgb(127, 255, 0)#7FFF00
chartreuse2chartreuse2rgb(118, 238, 0)#76EE00
chartreuse3chartreuse3rgb(102, 205, 0)#66CD00
chartreuse4chartreuse4rgb( 69, 139, 0)#458B00
GreenYellowGreenYellowrgb(173, 255, 47)#ADFF2F
DarkOliveGreen3DarkOliveGreen3rgb(162, 205, 90)#A2CD5A
DarkOliveGreen1DarkOliveGreen1rgb(202, 255, 112)#CAFF70
DarkOliveGreen2DarkOliveGreen2rgb(188, 238, 104)#BCEE68
DarkOliveGreen4DarkOliveGreen4rgb(110, 139, 61)#6E8B3D
DarkOliveGreenDarkOliveGreenrgb( 85, 107, 47)#556B2F
OliveDrabOliveDrabrgb(107, 142, 35)#6B8E23
OliveDrab1OliveDrab1rgb(192, 255, 62)#C0FF3E
OliveDrab2OliveDrab2rgb(179, 238, 58)#B3EE3A
OliveDrab3OliveDrab3rgb(154, 205, 50)#9ACD32
YellowGreenYellowGreenrgb(154, 205, 50)#9ACD32
OliveDrab4OliveDrab4rgb(105, 139, 34)#698B22
ivoryivoryrgb(255, 255, 240)#FFFFF0
ivory1ivory1rgb(255, 255, 240)#FFFFF0
LightYellowLightYellowrgb(255, 255, 224)#FFFFE0
LightYellow1LightYellow1rgb(255, 255, 224)#FFFFE0
beigebeigergb(245, 245, 220)#F5F5DC
ivory2ivory2rgb(238, 238, 224)#EEEEE0
LightGoldenrodYellowLightGoldenrodYellowrgb(250, 250, 210)#FAFAD2
LightYellow2LightYellow2rgb(238, 238, 209)#EEEED1
ivory3ivory3rgb(205, 205, 193)#CDCDC1
LightYellow3LightYellow3rgb(205, 205, 180)#CDCDB4
ivory4ivory4rgb(139, 139, 131)#8B8B83
LightYellow4LightYellow4rgb(139, 139, 122)#8B8B7A
yellowyellowrgb(255, 255, 0)#FFFF00
yellow1yellow1rgb(255, 255, 0)#FFFF00
yellow2yellow2rgb(238, 238, 0)#EEEE00
yellow3yellow3rgb(205, 205, 0)#CDCD00
yellow4yellow4rgb(139, 139, 0)#8B8B00
oliveolivergb(128, 128, 0)#808000
DarkKhakiDarkKhakirgb(189, 183, 107)#BDB76B
khaki2khaki2rgb(238, 230, 133)#EEE685
LemonChiffon4LemonChiffon4rgb(139, 137, 112)#8B8970
khaki1khaki1rgb(255, 246, 143)#FFF68F
khaki3khaki3rgb(205, 198, 115)#CDC673
khaki4khaki4rgb(139, 134, 78)#8B864E
PaleGoldenrodPaleGoldenrodrgb(238, 232, 170)#EEE8AA
LemonChiffonLemonChiffonrgb(255, 250, 205)#FFFACD
LemonChiffon1LemonChiffon1rgb(255, 250, 205)#FFFACD
khakikhakirgb(240, 230, 140)#F0E68C
LemonChiffon3LemonChiffon3rgb(205, 201, 165)#CDC9A5
LemonChiffon2LemonChiffon2rgb(238, 233, 191)#EEE9BF
MediumGoldenRodMediumGoldenRodrgb(209, 193, 102)#D1C166
cornsilk4cornsilk4rgb(139, 136, 120)#8B8878
goldgoldrgb(255, 215, 0)#FFD700
gold1gold1rgb(255, 215, 0)#FFD700
gold2gold2rgb(238, 201, 0)#EEC900
gold3gold3rgb(205, 173, 0)#CDAD00
gold4gold4rgb(139, 117, 0)#8B7500
LightGoldenrodLightGoldenrodrgb(238, 221, 130)#EEDD82
LightGoldenrod4LightGoldenrod4rgb(139, 129, 76)#8B814C
LightGoldenrod1LightGoldenrod1rgb(255, 236, 139)#FFEC8B
LightGoldenrod3LightGoldenrod3rgb(205, 190, 112)#CDBE70
LightGoldenrod2LightGoldenrod2rgb(238, 220, 130)#EEDC82
cornsilk3cornsilk3rgb(205, 200, 177)#CDC8B1
cornsilk2cornsilk2rgb(238, 232, 205)#EEE8CD
cornsilkcornsilkrgb(255, 248, 220)#FFF8DC
cornsilk1cornsilk1rgb(255, 248, 220)#FFF8DC
goldenrodgoldenrodrgb(218, 165, 32)#DAA520
goldenrod1goldenrod1rgb(255, 193, 37)#FFC125
goldenrod2goldenrod2rgb(238, 180, 34)#EEB422
goldenrod3goldenrod3rgb(205, 155, 29)#CD9B1D
goldenrod4goldenrod4rgb(139, 105, 20)#8B6914
DarkGoldenrodDarkGoldenrodrgb(184, 134, 11)#B8860B
DarkGoldenrod1DarkGoldenrod1rgb(255, 185, 15)#FFB90F
DarkGoldenrod2DarkGoldenrod2rgb(238, 173, 14)#EEAD0E
DarkGoldenrod3DarkGoldenrod3rgb(205, 149, 12)#CD950C
DarkGoldenrod4DarkGoldenrod4rgb(139, 101, 8)#8B6508
FloralWhiteFloralWhitergb(255, 250, 240)#FFFAF0
wheat2wheat2rgb(238, 216, 174)#EED8AE
OldLaceOldLacergb(253, 245, 230)#FDF5E6
wheatwheatrgb(245, 222, 179)#F5DEB3
wheat1wheat1rgb(255, 231, 186)#FFE7BA
wheat3wheat3rgb(205, 186, 150)#CDBA96
orangeorangergb(255, 165, 0)#FFA500
orange1orange1rgb(255, 165, 0)#FFA500
orange2orange2rgb(238, 154, 0)#EE9A00
orange3orange3rgb(205, 133, 0)#CD8500
orange4orange4rgb(139, 90, 0)#8B5A00
wheat4wheat4rgb(139, 126, 102)#8B7E66
moccasinmoccasinrgb(255, 228, 181)#FFE4B5
PapayaWhipPapayaWhiprgb(255, 239, 213)#FFEFD5
NavajoWhite3NavajoWhite3rgb(205, 179, 139)#CDB38B
BlanchedAlmondBlanchedAlmondrgb(255, 235, 205)#FFEBCD
NavajoWhiteNavajoWhitergb(255, 222, 173)#FFDEAD
NavajoWhite1NavajoWhite1rgb(255, 222, 173)#FFDEAD
NavajoWhite2NavajoWhite2rgb(238, 207, 161)#EECFA1
NavajoWhite4NavajoWhite4rgb(139, 121, 94)#8B795E
AntiqueWhite4AntiqueWhite4rgb(139, 131, 120)#8B8378
AntiqueWhiteAntiqueWhitergb(250, 235, 215)#FAEBD7
tantanrgb(210, 180, 140)#D2B48C
bisque4bisque4rgb(139, 125, 107)#8B7D6B
burlywoodburlywoodrgb(222, 184, 135)#DEB887
AntiqueWhite2AntiqueWhite2rgb(238, 223, 204)#EEDFCC
burlywood1burlywood1rgb(255, 211, 155)#FFD39B
burlywood3burlywood3rgb(205, 170, 125)#CDAA7D
burlywood2burlywood2rgb(238, 197, 145)#EEC591
AntiqueWhite1AntiqueWhite1rgb(255, 239, 219)#FFEFDB
burlywood4burlywood4rgb(139, 115, 85)#8B7355
AntiqueWhite3AntiqueWhite3rgb(205, 192, 176)#CDC0B0
DarkOrangeDarkOrangergb(255, 140, 0)#FF8C00
bisque2bisque2rgb(238, 213, 183)#EED5B7
bisquebisquergb(255, 228, 196)#FFE4C4
bisque1bisque1rgb(255, 228, 196)#FFE4C4
bisque3bisque3rgb(205, 183, 158)#CDB79E
DarkOrange1DarkOrange1rgb(255, 127, 0)#FF7F00
linenlinenrgb(250, 240, 230)#FAF0E6
DarkOrange2DarkOrange2rgb(238, 118, 0)#EE7600
DarkOrange3DarkOrange3rgb(205, 102, 0)#CD6600
DarkOrange4DarkOrange4rgb(139, 69, 0)#8B4500
peruperurgb(205, 133, 63)#CD853F
tan1tan1rgb(255, 165, 79)#FFA54F
tan2tan2rgb(238, 154, 73)#EE9A49
tan3tan3rgb(205, 133, 63)#CD853F
tan4tan4rgb(139, 90, 43)#8B5A2B
PeachPuffPeachPuffrgb(255, 218, 185)#FFDAB9
PeachPuff1PeachPuff1rgb(255, 218, 185)#FFDAB9
PeachPuff4PeachPuff4rgb(139, 119, 101)#8B7765
PeachPuff2PeachPuff2rgb(238, 203, 173)#EECBAD
PeachPuff3PeachPuff3rgb(205, 175, 149)#CDAF95
SandyBrownSandyBrownrgb(244, 164, 96)#F4A460
seashell4seashell4rgb(139, 134, 130)#8B8682
seashell2seashell2rgb(238, 229, 222)#EEE5DE
seashell3seashell3rgb(205, 197, 191)#CDC5BF
chocolatechocolatergb(210, 105, 30)#D2691E
chocolate1chocolate1rgb(255, 127, 36)#FF7F24
chocolate2chocolate2rgb(238, 118, 33)#EE7621
chocolate3chocolate3rgb(205, 102, 29)#CD661D
chocolate4chocolate4rgb(139, 69, 19)#8B4513
SaddleBrownSaddleBrownrgb(139, 69, 19)#8B4513
seashellseashellrgb(255, 245, 238)#FFF5EE
seashell1seashell1rgb(255, 245, 238)#FFF5EE
sienna4sienna4rgb(139, 71, 38)#8B4726
siennasiennargb(160, 82, 45)#A0522D
sienna1sienna1rgb(255, 130, 71)#FF8247
sienna2sienna2rgb(238, 121, 66)#EE7942
sienna3sienna3rgb(205, 104, 57)#CD6839
LightSalmon3LightSalmon3rgb(205, 129, 98)#CD8162
LightSalmonLightSalmonrgb(255, 160, 122)#FFA07A
LightSalmon1LightSalmon1rgb(255, 160, 122)#FFA07A
LightSalmon4LightSalmon4rgb(139, 87, 66)#8B5742
LightSalmon2LightSalmon2rgb(238, 149, 114)#EE9572
coralcoralrgb(255, 127, 80)#FF7F50
OrangeRedOrangeRedrgb(255, 69, 0)#FF4500
OrangeRed1OrangeRed1rgb(255, 69, 0)#FF4500
OrangeRed2OrangeRed2rgb(238, 64, 0)#EE4000
OrangeRed3OrangeRed3rgb(205, 55, 0)#CD3700
OrangeRed4OrangeRed4rgb(139, 37, 0)#8B2500
DarkSalmonDarkSalmonrgb(233, 150, 122)#E9967A
salmon1salmon1rgb(255, 140, 105)#FF8C69
salmon2salmon2rgb(238, 130, 98)#EE8262
salmon3salmon3rgb(205, 112, 84)#CD7054
salmon4salmon4rgb(139, 76, 57)#8B4C39
coral1coral1rgb(255, 114, 86)#FF7256
coral2coral2rgb(238, 106, 80)#EE6A50
coral3coral3rgb(205, 91, 69)#CD5B45
coral4coral4rgb(139, 62, 47)#8B3E2F
tomato4tomato4rgb(139, 54, 38)#8B3626
tomatotomatorgb(255, 99, 71)#FF6347
tomato1tomato1rgb(255, 99, 71)#FF6347
tomato2tomato2rgb(238, 92, 66)#EE5C42
tomato3tomato3rgb(205, 79, 57)#CD4F39
MistyRose4MistyRose4rgb(139, 125, 123)#8B7D7B
MistyRose2MistyRose2rgb(238, 213, 210)#EED5D2
MistyRoseMistyRosergb(255, 228, 225)#FFE4E1
MistyRose1MistyRose1rgb(255, 228, 225)#FFE4E1
salmonsalmonrgb(250, 128, 114)#FA8072
MistyRose3MistyRose3rgb(205, 183, 181)#CDB7B5
whitewhitergb(255, 255, 255)#FFFFFF
gray100gray100rgb(255, 255, 255)#FFFFFF
grey100grey100rgb(255, 255, 255)#FFFFFF
grey100grey100rgb(255, 255, 255)#FFFFFF
gray99gray99rgb(252, 252, 252)#FCFCFC
grey99grey99rgb(252, 252, 252)#FCFCFC
gray98gray98rgb(250, 250, 250)#FAFAFA
grey98grey98rgb(250, 250, 250)#FAFAFA
gray97gray97rgb(247, 247, 247)#F7F7F7
grey97grey97rgb(247, 247, 247)#F7F7F7
gray96gray96rgb(245, 245, 245)#F5F5F5
grey96grey96rgb(245, 245, 245)#F5F5F5
WhiteSmokeWhiteSmokergb(245, 245, 245)#F5F5F5
gray95gray95rgb(242, 242, 242)#F2F2F2
grey95grey95rgb(242, 242, 242)#F2F2F2
gray94gray94rgb(240, 240, 240)#F0F0F0
grey94grey94rgb(240, 240, 240)#F0F0F0
gray93gray93rgb(237, 237, 237)#EDEDED
grey93grey93rgb(237, 237, 237)#EDEDED
gray92gray92rgb(235, 235, 235)#EBEBEB
grey92grey92rgb(235, 235, 235)#EBEBEB
gray91gray91rgb(232, 232, 232)#E8E8E8
grey91grey91rgb(232, 232, 232)#E8E8E8
gray90gray90rgb(229, 229, 229)#E5E5E5
grey90grey90rgb(229, 229, 229)#E5E5E5
gray89gray89rgb(227, 227, 227)#E3E3E3
grey89grey89rgb(227, 227, 227)#E3E3E3
gray88gray88rgb(224, 224, 224)#E0E0E0
grey88grey88rgb(224, 224, 224)#E0E0E0
gray87gray87rgb(222, 222, 222)#DEDEDE
grey87grey87rgb(222, 222, 222)#DEDEDE
gainsborogainsbororgb(220, 220, 220)#DCDCDC
gray86gray86rgb(219, 219, 219)#DBDBDB
grey86grey86rgb(219, 219, 219)#DBDBDB
gray85gray85rgb(217, 217, 217)#D9D9D9
grey85grey85rgb(217, 217, 217)#D9D9D9
gray84gray84rgb(214, 214, 214)#D6D6D6
grey84grey84rgb(214, 214, 214)#D6D6D6
gray83gray83rgb(212, 212, 212)#D4D4D4
grey83grey83rgb(212, 212, 212)#D4D4D4
LightGrayLightGrayrgb(211, 211, 211)#D3D3D3
LightGreyLightGreyrgb(211, 211, 211)#D3D3D3
gray82gray82rgb(209, 209, 209)#D1D1D1
grey82grey82rgb(209, 209, 209)#D1D1D1
gray81gray81rgb(207, 207, 207)#CFCFCF
grey81grey81rgb(207, 207, 207)#CFCFCF
gray80gray80rgb(204, 204, 204)#CCCCCC
grey80grey80rgb(204, 204, 204)#CCCCCC
gray79gray79rgb(201, 201, 201)#C9C9C9
grey79grey79rgb(201, 201, 201)#C9C9C9
gray78gray78rgb(199, 199, 199)#C7C7C7
grey78grey78rgb(199, 199, 199)#C7C7C7
gray77gray77rgb(196, 196, 196)#C4C4C4
grey77grey77rgb(196, 196, 196)#C4C4C4
gray76gray76rgb(194, 194, 194)#C2C2C2
grey76grey76rgb(194, 194, 194)#C2C2C2
silversilverrgb(192, 192, 192)#C0C0C0
gray75gray75rgb(191, 191, 191)#BFBFBF
grey75grey75rgb(191, 191, 191)#BFBFBF
gray74gray74rgb(189, 189, 189)#BDBDBD
grey74grey74rgb(189, 189, 189)#BDBDBD
gray73gray73rgb(186, 186, 186)#BABABA
grey73grey73rgb(186, 186, 186)#BABABA
gray72gray72rgb(184, 184, 184)#B8B8B8
grey72grey72rgb(184, 184, 184)#B8B8B8
gray71gray71rgb(181, 181, 181)#B5B5B5
grey71grey71rgb(181, 181, 181)#B5B5B5
gray70gray70rgb(179, 179, 179)#B3B3B3
grey70grey70rgb(179, 179, 179)#B3B3B3
gray69gray69rgb(176, 176, 176)#B0B0B0
grey69grey69rgb(176, 176, 176)#B0B0B0
gray68gray68rgb(173, 173, 173)#ADADAD
grey68grey68rgb(173, 173, 173)#ADADAD
gray67gray67rgb(171, 171, 171)#ABABAB
grey67grey67rgb(171, 171, 171)#ABABAB
DarkGrayDarkGrayrgb(169, 169, 169)#A9A9A9
DarkGreyDarkGreyrgb(169, 169, 169)#A9A9A9
gray66gray66rgb(168, 168, 168)#A8A8A8
grey66grey66rgb(168, 168, 168)#A8A8A8
gray65gray65rgb(166, 166, 166)#A6A6A6
grey65grey65rgb(166, 166, 166)#A6A6A6
gray64gray64rgb(163, 163, 163)#A3A3A3
grey64grey64rgb(163, 163, 163)#A3A3A3
gray63gray63rgb(161, 161, 161)#A1A1A1
grey63grey63rgb(161, 161, 161)#A1A1A1
gray62gray62rgb(158, 158, 158)#9E9E9E
grey62grey62rgb(158, 158, 158)#9E9E9E
gray61gray61rgb(156, 156, 156)#9C9C9C
grey61grey61rgb(156, 156, 156)#9C9C9C
gray60gray60rgb(153, 153, 153)#999999
grey60grey60rgb(153, 153, 153)#999999
gray59gray59rgb(150, 150, 150)#969696
grey59grey59rgb(150, 150, 150)#969696
gray58gray58rgb(148, 148, 148)#949494
grey58grey58rgb(148, 148, 148)#949494
gray57gray57rgb(145, 145, 145)#919191
grey57grey57rgb(145, 145, 145)#919191
gray56gray56rgb(143, 143, 143)#8F8F8F
grey56grey56rgb(143, 143, 143)#8F8F8F
gray55gray55rgb(140, 140, 140)#8C8C8C
grey55grey55rgb(140, 140, 140)#8C8C8C
gray54gray54rgb(138, 138, 138)#8A8A8A
grey54grey54rgb(138, 138, 138)#8A8A8A
gray53gray53rgb(135, 135, 135)#878787
grey53grey53rgb(135, 135, 135)#878787
gray52gray52rgb(133, 133, 133)#858585
grey52grey52rgb(133, 133, 133)#858585
gray51gray51rgb(130, 130, 130)#828282
grey51grey51rgb(130, 130, 130)#828282
fractalfractalrgb(128, 128, 128)#808080
gray50gray50rgb(127, 127, 127)#7F7F7F
grey50grey50rgb(127, 127, 127)#7F7F7F
graygrayrgb(126, 126, 126)#7E7E7E
gray49gray49rgb(125, 125, 125)#7D7D7D
grey49grey49rgb(125, 125, 125)#7D7D7D
gray48gray48rgb(122, 122, 122)#7A7A7A
grey48grey48rgb(122, 122, 122)#7A7A7A
gray47gray47rgb(120, 120, 120)#787878
grey47grey47rgb(120, 120, 120)#787878
gray46gray46rgb(117, 117, 117)#757575
grey46grey46rgb(117, 117, 117)#757575
gray45gray45rgb(115, 115, 115)#737373
grey45grey45rgb(115, 115, 115)#737373
gray44gray44rgb(112, 112, 112)#707070
grey44grey44rgb(112, 112, 112)#707070
gray43gray43rgb(110, 110, 110)#6E6E6E
grey43grey43rgb(110, 110, 110)#6E6E6E
gray42gray42rgb(107, 107, 107)#6B6B6B
grey42grey42rgb(107, 107, 107)#6B6B6B
DimGrayDimGrayrgb(105, 105, 105)#696969
DimGreyDimGreyrgb(105, 105, 105)#696969
gray41gray41rgb(105, 105, 105)#696969
grey41grey41rgb(105, 105, 105)#696969
gray40gray40rgb(102, 102, 102)#666666
grey40grey40rgb(102, 102, 102)#666666
gray39gray39rgb( 99, 99, 99)#636363
grey39grey39rgb( 99, 99, 99)#636363
gray38gray38rgb( 97, 97, 97)#616161
grey38grey38rgb( 97, 97, 97)#616161
gray37gray37rgb( 94, 94, 94)#5E5E5E
grey37grey37rgb( 94, 94, 94)#5E5E5E
gray36gray36rgb( 92, 92, 92)#5C5C5C
grey36grey36rgb( 92, 92, 92)#5C5C5C
gray35gray35rgb( 89, 89, 89)#595959
grey35grey35rgb( 89, 89, 89)#595959
gray34gray34rgb( 87, 87, 87)#575757
grey34grey34rgb( 87, 87, 87)#575757
gray33gray33rgb( 84, 84, 84)#545454
grey33grey33rgb( 84, 84, 84)#545454
gray32gray32rgb( 82, 82, 82)#525252
grey32grey32rgb( 82, 82, 82)#525252
gray31gray31rgb( 79, 79, 79)#4F4F4F
grey31grey31rgb( 79, 79, 79)#4F4F4F
gray30gray30rgb( 77, 77, 77)#4D4D4D
grey30grey30rgb( 77, 77, 77)#4D4D4D
gray29gray29rgb( 74, 74, 74)#4A4A4A
grey29grey29rgb( 74, 74, 74)#4A4A4A
gray28gray28rgb( 71, 71, 71)#474747
grey28grey28rgb( 71, 71, 71)#474747
gray27gray27rgb( 69, 69, 69)#454545
grey27grey27rgb( 69, 69, 69)#454545
gray26gray26rgb( 66, 66, 66)#424242
grey26grey26rgb( 66, 66, 66)#424242
gray25gray25rgb( 64, 64, 64)#404040
grey25grey25rgb( 64, 64, 64)#404040
gray24gray24rgb( 61, 61, 61)#3D3D3D
grey24grey24rgb( 61, 61, 61)#3D3D3D
gray23gray23rgb( 59, 59, 59)#3B3B3B
grey23grey23rgb( 59, 59, 59)#3B3B3B
gray22gray22rgb( 56, 56, 56)#383838
grey22grey22rgb( 56, 56, 56)#383838
gray21gray21rgb( 54, 54, 54)#363636
grey21grey21rgb( 54, 54, 54)#363636
gray20gray20rgb( 51, 51, 51)#333333
grey20grey20rgb( 51, 51, 51)#333333
gray19gray19rgb( 48, 48, 48)#303030
grey19grey19rgb( 48, 48, 48)#303030
gray18gray18rgb( 46, 46, 46)#2E2E2E
grey18grey18rgb( 46, 46, 46)#2E2E2E
gray17gray17rgb( 43, 43, 43)#2B2B2B
grey17grey17rgb( 43, 43, 43)#2B2B2B
gray16gray16rgb( 41, 41, 41)#292929
grey16grey16rgb( 41, 41, 41)#292929
gray15gray15rgb( 38, 38, 38)#262626
grey15grey15rgb( 38, 38, 38)#262626
gray14gray14rgb( 36, 36, 36)#242424
grey14grey14rgb( 36, 36, 36)#242424
gray13gray13rgb( 33, 33, 33)#212121
grey13grey13rgb( 33, 33, 33)#212121
gray12gray12rgb( 31, 31, 31)#1F1F1F
grey12grey12rgb( 31, 31, 31)#1F1F1F
gray11gray11rgb( 28, 28, 28)#1C1C1C
grey11grey11rgb( 28, 28, 28)#1C1C1C
gray10gray10rgb( 26, 26, 26)#1A1A1A
grey10grey10rgb( 26, 26, 26)#1A1A1A
gray9gray9rgb( 23, 23, 23)#171717
grey9grey9rgb( 23, 23, 23)#171717
gray8gray8rgb( 20, 20, 20)#141414
grey8grey8rgb( 20, 20, 20)#141414
gray7gray7rgb( 18, 18, 18)#121212
grey7grey7rgb( 18, 18, 18)#121212
gray6gray6rgb( 15, 15, 15)#0F0F0F
grey6grey6rgb( 15, 15, 15)#0F0F0F
gray5gray5rgb( 13, 13, 13)#0D0D0D
grey5grey5rgb( 13, 13, 13)#0D0D0D
gray4gray4rgb( 10, 10, 10)#0A0A0A
grey4grey4rgb( 10, 10, 10)#0A0A0A
gray3gray3rgb( 8, 8, 8)#080808
grey3grey3rgb( 8, 8, 8)#080808
gray2gray2rgb( 5, 5, 5)#050505
grey2grey2rgb( 5, 5, 5)#050505
gray1gray1rgb( 3, 3, 3)#030303
grey1grey1rgb( 3, 3, 3)#030303
blackblackrgb( 0, 0, 0)#000000
gray0gray0rgb( 0, 0, 0)#000000
grey0grey0rgb( 0, 0, 0)#000000
opaqueopaquergb( 0, 0, 0)#000000
nonenonergba( 0, 0, 0, 0.0)#00000000
transparenttransparentrgba( 0, 0, 0, 0.0)#00000000
- -
- -
- - diff --git a/share/frontend/imgrid/colors/colors/junk/colorsbest.html b/share/frontend/imgrid/colors/colors/junk/colorsbest.html deleted file mode 100755 index 047eb6b..0000000 --- a/share/frontend/imgrid/colors/colors/junk/colorsbest.html +++ /dev/null @@ -1,3606 +0,0 @@ - - - - -
-
-snow
-
-snow1
-
-snow2
-
-RosyBrown1
-
-RosyBrown2
-
-snow3
-
-LightCoral
-
-IndianRed1
-
-RosyBrown3
-
-IndianRed2
-
-RosyBrown
-
-brown1
-
-firebrick1
-
-brown2
-
-IndianRed
-
-IndianRed3
-
-firebrick2
-
-snow4
-
-brown3
-
-red
-
-red1
-
-RosyBrown4
-
-firebrick3
-
-red2
-
-firebrick
-
-brown
-
-red3
-
-IndianRed4
-
-brown4
-
-firebrick4
-
-DarkRed
-
-red4
-
-maroon
-
-LightPink1
-
-LightPink3
-
-LightPink4
-
-LightPink2
-
-LightPink
-
-pink
-
-crimson
-
-pink1
-
-pink2
-
-pink3
-
-pink4
-
-PaleVioletRed4
-
-PaleVioletRed
-
-PaleVioletRed2
-
-PaleVioletRed1
-
-PaleVioletRed3
-
-LavenderBlush
-
-LavenderBlush1
-
-LavenderBlush3
-
-LavenderBlush2
-
-LavenderBlush4
-
-maroon
-
-HotPink3
-
-VioletRed3
-
-VioletRed1
-
-VioletRed2
-
-VioletRed4
-
-HotPink2
-
-HotPink1
-
-HotPink4
-
-HotPink
-
-DeepPink
-
-DeepPink1
-
-DeepPink2
-
-DeepPink3
-
-DeepPink4
-
-maroon1
-
-maroon2
-
-maroon3
-
-maroon4
-
-MediumVioletRed
-
-VioletRed
-
-orchid2
-
-orchid
-
-orchid1
-
-orchid3
-
-orchid4
-
-thistle1
-
-thistle2
-
-plum1
-
-plum2
-
-thistle
-
-thistle3
-
-plum
-
-violet
-
-plum3
-
-thistle4
-
-fuchsia
-
-magenta
-
-magenta1
-
-plum4
-
-magenta2
-
-magenta3
-
-DarkMagenta
-
-magenta4
-
-purple
-
-MediumOrchid
-
-MediumOrchid1
-
-MediumOrchid2
-
-MediumOrchid3
-
-MediumOrchid4
-
-DarkViolet
-
-DarkOrchid
-
-DarkOrchid1
-
-DarkOrchid3
-
-DarkOrchid2
-
-DarkOrchid4
-
-purple
-
-indigo
-
-BlueViolet
-
-purple2
-
-purple3
-
-purple4
-
-purple1
-
-MediumPurple
-
-MediumPurple1
-
-MediumPurple2
-
-MediumPurple3
-
-MediumPurple4
-
-DarkSlateBlue
-
-LightSlateBlue
-
-MediumSlateBlue
-
-SlateBlue
-
-SlateBlue1
-
-SlateBlue2
-
-SlateBlue3
-
-SlateBlue4
-
-GhostWhite
-
-lavender
-
-blue
-
-blue1
-
-blue2
-
-blue3
-
-MediumBlue
-
-blue4
-
-DarkBlue
-
-MidnightBlue
-
-navy
-
-NavyBlue
-
-RoyalBlue
-
-RoyalBlue1
-
-RoyalBlue2
-
-RoyalBlue3
-
-RoyalBlue4
-
-CornflowerBlue
-
-LightSteelBlue
-
-LightSteelBlue1
-
-LightSteelBlue2
-
-LightSteelBlue3
-
-LightSteelBlue4
-
-SlateGray4
-
-SlateGray1
-
-SlateGray2
-
-SlateGray3
-
-LightSlateGray
-
-LightSlateGrey
-
-SlateGray
-
-SlateGrey
-
-DodgerBlue
-
-DodgerBlue1
-
-DodgerBlue2
-
-DodgerBlue4
-
-DodgerBlue3
-
-AliceBlue
-
-SteelBlue4
-
-SteelBlue
-
-SteelBlue1
-
-SteelBlue2
-
-SteelBlue3
-
-SkyBlue4
-
-SkyBlue1
-
-SkyBlue2
-
-SkyBlue3
-
-LightSkyBlue
-
-LightSkyBlue4
-
-LightSkyBlue1
-
-LightSkyBlue2
-
-LightSkyBlue3
-
-SkyBlue
-
-LightBlue3
-
-DeepSkyBlue
-
-DeepSkyBlue1
-
-DeepSkyBlue2
-
-DeepSkyBlue4
-
-DeepSkyBlue3
-
-LightBlue1
-
-LightBlue2
-
-LightBlue
-
-LightBlue4
-
-PowderBlue
-
-CadetBlue1
-
-CadetBlue2
-
-CadetBlue3
-
-CadetBlue4
-
-turquoise1
-
-turquoise2
-
-turquoise3
-
-turquoise4
-
-cadet blue
-
-CadetBlue
-
-DarkTurquoise
-
-azure
-
-azure1
-
-LightCyan
-
-LightCyan1
-
-azure2
-
-LightCyan2
-
-PaleTurquoise1
-
-PaleTurquoise
-
-PaleTurquoise2
-
-DarkSlateGray1
-
-azure3
-
-LightCyan3
-
-DarkSlateGray2
-
-PaleTurquoise3
-
-DarkSlateGray3
-
-azure4
-
-LightCyan4
-
-aqua
-
-cyan
-
-cyan1
-
-PaleTurquoise4
-
-cyan2
-
-DarkSlateGray4
-
-cyan3
-
-cyan4
-
-DarkCyan
-
-teal
-
-DarkSlateGray
-
-DarkSlateGrey
-
-MediumTurquoise
-
-LightSeaGreen
-
-turquoise
-
-aquamarine4
-
-aquamarine
-
-aquamarine1
-
-aquamarine2
-
-aquamarine3
-
-MediumAquamarine
-
-MediumSpringGreen
-
-MintCream
-
-SpringGreen
-
-SpringGreen1
-
-SpringGreen2
-
-SpringGreen3
-
-SpringGreen4
-
-MediumSeaGreen
-
-SeaGreen
-
-SeaGreen3
-
-SeaGreen1
-
-SeaGreen4
-
-SeaGreen2
-
-MediumForestGreen
-
-honeydew
-
-honeydew1
-
-honeydew2
-
-DarkSeaGreen1
-
-DarkSeaGreen2
-
-PaleGreen1
-
-PaleGreen
-
-honeydew3
-
-LightGreen
-
-PaleGreen2
-
-DarkSeaGreen3
-
-DarkSeaGreen
-
-PaleGreen3
-
-honeydew4
-
-green1
-
-lime
-
-LimeGreen
-
-DarkSeaGreen4
-
-green2
-
-PaleGreen4
-
-green3
-
-ForestGreen
-
-green4
-
-green
-
-DarkGreen
-
-LawnGreen
-
-chartreuse
-
-chartreuse1
-
-chartreuse2
-
-chartreuse3
-
-chartreuse4
-
-GreenYellow
-
-DarkOliveGreen3
-
-DarkOliveGreen1
-
-DarkOliveGreen2
-
-DarkOliveGreen4
-
-DarkOliveGreen
-
-OliveDrab
-
-OliveDrab1
-
-OliveDrab2
-
-OliveDrab3
-
-YellowGreen
-
-OliveDrab4
-
-ivory
-
-ivory1
-
-LightYellow
-
-LightYellow1
-
-beige
-
-ivory2
-
-LightGoldenrodYellow
-
-LightYellow2
-
-ivory3
-
-LightYellow3
-
-ivory4
-
-LightYellow4
-
-yellow
-
-yellow1
-
-yellow2
-
-yellow3
-
-yellow4
-
-olive
-
-DarkKhaki
-
-khaki2
-
-LemonChiffon4
-
-khaki1
-
-khaki3
-
-khaki4
-
-PaleGoldenrod
-
-LemonChiffon
-
-LemonChiffon1
-
-khaki
-
-LemonChiffon3
-
-LemonChiffon2
-
-MediumGoldenRod
-
-cornsilk4
-
-gold
-
-gold1
-
-gold2
-
-gold3
-
-gold4
-
-LightGoldenrod
-
-LightGoldenrod4
-
-LightGoldenrod1
-
-LightGoldenrod3
-
-LightGoldenrod2
-
-cornsilk3
-
-cornsilk2
-
-cornsilk
-
-cornsilk1
-
-goldenrod
-
-goldenrod1
-
-goldenrod2
-
-goldenrod3
-
-goldenrod4
-
-DarkGoldenrod
-
-DarkGoldenrod1
-
-DarkGoldenrod2
-
-DarkGoldenrod3
-
-DarkGoldenrod4
-
-FloralWhite
-
-wheat2
-
-OldLace
-
-wheat
-
-wheat1
-
-wheat3
-
-orange
-
-orange1
-
-orange2
-
-orange3
-
-orange4
-
-wheat4
-
-moccasin
-
-PapayaWhip
-
-NavajoWhite3
-
-BlanchedAlmond
-
-NavajoWhite
-
-NavajoWhite1
-
-NavajoWhite2
-
-NavajoWhite4
-
-AntiqueWhite4
-
-AntiqueWhite
-
-tan
-
-bisque4
-
-burlywood
-
-AntiqueWhite2
-
-burlywood1
-
-burlywood3
-
-burlywood2
-
-AntiqueWhite1
-
-burlywood4
-
-AntiqueWhite3
-
-DarkOrange
-
-bisque2
-
-bisque
-
-bisque1
-
-bisque3
-
-DarkOrange1
-
-linen
-
-DarkOrange2
-
-DarkOrange3
-
-DarkOrange4
-
-peru
-
-tan1
-
-tan2
-
-tan3
-
-tan4
-
-PeachPuff
-
-PeachPuff1
-
-PeachPuff4
-
-PeachPuff2
-
-PeachPuff3
-
-SandyBrown
-
-seashell4
-
-seashell2
-
-seashell3
-
-chocolate
-
-chocolate1
-
-chocolate2
-
-chocolate3
-
-chocolate4
-
-SaddleBrown
-
-seashell
-
-seashell1
-
-sienna4
-
-sienna
-
-sienna1
-
-sienna2
-
-sienna3
-
-LightSalmon3
-
-LightSalmon
-
-LightSalmon1
-
-LightSalmon4
-
-LightSalmon2
-
-coral
-
-OrangeRed
-
-OrangeRed1
-
-OrangeRed2
-
-OrangeRed3
-
-OrangeRed4
-
-DarkSalmon
-
-salmon1
-
-salmon2
-
-salmon3
-
-salmon4
-
-coral1
-
-coral2
-
-coral3
-
-coral4
-
-tomato4
-
-tomato
-
-tomato1
-
-tomato2
-
-tomato3
-
-MistyRose4
-
-MistyRose2
-
-MistyRose
-
-MistyRose1
-
-salmon
-
-MistyRose3
-
-white
-
-gray100
-
-grey100
-
-grey100
-
-gray99
-
-grey99
-
-gray98
-
-grey98
-
-gray97
-
-grey97
-
-gray96
-
-grey96
-
-WhiteSmoke
-
-gray95
-
-grey95
-
-gray94
-
-grey94
-
-gray93
-
-grey93
-
-gray92
-
-grey92
-
-gray91
-
-grey91
-
-gray90
-
-grey90
-
-gray89
-
-grey89
-
-gray88
-
-grey88
-
-gray87
-
-grey87
-
-gainsboro
-
-gray86
-
-grey86
-
-gray85
-
-grey85
-
-gray84
-
-grey84
-
-gray83
-
-grey83
-
-LightGray
-
-LightGrey
-
-gray82
-
-grey82
-
-gray81
-
-grey81
-
-gray80
-
-grey80
-
-gray79
-
-grey79
-
-gray78
-
-grey78
-
-gray77
-
-grey77
-
-gray76
-
-grey76
-
-silver
-
-gray75
-
-grey75
-
-gray74
-
-grey74
-
-gray73
-
-grey73
-
-gray72
-
-grey72
-
-gray71
-
-grey71
-
-gray70
-
-grey70
-
-gray69
-
-grey69
-
-gray68
-
-grey68
-
-gray67
-
-grey67
-
-DarkGray
-
-DarkGrey
-
-gray66
-
-grey66
-
-gray65
-
-grey65
-
-gray64
-
-grey64
-
-gray63
-
-grey63
-
-gray62
-
-grey62
-
-gray61
-
-grey61
-
-gray60
-
-grey60
-
-gray59
-
-grey59
-
-gray58
-
-grey58
-
-gray57
-
-grey57
-
-gray56
-
-grey56
-
-gray55
-
-grey55
-
-gray54
-
-grey54
-
-gray53
-
-grey53
-
-gray52
-
-grey52
-
-gray51
-
-grey51
-
-fractal
-
-gray50
-
-grey50
-
-gray
-
-gray49
-
-grey49
-
-gray48
-
-grey48
-
-gray47
-
-grey47
-
-gray46
-
-grey46
-
-gray45
-
-grey45
-
-gray44
-
-grey44
-
-gray43
-
-grey43
-
-gray42
-
-grey42
-
-DimGray
-
-DimGrey
-
-gray41
-
-grey41
-
-gray40
-
-grey40
-
-gray39
-
-grey39
-
-gray38
-
-grey38
-
-gray37
-
-grey37
-
-gray36
-
-grey36
-
-gray35
-
-grey35
-
-gray34
-
-grey34
-
-gray33
-
-grey33
-
-gray32
-
-grey32
-
-gray31
-
-grey31
-
-gray30
-
-grey30
-
-gray29
-
-grey29
-
-gray28
-
-grey28
-
-gray27
-
-grey27
-
-gray26
-
-grey26
-
-gray25
-
-grey25
-
-gray24
-
-grey24
-
-gray23
-
-grey23
-
-gray22
-
-grey22
-
-gray21
-
-grey21
-
-gray20
-
-grey20
-
-gray19
-
-grey19
-
-gray18
-
-grey18
-
-gray17
-
-grey17
-
-gray16
-
-grey16
-
-gray15
-
-grey15
-
-gray14
-
-grey14
-
-gray13
-
-grey13
-
-gray12
-
-grey12
-
-gray11
-
-grey11
-
-gray10
-
-grey10
-
-gray9
-
-grey9
-
-gray8
-
-grey8
-
-gray7
-
-grey7
-
-gray6
-
-grey6
-
-gray5
-
-grey5
-
-gray4
-
-grey4
-
-gray3
-
-grey3
-
-gray2
-
-grey2
-
-gray1
-
-grey1
-
-black
-
-gray0
-
-grey0
-
-opaque
-
-none
-
-transparent
-
- -
-WHERE THE COLORNAMES WILL GO -
- -
CLICK TO SHOW HEXES
-
CLICK TO SHOW INFO
- - - - - - - diff --git a/share/frontend/imgrid/colors/colors/junk/divlist.js b/share/frontend/imgrid/colors/colors/junk/divlist.js deleted file mode 100755 index 49ee990..0000000 --- a/share/frontend/imgrid/colors/colors/junk/divlist.js +++ /dev/null @@ -1,2 +0,0 @@ -var divlist = ['#d0', '#d1', '#d2', '#d3', '#d4', '#d5', '#d6', '#d7', '#d8', '#d9', '#d10', '#d11', '#d12', '#d13', '#d14', '#d15', '#d16', '#d17', '#d18', '#d19', '#d20', '#d21', '#d22', '#d23', '#d24', '#d25', '#d26', '#d27', '#d28', '#d29', '#d30', '#d31', '#d32', '#d33', '#d34', '#d35', '#d36', '#d37', '#d38', '#d39', '#d40', '#d41', '#d42', '#d43', '#d44', '#d45', '#d46', '#d47', '#d48', '#d49', '#d50', '#d51', '#d52', '#d53', '#d54', '#d55', '#d56', '#d57', '#d58', '#d59', '#d60', '#d61', '#d62', '#d63', '#d64', '#d65', '#d66', '#d67', '#d68', '#d69', '#d70', '#d71', '#d72', '#d73', '#d74', '#d75', '#d76', '#d77', '#d78', '#d79', '#d80', '#d81', '#d82', '#d83', '#d84', '#d85', '#d86', '#d87', '#d88', '#d89', '#d90', '#d91', '#d92', '#d93', '#d94', '#d95', '#d96', '#d97', '#d98', '#d99', '#d100', '#d101', '#d102', '#d103', '#d104', '#d105', '#d106', '#d107', '#d108', '#d109', '#d110', '#d111', '#d112', '#d113', '#d114', '#d115', '#d116', '#d117', '#d118', '#d119', '#d120', '#d121', '#d122', '#d123', '#d124', '#d125', '#d126', '#d127', '#d128', '#d129', '#d130', '#d131', '#d132', '#d133', '#d134', '#d135', '#d136', '#d137', '#d138', '#d139', '#d140', '#d141', '#d142', '#d143', '#d144', '#d145', '#d146', '#d147', '#d148', '#d149', '#d150', '#d151', '#d152', '#d153', '#d154', '#d155', '#d156', '#d157', '#d158', '#d159', '#d160', '#d161', '#d162', '#d163', '#d164', '#d165', '#d166', '#d167', '#d168', '#d169', '#d170', '#d171', '#d172', '#d173', '#d174', '#d175', '#d176', '#d177', '#d178', '#d179', '#d180', '#d181', '#d182', '#d183', '#d184', '#d185', '#d186', '#d187', '#d188', '#d189', '#d190', '#d191', '#d192', '#d193', '#d194', '#d195', '#d196', '#d197', '#d198', '#d199', '#d200', '#d201', '#d202', '#d203', '#d204', '#d205', '#d206', '#d207', '#d208', '#d209', '#d210', '#d211', '#d212', '#d213', '#d214', '#d215', '#d216', '#d217', '#d218', '#d219', '#d220', '#d221', '#d222', '#d223', '#d224', '#d225', '#d226', '#d227', '#d228', '#d229', '#d230', '#d231', '#d232', '#d233', '#d234', '#d235', '#d236', '#d237', '#d238', '#d239', '#d240', '#d241', '#d242', '#d243', '#d244', '#d245', '#d246', '#d247', '#d248', '#d249', '#d250', '#d251', '#d252', '#d253', '#d254', '#d255', '#d256', '#d257', '#d258', '#d259', '#d260', '#d261', '#d262', '#d263', '#d264', '#d265', '#d266', '#d267', '#d268', '#d269', '#d270', '#d271', '#d272', '#d273', '#d274', '#d275', '#d276', '#d277', '#d278', '#d279', '#d280', '#d281', '#d282', '#d283', '#d284', '#d285', '#d286', '#d287', '#d288', '#d289', '#d290', '#d291', '#d292', '#d293', '#d294', '#d295', '#d296', '#d297', '#d298', '#d299', '#d300', '#d301', '#d302', '#d303', '#d304', '#d305', '#d306', '#d307', '#d308', '#d309', '#d310', '#d311', '#d312', '#d313', '#d314', '#d315', '#d316', '#d317', '#d318', '#d319', '#d320', '#d321', '#d322', '#d323', '#d324', '#d325', '#d326', '#d327', '#d328', '#d329', '#d330', '#d331', '#d332', '#d333', '#d334', '#d335', '#d336', '#d337', '#d338', '#d339', '#d340', '#d341', '#d342', '#d343', '#d344', '#d345', '#d346', '#d347', '#d348', '#d349', '#d350', '#d351', '#d352', '#d353', '#d354', '#d355', '#d356', '#d357', '#d358', '#d359', '#d360', '#d361', '#d362', '#d363', '#d364', '#d365', '#d366', '#d367', '#d368', '#d369', '#d370', '#d371', '#d372', '#d373', '#d374', '#d375', '#d376', '#d377', '#d378', '#d379', '#d380', '#d381', '#d382', '#d383', '#d384', '#d385', '#d386', '#d387', '#d388', '#d389', '#d390', '#d391', '#d392', '#d393', '#d394', '#d395', '#d396', '#d397', '#d398', '#d399', '#d400', '#d401', '#d402', '#d403', '#d404', '#d405', '#d406', '#d407', '#d408', '#d409', '#d410', '#d411', '#d412', '#d413', '#d414', '#d415', '#d416', '#d417', '#d418', '#d419', '#d420', '#d421', '#d422', '#d423', '#d424', '#d425', '#d426', '#d427', '#d428', '#d429', '#d430', '#d431', '#d432', '#d433', '#d434', '#d435', '#d436', '#d437', '#d438', '#d439', '#d440', '#d441', '#d442', '#d443', '#d444', '#d445', '#d446', '#d447', '#d448', '#d449', '#d450', '#d451', '#d452', '#d453', '#d454', '#d455', '#d456', '#d457', '#d458', '#d459', '#d460', '#d461', '#d462', '#d463', '#d464', '#d465', '#d466', '#d467', '#d468', '#d469', '#d470', '#d471', '#d472', '#d473', '#d474', '#d475', '#d476', '#d477', '#d478', '#d479', '#d480', '#d481', '#d482', '#d483', '#d484', '#d485', '#d486', '#d487', '#d488', '#d489', '#d490', '#d491', '#d492', '#d493', '#d494', '#d495', '#d496', '#d497', '#d498', '#d499', '#d500', '#d501', '#d502', '#d503', '#d504', '#d505', '#d506', '#d507', '#d508', '#d509', '#d510', '#d511', '#d512', '#d513', '#d514', '#d515', '#d516', '#d517', '#d518', '#d519', '#d520', '#d521', '#d522', '#d523', '#d524', '#d525', '#d526', '#d527', '#d528', '#d529', '#d530', '#d531', '#d532', '#d533', '#d534', '#d535', '#d536', '#d537', '#d538', '#d539', '#d540', '#d541', '#d542', '#d543', '#d544', '#d545', '#d546', '#d547', '#d548', '#d549', '#d550', '#d551', '#d552', '#d553', '#d554', '#d555', '#d556', '#d557', '#d558', '#d559', '#d560', '#d561', '#d562', '#d563', '#d564', '#d565', '#d566', '#d567', '#d568', '#d569', '#d570', '#d571', '#d572', '#d573', '#d574', '#d575', '#d576', '#d577', '#d578', '#d579', '#d580', '#d581', '#d582', '#d583', '#d584', '#d585', '#d586', '#d587', '#d588', '#d589', '#d590', '#d591', '#d592', '#d593', '#d594', '#d595', '#d596', '#d597', '#d598', '#d599', '#d600', '#d601', '#d602', '#d603', '#d604', '#d605', '#d606', '#d607', '#d608', '#d609', '#d610', '#d611', '#d612', '#d613', '#d614', '#d615', '#d616', '#d617', '#d618', '#d619', '#d620', '#d621', '#d622', '#d623', '#d624', '#d625', '#d626', '#d627', '#d628', '#d629', '#d630', '#d631', '#d632', '#d633', '#d634', '#d635', '#d636', '#d637', '#d638', '#d639', '#d640', '#d641', '#d642', '#d643', '#d644', '#d645', '#d646', '#d647', '#d648', '#d649', '#d650', '#d651', '#d652', '#d653', '#d654', '#d655', '#d656', '#d657', '#d658', '#d659', '#d660', '#d661', '#d662', '#d663', '#d664', '#d665', '#d666', '#d667', '#d668', '#d669', '#d670', '#d671', '#d672', '#d673'] -var divtoname = {'#d322': 'khaki4', '#d600': 'gray34', '#d118': 'MediumPurple1', '#d119': 'MediumPurple2', '#d114': 'purple3', '#d115': 'purple4', '#d116': 'purple1', '#d117': 'MediumPurple', '#d110': 'purple', '#d111': 'indigo', '#d112': 'BlueViolet', '#d113': 'purple2', '#d529': 'grey67', '#d231': 'DarkSlateGray', '#d339': 'LightGoldenrod3', '#d233': 'MediumTurquoise', '#d232': 'DarkSlateGrey', '#d235': 'turquoise', '#d234': 'LightSeaGreen', '#d237': 'aquamarine', '#d236': 'aquamarine4', '#d239': 'aquamarine2', '#d238': 'aquamarine1', '#d332': 'gold1', '#d333': 'gold2', '#d334': 'gold3', '#d335': 'gold4', '#d336': 'LightGoldenrod', '#d337': 'LightGoldenrod4', '#d424': 'LightSalmon3', '#d425': 'LightSalmon', '#d426': 'LightSalmon1', '#d427': 'LightSalmon4', '#d420': 'sienna', '#d421': 'sienna1', '#d422': 'sienna2', '#d423': 'sienna3', '#d587': 'grey41', '#d586': 'gray41', '#d585': 'DimGrey', '#d584': 'DimGray', '#d428': 'LightSalmon2', '#d429': 'coral', '#d581': 'grey43', '#d580': 'gray43', '#d89': 'thistle4', '#d88': 'plum3', '#d349': 'goldenrod4', '#d348': 'goldenrod3', '#d81': 'thistle2', '#d80': 'thistle1', '#d83': 'plum2', '#d82': 'plum1', '#d85': 'thistle3', '#d84': 'thistle', '#d87': 'violet', '#d86': 'plum', '#d601': 'grey34', '#d67': 'DeepPink3', '#d66': 'DeepPink2', '#d65': 'DeepPink1', '#d64': 'DeepPink', '#d63': 'HotPink', '#d62': 'HotPink4', '#d61': 'HotPink1', '#d60': 'HotPink2', '#d69': 'maroon1', '#d68': 'DeepPink4', '#d510': 'grey76', '#d511': 'silver', '#d512': 'gray75', '#d513': 'grey75', '#d514': 'gray74', '#d515': 'grey74', '#d516': 'gray73', '#d517': 'grey73', '#d518': 'gray72', '#d519': 'grey72', '#d150': 'LightSteelBlue2', '#d151': 'LightSteelBlue3', '#d152': 'LightSteelBlue4', '#d153': 'SlateGray4', '#d154': 'SlateGray1', '#d155': 'SlateGray2', '#d156': 'SlateGray3', '#d157': 'LightSlateGray', '#d158': 'LightSlateGrey', '#d159': 'SlateGray', '#d565': 'gray50', '#d564': 'fractal', '#d567': 'gray', '#d566': 'grey50', '#d561': 'grey52', '#d560': 'gray52', '#d563': 'grey51', '#d562': 'gray51', '#d604': 'gray32', '#d605': 'grey32', '#d606': 'gray31', '#d607': 'grey31', '#d569': 'grey49', '#d568': 'gray49', '#d602': 'gray33', '#d603': 'grey33', '#d125': 'SlateBlue', '#d124': 'MediumSlateBlue', '#d127': 'SlateBlue2', '#d126': 'SlateBlue1', '#d121': 'MediumPurple4', '#d120': 'MediumPurple3', '#d123': 'LightSlateBlue', '#d122': 'DarkSlateBlue', '#d359': 'wheat1', '#d129': 'SlateBlue4', '#d128': 'SlateBlue3', '#d301': 'LightYellow', '#d300': 'ivory1', '#d303': 'beige', '#d302': 'LightYellow1', '#d305': 'LightGoldenrodYellow', '#d304': 'ivory2', '#d307': 'ivory3', '#d306': 'LightYellow2', '#d309': 'ivory4', '#d308': 'LightYellow3', '#d462': 'grey98', '#d351': 'DarkGoldenrod1', '#d464': 'grey97', '#d465': 'gray96', '#d466': 'grey96', '#d467': 'WhiteSmoke', '#d463': 'gray97', '#d268': 'PaleGreen3', '#d269': 'honeydew4', '#d266': 'DarkSeaGreen3', '#d267': 'DarkSeaGreen', '#d264': 'LightGreen', '#d265': 'PaleGreen2', '#d262': 'PaleGreen', '#d263': 'honeydew3', '#d260': 'DarkSeaGreen2', '#d261': 'PaleGreen1', '#d598': 'gray35', '#d29': 'firebrick4', '#d28': 'brown4', '#d23': 'red2', '#d22': 'firebrick3', '#d21': 'RosyBrown4', '#d20': 'red1', '#d27': 'IndianRed4', '#d26': 'red3', '#d25': 'brown', '#d24': 'firebrick', '#d599': 'grey35', '#d338': 'LightGoldenrod1', '#d419': 'sienna4', '#d418': 'seashell1', '#d230': 'teal', '#d415': 'chocolate4', '#d414': 'chocolate3', '#d417': 'seashell', '#d416': 'SaddleBrown', '#d411': 'chocolate', '#d410': 'seashell3', '#d413': 'chocolate2', '#d412': 'chocolate1', '#d398': 'tan1', '#d399': 'tan2', '#d392': 'DarkOrange1', '#d393': 'linen', '#d390': 'bisque1', '#d391': 'bisque3', '#d396': 'DarkOrange4', '#d397': 'peru', '#d394': 'DarkOrange2', '#d395': 'DarkOrange3', '#d194': 'CadetBlue2', '#d195': 'CadetBlue3', '#d196': 'CadetBlue4', '#d197': 'turquoise1', '#d190': 'LightBlue', '#d191': 'LightBlue4', '#d192': 'PowderBlue', '#d193': 'CadetBlue1', '#d198': 'turquoise2', '#d199': 'turquoise3', '#d330': 'cornsilk4', '#d331': 'gold', '#d640': 'gray14', '#d641': 'grey14', '#d642': 'gray13', '#d643': 'grey13', '#d644': 'gray12', '#d645': 'grey12', '#d646': 'gray11', '#d647': 'grey11', '#d648': 'gray10', '#d649': 'grey10', '#d668': 'black', '#d486': 'gainsboro', '#d487': 'gray86', '#d484': 'gray87', '#d485': 'grey87', '#d482': 'gray88', '#d483': 'grey88', '#d480': 'gray89', '#d481': 'grey89', '#d521': 'grey71', '#d520': 'gray71', '#d523': 'grey70', '#d522': 'gray70', '#d525': 'grey69', '#d524': 'gray69', '#d488': 'grey86', '#d489': 'gray85', '#d430': 'OrangeRed', '#d660': 'gray4', '#d169': 'SteelBlue1', '#d168': 'SteelBlue', '#d661': 'grey4', '#d161': 'DodgerBlue', '#d160': 'SlateGrey', '#d163': 'DodgerBlue2', '#d162': 'DodgerBlue1', '#d165': 'DodgerBlue3', '#d164': 'DodgerBlue4', '#d167': 'SteelBlue4', '#d166': 'AliceBlue', '#d635': 'grey17', '#d634': 'gray17', '#d637': 'grey16', '#d636': 'gray16', '#d631': 'grey19', '#d630': 'gray19', '#d633': 'grey18', '#d632': 'gray18', '#d639': 'grey15', '#d638': 'gray15', '#d368': 'PapayaWhip', '#d222': 'cyan', '#d223': 'cyan1', '#d220': 'LightCyan4', '#d221': 'aqua', '#d226': 'DarkSlateGray4', '#d227': 'cyan3', '#d224': 'PaleTurquoise4', '#d225': 'cyan2', '#d228': 'cyan4', '#d229': 'DarkCyan', '#d590': 'gray39', '#d538': 'gray63', '#d539': 'grey63', '#d591': 'grey39', '#d451': 'MistyRose', '#d450': 'MistyRose2', '#d453': 'salmon', '#d452': 'MistyRose1', '#d455': 'white', '#d454': 'MistyRose3', '#d457': 'grey100', '#d456': 'gray100', '#d459': 'gray99', '#d458': 'grey100', '#d592': 'gray38', '#d593': 'grey38', '#d594': 'gray37', '#d595': 'grey37', '#d596': 'gray36', '#d597': 'grey36', '#d297': 'YellowGreen', '#d296': 'OliveDrab3', '#d295': 'OliveDrab2', '#d294': 'OliveDrab1', '#d293': 'OliveDrab', '#d292': 'DarkOliveGreen', '#d291': 'DarkOliveGreen4', '#d290': 'DarkOliveGreen2', '#d356': 'wheat2', '#d357': 'OldLace', '#d354': 'DarkGoldenrod4', '#d355': 'FloralWhite', '#d352': 'DarkGoldenrod2', '#d353': 'DarkGoldenrod3', '#d299': 'ivory', '#d298': 'OliveDrab4', '#d468': 'gray95', '#d534': 'gray65', '#d535': 'grey65', '#d52': 'LavenderBlush2', '#d53': 'LavenderBlush4', '#d50': 'LavenderBlush1', '#d51': 'LavenderBlush3', '#d56': 'VioletRed3', '#d57': 'VioletRed1', '#d54': 'maroon', '#d55': 'HotPink3', '#d58': 'VioletRed2', '#d59': 'VioletRed4', '#d469': 'grey95', '#d558': 'gray53', '#d559': 'grey53', '#d576': 'gray45', '#d577': 'grey45', '#d574': 'gray46', '#d575': 'grey46', '#d572': 'gray47', '#d573': 'grey47', '#d570': 'gray48', '#d571': 'grey48', '#d671': 'opaque', '#d670': 'grey0', '#d673': 'transparent', '#d672': 'none', '#d578': 'gray44', '#d579': 'grey44', '#d589': 'grey40', '#d588': 'gray40', '#d4': 'RosyBrown2', '#d5': 'snow3', '#d6': 'LightCoral', '#d7': 'IndianRed1', '#d0': 'snow', '#d1': 'snow1', '#d2': 'snow2', '#d3': 'RosyBrown1', '#d8': 'RosyBrown3', '#d9': 'IndianRed2', '#d136': 'MediumBlue', '#d137': 'blue4', '#d134': 'blue2', '#d135': 'blue3', '#d132': 'blue', '#d133': 'blue1', '#d130': 'GhostWhite', '#d131': 'lavender', '#d583': 'grey42', '#d138': 'DarkBlue', '#d139': 'MidnightBlue', '#d312': 'yellow1', '#d313': 'yellow2', '#d310': 'LightYellow4', '#d311': 'yellow', '#d316': 'olive', '#d317': 'DarkKhaki', '#d314': 'yellow3', '#d315': 'yellow4', '#d318': 'khaki2', '#d319': 'LemonChiffon4', '#d259': 'DarkSeaGreen1', '#d258': 'honeydew2', '#d253': 'SeaGreen4', '#d252': 'SeaGreen1', '#d251': 'SeaGreen3', '#d250': 'SeaGreen', '#d257': 'honeydew1', '#d256': 'honeydew', '#d255': 'MediumForestGreen', '#d254': 'SeaGreen2', '#d345': 'goldenrod', '#d344': 'cornsilk1', '#d612': 'gray28', '#d347': 'goldenrod2', '#d461': 'gray98', '#d346': 'goldenrod1', '#d479': 'grey90', '#d341': 'cornsilk3', '#d478': 'gray90', '#d340': 'LightGoldenrod2', '#d343': 'cornsilk', '#d342': 'cornsilk2', '#d528': 'gray67', '#d408': 'seashell4', '#d409': 'seashell2', '#d406': 'PeachPuff3', '#d407': 'SandyBrown', '#d404': 'PeachPuff4', '#d405': 'PeachPuff2', '#d402': 'PeachPuff', '#d403': 'PeachPuff1', '#d400': 'tan3', '#d401': 'tan4', '#d552': 'gray56', '#d460': 'grey99', '#d16': 'firebrick2', '#d17': 'snow4', '#d14': 'IndianRed', '#d15': 'IndianRed3', '#d12': 'firebrick1', '#d13': 'brown2', '#d10': 'RosyBrown', '#d11': 'brown1', '#d532': 'gray66', '#d533': 'grey66', '#d530': 'DarkGray', '#d531': 'DarkGrey', '#d536': 'gray64', '#d537': 'grey64', '#d18': 'brown3', '#d19': 'red', '#d329': 'MediumGoldenRod', '#d328': 'LemonChiffon2', '#d178': 'LightSkyBlue1', '#d179': 'LightSkyBlue2', '#d172': 'SkyBlue4', '#d173': 'SkyBlue1', '#d170': 'SteelBlue2', '#d171': 'SteelBlue3', '#d176': 'LightSkyBlue', '#d177': 'LightSkyBlue4', '#d174': 'SkyBlue2', '#d175': 'SkyBlue3', '#d626': 'gray21', '#d627': 'grey21', '#d624': 'gray22', '#d625': 'grey22', '#d622': 'gray23', '#d623': 'grey23', '#d620': 'gray24', '#d621': 'grey24', '#d628': 'gray20', '#d629': 'grey20', '#d219': 'azure4', '#d218': 'DarkSlateGray3', '#d217': 'PaleTurquoise3', '#d216': 'DarkSlateGray2', '#d215': 'LightCyan3', '#d214': 'azure3', '#d213': 'DarkSlateGray1', '#d212': 'PaleTurquoise2', '#d211': 'PaleTurquoise', '#d210': 'PaleTurquoise1', '#d669': 'gray0', '#d582': 'gray42', '#d442': 'coral3', '#d443': 'coral4', '#d440': 'coral1', '#d441': 'coral2', '#d446': 'tomato1', '#d447': 'tomato2', '#d444': 'tomato4', '#d445': 'tomato', '#d448': 'tomato3', '#d449': 'MistyRose4', '#d280': 'DarkGreen', '#d281': 'LawnGreen', '#d282': 'chartreuse', '#d283': 'chartreuse1', '#d284': 'chartreuse2', '#d285': 'chartreuse3', '#d286': 'chartreuse4', '#d287': 'GreenYellow', '#d288': 'DarkOliveGreen3', '#d289': 'DarkOliveGreen1', '#d361': 'orange', '#d360': 'wheat3', '#d367': 'moccasin', '#d366': 'wheat4', '#d365': 'orange4', '#d364': 'orange3', '#d49': 'LavenderBlush', '#d48': 'PaleVioletRed3', '#d45': 'PaleVioletRed', '#d44': 'PaleVioletRed4', '#d47': 'PaleVioletRed1', '#d46': 'PaleVioletRed2', '#d41': 'pink2', '#d40': 'pink1', '#d43': 'pink4', '#d42': 'pink3', '#d358': 'wheat', '#d527': 'grey68', '#d526': 'gray68', '#d614': 'gray27', '#d543': 'grey61', '#d542': 'gray61', '#d541': 'grey62', '#d540': 'gray62', '#d547': 'grey59', '#d546': 'gray59', '#d545': 'grey60', '#d544': 'gray60', '#d662': 'gray3', '#d663': 'grey3', '#d549': 'grey58', '#d548': 'gray58', '#d666': 'gray1', '#d667': 'grey1', '#d664': 'gray2', '#d665': 'grey2', '#d103': 'MediumOrchid4', '#d102': 'MediumOrchid3', '#d101': 'MediumOrchid2', '#d100': 'MediumOrchid1', '#d107': 'DarkOrchid3', '#d106': 'DarkOrchid1', '#d105': 'DarkOrchid', '#d104': 'DarkViolet', '#d109': 'DarkOrchid4', '#d108': 'DarkOrchid2', '#d244': 'SpringGreen', '#d245': 'SpringGreen1', '#d246': 'SpringGreen2', '#d247': 'SpringGreen3', '#d240': 'aquamarine3', '#d241': 'MediumAquamarine', '#d242': 'MediumSpringGreen', '#d243': 'MintCream', '#d327': 'LemonChiffon3', '#d326': 'khaki', '#d325': 'LemonChiffon1', '#d324': 'LemonChiffon', '#d248': 'SpringGreen4', '#d249': 'MediumSeaGreen', '#d321': 'khaki3', '#d320': 'khaki1', '#d350': 'DarkGoldenrod', '#d439': 'salmon4', '#d438': 'salmon3', '#d98': 'purple', '#d99': 'MediumOrchid', '#d96': 'DarkMagenta', '#d97': 'magenta4', '#d94': 'magenta2', '#d95': 'magenta3', '#d92': 'magenta1', '#d93': 'plum4', '#d90': 'fuchsia', '#d91': 'magenta', '#d433': 'OrangeRed3', '#d432': 'OrangeRed2', '#d431': 'OrangeRed1', '#d74': 'VioletRed', '#d75': 'orchid2', '#d76': 'orchid', '#d77': 'orchid1', '#d70': 'maroon2', '#d71': 'maroon3', '#d72': 'maroon4', '#d73': 'MediumVioletRed', '#d437': 'salmon2', '#d78': 'orchid3', '#d79': 'orchid4', '#d436': 'salmon1', '#d435': 'DarkSalmon', '#d434': 'OrangeRed4', '#d507': 'gray77', '#d506': 'grey78', '#d505': 'gray78', '#d504': 'grey79', '#d503': 'gray79', '#d502': 'grey80', '#d501': 'gray80', '#d500': 'grey81', '#d509': 'gray76', '#d508': 'grey77', '#d473': 'grey93', '#d369': 'NavajoWhite3', '#d147': 'CornflowerBlue', '#d146': 'RoyalBlue4', '#d145': 'RoyalBlue3', '#d144': 'RoyalBlue2', '#d143': 'RoyalBlue1', '#d142': 'RoyalBlue', '#d141': 'NavyBlue', '#d140': 'navy', '#d149': 'LightSteelBlue1', '#d148': 'LightSteelBlue', '#d472': 'gray93', '#d613': 'grey28', '#d363': 'orange2', '#d611': 'grey29', '#d610': 'gray29', '#d617': 'grey26', '#d616': 'gray26', '#d615': 'grey27', '#d362': 'orange1', '#d619': 'grey25', '#d618': 'gray25', '#d208': 'azure2', '#d209': 'LightCyan2', '#d200': 'turquoise4', '#d201': 'cadet blue', '#d202': 'CadetBlue', '#d203': 'DarkTurquoise', '#d204': 'azure', '#d205': 'azure1', '#d206': 'LightCyan', '#d207': 'LightCyan1', '#d608': 'gray30', '#d609': 'grey30', '#d374': 'NavajoWhite4', '#d375': 'AntiqueWhite4', '#d376': 'AntiqueWhite', '#d377': 'tan', '#d370': 'BlanchedAlmond', '#d371': 'NavajoWhite', '#d372': 'NavajoWhite1', '#d373': 'NavajoWhite2', '#d477': 'grey91', '#d476': 'gray91', '#d475': 'grey92', '#d474': 'gray92', '#d378': 'bisque4', '#d379': 'burlywood', '#d471': 'grey94', '#d470': 'gray94', '#d279': 'green', '#d278': 'green4', '#d275': 'PaleGreen4', '#d274': 'green2', '#d277': 'ForestGreen', '#d276': 'green3', '#d271': 'lime', '#d270': 'green1', '#d273': 'DarkSeaGreen4', '#d272': 'LimeGreen', '#d38': 'pink', '#d39': 'crimson', '#d30': 'DarkRed', '#d31': 'red4', '#d32': 'maroon', '#d33': 'LightPink1', '#d34': 'LightPink3', '#d35': 'LightPink4', '#d36': 'LightPink2', '#d37': 'LightPink', '#d658': 'gray5', '#d389': 'bisque', '#d388': 'bisque2', '#d381': 'burlywood1', '#d380': 'AntiqueWhite2', '#d383': 'burlywood2', '#d382': 'burlywood3', '#d385': 'burlywood4', '#d384': 'AntiqueWhite1', '#d387': 'DarkOrange', '#d386': 'AntiqueWhite3', '#d189': 'LightBlue2', '#d188': 'LightBlue1', '#d183': 'DeepSkyBlue', '#d182': 'LightBlue3', '#d181': 'SkyBlue', '#d180': 'LightSkyBlue3', '#d187': 'DeepSkyBlue3', '#d186': 'DeepSkyBlue4', '#d185': 'DeepSkyBlue2', '#d184': 'DeepSkyBlue1', '#d657': 'grey6', '#d656': 'gray6', '#d655': 'grey7', '#d654': 'gray7', '#d653': 'grey8', '#d652': 'gray8', '#d651': 'grey9', '#d650': 'gray9', '#d550': 'gray57', '#d659': 'grey5', '#d551': 'grey57', '#d495': 'LightGray', '#d494': 'grey83', '#d497': 'gray82', '#d496': 'LightGrey', '#d491': 'gray84', '#d490': 'grey85', '#d493': 'gray83', '#d492': 'grey84', '#d554': 'gray55', '#d555': 'grey55', '#d556': 'gray54', '#d557': 'grey54', '#d499': 'gray81', '#d498': 'grey82', '#d323': 'PaleGoldenrod', '#d553': 'grey56'} \ No newline at end of file diff --git a/share/frontend/imgrid/colors/colors/junk/divlistmaker b/share/frontend/imgrid/colors/colors/junk/divlistmaker deleted file mode 100755 index b461bc9..0000000 --- a/share/frontend/imgrid/colors/colors/junk/divlistmaker +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/python2.7 - - - -divlist = [] -for x in range(674): - divlist.append("#d"+str(x)) - -print str(divlist) - -f = open('colordict.js', 'a') - -f.write("var divlist = ") -f.write(str(divlist)) -f.close() - -f = open('colors.html', 'r') -lines = f.readlines() -colornames = [] -for line in lines: - if 'right' in line and 'td' in line: - colornames.append(line[22:-6]) - -divtoname = {} -for i in divlist: - divtoname[i] = colornames[divlist.index(i)] - -print divtoname -f = open('colordict.js', 'a') -f.write("\nvar divtoname = ") -f.write(str(divtoname)) - diff --git a/share/frontend/imgrid/colors/colors/junk/mapmaker.html b/share/frontend/imgrid/colors/colors/junk/mapmaker.html deleted file mode 100755 index 05ca832..0000000 --- a/share/frontend/imgrid/colors/colors/junk/mapmaker.html +++ /dev/null @@ -1,3586 +0,0 @@ - - - - -
-
-snow
-
-snow1
-
-snow2
-
-RosyBrown1
-
-RosyBrown2
-
-snow3
-
-LightCoral
-
-IndianRed1
-
-RosyBrown3
-
-IndianRed2
-
-RosyBrown
-
-brown1
-
-firebrick1
-
-brown2
-
-IndianRed
-
-IndianRed3
-
-firebrick2
-
-snow4
-
-brown3
-
-red
-
-red1
-
-RosyBrown4
-
-firebrick3
-
-red2
-
-firebrick
-
-brown
-
-red3
-
-IndianRed4
-
-brown4
-
-firebrick4
-
-DarkRed
-
-red4
-
-maroon
-
-LightPink1
-
-LightPink3
-
-LightPink4
-
-LightPink2
-
-LightPink
-
-pink
-
-crimson
-
-pink1
-
-pink2
-
-pink3
-
-pink4
-
-PaleVioletRed4
-
-PaleVioletRed
-
-PaleVioletRed2
-
-PaleVioletRed1
-
-PaleVioletRed3
-
-LavenderBlush
-
-LavenderBlush1
-
-LavenderBlush3
-
-LavenderBlush2
-
-LavenderBlush4
-
-maroon
-
-HotPink3
-
-VioletRed3
-
-VioletRed1
-
-VioletRed2
-
-VioletRed4
-
-HotPink2
-
-HotPink1
-
-HotPink4
-
-HotPink
-
-DeepPink
-
-DeepPink1
-
-DeepPink2
-
-DeepPink3
-
-DeepPink4
-
-maroon1
-
-maroon2
-
-maroon3
-
-maroon4
-
-MediumVioletRed
-
-VioletRed
-
-orchid2
-
-orchid
-
-orchid1
-
-orchid3
-
-orchid4
-
-thistle1
-
-thistle2
-
-plum1
-
-plum2
-
-thistle
-
-thistle3
-
-plum
-
-violet
-
-plum3
-
-thistle4
-
-fuchsia
-
-magenta
-
-magenta1
-
-plum4
-
-magenta2
-
-magenta3
-
-DarkMagenta
-
-magenta4
-
-purple
-
-MediumOrchid
-
-MediumOrchid1
-
-MediumOrchid2
-
-MediumOrchid3
-
-MediumOrchid4
-
-DarkViolet
-
-DarkOrchid
-
-DarkOrchid1
-
-DarkOrchid3
-
-DarkOrchid2
-
-DarkOrchid4
-
-purple
-
-indigo
-
-BlueViolet
-
-purple2
-
-purple3
-
-purple4
-
-purple1
-
-MediumPurple
-
-MediumPurple1
-
-MediumPurple2
-
-MediumPurple3
-
-MediumPurple4
-
-DarkSlateBlue
-
-LightSlateBlue
-
-MediumSlateBlue
-
-SlateBlue
-
-SlateBlue1
-
-SlateBlue2
-
-SlateBlue3
-
-SlateBlue4
-
-GhostWhite
-
-lavender
-
-blue
-
-blue1
-
-blue2
-
-blue3
-
-MediumBlue
-
-blue4
-
-DarkBlue
-
-MidnightBlue
-
-navy
-
-NavyBlue
-
-RoyalBlue
-
-RoyalBlue1
-
-RoyalBlue2
-
-RoyalBlue3
-
-RoyalBlue4
-
-CornflowerBlue
-
-LightSteelBlue
-
-LightSteelBlue1
-
-LightSteelBlue2
-
-LightSteelBlue3
-
-LightSteelBlue4
-
-SlateGray4
-
-SlateGray1
-
-SlateGray2
-
-SlateGray3
-
-LightSlateGray
-
-LightSlateGrey
-
-SlateGray
-
-SlateGrey
-
-DodgerBlue
-
-DodgerBlue1
-
-DodgerBlue2
-
-DodgerBlue4
-
-DodgerBlue3
-
-AliceBlue
-
-SteelBlue4
-
-SteelBlue
-
-SteelBlue1
-
-SteelBlue2
-
-SteelBlue3
-
-SkyBlue4
-
-SkyBlue1
-
-SkyBlue2
-
-SkyBlue3
-
-LightSkyBlue
-
-LightSkyBlue4
-
-LightSkyBlue1
-
-LightSkyBlue2
-
-LightSkyBlue3
-
-SkyBlue
-
-LightBlue3
-
-DeepSkyBlue
-
-DeepSkyBlue1
-
-DeepSkyBlue2
-
-DeepSkyBlue4
-
-DeepSkyBlue3
-
-LightBlue1
-
-LightBlue2
-
-LightBlue
-
-LightBlue4
-
-PowderBlue
-
-CadetBlue1
-
-CadetBlue2
-
-CadetBlue3
-
-CadetBlue4
-
-turquoise1
-
-turquoise2
-
-turquoise3
-
-turquoise4
-
-cadet blue
-
-CadetBlue
-
-DarkTurquoise
-
-azure
-
-azure1
-
-LightCyan
-
-LightCyan1
-
-azure2
-
-LightCyan2
-
-PaleTurquoise1
-
-PaleTurquoise
-
-PaleTurquoise2
-
-DarkSlateGray1
-
-azure3
-
-LightCyan3
-
-DarkSlateGray2
-
-PaleTurquoise3
-
-DarkSlateGray3
-
-azure4
-
-LightCyan4
-
-aqua
-
-cyan
-
-cyan1
-
-PaleTurquoise4
-
-cyan2
-
-DarkSlateGray4
-
-cyan3
-
-cyan4
-
-DarkCyan
-
-teal
-
-DarkSlateGray
-
-DarkSlateGrey
-
-MediumTurquoise
-
-LightSeaGreen
-
-turquoise
-
-aquamarine4
-
-aquamarine
-
-aquamarine1
-
-aquamarine2
-
-aquamarine3
-
-MediumAquamarine
-
-MediumSpringGreen
-
-MintCream
-
-SpringGreen
-
-SpringGreen1
-
-SpringGreen2
-
-SpringGreen3
-
-SpringGreen4
-
-MediumSeaGreen
-
-SeaGreen
-
-SeaGreen3
-
-SeaGreen1
-
-SeaGreen4
-
-SeaGreen2
-
-MediumForestGreen
-
-honeydew
-
-honeydew1
-
-honeydew2
-
-DarkSeaGreen1
-
-DarkSeaGreen2
-
-PaleGreen1
-
-PaleGreen
-
-honeydew3
-
-LightGreen
-
-PaleGreen2
-
-DarkSeaGreen3
-
-DarkSeaGreen
-
-PaleGreen3
-
-honeydew4
-
-green1
-
-lime
-
-LimeGreen
-
-DarkSeaGreen4
-
-green2
-
-PaleGreen4
-
-green3
-
-ForestGreen
-
-green4
-
-green
-
-DarkGreen
-
-LawnGreen
-
-chartreuse
-
-chartreuse1
-
-chartreuse2
-
-chartreuse3
-
-chartreuse4
-
-GreenYellow
-
-DarkOliveGreen3
-
-DarkOliveGreen1
-
-DarkOliveGreen2
-
-DarkOliveGreen4
-
-DarkOliveGreen
-
-OliveDrab
-
-OliveDrab1
-
-OliveDrab2
-
-OliveDrab3
-
-YellowGreen
-
-OliveDrab4
-
-ivory
-
-ivory1
-
-LightYellow
-
-LightYellow1
-
-beige
-
-ivory2
-
-LightGoldenrodYellow
-
-LightYellow2
-
-ivory3
-
-LightYellow3
-
-ivory4
-
-LightYellow4
-
-yellow
-
-yellow1
-
-yellow2
-
-yellow3
-
-yellow4
-
-olive
-
-DarkKhaki
-
-khaki2
-
-LemonChiffon4
-
-khaki1
-
-khaki3
-
-khaki4
-
-PaleGoldenrod
-
-LemonChiffon
-
-LemonChiffon1
-
-khaki
-
-LemonChiffon3
-
-LemonChiffon2
-
-MediumGoldenRod
-
-cornsilk4
-
-gold
-
-gold1
-
-gold2
-
-gold3
-
-gold4
-
-LightGoldenrod
-
-LightGoldenrod4
-
-LightGoldenrod1
-
-LightGoldenrod3
-
-LightGoldenrod2
-
-cornsilk3
-
-cornsilk2
-
-cornsilk
-
-cornsilk1
-
-goldenrod
-
-goldenrod1
-
-goldenrod2
-
-goldenrod3
-
-goldenrod4
-
-DarkGoldenrod
-
-DarkGoldenrod1
-
-DarkGoldenrod2
-
-DarkGoldenrod3
-
-DarkGoldenrod4
-
-FloralWhite
-
-wheat2
-
-OldLace
-
-wheat
-
-wheat1
-
-wheat3
-
-orange
-
-orange1
-
-orange2
-
-orange3
-
-orange4
-
-wheat4
-
-moccasin
-
-PapayaWhip
-
-NavajoWhite3
-
-BlanchedAlmond
-
-NavajoWhite
-
-NavajoWhite1
-
-NavajoWhite2
-
-NavajoWhite4
-
-AntiqueWhite4
-
-AntiqueWhite
-
-tan
-
-bisque4
-
-burlywood
-
-AntiqueWhite2
-
-burlywood1
-
-burlywood3
-
-burlywood2
-
-AntiqueWhite1
-
-burlywood4
-
-AntiqueWhite3
-
-DarkOrange
-
-bisque2
-
-bisque
-
-bisque1
-
-bisque3
-
-DarkOrange1
-
-linen
-
-DarkOrange2
-
-DarkOrange3
-
-DarkOrange4
-
-peru
-
-tan1
-
-tan2
-
-tan3
-
-tan4
-
-PeachPuff
-
-PeachPuff1
-
-PeachPuff4
-
-PeachPuff2
-
-PeachPuff3
-
-SandyBrown
-
-seashell4
-
-seashell2
-
-seashell3
-
-chocolate
-
-chocolate1
-
-chocolate2
-
-chocolate3
-
-chocolate4
-
-SaddleBrown
-
-seashell
-
-seashell1
-
-sienna4
-
-sienna
-
-sienna1
-
-sienna2
-
-sienna3
-
-LightSalmon3
-
-LightSalmon
-
-LightSalmon1
-
-LightSalmon4
-
-LightSalmon2
-
-coral
-
-OrangeRed
-
-OrangeRed1
-
-OrangeRed2
-
-OrangeRed3
-
-OrangeRed4
-
-DarkSalmon
-
-salmon1
-
-salmon2
-
-salmon3
-
-salmon4
-
-coral1
-
-coral2
-
-coral3
-
-coral4
-
-tomato4
-
-tomato
-
-tomato1
-
-tomato2
-
-tomato3
-
-MistyRose4
-
-MistyRose2
-
-MistyRose
-
-MistyRose1
-
-salmon
-
-MistyRose3
-
-white
-
-gray100
-
-grey100
-
-grey100
-
-gray99
-
-grey99
-
-gray98
-
-grey98
-
-gray97
-
-grey97
-
-gray96
-
-grey96
-
-WhiteSmoke
-
-gray95
-
-grey95
-
-gray94
-
-grey94
-
-gray93
-
-grey93
-
-gray92
-
-grey92
-
-gray91
-
-grey91
-
-gray90
-
-grey90
-
-gray89
-
-grey89
-
-gray88
-
-grey88
-
-gray87
-
-grey87
-
-gainsboro
-
-gray86
-
-grey86
-
-gray85
-
-grey85
-
-gray84
-
-grey84
-
-gray83
-
-grey83
-
-LightGray
-
-LightGrey
-
-gray82
-
-grey82
-
-gray81
-
-grey81
-
-gray80
-
-grey80
-
-gray79
-
-grey79
-
-gray78
-
-grey78
-
-gray77
-
-grey77
-
-gray76
-
-grey76
-
-silver
-
-gray75
-
-grey75
-
-gray74
-
-grey74
-
-gray73
-
-grey73
-
-gray72
-
-grey72
-
-gray71
-
-grey71
-
-gray70
-
-grey70
-
-gray69
-
-grey69
-
-gray68
-
-grey68
-
-gray67
-
-grey67
-
-DarkGray
-
-DarkGrey
-
-gray66
-
-grey66
-
-gray65
-
-grey65
-
-gray64
-
-grey64
-
-gray63
-
-grey63
-
-gray62
-
-grey62
-
-gray61
-
-grey61
-
-gray60
-
-grey60
-
-gray59
-
-grey59
-
-gray58
-
-grey58
-
-gray57
-
-grey57
-
-gray56
-
-grey56
-
-gray55
-
-grey55
-
-gray54
-
-grey54
-
-gray53
-
-grey53
-
-gray52
-
-grey52
-
-gray51
-
-grey51
-
-fractal
-
-gray50
-
-grey50
-
-gray
-
-gray49
-
-grey49
-
-gray48
-
-grey48
-
-gray47
-
-grey47
-
-gray46
-
-grey46
-
-gray45
-
-grey45
-
-gray44
-
-grey44
-
-gray43
-
-grey43
-
-gray42
-
-grey42
-
-DimGray
-
-DimGrey
-
-gray41
-
-grey41
-
-gray40
-
-grey40
-
-gray39
-
-grey39
-
-gray38
-
-grey38
-
-gray37
-
-grey37
-
-gray36
-
-grey36
-
-gray35
-
-grey35
-
-gray34
-
-grey34
-
-gray33
-
-grey33
-
-gray32
-
-grey32
-
-gray31
-
-grey31
-
-gray30
-
-grey30
-
-gray29
-
-grey29
-
-gray28
-
-grey28
-
-gray27
-
-grey27
-
-gray26
-
-grey26
-
-gray25
-
-grey25
-
-gray24
-
-grey24
-
-gray23
-
-grey23
-
-gray22
-
-grey22
-
-gray21
-
-grey21
-
-gray20
-
-grey20
-
-gray19
-
-grey19
-
-gray18
-
-grey18
-
-gray17
-
-grey17
-
-gray16
-
-grey16
-
-gray15
-
-grey15
-
-gray14
-
-grey14
-
-gray13
-
-grey13
-
-gray12
-
-grey12
-
-gray11
-
-grey11
-
-gray10
-
-grey10
-
-gray9
-
-grey9
-
-gray8
-
-grey8
-
-gray7
-
-grey7
-
-gray6
-
-grey6
-
-gray5
-
-grey5
-
-gray4
-
-grey4
-
-gray3
-
-grey3
-
-gray2
-
-grey2
-
-gray1
-
-grey1
-
-black
-
-gray0
-
-grey0
-
-opaque
-
-none
-
-transparent
-
- -
-WHERE THE COLORNAMES WILL GO -
- -
CLICK TO SHOW HEXES
-
CLICK TO SHOW INFO
- - - - diff --git a/share/frontend/imgrid/colors/colors/junk/picker.js b/share/frontend/imgrid/colors/colors/junk/picker.js deleted file mode 100755 index 04a49f1..0000000 --- a/share/frontend/imgrid/colors/colors/junk/picker.js +++ /dev/null @@ -1,15 +0,0 @@ -var colorpicker = "
"+"
"+"snow
"+"
"+"snow1
"+"
"+"snow2
"+"
"+"RosyBrown1
"+"
"+"RosyBrown2
"+"
"+"snow3
"+"
"+"LightCoral
"+"
"+"IndianRed1
"+"
"+"RosyBrown3
"+"
"+"IndianRed2
"+"
"+"RosyBrown
"+"
"+"brown1
"+"
"+"firebrick1
"+"
"+"brown2
"+"
"+"IndianRed
"+"
"+"IndianRed3
"+"
"+"firebrick2
"+"
"+"snow4
"+"
"+"brown3
"+"
"+"red
"+"
"+"red1
"+"
"+"RosyBrown4
"+"
"+"firebrick3
"+"
"+"red2
"+"
"+"firebrick
"+"
"+"brown
"+"
"+"red3
"+"
"+"IndianRed4
"+"
"+"brown4
"+"
"+"firebrick4
"+"
"+"DarkRed
"+"
"+"red4
"+"
"+"maroon
"+"
"+"LightPink1
"+"
"+"LightPink3
"+"
"+"LightPink4
"+"
"+"LightPink2
"+"
"+"LightPink
"+"
"+"pink
"+"
"+"crimson
"+"
"+"pink1
"+"
"+"pink2
"+"
"+"pink3
"+"
"+"pink4
"+"
"+"PaleVioletRed4
"+"
"+"PaleVioletRed
"+"
"+"PaleVioletRed2
"+"
"+"PaleVioletRed1
"+"
"+"PaleVioletRed3
"+"
"+"LavenderBlush
"+"
"+"LavenderBlush1
"+"
"+"LavenderBlush3
"+"
"+"LavenderBlush2
"+"
"+"LavenderBlush4
"+"
"+"maroon
"+"
"+"HotPink3
"+"
"+"VioletRed3
"+"
"+"VioletRed1
"+"
"+"VioletRed2
"+"
"+"VioletRed4
"+"
"+"HotPink2
"+"
"+"HotPink1
"+"
"+"HotPink4
"+"
"+"HotPink
"+"
"+"DeepPink
"+"
"+"DeepPink1
"+"
"+"DeepPink2
"+"
"+"DeepPink3
"+"
"+"DeepPink4
"+"
"+"maroon1
"+"
"+"maroon2
"+"
"+"maroon3
"+"
"+"maroon4
"+"
"+"MediumVioletRed
"+"
"+"VioletRed
"+"
"+"orchid2
"+"
"+"orchid
"+"
"+"orchid1
"+"
"+"orchid3
"+"
"+"orchid4
"+"
"+"thistle1
"+"
"+"thistle2
"+"
"+"plum1
"+"
"+"plum2
"+"
"+"thistle
"+"
"+"thistle3
"+"
"+"plum
"+"
"+"violet
"+"
"+"plum3
"+"
"+"thistle4
"+"
"+"fuchsia
"+"
"+"magenta
"+"
"+"magenta1
"+"
"+"plum4
"+"
"+"magenta2
"+"
"+"magenta3
"+"
"+"DarkMagenta
"+"
"+"magenta4
"+"
"+"purple
"+"
"+"MediumOrchid
"+"
"+"MediumOrchid1
"+"
"+"MediumOrchid2
"+"
"+"MediumOrchid3
"+"
"+"MediumOrchid4
"+"
"+"DarkViolet
"+"
"+"DarkOrchid
"+"
"+"DarkOrchid1
"+"
"+"DarkOrchid3
"+"
"+"DarkOrchid2
"+"
"+"DarkOrchid4
"+"
"+"purple
"+"
"+"indigo
"+"
"+"BlueViolet
"+"
"+"purple2
"+"
"+"purple3
"+"
"+"purple4
"+"
"+"purple1
"+"
"+"MediumPurple
"+"
"+"MediumPurple1
"+"
"+"MediumPurple2
"+"
"+"MediumPurple3
"+"
"+"MediumPurple4
"+"
"+"DarkSlateBlue
"+"
"+"LightSlateBlue
"+"
"+"MediumSlateBlue
"+"
"+"SlateBlue
"+"
"+"SlateBlue1
"+"
"+"SlateBlue2
"+"
"+"SlateBlue3
"+"
"+"SlateBlue4
"+"
"+"GhostWhite
"+"
"+"lavender
"+"
"+"blue
"+"
"+"blue1
"+"
"+"blue2
"+"
"+"blue3
"+"
"+"MediumBlue
"+"
"+"blue4
"+"
"+"DarkBlue
"+"
"+"MidnightBlue
"+"
"+"navy
"+"
"+"NavyBlue
"+"
"+"RoyalBlue
"+"
"+"RoyalBlue1
"+"
"+"RoyalBlue2
"+"
"+"RoyalBlue3
"+"
"+"RoyalBlue4
"+"
"+"CornflowerBlue
"+"
"+"LightSteelBlue
"+"
"+"LightSteelBlue1
"+"
"+"LightSteelBlue2
"+"
"+"LightSteelBlue3
"+"
"+"LightSteelBlue4
"+"
"+"SlateGray4
"+"
"+"SlateGray1
"+"
"+"SlateGray2
"+"
"+"SlateGray3
"+"
"+"LightSlateGray
"+"
"+"LightSlateGrey
"+"
"+"SlateGray
"+"
"+"SlateGrey
"+"
"+"DodgerBlue
"+"
"+"DodgerBlue1
"+"
"+"DodgerBlue2
"+"
"+"DodgerBlue4
"+"
"+"DodgerBlue3
"+"
"+"AliceBlue
"+"
"+"SteelBlue4
"+"
"+"SteelBlue
"+"
"+"SteelBlue1
"+"
"+"SteelBlue2
"+"
"+"SteelBlue3
"+"
"+"SkyBlue4
"+"
"+"SkyBlue1
"+"
"+"SkyBlue2
"+"
"+"SkyBlue3
"+"
"+"LightSkyBlue
"+"
"+"LightSkyBlue4
"+"
"+"LightSkyBlue1
"+"
"+"LightSkyBlue2
"+"
"+"LightSkyBlue3
"+"
"+"SkyBlue
"+"
"+"LightBlue3
"+"
"+"DeepSkyBlue
"+"
"+"DeepSkyBlue1
"+"
"+"DeepSkyBlue2
"+"
"+"DeepSkyBlue4
"+"
"+"DeepSkyBlue3
"+"
"+"LightBlue1
"+"
"+"LightBlue2
"+"
"+"LightBlue
"+"
"+"LightBlue4
"+"
"+"PowderBlue
"+"
"+"CadetBlue1
"+"
"+"CadetBlue2
"+"
"+"CadetBlue3
"+"
"+"CadetBlue4
"+"
"+"turquoise1
"+"
"+"turquoise2
"+"
"+"turquoise3
"+"
"+"turquoise4
"+"
"+"cadet blue
"+"
"+"CadetBlue
"+"
"+"DarkTurquoise
"+"
"+"azure
"+"
"+"azure1
"+"
"+"LightCyan
"+"
"+"LightCyan1
"+"
"+"azure2
"+"
"+"LightCyan2
"+"
"+"PaleTurquoise1
"+"
"+"PaleTurquoise
"+"
"+"PaleTurquoise2
"+"
"+"DarkSlateGray1
"+"
"+"azure3
"+"
"+"LightCyan3
"+"
"+"DarkSlateGray2
"+"
"+"PaleTurquoise3
"+"
"+"DarkSlateGray3
"+"
"+"azure4
"+"
"+"LightCyan4
"+"
"+"aqua
"+"
"+"cyan
"+"
"+"cyan1
"+"
"+"PaleTurquoise4
"+"
"+"cyan2
"+"
"+"DarkSlateGray4
"+"
"+"cyan3
"+"
"+"cyan4
"+"
"+"DarkCyan
"+"
"+"teal
"+"
"+"DarkSlateGray
"+"
"+"DarkSlateGrey
"+"
"+"MediumTurquoise
"+"
"+"LightSeaGreen
"+"
"+"turquoise
"+"
"+"aquamarine4
"+"
"+"aquamarine
"+"
"+"aquamarine1
"+"
"+"aquamarine2
"+"
"+"aquamarine3
"+"
"+"MediumAquamarine
"+"
"+"MediumSpringGreen
"+"
"+"MintCream
"+"
"+"SpringGreen
"+"
"+"SpringGreen1
"+"
"+"SpringGreen2
"+"
"+"SpringGreen3
"+"
"+"SpringGreen4
"+"
"+"MediumSeaGreen
"+"
"+"SeaGreen
"+"
"+"SeaGreen3
"+"
"+"SeaGreen1
"+"
"+"SeaGreen4
"+"
"+"SeaGreen2
"+"
"+"MediumForestGreen
"+"
"+"honeydew
"+"
"+"honeydew1
"+"
"+"honeydew2
"+"
"+"DarkSeaGreen1
"+"
"+"DarkSeaGreen2
"+"
"+"PaleGreen1
"+"
"+"PaleGreen
"+"
"+"honeydew3
"+"
"+"LightGreen
"+"
"+"PaleGreen2
"+"
"+"DarkSeaGreen3
"+"
"+"DarkSeaGreen
"+"
"+"PaleGreen3
"+"
"+"honeydew4
"+"
"+"green1
"+"
"+"lime
"+"
"+"LimeGreen
"+"
"+"DarkSeaGreen4
"+"
"+"green2
"+"
"+"PaleGreen4
"+"
"+"green3
"+"
"+"ForestGreen
"+"
"+"green4
"+"
"+"green
"+"
"+"DarkGreen
"+"
"+"LawnGreen
"+"
"+"chartreuse
"+"
"+"chartreuse1
"+"
"+"chartreuse2
"+"
"+"chartreuse3
"+"
"+"chartreuse4
"+"
"+"GreenYellow
"+"
"+"DarkOliveGreen3
"+"
"+"DarkOliveGreen1
"+"
"+"DarkOliveGreen2
"+"
"+"DarkOliveGreen4
"+"
"+"DarkOliveGreen
"+"
"+"OliveDrab
"+"
"+"OliveDrab1
"+"
"+"OliveDrab2
"+"
"+"OliveDrab3
"+"
"+"YellowGreen
"+"
"+"OliveDrab4
"+"
"+"ivory
"+"
"+"ivory1
"+"
"+"LightYellow
"+"
"+"LightYellow1
"+"
"+"beige
"+"
"+"ivory2
"+"
"+"LightGoldenrodYellow
"+"
"+"LightYellow2
"+"
"+"ivory3
"+"
"+"LightYellow3
"+"
"+"ivory4
"+"
"+"LightYellow4
"+"
"+"yellow
"+"
"+"yellow1
"+"
"+"yellow2
"+"
"+"yellow3
"+"
"+"yellow4
"+"
"+"olive
"+"
"+"DarkKhaki
"+"
"+"khaki2
"+"
"+"LemonChiffon4
"+"
"+"khaki1
"+"
"+"khaki3
"+"
"+"khaki4
"+"
"+"PaleGoldenrod
"+"
"+"LemonChiffon
"+"
"+"LemonChiffon1
"+"
"+"khaki
"+"
"+"LemonChiffon3
"+"
"+"LemonChiffon2
"+"
"+"MediumGoldenRod
"+"
"+"cornsilk4
"+"
"+"gold
"+"
"+"gold1
"+"
"+"gold2
"+"
"+"gold3
"+"
"+"gold4
"+"
"+"LightGoldenrod
"+"
"+"LightGoldenrod4
"+"
"+"LightGoldenrod1
"+"
"+"LightGoldenrod3
"+"
"+"LightGoldenrod2
"+"
"+"cornsilk3
"+"
"+"cornsilk2
"+"
"+"cornsilk
"+"
"+"cornsilk1
"+"
"+"goldenrod
"+"
"+"goldenrod1
"+"
"+"goldenrod2
"+"
"+"goldenrod3
"+"
"+"goldenrod4
"+"
"+"DarkGoldenrod
"+"
"+"DarkGoldenrod1
"+"
"+"DarkGoldenrod2
"+"
"+"DarkGoldenrod3
"+"
"+"DarkGoldenrod4
"+"
"+"FloralWhite
"+"
"+"wheat2
"+"
"+"OldLace
"+"
"+"wheat
"+"
"+"wheat1
"+"
"+"wheat3
"+"
"+"orange
"+"
"+"orange1
"+"
"+"orange2
"+"
"+"orange3
"+"
"+"orange4
"+"
"+"wheat4
"+"
"+"moccasin
"+"
"+"PapayaWhip
"+"
"+"NavajoWhite3
"+"
"+"BlanchedAlmond
"+"
"+"NavajoWhite
"+"
"+"NavajoWhite1
"+"
"+"NavajoWhite2
"+"
"+"NavajoWhite4
"+"
"+"AntiqueWhite4
"+"
"+"AntiqueWhite
"+"
"+"tan
"+"
"+"bisque4
"+"
"+"burlywood
"+"
"+"AntiqueWhite2
"+"
"+"burlywood1
"+"
"+"burlywood3
"+"
"+"burlywood2
"+"
"+"AntiqueWhite1
"+"
"+"burlywood4
"+"
"+"AntiqueWhite3
"+"
"+"DarkOrange
"+"
"+"bisque2
"+"
"+"bisque
"+"
"+"bisque1
"+"
"+"bisque3
"+"
"+"DarkOrange1
"+"
"+"linen
"+"
"+"DarkOrange2
"+"
"+"DarkOrange3
"+"
"+"DarkOrange4
"+"
"+"peru
"+"
"+"tan1
"+"
"+"tan2
"+"
"+"tan3
"+"
"+"tan4
"+"
"+"PeachPuff
"+"
"+"PeachPuff1
"+"
"+"PeachPuff4
"+"
"+"PeachPuff2
"+"
"+"PeachPuff3
"+"
"+"SandyBrown
"+"
"+"seashell4
"+"
"+"seashell2
"+"
"+"seashell3
"+"
"+"chocolate
"+"
"+"chocolate1
"+"
"+"chocolate2
"+"
"+"chocolate3
"+"
"+"chocolate4
"+"
"+"SaddleBrown
"+"
"+"seashell
"+"
"+"seashell1
"+"
"+"sienna4
"+"
"+"sienna
"+"
"+"sienna1
"+"
"+"sienna2
"+"
"+"sienna3
"+"
"+"LightSalmon3
"+"
"+"LightSalmon
"+"
"+"LightSalmon1
"+"
"+"LightSalmon4
"+"
"+"LightSalmon2
"+"
"+"coral
"+"
"+"OrangeRed
"+"
"+"OrangeRed1
"+"
"+"OrangeRed2
"+"
"+"OrangeRed3
"+"
"+"OrangeRed4
"+"
"+"DarkSalmon
"+"
"+"salmon1
"+"
"+"salmon2
"+"
"+"salmon3
"+"
"+"salmon4
"+"
"+"coral1
"+"
"+"coral2
"+"
"+"coral3
"+"
"+"coral4
"+"
"+"tomato4
"+"
"+"tomato
"+"
"+"tomato1
"+"
"+"tomato2
"+"
"+"tomato3
"+"
"+"MistyRose4
"+"
"+"MistyRose2
"+"
"+"MistyRose
"+"
"+"MistyRose1
"+"
"+"salmon
"+"
"+"MistyRose3
"+"
"+"white
"+"
"+"gray100
"+"
"+"grey100
"+"
"+"grey100
"+"
"+"gray99
"+"
"+"grey99
"+"
"+"gray98
"+"
"+"grey98
"+"
"+"gray97
"+"
"+"grey97
"+"
"+"gray96
"+"
"+"grey96
"+"
"+"WhiteSmoke
"+"
"+"gray95
"+"
"+"grey95
"+"
"+"gray94
"+"
"+"grey94
"+"
"+"gray93
"+"
"+"grey93
"+"
"+"gray92
"+"
"+"grey92
"+"
"+"gray91
"+"
"+"grey91
"+"
"+"gray90
"+"
"+"grey90
"+"
"+"gray89
"+"
"+"grey89
"+"
"+"gray88
"+"
"+"grey88
"+"
"+"gray87
"+"
"+"grey87
"+"
"+"gainsboro
"+"
"+"gray86
"+"
"+"grey86
"+"
"+"gray85
"+"
"+"grey85
"+"
"+"gray84
"+"
"+"grey84
"+"
"+"gray83
"+"
"+"grey83
"+"
"+"LightGray
"+"
"+"LightGrey
"+"
"+"gray82
"+"
"+"grey82
"+"
"+"gray81
"+"
"+"grey81
"+"
"+"gray80
"+"
"+"grey80
"+"
"+"gray79
"+"
"+"grey79
"+"
"+"gray78
"+"
"+"grey78
"+"
"+"gray77
"+"
"+"grey77
"+"
"+"gray76
"+"
"+"grey76
"+"
"+"silver
"+"
"+"gray75
"+"
"+"grey75
"+"
"+"gray74
"+"
"+"grey74
"+"
"+"gray73
"+"
"+"grey73
"+"
"+"gray72
"+"
"+"grey72
"+"
"+"gray71
"+"
"+"grey71
"+"
"+"gray70
"+"
"+"grey70
"+"
"+"gray69
"+"
"+"grey69
"+"
"+"gray68
"+"
"+"grey68
"+"
"+"gray67
"+"
"+"grey67
"+"
"+"DarkGray
"+"
"+"DarkGrey
"+"
"+"gray66
"+"
"+"grey66
"+"
"+"gray65
"+"
"+"grey65
"+"
"+"gray64
"+"
"+"grey64
"+"
"+"gray63
"+"
"+"grey63
"+"
"+"gray62
"+"
"+"grey62
"+"
"+"gray61
"+"
"+"grey61
"+"
"+"gray60
"+"
"+"grey60
"+"
"+"gray59
"+"
"+"grey59
"+"
"+"gray58
"+"
"+"grey58
"+"
"+"gray57
"+"
"+"grey57
"+"
"+"gray56
"+"
"+"grey56
"+"
"+"gray55
"+"
"+"grey55
"+"
"+"gray54
"+"
"+"grey54
"+"
"+"gray53
"+"
"+"grey53
"+"
"+"gray52
"+"
"+"grey52
"+"
"+"gray51
"+"
"+"grey51
"+"
"+"fractal
"+"
"+"gray50
"+"
"+"grey50
"+"
"+"gray
"+"
"+"gray49
"+"
"+"grey49
"+"
"+"gray48
"+"
"+"grey48
"+"
"+"gray47
"+"
"+"grey47
"+"
"+"gray46
"+"
"+"grey46
"+"
"+"gray45
"+"
"+"grey45
"+"
"+"gray44
"+"
"+"grey44
"+"
"+"gray43
"+"
"+"grey43
"+"
"+"gray42
"+"
"+"grey42
"+"
"+"DimGray
"+"
"+"DimGrey
"+"
"+"gray41
"+"
"+"grey41
"+"
"+"gray40
"+"
"+"grey40
"+"
"+"gray39
"+"
"+"grey39
"+"
"+"gray38
"+"
"+"grey38
"+"
"+"gray37
"+"
"+"grey37
"+"
"+"gray36
"+"
"+"grey36
"+"
"+"gray35
"+"
"+"grey35
"+"
"+"gray34
"+"
"+"grey34
"+"
"+"gray33
"+"
"+"grey33
"+"
"+"gray32
"+"
"+"grey32
"+"
"+"gray31
"+"
"+"grey31
"+"
"+"gray30
"+"
"+"grey30
"+"
"+"gray29
"+"
"+"grey29
"+"
"+"gray28
"+"
"+"grey28
"+"
"+"gray27
"+"
"+"grey27
"+"
"+"gray26
"+"
"+"grey26
"+"
"+"gray25
"+"
"+"grey25
"+"
"+"gray24
"+"
"+"grey24
"+"
"+"gray23
"+"
"+"grey23
"+"
"+"gray22
"+"
"+"grey22
"+"
"+"gray21
"+"
"+"grey21
"+"
"+"gray20
"+"
"+"grey20
"+"
"+"gray19
"+"
"+"grey19
"+"
"+"gray18
"+"
"+"grey18
"+"
"+"gray17
"+"
"+"grey17
"+"
"+"gray16
"+"
"+"grey16
"+"
"+"gray15
"+"
"+"grey15
"+"
"+"gray14
"+"
"+"grey14
"+"
"+"gray13
"+"
"+"grey13
"+"
"+"gray12
"+"
"+"grey12
"+"
"+"gray11
"+"
"+"grey11
"+"
"+"gray10
"+"
"+"grey10
"+"
"+"gray9
"+"
"+"grey9
"+"
"+"gray8
"+"
"+"grey8
"+"
"+"gray7
"+"
"+"grey7
"+"
"+"gray6
"+"
"+"grey6
"+"
"+"gray5
"+"
"+"grey5
"+"
"+"gray4
"+"
"+"grey4
"+"
"+"gray3
"+"
"+"grey3
"+"
"+"gray2
"+"
"+"grey2
"+"
"+"gray1
"+"
"+"grey1
"+"
"+"black
"+"
"+"gray0
"+"
"+"grey0
"+"
"+"opaque
"+"
"+"none
"+"
"+"transparent
"+"
"+"
WHERE THE COLORNAMES WILL GO
"+""+"" - - -function showpicker() - { - $('#popupContact').html(colorpicker); - $('#swingleft').append("whos the dadd addad"); - $('#popupContact').css('height', '1500px') - } - -$('#colorlist').click(function(){showpicker()}) - - - - diff --git a/share/frontend/imgrid/colors/colors/junk/scrollio.html b/share/frontend/imgrid/colors/colors/junk/scrollio.html deleted file mode 100755 index e1443c3..0000000 --- a/share/frontend/imgrid/colors/colors/junk/scrollio.html +++ /dev/null @@ -1,3850 +0,0 @@ - - - - - - -
-
-
-
-snow
-
-snow1
-
-snow2
-
-RosyBrown1
-
-RosyBrown2
-
-snow3
-
-LightCoral
-
-IndianRed1
-
-RosyBrown3
-
-IndianRed2
-
-RosyBrown
-
-brown1
-
-firebrick1
-
-brown2
-
-IndianRed
-
-IndianRed3
-
-firebrick2
-
-snow4
-
-brown3
-
-red
-
-red1
-
-RosyBrown4
-
-firebrick3
-
-red2
-
-firebrick
-
-brown
-
-red3
-
-IndianRed4
-
-brown4
-
-firebrick4
-
-DarkRed
-
-red4
-
-maroon
-
-LightPink1
-
-LightPink3
-
-LightPink4
-
-LightPink2
-
-LightPink
-
-pink
-
-crimson
-
-pink1
-
-pink2
-
-pink3
-
-pink4
-
-PaleVioletRed4
-
-PaleVioletRed
-
-PaleVioletRed2
-
-PaleVioletRed1
-
-PaleVioletRed3
-
-LavenderBlush
-
-LavenderBlush1
-
-LavenderBlush3
-
-LavenderBlush2
-
-LavenderBlush4
-
-maroon
-
-HotPink3
-
-VioletRed3
-
-VioletRed1
-
-VioletRed2
-
-VioletRed4
-
-HotPink2
-
-HotPink1
-
-HotPink4
-
-HotPink
-
-DeepPink
-
-DeepPink1
-
-DeepPink2
-
-DeepPink3
-
-DeepPink4
-
-maroon1
-
-maroon2
-
-maroon3
-
-maroon4
-
-MediumVioletRed
-
-VioletRed
-
-orchid2
-
-orchid
-
-orchid1
-
-orchid3
-
-orchid4
-
-thistle1
-
-thistle2
-
-plum1
-
-plum2
-
-thistle
-
-thistle3
-
-plum
-
-violet
-
-plum3
-
-thistle4
-
-fuchsia
-
-magenta
-
-magenta1
-
-plum4
-
-magenta2
-
-magenta3
-
-DarkMagenta
-
-magenta4
-
-purple
-
-MediumOrchid
-
-MediumOrchid1
-
-MediumOrchid2
-
-MediumOrchid3
-
-MediumOrchid4
-
-DarkViolet
-
-DarkOrchid
-
-DarkOrchid1
-
-DarkOrchid3
-
-DarkOrchid2
-
-DarkOrchid4
-
-purple
-
-indigo
-
-BlueViolet
-
-purple2
-
-purple3
-
-purple4
-
-purple1
-
-MediumPurple
-
-MediumPurple1
-
-MediumPurple2
-
-MediumPurple3
-
-MediumPurple4
-
-DarkSlateBlue
-
-LightSlateBlue
-
-MediumSlateBlue
-
-SlateBlue
-
-SlateBlue1
-
-SlateBlue2
-
-SlateBlue3
-
-SlateBlue4
-
-GhostWhite
-
-lavender
-
-blue
-
-blue1
-
-blue2
-
-blue3
-
-MediumBlue
-
-blue4
-
-DarkBlue
-
-MidnightBlue
-
-navy
-
-NavyBlue
-
-RoyalBlue
-
-RoyalBlue1
-
-RoyalBlue2
-
-RoyalBlue3
-
-RoyalBlue4
-
-CornflowerBlue
-
-LightSteelBlue
-
-LightSteelBlue1
-
-LightSteelBlue2
-
-LightSteelBlue3
-
-LightSteelBlue4
-
-SlateGray4
-
-SlateGray1
-
-SlateGray2
-
-SlateGray3
-
-LightSlateGray
-
-LightSlateGrey
-
-SlateGray
-
-SlateGrey
-
-DodgerBlue
-
-DodgerBlue1
-
-DodgerBlue2
-
-DodgerBlue4
-
-DodgerBlue3
-
-AliceBlue
-
-SteelBlue4
-
-SteelBlue
-
-SteelBlue1
-
-SteelBlue2
-
-SteelBlue3
-
-SkyBlue4
-
-SkyBlue1
-
-SkyBlue2
-
-SkyBlue3
-
-LightSkyBlue
-
-LightSkyBlue4
-
-LightSkyBlue1
-
-LightSkyBlue2
-
-LightSkyBlue3
-
-SkyBlue
-
-LightBlue3
-
-DeepSkyBlue
-
-DeepSkyBlue1
-
-DeepSkyBlue2
-
-DeepSkyBlue4
-
-DeepSkyBlue3
-
-LightBlue1
-
-LightBlue2
-
-LightBlue
-
-LightBlue4
-
-PowderBlue
-
-CadetBlue1
-
-CadetBlue2
-
-CadetBlue3
-
-CadetBlue4
-
-turquoise1
-
-turquoise2
-
-turquoise3
-
-turquoise4
-
-cadet blue
-
-CadetBlue
-
-DarkTurquoise
-
-azure
-
-azure1
-
-LightCyan
-
-LightCyan1
-
-azure2
-
-LightCyan2
-
-PaleTurquoise1
-
-PaleTurquoise
-
-PaleTurquoise2
-
-DarkSlateGray1
-
-azure3
-
-LightCyan3
-
-DarkSlateGray2
-
-PaleTurquoise3
-
-DarkSlateGray3
-
-azure4
-
-LightCyan4
-
-aqua
-
-cyan
-
-cyan1
-
-PaleTurquoise4
-
-cyan2
-
-DarkSlateGray4
-
-cyan3
-
-cyan4
-
-DarkCyan
-
-teal
-
-DarkSlateGray
-
-DarkSlateGrey
-
-MediumTurquoise
-
-LightSeaGreen
-
-turquoise
-
-aquamarine4
-
-aquamarine
-
-aquamarine1
-
-aquamarine2
-
-aquamarine3
-
-MediumAquamarine
-
-MediumSpringGreen
-
-MintCream
-
-SpringGreen
-
-SpringGreen1
-
-SpringGreen2
-
-SpringGreen3
-
-SpringGreen4
-
-MediumSeaGreen
-
-SeaGreen
-
-SeaGreen3
-
-SeaGreen1
-
-SeaGreen4
-
-SeaGreen2
-
-MediumForestGreen
-
-honeydew
-
-honeydew1
-
-honeydew2
-
-DarkSeaGreen1
-
-DarkSeaGreen2
-
-PaleGreen1
-
-PaleGreen
-
-honeydew3
-
-LightGreen
-
-PaleGreen2
-
-DarkSeaGreen3
-
-DarkSeaGreen
-
-PaleGreen3
-
-honeydew4
-
-green1
-
-lime
-
-LimeGreen
-
-DarkSeaGreen4
-
-green2
-
-PaleGreen4
-
-green3
-
-ForestGreen
-
-green4
-
-green
-
-DarkGreen
-
-LawnGreen
-
-chartreuse
-
-chartreuse1
-
-chartreuse2
-
-chartreuse3
-
-chartreuse4
-
-GreenYellow
-
-DarkOliveGreen3
-
-DarkOliveGreen1
-
-DarkOliveGreen2
-
-DarkOliveGreen4
-
-DarkOliveGreen
-
-OliveDrab
-
-OliveDrab1
-
-OliveDrab2
-
-OliveDrab3
-
-YellowGreen
-
-OliveDrab4
-
-ivory
-
-ivory1
-
-LightYellow
-
-LightYellow1
-
-beige
-
-ivory2
-
-LightGoldenrodYellow
-
-LightYellow2
-
-ivory3
-
-LightYellow3
-
-ivory4
-
-LightYellow4
-
-yellow
-
-yellow1
-
-yellow2
-
-yellow3
-
-yellow4
-
-olive
-
-DarkKhaki
-
-khaki2
-
-LemonChiffon4
-
-khaki1
-
-khaki3
-
-khaki4
-
-PaleGoldenrod
-
-LemonChiffon
-
-LemonChiffon1
-
-khaki
-
-LemonChiffon3
-
-LemonChiffon2
-
-MediumGoldenRod
-
-cornsilk4
-
-gold
-
-gold1
-
-gold2
-
-gold3
-
-gold4
-
-LightGoldenrod
-
-LightGoldenrod4
-
-LightGoldenrod1
-
-LightGoldenrod3
-
-LightGoldenrod2
-
-cornsilk3
-
-cornsilk2
-
-cornsilk
-
-cornsilk1
-
-goldenrod
-
-goldenrod1
-
-goldenrod2
-
-goldenrod3
-
-goldenrod4
-
-DarkGoldenrod
-
-DarkGoldenrod1
-
-DarkGoldenrod2
-
-DarkGoldenrod3
-
-DarkGoldenrod4
-
-FloralWhite
-
-wheat2
-
-OldLace
-
-wheat
-
-wheat1
-
-wheat3
-
-orange
-
-orange1
-
-orange2
-
-orange3
-
-orange4
-
-wheat4
-
-moccasin
-
-PapayaWhip
-
-NavajoWhite3
-
-BlanchedAlmond
-
-NavajoWhite
-
-NavajoWhite1
-
-NavajoWhite2
-
-NavajoWhite4
-
-AntiqueWhite4
-
-AntiqueWhite
-
-tan
-
-bisque4
-
-burlywood
-
-AntiqueWhite2
-
-burlywood1
-
-burlywood3
-
-burlywood2
-
-AntiqueWhite1
-
-burlywood4
-
-AntiqueWhite3
-
-DarkOrange
-
-bisque2
-
-bisque
-
-bisque1
-
-bisque3
-
-DarkOrange1
-
-linen
-
-DarkOrange2
-
-DarkOrange3
-
-DarkOrange4
-
-peru
-
-tan1
-
-tan2
-
-tan3
-
-tan4
-
-PeachPuff
-
-PeachPuff1
-
-PeachPuff4
-
-PeachPuff2
-
-PeachPuff3
-
-SandyBrown
-
-seashell4
-
-seashell2
-
-seashell3
-
-chocolate
-
-chocolate1
-
-chocolate2
-
-chocolate3
-
-chocolate4
-
-SaddleBrown
-
-seashell
-
-seashell1
-
-sienna4
-
-sienna
-
-sienna1
-
-sienna2
-
-sienna3
-
-LightSalmon3
-
-LightSalmon
-
-LightSalmon1
-
-LightSalmon4
-
-LightSalmon2
-
-coral
-
-OrangeRed
-
-OrangeRed1
-
-OrangeRed2
-
-OrangeRed3
-
-OrangeRed4
-
-DarkSalmon
-
-salmon1
-
-salmon2
-
-salmon3
-
-salmon4
-
-coral1
-
-coral2
-
-coral3
-
-coral4
-
-tomato4
-
-tomato
-
-tomato1
-
-tomato2
-
-tomato3
-
-MistyRose4
-
-MistyRose2
-
-MistyRose
-
-MistyRose1
-
-salmon
-
-MistyRose3
-
-white
-
-gray100
-
-grey100
-
-grey100
-
-gray99
-
-grey99
-
-gray98
-
-grey98
-
-gray97
-
-grey97
-
-gray96
-
-grey96
-
-WhiteSmoke
-
-gray95
-
-grey95
-
-gray94
-
-grey94
-
-gray93
-
-grey93
-
-gray92
-
-grey92
-
-gray91
-
-grey91
-
-gray90
-
-grey90
-
-gray89
-
-grey89
-
-gray88
-
-grey88
-
-gray87
-
-grey87
-
-gainsboro
-
-gray86
-
-grey86
-
-gray85
-
-grey85
-
-gray84
-
-grey84
-
-gray83
-
-grey83
-
-LightGray
-
-LightGrey
-
-gray82
-
-grey82
-
-gray81
-
-grey81
-
-gray80
-
-grey80
-
-gray79
-
-grey79
-
-gray78
-
-grey78
-
-gray77
-
-grey77
-
-gray76
-
-grey76
-
-silver
-
-gray75
-
-grey75
-
-gray74
-
-grey74
-
-gray73
-
-grey73
-
-gray72
-
-grey72
-
-gray71
-
-grey71
-
-gray70
-
-grey70
-
-gray69
-
-grey69
-
-gray68
-
-grey68
-
-gray67
-
-grey67
-
-DarkGray
-
-DarkGrey
-
-gray66
-
-grey66
-
-gray65
-
-grey65
-
-gray64
-
-grey64
-
-gray63
-
-grey63
-
-gray62
-
-grey62
-
-gray61
-
-grey61
-
-gray60
-
-grey60
-
-gray59
-
-grey59
-
-gray58
-
-grey58
-
-gray57
-
-grey57
-
-gray56
-
-grey56
-
-gray55
-
-grey55
-
-gray54
-
-grey54
-
-gray53
-
-grey53
-
-gray52
-
-grey52
-
-gray51
-
-grey51
-
-fractal
-
-gray50
-
-grey50
-
-gray
-
-gray49
-
-grey49
-
-gray48
-
-grey48
-
-gray47
-
-grey47
-
-gray46
-
-grey46
-
-gray45
-
-grey45
-
-gray44
-
-grey44
-
-gray43
-
-grey43
-
-gray42
-
-grey42
-
-DimGray
-
-DimGrey
-
-gray41
-
-grey41
-
-gray40
-
-grey40
-
-gray39
-
-grey39
-
-gray38
-
-grey38
-
-gray37
-
-grey37
-
-gray36
-
-grey36
-
-gray35
-
-grey35
-
-gray34
-
-grey34
-
-gray33
-
-grey33
-
-gray32
-
-grey32
-
-gray31
-
-grey31
-
-gray30
-
-grey30
-
-gray29
-
-grey29
-
-gray28
-
-grey28
-
-gray27
-
-grey27
-
-gray26
-
-grey26
-
-gray25
-
-grey25
-
-gray24
-
-grey24
-
-gray23
-
-grey23
-
-gray22
-
-grey22
-
-gray21
-
-grey21
-
-gray20
-
-grey20
-
-gray19
-
-grey19
-
-gray18
-
-grey18
-
-gray17
-
-grey17
-
-gray16
-
-grey16
-
-gray15
-
-grey15
-
-gray14
-
-grey14
-
-gray13
-
-grey13
-
-gray12
-
-grey12
-
-gray11
-
-grey11
-
-gray10
-
-grey10
-
-gray9
-
-grey9
-
-gray8
-
-grey8
-
-gray7
-
-grey7
-
-gray6
-
-grey6
-
-gray5
-
-grey5
-
-gray4
-
-grey4
-
-gray3
-
-grey3
-
-gray2
-
-grey2
-
-gray1
-
-grey1
-
-black
-
-gray0
-
-grey0
-
-opaque
-
-none
-
-transparent
-
-
- -
-CLICK TO CHOOSE THE COLOR -
- -
- -OPTIONS -
CLICK TO USE HEX KEYS
-
-
CLICK TO TOGGLE PALATE INFO
-
-
CLICK TO TOGGLE BACKGROUNDS
-
-
-
YOU WILL CHOOSE:
-
-to choose transparent as a color, click HERE -
-
- - - - - - diff --git a/share/frontend/imgrid/colors/colors/junk/separate b/share/frontend/imgrid/colors/colors/junk/separate deleted file mode 100755 index b32bc49..0000000 --- a/share/frontend/imgrid/colors/colors/junk/separate +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/bin/python2.7 - - -f = open('colors.html', 'r') -lines = f.readlines() -colornames = [] -hexes = [] -for line in lines: - if 'right' in line and 'td' in line: - colornames.append(line[22:-6]) - if '#' in line: - hexes.append(line[21:28]) - if line == lines[len(lines)-1]: - break -print len(hexes) -print len(colornames) -###making a dictionary -hextoname = {} -nametohex = {} -for i in hexes: - hextoname[i] = colornames[hexes.index(i)] -for i in colornames: - nametohex[i] = hexes[colornames.index(i)] -w = open('colordict.js', 'w') -w.write("var hextoname = "+str(hextoname)+"\n") -w.write("var nametohex = "+str(nametohex)+"\n") -w.close() -ds = [] -for x in range(674): - ds.append('d'+str(x)) - -#print hexes -#note last two hex values in lists are wrong for they correspond to none and transparent -w = open('colorsnew.html', 'w') -w.write("""\n\n -") -w.write("\n
\n") -for x in range(674): - w.write("
\n"+colornames[x]+"
\n") -w.write("
\n") -w.write("
WHERE THE COLORNAMES WILL GO
") -w.write("") -w.write("\n") -w.write("\n") -w.write("\n\n") diff --git a/share/frontend/imgrid/colors/colors/junk/todo.txt b/share/frontend/imgrid/colors/colors/junk/todo.txt deleted file mode 100755 index ff9ae66..0000000 --- a/share/frontend/imgrid/colors/colors/junk/todo.txt +++ /dev/null @@ -1,135 +0,0 @@ -manyprettygradients: -finish formatting tumblr -put on autoscroll -think about font (minoan) THIS IS WHY WE NEED TEXT BLASTER -turn it to a bot - pre-step: delete everything on there - step 1: gradientscrape longerlogfile - step 2: post those - step 3: make gradientscrape call itself every 30 minutes - step 5: swipe??? - step 4: import the write function from main.py - - - - - - - - - - - - - - - - - - - - - - python 2.6 == /opt/python2.6/bin/python - - - JUANITA = True - #JUANITA = False - - - -from main.py, import * (follow_followers, reblog_posts, post_images) -process_followers() -reblog_posts() -post_images() - -def now (): - return int(time.mktime(time.localtime())) - -def save_seen (ids): - out = open (DUMP_SEEN+".tmp", "w") - for id in ids.keys(): - out.write(id+"\n") - out.close() - system(["/bin/mv", DUMP_SEEN+".tmp", DUMP_SEEN]) - -def slurp (file): - input = open (file, "r") - lines = input.readlines() - input.close() - return lines - -def new_dump (dumps, seen): - id = random.choice(dumps.keys()) - while id in seen: - id = random.choice(dumps.keys()) - thedump = dumps[id] - seen[id] = True - save_seen(seen) - if JUANITA: - print thedump - else: - dump.say(thedump) - wait = random.randint(2,28)*30 + random.randint(1,55) - print "sleeping for", str(wait/60) + "m" + str(wait % 60) + "s..." - print - time.sleep(wait) - -def main (): - score_lines = slurp(DUMP_LIST) - dumps = {} - scored = {} - # first pass to work out the top score for each dump - for line in score_lines: - # 0 id 1 score 2 favers 3 urls - partz = line.split("\t") -#skipping over really old stuff - if int(partz[0]) < 3618853: - continue - - urls = partz[3].split(" ") - skip = False - for url in urls: - if "http" not in url: - skip = True - if skip: - continue - # dictionary: urls => (id, score) - if partz[3] in scored and int(partz[1]) > scored[partz[3]][1]: - scored[partz[3]] = (partz[0], int(partz[1])) - else: - scored[partz[3]] = (partz[0], int(partz[1])) - - except KeyError: - continue - except ValueError: - continue - - # second pass to weed out dumps with scores too high/low - for urls in scored.keys(): - if scored[urls][1] > 0 and scored[urls][1] < 6: - # dictionary: id => urls - dumps[scored[urls][0]] = urls.strip() - - seen_lines = slurp(DUMP_SEEN) - seen = {} - for line in seen_lines: - l = line.strip() - if len(l): - seen[l] = True - - print len(dumps), "dumps in queue" - print len(seen_lines), "dumped already" - - if JUANITA: - for i in xrange(10): - new_dump (dumps, seen) - else: - while (1): - new_dump (dumps, seen) - else: - print "TURNED OFF, sleeping for half an hour..." - time.sleep (30*60) - -main () - diff --git a/share/frontend/imgrid/colors/colors/junk/withscroller.html b/share/frontend/imgrid/colors/colors/junk/withscroller.html deleted file mode 100755 index e1443c3..0000000 --- a/share/frontend/imgrid/colors/colors/junk/withscroller.html +++ /dev/null @@ -1,3850 +0,0 @@ - - - - - - -
-
-
-
-snow
-
-snow1
-
-snow2
-
-RosyBrown1
-
-RosyBrown2
-
-snow3
-
-LightCoral
-
-IndianRed1
-
-RosyBrown3
-
-IndianRed2
-
-RosyBrown
-
-brown1
-
-firebrick1
-
-brown2
-
-IndianRed
-
-IndianRed3
-
-firebrick2
-
-snow4
-
-brown3
-
-red
-
-red1
-
-RosyBrown4
-
-firebrick3
-
-red2
-
-firebrick
-
-brown
-
-red3
-
-IndianRed4
-
-brown4
-
-firebrick4
-
-DarkRed
-
-red4
-
-maroon
-
-LightPink1
-
-LightPink3
-
-LightPink4
-
-LightPink2
-
-LightPink
-
-pink
-
-crimson
-
-pink1
-
-pink2
-
-pink3
-
-pink4
-
-PaleVioletRed4
-
-PaleVioletRed
-
-PaleVioletRed2
-
-PaleVioletRed1
-
-PaleVioletRed3
-
-LavenderBlush
-
-LavenderBlush1
-
-LavenderBlush3
-
-LavenderBlush2
-
-LavenderBlush4
-
-maroon
-
-HotPink3
-
-VioletRed3
-
-VioletRed1
-
-VioletRed2
-
-VioletRed4
-
-HotPink2
-
-HotPink1
-
-HotPink4
-
-HotPink
-
-DeepPink
-
-DeepPink1
-
-DeepPink2
-
-DeepPink3
-
-DeepPink4
-
-maroon1
-
-maroon2
-
-maroon3
-
-maroon4
-
-MediumVioletRed
-
-VioletRed
-
-orchid2
-
-orchid
-
-orchid1
-
-orchid3
-
-orchid4
-
-thistle1
-
-thistle2
-
-plum1
-
-plum2
-
-thistle
-
-thistle3
-
-plum
-
-violet
-
-plum3
-
-thistle4
-
-fuchsia
-
-magenta
-
-magenta1
-
-plum4
-
-magenta2
-
-magenta3
-
-DarkMagenta
-
-magenta4
-
-purple
-
-MediumOrchid
-
-MediumOrchid1
-
-MediumOrchid2
-
-MediumOrchid3
-
-MediumOrchid4
-
-DarkViolet
-
-DarkOrchid
-
-DarkOrchid1
-
-DarkOrchid3
-
-DarkOrchid2
-
-DarkOrchid4
-
-purple
-
-indigo
-
-BlueViolet
-
-purple2
-
-purple3
-
-purple4
-
-purple1
-
-MediumPurple
-
-MediumPurple1
-
-MediumPurple2
-
-MediumPurple3
-
-MediumPurple4
-
-DarkSlateBlue
-
-LightSlateBlue
-
-MediumSlateBlue
-
-SlateBlue
-
-SlateBlue1
-
-SlateBlue2
-
-SlateBlue3
-
-SlateBlue4
-
-GhostWhite
-
-lavender
-
-blue
-
-blue1
-
-blue2
-
-blue3
-
-MediumBlue
-
-blue4
-
-DarkBlue
-
-MidnightBlue
-
-navy
-
-NavyBlue
-
-RoyalBlue
-
-RoyalBlue1
-
-RoyalBlue2
-
-RoyalBlue3
-
-RoyalBlue4
-
-CornflowerBlue
-
-LightSteelBlue
-
-LightSteelBlue1
-
-LightSteelBlue2
-
-LightSteelBlue3
-
-LightSteelBlue4
-
-SlateGray4
-
-SlateGray1
-
-SlateGray2
-
-SlateGray3
-
-LightSlateGray
-
-LightSlateGrey
-
-SlateGray
-
-SlateGrey
-
-DodgerBlue
-
-DodgerBlue1
-
-DodgerBlue2
-
-DodgerBlue4
-
-DodgerBlue3
-
-AliceBlue
-
-SteelBlue4
-
-SteelBlue
-
-SteelBlue1
-
-SteelBlue2
-
-SteelBlue3
-
-SkyBlue4
-
-SkyBlue1
-
-SkyBlue2
-
-SkyBlue3
-
-LightSkyBlue
-
-LightSkyBlue4
-
-LightSkyBlue1
-
-LightSkyBlue2
-
-LightSkyBlue3
-
-SkyBlue
-
-LightBlue3
-
-DeepSkyBlue
-
-DeepSkyBlue1
-
-DeepSkyBlue2
-
-DeepSkyBlue4
-
-DeepSkyBlue3
-
-LightBlue1
-
-LightBlue2
-
-LightBlue
-
-LightBlue4
-
-PowderBlue
-
-CadetBlue1
-
-CadetBlue2
-
-CadetBlue3
-
-CadetBlue4
-
-turquoise1
-
-turquoise2
-
-turquoise3
-
-turquoise4
-
-cadet blue
-
-CadetBlue
-
-DarkTurquoise
-
-azure
-
-azure1
-
-LightCyan
-
-LightCyan1
-
-azure2
-
-LightCyan2
-
-PaleTurquoise1
-
-PaleTurquoise
-
-PaleTurquoise2
-
-DarkSlateGray1
-
-azure3
-
-LightCyan3
-
-DarkSlateGray2
-
-PaleTurquoise3
-
-DarkSlateGray3
-
-azure4
-
-LightCyan4
-
-aqua
-
-cyan
-
-cyan1
-
-PaleTurquoise4
-
-cyan2
-
-DarkSlateGray4
-
-cyan3
-
-cyan4
-
-DarkCyan
-
-teal
-
-DarkSlateGray
-
-DarkSlateGrey
-
-MediumTurquoise
-
-LightSeaGreen
-
-turquoise
-
-aquamarine4
-
-aquamarine
-
-aquamarine1
-
-aquamarine2
-
-aquamarine3
-
-MediumAquamarine
-
-MediumSpringGreen
-
-MintCream
-
-SpringGreen
-
-SpringGreen1
-
-SpringGreen2
-
-SpringGreen3
-
-SpringGreen4
-
-MediumSeaGreen
-
-SeaGreen
-
-SeaGreen3
-
-SeaGreen1
-
-SeaGreen4
-
-SeaGreen2
-
-MediumForestGreen
-
-honeydew
-
-honeydew1
-
-honeydew2
-
-DarkSeaGreen1
-
-DarkSeaGreen2
-
-PaleGreen1
-
-PaleGreen
-
-honeydew3
-
-LightGreen
-
-PaleGreen2
-
-DarkSeaGreen3
-
-DarkSeaGreen
-
-PaleGreen3
-
-honeydew4
-
-green1
-
-lime
-
-LimeGreen
-
-DarkSeaGreen4
-
-green2
-
-PaleGreen4
-
-green3
-
-ForestGreen
-
-green4
-
-green
-
-DarkGreen
-
-LawnGreen
-
-chartreuse
-
-chartreuse1
-
-chartreuse2
-
-chartreuse3
-
-chartreuse4
-
-GreenYellow
-
-DarkOliveGreen3
-
-DarkOliveGreen1
-
-DarkOliveGreen2
-
-DarkOliveGreen4
-
-DarkOliveGreen
-
-OliveDrab
-
-OliveDrab1
-
-OliveDrab2
-
-OliveDrab3
-
-YellowGreen
-
-OliveDrab4
-
-ivory
-
-ivory1
-
-LightYellow
-
-LightYellow1
-
-beige
-
-ivory2
-
-LightGoldenrodYellow
-
-LightYellow2
-
-ivory3
-
-LightYellow3
-
-ivory4
-
-LightYellow4
-
-yellow
-
-yellow1
-
-yellow2
-
-yellow3
-
-yellow4
-
-olive
-
-DarkKhaki
-
-khaki2
-
-LemonChiffon4
-
-khaki1
-
-khaki3
-
-khaki4
-
-PaleGoldenrod
-
-LemonChiffon
-
-LemonChiffon1
-
-khaki
-
-LemonChiffon3
-
-LemonChiffon2
-
-MediumGoldenRod
-
-cornsilk4
-
-gold
-
-gold1
-
-gold2
-
-gold3
-
-gold4
-
-LightGoldenrod
-
-LightGoldenrod4
-
-LightGoldenrod1
-
-LightGoldenrod3
-
-LightGoldenrod2
-
-cornsilk3
-
-cornsilk2
-
-cornsilk
-
-cornsilk1
-
-goldenrod
-
-goldenrod1
-
-goldenrod2
-
-goldenrod3
-
-goldenrod4
-
-DarkGoldenrod
-
-DarkGoldenrod1
-
-DarkGoldenrod2
-
-DarkGoldenrod3
-
-DarkGoldenrod4
-
-FloralWhite
-
-wheat2
-
-OldLace
-
-wheat
-
-wheat1
-
-wheat3
-
-orange
-
-orange1
-
-orange2
-
-orange3
-
-orange4
-
-wheat4
-
-moccasin
-
-PapayaWhip
-
-NavajoWhite3
-
-BlanchedAlmond
-
-NavajoWhite
-
-NavajoWhite1
-
-NavajoWhite2
-
-NavajoWhite4
-
-AntiqueWhite4
-
-AntiqueWhite
-
-tan
-
-bisque4
-
-burlywood
-
-AntiqueWhite2
-
-burlywood1
-
-burlywood3
-
-burlywood2
-
-AntiqueWhite1
-
-burlywood4
-
-AntiqueWhite3
-
-DarkOrange
-
-bisque2
-
-bisque
-
-bisque1
-
-bisque3
-
-DarkOrange1
-
-linen
-
-DarkOrange2
-
-DarkOrange3
-
-DarkOrange4
-
-peru
-
-tan1
-
-tan2
-
-tan3
-
-tan4
-
-PeachPuff
-
-PeachPuff1
-
-PeachPuff4
-
-PeachPuff2
-
-PeachPuff3
-
-SandyBrown
-
-seashell4
-
-seashell2
-
-seashell3
-
-chocolate
-
-chocolate1
-
-chocolate2
-
-chocolate3
-
-chocolate4
-
-SaddleBrown
-
-seashell
-
-seashell1
-
-sienna4
-
-sienna
-
-sienna1
-
-sienna2
-
-sienna3
-
-LightSalmon3
-
-LightSalmon
-
-LightSalmon1
-
-LightSalmon4
-
-LightSalmon2
-
-coral
-
-OrangeRed
-
-OrangeRed1
-
-OrangeRed2
-
-OrangeRed3
-
-OrangeRed4
-
-DarkSalmon
-
-salmon1
-
-salmon2
-
-salmon3
-
-salmon4
-
-coral1
-
-coral2
-
-coral3
-
-coral4
-
-tomato4
-
-tomato
-
-tomato1
-
-tomato2
-
-tomato3
-
-MistyRose4
-
-MistyRose2
-
-MistyRose
-
-MistyRose1
-
-salmon
-
-MistyRose3
-
-white
-
-gray100
-
-grey100
-
-grey100
-
-gray99
-
-grey99
-
-gray98
-
-grey98
-
-gray97
-
-grey97
-
-gray96
-
-grey96
-
-WhiteSmoke
-
-gray95
-
-grey95
-
-gray94
-
-grey94
-
-gray93
-
-grey93
-
-gray92
-
-grey92
-
-gray91
-
-grey91
-
-gray90
-
-grey90
-
-gray89
-
-grey89
-
-gray88
-
-grey88
-
-gray87
-
-grey87
-
-gainsboro
-
-gray86
-
-grey86
-
-gray85
-
-grey85
-
-gray84
-
-grey84
-
-gray83
-
-grey83
-
-LightGray
-
-LightGrey
-
-gray82
-
-grey82
-
-gray81
-
-grey81
-
-gray80
-
-grey80
-
-gray79
-
-grey79
-
-gray78
-
-grey78
-
-gray77
-
-grey77
-
-gray76
-
-grey76
-
-silver
-
-gray75
-
-grey75
-
-gray74
-
-grey74
-
-gray73
-
-grey73
-
-gray72
-
-grey72
-
-gray71
-
-grey71
-
-gray70
-
-grey70
-
-gray69
-
-grey69
-
-gray68
-
-grey68
-
-gray67
-
-grey67
-
-DarkGray
-
-DarkGrey
-
-gray66
-
-grey66
-
-gray65
-
-grey65
-
-gray64
-
-grey64
-
-gray63
-
-grey63
-
-gray62
-
-grey62
-
-gray61
-
-grey61
-
-gray60
-
-grey60
-
-gray59
-
-grey59
-
-gray58
-
-grey58
-
-gray57
-
-grey57
-
-gray56
-
-grey56
-
-gray55
-
-grey55
-
-gray54
-
-grey54
-
-gray53
-
-grey53
-
-gray52
-
-grey52
-
-gray51
-
-grey51
-
-fractal
-
-gray50
-
-grey50
-
-gray
-
-gray49
-
-grey49
-
-gray48
-
-grey48
-
-gray47
-
-grey47
-
-gray46
-
-grey46
-
-gray45
-
-grey45
-
-gray44
-
-grey44
-
-gray43
-
-grey43
-
-gray42
-
-grey42
-
-DimGray
-
-DimGrey
-
-gray41
-
-grey41
-
-gray40
-
-grey40
-
-gray39
-
-grey39
-
-gray38
-
-grey38
-
-gray37
-
-grey37
-
-gray36
-
-grey36
-
-gray35
-
-grey35
-
-gray34
-
-grey34
-
-gray33
-
-grey33
-
-gray32
-
-grey32
-
-gray31
-
-grey31
-
-gray30
-
-grey30
-
-gray29
-
-grey29
-
-gray28
-
-grey28
-
-gray27
-
-grey27
-
-gray26
-
-grey26
-
-gray25
-
-grey25
-
-gray24
-
-grey24
-
-gray23
-
-grey23
-
-gray22
-
-grey22
-
-gray21
-
-grey21
-
-gray20
-
-grey20
-
-gray19
-
-grey19
-
-gray18
-
-grey18
-
-gray17
-
-grey17
-
-gray16
-
-grey16
-
-gray15
-
-grey15
-
-gray14
-
-grey14
-
-gray13
-
-grey13
-
-gray12
-
-grey12
-
-gray11
-
-grey11
-
-gray10
-
-grey10
-
-gray9
-
-grey9
-
-gray8
-
-grey8
-
-gray7
-
-grey7
-
-gray6
-
-grey6
-
-gray5
-
-grey5
-
-gray4
-
-grey4
-
-gray3
-
-grey3
-
-gray2
-
-grey2
-
-gray1
-
-grey1
-
-black
-
-gray0
-
-grey0
-
-opaque
-
-none
-
-transparent
-
-
- -
-CLICK TO CHOOSE THE COLOR -
- -
- -OPTIONS -
CLICK TO USE HEX KEYS
-
-
CLICK TO TOGGLE PALATE INFO
-
-
CLICK TO TOGGLE BACKGROUNDS
-
-
-
YOU WILL CHOOSE:
-
-to choose transparent as a color, click HERE -
-
- - - - - - diff --git a/share/frontend/imgrid/colors/colors/minimap.html b/share/frontend/imgrid/colors/colors/minimap.html deleted file mode 100755 index 5a5291e..0000000 --- a/share/frontend/imgrid/colors/colors/minimap.html +++ /dev/null @@ -1,3891 +0,0 @@ - - - - -
-
-
-snow
-
-snow1
-
-snow2
-
-RosyBrown1
-
-RosyBrown2
-
-snow3
-
-LightCoral
-
-IndianRed1
-
-RosyBrown3
-
-IndianRed2
-
-RosyBrown
-
-brown1
-
-firebrick1
-
-brown2
-
-IndianRed
-
-IndianRed3
-
-firebrick2
-
-snow4
-
-brown3
-
-red
-
-red1
-
-RosyBrown4
-
-firebrick3
-
-red2
-
-firebrick
-
-brown
-
-red3
-
-IndianRed4
-
-brown4
-
-firebrick4
-
-DarkRed
-
-red4
-
-maroon
-
-LightPink1
-
-LightPink3
-
-LightPink4
-
-LightPink2
-
-LightPink
-
-pink
-
-crimson
-
-pink1
-
-pink2
-
-pink3
-
-pink4
-
-PaleVioletRed4
-
-PaleVioletRed
-
-PaleVioletRed2
-
-PaleVioletRed1
-
-PaleVioletRed3
-
-LavenderBlush
-
-LavenderBlush1
-
-LavenderBlush3
-
-LavenderBlush2
-
-LavenderBlush4
-
-maroon
-
-HotPink3
-
-VioletRed3
-
-VioletRed1
-
-VioletRed2
-
-VioletRed4
-
-HotPink2
-
-HotPink1
-
-HotPink4
-
-HotPink
-
-DeepPink
-
-DeepPink1
-
-DeepPink2
-
-DeepPink3
-
-DeepPink4
-
-maroon1
-
-maroon2
-
-maroon3
-
-maroon4
-
-MediumVioletRed
-
-VioletRed
-
-orchid2
-
-orchid
-
-orchid1
-
-orchid3
-
-orchid4
-
-thistle1
-
-thistle2
-
-plum1
-
-plum2
-
-thistle
-
-thistle3
-
-plum
-
-violet
-
-plum3
-
-thistle4
-
-fuchsia
-
-magenta
-
-magenta1
-
-plum4
-
-magenta2
-
-magenta3
-
-DarkMagenta
-
-magenta4
-
-purple
-
-MediumOrchid
-
-MediumOrchid1
-
-MediumOrchid2
-
-MediumOrchid3
-
-MediumOrchid4
-
-DarkViolet
-
-DarkOrchid
-
-DarkOrchid1
-
-DarkOrchid3
-
-DarkOrchid2
-
-DarkOrchid4
-
-purple
-
-indigo
-
-BlueViolet
-
-purple2
-
-purple3
-
-purple4
-
-purple1
-
-MediumPurple
-
-MediumPurple1
-
-MediumPurple2
-
-MediumPurple3
-
-MediumPurple4
-
-DarkSlateBlue
-
-LightSlateBlue
-
-MediumSlateBlue
-
-SlateBlue
-
-SlateBlue1
-
-SlateBlue2
-
-SlateBlue3
-
-SlateBlue4
-
-GhostWhite
-
-lavender
-
-blue
-
-blue1
-
-blue2
-
-blue3
-
-MediumBlue
-
-blue4
-
-DarkBlue
-
-MidnightBlue
-
-navy
-
-NavyBlue
-
-RoyalBlue
-
-RoyalBlue1
-
-RoyalBlue2
-
-RoyalBlue3
-
-RoyalBlue4
-
-CornflowerBlue
-
-LightSteelBlue
-
-LightSteelBlue1
-
-LightSteelBlue2
-
-LightSteelBlue3
-
-LightSteelBlue4
-
-SlateGray4
-
-SlateGray1
-
-SlateGray2
-
-SlateGray3
-
-LightSlateGray
-
-LightSlateGrey
-
-SlateGray
-
-SlateGrey
-
-DodgerBlue
-
-DodgerBlue1
-
-DodgerBlue2
-
-DodgerBlue4
-
-DodgerBlue3
-
-AliceBlue
-
-SteelBlue4
-
-SteelBlue
-
-SteelBlue1
-
-SteelBlue2
-
-SteelBlue3
-
-SkyBlue4
-
-SkyBlue1
-
-SkyBlue2
-
-SkyBlue3
-
-LightSkyBlue
-
-LightSkyBlue4
-
-LightSkyBlue1
-
-LightSkyBlue2
-
-LightSkyBlue3
-
-SkyBlue
-
-LightBlue3
-
-DeepSkyBlue
-
-DeepSkyBlue1
-
-DeepSkyBlue2
-
-DeepSkyBlue4
-
-DeepSkyBlue3
-
-LightBlue1
-
-LightBlue2
-
-LightBlue
-
-LightBlue4
-
-PowderBlue
-
-CadetBlue1
-
-CadetBlue2
-
-CadetBlue3
-
-CadetBlue4
-
-turquoise1
-
-turquoise2
-
-turquoise3
-
-turquoise4
-
-cadet blue
-
-CadetBlue
-
-DarkTurquoise
-
-azure
-
-azure1
-
-LightCyan
-
-LightCyan1
-
-azure2
-
-LightCyan2
-
-PaleTurquoise1
-
-PaleTurquoise
-
-PaleTurquoise2
-
-DarkSlateGray1
-
-azure3
-
-LightCyan3
-
-DarkSlateGray2
-
-PaleTurquoise3
-
-DarkSlateGray3
-
-azure4
-
-LightCyan4
-
-aqua
-
-cyan
-
-cyan1
-
-PaleTurquoise4
-
-cyan2
-
-DarkSlateGray4
-
-cyan3
-
-cyan4
-
-DarkCyan
-
-teal
-
-DarkSlateGray
-
-DarkSlateGrey
-
-MediumTurquoise
-
-LightSeaGreen
-
-turquoise
-
-aquamarine4
-
-aquamarine
-
-aquamarine1
-
-aquamarine2
-
-aquamarine3
-
-MediumAquamarine
-
-MediumSpringGreen
-
-MintCream
-
-SpringGreen
-
-SpringGreen1
-
-SpringGreen2
-
-SpringGreen3
-
-SpringGreen4
-
-MediumSeaGreen
-
-SeaGreen
-
-SeaGreen3
-
-SeaGreen1
-
-SeaGreen4
-
-SeaGreen2
-
-MediumForestGreen
-
-honeydew
-
-honeydew1
-
-honeydew2
-
-DarkSeaGreen1
-
-DarkSeaGreen2
-
-PaleGreen1
-
-PaleGreen
-
-honeydew3
-
-LightGreen
-
-PaleGreen2
-
-DarkSeaGreen3
-
-DarkSeaGreen
-
-PaleGreen3
-
-honeydew4
-
-green1
-
-lime
-
-LimeGreen
-
-DarkSeaGreen4
-
-green2
-
-PaleGreen4
-
-green3
-
-ForestGreen
-
-green4
-
-green
-
-DarkGreen
-
-LawnGreen
-
-chartreuse
-
-chartreuse1
-
-chartreuse2
-
-chartreuse3
-
-chartreuse4
-
-GreenYellow
-
-DarkOliveGreen3
-
-DarkOliveGreen1
-
-DarkOliveGreen2
-
-DarkOliveGreen4
-
-DarkOliveGreen
-
-OliveDrab
-
-OliveDrab1
-
-OliveDrab2
-
-OliveDrab3
-
-YellowGreen
-
-OliveDrab4
-
-ivory
-
-ivory1
-
-LightYellow
-
-LightYellow1
-
-beige
-
-ivory2
-
-LightGoldenrodYellow
-
-LightYellow2
-
-ivory3
-
-LightYellow3
-
-ivory4
-
-LightYellow4
-
-yellow
-
-yellow1
-
-yellow2
-
-yellow3
-
-yellow4
-
-olive
-
-DarkKhaki
-
-khaki2
-
-LemonChiffon4
-
-khaki1
-
-khaki3
-
-khaki4
-
-PaleGoldenrod
-
-LemonChiffon
-
-LemonChiffon1
-
-khaki
-
-LemonChiffon3
-
-LemonChiffon2
-
-MediumGoldenRod
-
-cornsilk4
-
-gold
-
-gold1
-
-gold2
-
-gold3
-
-gold4
-
-LightGoldenrod
-
-LightGoldenrod4
-
-LightGoldenrod1
-
-LightGoldenrod3
-
-LightGoldenrod2
-
-cornsilk3
-
-cornsilk2
-
-cornsilk
-
-cornsilk1
-
-goldenrod
-
-goldenrod1
-
-goldenrod2
-
-goldenrod3
-
-goldenrod4
-
-DarkGoldenrod
-
-DarkGoldenrod1
-
-DarkGoldenrod2
-
-DarkGoldenrod3
-
-DarkGoldenrod4
-
-FloralWhite
-
-wheat2
-
-OldLace
-
-wheat
-
-wheat1
-
-wheat3
-
-orange
-
-orange1
-
-orange2
-
-orange3
-
-orange4
-
-wheat4
-
-moccasin
-
-PapayaWhip
-
-NavajoWhite3
-
-BlanchedAlmond
-
-NavajoWhite
-
-NavajoWhite1
-
-NavajoWhite2
-
-NavajoWhite4
-
-AntiqueWhite4
-
-AntiqueWhite
-
-tan
-
-bisque4
-
-burlywood
-
-AntiqueWhite2
-
-burlywood1
-
-burlywood3
-
-burlywood2
-
-AntiqueWhite1
-
-burlywood4
-
-AntiqueWhite3
-
-DarkOrange
-
-bisque2
-
-bisque
-
-bisque1
-
-bisque3
-
-DarkOrange1
-
-linen
-
-DarkOrange2
-
-DarkOrange3
-
-DarkOrange4
-
-peru
-
-tan1
-
-tan2
-
-tan3
-
-tan4
-
-PeachPuff
-
-PeachPuff1
-
-PeachPuff4
-
-PeachPuff2
-
-PeachPuff3
-
-SandyBrown
-
-seashell4
-
-seashell2
-
-seashell3
-
-chocolate
-
-chocolate1
-
-chocolate2
-
-chocolate3
-
-chocolate4
-
-SaddleBrown
-
-seashell
-
-seashell1
-
-sienna4
-
-sienna
-
-sienna1
-
-sienna2
-
-sienna3
-
-LightSalmon3
-
-LightSalmon
-
-LightSalmon1
-
-LightSalmon4
-
-LightSalmon2
-
-coral
-
-OrangeRed
-
-OrangeRed1
-
-OrangeRed2
-
-OrangeRed3
-
-OrangeRed4
-
-DarkSalmon
-
-salmon1
-
-salmon2
-
-salmon3
-
-salmon4
-
-coral1
-
-coral2
-
-coral3
-
-coral4
-
-tomato4
-
-tomato
-
-tomato1
-
-tomato2
-
-tomato3
-
-MistyRose4
-
-MistyRose2
-
-MistyRose
-
-MistyRose1
-
-salmon
-
-MistyRose3
-
-white
-
-gray100
-
-grey100
-
-grey100
-
-gray99
-
-grey99
-
-gray98
-
-grey98
-
-gray97
-
-grey97
-
-gray96
-
-grey96
-
-WhiteSmoke
-
-gray95
-
-grey95
-
-gray94
-
-grey94
-
-gray93
-
-grey93
-
-gray92
-
-grey92
-
-gray91
-
-grey91
-
-gray90
-
-grey90
-
-gray89
-
-grey89
-
-gray88
-
-grey88
-
-gray87
-
-grey87
-
-gainsboro
-
-gray86
-
-grey86
-
-gray85
-
-grey85
-
-gray84
-
-grey84
-
-gray83
-
-grey83
-
-LightGray
-
-LightGrey
-
-gray82
-
-grey82
-
-gray81
-
-grey81
-
-gray80
-
-grey80
-
-gray79
-
-grey79
-
-gray78
-
-grey78
-
-gray77
-
-grey77
-
-gray76
-
-grey76
-
-silver
-
-gray75
-
-grey75
-
-gray74
-
-grey74
-
-gray73
-
-grey73
-
-gray72
-
-grey72
-
-gray71
-
-grey71
-
-gray70
-
-grey70
-
-gray69
-
-grey69
-
-gray68
-
-grey68
-
-gray67
-
-grey67
-
-DarkGray
-
-DarkGrey
-
-gray66
-
-grey66
-
-gray65
-
-grey65
-
-gray64
-
-grey64
-
-gray63
-
-grey63
-
-gray62
-
-grey62
-
-gray61
-
-grey61
-
-gray60
-
-grey60
-
-gray59
-
-grey59
-
-gray58
-
-grey58
-
-gray57
-
-grey57
-
-gray56
-
-grey56
-
-gray55
-
-grey55
-
-gray54
-
-grey54
-
-gray53
-
-grey53
-
-gray52
-
-grey52
-
-gray51
-
-grey51
-
-fractal
-
-gray50
-
-grey50
-
-gray
-
-gray49
-
-grey49
-
-gray48
-
-grey48
-
-gray47
-
-grey47
-
-gray46
-
-grey46
-
-gray45
-
-grey45
-
-gray44
-
-grey44
-
-gray43
-
-grey43
-
-gray42
-
-grey42
-
-DimGray
-
-DimGrey
-
-gray41
-
-grey41
-
-gray40
-
-grey40
-
-gray39
-
-grey39
-
-gray38
-
-grey38
-
-gray37
-
-grey37
-
-gray36
-
-grey36
-
-gray35
-
-grey35
-
-gray34
-
-grey34
-
-gray33
-
-grey33
-
-gray32
-
-grey32
-
-gray31
-
-grey31
-
-gray30
-
-grey30
-
-gray29
-
-grey29
-
-gray28
-
-grey28
-
-gray27
-
-grey27
-
-gray26
-
-grey26
-
-gray25
-
-grey25
-
-gray24
-
-grey24
-
-gray23
-
-grey23
-
-gray22
-
-grey22
-
-gray21
-
-grey21
-
-gray20
-
-grey20
-
-gray19
-
-grey19
-
-gray18
-
-grey18
-
-gray17
-
-grey17
-
-gray16
-
-grey16
-
-gray15
-
-grey15
-
-gray14
-
-grey14
-
-gray13
-
-grey13
-
-gray12
-
-grey12
-
-gray11
-
-grey11
-
-gray10
-
-grey10
-
-gray9
-
-grey9
-
-gray8
-
-grey8
-
-gray7
-
-grey7
-
-gray6
-
-grey6
-
-gray5
-
-grey5
-
-gray4
-
-grey4
-
-gray3
-
-grey3
-
-gray2
-
-grey2
-
-gray1
-
-grey1
-
-black
-
-gray0
-
-grey0
-
-opaque
-
-none
-
-transparent
-
- -
-CLICK TO CHOOSE THE COLOR -
- -
- -OPTIONS -
CLICK TO USE HEX KEYS
-
-
CLICK TO TOGGLE PALATE INFO
-
-
CLICK TO TOGGLE BACKGROUNDS
-
-
-
YOU WILL CHOOSE:
-
-to choose transparent as a color, click HERE -
-
- - - - - - diff --git a/share/frontend/imgrid/colors/colors/minoan.gif b/share/frontend/imgrid/colors/colors/minoan.gif deleted file mode 100755 index 4ceb804..0000000 Binary files a/share/frontend/imgrid/colors/colors/minoan.gif and /dev/null differ diff --git a/share/frontend/imgrid/colors/colors/savior.html b/share/frontend/imgrid/colors/colors/savior.html deleted file mode 100755 index 72395fd..0000000 --- a/share/frontend/imgrid/colors/colors/savior.html +++ /dev/null @@ -1,3582 +0,0 @@ - - - - -
-
-snow
-
-snow1
-
-snow2
-
-RosyBrown1
-
-RosyBrown2
-
-snow3
-
-LightCoral
-
-IndianRed1
-
-RosyBrown3
-
-IndianRed2
-
-RosyBrown
-
-brown1
-
-firebrick1
-
-brown2
-
-IndianRed
-
-IndianRed3
-
-firebrick2
-
-snow4
-
-brown3
-
-red
-
-red1
-
-RosyBrown4
-
-firebrick3
-
-red2
-
-firebrick
-
-brown
-
-red3
-
-IndianRed4
-
-brown4
-
-firebrick4
-
-DarkRed
-
-red4
-
-maroon
-
-LightPink1
-
-LightPink3
-
-LightPink4
-
-LightPink2
-
-LightPink
-
-pink
-
-crimson
-
-pink1
-
-pink2
-
-pink3
-
-pink4
-
-PaleVioletRed4
-
-PaleVioletRed
-
-PaleVioletRed2
-
-PaleVioletRed1
-
-PaleVioletRed3
-
-LavenderBlush
-
-LavenderBlush1
-
-LavenderBlush3
-
-LavenderBlush2
-
-LavenderBlush4
-
-maroon
-
-HotPink3
-
-VioletRed3
-
-VioletRed1
-
-VioletRed2
-
-VioletRed4
-
-HotPink2
-
-HotPink1
-
-HotPink4
-
-HotPink
-
-DeepPink
-
-DeepPink1
-
-DeepPink2
-
-DeepPink3
-
-DeepPink4
-
-maroon1
-
-maroon2
-
-maroon3
-
-maroon4
-
-MediumVioletRed
-
-VioletRed
-
-orchid2
-
-orchid
-
-orchid1
-
-orchid3
-
-orchid4
-
-thistle1
-
-thistle2
-
-plum1
-
-plum2
-
-thistle
-
-thistle3
-
-plum
-
-violet
-
-plum3
-
-thistle4
-
-fuchsia
-
-magenta
-
-magenta1
-
-plum4
-
-magenta2
-
-magenta3
-
-DarkMagenta
-
-magenta4
-
-purple
-
-MediumOrchid
-
-MediumOrchid1
-
-MediumOrchid2
-
-MediumOrchid3
-
-MediumOrchid4
-
-DarkViolet
-
-DarkOrchid
-
-DarkOrchid1
-
-DarkOrchid3
-
-DarkOrchid2
-
-DarkOrchid4
-
-purple
-
-indigo
-
-BlueViolet
-
-purple2
-
-purple3
-
-purple4
-
-purple1
-
-MediumPurple
-
-MediumPurple1
-
-MediumPurple2
-
-MediumPurple3
-
-MediumPurple4
-
-DarkSlateBlue
-
-LightSlateBlue
-
-MediumSlateBlue
-
-SlateBlue
-
-SlateBlue1
-
-SlateBlue2
-
-SlateBlue3
-
-SlateBlue4
-
-GhostWhite
-
-lavender
-
-blue
-
-blue1
-
-blue2
-
-blue3
-
-MediumBlue
-
-blue4
-
-DarkBlue
-
-MidnightBlue
-
-navy
-
-NavyBlue
-
-RoyalBlue
-
-RoyalBlue1
-
-RoyalBlue2
-
-RoyalBlue3
-
-RoyalBlue4
-
-CornflowerBlue
-
-LightSteelBlue
-
-LightSteelBlue1
-
-LightSteelBlue2
-
-LightSteelBlue3
-
-LightSteelBlue4
-
-SlateGray4
-
-SlateGray1
-
-SlateGray2
-
-SlateGray3
-
-LightSlateGray
-
-LightSlateGrey
-
-SlateGray
-
-SlateGrey
-
-DodgerBlue
-
-DodgerBlue1
-
-DodgerBlue2
-
-DodgerBlue4
-
-DodgerBlue3
-
-AliceBlue
-
-SteelBlue4
-
-SteelBlue
-
-SteelBlue1
-
-SteelBlue2
-
-SteelBlue3
-
-SkyBlue4
-
-SkyBlue1
-
-SkyBlue2
-
-SkyBlue3
-
-LightSkyBlue
-
-LightSkyBlue4
-
-LightSkyBlue1
-
-LightSkyBlue2
-
-LightSkyBlue3
-
-SkyBlue
-
-LightBlue3
-
-DeepSkyBlue
-
-DeepSkyBlue1
-
-DeepSkyBlue2
-
-DeepSkyBlue4
-
-DeepSkyBlue3
-
-LightBlue1
-
-LightBlue2
-
-LightBlue
-
-LightBlue4
-
-PowderBlue
-
-CadetBlue1
-
-CadetBlue2
-
-CadetBlue3
-
-CadetBlue4
-
-turquoise1
-
-turquoise2
-
-turquoise3
-
-turquoise4
-
-cadet blue
-
-CadetBlue
-
-DarkTurquoise
-
-azure
-
-azure1
-
-LightCyan
-
-LightCyan1
-
-azure2
-
-LightCyan2
-
-PaleTurquoise1
-
-PaleTurquoise
-
-PaleTurquoise2
-
-DarkSlateGray1
-
-azure3
-
-LightCyan3
-
-DarkSlateGray2
-
-PaleTurquoise3
-
-DarkSlateGray3
-
-azure4
-
-LightCyan4
-
-aqua
-
-cyan
-
-cyan1
-
-PaleTurquoise4
-
-cyan2
-
-DarkSlateGray4
-
-cyan3
-
-cyan4
-
-DarkCyan
-
-teal
-
-DarkSlateGray
-
-DarkSlateGrey
-
-MediumTurquoise
-
-LightSeaGreen
-
-turquoise
-
-aquamarine4
-
-aquamarine
-
-aquamarine1
-
-aquamarine2
-
-aquamarine3
-
-MediumAquamarine
-
-MediumSpringGreen
-
-MintCream
-
-SpringGreen
-
-SpringGreen1
-
-SpringGreen2
-
-SpringGreen3
-
-SpringGreen4
-
-MediumSeaGreen
-
-SeaGreen
-
-SeaGreen3
-
-SeaGreen1
-
-SeaGreen4
-
-SeaGreen2
-
-MediumForestGreen
-
-honeydew
-
-honeydew1
-
-honeydew2
-
-DarkSeaGreen1
-
-DarkSeaGreen2
-
-PaleGreen1
-
-PaleGreen
-
-honeydew3
-
-LightGreen
-
-PaleGreen2
-
-DarkSeaGreen3
-
-DarkSeaGreen
-
-PaleGreen3
-
-honeydew4
-
-green1
-
-lime
-
-LimeGreen
-
-DarkSeaGreen4
-
-green2
-
-PaleGreen4
-
-green3
-
-ForestGreen
-
-green4
-
-green
-
-DarkGreen
-
-LawnGreen
-
-chartreuse
-
-chartreuse1
-
-chartreuse2
-
-chartreuse3
-
-chartreuse4
-
-GreenYellow
-
-DarkOliveGreen3
-
-DarkOliveGreen1
-
-DarkOliveGreen2
-
-DarkOliveGreen4
-
-DarkOliveGreen
-
-OliveDrab
-
-OliveDrab1
-
-OliveDrab2
-
-OliveDrab3
-
-YellowGreen
-
-OliveDrab4
-
-ivory
-
-ivory1
-
-LightYellow
-
-LightYellow1
-
-beige
-
-ivory2
-
-LightGoldenrodYellow
-
-LightYellow2
-
-ivory3
-
-LightYellow3
-
-ivory4
-
-LightYellow4
-
-yellow
-
-yellow1
-
-yellow2
-
-yellow3
-
-yellow4
-
-olive
-
-DarkKhaki
-
-khaki2
-
-LemonChiffon4
-
-khaki1
-
-khaki3
-
-khaki4
-
-PaleGoldenrod
-
-LemonChiffon
-
-LemonChiffon1
-
-khaki
-
-LemonChiffon3
-
-LemonChiffon2
-
-MediumGoldenRod
-
-cornsilk4
-
-gold
-
-gold1
-
-gold2
-
-gold3
-
-gold4
-
-LightGoldenrod
-
-LightGoldenrod4
-
-LightGoldenrod1
-
-LightGoldenrod3
-
-LightGoldenrod2
-
-cornsilk3
-
-cornsilk2
-
-cornsilk
-
-cornsilk1
-
-goldenrod
-
-goldenrod1
-
-goldenrod2
-
-goldenrod3
-
-goldenrod4
-
-DarkGoldenrod
-
-DarkGoldenrod1
-
-DarkGoldenrod2
-
-DarkGoldenrod3
-
-DarkGoldenrod4
-
-FloralWhite
-
-wheat2
-
-OldLace
-
-wheat
-
-wheat1
-
-wheat3
-
-orange
-
-orange1
-
-orange2
-
-orange3
-
-orange4
-
-wheat4
-
-moccasin
-
-PapayaWhip
-
-NavajoWhite3
-
-BlanchedAlmond
-
-NavajoWhite
-
-NavajoWhite1
-
-NavajoWhite2
-
-NavajoWhite4
-
-AntiqueWhite4
-
-AntiqueWhite
-
-tan
-
-bisque4
-
-burlywood
-
-AntiqueWhite2
-
-burlywood1
-
-burlywood3
-
-burlywood2
-
-AntiqueWhite1
-
-burlywood4
-
-AntiqueWhite3
-
-DarkOrange
-
-bisque2
-
-bisque
-
-bisque1
-
-bisque3
-
-DarkOrange1
-
-linen
-
-DarkOrange2
-
-DarkOrange3
-
-DarkOrange4
-
-peru
-
-tan1
-
-tan2
-
-tan3
-
-tan4
-
-PeachPuff
-
-PeachPuff1
-
-PeachPuff4
-
-PeachPuff2
-
-PeachPuff3
-
-SandyBrown
-
-seashell4
-
-seashell2
-
-seashell3
-
-chocolate
-
-chocolate1
-
-chocolate2
-
-chocolate3
-
-chocolate4
-
-SaddleBrown
-
-seashell
-
-seashell1
-
-sienna4
-
-sienna
-
-sienna1
-
-sienna2
-
-sienna3
-
-LightSalmon3
-
-LightSalmon
-
-LightSalmon1
-
-LightSalmon4
-
-LightSalmon2
-
-coral
-
-OrangeRed
-
-OrangeRed1
-
-OrangeRed2
-
-OrangeRed3
-
-OrangeRed4
-
-DarkSalmon
-
-salmon1
-
-salmon2
-
-salmon3
-
-salmon4
-
-coral1
-
-coral2
-
-coral3
-
-coral4
-
-tomato4
-
-tomato
-
-tomato1
-
-tomato2
-
-tomato3
-
-MistyRose4
-
-MistyRose2
-
-MistyRose
-
-MistyRose1
-
-salmon
-
-MistyRose3
-
-white
-
-gray100
-
-grey100
-
-grey100
-
-gray99
-
-grey99
-
-gray98
-
-grey98
-
-gray97
-
-grey97
-
-gray96
-
-grey96
-
-WhiteSmoke
-
-gray95
-
-grey95
-
-gray94
-
-grey94
-
-gray93
-
-grey93
-
-gray92
-
-grey92
-
-gray91
-
-grey91
-
-gray90
-
-grey90
-
-gray89
-
-grey89
-
-gray88
-
-grey88
-
-gray87
-
-grey87
-
-gainsboro
-
-gray86
-
-grey86
-
-gray85
-
-grey85
-
-gray84
-
-grey84
-
-gray83
-
-grey83
-
-LightGray
-
-LightGrey
-
-gray82
-
-grey82
-
-gray81
-
-grey81
-
-gray80
-
-grey80
-
-gray79
-
-grey79
-
-gray78
-
-grey78
-
-gray77
-
-grey77
-
-gray76
-
-grey76
-
-silver
-
-gray75
-
-grey75
-
-gray74
-
-grey74
-
-gray73
-
-grey73
-
-gray72
-
-grey72
-
-gray71
-
-grey71
-
-gray70
-
-grey70
-
-gray69
-
-grey69
-
-gray68
-
-grey68
-
-gray67
-
-grey67
-
-DarkGray
-
-DarkGrey
-
-gray66
-
-grey66
-
-gray65
-
-grey65
-
-gray64
-
-grey64
-
-gray63
-
-grey63
-
-gray62
-
-grey62
-
-gray61
-
-grey61
-
-gray60
-
-grey60
-
-gray59
-
-grey59
-
-gray58
-
-grey58
-
-gray57
-
-grey57
-
-gray56
-
-grey56
-
-gray55
-
-grey55
-
-gray54
-
-grey54
-
-gray53
-
-grey53
-
-gray52
-
-grey52
-
-gray51
-
-grey51
-
-fractal
-
-gray50
-
-grey50
-
-gray
-
-gray49
-
-grey49
-
-gray48
-
-grey48
-
-gray47
-
-grey47
-
-gray46
-
-grey46
-
-gray45
-
-grey45
-
-gray44
-
-grey44
-
-gray43
-
-grey43
-
-gray42
-
-grey42
-
-DimGray
-
-DimGrey
-
-gray41
-
-grey41
-
-gray40
-
-grey40
-
-gray39
-
-grey39
-
-gray38
-
-grey38
-
-gray37
-
-grey37
-
-gray36
-
-grey36
-
-gray35
-
-grey35
-
-gray34
-
-grey34
-
-gray33
-
-grey33
-
-gray32
-
-grey32
-
-gray31
-
-grey31
-
-gray30
-
-grey30
-
-gray29
-
-grey29
-
-gray28
-
-grey28
-
-gray27
-
-grey27
-
-gray26
-
-grey26
-
-gray25
-
-grey25
-
-gray24
-
-grey24
-
-gray23
-
-grey23
-
-gray22
-
-grey22
-
-gray21
-
-grey21
-
-gray20
-
-grey20
-
-gray19
-
-grey19
-
-gray18
-
-grey18
-
-gray17
-
-grey17
-
-gray16
-
-grey16
-
-gray15
-
-grey15
-
-gray14
-
-grey14
-
-gray13
-
-grey13
-
-gray12
-
-grey12
-
-gray11
-
-grey11
-
-gray10
-
-grey10
-
-gray9
-
-grey9
-
-gray8
-
-grey8
-
-gray7
-
-grey7
-
-gray6
-
-grey6
-
-gray5
-
-grey5
-
-gray4
-
-grey4
-
-gray3
-
-grey3
-
-gray2
-
-grey2
-
-gray1
-
-grey1
-
-black
-
-gray0
-
-grey0
-
-opaque
-
-none
-
-transparent
-
- -
-WHERE THE COLORNAMES WILL GO -
- -
CLICK TO SHOW HEXES
-
CLICK TO SHOW INFO
- - - - - - diff --git a/share/frontend/imgrid/colors/colors/test.html b/share/frontend/imgrid/colors/colors/test.html deleted file mode 100755 index 1912ebf..0000000 --- a/share/frontend/imgrid/colors/colors/test.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - -
- -
-
-
-
- -
-
-
-
-
-
-
-
-
- - - - - diff --git a/share/frontend/imgrid/colors/colors/vase.gif b/share/frontend/imgrid/colors/colors/vase.gif deleted file mode 100755 index dc1c104..0000000 Binary files a/share/frontend/imgrid/colors/colors/vase.gif and /dev/null differ diff --git a/share/frontend/imgrid/colors/colors/vase.png b/share/frontend/imgrid/colors/colors/vase.png deleted file mode 100755 index 153e72b..0000000 Binary files a/share/frontend/imgrid/colors/colors/vase.png and /dev/null differ diff --git a/share/frontend/imgrid/colors/colors/vaseshim.png b/share/frontend/imgrid/colors/colors/vaseshim.png deleted file mode 100755 index 7dbd352..0000000 Binary files a/share/frontend/imgrid/colors/colors/vaseshim.png and /dev/null differ diff --git a/share/frontend/imgrid/colors/colors/whiteshim.png b/share/frontend/imgrid/colors/colors/whiteshim.png deleted file mode 100755 index 6b58334..0000000 Binary files a/share/frontend/imgrid/colors/colors/whiteshim.png and /dev/null differ diff --git a/share/frontend/imgrid/colors/grayshim.png b/share/frontend/imgrid/colors/grayshim.png deleted file mode 100755 index 6f71223..0000000 Binary files a/share/frontend/imgrid/colors/grayshim.png and /dev/null differ diff --git a/share/frontend/imgrid/colors/hoverbutton.png b/share/frontend/imgrid/colors/hoverbutton.png deleted file mode 100755 index b14281e..0000000 Binary files a/share/frontend/imgrid/colors/hoverbutton.png and /dev/null differ diff --git a/share/frontend/imgrid/colors/index.html b/share/frontend/imgrid/colors/index.html deleted file mode 100755 index 93b1a9b..0000000 --- a/share/frontend/imgrid/colors/index.html +++ /dev/null @@ -1,3507 +0,0 @@ - - - - -
-
-
-snow
-
-snow1
-
-snow2
-
-RosyBrown1
-
-RosyBrown2
-
-snow3
-
-LightCoral
-
-IndianRed1
-
-RosyBrown3
-
-IndianRed2
-
-RosyBrown
-
-brown1
-
-firebrick1
-
-brown2
-
-IndianRed
-
-IndianRed3
-
-firebrick2
-
-snow4
-
-brown3
-
-red
-
-red1
-
-RosyBrown4
-
-firebrick3
-
-red2
-
-firebrick
-
-brown
-
-red3
-
-IndianRed4
-
-brown4
-
-firebrick4
-
-DarkRed
-
-red4
-
-maroon
-
-LightPink1
-
-LightPink3
-
-LightPink4
-
-LightPink2
-
-LightPink
-
-pink
-
-crimson
-
-pink1
-
-pink2
-
-pink3
-
-pink4
-
-PaleVioletRed4
-
-PaleVioletRed
-
-PaleVioletRed2
-
-PaleVioletRed1
-
-PaleVioletRed3
-
-LavenderBlush
-
-LavenderBlush1
-
-LavenderBlush3
-
-LavenderBlush2
-
-LavenderBlush4
-
-maroon
-
-HotPink3
-
-VioletRed3
-
-VioletRed1
-
-VioletRed2
-
-VioletRed4
-
-HotPink2
-
-HotPink1
-
-HotPink4
-
-HotPink
-
-DeepPink
-
-DeepPink1
-
-DeepPink2
-
-DeepPink3
-
-DeepPink4
-
-maroon1
-
-maroon2
-
-maroon3
-
-maroon4
-
-MediumVioletRed
-
-VioletRed
-
-orchid2
-
-orchid
-
-orchid1
-
-orchid3
-
-orchid4
-
-thistle1
-
-thistle2
-
-plum1
-
-plum2
-
-thistle
-
-thistle3
-
-plum
-
-violet
-
-plum3
-
-thistle4
-
-fuchsia
-
-magenta
-
-magenta1
-
-plum4
-
-magenta2
-
-magenta3
-
-DarkMagenta
-
-magenta4
-
-purple
-
-MediumOrchid
-
-MediumOrchid1
-
-MediumOrchid2
-
-MediumOrchid3
-
-MediumOrchid4
-
-DarkViolet
-
-DarkOrchid
-
-DarkOrchid1
-
-DarkOrchid3
-
-DarkOrchid2
-
-DarkOrchid4
-
-purple
-
-indigo
-
-BlueViolet
-
-purple2
-
-purple3
-
-purple4
-
-purple1
-
-MediumPurple
-
-MediumPurple1
-
-MediumPurple2
-
-MediumPurple3
-
-MediumPurple4
-
-DarkSlateBlue
-
-LightSlateBlue
-
-MediumSlateBlue
-
-SlateBlue
-
-SlateBlue1
-
-SlateBlue2
-
-SlateBlue3
-
-SlateBlue4
-
-GhostWhite
-
-lavender
-
-blue
-
-blue1
-
-blue2
-
-blue3
-
-MediumBlue
-
-blue4
-
-DarkBlue
-
-MidnightBlue
-
-navy
-
-NavyBlue
-
-RoyalBlue
-
-RoyalBlue1
-
-RoyalBlue2
-
-RoyalBlue3
-
-RoyalBlue4
-
-CornflowerBlue
-
-LightSteelBlue
-
-LightSteelBlue1
-
-LightSteelBlue2
-
-LightSteelBlue3
-
-LightSteelBlue4
-
-SlateGray4
-
-SlateGray1
-
-SlateGray2
-
-SlateGray3
-
-LightSlateGray
-
-LightSlateGrey
-
-SlateGray
-
-SlateGrey
-
-DodgerBlue
-
-DodgerBlue1
-
-DodgerBlue2
-
-DodgerBlue4
-
-DodgerBlue3
-
-AliceBlue
-
-SteelBlue4
-
-SteelBlue
-
-SteelBlue1
-
-SteelBlue2
-
-SteelBlue3
-
-SkyBlue4
-
-SkyBlue1
-
-SkyBlue2
-
-SkyBlue3
-
-LightSkyBlue
-
-LightSkyBlue4
-
-LightSkyBlue1
-
-LightSkyBlue2
-
-LightSkyBlue3
-
-SkyBlue
-
-LightBlue3
-
-DeepSkyBlue
-
-DeepSkyBlue1
-
-DeepSkyBlue2
-
-DeepSkyBlue4
-
-DeepSkyBlue3
-
-LightBlue1
-
-LightBlue2
-
-LightBlue
-
-LightBlue4
-
-PowderBlue
-
-CadetBlue1
-
-CadetBlue2
-
-CadetBlue3
-
-CadetBlue4
-
-turquoise1
-
-turquoise2
-
-turquoise3
-
-turquoise4
-
-cadet blue
-
-CadetBlue
-
-DarkTurquoise
-
-azure
-
-azure1
-
-LightCyan
-
-LightCyan1
-
-azure2
-
-LightCyan2
-
-PaleTurquoise1
-
-PaleTurquoise
-
-PaleTurquoise2
-
-DarkSlateGray1
-
-azure3
-
-LightCyan3
-
-DarkSlateGray2
-
-PaleTurquoise3
-
-DarkSlateGray3
-
-azure4
-
-LightCyan4
-
-aqua
-
-cyan
-
-cyan1
-
-PaleTurquoise4
-
-cyan2
-
-DarkSlateGray4
-
-cyan3
-
-cyan4
-
-DarkCyan
-
-teal
-
-DarkSlateGray
-
-DarkSlateGrey
-
-MediumTurquoise
-
-LightSeaGreen
-
-turquoise
-
-aquamarine4
-
-aquamarine
-
-aquamarine1
-
-aquamarine2
-
-aquamarine3
-
-MediumAquamarine
-
-MediumSpringGreen
-
-MintCream
-
-SpringGreen
-
-SpringGreen1
-
-SpringGreen2
-
-SpringGreen3
-
-SpringGreen4
-
-MediumSeaGreen
-
-SeaGreen
-
-SeaGreen3
-
-SeaGreen1
-
-SeaGreen4
-
-SeaGreen2
-
-MediumForestGreen
-
-honeydew
-
-honeydew1
-
-honeydew2
-
-DarkSeaGreen1
-
-DarkSeaGreen2
-
-PaleGreen1
-
-PaleGreen
-
-honeydew3
-
-LightGreen
-
-PaleGreen2
-
-DarkSeaGreen3
-
-DarkSeaGreen
-
-PaleGreen3
-
-honeydew4
-
-green1
-
-lime
-
-LimeGreen
-
-DarkSeaGreen4
-
-green2
-
-PaleGreen4
-
-green3
-
-ForestGreen
-
-green4
-
-green
-
-DarkGreen
-
-LawnGreen
-
-chartreuse
-
-chartreuse1
-
-chartreuse2
-
-chartreuse3
-
-chartreuse4
-
-GreenYellow
-
-DarkOliveGreen3
-
-DarkOliveGreen1
-
-DarkOliveGreen2
-
-DarkOliveGreen4
-
-DarkOliveGreen
-
-OliveDrab
-
-OliveDrab1
-
-OliveDrab2
-
-OliveDrab3
-
-YellowGreen
-
-OliveDrab4
-
-ivory
-
-ivory1
-
-LightYellow
-
-LightYellow1
-
-beige
-
-ivory2
-
-LightGoldenrodYellow
-
-LightYellow2
-
-ivory3
-
-LightYellow3
-
-ivory4
-
-LightYellow4
-
-yellow
-
-yellow1
-
-yellow2
-
-yellow3
-
-yellow4
-
-olive
-
-DarkKhaki
-
-khaki2
-
-LemonChiffon4
-
-khaki1
-
-khaki3
-
-khaki4
-
-PaleGoldenrod
-
-LemonChiffon
-
-LemonChiffon1
-
-khaki
-
-LemonChiffon3
-
-LemonChiffon2
-
-MediumGoldenRod
-
-cornsilk4
-
-gold
-
-gold1
-
-gold2
-
-gold3
-
-gold4
-
-LightGoldenrod
-
-LightGoldenrod4
-
-LightGoldenrod1
-
-LightGoldenrod3
-
-LightGoldenrod2
-
-cornsilk3
-
-cornsilk2
-
-cornsilk
-
-cornsilk1
-
-goldenrod
-
-goldenrod1
-
-goldenrod2
-
-goldenrod3
-
-goldenrod4
-
-DarkGoldenrod
-
-DarkGoldenrod1
-
-DarkGoldenrod2
-
-DarkGoldenrod3
-
-DarkGoldenrod4
-
-FloralWhite
-
-wheat2
-
-OldLace
-
-wheat
-
-wheat1
-
-wheat3
-
-orange
-
-orange1
-
-orange2
-
-orange3
-
-orange4
-
-wheat4
-
-moccasin
-
-PapayaWhip
-
-NavajoWhite3
-
-BlanchedAlmond
-
-NavajoWhite
-
-NavajoWhite1
-
-NavajoWhite2
-
-NavajoWhite4
-
-AntiqueWhite4
-
-AntiqueWhite
-
-tan
-
-bisque4
-
-burlywood
-
-AntiqueWhite2
-
-burlywood1
-
-burlywood3
-
-burlywood2
-
-AntiqueWhite1
-
-burlywood4
-
-AntiqueWhite3
-
-DarkOrange
-
-bisque2
-
-bisque
-
-bisque1
-
-bisque3
-
-DarkOrange1
-
-linen
-
-DarkOrange2
-
-DarkOrange3
-
-DarkOrange4
-
-peru
-
-tan1
-
-tan2
-
-tan3
-
-tan4
-
-PeachPuff
-
-PeachPuff1
-
-PeachPuff4
-
-PeachPuff2
-
-PeachPuff3
-
-SandyBrown
-
-seashell4
-
-seashell2
-
-seashell3
-
-chocolate
-
-chocolate1
-
-chocolate2
-
-chocolate3
-
-chocolate4
-
-SaddleBrown
-
-seashell
-
-seashell1
-
-sienna4
-
-sienna
-
-sienna1
-
-sienna2
-
-sienna3
-
-LightSalmon3
-
-LightSalmon
-
-LightSalmon1
-
-LightSalmon4
-
-LightSalmon2
-
-coral
-
-OrangeRed
-
-OrangeRed1
-
-OrangeRed2
-
-OrangeRed3
-
-OrangeRed4
-
-DarkSalmon
-
-salmon1
-
-salmon2
-
-salmon3
-
-salmon4
-
-coral1
-
-coral2
-
-coral3
-
-coral4
-
-tomato4
-
-tomato
-
-tomato1
-
-tomato2
-
-tomato3
-
-MistyRose4
-
-MistyRose2
-
-MistyRose
-
-MistyRose1
-
-salmon
-
-MistyRose3
-
-white
-
-gray100
-
-grey100
-
-grey100
-
-gray99
-
-grey99
-
-gray98
-
-grey98
-
-gray97
-
-grey97
-
-gray96
-
-grey96
-
-WhiteSmoke
-
-gray95
-
-grey95
-
-gray94
-
-grey94
-
-gray93
-
-grey93
-
-gray92
-
-grey92
-
-gray91
-
-grey91
-
-gray90
-
-grey90
-
-gray89
-
-grey89
-
-gray88
-
-grey88
-
-gray87
-
-grey87
-
-gainsboro
-
-gray86
-
-grey86
-
-gray85
-
-grey85
-
-gray84
-
-grey84
-
-gray83
-
-grey83
-
-LightGray
-
-LightGrey
-
-gray82
-
-grey82
-
-gray81
-
-grey81
-
-gray80
-
-grey80
-
-gray79
-
-grey79
-
-gray78
-
-grey78
-
-gray77
-
-grey77
-
-gray76
-
-grey76
-
-silver
-
-gray75
-
-grey75
-
-gray74
-
-grey74
-
-gray73
-
-grey73
-
-gray72
-
-grey72
-
-gray71
-
-grey71
-
-gray70
-
-grey70
-
-gray69
-
-grey69
-
-gray68
-
-grey68
-
-gray67
-
-grey67
-
-DarkGray
-
-DarkGrey
-
-gray66
-
-grey66
-
-gray65
-
-grey65
-
-gray64
-
-grey64
-
-gray63
-
-grey63
-
-gray62
-
-grey62
-
-gray61
-
-grey61
-
-gray60
-
-grey60
-
-gray59
-
-grey59
-
-gray58
-
-grey58
-
-gray57
-
-grey57
-
-gray56
-
-grey56
-
-gray55
-
-grey55
-
-gray54
-
-grey54
-
-gray53
-
-grey53
-
-gray52
-
-grey52
-
-gray51
-
-grey51
-
-fractal
-
-gray50
-
-grey50
-
-gray
-
-gray49
-
-grey49
-
-gray48
-
-grey48
-
-gray47
-
-grey47
-
-gray46
-
-grey46
-
-gray45
-
-grey45
-
-gray44
-
-grey44
-
-gray43
-
-grey43
-
-gray42
-
-grey42
-
-DimGray
-
-DimGrey
-
-gray41
-
-grey41
-
-gray40
-
-grey40
-
-gray39
-
-grey39
-
-gray38
-
-grey38
-
-gray37
-
-grey37
-
-gray36
-
-grey36
-
-gray35
-
-grey35
-
-gray34
-
-grey34
-
-gray33
-
-grey33
-
-gray32
-
-grey32
-
-gray31
-
-grey31
-
-gray30
-
-grey30
-
-gray29
-
-grey29
-
-gray28
-
-grey28
-
-gray27
-
-grey27
-
-gray26
-
-grey26
-
-gray25
-
-grey25
-
-gray24
-
-grey24
-
-gray23
-
-grey23
-
-gray22
-
-grey22
-
-gray21
-
-grey21
-
-gray20
-
-grey20
-
-gray19
-
-grey19
-
-gray18
-
-grey18
-
-gray17
-
-grey17
-
-gray16
-
-grey16
-
-gray15
-
-grey15
-
-gray14
-
-grey14
-
-gray13
-
-grey13
-
-gray12
-
-grey12
-
-gray11
-
-grey11
-
-gray10
-
-grey10
-
-gray9
-
-grey9
-
-gray8
-
-grey8
-
-gray7
-
-grey7
-
-gray6
-
-grey6
-
-gray5
-
-grey5
-
-gray4
-
-grey4
-
-gray3
-
-grey3
-
-gray2
-
-grey2
-
-gray1
-
-grey1
-
-black
-
-gray0
-
-grey0
-
-opaque
-
-none
-
-transparent
-
- -
-CLICK TO CHOOSE THE COLOR -
- -
- OPTIONS -
 
-
-
CLICK TO TOGGLE PALATE INFO
-
-
CLICK TO TOGGLE BACKGROUNDS
-
-
-
YOU WILL CHOOSE:
-
- to choose transparent as a color, click HERE -
-
- -
-
- - - - - - - - - - - - diff --git a/share/frontend/imgrid/colors/js/backgroundswitcher.js b/share/frontend/imgrid/colors/js/backgroundswitcher.js deleted file mode 100755 index 74e8367..0000000 --- a/share/frontend/imgrid/colors/js/backgroundswitcher.js +++ /dev/null @@ -1,38 +0,0 @@ -backgroundstate = 2; -function switchbackground() - { - if(backgroundstate == 1) - { - $('#colorpicker').css('background-color','black') - $('#colorpicker').css('background-image','url(js/ditherbackground.gif)') - backgroundstate = 2; - $('#colornames').css('color', 'white') - $('#colornames').css('text-shadow', 'black 1px 2px') - $('#vaseshim').css('background-image','url(vaseshim.png)') - } - else if(backgroundstate == 2) - { - $('#colorpicker').css('background-color','black') - $('#colorpicker').css('background-image', 'none') - $('#vaseshim').css('background-image','url(blackshim.png)') - backgroundstate = 3; - } - else if(backgroundstate == 3) - { - $('#colorpicker').css('background-color','gray') - $('#colorpicker').css('background-image','none') - $('#vaseshim').css('background-image','url(grayshim.png)') - backgroundstate = 0; - } - else if(backgroundstate == 0) - { - $('#colorpicker').css('background-color', 'white') - $('#colorpicker').css('background-image', 'none') - $('#colornames').css('color', '#7F7F7F') - $('#vaseshim').css('background-image','url(whiteshim.png)') - backgroundstate = 1 - } - } - -$('#backgroundswitch').click(function(){switchbackground()}) - diff --git a/share/frontend/imgrid/colors/js/colordict.js b/share/frontend/imgrid/colors/js/colordict.js deleted file mode 100755 index 5c69bc8..0000000 --- a/share/frontend/imgrid/colors/js/colordict.js +++ /dev/null @@ -1,3 +0,0 @@ -var nametohex = {'grey21': '#363636', 'yellow': '#FFFF00', 'grey61': '#9C9C9C', 'HotPink3': '#CD6090', 'grey63': '#A1A1A1', 'grey62': '#9E9E9E', 'grey65': '#A6A6A6', 'AliceBlue': '#F0F8FF', 'grey67': '#ABABAB', 'grey66': '#A8A8A8', 'LightCyan1': '#E0FFFF', 'grey68': '#ADADAD', 'LightCyan3': '#B4CDCD', 'LightCyan2': '#D1EEEE', 'LightCyan4': '#7A8B8B', 'gray32': '#525252', 'gray33': '#545454', 'DarkTurquoise': '#00CED1', 'gray31': '#4F4F4F', 'gray36': '#5C5C5C', 'gray37': '#5E5E5E', 'gray34': '#575757', 'gray35': '#595959', 'aquamarine4': '#458B74', 'gray38': '#616161', 'gray39': '#636363', 'aquamarine1': '#7FFFD4', 'aquamarine3': '#66CDAA', 'aquamarine2': '#76EEC6', 'CadetBlue4': '#53868B', 'CadetBlue3': '#7AC5CD', 'CadetBlue2': '#8EE5EE', 'CadetBlue1': '#98F5FF', 'crimson': '#DC143C', 'VioletRed1': '#FF3E96', 'VioletRed2': '#EE3A8C', 'VioletRed3': '#CD3278', 'VioletRed4': '#8B2252', 'brown': '#A52A2A', 'DarkGoldenrod': '#B8860B', 'gray8': '#141414', 'SlateGrey': '#708090', 'NavajoWhite2': '#EECFA1', 'gray2': '#050505', 'cyan': '#00FFFF', 'gray0': '#000000', 'gray1': '#030303', 'fractal': '#808080', 'gray7': '#121212', 'gray4': '#0A0A0A', 'gray5': '#0D0D0D', 'grey60': '#999999', 'DarkBlue': '#00008B', 'gray98': '#FAFAFA', 'DarkKhaki': '#BDB76B', 'gray99': '#FCFCFC', 'teal': '#008080', 'grey11': '#1C1C1C', 'coral4': '#8B3E2F', 'grey12': '#1F1F1F', 'grey64': '#A3A3A3', 'PaleGreen1': '#9AFF9A', 'PaleGreen3': '#7CCD7C', 'PaleGreen2': '#90EE90', 'PaleGreen4': '#548B54', 'grey14': '#242424', 'lavender': '#E6E6FA', 'grey15': '#262626', 'chartreuse3': '#66CD00', 'chartreuse2': '#76EE00', 'chartreuse1': '#7FFF00', 'chartreuse4': '#458B00', 'RosyBrown': '#BC8F8F', 'blue': '#0000FF', 'NavajoWhite': '#FFDEAD', 'opaque': '#000000', 'maroon4': '#8B1C62', 'maroon3': '#CD2990', 'maroon2': '#EE30A7', 'maroon1': '#FF34B3', 'gold3': '#CDAD00', 'gold2': '#EEC900', 'gold1': '#FFD700', 'gold4': '#8B7500', 'LightSlateGrey': '#778899', 'gray30': '#4D4D4D', 'DarkGreen': '#006400', 'SkyBlue': '#87CEEB', 'GhostWhite': '#F8F8FF', 'LavenderBlush': '#FFF0F5', 'SeaGreen': '#2E8B57', 'BlanchedAlmond': '#FFEBCD', 'gray60': '#999999', 'DarkOliveGreen': '#556B2F', 'firebrick2': '#EE2C2C', 'firebrick1': '#FF3030', 'firebrick4': '#8B1A1A', 'sienna': '#A0522D', 'blue1': '#0000FF', 'lime': '#00FF00', 'gray55': '#8C8C8C', 'blue2': '#0000EE', 'DarkViolet': '#9400D3', 'blue4': '#00008B', 'peru': '#CD853F', 'DarkMagenta': '#8B008B', 'LightBlue2': '#B2DFEE', 'red2': '#EE0000', 'red1': '#FF0000', 'LightBlue1': '#BFEFFF', 'LightBlue4': '#68838B', 'red4': '#8B0000', 'MediumSpringGreen': '#00FA9A', 'chocolate': '#D2691E', 'ForestGreen': '#228B22', 'DarkRed': '#8B0000', 'olive': '#808000', 'HotPink2': '#EE6AA7', 'HotPink1': '#FF6EB4', 'HotPink4': '#8B3A62', 'grey18': '#2E2E2E', 'grey19': '#303030', 'none': '#000000', 'PeachPuff': '#FFDAB9', 'MediumGoldenRod': '#D1C166', 'moccasin': '#FFE4B5', 'grey10': '#1A1A1A', 'chocolate1': '#FF7F24', 'chocolate2': '#EE7621', 'chocolate3': '#CD661D', 'chocolate4': '#8B4513', 'wheat2': '#EED8AE', 'grey16': '#292929', 'grey17': '#2B2B2B', 'gray69': '#B0B0B0', 'gray68': '#ADADAD', 'gray65': '#A6A6A6', 'gray64': '#A3A3A3', 'gray67': '#ABABAB', 'gray66': '#A8A8A8', 'gray61': '#9C9C9C', 'coral': '#FF7F50', 'gray63': '#A1A1A1', 'gray62': '#9E9E9E', 'LightGoldenrod': '#EEDD82', 'turquoise4': '#00868B', 'seashell2': '#EEE5DE', 'seashell3': '#CDC5BF', 'magenta': '#FF00FF', 'seashell1': '#FFF5EE', 'tan': '#D2B48C', 'seashell4': '#8B8682', 'pink': '#FFC0CB', 'LightSlateBlue': '#8470FF', 'SteelBlue1': '#63B8FF', 'SteelBlue3': '#4F94CD', 'SteelBlue2': '#5CACEE', 'SteelBlue4': '#36648B', 'grey89': '#E3E3E3', 'grey88': '#E0E0E0', 'grey87': '#DEDEDE', 'grey86': '#DBDBDB', 'grey85': '#D9D9D9', 'grey84': '#D6D6D6', 'grey83': '#D4D4D4', 'grey82': '#D1D1D1', 'grey81': '#CFCFCF', 'grey80': '#CCCCCC', 'ivory2': '#EEEEE0', 'khaki4': '#8B864E', 'khaki1': '#FFF68F', 'khaki2': '#EEE685', 'khaki3': '#CDC673', 'salmon1': '#FF8C69', 'salmon3': '#CD7054', 'salmon2': '#EE8262', 'salmon4': '#8B4C39', 'LightPink': '#FFB6C1', 'gray9': '#171717', 'green': '#008000', 'brown2': '#EE3B3B', 'brown3': '#CD3333', 'brown1': '#FF4040', 'brown4': '#8B2323', 'cadet blue': '#5F9EA0', 'orange4': '#8B5A00', 'orange1': '#FFA500', 'orange3': '#CD8500', 'orange2': '#EE9A00', 'gray3': '#080808', 'gray6': '#0F0F0F', 'yellow4': '#8B8B00', 'yellow3': '#CDCD00', 'yellow2': '#EEEE00', 'yellow1': '#FFFF00', 'PapayaWhip': '#FFEFD5', 'bisque2': '#EED5B7', 'OliveDrab4': '#698B22', 'bisque3': '#CDB79E', 'OliveDrab1': '#C0FF3E', 'OliveDrab2': '#B3EE3A', 'OliveDrab3': '#9ACD32', 'SkyBlue4': '#4A708B', 'SkyBlue1': '#87CEFF', 'SkyBlue3': '#6CA6CD', 'SkyBlue2': '#7EC0EE', 'grey58': '#949494', 'grey59': '#969696', 'grey54': '#8A8A8A', 'grey55': '#8C8C8C', 'grey56': '#8F8F8F', 'grey57': '#919191', 'grey50': '#7F7F7F', 'silver': '#C0C0C0', 'grey52': '#858585', 'grey53': '#878787', 'cyan2': '#00EEEE', 'cyan3': '#00CDCD', 'gray23': '#3B3B3B', 'RosyBrown4': '#8B6969', 'gray25': '#404040', 'CornflowerBlue': '#6495ED', 'cyan4': '#008B8B', 'gray26': '#424242', 'gray29': '#4A4A4A', 'LimeGreen': '#32CD32', 'MistyRose': '#FFE4E1', 'navy': '#000080', 'gray94': '#F0F0F0', 'gray95': '#F2F2F2', 'gray96': '#F5F5F5', 'gray97': '#F7F7F7', 'gray90': '#E5E5E5', 'gray91': '#E8E8E8', 'gray92': '#EBEBEB', 'gray93': '#EDEDED', 'MediumPurple': '#9370DB', 'MidnightBlue': '#191970', 'cornsilk': '#FFF8DC', 'red': '#FF0000', 'grey69': '#B0B0B0', 'DarkOrchid4': '#68228B', 'blue3': '#0000CD', 'LightSteelBlue': '#B0C4DE', 'DarkOrchid1': '#BF3EFF', 'DarkOrchid2': '#B23AEE', 'DarkOrchid3': '#9A32CD', 'grey72': '#B8B8B8', 'FloralWhite': '#FFFAF0', 'grey70': '#B3B3B3', 'DarkSeaGreen': '#8FBC8F', 'grey71': '#B5B5B5', 'gray17': '#2B2B2B', 'grey77': '#C4C4C4', 'tomato4': '#8B3626', 'tomato1': '#FF6347', 'tomato3': '#CD4F39', 'tomato2': '#EE5C42', 'DarkSlateGray1': '#97FFFF', 'DarkSlateGray2': '#8DEEEE', 'DarkSlateGray3': '#79CDCD', 'DarkSlateGray4': '#528B8B', 'SteelBlue': '#4682B4', 'MediumSlateBlue': '#7B68EE', 'OrangeRed': '#FF4500', 'grey79': '#C9C9C9', 'MediumVioletRed': '#C71585', 'burlywood': '#DEB887', 'white': '#FFFFFF', 'tomato': '#FF6347', 'DodgerBlue': '#1E90FF', 'RoyalBlue4': '#27408B', 'RoyalBlue1': '#4876FF', 'RoyalBlue3': '#3A5FCD', 'RoyalBlue2': '#436EEE', 'MistyRose1': '#FFE4E1', 'MistyRose3': '#CDB7B5', 'MistyRose2': '#EED5D2', 'MistyRose4': '#8B7D7B', 'LightGray': '#D3D3D3', 'LightYellow': '#FFFFE0', 'DarkOrange': '#FF8C00', 'DarkGray': '#A9A9A9', 'SlateGray': '#708090', 'turquoise3': '#00C5CD', 'turquoise2': '#00E5EE', 'turquoise1': '#00F5FF', 'burlywood2': '#EEC591', 'burlywood4': '#8B7355', 'DarkSlateGray': '#2F4F4F', 'linen': '#FAF0E6', 'grey47': '#787878', 'snow': '#FFFAFA', 'grey46': '#757575', 'gray58': '#949494', 'gray59': '#969696', 'IndianRed4': '#8B3A3A', 'purple4': '#551A8B', 'gray52': '#858585', 'gray53': '#878787', 'purple1': '#9B30FF', 'IndianRed1': '#FF6A6A', 'purple3': '#7D26CD', 'purple2': '#912CEE', 'thistle3': '#CDB5CD', 'thistle2': '#EED2EE', 'SpringGreen2': '#00EE76', 'SpringGreen3': '#00CD66', 'SpringGreen4': '#008B45', 'thistle4': '#8B7B8B', 'LightPink2': '#EEA2AD', 'LightPink3': '#CD8C95', 'LightPink1': '#FFAEB9', 'LightPink4': '#8B5F65', 'MediumPurple1': '#AB82FF', 'MediumPurple2': '#9F79EE', 'MediumPurple3': '#8968CD', 'MediumPurple4': '#5D478B', 'MediumTurquoise': '#48D1CC', 'DimGray': '#696969', 'gray14': '#242424', 'grey100': '#FFFFFF', 'OrangeRed3': '#CD3700', 'OrangeRed2': '#EE4000', 'OrangeRed1': '#FF4500', 'LightSeaGreen': '#20B2AA', 'gold': '#FFD700', 'OrangeRed4': '#8B2500', 'NavajoWhite4': '#8B795E', 'NavajoWhite1': '#FFDEAD', 'LawnGreen': '#7CFC00', 'NavajoWhite3': '#CDB38B', 'LightGoldenrod4': '#8B814C', 'LightGoldenrod1': '#FFEC8B', 'LightGoldenrod3': '#CDBE70', 'LightGoldenrod2': '#EEDC82', 'gray21': '#363636', 'PaleGreen': '#98FB98', 'green4': '#008B00', 'green1': '#00FF00', 'green3': '#00CD00', 'green2': '#00EE00', 'MediumOrchid': '#BA55D3', 'black': '#000000', 'gray20': '#333333', 'orchid4': '#8B4789', 'DodgerBlue1': '#1E90FF', 'DodgerBlue2': '#1C86EE', 'DodgerBlue3': '#1874CD', 'DodgerBlue4': '#104E8B', 'orchid1': '#FF83FA', 'orchid2': '#EE7AE9', 'orchid3': '#CD69C9', 'DarkSeaGreen4': '#698B69', 'DarkSeaGreen3': '#9BCD9B', 'DarkSeaGreen2': '#B4EEB4', 'DarkSeaGreen1': '#C1FFC1', 'gray100': '#FFFFFF', 'BlueViolet': '#8A2BE2', 'bisque4': '#8B7D6B', 'MediumOrchid4': '#7A378B', 'MintCream': '#F5FFFA', 'MediumOrchid1': '#E066FF', 'bisque1': '#FFE4C4', 'MediumOrchid3': '#B452CD', 'MediumOrchid2': '#D15FEE', 'gray': '#7E7E7E', 'DeepSkyBlue': '#00BFFF', 'LightGrey': '#D3D3D3', 'grey78': '#C7C7C7', 'gray22': '#383838', 'plum4': '#8B668B', 'plum3': '#CD96CD', 'plum2': '#EEAEEE', 'plum1': '#FFBBFF', 'DarkSlateGrey': '#2F4F4F', 'DarkOrchid': '#9932CC', 'OliveDrab': '#6B8E23', 'gray83': '#D4D4D4', 'grey49': '#7D7D7D', 'grey48': '#7A7A7A', 'thistle': '#D8BFD8', 'violet': '#EE82EE', 'grey43': '#6E6E6E', 'grey42': '#6B6B6B', 'LightSalmon4': '#8B5742', 'grey40': '#666666', 'LightSalmon2': '#EE9572', 'LightSalmon3': '#CD8162', 'grey45': '#737373', 'LightSalmon1': '#FFA07A', 'honeydew': '#F0FFF0', 'gray18': '#2E2E2E', 'gray19': '#303030', 'LightCyan': '#E0FFFF', 'gray15': '#262626', 'gray16': '#292929', 'gray82': '#D1D1D1', 'gray10': '#1A1A1A', 'gray11': '#1C1C1C', 'gray12': '#1F1F1F', 'gray13': '#212121', 'grey93': '#EDEDED', 'PaleGoldenrod': '#EEE8AA', 'gainsboro': '#DCDCDC', 'AntiqueWhite3': '#CDC0B0', 'AntiqueWhite2': '#EEDFCC', 'AntiqueWhite1': '#FFEFDB', 'gray27': '#454545', 'SlateBlue': '#6A5ACD', 'AntiqueWhite4': '#8B8378', 'DimGrey': '#696969', 'VioletRed': '#D02090', 'WhiteSmoke': '#F5F5F5', 'grey38': '#616161', 'grey39': '#636363', 'grey36': '#5C5C5C', 'grey37': '#5E5E5E', 'grey34': '#575757', 'grey35': '#595959', 'aqua': '#00FFFF', 'grey33': '#545454', 'grey30': '#4D4D4D', 'grey31': '#4F4F4F', 'NavyBlue': '#000080', 'sienna4': '#8B4726', 'gray81': '#CFCFCF', 'gray80': '#CCCCCC', 'sienna1': '#FF8247', 'gray86': '#DBDBDB', 'sienna3': '#CD6839', 'sienna2': '#EE7942', 'gray89': '#E3E3E3', 'gray88': '#E0E0E0', 'SlateBlue4': '#473C8B', 'gray87': '#DEDEDE', 'LightSteelBlue1': '#CAE1FF', 'magenta3': '#CD00CD', 'IndianRed': '#CD5C5C', 'SlateBlue2': '#7A67EE', 'SlateBlue1': '#836FFF', 'LightBlue': '#ADD8E6', 'PeachPuff4': '#8B7765', 'seashell': '#FFF5EE', 'SaddleBrown': '#8B4513', 'PeachPuff1': '#FFDAB9', 'PeachPuff2': '#EECBAD', 'PeachPuff3': '#CDAF95', 'aquamarine': '#7FFFD4', 'LemonChiffon2': '#EEE9BF', 'LemonChiffon1': '#FFFACD', 'tan4': '#8B5A2B', 'tan3': '#CD853F', 'tan2': '#EE9A49', 'tan1': '#FFA54F', 'LemonChiffon4': '#8B8970', 'orange': '#FFA500', 'OldLace': '#FDF5E6', 'PowderBlue': '#B0E0E6', 'RosyBrown3': '#CD9B9B', 'RoyalBlue': '#4169E1', 'LightSkyBlue4': '#607B8B', 'LightSkyBlue1': '#B0E2FF', 'LightSkyBlue2': '#A4D3EE', 'LightSkyBlue3': '#8DB6CD', 'LightYellow1': '#FFFFE0', 'LightYellow2': '#EEEED1', 'LightYellow3': '#CDCDB4', 'LightYellow4': '#8B8B7A', 'goldenrod4': '#8B6914', 'goldenrod1': '#FFC125', 'goldenrod2': '#EEB422', 'goldenrod3': '#CD9B1D', 'grey32': '#525252', 'LemonChiffon': '#FFFACD', 'burlywood1': '#FFD39B', 'YellowGreen': '#9ACD32', 'LightCoral': '#F08080', 'burlywood3': '#CDAA7D', 'ivory3': '#CDCDC1', 'firebrick3': '#CD2626', 'ivory1': '#FFFFF0', 'grey8': '#141414', 'ivory4': '#8B8B83', 'grey9': '#171717', 'DarkSalmon': '#E9967A', 'SlateGray1': '#C6E2FF', 'SlateGray2': '#B9D3EE', 'SlateGray3': '#9FB6CD', 'SlateGray4': '#6C7B8B', 'RosyBrown2': '#EEB4B4', 'RosyBrown1': '#FFC1C1', 'gray85': '#D9D9D9', 'gray84': '#D6D6D6', 'LightGreen': '#90EE90', 'LavenderBlush1': '#FFF0F5', 'grey73': '#BABABA', 'LavenderBlush3': '#CDC1C5', 'LavenderBlush2': '#EEE0E5', 'grey76': '#C2C2C2', 'LavenderBlush4': '#8B8386', 'grey74': '#BDBDBD', 'grey75': '#BFBFBF', 'pink1': '#FFB5C5', 'pink3': '#CD919E', 'pink2': '#EEA9B8', 'pink4': '#8B636C', 'gray47': '#787878', 'gray46': '#757575', 'gray45': '#737373', 'gray44': '#707070', 'gray43': '#6E6E6E', 'gray42': '#6B6B6B', 'gray41': '#696969', 'gray40': '#666666', 'gray49': '#7D7D7D', 'gray48': '#7A7A7A', 'MediumAquamarine': '#66CDAA', 'MediumForestGreen': '#32814B', 'azure1': '#F0FFFF', 'azure3': '#C1CDCD', 'azure2': '#E0EEEE', 'indigo': '#4B0082', 'azure4': '#838B8B', 'firebrick': '#B22222', 'DarkGrey': '#A9A9A9', 'magenta4': '#8B008B', 'SlateBlue3': '#6959CD', 'magenta2': '#EE00EE', 'magenta1': '#FF00FF', 'grey51': '#828282', 'chartreuse': '#7FFF00', 'grey41': '#696969', 'DarkOliveGreen4': '#6E8B3D', 'turquoise': '#40E0D0', 'DarkOliveGreen1': '#CAFF70', 'DarkOliveGreen3': '#A2CD5A', 'DarkOliveGreen2': '#BCEE68', 'grey6': '#0F0F0F', 'grey7': '#121212', 'grey4': '#0A0A0A', 'grey5': '#0D0D0D', 'grey2': '#050505', 'grey3': '#080808', 'grey0': '#000000', 'grey1': '#030303', 'gray50': '#7F7F7F', 'cyan1': '#00FFFF', 'gray51': '#828282', 'gray24': '#3D3D3D', 'HotPink': '#FF69B4', 'DarkGoldenrod4': '#8B6508', 'gray54': '#8A8A8A', 'DarkGoldenrod1': '#FFB90F', 'DarkGoldenrod2': '#EEAD0E', 'DarkGoldenrod3': '#CD950C', 'IndianRed2': '#EE6363', 'DeepPink': '#FF1493', 'gray28': '#474747', 'IndianRed3': '#CD5555', 'DarkCyan': '#008B8B', 'GreenYellow': '#ADFF2F', 'LightSalmon': '#FFA07A', 'DarkOrange4': '#8B4500', 'DarkOrange1': '#FF7F00', 'transparent': '#000000', 'DarkOrange3': '#CD6600', 'orchid': '#DA70D6', 'purple': '#800080', 'wheat4': '#8B7E66', 'wheat1': '#FFE7BA', 'wheat3': '#CDBA96', 'SpringGreen1': '#00FF7F', 'coral3': '#CD5B45', 'coral2': '#EE6A50', 'coral1': '#FF7256', 'thistle1': '#FFE1FF', 'PaleTurquoise': '#AFEEEE', 'bisque': '#FFE4C4', 'DeepPink3': '#CD1076', 'DeepPink2': '#EE1289', 'DeepPink1': '#FF1493', 'khaki': '#F0E68C', 'wheat': '#F5DEB3', 'MediumSeaGreen': '#3CB371', 'DeepPink4': '#8B0A50', 'salmon': '#FA8072', 'grey44': '#707070', 'DarkSlateBlue': '#483D8B', 'PaleVioletRed4': '#8B475D', 'PaleVioletRed1': '#FF82AB', 'PaleVioletRed2': '#EE799F', 'PaleVioletRed3': '#CD6889', 'AntiqueWhite': '#FAEBD7', 'PaleTurquoise4': '#668B8B', 'PaleTurquoise3': '#96CDCD', 'PaleTurquoise2': '#AEEEEE', 'PaleTurquoise1': '#BBFFFF', 'gray56': '#8F8F8F', 'plum': '#DDA0DD', 'beige': '#F5F5DC', 'SpringGreen': '#00FF7F', 'azure': '#F0FFFF', 'honeydew1': '#F0FFF0', 'honeydew2': '#E0EEE0', 'honeydew3': '#C1CDC1', 'honeydew4': '#838B83', 'gray57': '#919191', 'snow4': '#8B8989', 'snow2': '#EEE9E9', 'snow3': '#CDC9C9', 'snow1': '#FFFAFA', 'SandyBrown': '#F4A460', 'grey13': '#212121', 'SeaGreen4': '#2E8B57', 'SeaGreen3': '#43CD80', 'SeaGreen2': '#4EEE94', 'SeaGreen1': '#54FF9F', 'grey29': '#4A4A4A', 'grey28': '#474747', 'grey25': '#404040', 'grey24': '#3D3D3D', 'grey27': '#454545', 'grey26': '#424242', 'fuchsia': '#FF00FF', 'grey20': '#333333', 'grey23': '#3B3B3B', 'grey22': '#383838', 'gray78': '#C7C7C7', 'gray79': '#C9C9C9', 'gray76': '#C2C2C2', 'gray77': '#C4C4C4', 'gray74': '#BDBDBD', 'gray75': '#BFBFBF', 'gray72': '#B8B8B8', 'gray73': '#BABABA', 'gray70': '#B3B3B3', 'gray71': '#B5B5B5', 'ivory': '#FFFFF0', 'LemonChiffon3': '#CDC9A5', 'DeepSkyBlue4': '#00688B', 'DeepSkyBlue3': '#009ACD', 'DeepSkyBlue2': '#00B2EE', 'DeepSkyBlue1': '#00BFFF', 'cornsilk4': '#8B8878', 'cornsilk2': '#EEE8CD', 'cornsilk3': '#CDC8B1', 'CadetBlue': '#5F9EA0', 'cornsilk1': '#FFF8DC', 'grey90': '#E5E5E5', 'grey91': '#E8E8E8', 'grey92': '#EBEBEB', 'goldenrod': '#DAA520', 'grey94': '#F0F0F0', 'grey95': '#F2F2F2', 'grey96': '#F5F5F5', 'grey97': '#F7F7F7', 'grey98': '#FAFAFA', 'grey99': '#FCFCFC', 'red3': '#CD0000', 'LightSteelBlue2': '#BCD2EE', 'LightSteelBlue3': '#A2B5CD', 'LightSteelBlue4': '#6E7B8B', 'LightBlue3': '#9AC0CD', 'maroon': '#800000', 'LightSkyBlue': '#87CEFA', 'LightGoldenrodYellow': '#FAFAD2', 'MediumBlue': '#0000CD', 'LightSlateGray': '#778899', 'DarkOrange2': '#EE7600', 'PaleVioletRed': '#DB7093'} -var divlist = ['#d0', '#d1', '#d2', '#d3', '#d4', '#d5', '#d6', '#d7', '#d8', '#d9', '#d10', '#d11', '#d12', '#d13', '#d14', '#d15', '#d16', '#d17', '#d18', '#d19', '#d20', '#d21', '#d22', '#d23', '#d24', '#d25', '#d26', '#d27', '#d28', '#d29', '#d30', '#d31', '#d32', '#d33', '#d34', '#d35', '#d36', '#d37', '#d38', '#d39', '#d40', '#d41', '#d42', '#d43', '#d44', '#d45', '#d46', '#d47', '#d48', '#d49', '#d50', '#d51', '#d52', '#d53', '#d54', '#d55', '#d56', '#d57', '#d58', '#d59', '#d60', '#d61', '#d62', '#d63', '#d64', '#d65', '#d66', '#d67', '#d68', '#d69', '#d70', '#d71', '#d72', '#d73', '#d74', '#d75', '#d76', '#d77', '#d78', '#d79', '#d80', '#d81', '#d82', '#d83', '#d84', '#d85', '#d86', '#d87', '#d88', '#d89', '#d90', '#d91', '#d92', '#d93', '#d94', '#d95', '#d96', '#d97', '#d98', '#d99', '#d100', '#d101', '#d102', '#d103', '#d104', '#d105', '#d106', '#d107', '#d108', '#d109', '#d110', '#d111', '#d112', '#d113', '#d114', '#d115', '#d116', '#d117', '#d118', '#d119', '#d120', '#d121', '#d122', '#d123', '#d124', '#d125', '#d126', '#d127', '#d128', '#d129', '#d130', '#d131', '#d132', '#d133', '#d134', '#d135', '#d136', '#d137', '#d138', '#d139', '#d140', '#d141', '#d142', '#d143', '#d144', '#d145', '#d146', '#d147', '#d148', '#d149', '#d150', '#d151', '#d152', '#d153', '#d154', '#d155', '#d156', '#d157', '#d158', '#d159', '#d160', '#d161', '#d162', '#d163', '#d164', '#d165', '#d166', '#d167', '#d168', '#d169', '#d170', '#d171', '#d172', '#d173', '#d174', '#d175', '#d176', '#d177', '#d178', '#d179', '#d180', '#d181', '#d182', '#d183', '#d184', '#d185', '#d186', '#d187', '#d188', '#d189', '#d190', '#d191', '#d192', '#d193', '#d194', '#d195', '#d196', '#d197', '#d198', '#d199', '#d200', '#d201', '#d202', '#d203', '#d204', '#d205', '#d206', '#d207', '#d208', '#d209', '#d210', '#d211', '#d212', '#d213', '#d214', '#d215', '#d216', '#d217', '#d218', '#d219', '#d220', '#d221', '#d222', '#d223', '#d224', '#d225', '#d226', '#d227', '#d228', '#d229', '#d230', '#d231', '#d232', '#d233', '#d234', '#d235', '#d236', '#d237', '#d238', '#d239', '#d240', '#d241', '#d242', '#d243', '#d244', '#d245', '#d246', '#d247', '#d248', '#d249', '#d250', '#d251', '#d252', '#d253', '#d254', '#d255', '#d256', '#d257', '#d258', '#d259', '#d260', '#d261', '#d262', '#d263', '#d264', '#d265', '#d266', '#d267', '#d268', '#d269', '#d270', '#d271', '#d272', '#d273', '#d274', '#d275', '#d276', '#d277', '#d278', '#d279', '#d280', '#d281', '#d282', '#d283', '#d284', '#d285', '#d286', '#d287', '#d288', '#d289', '#d290', '#d291', '#d292', '#d293', '#d294', '#d295', '#d296', '#d297', '#d298', '#d299', '#d300', '#d301', '#d302', '#d303', '#d304', '#d305', '#d306', '#d307', '#d308', '#d309', '#d310', '#d311', '#d312', '#d313', '#d314', '#d315', '#d316', '#d317', '#d318', '#d319', '#d320', '#d321', '#d322', '#d323', '#d324', '#d325', '#d326', '#d327', '#d328', '#d329', '#d330', '#d331', '#d332', '#d333', '#d334', '#d335', '#d336', '#d337', '#d338', '#d339', '#d340', '#d341', '#d342', '#d343', '#d344', '#d345', '#d346', '#d347', '#d348', '#d349', '#d350', '#d351', '#d352', '#d353', '#d354', '#d355', '#d356', '#d357', '#d358', '#d359', '#d360', '#d361', '#d362', '#d363', '#d364', '#d365', '#d366', '#d367', '#d368', '#d369', '#d370', '#d371', '#d372', '#d373', '#d374', '#d375', '#d376', '#d377', '#d378', '#d379', '#d380', '#d381', '#d382', '#d383', '#d384', '#d385', '#d386', '#d387', '#d388', '#d389', '#d390', '#d391', '#d392', '#d393', '#d394', '#d395', '#d396', '#d397', '#d398', '#d399', '#d400', '#d401', '#d402', '#d403', '#d404', '#d405', '#d406', '#d407', '#d408', '#d409', '#d410', '#d411', '#d412', '#d413', '#d414', '#d415', '#d416', '#d417', '#d418', '#d419', '#d420', '#d421', '#d422', '#d423', '#d424', '#d425', '#d426', '#d427', '#d428', '#d429', '#d430', '#d431', '#d432', '#d433', '#d434', '#d435', '#d436', '#d437', '#d438', '#d439', '#d440', '#d441', '#d442', '#d443', '#d444', '#d445', '#d446', '#d447', '#d448', '#d449', '#d450', '#d451', '#d452', '#d453', '#d454', '#d455', '#d456', '#d457', '#d458', '#d459', '#d460', '#d461', '#d462', '#d463', '#d464', '#d465', '#d466', '#d467', '#d468', '#d469', '#d470', '#d471', '#d472', '#d473', '#d474', '#d475', '#d476', '#d477', '#d478', '#d479', '#d480', '#d481', '#d482', '#d483', '#d484', '#d485', '#d486', '#d487', '#d488', '#d489', '#d490', '#d491', '#d492', '#d493', '#d494', '#d495', '#d496', '#d497', '#d498', '#d499', '#d500', '#d501', '#d502', '#d503', '#d504', '#d505', '#d506', '#d507', '#d508', '#d509', '#d510', '#d511', '#d512', '#d513', '#d514', '#d515', '#d516', '#d517', '#d518', '#d519', '#d520', '#d521', '#d522', '#d523', '#d524', '#d525', '#d526', '#d527', '#d528', '#d529', '#d530', '#d531', '#d532', '#d533', '#d534', '#d535', '#d536', '#d537', '#d538', '#d539', '#d540', '#d541', '#d542', '#d543', '#d544', '#d545', '#d546', '#d547', '#d548', '#d549', '#d550', '#d551', '#d552', '#d553', '#d554', '#d555', '#d556', '#d557', '#d558', '#d559', '#d560', '#d561', '#d562', '#d563', '#d564', '#d565', '#d566', '#d567', '#d568', '#d569', '#d570', '#d571', '#d572', '#d573', '#d574', '#d575', '#d576', '#d577', '#d578', '#d579', '#d580', '#d581', '#d582', '#d583', '#d584', '#d585', '#d586', '#d587', '#d588', '#d589', '#d590', '#d591', '#d592', '#d593', '#d594', '#d595', '#d596', '#d597', '#d598', '#d599', '#d600', '#d601', '#d602', '#d603', '#d604', '#d605', '#d606', '#d607', '#d608', '#d609', '#d610', '#d611', '#d612', '#d613', '#d614', '#d615', '#d616', '#d617', '#d618', '#d619', '#d620', '#d621', '#d622', '#d623', '#d624', '#d625', '#d626', '#d627', '#d628', '#d629', '#d630', '#d631', '#d632', '#d633', '#d634', '#d635', '#d636', '#d637', '#d638', '#d639', '#d640', '#d641', '#d642', '#d643', '#d644', '#d645', '#d646', '#d647', '#d648', '#d649', '#d650', '#d651', '#d652', '#d653', '#d654', '#d655', '#d656', '#d657', '#d658', '#d659', '#d660', '#d661', '#d662', '#d663', '#d664', '#d665', '#d666', '#d667', '#d668', '#d669', '#d670', '#d671', '#d672', '#d673'] -var divtoname = {'#d322': 'khaki4', '#d600': 'gray34', '#d118': 'MediumPurple1', '#d119': 'MediumPurple2', '#d114': 'purple3', '#d115': 'purple4', '#d116': 'purple1', '#d117': 'MediumPurple', '#d110': 'purple', '#d111': 'indigo', '#d112': 'BlueViolet', '#d113': 'purple2', '#d529': 'grey67', '#d231': 'DarkSlateGray', '#d339': 'LightGoldenrod3', '#d233': 'MediumTurquoise', '#d232': 'DarkSlateGrey', '#d235': 'turquoise', '#d234': 'LightSeaGreen', '#d237': 'aquamarine', '#d236': 'aquamarine4', '#d239': 'aquamarine2', '#d238': 'aquamarine1', '#d332': 'gold1', '#d333': 'gold2', '#d334': 'gold3', '#d335': 'gold4', '#d336': 'LightGoldenrod', '#d337': 'LightGoldenrod4', '#d424': 'LightSalmon3', '#d425': 'LightSalmon', '#d426': 'LightSalmon1', '#d427': 'LightSalmon4', '#d420': 'sienna', '#d421': 'sienna1', '#d422': 'sienna2', '#d423': 'sienna3', '#d587': 'grey41', '#d586': 'gray41', '#d585': 'DimGrey', '#d584': 'DimGray', '#d428': 'LightSalmon2', '#d429': 'coral', '#d581': 'grey43', '#d580': 'gray43', '#d89': 'thistle4', '#d88': 'plum3', '#d349': 'goldenrod4', '#d348': 'goldenrod3', '#d81': 'thistle2', '#d80': 'thistle1', '#d83': 'plum2', '#d82': 'plum1', '#d85': 'thistle3', '#d84': 'thistle', '#d87': 'violet', '#d86': 'plum', '#d601': 'grey34', '#d67': 'DeepPink3', '#d66': 'DeepPink2', '#d65': 'DeepPink1', '#d64': 'DeepPink', '#d63': 'HotPink', '#d62': 'HotPink4', '#d61': 'HotPink1', '#d60': 'HotPink2', '#d69': 'maroon1', '#d68': 'DeepPink4', '#d510': 'grey76', '#d511': 'silver', '#d512': 'gray75', '#d513': 'grey75', '#d514': 'gray74', '#d515': 'grey74', '#d516': 'gray73', '#d517': 'grey73', '#d518': 'gray72', '#d519': 'grey72', '#d150': 'LightSteelBlue2', '#d151': 'LightSteelBlue3', '#d152': 'LightSteelBlue4', '#d153': 'SlateGray4', '#d154': 'SlateGray1', '#d155': 'SlateGray2', '#d156': 'SlateGray3', '#d157': 'LightSlateGray', '#d158': 'LightSlateGrey', '#d159': 'SlateGray', '#d565': 'gray50', '#d564': 'fractal', '#d567': 'gray', '#d566': 'grey50', '#d561': 'grey52', '#d560': 'gray52', '#d563': 'grey51', '#d562': 'gray51', '#d604': 'gray32', '#d605': 'grey32', '#d606': 'gray31', '#d607': 'grey31', '#d569': 'grey49', '#d568': 'gray49', '#d602': 'gray33', '#d603': 'grey33', '#d125': 'SlateBlue', '#d124': 'MediumSlateBlue', '#d127': 'SlateBlue2', '#d126': 'SlateBlue1', '#d121': 'MediumPurple4', '#d120': 'MediumPurple3', '#d123': 'LightSlateBlue', '#d122': 'DarkSlateBlue', '#d359': 'wheat1', '#d129': 'SlateBlue4', '#d128': 'SlateBlue3', '#d301': 'LightYellow', '#d300': 'ivory1', '#d303': 'beige', '#d302': 'LightYellow1', '#d305': 'LightGoldenrodYellow', '#d304': 'ivory2', '#d307': 'ivory3', '#d306': 'LightYellow2', '#d309': 'ivory4', '#d308': 'LightYellow3', '#d462': 'grey98', '#d351': 'DarkGoldenrod1', '#d464': 'grey97', '#d465': 'gray96', '#d466': 'grey96', '#d467': 'WhiteSmoke', '#d463': 'gray97', '#d268': 'PaleGreen3', '#d269': 'honeydew4', '#d266': 'DarkSeaGreen3', '#d267': 'DarkSeaGreen', '#d264': 'LightGreen', '#d265': 'PaleGreen2', '#d262': 'PaleGreen', '#d263': 'honeydew3', '#d260': 'DarkSeaGreen2', '#d261': 'PaleGreen1', '#d598': 'gray35', '#d29': 'firebrick4', '#d28': 'brown4', '#d23': 'red2', '#d22': 'firebrick3', '#d21': 'RosyBrown4', '#d20': 'red1', '#d27': 'IndianRed4', '#d26': 'red3', '#d25': 'brown', '#d24': 'firebrick', '#d599': 'grey35', '#d338': 'LightGoldenrod1', '#d419': 'sienna4', '#d418': 'seashell1', '#d230': 'teal', '#d415': 'chocolate4', '#d414': 'chocolate3', '#d417': 'seashell', '#d416': 'SaddleBrown', '#d411': 'chocolate', '#d410': 'seashell3', '#d413': 'chocolate2', '#d412': 'chocolate1', '#d398': 'tan1', '#d399': 'tan2', '#d392': 'DarkOrange1', '#d393': 'linen', '#d390': 'bisque1', '#d391': 'bisque3', '#d396': 'DarkOrange4', '#d397': 'peru', '#d394': 'DarkOrange2', '#d395': 'DarkOrange3', '#d194': 'CadetBlue2', '#d195': 'CadetBlue3', '#d196': 'CadetBlue4', '#d197': 'turquoise1', '#d190': 'LightBlue', '#d191': 'LightBlue4', '#d192': 'PowderBlue', '#d193': 'CadetBlue1', '#d198': 'turquoise2', '#d199': 'turquoise3', '#d330': 'cornsilk4', '#d331': 'gold', '#d640': 'gray14', '#d641': 'grey14', '#d642': 'gray13', '#d643': 'grey13', '#d644': 'gray12', '#d645': 'grey12', '#d646': 'gray11', '#d647': 'grey11', '#d648': 'gray10', '#d649': 'grey10', '#d668': 'black', '#d486': 'gainsboro', '#d487': 'gray86', '#d484': 'gray87', '#d485': 'grey87', '#d482': 'gray88', '#d483': 'grey88', '#d480': 'gray89', '#d481': 'grey89', '#d521': 'grey71', '#d520': 'gray71', '#d523': 'grey70', '#d522': 'gray70', '#d525': 'grey69', '#d524': 'gray69', '#d488': 'grey86', '#d489': 'gray85', '#d430': 'OrangeRed', '#d660': 'gray4', '#d169': 'SteelBlue1', '#d168': 'SteelBlue', '#d661': 'grey4', '#d161': 'DodgerBlue', '#d160': 'SlateGrey', '#d163': 'DodgerBlue2', '#d162': 'DodgerBlue1', '#d165': 'DodgerBlue3', '#d164': 'DodgerBlue4', '#d167': 'SteelBlue4', '#d166': 'AliceBlue', '#d635': 'grey17', '#d634': 'gray17', '#d637': 'grey16', '#d636': 'gray16', '#d631': 'grey19', '#d630': 'gray19', '#d633': 'grey18', '#d632': 'gray18', '#d639': 'grey15', '#d638': 'gray15', '#d368': 'PapayaWhip', '#d222': 'cyan', '#d223': 'cyan1', '#d220': 'LightCyan4', '#d221': 'aqua', '#d226': 'DarkSlateGray4', '#d227': 'cyan3', '#d224': 'PaleTurquoise4', '#d225': 'cyan2', '#d228': 'cyan4', '#d229': 'DarkCyan', '#d590': 'gray39', '#d538': 'gray63', '#d539': 'grey63', '#d591': 'grey39', '#d451': 'MistyRose', '#d450': 'MistyRose2', '#d453': 'salmon', '#d452': 'MistyRose1', '#d455': 'white', '#d454': 'MistyRose3', '#d457': 'grey100', '#d456': 'gray100', '#d459': 'gray99', '#d458': 'grey100', '#d592': 'gray38', '#d593': 'grey38', '#d594': 'gray37', '#d595': 'grey37', '#d596': 'gray36', '#d597': 'grey36', '#d297': 'YellowGreen', '#d296': 'OliveDrab3', '#d295': 'OliveDrab2', '#d294': 'OliveDrab1', '#d293': 'OliveDrab', '#d292': 'DarkOliveGreen', '#d291': 'DarkOliveGreen4', '#d290': 'DarkOliveGreen2', '#d356': 'wheat2', '#d357': 'OldLace', '#d354': 'DarkGoldenrod4', '#d355': 'FloralWhite', '#d352': 'DarkGoldenrod2', '#d353': 'DarkGoldenrod3', '#d299': 'ivory', '#d298': 'OliveDrab4', '#d468': 'gray95', '#d534': 'gray65', '#d535': 'grey65', '#d52': 'LavenderBlush2', '#d53': 'LavenderBlush4', '#d50': 'LavenderBlush1', '#d51': 'LavenderBlush3', '#d56': 'VioletRed3', '#d57': 'VioletRed1', '#d54': 'maroon', '#d55': 'HotPink3', '#d58': 'VioletRed2', '#d59': 'VioletRed4', '#d469': 'grey95', '#d558': 'gray53', '#d559': 'grey53', '#d576': 'gray45', '#d577': 'grey45', '#d574': 'gray46', '#d575': 'grey46', '#d572': 'gray47', '#d573': 'grey47', '#d570': 'gray48', '#d571': 'grey48', '#d671': 'opaque', '#d670': 'grey0', '#d673': 'transparent', '#d672': 'none', '#d578': 'gray44', '#d579': 'grey44', '#d589': 'grey40', '#d588': 'gray40', '#d4': 'RosyBrown2', '#d5': 'snow3', '#d6': 'LightCoral', '#d7': 'IndianRed1', '#d0': 'snow', '#d1': 'snow1', '#d2': 'snow2', '#d3': 'RosyBrown1', '#d8': 'RosyBrown3', '#d9': 'IndianRed2', '#d136': 'MediumBlue', '#d137': 'blue4', '#d134': 'blue2', '#d135': 'blue3', '#d132': 'blue', '#d133': 'blue1', '#d130': 'GhostWhite', '#d131': 'lavender', '#d583': 'grey42', '#d138': 'DarkBlue', '#d139': 'MidnightBlue', '#d312': 'yellow1', '#d313': 'yellow2', '#d310': 'LightYellow4', '#d311': 'yellow', '#d316': 'olive', '#d317': 'DarkKhaki', '#d314': 'yellow3', '#d315': 'yellow4', '#d318': 'khaki2', '#d319': 'LemonChiffon4', '#d259': 'DarkSeaGreen1', '#d258': 'honeydew2', '#d253': 'SeaGreen4', '#d252': 'SeaGreen1', '#d251': 'SeaGreen3', '#d250': 'SeaGreen', '#d257': 'honeydew1', '#d256': 'honeydew', '#d255': 'MediumForestGreen', '#d254': 'SeaGreen2', '#d345': 'goldenrod', '#d344': 'cornsilk1', '#d612': 'gray28', '#d347': 'goldenrod2', '#d461': 'gray98', '#d346': 'goldenrod1', '#d479': 'grey90', '#d341': 'cornsilk3', '#d478': 'gray90', '#d340': 'LightGoldenrod2', '#d343': 'cornsilk', '#d342': 'cornsilk2', '#d528': 'gray67', '#d408': 'seashell4', '#d409': 'seashell2', '#d406': 'PeachPuff3', '#d407': 'SandyBrown', '#d404': 'PeachPuff4', '#d405': 'PeachPuff2', '#d402': 'PeachPuff', '#d403': 'PeachPuff1', '#d400': 'tan3', '#d401': 'tan4', '#d552': 'gray56', '#d460': 'grey99', '#d16': 'firebrick2', '#d17': 'snow4', '#d14': 'IndianRed', '#d15': 'IndianRed3', '#d12': 'firebrick1', '#d13': 'brown2', '#d10': 'RosyBrown', '#d11': 'brown1', '#d532': 'gray66', '#d533': 'grey66', '#d530': 'DarkGray', '#d531': 'DarkGrey', '#d536': 'gray64', '#d537': 'grey64', '#d18': 'brown3', '#d19': 'red', '#d329': 'MediumGoldenRod', '#d328': 'LemonChiffon2', '#d178': 'LightSkyBlue1', '#d179': 'LightSkyBlue2', '#d172': 'SkyBlue4', '#d173': 'SkyBlue1', '#d170': 'SteelBlue2', '#d171': 'SteelBlue3', '#d176': 'LightSkyBlue', '#d177': 'LightSkyBlue4', '#d174': 'SkyBlue2', '#d175': 'SkyBlue3', '#d626': 'gray21', '#d627': 'grey21', '#d624': 'gray22', '#d625': 'grey22', '#d622': 'gray23', '#d623': 'grey23', '#d620': 'gray24', '#d621': 'grey24', '#d628': 'gray20', '#d629': 'grey20', '#d219': 'azure4', '#d218': 'DarkSlateGray3', '#d217': 'PaleTurquoise3', '#d216': 'DarkSlateGray2', '#d215': 'LightCyan3', '#d214': 'azure3', '#d213': 'DarkSlateGray1', '#d212': 'PaleTurquoise2', '#d211': 'PaleTurquoise', '#d210': 'PaleTurquoise1', '#d669': 'gray0', '#d582': 'gray42', '#d442': 'coral3', '#d443': 'coral4', '#d440': 'coral1', '#d441': 'coral2', '#d446': 'tomato1', '#d447': 'tomato2', '#d444': 'tomato4', '#d445': 'tomato', '#d448': 'tomato3', '#d449': 'MistyRose4', '#d280': 'DarkGreen', '#d281': 'LawnGreen', '#d282': 'chartreuse', '#d283': 'chartreuse1', '#d284': 'chartreuse2', '#d285': 'chartreuse3', '#d286': 'chartreuse4', '#d287': 'GreenYellow', '#d288': 'DarkOliveGreen3', '#d289': 'DarkOliveGreen1', '#d361': 'orange', '#d360': 'wheat3', '#d367': 'moccasin', '#d366': 'wheat4', '#d365': 'orange4', '#d364': 'orange3', '#d49': 'LavenderBlush', '#d48': 'PaleVioletRed3', '#d45': 'PaleVioletRed', '#d44': 'PaleVioletRed4', '#d47': 'PaleVioletRed1', '#d46': 'PaleVioletRed2', '#d41': 'pink2', '#d40': 'pink1', '#d43': 'pink4', '#d42': 'pink3', '#d358': 'wheat', '#d527': 'grey68', '#d526': 'gray68', '#d614': 'gray27', '#d543': 'grey61', '#d542': 'gray61', '#d541': 'grey62', '#d540': 'gray62', '#d547': 'grey59', '#d546': 'gray59', '#d545': 'grey60', '#d544': 'gray60', '#d662': 'gray3', '#d663': 'grey3', '#d549': 'grey58', '#d548': 'gray58', '#d666': 'gray1', '#d667': 'grey1', '#d664': 'gray2', '#d665': 'grey2', '#d103': 'MediumOrchid4', '#d102': 'MediumOrchid3', '#d101': 'MediumOrchid2', '#d100': 'MediumOrchid1', '#d107': 'DarkOrchid3', '#d106': 'DarkOrchid1', '#d105': 'DarkOrchid', '#d104': 'DarkViolet', '#d109': 'DarkOrchid4', '#d108': 'DarkOrchid2', '#d244': 'SpringGreen', '#d245': 'SpringGreen1', '#d246': 'SpringGreen2', '#d247': 'SpringGreen3', '#d240': 'aquamarine3', '#d241': 'MediumAquamarine', '#d242': 'MediumSpringGreen', '#d243': 'MintCream', '#d327': 'LemonChiffon3', '#d326': 'khaki', '#d325': 'LemonChiffon1', '#d324': 'LemonChiffon', '#d248': 'SpringGreen4', '#d249': 'MediumSeaGreen', '#d321': 'khaki3', '#d320': 'khaki1', '#d350': 'DarkGoldenrod', '#d439': 'salmon4', '#d438': 'salmon3', '#d98': 'purple', '#d99': 'MediumOrchid', '#d96': 'DarkMagenta', '#d97': 'magenta4', '#d94': 'magenta2', '#d95': 'magenta3', '#d92': 'magenta1', '#d93': 'plum4', '#d90': 'fuchsia', '#d91': 'magenta', '#d433': 'OrangeRed3', '#d432': 'OrangeRed2', '#d431': 'OrangeRed1', '#d74': 'VioletRed', '#d75': 'orchid2', '#d76': 'orchid', '#d77': 'orchid1', '#d70': 'maroon2', '#d71': 'maroon3', '#d72': 'maroon4', '#d73': 'MediumVioletRed', '#d437': 'salmon2', '#d78': 'orchid3', '#d79': 'orchid4', '#d436': 'salmon1', '#d435': 'DarkSalmon', '#d434': 'OrangeRed4', '#d507': 'gray77', '#d506': 'grey78', '#d505': 'gray78', '#d504': 'grey79', '#d503': 'gray79', '#d502': 'grey80', '#d501': 'gray80', '#d500': 'grey81', '#d509': 'gray76', '#d508': 'grey77', '#d473': 'grey93', '#d369': 'NavajoWhite3', '#d147': 'CornflowerBlue', '#d146': 'RoyalBlue4', '#d145': 'RoyalBlue3', '#d144': 'RoyalBlue2', '#d143': 'RoyalBlue1', '#d142': 'RoyalBlue', '#d141': 'NavyBlue', '#d140': 'navy', '#d149': 'LightSteelBlue1', '#d148': 'LightSteelBlue', '#d472': 'gray93', '#d613': 'grey28', '#d363': 'orange2', '#d611': 'grey29', '#d610': 'gray29', '#d617': 'grey26', '#d616': 'gray26', '#d615': 'grey27', '#d362': 'orange1', '#d619': 'grey25', '#d618': 'gray25', '#d208': 'azure2', '#d209': 'LightCyan2', '#d200': 'turquoise4', '#d201': 'cadet blue', '#d202': 'CadetBlue', '#d203': 'DarkTurquoise', '#d204': 'azure', '#d205': 'azure1', '#d206': 'LightCyan', '#d207': 'LightCyan1', '#d608': 'gray30', '#d609': 'grey30', '#d374': 'NavajoWhite4', '#d375': 'AntiqueWhite4', '#d376': 'AntiqueWhite', '#d377': 'tan', '#d370': 'BlanchedAlmond', '#d371': 'NavajoWhite', '#d372': 'NavajoWhite1', '#d373': 'NavajoWhite2', '#d477': 'grey91', '#d476': 'gray91', '#d475': 'grey92', '#d474': 'gray92', '#d378': 'bisque4', '#d379': 'burlywood', '#d471': 'grey94', '#d470': 'gray94', '#d279': 'green', '#d278': 'green4', '#d275': 'PaleGreen4', '#d274': 'green2', '#d277': 'ForestGreen', '#d276': 'green3', '#d271': 'lime', '#d270': 'green1', '#d273': 'DarkSeaGreen4', '#d272': 'LimeGreen', '#d38': 'pink', '#d39': 'crimson', '#d30': 'DarkRed', '#d31': 'red4', '#d32': 'maroon', '#d33': 'LightPink1', '#d34': 'LightPink3', '#d35': 'LightPink4', '#d36': 'LightPink2', '#d37': 'LightPink', '#d658': 'gray5', '#d389': 'bisque', '#d388': 'bisque2', '#d381': 'burlywood1', '#d380': 'AntiqueWhite2', '#d383': 'burlywood2', '#d382': 'burlywood3', '#d385': 'burlywood4', '#d384': 'AntiqueWhite1', '#d387': 'DarkOrange', '#d386': 'AntiqueWhite3', '#d189': 'LightBlue2', '#d188': 'LightBlue1', '#d183': 'DeepSkyBlue', '#d182': 'LightBlue3', '#d181': 'SkyBlue', '#d180': 'LightSkyBlue3', '#d187': 'DeepSkyBlue3', '#d186': 'DeepSkyBlue4', '#d185': 'DeepSkyBlue2', '#d184': 'DeepSkyBlue1', '#d657': 'grey6', '#d656': 'gray6', '#d655': 'grey7', '#d654': 'gray7', '#d653': 'grey8', '#d652': 'gray8', '#d651': 'grey9', '#d650': 'gray9', '#d550': 'gray57', '#d659': 'grey5', '#d551': 'grey57', '#d495': 'LightGray', '#d494': 'grey83', '#d497': 'gray82', '#d496': 'LightGrey', '#d491': 'gray84', '#d490': 'grey85', '#d493': 'gray83', '#d492': 'grey84', '#d554': 'gray55', '#d555': 'grey55', '#d556': 'gray54', '#d557': 'grey54', '#d499': 'gray81', '#d498': 'grey82', '#d323': 'PaleGoldenrod', '#d553': 'grey56'} diff --git a/share/frontend/imgrid/colors/js/colordictionaries2.js b/share/frontend/imgrid/colors/js/colordictionaries2.js deleted file mode 100755 index a4acbf2..0000000 --- a/share/frontend/imgrid/colors/js/colordictionaries2.js +++ /dev/null @@ -1,3 +0,0 @@ -rgbtohex = {'rgb(255, 235, 205)': '#FFEBCD', 'rgb(205, 155, 155)': '#CD9B9B', 'rgb(0, 0, 128)': '#000080', 'rgb(179, 238, 58)': '#B3EE3A', 'rgb(205, 51, 51)': '#CD3333', 'rgb(118, 238, 198)': '#76EEC6', 'rgb(214, 214, 214)': '#D6D6D6', 'rgb(189, 189, 189)': '#BDBDBD', 'rgb(139, 131, 120)': '#8B8378', 'rgb(0, 238, 238)': '#00EEEE', 'rgb(137, 104, 205)': '#8968CD', 'rgb(85, 107, 47)': '#556B2F', 'rgb(107, 107, 107)': '#6B6B6B', 'rgb(205, 205, 180)': '#CDCDB4', 'rgb(218, 112, 214)': '#DA70D6', 'rgb(34, 139, 34)': '#228B22', 'rgb(245, 222, 179)': '#F5DEB3', 'rgb(139, 90, 43)': '#8B5A2B', 'rgb(255, 246, 143)': '#FFF68F', 'rgb(205, 91, 69)': '#CD5B45', 'rgb(255, 187, 255)': '#FFBBFF', 'rgb(162, 181, 205)': '#A2B5CD', 'rgb(238, 118, 0)': '#EE7600', 'rgb(238, 154, 73)': '#EE9A49', 'rgb(194, 194, 194)': '#C2C2C2', 'rgb(184, 134, 11)': '#B8860B', 'rgb(93, 71, 139)': '#5D478B', 'rgb(255, 182, 193)': '#FFB6C1', 'rgb(139, 69, 0)': '#8B4500', 'rgb(105, 89, 205)': '#6959CD', 'rgb(238, 173, 14)': '#EEAD0E', 'rgb(151, 255, 255)': '#97FFFF', 'rgb(205, 150, 205)': '#CD96CD', 'rgb(255, 69, 0)': '#FF4500', 'rgb(0, 134, 139)': '#00868B', 'rgb(0, 238, 0)': '#00EE00', 'rgb(255, 106, 106)': '#FF6A6A', 'rgb(186, 186, 186)': '#BABABA', 'rgb(143, 188, 143)': '#8FBC8F', 'rgb(139, 99, 108)': '#8B636C', 'rgb(224, 102, 255)': '#E066FF', 'rgb(100, 149, 237)': '#6495ED', 'rgb(0, 139, 69)': '#008B45', 'rgb(178, 223, 238)': '#B2DFEE', 'rgb(205, 192, 176)': '#CDC0B0', 'rgb(0, 206, 209)': '#00CED1', 'rgb(104, 131, 139)': '#68838B', 'rgb(155, 205, 155)': '#9BCD9B', 'rgb(139, 76, 57)': '#8B4C39', 'rgb(205, 149, 12)': '#CD950C', 'rgb(67, 205, 128)': '#43CD80', 'rgb(54, 54, 54)': '#363636', 'rgb(0, 205, 205)': '#00CDCD', 'rgb(99, 184, 255)': '#63B8FF', 'rgb(238, 233, 233)': '#EEE9E9', 'rgb(205, 201, 201)': '#CDC9C9', 'rgb(156, 156, 156)': '#9C9C9C', 'rgb(139, 125, 123)': '#8B7D7B', 'rgb(148, 148, 148)': '#949494', 'rgb(102, 205, 170)': '#66CDAA', 'rgb(139, 54, 38)': '#8B3626', 'rgb(255, 181, 197)': '#FFB5C5', 'rgb(173, 216, 230)': '#ADD8E6', 'rgb(46, 46, 46)': '#2E2E2E', 'rgb(164, 211, 238)': '#A4D3EE', 'rgb(232, 232, 232)': '#E8E8E8', 'rgb(105, 105, 105)': '#696969', 'rgb(205, 193, 197)': '#CDC1C5', 'rgb(20, 20, 20)': '#141414', 'rgb(139, 139, 131)': '#8B8B83', 'rgb(255, 114, 86)': '#FF7256', 'rgb(0, 104, 139)': '#00688B', 'rgb(205, 41, 144)': '#CD2990', 'rgb(127, 127, 127)': '#7F7F7F', 'rgb(255, 239, 213)': '#FFEFD5', 'rgb(238, 238, 209)': '#EEEED1', 'rgb(242, 242, 242)': '#F2F2F2', 'rgb(240, 230, 140)': '#F0E68C', 'rgb(238, 207, 161)': '#EECFA1', 'rgb(25, 25, 112)': '#191970', 'rgb(205, 79, 57)': '#CD4F39', 'rgb(84, 84, 84)': '#545454', 'rgb(110, 139, 61)': '#6E8B3D', 'rgb(255, 215, 0)': '#FFD700', 'rgb(143, 143, 143)': '#8F8F8F', 'rgb(238, 59, 59)': '#EE3B3B', 'rgb(166, 166, 166)': '#A6A6A6', 'rgb(255, 160, 122)': '#FFA07A', 'rgb(51, 51, 51)': '#333333', 'rgb(224, 238, 224)': '#E0EEE0', 'rgb(139, 121, 94)': '#8B795E', 'rgb(110, 123, 139)': '#6E7B8B', 'rgb(26, 26, 26)': '#1A1A1A', 'rgb(238, 99, 99)': '#EE6363', 'rgb(178, 58, 238)': '#B23AEE', 'rgb(238, 197, 145)': '#EEC591', 'rgb(171, 171, 171)': '#ABABAB', 'rgb(237, 237, 237)': '#EDEDED', 'rgb(238, 0, 0)': '#EE0000', 'rgb(139, 71, 38)': '#8B4726', 'rgb(82, 139, 139)': '#528B8B', 'rgb(139, 105, 105)': '#8B6969', 'rgb(160, 32, 240)': '#A020F0', 'rgb(78, 238, 148)': '#4EEE94', 'rgb(205, 85, 85)': '#CD5555', 'rgb(205, 181, 205)': '#CDB5CD', 'rgb(184, 184, 184)': '#B8B8B8', 'rgb(255, 222, 173)': '#FFDEAD', 'rgb(8, 8, 8)': '#080808', 'rgb(255, 248, 220)': '#FFF8DC', 'rgb(175, 238, 238)': '#AFEEEE', 'rgb(255, 130, 71)': '#FF8247', 'rgb(13, 13, 13)': '#0D0D0D', 'rgb(0, 139, 139)': '#008B8B', 'rgb(187, 255, 255)': '#BBFFFF', 'rgb(147, 112, 219)': '#9370DB', 'rgb(0, 128, 0)': '#008000', 'rgb(238, 64, 0)': '#EE4000', 'rgb(238, 18, 137)': '#EE1289', 'rgb(54, 100, 139)': '#36648B', 'rgb(176, 176, 176)': '#B0B0B0', 'rgb(0, 0, 238)': '#0000EE', 'rgb(238, 154, 0)': '#EE9A00', 'rgb(188, 143, 143)': '#BC8F8F', 'rgb(240, 255, 255)': '#F0FFFF', 'rgb(191, 62, 255)': '#BF3EFF', 'rgb(171, 130, 255)': '#AB82FF', 'rgb(205, 173, 0)': '#CDAD00', 'rgb(255, 48, 48)': '#FF3030', 'rgb(122, 197, 205)': '#7AC5CD', 'rgb(139, 87, 66)': '#8B5742', 'rgb(204, 204, 204)': '#CCCCCC', 'rgb(205, 129, 98)': '#CD8162', 'rgb(224, 224, 224)': '#E0E0E0', 'rgb(218, 165, 32)': '#DAA520', 'rgb(205, 145, 158)': '#CD919E', 'rgb(139, 62, 47)': '#8B3E2F', 'rgb(238, 122, 233)': '#EE7AE9', 'rgb(152, 251, 152)': '#98FB98', 'rgb(240, 128, 128)': '#F08080', 'rgb(162, 205, 90)': '#A2CD5A', 'rgb(79, 79, 79)': '#4F4F4F', 'rgb(169, 169, 169)': '#A9A9A9', 'rgb(255, 127, 0)': '#FF7F00', 'rgb(139, 28, 98)': '#8B1C62', 'rgb(253, 245, 230)': '#FDF5E6', 'rgb(141, 238, 238)': '#8DEEEE', 'rgb(238, 213, 210)': '#EED5D2', 'rgb(208, 32, 144)': '#D02090', 'rgb(0, 205, 0)': '#00CD00', 'rgb(139, 71, 137)': '#8B4789', 'rgb(205, 201, 165)': '#CDC9A5', 'rgb(0, 229, 238)': '#00E5EE', 'rgb(205, 140, 149)': '#CD8C95', 'rgb(124, 205, 124)': '#7CCD7C', 'rgb(220, 220, 220)': '#DCDCDC', 'rgb(238, 229, 222)': '#EEE5DE', 'rgb(87, 87, 87)': '#575757', 'rgb(70, 130, 180)': '#4682B4', 'rgb(205, 104, 137)': '#CD6889', 'rgb(15, 15, 15)': '#0F0F0F', 'rgb(38, 38, 38)': '#262626', 'rgb(238, 180, 34)': '#EEB422', 'rgb(205, 200, 177)': '#CDC8B1', 'rgb(238, 210, 238)': '#EED2EE', 'rgb(150, 150, 150)': '#969696', 'rgb(0, 255, 127)': '#00FF7F', 'rgb(139, 126, 102)': '#8B7E66', 'rgb(205, 175, 149)': '#CDAF95', 'rgb(152, 245, 255)': '#98F5FF', 'rgb(0, 250, 154)': '#00FA9A', 'rgb(120, 120, 120)': '#787878', 'rgb(238, 118, 33)': '#EE7621', 'rgb(128, 128, 0)': '#808000', 'rgb(139, 137, 112)': '#8B8970', 'rgb(107, 142, 35)': '#6B8E23', 'rgb(219, 219, 219)': '#DBDBDB', 'rgb(205, 205, 0)': '#CDCD00', 'rgb(180, 205, 205)': '#B4CDCD', 'rgb(115, 115, 115)': '#737373', 'rgb(131, 139, 139)': '#838B8B', 'rgb(0, 178, 238)': '#00B2EE', 'rgb(94, 94, 94)': '#5E5E5E', 'rgb(135, 135, 135)': '#878787', 'rgb(145, 145, 145)': '#919191', 'rgb(205, 0, 0)': '#CD0000', 'rgb(16, 78, 139)': '#104E8B', 'rgb(133, 133, 133)': '#858585', 'rgb(205, 38, 38)': '#CD2626', 'rgb(255, 193, 193)': '#FFC1C1', 'rgb(205, 183, 181)': '#CDB7B5', 'rgb(122, 55, 139)': '#7A378B', 'rgb(154, 192, 205)': '#9AC0CD', 'rgb(191, 239, 255)': '#BFEFFF', 'rgb(219, 112, 147)': '#DB7093', 'rgb(121, 205, 205)': '#79CDCD', 'rgb(238, 232, 170)': '#EEE8AA', 'rgb(102, 205, 0)': '#66CD00', 'rgb(255, 185, 15)': '#FFB90F', 'rgb(176, 196, 222)': '#B0C4DE', 'rgb(255, 236, 139)': '#FFEC8B', 'rgb(205, 105, 201)': '#CD69C9', 'rgb(250, 250, 250)': '#FAFAFA', 'rgb(245, 245, 220)': '#F5F5DC', 'rgb(238, 106, 80)': '#EE6A50', 'rgb(64, 64, 64)': '#404040', 'rgb(238, 220, 130)': '#EEDC82', 'white': '#000000', 'rgb(125, 38, 205)': '#7D26CD', 'rgb(205, 133, 63)': '#CD853F', 'rgb(139, 102, 139)': '#8B668B', 'rgb(71, 71, 71)': '#474747', 'rgb(118, 238, 0)': '#76EE00', 'rgb(192, 255, 62)': '#C0FF3E', 'rgb(0, 0, 139)': '#00008B', 'rgb(248, 248, 255)': '#F8F8FF', 'rgb(3, 3, 3)': '#030303', 'rgb(176, 226, 255)': '#B0E2FF', 'rgb(139, 105, 20)': '#8B6914', 'rgb(255, 105, 180)': '#FF69B4', 'rgb(124, 252, 0)': '#7CFC00', 'rgb(238, 238, 224)': '#EEEEE0', 'rgb(139, 69, 19)': '#8B4513', 'rgb(139, 0, 139)': '#8B008B', 'rgb(31, 31, 31)': '#1F1F1F', 'rgb(159, 182, 205)': '#9FB6CD', 'rgb(181, 181, 181)': '#B5B5B5', 'rgb(0, 245, 255)': '#00F5FF', 'rgb(105, 139, 105)': '#698B69', 'rgb(159, 121, 238)': '#9F79EE', 'rgb(205, 198, 115)': '#CDC673', 'rgb(77, 77, 77)': '#4D4D4D', 'rgb(139, 90, 0)': '#8B5A00', 'rgb(122, 122, 122)': '#7A7A7A', 'rgb(224, 238, 238)': '#E0EEEE', 'rgb(50, 129, 75)': '#32814B', 'rgb(202, 225, 255)': '#CAE1FF', 'rgb(255, 110, 180)': '#FF6EB4', 'rgb(238, 48, 167)': '#EE30A7', 'rgb(220, 20, 60)': '#DC143C', 'rgb(127, 255, 212)': '#7FFFD4', 'rgb(205, 179, 139)': '#CDB38B', 'rgb(28, 28, 28)': '#1C1C1C', 'rgb(229, 229, 229)': '#E5E5E5', 'rgb(47, 79, 79)': '#2F4F4F', 'rgb(59, 59, 59)': '#3B3B3B', 'rgb(69, 139, 116)': '#458B74', 'rgb(255, 211, 155)': '#FFD39B', 'rgb(139, 119, 101)': '#8B7765', 'rgb(238, 230, 133)': '#EEE685', 'rgb(10, 10, 10)': '#0A0A0A', 'rgb(144, 238, 144)': '#90EE90', 'rgb(99, 99, 99)': '#636363', 'rgb(188, 238, 104)': '#BCEE68', 'rgb(255, 231, 186)': '#FFE7BA', 'rgb(154, 50, 205)': '#9A32CD', 'rgb(46, 139, 87)': '#2E8B57', 'rgb(145, 44, 238)': '#912CEE', 'rgb(255, 240, 245)': '#FFF0F5', 'rgb(67, 110, 238)': '#436EEE', 'rgb(238, 180, 180)': '#EEB4B4', 'rgb(108, 166, 205)': '#6CA6CD', 'rgb(173, 173, 173)': '#ADADAD', 'rgb(176, 48, 96)': '#B03060', 'rgb(23, 23, 23)': '#171717', 'rgb(138, 138, 138)': '#8A8A8A', 'rgb(139, 137, 137)': '#8B8989', 'rgb(209, 193, 102)': '#D1C166', 'rgb(139, 123, 139)': '#8B7B8B', 'rgb(154, 255, 154)': '#9AFF9A', 'rgb(130, 130, 130)': '#828282', 'rgb(255, 99, 71)': '#FF6347', 'rgb(205, 183, 158)': '#CDB79E', 'rgb(205, 102, 29)': '#CD661D', 'rgb(128, 0, 0)': '#800000', 'rgb(0, 0, 255)': '#0000FF', 'rgb(255, 52, 179)': '#FF34B3', 'rgb(250, 235, 215)': '#FAEBD7', 'rgb(163, 163, 163)': '#A3A3A3', 'rgb(56, 56, 56)': '#383838', 'rgb(85, 26, 139)': '#551A8B', 'rgb(139, 58, 58)': '#8B3A3A', 'rgb(168, 168, 168)': '#A8A8A8', 'rgb(255, 225, 255)': '#FFE1FF', 'rgb(125, 125, 125)': '#7D7D7D', 'rgb(131, 111, 255)': '#836FFF', 'rgb(95, 158, 160)': '#5F9EA0', 'rgb(165, 42, 42)': '#A52A2A', 'rgb(245, 255, 250)': '#F5FFFA', 'rgb(255, 218, 185)': '#FFDAB9', 'rgb(255, 228, 225)': '#FFE4E1', 'rgb(216, 191, 216)': '#D8BFD8', 'rgb(139, 101, 8)': '#8B6508', 'rgb(205, 104, 57)': '#CD6839', 'rgb(255, 131, 250)': '#FF83FA', 'rgb(82, 82, 82)': '#525252', 'rgb(117, 117, 117)': '#757575', 'rgb(255, 165, 0)': '#FFA500', 'rgb(255, 64, 64)': '#FF4040', 'rgb(255, 165, 79)': '#FFA54F', 'rgb(205, 55, 0)': '#CD3700', 'rgb(188, 210, 238)': '#BCD2EE', 'rgb(238, 121, 159)': '#EE799F', 'rgb(5, 5, 5)': '#050505', 'rgb(217, 217, 217)': '#D9D9D9', 'rgb(205, 186, 150)': '#CDBA96', 'rgb(139, 131, 134)': '#8B8386', 'rgb(185, 211, 238)': '#B9D3EE', 'rgb(235, 235, 235)': '#EBEBEB', 'rgb(230, 230, 250)': '#E6E6FA', 'rgb(41, 41, 41)': '#292929', 'rgb(205, 92, 92)': '#CD5C5C', 'rgb(131, 139, 131)': '#838B83', 'rgb(123, 104, 238)': '#7B68EE', 'rgb(128, 0, 128)': '#800080', 'rgb(139, 26, 26)': '#8B1A1A', 'rgb(141, 182, 205)': '#8DB6CD', 'rgb(212, 212, 212)': '#D4D4D4', 'rgb(238, 162, 173)': '#EEA2AD', 'rgb(255, 255, 0)': '#FFFF00', 'rgb(192, 192, 192)': '#C0C0C0', 'rgb(139, 71, 93)': '#8B475D', 'rgb(0, 100, 0)': '#006400', 'rgb(139, 37, 0)': '#8B2500', 'rgb(198, 226, 255)': '#C6E2FF', 'rgb(24, 116, 205)': '#1874CD', 'rgb(178, 34, 34)': '#B22222', 'rgb(28, 134, 238)': '#1C86EE', 'rgb(255, 0, 255)': '#FF00FF', 'rgb(33, 33, 33)': '#212121', 'rgb(209, 238, 238)': '#D1EEEE', 'rgb(255, 127, 80)': '#FF7F50', 'rgb(0, 154, 205)': '#009ACD', 'rgb(255, 255, 224)': '#FFFFE0', 'rgb(75, 0, 130)': '#4B0082', 'rgb(160, 82, 45)': '#A0522D', 'rgb(138, 43, 226)': '#8A2BE2', 'rgb(238, 224, 229)': '#EEE0E5', 'rgb(106, 90, 205)': '#6A5ACD', 'rgb(227, 227, 227)': '#E3E3E3', 'rgb(255, 250, 250)': '#FFFAFA', 'rgb(255, 174, 185)': '#FFAEB9', 'rgb(205, 0, 205)': '#CD00CD', 'rgb(126, 126, 126)': '#7E7E7E', 'rgb(139, 10, 80)': '#8B0A50', 'rgb(186, 85, 211)': '#BA55D3', 'rgb(205, 133, 0)': '#CD8500', 'rgb(211, 211, 211)': '#D3D3D3', 'rgb(69, 69, 69)': '#454545', 'rgb(222, 222, 222)': '#DEDEDE', 'rgb(221, 160, 221)': '#DDA0DD', 'rgb(255, 255, 240)': '#FFFFF0', 'rgb(112, 112, 112)': '#707070', 'rgb(209, 95, 238)': '#D15FEE', 'rgb(0, 255, 0)': '#00FF00', 'rgb(238, 233, 191)': '#EEE9BF', 'rgb(92, 92, 92)': '#5C5C5C', 'rgb(205, 112, 84)': '#CD7054', 'rgb(255, 228, 196)': '#FFE4C4', 'rgb(255, 192, 203)': '#FFC0CB', 'rgb(238, 130, 238)': '#EE82EE', 'rgb(122, 103, 238)': '#7A67EE', 'rgb(238, 121, 66)': '#EE7942', 'rgb(102, 139, 139)': '#668B8B', 'rgb(250, 240, 230)': '#FAF0E6', 'rgb(247, 247, 247)': '#F7F7F7', 'rgb(32, 178, 170)': '#20B2AA', 'rgb(97, 97, 97)': '#616161', 'rgb(150, 205, 205)': '#96CDCD', 'rgb(158, 158, 158)': '#9E9E9E', 'rgb(238, 58, 140)': '#EE3A8C', 'rgb(255, 228, 181)': '#FFE4B5', 'rgb(0, 197, 205)': '#00C5CD', 'rgb(205, 96, 144)': '#CD6090', 'rgb(205, 16, 118)': '#CD1076', 'rgb(240, 240, 240)': '#F0F0F0', 'rgb(176, 224, 230)': '#B0E0E6', 'rgb(199, 21, 133)': '#C71585', 'rgb(238, 203, 173)': '#EECBAD', 'rgb(173, 255, 47)': '#ADFF2F', 'rgb(238, 174, 238)': '#EEAEEE', 'rgb(191, 191, 191)': '#BFBFBF', 'rgb(222, 184, 135)': '#DEB887', 'rgb(18, 18, 18)': '#121212', 'rgb(83, 134, 139)': '#53868B', 'rgb(139, 134, 130)': '#8B8682', 'rgb(142, 229, 238)': '#8EE5EE', 'rgb(0, 139, 0)': '#008B00', 'rgb(240, 255, 240)': '#F0FFF0', 'rgb(104, 34, 139)': '#68228B', 'rgb(193, 255, 193)': '#C1FFC1', 'rgb(0, 0, 0)': '#000000', 'rgb(139, 58, 98)': '#8B3A62', 'rgb(89, 89, 89)': '#595959', 'rgb(72, 118, 255)': '#4876FF', 'rgb(108, 123, 139)': '#6C7B8B', 'rgb(255, 20, 147)': '#FF1493', 'rgb(255, 250, 240)': '#FFFAF0', 'rgb(132, 112, 255)': '#8470FF', 'rgb(255, 62, 150)': '#FF3E96', 'rgb(139, 125, 107)': '#8B7D6B', 'rgb(64, 224, 208)': '#40E0D0', 'rgb(148, 0, 211)': '#9400D3', 'rgb(238, 106, 167)': '#EE6AA7', 'rgb(238, 44, 44)': '#EE2C2C', 'rgb(72, 209, 204)': '#48D1CC', 'rgb(205, 155, 29)': '#CD9B1D', 'rgb(139, 0, 0)': '#8B0000', 'rgb(238, 92, 66)': '#EE5C42', 'rgb(238, 216, 174)': '#EED8AE', 'rgb(65, 105, 225)': '#4169E1', 'rgb(0, 205, 102)': '#00CD66', 'rgb(96, 123, 139)': '#607B8B', 'rgb(210, 180, 140)': '#D2B48C', 'rgb(135, 206, 255)': '#87CEFF', 'rgb(252, 252, 252)': '#FCFCFC', 'rgb(61, 61, 61)': '#3D3D3D', 'rgb(205, 102, 0)': '#CD6600', 'rgb(58, 95, 205)': '#3A5FCD', 'rgb(30, 144, 255)': '#1E90FF', 'rgb(245, 245, 245)': '#F5F5F5', 'rgb(255, 130, 171)': '#FF82AB', 'rgb(60, 179, 113)': '#3CB371', 'rgb(139, 139, 122)': '#8B8B7A', 'rgb(139, 136, 120)': '#8B8878', 'rgb(139, 34, 82)': '#8B2252', 'rgb(238, 223, 204)': '#EEDFCC', 'rgb(238, 213, 183)': '#EED5B7', 'rgb(250, 250, 210)': '#FAFAD2', 'rgb(255, 250, 205)': '#FFFACD', 'rgb(39, 64, 139)': '#27408B', 'rgb(84, 139, 84)': '#548B54', 'rgb(238, 221, 130)': '#EEDD82', 'rgb(139, 95, 101)': '#8B5F65', 'rgb(210, 105, 30)': '#D2691E', 'rgb(139, 139, 0)': '#8B8B00', 'rgb(238, 149, 114)': '#EE9572', 'rgb(0, 255, 255)': '#00FFFF', 'rgb(71, 60, 139)': '#473C8B', 'rgb(207, 207, 207)': '#CFCFCF', 'rgb(153, 50, 204)': '#9932CC', 'rgb(36, 36, 36)': '#242424', 'rgb(153, 153, 153)': '#999999', 'rgb(250, 128, 114)': '#FA8072', 'rgb(174, 238, 238)': '#AEEEEE', 'rgb(139, 117, 0)': '#8B7500', 'rgb(139, 35, 35)': '#8B2323', 'rgb(92, 172, 238)': '#5CACEE', 'rgb(48, 48, 48)': '#303030', 'rgb(139, 129, 76)': '#8B814C', 'rgb(72, 61, 139)': '#483D8B', 'rgb(238, 169, 184)': '#EEA9B8', 'rgb(69, 139, 0)': '#458B00', 'rgb(0, 128, 128)': '#008080', 'rgb(255, 255, 255)': '#FFFFFF', 'rgb(244, 164, 96)': '#F4A460', 'rgb(154, 205, 50)': '#9ACD32', 'rgb(126, 192, 238)': '#7EC0EE', 'rgb(209, 209, 209)': '#D1D1D1', 'rgb(74, 112, 139)': '#4A708B', 'rgb(112, 128, 144)': '#708090', 'rgb(105, 139, 34)': '#698B22', 'rgb(110, 110, 110)': '#6E6E6E', 'rgb(179, 179, 179)': '#B3B3B3', 'rgb(205, 50, 120)': '#CD3278', 'rgb(119, 136, 153)': '#778899', 'rgb(139, 115, 85)': '#8B7355', 'rgb(255, 193, 37)': '#FFC125', 'rgb(224, 255, 255)': '#E0FFFF', 'rgb(66, 66, 66)': '#424242', 'rgb(193, 205, 193)': '#C1CDC1', 'rgb(0, 191, 255)': '#00BFFF', 'rgb(205, 205, 193)': '#CDCDC1', 'rgb(238, 238, 0)': '#EEEE00', 'rgb(255, 140, 105)': '#FF8C69', 'rgb(135, 206, 235)': '#87CEEB', 'rgb(238, 201, 0)': '#EEC900', 'rgb(238, 232, 205)': '#EEE8CD', 'rgb(0, 0, 205)': '#0000CD', 'rgb(238, 130, 98)': '#EE8262', 'rgb(155, 48, 255)': '#9B30FF', 'rgb(43, 43, 43)': '#2B2B2B', 'rgb(240, 248, 255)': '#F0F8FF', 'rgb(238, 0, 238)': '#EE00EE', 'rgb(128, 128, 128)': '#808080', 'rgb(193, 205, 205)': '#C1CDCD', 'rgb(50, 205, 50)': '#32CD32', 'rgb(201, 201, 201)': '#C9C9C9', 'rgb(255, 239, 219)': '#FFEFDB', 'rgb(196, 196, 196)': '#C4C4C4', 'rgb(135, 206, 250)': '#87CEFA', 'rgb(139, 134, 78)': '#8B864E', 'rgb(79, 148, 205)': '#4F94CD', 'rgb(74, 74, 74)': '#4A4A4A', 'rgb(255, 0, 0)': '#FF0000', 'rgb(233, 150, 122)': '#E9967A', 'rgb(205, 190, 112)': '#CDBE70', 'rgb(84, 255, 159)': '#54FF9F', 'rgb(205, 170, 125)': '#CDAA7D', 'rgb(127, 255, 0)': '#7FFF00', 'rgb(102, 102, 102)': '#666666', 'rgb(180, 238, 180)': '#B4EEB4', 'rgb(122, 139, 139)': '#7A8B8B', 'rgb(255, 140, 0)': '#FF8C00', 'rgb(205, 197, 191)': '#CDC5BF', 'rgb(140, 140, 140)': '#8C8C8C', 'rgb(199, 199, 199)': '#C7C7C7', 'rgb(202, 255, 112)': '#CAFF70', 'rgb(255, 245, 238)': '#FFF5EE', 'rgb(189, 183, 107)': '#BDB76B', 'rgb(0, 238, 118)': '#00EE76', 'rgb(180, 82, 205)': '#B452CD', 'rgb(255, 127, 36)': '#FF7F24', 'rgb(161, 161, 161)': '#A1A1A1'} -rgbtoname = {'rgb(255, 235, 205)': 'BlanchedAlmond', 'rgb(205, 155, 155)': 'RosyBrown3', 'rgb(0, 0, 128)': 'NavyBlue', 'rgb(179, 238, 58)': 'OliveDrab2', 'rgb(205, 51, 51)': 'brown3', 'rgb(118, 238, 198)': 'aquamarine2', 'rgb(214, 214, 214)': 'grey84', 'rgb(189, 189, 189)': 'grey74', 'rgb(139, 131, 120)': 'AntiqueWhite4', 'rgb(0, 238, 238)': 'cyan2', 'rgb(137, 104, 205)': 'MediumPurple3', 'rgb(85, 107, 47)': 'DarkOliveGreen', 'rgb(107, 107, 107)': 'grey42', 'rgb(205, 205, 180)': 'LightYellow3', 'rgb(218, 112, 214)': 'orchid', 'rgb(34, 139, 34)': 'ForestGreen', 'rgb(245, 222, 179)': 'wheat', 'rgb(139, 90, 43)': 'tan4', 'rgb(255, 246, 143)': 'khaki1', 'rgb(205, 91, 69)': 'coral3', 'rgb(255, 187, 255)': 'plum1', 'rgb(162, 181, 205)': 'LightSteelBlue3', 'rgb(238, 118, 0)': 'DarkOrange2', 'rgb(238, 154, 73)': 'tan2', 'rgb(194, 194, 194)': 'grey76', 'rgb(184, 134, 11)': 'DarkGoldenrod', 'rgb(93, 71, 139)': 'MediumPurple4', 'rgb(255, 182, 193)': 'LightPink', 'rgb(139, 69, 0)': 'DarkOrange4', 'rgb(105, 89, 205)': 'SlateBlue3', 'rgb(238, 173, 14)': 'DarkGoldenrod2', 'rgb(151, 255, 255)': 'DarkSlateGray1', 'rgb(205, 150, 205)': 'plum3', 'rgb(255, 69, 0)': 'OrangeRed1', 'rgb(0, 134, 139)': 'turquoise4', 'rgb(0, 238, 0)': 'green2', 'rgb(255, 106, 106)': 'IndianRed1', 'rgb(186, 186, 186)': 'grey73', 'rgb(143, 188, 143)': 'DarkSeaGreen', 'rgb(139, 99, 108)': 'pink4', 'rgb(224, 102, 255)': 'MediumOrchid1', 'rgb(100, 149, 237)': 'CornflowerBlue', 'rgb(0, 139, 69)': 'SpringGreen4', 'rgb(178, 223, 238)': 'LightBlue2', 'rgb(205, 192, 176)': 'AntiqueWhite3', 'rgb(0, 206, 209)': 'DarkTurquoise', 'rgb(104, 131, 139)': 'LightBlue4', 'rgb(155, 205, 155)': 'DarkSeaGreen3', 'rgb(139, 76, 57)': 'salmon4', 'rgb(205, 149, 12)': 'DarkGoldenrod3', 'rgb(67, 205, 128)': 'SeaGreen3', 'rgb(54, 54, 54)': 'grey21', 'rgb(0, 205, 205)': 'cyan3', 'rgb(99, 184, 255)': 'SteelBlue1', 'rgb(238, 233, 233)': 'snow2', 'rgb(205, 201, 201)': 'snow3', 'rgb(156, 156, 156)': 'grey61', 'rgb(139, 125, 123)': 'MistyRose4', 'rgb(148, 148, 148)': 'grey58', 'rgb(102, 205, 170)': 'MediumAquamarine', 'rgb(139, 54, 38)': 'tomato4', 'rgb(255, 181, 197)': 'pink1', 'rgb(173, 216, 230)': 'LightBlue', 'rgb(46, 46, 46)': 'grey18', 'rgb(164, 211, 238)': 'LightSkyBlue2', 'rgb(232, 232, 232)': 'grey91', 'rgb(105, 105, 105)': 'grey41', 'rgb(205, 193, 197)': 'LavenderBlush3', 'rgb(20, 20, 20)': 'grey8', 'rgb(139, 139, 131)': 'ivory4', 'rgb(255, 114, 86)': 'coral1', 'rgb(0, 104, 139)': 'DeepSkyBlue4', 'rgb(205, 41, 144)': 'maroon3', 'rgb(127, 127, 127)': 'grey50', 'rgb(255, 239, 213)': 'PapayaWhip', 'rgb(238, 238, 209)': 'LightYellow2', 'rgb(242, 242, 242)': 'grey95', 'rgb(240, 230, 140)': 'khaki', 'rgb(238, 207, 161)': 'NavajoWhite2', 'rgb(25, 25, 112)': 'MidnightBlue', 'rgb(205, 79, 57)': 'tomato3', 'rgb(84, 84, 84)': 'grey33', 'rgb(110, 139, 61)': 'DarkOliveGreen4', 'rgb(255, 215, 0)': 'gold1', 'rgb(143, 143, 143)': 'grey56', 'rgb(238, 59, 59)': 'brown2', 'rgb(166, 166, 166)': 'grey65', 'rgb(255, 160, 122)': 'LightSalmon1', 'rgb(51, 51, 51)': 'grey20', 'rgb(224, 238, 224)': 'honeydew2', 'rgb(139, 121, 94)': 'NavajoWhite4', 'rgb(110, 123, 139)': 'LightSteelBlue4', 'rgb(26, 26, 26)': 'grey10', 'rgb(238, 99, 99)': 'IndianRed2', 'rgb(178, 58, 238)': 'DarkOrchid2', 'rgb(238, 197, 145)': 'burlywood2', 'rgb(171, 171, 171)': 'grey67', 'rgb(237, 237, 237)': 'grey93', 'rgb(238, 0, 0)': 'red2', 'rgb(139, 71, 38)': 'sienna4', 'rgb(82, 139, 139)': 'DarkSlateGray4', 'rgb(139, 105, 105)': 'RosyBrown4', 'rgb(160, 32, 240)': 'purple', 'rgb(78, 238, 148)': 'SeaGreen2', 'rgb(205, 85, 85)': 'IndianRed3', 'rgb(205, 181, 205)': 'thistle3', 'rgb(184, 184, 184)': 'grey72', 'rgb(255, 222, 173)': 'NavajoWhite1', 'rgb(8, 8, 8)': 'grey3', 'rgb(255, 248, 220)': 'cornsilk1', 'rgb(175, 238, 238)': 'PaleTurquoise', 'rgb(255, 130, 71)': 'sienna1', 'rgb(13, 13, 13)': 'grey5', 'rgb(0, 139, 139)': 'DarkCyan', 'rgb(187, 255, 255)': 'PaleTurquoise1', 'rgb(147, 112, 219)': 'MediumPurple', 'rgb(0, 128, 0)': 'green', 'rgb(238, 64, 0)': 'OrangeRed2', 'rgb(238, 18, 137)': 'DeepPink2', 'rgb(54, 100, 139)': 'SteelBlue4', 'rgb(176, 176, 176)': 'grey69', 'rgb(0, 0, 238)': 'blue2', 'rgb(238, 154, 0)': 'orange2', 'rgb(188, 143, 143)': 'RosyBrown', 'rgb(240, 255, 255)': 'azure1', 'rgb(191, 62, 255)': 'DarkOrchid1', 'rgb(171, 130, 255)': 'MediumPurple1', 'rgb(205, 173, 0)': 'gold3', 'rgb(255, 48, 48)': 'firebrick1', 'rgb(122, 197, 205)': 'CadetBlue3', 'rgb(139, 87, 66)': 'LightSalmon4', 'rgb(204, 204, 204)': 'grey80', 'rgb(205, 129, 98)': 'LightSalmon3', 'rgb(224, 224, 224)': 'grey88', 'rgb(218, 165, 32)': 'goldenrod', 'rgb(205, 145, 158)': 'pink3', 'rgb(139, 62, 47)': 'coral4', 'rgb(238, 122, 233)': 'orchid2', 'rgb(152, 251, 152)': 'PaleGreen', 'rgb(240, 128, 128)': 'LightCoral', 'rgb(162, 205, 90)': 'DarkOliveGreen3', 'rgb(79, 79, 79)': 'grey31', 'rgb(169, 169, 169)': 'DarkGrey', 'rgb(255, 127, 0)': 'DarkOrange1', 'rgb(139, 28, 98)': 'maroon4', 'rgb(253, 245, 230)': 'OldLace', 'rgb(141, 238, 238)': 'DarkSlateGray2', 'rgb(238, 213, 210)': 'MistyRose2', 'rgb(208, 32, 144)': 'VioletRed', 'rgb(0, 205, 0)': 'green3', 'rgb(139, 71, 137)': 'orchid4', 'rgb(205, 201, 165)': 'LemonChiffon3', 'rgb(0, 229, 238)': 'turquoise2', 'rgb(205, 140, 149)': 'LightPink3', 'rgb(124, 205, 124)': 'PaleGreen3', 'rgb(220, 220, 220)': 'gainsboro', 'rgb(238, 229, 222)': 'seashell2', 'rgb(87, 87, 87)': 'grey34', 'rgb(70, 130, 180)': 'SteelBlue', 'rgb(205, 104, 137)': 'PaleVioletRed3', 'rgb(15, 15, 15)': 'grey6', 'rgb(38, 38, 38)': 'grey15', 'rgb(238, 180, 34)': 'goldenrod2', 'rgb(205, 200, 177)': 'cornsilk3', 'rgb(238, 210, 238)': 'thistle2', 'rgb(150, 150, 150)': 'grey59', 'rgb(0, 255, 127)': 'SpringGreen1', 'rgb(139, 126, 102)': 'wheat4', 'rgb(205, 175, 149)': 'PeachPuff3', 'rgb(152, 245, 255)': 'CadetBlue1', 'rgb(0, 250, 154)': 'MediumSpringGreen', 'rgb(120, 120, 120)': 'grey47', 'rgb(238, 118, 33)': 'chocolate2', 'rgb(128, 128, 0)': 'olive', 'rgb(139, 137, 112)': 'LemonChiffon4', 'rgb(107, 142, 35)': 'OliveDrab', 'rgb(219, 219, 219)': 'grey86', 'rgb(205, 205, 0)': 'yellow3', 'rgb(180, 205, 205)': 'LightCyan3', 'rgb(115, 115, 115)': 'grey45', 'rgb(131, 139, 139)': 'azure4', 'rgb(0, 178, 238)': 'DeepSkyBlue2', 'rgb(94, 94, 94)': 'grey37', 'rgb(135, 135, 135)': 'grey53', 'rgb(145, 145, 145)': 'grey57', 'rgb(205, 0, 0)': 'red3', 'rgb(16, 78, 139)': 'DodgerBlue4', 'rgb(133, 133, 133)': 'grey52', 'rgb(205, 38, 38)': 'firebrick3', 'rgb(255, 193, 193)': 'RosyBrown1', 'rgb(205, 183, 181)': 'MistyRose3', 'rgb(122, 55, 139)': 'MediumOrchid4', 'rgb(154, 192, 205)': 'LightBlue3', 'rgb(191, 239, 255)': 'LightBlue1', 'rgb(219, 112, 147)': 'PaleVioletRed', 'rgb(121, 205, 205)': 'DarkSlateGray3', 'rgb(238, 232, 170)': 'PaleGoldenrod', 'rgb(102, 205, 0)': 'chartreuse3', 'rgb(255, 185, 15)': 'DarkGoldenrod1', 'rgb(176, 196, 222)': 'LightSteelBlue', 'rgb(255, 236, 139)': 'LightGoldenrod1', 'rgb(205, 105, 201)': 'orchid3', 'rgb(250, 250, 250)': 'grey98', 'rgb(245, 245, 220)': 'beige', 'rgb(238, 106, 80)': 'coral2', 'rgb(64, 64, 64)': 'grey25', 'rgb(238, 220, 130)': 'LightGoldenrod2', 'white': 'none', 'rgb(125, 38, 205)': 'purple3', 'rgb(205, 133, 63)': 'tan3', 'rgb(139, 102, 139)': 'plum4', 'rgb(71, 71, 71)': 'grey28', 'rgb(118, 238, 0)': 'chartreuse2', 'rgb(192, 255, 62)': 'OliveDrab1', 'rgb(0, 0, 139)': 'DarkBlue', 'rgb(248, 248, 255)': 'GhostWhite', 'rgb(3, 3, 3)': 'grey1', 'rgb(176, 226, 255)': 'LightSkyBlue1', 'rgb(139, 105, 20)': 'goldenrod4', 'rgb(255, 105, 180)': 'HotPink', 'rgb(124, 252, 0)': 'LawnGreen', 'rgb(238, 238, 224)': 'ivory2', 'rgb(139, 69, 19)': 'SaddleBrown', 'rgb(139, 0, 139)': 'magenta4', 'rgb(31, 31, 31)': 'grey12', 'rgb(159, 182, 205)': 'SlateGray3', 'rgb(181, 181, 181)': 'grey71', 'rgb(0, 245, 255)': 'turquoise1', 'rgb(105, 139, 105)': 'DarkSeaGreen4', 'rgb(159, 121, 238)': 'MediumPurple2', 'rgb(205, 198, 115)': 'khaki3', 'rgb(77, 77, 77)': 'grey30', 'rgb(139, 90, 0)': 'orange4', 'rgb(122, 122, 122)': 'grey48', 'rgb(224, 238, 238)': 'azure2', 'rgb(50, 129, 75)': 'MediumForestGreen', 'rgb(202, 225, 255)': 'LightSteelBlue1', 'rgb(255, 110, 180)': 'HotPink1', 'rgb(238, 48, 167)': 'maroon2', 'rgb(220, 20, 60)': 'crimson', 'rgb(127, 255, 212)': 'aquamarine1', 'rgb(205, 179, 139)': 'NavajoWhite3', 'rgb(28, 28, 28)': 'grey11', 'rgb(229, 229, 229)': 'grey90', 'rgb(47, 79, 79)': 'DarkSlateGrey', 'rgb(59, 59, 59)': 'grey23', 'rgb(69, 139, 116)': 'aquamarine4', 'rgb(255, 211, 155)': 'burlywood1', 'rgb(139, 119, 101)': 'PeachPuff4', 'rgb(238, 230, 133)': 'khaki2', 'rgb(10, 10, 10)': 'grey4', 'rgb(144, 238, 144)': 'PaleGreen2', 'rgb(99, 99, 99)': 'grey39', 'rgb(188, 238, 104)': 'DarkOliveGreen2', 'rgb(255, 231, 186)': 'wheat1', 'rgb(154, 50, 205)': 'DarkOrchid3', 'rgb(46, 139, 87)': 'SeaGreen4', 'rgb(145, 44, 238)': 'purple2', 'rgb(255, 240, 245)': 'LavenderBlush1', 'rgb(67, 110, 238)': 'RoyalBlue2', 'rgb(238, 180, 180)': 'RosyBrown2', 'rgb(108, 166, 205)': 'SkyBlue3', 'rgb(173, 173, 173)': 'grey68', 'rgb(176, 48, 96)': 'maroon', 'rgb(23, 23, 23)': 'grey9', 'rgb(138, 138, 138)': 'grey54', 'rgb(139, 137, 137)': 'snow4', 'rgb(209, 193, 102)': 'MediumGoldenRod', 'rgb(139, 123, 139)': 'thistle4', 'rgb(154, 255, 154)': 'PaleGreen1', 'rgb(130, 130, 130)': 'grey51', 'rgb(255, 99, 71)': 'tomato1', 'rgb(205, 183, 158)': 'bisque3', 'rgb(205, 102, 29)': 'chocolate3', 'rgb(128, 0, 0)': 'maroon', 'rgb(0, 0, 255)': 'blue1', 'rgb(255, 52, 179)': 'maroon1', 'rgb(250, 235, 215)': 'AntiqueWhite', 'rgb(163, 163, 163)': 'grey64', 'rgb(56, 56, 56)': 'grey22', 'rgb(85, 26, 139)': 'purple4', 'rgb(139, 58, 58)': 'IndianRed4', 'rgb(168, 168, 168)': 'grey66', 'rgb(255, 225, 255)': 'thistle1', 'rgb(125, 125, 125)': 'grey49', 'rgb(131, 111, 255)': 'SlateBlue1', 'rgb(95, 158, 160)': 'CadetBlue', 'rgb(165, 42, 42)': 'brown', 'rgb(245, 255, 250)': 'MintCream', 'rgb(255, 218, 185)': 'PeachPuff1', 'rgb(255, 228, 225)': 'MistyRose1', 'rgb(216, 191, 216)': 'thistle', 'rgb(139, 101, 8)': 'DarkGoldenrod4', 'rgb(205, 104, 57)': 'sienna3', 'rgb(255, 131, 250)': 'orchid1', 'rgb(82, 82, 82)': 'grey32', 'rgb(117, 117, 117)': 'grey46', 'rgb(255, 165, 0)': 'orange1', 'rgb(255, 64, 64)': 'brown1', 'rgb(255, 165, 79)': 'tan1', 'rgb(205, 55, 0)': 'OrangeRed3', 'rgb(188, 210, 238)': 'LightSteelBlue2', 'rgb(238, 121, 159)': 'PaleVioletRed2', 'rgb(5, 5, 5)': 'grey2', 'rgb(217, 217, 217)': 'grey85', 'rgb(205, 186, 150)': 'wheat3', 'rgb(139, 131, 134)': 'LavenderBlush4', 'rgb(185, 211, 238)': 'SlateGray2', 'rgb(235, 235, 235)': 'grey92', 'rgb(230, 230, 250)': 'lavender', 'rgb(41, 41, 41)': 'grey16', 'rgb(205, 92, 92)': 'IndianRed', 'rgb(131, 139, 131)': 'honeydew4', 'rgb(123, 104, 238)': 'MediumSlateBlue', 'rgb(128, 0, 128)': 'purple', 'rgb(139, 26, 26)': 'firebrick4', 'rgb(141, 182, 205)': 'LightSkyBlue3', 'rgb(212, 212, 212)': 'grey83', 'rgb(238, 162, 173)': 'LightPink2', 'rgb(255, 255, 0)': 'yellow1', 'rgb(192, 192, 192)': 'silver', 'rgb(139, 71, 93)': 'PaleVioletRed4', 'rgb(0, 100, 0)': 'DarkGreen', 'rgb(139, 37, 0)': 'OrangeRed4', 'rgb(198, 226, 255)': 'SlateGray1', 'rgb(24, 116, 205)': 'DodgerBlue3', 'rgb(178, 34, 34)': 'firebrick', 'rgb(28, 134, 238)': 'DodgerBlue2', 'rgb(255, 0, 255)': 'magenta1', 'rgb(33, 33, 33)': 'grey13', 'rgb(209, 238, 238)': 'LightCyan2', 'rgb(255, 127, 80)': 'coral', 'rgb(0, 154, 205)': 'DeepSkyBlue3', 'rgb(255, 255, 224)': 'LightYellow1', 'rgb(75, 0, 130)': 'indigo', 'rgb(160, 82, 45)': 'sienna', 'rgb(138, 43, 226)': 'BlueViolet', 'rgb(238, 224, 229)': 'LavenderBlush2', 'rgb(106, 90, 205)': 'SlateBlue', 'rgb(227, 227, 227)': 'grey89', 'rgb(255, 250, 250)': 'snow1', 'rgb(255, 174, 185)': 'LightPink1', 'rgb(205, 0, 205)': 'magenta3', 'rgb(126, 126, 126)': 'gray', 'rgb(139, 10, 80)': 'DeepPink4', 'rgb(186, 85, 211)': 'MediumOrchid', 'rgb(205, 133, 0)': 'orange3', 'rgb(211, 211, 211)': 'LightGrey', 'rgb(69, 69, 69)': 'grey27', 'rgb(222, 222, 222)': 'grey87', 'rgb(221, 160, 221)': 'plum', 'rgb(255, 255, 240)': 'ivory1', 'rgb(112, 112, 112)': 'grey44', 'rgb(209, 95, 238)': 'MediumOrchid2', 'rgb(0, 255, 0)': 'lime', 'rgb(238, 233, 191)': 'LemonChiffon2', 'rgb(92, 92, 92)': 'grey36', 'rgb(205, 112, 84)': 'salmon3', 'rgb(255, 228, 196)': 'bisque1', 'rgb(255, 192, 203)': 'pink', 'rgb(238, 130, 238)': 'violet', 'rgb(122, 103, 238)': 'SlateBlue2', 'rgb(238, 121, 66)': 'sienna2', 'rgb(102, 139, 139)': 'PaleTurquoise4', 'rgb(250, 240, 230)': 'linen', 'rgb(247, 247, 247)': 'grey97', 'rgb(32, 178, 170)': 'LightSeaGreen', 'rgb(97, 97, 97)': 'grey38', 'rgb(150, 205, 205)': 'PaleTurquoise3', 'rgb(158, 158, 158)': 'grey62', 'rgb(238, 58, 140)': 'VioletRed2', 'rgb(255, 228, 181)': 'moccasin', 'rgb(0, 197, 205)': 'turquoise3', 'rgb(205, 96, 144)': 'HotPink3', 'rgb(205, 16, 118)': 'DeepPink3', 'rgb(240, 240, 240)': 'grey94', 'rgb(176, 224, 230)': 'PowderBlue', 'rgb(199, 21, 133)': 'MediumVioletRed', 'rgb(238, 203, 173)': 'PeachPuff2', 'rgb(173, 255, 47)': 'GreenYellow', 'rgb(238, 174, 238)': 'plum2', 'rgb(191, 191, 191)': 'grey75', 'rgb(222, 184, 135)': 'burlywood', 'rgb(18, 18, 18)': 'grey7', 'rgb(83, 134, 139)': 'CadetBlue4', 'rgb(139, 134, 130)': 'seashell4', 'rgb(142, 229, 238)': 'CadetBlue2', 'rgb(0, 139, 0)': 'green4', 'rgb(240, 255, 240)': 'honeydew1', 'rgb(104, 34, 139)': 'DarkOrchid4', 'rgb(193, 255, 193)': 'DarkSeaGreen1', 'rgb(0, 0, 0)': 'opaque', 'rgb(139, 58, 98)': 'HotPink4', 'rgb(89, 89, 89)': 'grey35', 'rgb(72, 118, 255)': 'RoyalBlue1', 'rgb(108, 123, 139)': 'SlateGray4', 'rgb(255, 20, 147)': 'DeepPink1', 'rgb(255, 250, 240)': 'FloralWhite', 'rgb(132, 112, 255)': 'LightSlateBlue', 'rgb(255, 62, 150)': 'VioletRed1', 'rgb(139, 125, 107)': 'bisque4', 'rgb(64, 224, 208)': 'turquoise', 'rgb(148, 0, 211)': 'DarkViolet', 'rgb(238, 106, 167)': 'HotPink2', 'rgb(238, 44, 44)': 'firebrick2', 'rgb(72, 209, 204)': 'MediumTurquoise', 'rgb(205, 155, 29)': 'goldenrod3', 'rgb(139, 0, 0)': 'red4', 'rgb(238, 92, 66)': 'tomato2', 'rgb(238, 216, 174)': 'wheat2', 'rgb(65, 105, 225)': 'RoyalBlue', 'rgb(0, 205, 102)': 'SpringGreen3', 'rgb(96, 123, 139)': 'LightSkyBlue4', 'rgb(210, 180, 140)': 'tan', 'rgb(135, 206, 255)': 'SkyBlue1', 'rgb(252, 252, 252)': 'grey99', 'rgb(61, 61, 61)': 'grey24', 'rgb(205, 102, 0)': 'DarkOrange3', 'rgb(58, 95, 205)': 'RoyalBlue3', 'rgb(30, 144, 255)': 'DodgerBlue1', 'rgb(245, 245, 245)': 'WhiteSmoke', 'rgb(255, 130, 171)': 'PaleVioletRed1', 'rgb(60, 179, 113)': 'MediumSeaGreen', 'rgb(139, 139, 122)': 'LightYellow4', 'rgb(139, 136, 120)': 'cornsilk4', 'rgb(139, 34, 82)': 'VioletRed4', 'rgb(238, 223, 204)': 'AntiqueWhite2', 'rgb(238, 213, 183)': 'bisque2', 'rgb(250, 250, 210)': 'LightGoldenrodYellow', 'rgb(255, 250, 205)': 'LemonChiffon1', 'rgb(39, 64, 139)': 'RoyalBlue4', 'rgb(84, 139, 84)': 'PaleGreen4', 'rgb(238, 221, 130)': 'LightGoldenrod', 'rgb(139, 95, 101)': 'LightPink4', 'rgb(210, 105, 30)': 'chocolate', 'rgb(139, 139, 0)': 'yellow4', 'rgb(238, 149, 114)': 'LightSalmon2', 'rgb(0, 255, 255)': 'cyan1', 'rgb(71, 60, 139)': 'SlateBlue4', 'rgb(207, 207, 207)': 'grey81', 'rgb(153, 50, 204)': 'DarkOrchid', 'rgb(36, 36, 36)': 'grey14', 'rgb(153, 153, 153)': 'grey60', 'rgb(250, 128, 114)': 'salmon', 'rgb(174, 238, 238)': 'PaleTurquoise2', 'rgb(139, 117, 0)': 'gold4', 'rgb(139, 35, 35)': 'brown4', 'rgb(92, 172, 238)': 'SteelBlue2', 'rgb(48, 48, 48)': 'grey19', 'rgb(139, 129, 76)': 'LightGoldenrod4', 'rgb(72, 61, 139)': 'DarkSlateBlue', 'rgb(238, 169, 184)': 'pink2', 'rgb(69, 139, 0)': 'chartreuse4', 'rgb(0, 128, 128)': 'teal', 'rgb(255, 255, 255)': 'grey100', 'rgb(244, 164, 96)': 'SandyBrown', 'rgb(154, 205, 50)': 'YellowGreen', 'rgb(126, 192, 238)': 'SkyBlue2', 'rgb(209, 209, 209)': 'grey82', 'rgb(74, 112, 139)': 'SkyBlue4', 'rgb(112, 128, 144)': 'SlateGrey', 'rgb(105, 139, 34)': 'OliveDrab4', 'rgb(110, 110, 110)': 'grey43', 'rgb(179, 179, 179)': 'grey70', 'rgb(205, 50, 120)': 'VioletRed3', 'rgb(119, 136, 153)': 'LightSlateGrey', 'rgb(139, 115, 85)': 'burlywood4', 'rgb(255, 193, 37)': 'goldenrod1', 'rgb(224, 255, 255)': 'LightCyan1', 'rgb(66, 66, 66)': 'grey26', 'rgb(193, 205, 193)': 'honeydew3', 'rgb(0, 191, 255)': 'DeepSkyBlue1', 'rgb(205, 205, 193)': 'ivory3', 'rgb(238, 238, 0)': 'yellow2', 'rgb(255, 140, 105)': 'salmon1', 'rgb(135, 206, 235)': 'SkyBlue', 'rgb(238, 201, 0)': 'gold2', 'rgb(238, 232, 205)': 'cornsilk2', 'rgb(0, 0, 205)': 'MediumBlue', 'rgb(238, 130, 98)': 'salmon2', 'rgb(155, 48, 255)': 'purple1', 'rgb(43, 43, 43)': 'grey17', 'rgb(240, 248, 255)': 'AliceBlue', 'rgb(238, 0, 238)': 'magenta2', 'rgb(128, 128, 128)': 'fractal', 'rgb(193, 205, 205)': 'azure3', 'rgb(50, 205, 50)': 'LimeGreen', 'rgb(201, 201, 201)': 'grey79', 'rgb(255, 239, 219)': 'AntiqueWhite1', 'rgb(196, 196, 196)': 'grey77', 'rgb(135, 206, 250)': 'LightSkyBlue', 'rgb(139, 134, 78)': 'khaki4', 'rgb(79, 148, 205)': 'SteelBlue3', 'rgb(74, 74, 74)': 'grey29', 'rgb(255, 0, 0)': 'red1', 'rgb(233, 150, 122)': 'DarkSalmon', 'rgb(205, 190, 112)': 'LightGoldenrod3', 'rgb(84, 255, 159)': 'SeaGreen1', 'rgb(205, 170, 125)': 'burlywood3', 'rgb(127, 255, 0)': 'chartreuse1', 'rgb(102, 102, 102)': 'grey40', 'rgb(180, 238, 180)': 'DarkSeaGreen2', 'rgb(122, 139, 139)': 'LightCyan4', 'rgb(255, 140, 0)': 'DarkOrange', 'rgb(205, 197, 191)': 'seashell3', 'rgb(140, 140, 140)': 'grey55', 'rgb(199, 199, 199)': 'grey78', 'rgb(202, 255, 112)': 'DarkOliveGreen1', 'rgb(255, 245, 238)': 'seashell1', 'rgb(189, 183, 107)': 'DarkKhaki', 'rgb(0, 238, 118)': 'SpringGreen2', 'rgb(180, 82, 205)': 'MediumOrchid3', 'rgb(255, 127, 36)': 'chocolate1', 'rgb(161, 161, 161)': 'grey63'} -hextorgb = {'#EE1289': 'rgb(238, 18, 137)', '#EE8262': 'rgb(238, 130, 98)', '#C4C4C4': 'rgb(196, 196, 196)', '#556B2F': 'rgb(85, 107, 47)', '#FF8C00': 'rgb(255, 140, 0)', '#8B7B8B': 'rgb(139, 123, 139)', '#0000EE': 'rgb(0, 0, 238)', '#EED5D2': 'rgb(238, 213, 210)', '#BA55D3': 'rgb(186, 85, 211)', '#FFF5EE': 'rgb(255, 245, 238)', '#912CEE': 'rgb(145, 44, 238)', '#2F4F4F': 'rgb(47, 79, 79)', '#32814B': 'rgb(50, 129, 75)', '#D15FEE': 'rgb(209, 95, 238)', '#F0FFF0': 'rgb(240, 255, 240)', '#B23AEE': 'rgb(178, 58, 238)', '#8B7765': 'rgb(139, 119, 101)', '#3D3D3D': 'rgb(61, 61, 61)', '#54FF9F': 'rgb(84, 255, 159)', '#636363': 'rgb(99, 99, 99)', '#8B8386': 'rgb(139, 131, 134)', '#FF4040': 'rgb(255, 64, 64)', '#EEA9B8': 'rgb(238, 169, 184)', '#C2C2C2': 'rgb(194, 194, 194)', '#800080': 'rgb(128, 0, 128)', '#545454': 'rgb(84, 84, 84)', '#EE3A8C': 'rgb(238, 58, 140)', '#8A8A8A': 'rgb(138, 138, 138)', '#FF00FF': 'rgb(255, 0, 255)', '#436EEE': 'rgb(67, 110, 238)', '#8B864E': 'rgb(139, 134, 78)', '#0A0A0A': 'rgb(10, 10, 10)', '#808000': 'rgb(128, 128, 0)', '#E3E3E3': 'rgb(227, 227, 227)', '#1874CD': 'rgb(24, 116, 205)', '#BCD2EE': 'rgb(188, 210, 238)', '#A9A9A9': 'rgb(169, 169, 169)', '#F4A460': 'rgb(244, 164, 96)', '#FF3030': 'rgb(255, 48, 48)', '#FFEBCD': 'rgb(255, 235, 205)', '#B0C4DE': 'rgb(176, 196, 222)', '#00CDCD': 'rgb(0, 205, 205)', '#C0FF3E': 'rgb(192, 255, 62)', '#FFD700': 'rgb(255, 215, 0)', '#242424': 'rgb(36, 36, 36)', '#8B2252': 'rgb(139, 34, 82)', '#4EEE94': 'rgb(78, 238, 148)', '#CD3278': 'rgb(205, 50, 120)', '#00E5EE': 'rgb(0, 229, 238)', '#CD853F': 'rgb(205, 133, 63)', '#ADD8E6': 'rgb(173, 216, 230)', '#C7C7C7': 'rgb(199, 199, 199)', '#CD2990': 'rgb(205, 41, 144)', '#EEE5DE': 'rgb(238, 229, 222)', '#66CD00': 'rgb(102, 205, 0)', '#878787': 'rgb(135, 135, 135)', '#FFA54F': 'rgb(255, 165, 79)', '#A2B5CD': 'rgb(162, 181, 205)', '#BC8F8F': 'rgb(188, 143, 143)', '#C9C9C9': 'rgb(201, 201, 201)', '#D1C166': 'rgb(209, 193, 102)', '#8B2323': 'rgb(139, 35, 35)', '#B3EE3A': 'rgb(179, 238, 58)', '#EEEED1': 'rgb(238, 238, 209)', '#AEEEEE': 'rgb(174, 238, 238)', '#BDBDBD': 'rgb(189, 189, 189)', '#FF7F00': 'rgb(255, 127, 0)', '#FFC0CB': 'rgb(255, 192, 203)', '#EE3B3B': 'rgb(238, 59, 59)', '#CDC8B1': 'rgb(205, 200, 177)', '#CDB38B': 'rgb(205, 179, 139)', '#CDBA96': 'rgb(205, 186, 150)', '#B4EEB4': 'rgb(180, 238, 180)', '#40E0D0': 'rgb(64, 224, 208)', '#8B795E': 'rgb(139, 121, 94)', '#27408B': 'rgb(39, 64, 139)', '#424242': 'rgb(66, 66, 66)', '#CDB7B5': 'rgb(205, 183, 181)', '#CAE1FF': 'rgb(202, 225, 255)', '#F0FFFF': 'rgb(240, 255, 255)', '#2E8B57': 'rgb(46, 139, 87)', '#87CEEB': 'rgb(135, 206, 235)', '#CD00CD': 'rgb(205, 0, 205)', '#CDAA7D': 'rgb(205, 170, 125)', '#836FFF': 'rgb(131, 111, 255)', '#ABABAB': 'rgb(171, 171, 171)', '#EEB4B4': 'rgb(238, 180, 180)', '#8B7355': 'rgb(139, 115, 85)', '#F0E68C': 'rgb(240, 230, 140)', '#CDCDB4': 'rgb(205, 205, 180)', '#4D4D4D': 'rgb(77, 77, 77)', '#B8B8B8': 'rgb(184, 184, 184)', '#B4CDCD': 'rgb(180, 205, 205)', '#008B8B': 'rgb(0, 139, 139)', '#828282': 'rgb(130, 130, 130)', '#00EEEE': 'rgb(0, 238, 238)', '#708090': 'rgb(112, 128, 144)', '#9AFF9A': 'rgb(154, 255, 154)', '#FFA07A': 'rgb(255, 160, 122)', '#EBEBEB': 'rgb(235, 235, 235)', '#FFB5C5': 'rgb(255, 181, 197)', '#00688B': 'rgb(0, 104, 139)', '#DBDBDB': 'rgb(219, 219, 219)', '#191970': 'rgb(25, 25, 112)', '#FF83FA': 'rgb(255, 131, 250)', '#A1A1A1': 'rgb(161, 161, 161)', '#838B8B': 'rgb(131, 139, 139)', '#FFA500': 'rgb(255, 165, 0)', '#00FF7F': 'rgb(0, 255, 127)', '#EEAD0E': 'rgb(238, 173, 14)', '#B03060': 'rgb(176, 48, 96)', '#96CDCD': 'rgb(150, 205, 205)', '#CD3333': 'rgb(205, 51, 51)', '#CDBE70': 'rgb(205, 190, 112)', '#7CCD7C': 'rgb(124, 205, 124)', '#97FFFF': 'rgb(151, 255, 255)', '#DAA520': 'rgb(218, 165, 32)', '#8B3A3A': 'rgb(139, 58, 58)', '#6B6B6B': 'rgb(107, 107, 107)', '#FFFAF0': 'rgb(255, 250, 240)', '#757575': 'rgb(117, 117, 117)', '#BFBFBF': 'rgb(191, 191, 191)', '#00EE76': 'rgb(0, 238, 118)', '#FFFAFA': 'rgb(255, 250, 250)', '#6E8B3D': 'rgb(110, 139, 61)', '#EEE685': 'rgb(238, 230, 133)', '#FF3E96': 'rgb(255, 62, 150)', '#EE0000': 'rgb(238, 0, 0)', '#FDF5E6': 'rgb(253, 245, 230)', '#E066FF': 'rgb(224, 102, 255)', '#8DB6CD': 'rgb(141, 182, 205)', '#FF7256': 'rgb(255, 114, 86)', '#7CFC00': 'rgb(124, 252, 0)', '#838B83': 'rgb(131, 139, 131)', '#BF3EFF': 'rgb(191, 62, 255)', '#8B6914': 'rgb(139, 105, 20)', '#00CD66': 'rgb(0, 205, 102)', '#525252': 'rgb(82, 82, 82)', '#A4D3EE': 'rgb(164, 211, 238)', '#00868B': 'rgb(0, 134, 139)', '#8DEEEE': 'rgb(141, 238, 238)', '#787878': 'rgb(120, 120, 120)', '#8B1C62': 'rgb(139, 28, 98)', '#616161': 'rgb(97, 97, 97)', '#4876FF': 'rgb(72, 118, 255)', '#9F79EE': 'rgb(159, 121, 238)', '#212121': 'rgb(33, 33, 33)', '#C1CDC1': 'rgb(193, 205, 193)', '#CD69C9': 'rgb(205, 105, 201)', '#E0EEEE': 'rgb(224, 238, 238)', '#8B7E66': 'rgb(139, 126, 102)', '#8A2BE2': 'rgb(138, 43, 226)', '#CDCD00': 'rgb(205, 205, 0)', '#EE5C42': 'rgb(238, 92, 66)', '#6E6E6E': 'rgb(110, 110, 110)', '#EEAEEE': 'rgb(238, 174, 238)', '#DC143C': 'rgb(220, 20, 60)', '#CD919E': 'rgb(205, 145, 158)', '#528B8B': 'rgb(82, 139, 139)', '#AFEEEE': 'rgb(175, 238, 238)', '#CD6889': 'rgb(205, 104, 137)', '#E6E6FA': 'rgb(230, 230, 250)', '#EE00EE': 'rgb(238, 0, 238)', '#999999': 'rgb(153, 153, 153)', '#F0F8FF': 'rgb(240, 248, 255)', '#595959': 'rgb(89, 89, 89)', '#FF7F50': 'rgb(255, 127, 80)', '#A6A6A6': 'rgb(166, 166, 166)', '#DEDEDE': 'rgb(222, 222, 222)', '#262626': 'rgb(38, 38, 38)', '#6CA6CD': 'rgb(108, 166, 205)', '#8B8B83': 'rgb(139, 139, 131)', '#474747': 'rgb(71, 71, 71)', '#F7F7F7': 'rgb(247, 247, 247)', '#548B54': 'rgb(84, 139, 84)', '#48D1CC': 'rgb(72, 209, 204)', '#C1CDCD': 'rgb(193, 205, 205)', '#E0EEE0': 'rgb(224, 238, 224)', '#FFB90F': 'rgb(255, 185, 15)', '#FFD39B': 'rgb(255, 211, 155)', '#8B5A2B': 'rgb(139, 90, 43)', '#EEE9BF': 'rgb(238, 233, 191)', '#BCEE68': 'rgb(188, 238, 104)', '#8470FF': 'rgb(132, 112, 255)', '#8B0A50': 'rgb(139, 10, 80)', '#FFF68F': 'rgb(255, 246, 143)', '#EEA2AD': 'rgb(238, 162, 173)', '#CD5B45': 'rgb(205, 91, 69)', '#7FFF00': 'rgb(127, 255, 0)', '#8B8378': 'rgb(139, 131, 120)', '#9BCD9B': 'rgb(155, 205, 155)', '#454545': 'rgb(69, 69, 69)', '#D1D1D1': 'rgb(209, 209, 209)', '#EEE8AA': 'rgb(238, 232, 170)', '#668B8B': 'rgb(102, 139, 139)', '#EE30A7': 'rgb(238, 48, 167)', '#FFC125': 'rgb(255, 193, 37)', '#8B475D': 'rgb(139, 71, 93)', '#D8BFD8': 'rgb(216, 191, 216)', '#404040': 'rgb(64, 64, 64)', '#EEEE00': 'rgb(238, 238, 0)', '#CDB5CD': 'rgb(205, 181, 205)', '#00C5CD': 'rgb(0, 197, 205)', '#00CED1': 'rgb(0, 206, 209)', '#CFCFCF': 'rgb(207, 207, 207)', '#008B00': 'rgb(0, 139, 0)', '#7A7A7A': 'rgb(122, 122, 122)', '#B8860B': 'rgb(184, 134, 11)', '#1C86EE': 'rgb(28, 134, 238)', '#8B5742': 'rgb(139, 87, 66)', '#1A1A1A': 'rgb(26, 26, 26)', '#8B008B': 'rgb(139, 0, 139)', '#0F0F0F': 'rgb(15, 15, 15)', '#CD3700': 'rgb(205, 55, 0)', '#7F7F7F': 'rgb(127, 127, 127)', '#FF6EB4': 'rgb(255, 110, 180)', '#6959CD': 'rgb(105, 89, 205)', '#90EE90': 'rgb(144, 238, 144)', '#8B4789': 'rgb(139, 71, 137)', '#EE7AE9': 'rgb(238, 122, 233)', '#8968CD': 'rgb(137, 104, 205)', '#080808': 'rgb(8, 8, 8)', '#CDC9C9': 'rgb(205, 201, 201)', '#BDB76B': 'rgb(189, 183, 107)', '#9370DB': 'rgb(147, 112, 219)', '#EEDC82': 'rgb(238, 220, 130)', '#3CB371': 'rgb(60, 179, 113)', '#F5FFFA': 'rgb(245, 255, 250)', '#303030': 'rgb(48, 48, 48)', '#B9D3EE': 'rgb(185, 211, 238)', '#575757': 'rgb(87, 87, 87)', '#F5F5DC': 'rgb(245, 245, 220)', '#BABABA': 'rgb(186, 186, 186)', '#0000CD': 'rgb(0, 0, 205)', '#FF8247': 'rgb(255, 130, 71)', '#F2F2F2': 'rgb(242, 242, 242)', '#EED5B7': 'rgb(238, 213, 183)', '#FFEC8B': 'rgb(255, 236, 139)', '#EE7600': 'rgb(238, 118, 0)', '#8B636C': 'rgb(139, 99, 108)', '#8B814C': 'rgb(139, 129, 76)', '#FFE4B5': 'rgb(255, 228, 181)', '#4F94CD': 'rgb(79, 148, 205)', '#CDAD00': 'rgb(205, 173, 0)', '#CD5555': 'rgb(205, 85, 85)', '#8B7500': 'rgb(139, 117, 0)', '#473C8B': 'rgb(71, 60, 139)', '#B0E0E6': 'rgb(176, 224, 230)', '#FFFF00': 'rgb(255, 255, 0)', '#CD96CD': 'rgb(205, 150, 205)', '#006400': 'rgb(0, 100, 0)', '#FAFAFA': 'rgb(250, 250, 250)', '#53868B': 'rgb(83, 134, 139)', '#8B4513': 'rgb(139, 69, 19)', '#98FB98': 'rgb(152, 251, 152)', '#63B8FF': 'rgb(99, 184, 255)', '#FFAEB9': 'rgb(255, 174, 185)', '#EE6A50': 'rgb(238, 106, 80)', '#87CEFF': 'rgb(135, 206, 255)', '#87CEFA': 'rgb(135, 206, 250)', '#ADFF2F': 'rgb(173, 255, 47)', '#008B45': 'rgb(0, 139, 69)', '#EE4000': 'rgb(238, 64, 0)', '#8B6969': 'rgb(139, 105, 105)', '#00008B': 'rgb(0, 0, 139)', '#DB7093': 'rgb(219, 112, 147)', '#7EC0EE': 'rgb(126, 192, 238)', '#3B3B3B': 'rgb(59, 59, 59)', '#8C8C8C': 'rgb(140, 140, 140)', '#5F9EA0': 'rgb(95, 158, 160)', '#EE799F': 'rgb(238, 121, 159)', '#CD6090': 'rgb(205, 96, 144)', '#8B8682': 'rgb(139, 134, 130)', '#458B74': 'rgb(69, 139, 116)', '#EECFA1': 'rgb(238, 207, 161)', '#76EE00': 'rgb(118, 238, 0)', '#000080': 'rgb(0, 0, 128)', '#228B22': 'rgb(34, 139, 34)', '#8B8B00': 'rgb(139, 139, 0)', '#B5B5B5': 'rgb(181, 181, 181)', '#CD950C': 'rgb(205, 149, 12)', '#EE82EE': 'rgb(238, 130, 238)', '#EDEDED': 'rgb(237, 237, 237)', '#F5DEB3': 'rgb(245, 222, 179)', '#3A5FCD': 'rgb(58, 95, 205)', '#00FA9A': 'rgb(0, 250, 154)', '#F0F0F0': 'rgb(240, 240, 240)', '#D1EEEE': 'rgb(209, 238, 238)', '#2E2E2E': 'rgb(46, 46, 46)', '#EEC591': 'rgb(238, 197, 145)', '#8B3E2F': 'rgb(139, 62, 47)', '#CD8162': 'rgb(205, 129, 98)', '#9AC0CD': 'rgb(154, 192, 205)', '#8B8989': 'rgb(139, 137, 137)', '#EED8AE': 'rgb(238, 216, 174)', '#551A8B': 'rgb(85, 26, 139)', '#919191': 'rgb(145, 145, 145)', '#949494': 'rgb(148, 148, 148)', '#778899': 'rgb(119, 136, 153)', '#FFFACD': 'rgb(255, 250, 205)', '#458B00': 'rgb(69, 139, 0)', '#008000': 'rgb(0, 128, 0)', '#FFFFF0': 'rgb(255, 255, 240)', '#E0E0E0': 'rgb(224, 224, 224)', '#EEB422': 'rgb(238, 180, 34)', '#A020F0': 'rgb(160, 32, 240)', '#5CACEE': 'rgb(92, 172, 238)', '#CD4F39': 'rgb(205, 79, 57)', '#CDC0B0': 'rgb(205, 192, 176)', '#6E7B8B': 'rgb(110, 123, 139)', '#9E9E9E': 'rgb(158, 158, 158)', '#CDC673': 'rgb(205, 198, 115)', '#104E8B': 'rgb(16, 78, 139)', '#E0FFFF': 'rgb(224, 255, 255)', '#FFFFFF': 'rgb(255, 255, 255)', '#6C7B8B': 'rgb(108, 123, 139)', '#FFC1C1': 'rgb(255, 193, 193)', '#D6D6D6': 'rgb(214, 214, 214)', '#8B4726': 'rgb(139, 71, 38)', '#CD9B1D': 'rgb(205, 155, 29)', '#FF6347': 'rgb(255, 99, 71)', '#FF34B3': 'rgb(255, 52, 179)', '#7D7D7D': 'rgb(125, 125, 125)', '#121212': 'rgb(18, 18, 18)', '#B0E2FF': 'rgb(176, 226, 255)', '#8B3A62': 'rgb(139, 58, 98)', '#CD5C5C': 'rgb(205, 92, 92)', '#4A4A4A': 'rgb(74, 74, 74)', '#B0B0B0': 'rgb(176, 176, 176)', '#D9D9D9': 'rgb(217, 217, 217)', '#A2CD5A': 'rgb(162, 205, 90)', '#8B0000': 'rgb(139, 0, 0)', '#FF6A6A': 'rgb(255, 106, 106)', '#CD6600': 'rgb(205, 102, 0)', '#FFEFDB': 'rgb(255, 239, 219)', '#E9967A': 'rgb(233, 150, 122)', '#EEE9E9': 'rgb(238, 233, 233)', '#D4D4D4': 'rgb(212, 212, 212)', '#383838': 'rgb(56, 56, 56)', '#7A67EE': 'rgb(122, 103, 238)', '#4169E1': 'rgb(65, 105, 225)', '#5E5E5E': 'rgb(94, 94, 94)', '#00F5FF': 'rgb(0, 245, 255)', '#FFEFD5': 'rgb(255, 239, 213)', '#CDAF95': 'rgb(205, 175, 149)', '#CCCCCC': 'rgb(204, 204, 204)', '#00BFFF': 'rgb(0, 191, 255)', '#CDB79E': 'rgb(205, 183, 158)', '#969696': 'rgb(150, 150, 150)', '#4F4F4F': 'rgb(79, 79, 79)', '#1E90FF': 'rgb(30, 144, 255)', '#FCFCFC': 'rgb(252, 252, 252)', '#EE2C2C': 'rgb(238, 44, 44)', '#8B6508': 'rgb(139, 101, 8)', '#696969': 'rgb(105, 105, 105)', '#FF7F24': 'rgb(255, 127, 36)', '#8FBC8F': 'rgb(143, 188, 143)', '#66CDAA': 'rgb(102, 205, 170)', '#6495ED': 'rgb(100, 149, 237)', '#0D0D0D': 'rgb(13, 13, 13)', '#EEE0E5': 'rgb(238, 224, 229)', '#666666': 'rgb(102, 102, 102)', '#B2DFEE': 'rgb(178, 223, 238)', '#B22222': 'rgb(178, 34, 34)', '#4B0082': 'rgb(75, 0, 130)', '#FF82AB': 'rgb(255, 130, 171)', '#AB82FF': 'rgb(171, 130, 255)', '#79CDCD': 'rgb(121, 205, 205)', '#FFE4C4': 'rgb(255, 228, 196)', '#DEB887': 'rgb(222, 184, 135)', '#5D478B': 'rgb(93, 71, 139)', '#8B3626': 'rgb(139, 54, 38)', '#FFFFE0': 'rgb(255, 255, 224)', '#FFE4E1': 'rgb(255, 228, 225)', '#171717': 'rgb(23, 23, 23)', '#EEDFCC': 'rgb(238, 223, 204)', '#9400D3': 'rgb(148, 0, 211)', '#BFEFFF': 'rgb(191, 239, 255)', '#8B7D6B': 'rgb(139, 125, 107)', '#FF8C69': 'rgb(255, 140, 105)', '#C6E2FF': 'rgb(198, 226, 255)', '#1C1C1C': 'rgb(28, 28, 28)', '#FF4500': 'rgb(255, 69, 0)', '#FFE7BA': 'rgb(255, 231, 186)', '#808080': 'rgb(128, 128, 128)', '#EE9572': 'rgb(238, 149, 114)', '#CD8500': 'rgb(205, 133, 0)', '#8B5A00': 'rgb(139, 90, 0)', '#9932CC': 'rgb(153, 50, 204)', '#EECBAD': 'rgb(238, 203, 173)', '#CD8C95': 'rgb(205, 140, 149)', '#292929': 'rgb(41, 41, 41)', '#CD1076': 'rgb(205, 16, 118)', '#7A378B': 'rgb(122, 55, 139)', '#FF0000': 'rgb(255, 0, 0)', '#698B22': 'rgb(105, 139, 34)', '#ADADAD': 'rgb(173, 173, 173)', '#EEE8CD': 'rgb(238, 232, 205)', '#DDA0DD': 'rgb(221, 160, 221)', '#7D26CD': 'rgb(125, 38, 205)', '#DA70D6': 'rgb(218, 112, 214)', '#DCDCDC': 'rgb(220, 220, 220)', '#68228B': 'rgb(104, 34, 139)', '#7B68EE': 'rgb(123, 104, 238)', '#000000': 'white', '#6B8E23': 'rgb(107, 142, 35)', '#FF69B4': 'rgb(255, 105, 180)', '#800000': 'rgb(128, 0, 0)', '#8B668B': 'rgb(139, 102, 139)', '#363636': 'rgb(54, 54, 54)', '#8B4500': 'rgb(139, 69, 0)', '#D3D3D3': 'rgb(211, 211, 211)', '#607B8B': 'rgb(96, 123, 139)', '#F08080': 'rgb(240, 128, 128)', '#CD9B9B': 'rgb(205, 155, 155)', '#76EEC6': 'rgb(118, 238, 198)', '#FAEBD7': 'rgb(250, 235, 215)', '#68838B': 'rgb(104, 131, 139)', '#7FFFD4': 'rgb(127, 255, 212)', '#C0C0C0': 'rgb(192, 192, 192)', '#EEDD82': 'rgb(238, 221, 130)', '#EE9A49': 'rgb(238, 154, 73)', '#4A708B': 'rgb(74, 112, 139)', '#008080': 'rgb(0, 128, 128)', '#7AC5CD': 'rgb(122, 197, 205)', '#98F5FF': 'rgb(152, 245, 255)', '#8B2500': 'rgb(139, 37, 0)', '#8F8F8F': 'rgb(143, 143, 143)', '#FFF0F5': 'rgb(255, 240, 245)', '#8B8970': 'rgb(139, 137, 112)', '#8B8878': 'rgb(139, 136, 120)', '#6A5ACD': 'rgb(106, 90, 205)', '#4682B4': 'rgb(70, 130, 180)', '#EEEEE0': 'rgb(238, 238, 224)', '#B3B3B3': 'rgb(179, 179, 179)', '#00FF00': 'rgb(0, 255, 0)', '#FFDEAD': 'rgb(255, 222, 173)', '#CD2626': 'rgb(205, 38, 38)', '#8B4C39': 'rgb(139, 76, 57)', '#9B30FF': 'rgb(155, 48, 255)', '#E5E5E5': 'rgb(229, 229, 229)', '#36648B': 'rgb(54, 100, 139)', '#9C9C9C': 'rgb(156, 156, 156)', '#F8F8FF': 'rgb(248, 248, 255)', '#333333': 'rgb(51, 51, 51)', '#5C5C5C': 'rgb(92, 92, 92)', '#737373': 'rgb(115, 115, 115)', '#EEC900': 'rgb(238, 201, 0)', '#FFE1FF': 'rgb(255, 225, 255)', '#C1FFC1': 'rgb(193, 255, 193)', '#CDC5BF': 'rgb(205, 197, 191)', '#A0522D': 'rgb(160, 82, 45)', '#8B5F65': 'rgb(139, 95, 101)', '#CDC1C5': 'rgb(205, 193, 197)', '#EE7621': 'rgb(238, 118, 33)', '#FFBBFF': 'rgb(255, 187, 255)', '#CD6839': 'rgb(205, 104, 57)', '#698B69': 'rgb(105, 139, 105)', '#050505': 'rgb(5, 5, 5)', '#CD661D': 'rgb(205, 102, 29)', '#FAFAD2': 'rgb(250, 250, 210)', '#CDCDC1': 'rgb(205, 205, 193)', '#FFF8DC': 'rgb(255, 248, 220)', '#A8A8A8': 'rgb(168, 168, 168)', '#B452CD': 'rgb(180, 82, 205)', '#D2B48C': 'rgb(210, 180, 140)', '#8EE5EE': 'rgb(142, 229, 238)', '#483D8B': 'rgb(72, 61, 139)', '#BBFFFF': 'rgb(187, 255, 255)', '#0000FF': 'rgb(0, 0, 255)', '#EE6AA7': 'rgb(238, 106, 167)', '#EE7942': 'rgb(238, 121, 66)', '#00CD00': 'rgb(0, 205, 0)', '#141414': 'rgb(20, 20, 20)', '#9ACD32': 'rgb(154, 205, 50)', '#C71585': 'rgb(199, 21, 133)', '#EE9A00': 'rgb(238, 154, 0)', '#CAFF70': 'rgb(202, 255, 112)', '#F5F5F5': 'rgb(245, 245, 245)', '#32CD32': 'rgb(50, 205, 50)', '#00EE00': 'rgb(0, 238, 0)', '#FFB6C1': 'rgb(255, 182, 193)', '#8B1A1A': 'rgb(139, 26, 26)', '#00B2EE': 'rgb(0, 178, 238)', '#20B2AA': 'rgb(32, 178, 170)', '#707070': 'rgb(112, 112, 112)', '#009ACD': 'rgb(0, 154, 205)', '#A52A2A': 'rgb(165, 42, 42)', '#EE6363': 'rgb(238, 99, 99)', '#FAF0E6': 'rgb(250, 240, 230)', '#8B7D7B': 'rgb(139, 125, 123)', '#9A32CD': 'rgb(154, 50, 205)', '#1F1F1F': 'rgb(31, 31, 31)', '#E8E8E8': 'rgb(232, 232, 232)', '#7E7E7E': 'rgb(126, 126, 126)', '#7A8B8B': 'rgb(122, 139, 139)', '#CD7054': 'rgb(205, 112, 84)', '#9FB6CD': 'rgb(159, 182, 205)', '#CDC9A5': 'rgb(205, 201, 165)', '#D02090': 'rgb(208, 32, 144)', '#00FFFF': 'rgb(0, 255, 255)', '#2B2B2B': 'rgb(43, 43, 43)', '#858585': 'rgb(133, 133, 133)', '#A3A3A3': 'rgb(163, 163, 163)', '#CD0000': 'rgb(205, 0, 0)', '#43CD80': 'rgb(67, 205, 128)', '#FA8072': 'rgb(250, 128, 114)', '#FFDAB9': 'rgb(255, 218, 185)', '#D2691E': 'rgb(210, 105, 30)', '#FF1493': 'rgb(255, 20, 147)', '#EED2EE': 'rgb(238, 210, 238)', '#030303': 'rgb(3, 3, 3)', '#8B8B7A': 'rgb(139, 139, 122)'} diff --git a/share/frontend/imgrid/colors/js/ditherbackground.gif b/share/frontend/imgrid/colors/js/ditherbackground.gif deleted file mode 100755 index 670df08..0000000 Binary files a/share/frontend/imgrid/colors/js/ditherbackground.gif and /dev/null differ diff --git a/share/frontend/imgrid/colors/js/goldenfunctions.js b/share/frontend/imgrid/colors/js/goldenfunctions.js deleted file mode 100755 index ab39533..0000000 --- a/share/frontend/imgrid/colors/js/goldenfunctions.js +++ /dev/null @@ -1,33 +0,0 @@ -function regolden(num) - { - ratio = (1+Math.sqrt(5))/2 - newnum = Math.round(num/ratio) - return newnum - } -function goldenize(num) - { - ratio = (1+Math.sqrt(5))/2 - newnum = Math.round(num*ratio) - return newnum - } -//turns css property width or height into an integer value -function getproperty(idandselectr, propertystr) - { - grab = $(idandselectr).css(propertystr) - grab = grab.slice(0,-2) - numval = parseInt(grab) - return numval - } -function makegolden(idandselectr, propertystr) - { - result = getproperty(idandselectr, propertystr) - newval = goldenize(result) - propval = newval.toString()+'px' - if(propertystr == 'height'){ - $(idandselectr).css('width', propval) - } - else if(propertystr == 'width'){ - $(idandselectr).css('height', propval) - } - } - diff --git a/share/frontend/imgrid/colors/js/hexrgbnametoggle.js b/share/frontend/imgrid/colors/js/hexrgbnametoggle.js deleted file mode 100755 index 60567a5..0000000 --- a/share/frontend/imgrid/colors/js/hexrgbnametoggle.js +++ /dev/null @@ -1,148 +0,0 @@ -///threewayselector for what goes in the divs///////////////////// -///MUST SWITCH TO FOUR WAY WITH RGB/////////////////////////////// -var infostate = 0 -var stringvalue = "CLICK TO CHOOSE THE COLOR" -function switchinfo() - { - if(infostate == 1) - { - for(var i=0; i < divlist.length; i++) - { - $(divlist[i]).html(divtoname[divlist[i]]) - }; - infostate = 2 - $('#infospace').html('(NAMES)'); - } - else if(infostate == 0) - { - for(var i=0; i < divlist.length; i++) - { - $(divlist[i]).html("") - }; - infostate = 1 - $('#infospace').html('(NONE)'); - } - else if(infostate == 2) - { - for(var i=0; i < divlist.length; i++) - { - $(divlist[i]).html(nametohex[divtoname[divlist[i]]]) - }; - infostate = 3 - $('#infospace').html('(HEXES)'); - } - else if(infostate == 3) - { - for(var i=0; i < divlist.length; i++) - { - $(divlist[i]).html(hextorgb[nametohex[divtoname[divlist[i]]]]); - // $(divlist[i]).html($(divlist[i]).css('background-color')); - } - infostate = 0 - $('#infospace').html('(RGBS)'); - } - - } -switchinfo() -$('#infoswitch').hover(function(){$('#infospace').show()}, function(){$('#infospace').hide('slow')} ) -$('#infoswitch').click(function(){switchinfo()}) -///////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////// -//takes a div name and returns the colorname associated with that div -var rgb -var selectedrgb -var colorname -function showcolorname(divstr) - { - rgb = $('#'+divstr).css('background-color'); - colorname = divtoname['#'+divstr] - // hex = nametohex[colorname] - imname = colorname - // imname = hextoname[hex] - if (hexes === true) - { - imname = rgb - } - else if (rgbs === true) - { - imname = colorname - } - else if (names === true) - { - imname = rgbtohex[rgb] - } - return imname - } -function bigname(divstr) - { - stringvalue = showcolorname(divstr) - $('#colornames').html(stringvalue) - } -$('.colors').hover(function() - { - thabg = $(this).css('background-color') - bigname(this.id); - }); - -////////////////////////////////////////////////////////////////////// -//THIS CONTROLS THE VALUE OF THE SELECTION ETC -//MUST ADD RGB VALUES TO THIS AND MAKE IT A THREE-WAY SELECTOR -var names = true; -var hexes = false; -var rgbs = false; -var selectedname = ""; -function hexswitch() - { - if(names == true) - { - hexes = false; - rgbs = false; - $('#hexswitch').html('CLICK TO SWITCH TO RGB VALUES'); - $('#namespace').val(selectedname); - names = false; - rgbs = true; - } - else if(hexes == true) - { - rgbs = false; - names = false; - $('#hexswitch').html('CLICK TO SWITCH TO COLOR NAMES'); - $('#namespace').val(rgbtohex[selectedrgb]); - hexes = false; - names = true; - } - else if(rgbs == true) - { - names = false; - hexes = false; - $('#hexswitch').html('CLICK TO SWITCH TO HEX VALUES') - $('#namespace').val(selectedrgb) - rgbs = false; - hexes = true; - } - } -hexswitch() -$('#hexswitch').click(function(){hexswitch()}); -////////////////////////////////////////////////////// -//////////CLICK TO PUT THE COLORS IN////////////////// -function putitin() - { - if (rgbs === true) - {thecolor = selectedname} - if (hexes === true) - {thecolor = selectedrgb} - if (names === true) - {thecolor = rgbtohex[selectedrgb]} - $('#namespace').val(thecolor) - $('#preview').css({'background-color':selectedrgb,'border-style':'none'}) - $('#vasebackground').css('background-color',selectedrgb) - } -$('.colors').click(function() - { - selectednameid = $(this).attr('id') - selectedname = divtoname['#'+selectednameid] - selectedrgb = $(this).css('background-color'); - putitin() - }); - - diff --git a/share/frontend/imgrid/colors/js/hoverbackground.jpg b/share/frontend/imgrid/colors/js/hoverbackground.jpg deleted file mode 100755 index c1ef116..0000000 Binary files a/share/frontend/imgrid/colors/js/hoverbackground.jpg and /dev/null differ diff --git a/share/frontend/imgrid/colors/js/hovercss.js b/share/frontend/imgrid/colors/js/hovercss.js deleted file mode 100755 index 0223b8b..0000000 --- a/share/frontend/imgrid/colors/js/hovercss.js +++ /dev/null @@ -1,31 +0,0 @@ -//HOVER CSS SCRIPT// -var old = {}; -function hovercss(sel, uno) - { - var chng = {}; - chng['color'] = 'white'; - chng['text-shadow'] = 'black 1px 2px'; - chng['background-image'] = 'url(js/hoverbackground.jpg)'; - if(uno == 'over') - { - for(var key in chng){ - old[key] = $('#'+sel).css(key) - } - for(var key in chng){ - $('#'+sel).css(key, chng[key]) - } - } - if(uno == 'out'){ - for(var key in old){ - $('#'+sel).css(key, old[key]) - } - } - }; -$('.theswitches').hover(function() - { - hovercss(this.id, 'over') - }, function() - { - hovercss(this.id, 'out') - }); - diff --git a/share/frontend/imgrid/colors/js/iftransparentcss.js b/share/frontend/imgrid/colors/js/iftransparentcss.js deleted file mode 100755 index fd4fe6c..0000000 --- a/share/frontend/imgrid/colors/js/iftransparentcss.js +++ /dev/null @@ -1,25 +0,0 @@ -///if transparent etc styling -var transcss = { - 'color':'#141414','box-shadow':'10px 10px 5px #141414', - 'background-color':'#D1D1D1','color':'#141414', - 'border-width':'2px','border-style':'outset','cursor':'pointer'} -$('#transbutton').css(transcss) -var hovertrans = { - 'background-color':'DarkGrey','color':'#383838','box-shadow':'5px 5px 2px #141414' - } -$('#transbutton').hover(function(){$('#transbutton').css(hovertrans)},function(){$('#transbutton').css(transcss)}) - -function transparent() - { - $('#namespace').val('transparent'); - $('#preview').css({'background-color':'transparent','border-style':'dashed','border-width':'2px'}) - } -$('#transbutton').click(function() - { - transparent() - $('#colornames').html('transparent') - $('#colornames').fadeOut(100);$('#colornames').fadeIn(500); - $('#extra').html('

note: the .jpg image format does not support transparency') - }); - - diff --git a/share/frontend/imgrid/colors/js/jquery-1.6.4.min.js b/share/frontend/imgrid/colors/js/jquery-1.6.4.min.js deleted file mode 100755 index 628ed9b..0000000 --- a/share/frontend/imgrid/colors/js/jquery-1.6.4.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.6.4 http://jquery.com/ | http://jquery.org/license */ -(function(a,b){function cu(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cr(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"":"")+""),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cq(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cp(){cn=b}function co(){setTimeout(cp,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bv(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bl(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bd,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bk(a){f.nodeName(a,"input")?bj(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bj)}function bj(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bi(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bh(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bg(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i=0===c})}function U(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function M(a,b){return(a&&a!=="*"?a+".":"")+b.replace(y,"`").replace(z,"&")}function L(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function J(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function D(){return!0}function C(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(K,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.4",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;B.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
a",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-1000px",top:"-1000px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i=f.expando,j=typeof c=="string",k=a.nodeType,l=k?f.cache:a,m=k?a[f.expando]:a[f.expando]&&f.expando;if((!m||e&&m&&l[m]&&!l[m][i])&&j&&d===b)return;m||(k?a[f.expando]=m=++f.uuid:m=f.expando),l[m]||(l[m]={},k||(l[m].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?l[m][i]=f.extend(l[m][i],c):l[m]=f.extend(l[m],c);g=l[m],e&&(g[i]||(g[i]={}),g=g[i]),d!==b&&(g[f.camelCase(c)]=d);if(c==="events"&&!g[c])return g[i]&&g[i].events;j?(h=g[c],h==null&&(h=g[f.camelCase(c)])):h=g;return h}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e=f.expando,g=a.nodeType,h=g?f.cache:a,i=g?a[f.expando]:f.expando;if(!h[i])return;if(b){d=c?h[i][e]:h[i];if(d){d[b]||(b=f.camelCase(b)),delete d[b];if(!l(d))return}}if(c){delete h[i][e];if(!l(h[i]))return}var j=h[i][e];f.support.deleteExpando||!h.setInterval?delete h[i]:h[i]=null,j?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=j):g&&(f.support.deleteExpando?delete a[f.expando]:a.removeAttribute?a.removeAttribute(f.expando):a[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=v:u&&(i=u)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.attr(a,b,""),a.removeAttribute(b),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(u&&f.nodeName(a,"button"))return u.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(u&&f.nodeName(a,"button"))return u.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==null?g:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabIndex=f.propHooks.tabIndex,v={get:function(a,c){var d;return f.prop(a,c)===!0||(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(u=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var w=/\.(.*)$/,x=/^(?:textarea|input|select)$/i,y=/\./g,z=/ /g,A=/[^\w\s.|`]/g,B=function(a){return a.replace(A,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=C;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=C);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),B).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},I=function(c){var d=c.target,e,g;if(!!x.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=H(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:I,beforedeactivate:I,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&I.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&I.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",H(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in G)f.event.add(this,c+".specialChange",G[c]);return x.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return x.test(this.nodeName)}},G=f.event.special.change.filters,G.focus=G.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=S.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(U(c[0])||U(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=R.call(arguments);N.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!T[a]?f.unique(e):e,(this.length>1||P.test(d))&&O.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!be[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)g[h]&&bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=be[l]||be._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bm,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bm.test(g)?g.replace(bm,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bv(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bw=function(a,c){var d,e,g;c=c.replace(bo,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bx=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bp.test(d)&&bq.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bv=bw||bx,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bz=/%20/g,bA=/\[\]$/,bB=/\r?\n/g,bC=/#.*$/,bD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bE=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bF=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bG=/^(?:GET|HEAD)$/,bH=/^\/\//,bI=/\?/,bJ=/)<[^<]*)*<\/script>/gi,bK=/^(?:select|textarea)/i,bL=/\s+/,bM=/([?&])_=[^&]*/,bN=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bO=f.fn.load,bP={},bQ={},bR,bS,bT=["*/"]+["*"];try{bR=e.href}catch(bU){bR=c.createElement("a"),bR.href="",bR=bR.href}bS=bN.exec(bR.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bO)return bO.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bJ,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bK.test(this.nodeName)||bE.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bB,"\r\n")}}):{name:b.name,value:c.replace(bB,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?bX(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),bX(a,b);return a},ajaxSettings:{url:bR,isLocal:bF.test(bS[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bT},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bV(bP),ajaxTransport:bV(bQ),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?bZ(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=b$(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bD.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bC,"").replace(bH,bS[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bL),d.crossDomain==null&&(r=bN.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bS[1]&&r[2]==bS[2]&&(r[3]||(r[1]==="http:"?80:443))==(bS[3]||(bS[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bW(bP,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bG.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bI.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bM,"$1_="+x);d.url=y+(y===d.url?(bI.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bT+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bW(bQ,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){s<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bz,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cq("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b
";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=ct.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!ct.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cu(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cu(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNaN(j)?i:j}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/share/frontend/imgrid/colors/js/jquery.cookie.js b/share/frontend/imgrid/colors/js/jquery.cookie.js deleted file mode 100755 index 6036754..0000000 --- a/share/frontend/imgrid/colors/js/jquery.cookie.js +++ /dev/null @@ -1,96 +0,0 @@ -/** - * Cookie plugin - * - * Copyright (c) 2006 Klaus Hartl (stilbuero.de) - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - * - */ - -/** - * Create a cookie with the given name and value and other optional parameters. - * - * @example $.cookie('the_cookie', 'the_value'); - * @desc Set the value of a cookie. - * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true }); - * @desc Create a cookie with all available options. - * @example $.cookie('the_cookie', 'the_value'); - * @desc Create a session cookie. - * @example $.cookie('the_cookie', null); - * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain - * used when the cookie was set. - * - * @param String name The name of the cookie. - * @param String value The value of the cookie. - * @param Object options An object literal containing key/value pairs to provide optional cookie attributes. - * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object. - * If a negative value is specified (e.g. a date in the past), the cookie will be deleted. - * If set to null or omitted, the cookie will be a session cookie and will not be retained - * when the the browser exits. - * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie). - * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie). - * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will - * require a secure protocol (like HTTPS). - * @type undefined - * - * @name $.cookie - * @cat Plugins/Cookie - * @author Klaus Hartl/klaus.hartl@stilbuero.de - */ - -/** - * Get the value of a cookie with the given name. - * - * @example $.cookie('the_cookie'); - * @desc Get the value of a cookie. - * - * @param String name The name of the cookie. - * @return The value of the cookie. - * @type String - * - * @name $.cookie - * @cat Plugins/Cookie - * @author Klaus Hartl/klaus.hartl@stilbuero.de - */ -jQuery.cookie = function(name, value, options) { - if (typeof value != 'undefined') { // name and value given, set cookie - options = options || {}; - if (value === null) { - value = ''; - options.expires = -1; - } - var expires = ''; - if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { - var date; - if (typeof options.expires == 'number') { - date = new Date(); - date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); - } else { - date = options.expires; - } - expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE - } - // CAUTION: Needed to parenthesize options.path and options.domain - // in the following expressions, otherwise they evaluate to undefined - // in the packed version for some reason... - var path = options.path ? '; path=' + (options.path) : ''; - var domain = options.domain ? '; domain=' + (options.domain) : ''; - var secure = options.secure ? '; secure' : ''; - document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); - } else { // only name given, get cookie - var cookieValue = null; - if (document.cookie && document.cookie != '') { - var cookies = document.cookie.split(';'); - for (var i = 0; i < cookies.length; i++) { - var cookie = jQuery.trim(cookies[i]); - // Does this cookie string begin with the name we want? - if (cookie.substring(0, name.length + 1) == (name + '=')) { - cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); - break; - } - } - } - return cookieValue; - } -}; \ No newline at end of file diff --git a/share/frontend/imgrid/colors/js/setupdimensions.js b/share/frontend/imgrid/colors/js/setupdimensions.js deleted file mode 100755 index a496e87..0000000 --- a/share/frontend/imgrid/colors/js/setupdimensions.js +++ /dev/null @@ -1,173 +0,0 @@ -//setup dimensions -//everything needs to be positioned according to -//window.innerWidth - -//step 1...forget about the rollover css for now -//step 2...make sure ratios are in place - -//function makebig(divstr) -// { -/// newheight = goldenize(colorsheight) -/// $('#'+divstr).height(newheight) -// } -//function makesmall(divstr) -// { -// $('#'+divstr).height(colorsheight) -// } -////////////////// -/////////////this function runs a for loop -////////////and makes it so that the colors are related -//////////by width to the innerwidth of the window -widthratio = 7 -numberacross = 10 - - -function shrinkwidth(arg, ratio) - { - for(var i=0; i < ratio; i++) - { - arg = regolden(arg) - } - division = Math.round(arg) - return division - } -////////////////right now the ratio is set at 1/6th -var colorsh -function makecolorswidth() - { - colorswidth = shrinkwidth(windowWidth, widthratio) - $('.colors').css('width', colorswidth.toString()+'px') - } - -function makecolorsheight() - { - colorsheight = regolden(colorswidth) - propval = colorsheight.toString()+'px' - $('.colors').css('height', propval) - } -//the following function sets up the font sizes -//inrelation to the size of the hexswitch font -function getcontainerwidth() - { - basis = $('.colors').css('width') - basis = parseInt(basis.slice(0,-2)) - secondbasis = '2px' - secondbasis = parseInt(secondbasis.slice(0,-2)) - widthval = (secondbasis*(numberacross*2))+(basis*numberacross)+(basis*.44)//(goldenize(basis)-basis) - widthval = widthval.toString()+'px' - return widthval - } -function makecontainerwidth() - { - var containerwidth = getcontainerwidth() - $('#container').css('width',containerwidth) - } -function setupsides() - { - $('#container').css({'position':'relative','z-index':'1'}) - $('#switches').css('z-index','10') - var basis = $('#container').css('width') - basis = parseInt(basis.slice(0,-2)) - remainder = (100-basis)/2 - widths = regolden(basis) - widths = widths.toString()+'px' - lateralbasis = regolden(remainder) - leftside = toString(lateralbasis)+'%' - rightside = toString(100-lateralbasis)+'%' - $('#colornames').css('left', leftside) - $('#switches').css({'width': widths, 'left': rightside, 'overflow':'hidden','top':'118px'}) - } -//////preview dimensions is for the -///preview box inside the switches container -function previewdimensions() - { - first = $('#switches').css('width') - first = parseInt(first.slice(0,-2)) - width = regolden(first) - height = regolden(width) - width = width.toString()+'px' - height = height.toString()+'px' - $('#preview').css({'width':width, 'height':height}) - } -///////////////////////////// -////font-size is related to hexswitch font-size -////also the width of the switches container -var fontratioone -function setupfonts() - { - fontratioone = shrinkwidth(windowWidth, 9) - $('.theswitches').css('font-size',fontratioone) - fontratiotwo = shrinkwidth(windowWidth, 8) - $('#nameholder, #title, #namespace').css('font-size',fontratiotwo) - $('#colornames').css('font-size', goldenize(fontratiotwo)+'px') - $('#colornames').css('text-shadow', 'black 1px 2px') - var transfont = regolden(fontratioone) - $('#transparent, #extra').css({'width':'100%','font-size':transfont}) - switcheswidth = $('#switches').css('width') - $('#namespace, #nameholder').css('width', '100%') - } -function setupdimensions() - { - if(window.innerWidth > 933) - {windowWidth = window.innerWidth} - else - {windowWidth = 933} - $('#container').css('font-size','0'); - $('.colors').css('font-size','9px'); - makecolorswidth() - makecolorsheight() - makecontainerwidth() - setupfonts() - setupsides() - makegolden('#switches','width') - previewdimensions() - $('#namespace').css('width', 'inherit') - $('#nameholder').css('width', 'inherit') - $('#transparent').css({'float':'bottom','width':'inherit'}) - $('.colors').css({'margin-top': '2px','margin-right':'2px'}); - } -$(window).resize(function() - { - setupdimensions() - }); -var colorsheight -var colorswidth -setupdimensions() -function makebig(divstr) - { - newheight = goldenize(colorsheight) - $('#'+divstr).height(newheight) - } -function makesmall(divstr) - { - $('#'+divstr).height(colorsheight) - } -var firstwidth -$('.colors').mouseover(function() - { - $('#extra').html(""); - if(this.id != 'd0') - { - $(this).css({'height':goldenize(colorsheight),'width':goldenize(colorswidth)}) - firstwidth = $('#container').css('width') - newwidth = firstwidth+goldenize(colorswidth)-colorswidth - $('#container').css('width',newwidth) -// makebig(this.id); - // makegolden('#'+this.id, 'height') - } - }); - - - - -$('.colors').mouseout(function() - { - $(this).css('height',colorsheight) - $(this).css('width', colorswidth) - $('#container').css('width',firstwidth) - }); - -$(".colors").hover(function(){ -$('#colornames').fadeOut(100);$('#colornames').fadeIn(500); - }); - diff --git a/share/frontend/imgrid/colors/js/wrkshp/colors.html b/share/frontend/imgrid/colors/js/wrkshp/colors.html deleted file mode 100755 index 0ef22f9..0000000 --- a/share/frontend/imgrid/colors/js/wrkshp/colors.html +++ /dev/null @@ -1,5429 +0,0 @@ - - - - - - - - -
-

List of Color Names

-
- -

a list of named colors for use with PHOTOBLASTER:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameColorRGBHex
snowsnowrgb(255, 250, 250)#FFFAFA
snow1snow1rgb(255, 250, 250)#FFFAFA
snow2snow2rgb(238, 233, 233)#EEE9E9
RosyBrown1RosyBrown1rgb(255, 193, 193)#FFC1C1
RosyBrown2RosyBrown2rgb(238, 180, 180)#EEB4B4
snow3snow3rgb(205, 201, 201)#CDC9C9
LightCoralLightCoralrgb(240, 128, 128)#F08080
IndianRed1IndianRed1rgb(255, 106, 106)#FF6A6A
RosyBrown3RosyBrown3rgb(205, 155, 155)#CD9B9B
IndianRed2IndianRed2rgb(238, 99, 99)#EE6363
RosyBrownRosyBrownrgb(188, 143, 143)#BC8F8F
brown1brown1rgb(255, 64, 64)#FF4040
firebrick1firebrick1rgb(255, 48, 48)#FF3030
brown2brown2rgb(238, 59, 59)#EE3B3B
IndianRedIndianRedrgb(205, 92, 92)#CD5C5C
IndianRed3IndianRed3rgb(205, 85, 85)#CD5555
firebrick2firebrick2rgb(238, 44, 44)#EE2C2C
snow4snow4rgb(139, 137, 137)#8B8989
brown3brown3rgb(205, 51, 51)#CD3333
redredrgb(255, 0, 0)#FF0000
red1red1rgb(255, 0, 0)#FF0000
RosyBrown4RosyBrown4rgb(139, 105, 105)#8B6969
firebrick3firebrick3rgb(205, 38, 38)#CD2626
red2red2rgb(238, 0, 0)#EE0000
firebrickfirebrickrgb(178, 34, 34)#B22222
brownbrownrgb(165, 42, 42)#A52A2A
red3red3rgb(205, 0, 0)#CD0000
IndianRed4IndianRed4rgb(139, 58, 58)#8B3A3A
brown4brown4rgb(139, 35, 35)#8B2323
firebrick4firebrick4rgb(139, 26, 26)#8B1A1A
DarkRedDarkRedrgb(139, 0, 0)#8B0000
red4red4rgb(139, 0, 0)#8B0000
maroonmaroonrgb(128, 0, 0)#800000
LightPink1LightPink1rgb(255, 174, 185)#FFAEB9
LightPink3LightPink3rgb(205, 140, 149)#CD8C95
LightPink4LightPink4rgb(139, 95, 101)#8B5F65
LightPink2LightPink2rgb(238, 162, 173)#EEA2AD
LightPinkLightPinkrgb(255, 182, 193)#FFB6C1
pinkpinkrgb(255, 192, 203)#FFC0CB
crimsoncrimsonrgb(220, 20, 60)#DC143C
pink1pink1rgb(255, 181, 197)#FFB5C5
pink2pink2rgb(238, 169, 184)#EEA9B8
pink3pink3rgb(205, 145, 158)#CD919E
pink4pink4rgb(139, 99, 108)#8B636C
PaleVioletRed4PaleVioletRed4rgb(139, 71, 93)#8B475D
PaleVioletRedPaleVioletRedrgb(219, 112, 147)#DB7093
PaleVioletRed2PaleVioletRed2rgb(238, 121, 159)#EE799F
PaleVioletRed1PaleVioletRed1rgb(255, 130, 171)#FF82AB
PaleVioletRed3PaleVioletRed3rgb(205, 104, 137)#CD6889
LavenderBlushLavenderBlushrgb(255, 240, 245)#FFF0F5
LavenderBlush1LavenderBlush1rgb(255, 240, 245)#FFF0F5
LavenderBlush3LavenderBlush3rgb(205, 193, 197)#CDC1C5
LavenderBlush2LavenderBlush2rgb(238, 224, 229)#EEE0E5
LavenderBlush4LavenderBlush4rgb(139, 131, 134)#8B8386
maroonmaroonrgb(176, 48, 96)#B03060
HotPink3HotPink3rgb(205, 96, 144)#CD6090
VioletRed3VioletRed3rgb(205, 50, 120)#CD3278
VioletRed1VioletRed1rgb(255, 62, 150)#FF3E96
VioletRed2VioletRed2rgb(238, 58, 140)#EE3A8C
VioletRed4VioletRed4rgb(139, 34, 82)#8B2252
HotPink2HotPink2rgb(238, 106, 167)#EE6AA7
HotPink1HotPink1rgb(255, 110, 180)#FF6EB4
HotPink4HotPink4rgb(139, 58, 98)#8B3A62
HotPinkHotPinkrgb(255, 105, 180)#FF69B4
DeepPinkDeepPinkrgb(255, 20, 147)#FF1493
DeepPink1DeepPink1rgb(255, 20, 147)#FF1493
DeepPink2DeepPink2rgb(238, 18, 137)#EE1289
DeepPink3DeepPink3rgb(205, 16, 118)#CD1076
DeepPink4DeepPink4rgb(139, 10, 80)#8B0A50
maroon1maroon1rgb(255, 52, 179)#FF34B3
maroon2maroon2rgb(238, 48, 167)#EE30A7
maroon3maroon3rgb(205, 41, 144)#CD2990
maroon4maroon4rgb(139, 28, 98)#8B1C62
MediumVioletRedMediumVioletRedrgb(199, 21, 133)#C71585
VioletRedVioletRedrgb(208, 32, 144)#D02090
orchid2orchid2rgb(238, 122, 233)#EE7AE9
orchidorchidrgb(218, 112, 214)#DA70D6
orchid1orchid1rgb(255, 131, 250)#FF83FA
orchid3orchid3rgb(205, 105, 201)#CD69C9
orchid4orchid4rgb(139, 71, 137)#8B4789
thistle1thistle1rgb(255, 225, 255)#FFE1FF
thistle2thistle2rgb(238, 210, 238)#EED2EE
plum1plum1rgb(255, 187, 255)#FFBBFF
plum2plum2rgb(238, 174, 238)#EEAEEE
thistlethistlergb(216, 191, 216)#D8BFD8
thistle3thistle3rgb(205, 181, 205)#CDB5CD
plumplumrgb(221, 160, 221)#DDA0DD
violetvioletrgb(238, 130, 238)#EE82EE
plum3plum3rgb(205, 150, 205)#CD96CD
thistle4thistle4rgb(139, 123, 139)#8B7B8B
fuchsiafuchsiargb(255, 0, 255)#FF00FF
magentamagentargb(255, 0, 255)#FF00FF
magenta1magenta1rgb(255, 0, 255)#FF00FF
plum4plum4rgb(139, 102, 139)#8B668B
magenta2magenta2rgb(238, 0, 238)#EE00EE
magenta3magenta3rgb(205, 0, 205)#CD00CD
DarkMagentaDarkMagentargb(139, 0, 139)#8B008B
magenta4magenta4rgb(139, 0, 139)#8B008B
purplepurplergb(128, 0, 128)#800080
MediumOrchidMediumOrchidrgb(186, 85, 211)#BA55D3
MediumOrchid1MediumOrchid1rgb(224, 102, 255)#E066FF
MediumOrchid2MediumOrchid2rgb(209, 95, 238)#D15FEE
MediumOrchid3MediumOrchid3rgb(180, 82, 205)#B452CD
MediumOrchid4MediumOrchid4rgb(122, 55, 139)#7A378B
DarkVioletDarkVioletrgb(148, 0, 211)#9400D3
DarkOrchidDarkOrchidrgb(153, 50, 204)#9932CC
DarkOrchid1DarkOrchid1rgb(191, 62, 255)#BF3EFF
DarkOrchid3DarkOrchid3rgb(154, 50, 205)#9A32CD
DarkOrchid2DarkOrchid2rgb(178, 58, 238)#B23AEE
DarkOrchid4DarkOrchid4rgb(104, 34, 139)#68228B
purplepurplergb(160, 32, 240)#A020F0
indigoindigorgb( 75, 0, 130)#4B0082
BlueVioletBlueVioletrgb(138, 43, 226)#8A2BE2
purple2purple2rgb(145, 44, 238)#912CEE
purple3purple3rgb(125, 38, 205)#7D26CD
purple4purple4rgb( 85, 26, 139)#551A8B
purple1purple1rgb(155, 48, 255)#9B30FF
MediumPurpleMediumPurplergb(147, 112, 219)#9370DB
MediumPurple1MediumPurple1rgb(171, 130, 255)#AB82FF
MediumPurple2MediumPurple2rgb(159, 121, 238)#9F79EE
MediumPurple3MediumPurple3rgb(137, 104, 205)#8968CD
MediumPurple4MediumPurple4rgb( 93, 71, 139)#5D478B
DarkSlateBlueDarkSlateBluergb( 72, 61, 139)#483D8B
LightSlateBlueLightSlateBluergb(132, 112, 255)#8470FF
MediumSlateBlueMediumSlateBluergb(123, 104, 238)#7B68EE
SlateBlueSlateBluergb(106, 90, 205)#6A5ACD
SlateBlue1SlateBlue1rgb(131, 111, 255)#836FFF
SlateBlue2SlateBlue2rgb(122, 103, 238)#7A67EE
SlateBlue3SlateBlue3rgb(105, 89, 205)#6959CD
SlateBlue4SlateBlue4rgb( 71, 60, 139)#473C8B
GhostWhiteGhostWhitergb(248, 248, 255)#F8F8FF
lavenderlavenderrgb(230, 230, 250)#E6E6FA
bluebluergb( 0, 0, 255)#0000FF
blue1blue1rgb( 0, 0, 255)#0000FF
blue2blue2rgb( 0, 0, 238)#0000EE
blue3blue3rgb( 0, 0, 205)#0000CD
MediumBlueMediumBluergb( 0, 0, 205)#0000CD
blue4blue4rgb( 0, 0, 139)#00008B
DarkBlueDarkBluergb( 0, 0, 139)#00008B
MidnightBlueMidnightBluergb( 25, 25, 112)#191970
navynavyrgb( 0, 0, 128)#000080
NavyBlueNavyBluergb( 0, 0, 128)#000080
RoyalBlueRoyalBluergb( 65, 105, 225)#4169E1
RoyalBlue1RoyalBlue1rgb( 72, 118, 255)#4876FF
RoyalBlue2RoyalBlue2rgb( 67, 110, 238)#436EEE
RoyalBlue3RoyalBlue3rgb( 58, 95, 205)#3A5FCD
RoyalBlue4RoyalBlue4rgb( 39, 64, 139)#27408B
CornflowerBlueCornflowerBluergb(100, 149, 237)#6495ED
LightSteelBlueLightSteelBluergb(176, 196, 222)#B0C4DE
LightSteelBlue1LightSteelBlue1rgb(202, 225, 255)#CAE1FF
LightSteelBlue2LightSteelBlue2rgb(188, 210, 238)#BCD2EE
LightSteelBlue3LightSteelBlue3rgb(162, 181, 205)#A2B5CD
LightSteelBlue4LightSteelBlue4rgb(110, 123, 139)#6E7B8B
SlateGray4SlateGray4rgb(108, 123, 139)#6C7B8B
SlateGray1SlateGray1rgb(198, 226, 255)#C6E2FF
SlateGray2SlateGray2rgb(185, 211, 238)#B9D3EE
SlateGray3SlateGray3rgb(159, 182, 205)#9FB6CD
LightSlateGrayLightSlateGrayrgb(119, 136, 153)#778899
LightSlateGreyLightSlateGreyrgb(119, 136, 153)#778899
SlateGraySlateGrayrgb(112, 128, 144)#708090
SlateGreySlateGreyrgb(112, 128, 144)#708090
DodgerBlueDodgerBluergb( 30, 144, 255)#1E90FF
DodgerBlue1DodgerBlue1rgb( 30, 144, 255)#1E90FF
DodgerBlue2DodgerBlue2rgb( 28, 134, 238)#1C86EE
DodgerBlue4DodgerBlue4rgb( 16, 78, 139)#104E8B
DodgerBlue3DodgerBlue3rgb( 24, 116, 205)#1874CD
AliceBlueAliceBluergb(240, 248, 255)#F0F8FF
SteelBlue4SteelBlue4rgb( 54, 100, 139)#36648B
SteelBlueSteelBluergb( 70, 130, 180)#4682B4
SteelBlue1SteelBlue1rgb( 99, 184, 255)#63B8FF
SteelBlue2SteelBlue2rgb( 92, 172, 238)#5CACEE
SteelBlue3SteelBlue3rgb( 79, 148, 205)#4F94CD
SkyBlue4SkyBlue4rgb( 74, 112, 139)#4A708B
SkyBlue1SkyBlue1rgb(135, 206, 255)#87CEFF
SkyBlue2SkyBlue2rgb(126, 192, 238)#7EC0EE
SkyBlue3SkyBlue3rgb(108, 166, 205)#6CA6CD
LightSkyBlueLightSkyBluergb(135, 206, 250)#87CEFA
LightSkyBlue4LightSkyBlue4rgb( 96, 123, 139)#607B8B
LightSkyBlue1LightSkyBlue1rgb(176, 226, 255)#B0E2FF
LightSkyBlue2LightSkyBlue2rgb(164, 211, 238)#A4D3EE
LightSkyBlue3LightSkyBlue3rgb(141, 182, 205)#8DB6CD
SkyBlueSkyBluergb(135, 206, 235)#87CEEB
LightBlue3LightBlue3rgb(154, 192, 205)#9AC0CD
DeepSkyBlueDeepSkyBluergb( 0, 191, 255)#00BFFF
DeepSkyBlue1DeepSkyBlue1rgb( 0, 191, 255)#00BFFF
DeepSkyBlue2DeepSkyBlue2rgb( 0, 178, 238)#00B2EE
DeepSkyBlue4DeepSkyBlue4rgb( 0, 104, 139)#00688B
DeepSkyBlue3DeepSkyBlue3rgb( 0, 154, 205)#009ACD
LightBlue1LightBlue1rgb(191, 239, 255)#BFEFFF
LightBlue2LightBlue2rgb(178, 223, 238)#B2DFEE
LightBlueLightBluergb(173, 216, 230)#ADD8E6
LightBlue4LightBlue4rgb(104, 131, 139)#68838B
PowderBluePowderBluergb(176, 224, 230)#B0E0E6
CadetBlue1CadetBlue1rgb(152, 245, 255)#98F5FF
CadetBlue2CadetBlue2rgb(142, 229, 238)#8EE5EE
CadetBlue3CadetBlue3rgb(122, 197, 205)#7AC5CD
CadetBlue4CadetBlue4rgb( 83, 134, 139)#53868B
turquoise1turquoise1rgb( 0, 245, 255)#00F5FF
turquoise2turquoise2rgb( 0, 229, 238)#00E5EE
turquoise3turquoise3rgb( 0, 197, 205)#00C5CD
turquoise4turquoise4rgb( 0, 134, 139)#00868B
cadet bluecadet bluergb( 95, 158, 160)#5F9EA0
CadetBlueCadetBluergb( 95, 158, 160)#5F9EA0
DarkTurquoiseDarkTurquoisergb( 0, 206, 209)#00CED1
azureazurergb(240, 255, 255)#F0FFFF
azure1azure1rgb(240, 255, 255)#F0FFFF
LightCyanLightCyanrgb(224, 255, 255)#E0FFFF
LightCyan1LightCyan1rgb(224, 255, 255)#E0FFFF
azure2azure2rgb(224, 238, 238)#E0EEEE
LightCyan2LightCyan2rgb(209, 238, 238)#D1EEEE
PaleTurquoise1PaleTurquoise1rgb(187, 255, 255)#BBFFFF
PaleTurquoisePaleTurquoisergb(175, 238, 238)#AFEEEE
PaleTurquoise2PaleTurquoise2rgb(174, 238, 238)#AEEEEE
DarkSlateGray1DarkSlateGray1rgb(151, 255, 255)#97FFFF
azure3azure3rgb(193, 205, 205)#C1CDCD
LightCyan3LightCyan3rgb(180, 205, 205)#B4CDCD
DarkSlateGray2DarkSlateGray2rgb(141, 238, 238)#8DEEEE
PaleTurquoise3PaleTurquoise3rgb(150, 205, 205)#96CDCD
DarkSlateGray3DarkSlateGray3rgb(121, 205, 205)#79CDCD
azure4azure4rgb(131, 139, 139)#838B8B
LightCyan4LightCyan4rgb(122, 139, 139)#7A8B8B
aquaaquargb( 0, 255, 255)#00FFFF
cyancyanrgb( 0, 255, 255)#00FFFF
cyan1cyan1rgb( 0, 255, 255)#00FFFF
PaleTurquoise4PaleTurquoise4rgb(102, 139, 139)#668B8B
cyan2cyan2rgb( 0, 238, 238)#00EEEE
DarkSlateGray4DarkSlateGray4rgb( 82, 139, 139)#528B8B
cyan3cyan3rgb( 0, 205, 205)#00CDCD
cyan4cyan4rgb( 0, 139, 139)#008B8B
DarkCyanDarkCyanrgb( 0, 139, 139)#008B8B
tealtealrgb( 0, 128, 128)#008080
DarkSlateGrayDarkSlateGrayrgb( 47, 79, 79)#2F4F4F
DarkSlateGreyDarkSlateGreyrgb( 47, 79, 79)#2F4F4F
MediumTurquoiseMediumTurquoisergb( 72, 209, 204)#48D1CC
LightSeaGreenLightSeaGreenrgb( 32, 178, 170)#20B2AA
turquoiseturquoisergb( 64, 224, 208)#40E0D0
aquamarine4aquamarine4rgb( 69, 139, 116)#458B74
aquamarineaquamarinergb(127, 255, 212)#7FFFD4
aquamarine1aquamarine1rgb(127, 255, 212)#7FFFD4
aquamarine2aquamarine2rgb(118, 238, 198)#76EEC6
aquamarine3aquamarine3rgb(102, 205, 170)#66CDAA
MediumAquamarineMediumAquamarinergb(102, 205, 170)#66CDAA
MediumSpringGreenMediumSpringGreenrgb( 0, 250, 154)#00FA9A
MintCreamMintCreamrgb(245, 255, 250)#F5FFFA
SpringGreenSpringGreenrgb( 0, 255, 127)#00FF7F
SpringGreen1SpringGreen1rgb( 0, 255, 127)#00FF7F
SpringGreen2SpringGreen2rgb( 0, 238, 118)#00EE76
SpringGreen3SpringGreen3rgb( 0, 205, 102)#00CD66
SpringGreen4SpringGreen4rgb( 0, 139, 69)#008B45
MediumSeaGreenMediumSeaGreenrgb( 60, 179, 113)#3CB371
SeaGreenSeaGreenrgb( 46, 139, 87)#2E8B57
SeaGreen3SeaGreen3rgb( 67, 205, 128)#43CD80
SeaGreen1SeaGreen1rgb( 84, 255, 159)#54FF9F
SeaGreen4SeaGreen4rgb( 46, 139, 87)#2E8B57
SeaGreen2SeaGreen2rgb( 78, 238, 148)#4EEE94
MediumForestGreenMediumForestGreenrgb( 50, 129, 75)#32814B
honeydewhoneydewrgb(240, 255, 240)#F0FFF0
honeydew1honeydew1rgb(240, 255, 240)#F0FFF0
honeydew2honeydew2rgb(224, 238, 224)#E0EEE0
DarkSeaGreen1DarkSeaGreen1rgb(193, 255, 193)#C1FFC1
DarkSeaGreen2DarkSeaGreen2rgb(180, 238, 180)#B4EEB4
PaleGreen1PaleGreen1rgb(154, 255, 154)#9AFF9A
PaleGreenPaleGreenrgb(152, 251, 152)#98FB98
honeydew3honeydew3rgb(193, 205, 193)#C1CDC1
LightGreenLightGreenrgb(144, 238, 144)#90EE90
PaleGreen2PaleGreen2rgb(144, 238, 144)#90EE90
DarkSeaGreen3DarkSeaGreen3rgb(155, 205, 155)#9BCD9B
DarkSeaGreenDarkSeaGreenrgb(143, 188, 143)#8FBC8F
PaleGreen3PaleGreen3rgb(124, 205, 124)#7CCD7C
honeydew4honeydew4rgb(131, 139, 131)#838B83
green1green1rgb( 0, 255, 0)#00FF00
limelimergb( 0, 255, 0)#00FF00
LimeGreenLimeGreenrgb( 50, 205, 50)#32CD32
DarkSeaGreen4DarkSeaGreen4rgb(105, 139, 105)#698B69
green2green2rgb( 0, 238, 0)#00EE00
PaleGreen4PaleGreen4rgb( 84, 139, 84)#548B54
green3green3rgb( 0, 205, 0)#00CD00
ForestGreenForestGreenrgb( 34, 139, 34)#228B22
green4green4rgb( 0, 139, 0)#008B00
greengreenrgb( 0, 128, 0)#008000
DarkGreenDarkGreenrgb( 0, 100, 0)#006400
LawnGreenLawnGreenrgb(124, 252, 0)#7CFC00
chartreusechartreusergb(127, 255, 0)#7FFF00
chartreuse1chartreuse1rgb(127, 255, 0)#7FFF00
chartreuse2chartreuse2rgb(118, 238, 0)#76EE00
chartreuse3chartreuse3rgb(102, 205, 0)#66CD00
chartreuse4chartreuse4rgb( 69, 139, 0)#458B00
GreenYellowGreenYellowrgb(173, 255, 47)#ADFF2F
DarkOliveGreen3DarkOliveGreen3rgb(162, 205, 90)#A2CD5A
DarkOliveGreen1DarkOliveGreen1rgb(202, 255, 112)#CAFF70
DarkOliveGreen2DarkOliveGreen2rgb(188, 238, 104)#BCEE68
DarkOliveGreen4DarkOliveGreen4rgb(110, 139, 61)#6E8B3D
DarkOliveGreenDarkOliveGreenrgb( 85, 107, 47)#556B2F
OliveDrabOliveDrabrgb(107, 142, 35)#6B8E23
OliveDrab1OliveDrab1rgb(192, 255, 62)#C0FF3E
OliveDrab2OliveDrab2rgb(179, 238, 58)#B3EE3A
OliveDrab3OliveDrab3rgb(154, 205, 50)#9ACD32
YellowGreenYellowGreenrgb(154, 205, 50)#9ACD32
OliveDrab4OliveDrab4rgb(105, 139, 34)#698B22
ivoryivoryrgb(255, 255, 240)#FFFFF0
ivory1ivory1rgb(255, 255, 240)#FFFFF0
LightYellowLightYellowrgb(255, 255, 224)#FFFFE0
LightYellow1LightYellow1rgb(255, 255, 224)#FFFFE0
beigebeigergb(245, 245, 220)#F5F5DC
ivory2ivory2rgb(238, 238, 224)#EEEEE0
LightGoldenrodYellowLightGoldenrodYellowrgb(250, 250, 210)#FAFAD2
LightYellow2LightYellow2rgb(238, 238, 209)#EEEED1
ivory3ivory3rgb(205, 205, 193)#CDCDC1
LightYellow3LightYellow3rgb(205, 205, 180)#CDCDB4
ivory4ivory4rgb(139, 139, 131)#8B8B83
LightYellow4LightYellow4rgb(139, 139, 122)#8B8B7A
yellowyellowrgb(255, 255, 0)#FFFF00
yellow1yellow1rgb(255, 255, 0)#FFFF00
yellow2yellow2rgb(238, 238, 0)#EEEE00
yellow3yellow3rgb(205, 205, 0)#CDCD00
yellow4yellow4rgb(139, 139, 0)#8B8B00
oliveolivergb(128, 128, 0)#808000
DarkKhakiDarkKhakirgb(189, 183, 107)#BDB76B
khaki2khaki2rgb(238, 230, 133)#EEE685
LemonChiffon4LemonChiffon4rgb(139, 137, 112)#8B8970
khaki1khaki1rgb(255, 246, 143)#FFF68F
khaki3khaki3rgb(205, 198, 115)#CDC673
khaki4khaki4rgb(139, 134, 78)#8B864E
PaleGoldenrodPaleGoldenrodrgb(238, 232, 170)#EEE8AA
LemonChiffonLemonChiffonrgb(255, 250, 205)#FFFACD
LemonChiffon1LemonChiffon1rgb(255, 250, 205)#FFFACD
khakikhakirgb(240, 230, 140)#F0E68C
LemonChiffon3LemonChiffon3rgb(205, 201, 165)#CDC9A5
LemonChiffon2LemonChiffon2rgb(238, 233, 191)#EEE9BF
MediumGoldenRodMediumGoldenRodrgb(209, 193, 102)#D1C166
cornsilk4cornsilk4rgb(139, 136, 120)#8B8878
goldgoldrgb(255, 215, 0)#FFD700
gold1gold1rgb(255, 215, 0)#FFD700
gold2gold2rgb(238, 201, 0)#EEC900
gold3gold3rgb(205, 173, 0)#CDAD00
gold4gold4rgb(139, 117, 0)#8B7500
LightGoldenrodLightGoldenrodrgb(238, 221, 130)#EEDD82
LightGoldenrod4LightGoldenrod4rgb(139, 129, 76)#8B814C
LightGoldenrod1LightGoldenrod1rgb(255, 236, 139)#FFEC8B
LightGoldenrod3LightGoldenrod3rgb(205, 190, 112)#CDBE70
LightGoldenrod2LightGoldenrod2rgb(238, 220, 130)#EEDC82
cornsilk3cornsilk3rgb(205, 200, 177)#CDC8B1
cornsilk2cornsilk2rgb(238, 232, 205)#EEE8CD
cornsilkcornsilkrgb(255, 248, 220)#FFF8DC
cornsilk1cornsilk1rgb(255, 248, 220)#FFF8DC
goldenrodgoldenrodrgb(218, 165, 32)#DAA520
goldenrod1goldenrod1rgb(255, 193, 37)#FFC125
goldenrod2goldenrod2rgb(238, 180, 34)#EEB422
goldenrod3goldenrod3rgb(205, 155, 29)#CD9B1D
goldenrod4goldenrod4rgb(139, 105, 20)#8B6914
DarkGoldenrodDarkGoldenrodrgb(184, 134, 11)#B8860B
DarkGoldenrod1DarkGoldenrod1rgb(255, 185, 15)#FFB90F
DarkGoldenrod2DarkGoldenrod2rgb(238, 173, 14)#EEAD0E
DarkGoldenrod3DarkGoldenrod3rgb(205, 149, 12)#CD950C
DarkGoldenrod4DarkGoldenrod4rgb(139, 101, 8)#8B6508
FloralWhiteFloralWhitergb(255, 250, 240)#FFFAF0
wheat2wheat2rgb(238, 216, 174)#EED8AE
OldLaceOldLacergb(253, 245, 230)#FDF5E6
wheatwheatrgb(245, 222, 179)#F5DEB3
wheat1wheat1rgb(255, 231, 186)#FFE7BA
wheat3wheat3rgb(205, 186, 150)#CDBA96
orangeorangergb(255, 165, 0)#FFA500
orange1orange1rgb(255, 165, 0)#FFA500
orange2orange2rgb(238, 154, 0)#EE9A00
orange3orange3rgb(205, 133, 0)#CD8500
orange4orange4rgb(139, 90, 0)#8B5A00
wheat4wheat4rgb(139, 126, 102)#8B7E66
moccasinmoccasinrgb(255, 228, 181)#FFE4B5
PapayaWhipPapayaWhiprgb(255, 239, 213)#FFEFD5
NavajoWhite3NavajoWhite3rgb(205, 179, 139)#CDB38B
BlanchedAlmondBlanchedAlmondrgb(255, 235, 205)#FFEBCD
NavajoWhiteNavajoWhitergb(255, 222, 173)#FFDEAD
NavajoWhite1NavajoWhite1rgb(255, 222, 173)#FFDEAD
NavajoWhite2NavajoWhite2rgb(238, 207, 161)#EECFA1
NavajoWhite4NavajoWhite4rgb(139, 121, 94)#8B795E
AntiqueWhite4AntiqueWhite4rgb(139, 131, 120)#8B8378
AntiqueWhiteAntiqueWhitergb(250, 235, 215)#FAEBD7
tantanrgb(210, 180, 140)#D2B48C
bisque4bisque4rgb(139, 125, 107)#8B7D6B
burlywoodburlywoodrgb(222, 184, 135)#DEB887
AntiqueWhite2AntiqueWhite2rgb(238, 223, 204)#EEDFCC
burlywood1burlywood1rgb(255, 211, 155)#FFD39B
burlywood3burlywood3rgb(205, 170, 125)#CDAA7D
burlywood2burlywood2rgb(238, 197, 145)#EEC591
AntiqueWhite1AntiqueWhite1rgb(255, 239, 219)#FFEFDB
burlywood4burlywood4rgb(139, 115, 85)#8B7355
AntiqueWhite3AntiqueWhite3rgb(205, 192, 176)#CDC0B0
DarkOrangeDarkOrangergb(255, 140, 0)#FF8C00
bisque2bisque2rgb(238, 213, 183)#EED5B7
bisquebisquergb(255, 228, 196)#FFE4C4
bisque1bisque1rgb(255, 228, 196)#FFE4C4
bisque3bisque3rgb(205, 183, 158)#CDB79E
DarkOrange1DarkOrange1rgb(255, 127, 0)#FF7F00
linenlinenrgb(250, 240, 230)#FAF0E6
DarkOrange2DarkOrange2rgb(238, 118, 0)#EE7600
DarkOrange3DarkOrange3rgb(205, 102, 0)#CD6600
DarkOrange4DarkOrange4rgb(139, 69, 0)#8B4500
peruperurgb(205, 133, 63)#CD853F
tan1tan1rgb(255, 165, 79)#FFA54F
tan2tan2rgb(238, 154, 73)#EE9A49
tan3tan3rgb(205, 133, 63)#CD853F
tan4tan4rgb(139, 90, 43)#8B5A2B
PeachPuffPeachPuffrgb(255, 218, 185)#FFDAB9
PeachPuff1PeachPuff1rgb(255, 218, 185)#FFDAB9
PeachPuff4PeachPuff4rgb(139, 119, 101)#8B7765
PeachPuff2PeachPuff2rgb(238, 203, 173)#EECBAD
PeachPuff3PeachPuff3rgb(205, 175, 149)#CDAF95
SandyBrownSandyBrownrgb(244, 164, 96)#F4A460
seashell4seashell4rgb(139, 134, 130)#8B8682
seashell2seashell2rgb(238, 229, 222)#EEE5DE
seashell3seashell3rgb(205, 197, 191)#CDC5BF
chocolatechocolatergb(210, 105, 30)#D2691E
chocolate1chocolate1rgb(255, 127, 36)#FF7F24
chocolate2chocolate2rgb(238, 118, 33)#EE7621
chocolate3chocolate3rgb(205, 102, 29)#CD661D
chocolate4chocolate4rgb(139, 69, 19)#8B4513
SaddleBrownSaddleBrownrgb(139, 69, 19)#8B4513
seashellseashellrgb(255, 245, 238)#FFF5EE
seashell1seashell1rgb(255, 245, 238)#FFF5EE
sienna4sienna4rgb(139, 71, 38)#8B4726
siennasiennargb(160, 82, 45)#A0522D
sienna1sienna1rgb(255, 130, 71)#FF8247
sienna2sienna2rgb(238, 121, 66)#EE7942
sienna3sienna3rgb(205, 104, 57)#CD6839
LightSalmon3LightSalmon3rgb(205, 129, 98)#CD8162
LightSalmonLightSalmonrgb(255, 160, 122)#FFA07A
LightSalmon1LightSalmon1rgb(255, 160, 122)#FFA07A
LightSalmon4LightSalmon4rgb(139, 87, 66)#8B5742
LightSalmon2LightSalmon2rgb(238, 149, 114)#EE9572
coralcoralrgb(255, 127, 80)#FF7F50
OrangeRedOrangeRedrgb(255, 69, 0)#FF4500
OrangeRed1OrangeRed1rgb(255, 69, 0)#FF4500
OrangeRed2OrangeRed2rgb(238, 64, 0)#EE4000
OrangeRed3OrangeRed3rgb(205, 55, 0)#CD3700
OrangeRed4OrangeRed4rgb(139, 37, 0)#8B2500
DarkSalmonDarkSalmonrgb(233, 150, 122)#E9967A
salmon1salmon1rgb(255, 140, 105)#FF8C69
salmon2salmon2rgb(238, 130, 98)#EE8262
salmon3salmon3rgb(205, 112, 84)#CD7054
salmon4salmon4rgb(139, 76, 57)#8B4C39
coral1coral1rgb(255, 114, 86)#FF7256
coral2coral2rgb(238, 106, 80)#EE6A50
coral3coral3rgb(205, 91, 69)#CD5B45
coral4coral4rgb(139, 62, 47)#8B3E2F
tomato4tomato4rgb(139, 54, 38)#8B3626
tomatotomatorgb(255, 99, 71)#FF6347
tomato1tomato1rgb(255, 99, 71)#FF6347
tomato2tomato2rgb(238, 92, 66)#EE5C42
tomato3tomato3rgb(205, 79, 57)#CD4F39
MistyRose4MistyRose4rgb(139, 125, 123)#8B7D7B
MistyRose2MistyRose2rgb(238, 213, 210)#EED5D2
MistyRoseMistyRosergb(255, 228, 225)#FFE4E1
MistyRose1MistyRose1rgb(255, 228, 225)#FFE4E1
salmonsalmonrgb(250, 128, 114)#FA8072
MistyRose3MistyRose3rgb(205, 183, 181)#CDB7B5
whitewhitergb(255, 255, 255)#FFFFFF
gray100gray100rgb(255, 255, 255)#FFFFFF
grey100grey100rgb(255, 255, 255)#FFFFFF
grey100grey100rgb(255, 255, 255)#FFFFFF
gray99gray99rgb(252, 252, 252)#FCFCFC
grey99grey99rgb(252, 252, 252)#FCFCFC
gray98gray98rgb(250, 250, 250)#FAFAFA
grey98grey98rgb(250, 250, 250)#FAFAFA
gray97gray97rgb(247, 247, 247)#F7F7F7
grey97grey97rgb(247, 247, 247)#F7F7F7
gray96gray96rgb(245, 245, 245)#F5F5F5
grey96grey96rgb(245, 245, 245)#F5F5F5
WhiteSmokeWhiteSmokergb(245, 245, 245)#F5F5F5
gray95gray95rgb(242, 242, 242)#F2F2F2
grey95grey95rgb(242, 242, 242)#F2F2F2
gray94gray94rgb(240, 240, 240)#F0F0F0
grey94grey94rgb(240, 240, 240)#F0F0F0
gray93gray93rgb(237, 237, 237)#EDEDED
grey93grey93rgb(237, 237, 237)#EDEDED
gray92gray92rgb(235, 235, 235)#EBEBEB
grey92grey92rgb(235, 235, 235)#EBEBEB
gray91gray91rgb(232, 232, 232)#E8E8E8
grey91grey91rgb(232, 232, 232)#E8E8E8
gray90gray90rgb(229, 229, 229)#E5E5E5
grey90grey90rgb(229, 229, 229)#E5E5E5
gray89gray89rgb(227, 227, 227)#E3E3E3
grey89grey89rgb(227, 227, 227)#E3E3E3
gray88gray88rgb(224, 224, 224)#E0E0E0
grey88grey88rgb(224, 224, 224)#E0E0E0
gray87gray87rgb(222, 222, 222)#DEDEDE
grey87grey87rgb(222, 222, 222)#DEDEDE
gainsborogainsbororgb(220, 220, 220)#DCDCDC
gray86gray86rgb(219, 219, 219)#DBDBDB
grey86grey86rgb(219, 219, 219)#DBDBDB
gray85gray85rgb(217, 217, 217)#D9D9D9
grey85grey85rgb(217, 217, 217)#D9D9D9
gray84gray84rgb(214, 214, 214)#D6D6D6
grey84grey84rgb(214, 214, 214)#D6D6D6
gray83gray83rgb(212, 212, 212)#D4D4D4
grey83grey83rgb(212, 212, 212)#D4D4D4
LightGrayLightGrayrgb(211, 211, 211)#D3D3D3
LightGreyLightGreyrgb(211, 211, 211)#D3D3D3
gray82gray82rgb(209, 209, 209)#D1D1D1
grey82grey82rgb(209, 209, 209)#D1D1D1
gray81gray81rgb(207, 207, 207)#CFCFCF
grey81grey81rgb(207, 207, 207)#CFCFCF
gray80gray80rgb(204, 204, 204)#CCCCCC
grey80grey80rgb(204, 204, 204)#CCCCCC
gray79gray79rgb(201, 201, 201)#C9C9C9
grey79grey79rgb(201, 201, 201)#C9C9C9
gray78gray78rgb(199, 199, 199)#C7C7C7
grey78grey78rgb(199, 199, 199)#C7C7C7
gray77gray77rgb(196, 196, 196)#C4C4C4
grey77grey77rgb(196, 196, 196)#C4C4C4
gray76gray76rgb(194, 194, 194)#C2C2C2
grey76grey76rgb(194, 194, 194)#C2C2C2
silversilverrgb(192, 192, 192)#C0C0C0
gray75gray75rgb(191, 191, 191)#BFBFBF
grey75grey75rgb(191, 191, 191)#BFBFBF
gray74gray74rgb(189, 189, 189)#BDBDBD
grey74grey74rgb(189, 189, 189)#BDBDBD
gray73gray73rgb(186, 186, 186)#BABABA
grey73grey73rgb(186, 186, 186)#BABABA
gray72gray72rgb(184, 184, 184)#B8B8B8
grey72grey72rgb(184, 184, 184)#B8B8B8
gray71gray71rgb(181, 181, 181)#B5B5B5
grey71grey71rgb(181, 181, 181)#B5B5B5
gray70gray70rgb(179, 179, 179)#B3B3B3
grey70grey70rgb(179, 179, 179)#B3B3B3
gray69gray69rgb(176, 176, 176)#B0B0B0
grey69grey69rgb(176, 176, 176)#B0B0B0
gray68gray68rgb(173, 173, 173)#ADADAD
grey68grey68rgb(173, 173, 173)#ADADAD
gray67gray67rgb(171, 171, 171)#ABABAB
grey67grey67rgb(171, 171, 171)#ABABAB
DarkGrayDarkGrayrgb(169, 169, 169)#A9A9A9
DarkGreyDarkGreyrgb(169, 169, 169)#A9A9A9
gray66gray66rgb(168, 168, 168)#A8A8A8
grey66grey66rgb(168, 168, 168)#A8A8A8
gray65gray65rgb(166, 166, 166)#A6A6A6
grey65grey65rgb(166, 166, 166)#A6A6A6
gray64gray64rgb(163, 163, 163)#A3A3A3
grey64grey64rgb(163, 163, 163)#A3A3A3
gray63gray63rgb(161, 161, 161)#A1A1A1
grey63grey63rgb(161, 161, 161)#A1A1A1
gray62gray62rgb(158, 158, 158)#9E9E9E
grey62grey62rgb(158, 158, 158)#9E9E9E
gray61gray61rgb(156, 156, 156)#9C9C9C
grey61grey61rgb(156, 156, 156)#9C9C9C
gray60gray60rgb(153, 153, 153)#999999
grey60grey60rgb(153, 153, 153)#999999
gray59gray59rgb(150, 150, 150)#969696
grey59grey59rgb(150, 150, 150)#969696
gray58gray58rgb(148, 148, 148)#949494
grey58grey58rgb(148, 148, 148)#949494
gray57gray57rgb(145, 145, 145)#919191
grey57grey57rgb(145, 145, 145)#919191
gray56gray56rgb(143, 143, 143)#8F8F8F
grey56grey56rgb(143, 143, 143)#8F8F8F
gray55gray55rgb(140, 140, 140)#8C8C8C
grey55grey55rgb(140, 140, 140)#8C8C8C
gray54gray54rgb(138, 138, 138)#8A8A8A
grey54grey54rgb(138, 138, 138)#8A8A8A
gray53gray53rgb(135, 135, 135)#878787
grey53grey53rgb(135, 135, 135)#878787
gray52gray52rgb(133, 133, 133)#858585
grey52grey52rgb(133, 133, 133)#858585
gray51gray51rgb(130, 130, 130)#828282
grey51grey51rgb(130, 130, 130)#828282
fractalfractalrgb(128, 128, 128)#808080
gray50gray50rgb(127, 127, 127)#7F7F7F
grey50grey50rgb(127, 127, 127)#7F7F7F
graygrayrgb(126, 126, 126)#7E7E7E
gray49gray49rgb(125, 125, 125)#7D7D7D
grey49grey49rgb(125, 125, 125)#7D7D7D
gray48gray48rgb(122, 122, 122)#7A7A7A
grey48grey48rgb(122, 122, 122)#7A7A7A
gray47gray47rgb(120, 120, 120)#787878
grey47grey47rgb(120, 120, 120)#787878
gray46gray46rgb(117, 117, 117)#757575
grey46grey46rgb(117, 117, 117)#757575
gray45gray45rgb(115, 115, 115)#737373
grey45grey45rgb(115, 115, 115)#737373
gray44gray44rgb(112, 112, 112)#707070
grey44grey44rgb(112, 112, 112)#707070
gray43gray43rgb(110, 110, 110)#6E6E6E
grey43grey43rgb(110, 110, 110)#6E6E6E
gray42gray42rgb(107, 107, 107)#6B6B6B
grey42grey42rgb(107, 107, 107)#6B6B6B
DimGrayDimGrayrgb(105, 105, 105)#696969
DimGreyDimGreyrgb(105, 105, 105)#696969
gray41gray41rgb(105, 105, 105)#696969
grey41grey41rgb(105, 105, 105)#696969
gray40gray40rgb(102, 102, 102)#666666
grey40grey40rgb(102, 102, 102)#666666
gray39gray39rgb( 99, 99, 99)#636363
grey39grey39rgb( 99, 99, 99)#636363
gray38gray38rgb( 97, 97, 97)#616161
grey38grey38rgb( 97, 97, 97)#616161
gray37gray37rgb( 94, 94, 94)#5E5E5E
grey37grey37rgb( 94, 94, 94)#5E5E5E
gray36gray36rgb( 92, 92, 92)#5C5C5C
grey36grey36rgb( 92, 92, 92)#5C5C5C
gray35gray35rgb( 89, 89, 89)#595959
grey35grey35rgb( 89, 89, 89)#595959
gray34gray34rgb( 87, 87, 87)#575757
grey34grey34rgb( 87, 87, 87)#575757
gray33gray33rgb( 84, 84, 84)#545454
grey33grey33rgb( 84, 84, 84)#545454
gray32gray32rgb( 82, 82, 82)#525252
grey32grey32rgb( 82, 82, 82)#525252
gray31gray31rgb( 79, 79, 79)#4F4F4F
grey31grey31rgb( 79, 79, 79)#4F4F4F
gray30gray30rgb( 77, 77, 77)#4D4D4D
grey30grey30rgb( 77, 77, 77)#4D4D4D
gray29gray29rgb( 74, 74, 74)#4A4A4A
grey29grey29rgb( 74, 74, 74)#4A4A4A
gray28gray28rgb( 71, 71, 71)#474747
grey28grey28rgb( 71, 71, 71)#474747
gray27gray27rgb( 69, 69, 69)#454545
grey27grey27rgb( 69, 69, 69)#454545
gray26gray26rgb( 66, 66, 66)#424242
grey26grey26rgb( 66, 66, 66)#424242
gray25gray25rgb( 64, 64, 64)#404040
grey25grey25rgb( 64, 64, 64)#404040
gray24gray24rgb( 61, 61, 61)#3D3D3D
grey24grey24rgb( 61, 61, 61)#3D3D3D
gray23gray23rgb( 59, 59, 59)#3B3B3B
grey23grey23rgb( 59, 59, 59)#3B3B3B
gray22gray22rgb( 56, 56, 56)#383838
grey22grey22rgb( 56, 56, 56)#383838
gray21gray21rgb( 54, 54, 54)#363636
grey21grey21rgb( 54, 54, 54)#363636
gray20gray20rgb( 51, 51, 51)#333333
grey20grey20rgb( 51, 51, 51)#333333
gray19gray19rgb( 48, 48, 48)#303030
grey19grey19rgb( 48, 48, 48)#303030
gray18gray18rgb( 46, 46, 46)#2E2E2E
grey18grey18rgb( 46, 46, 46)#2E2E2E
gray17gray17rgb( 43, 43, 43)#2B2B2B
grey17grey17rgb( 43, 43, 43)#2B2B2B
gray16gray16rgb( 41, 41, 41)#292929
grey16grey16rgb( 41, 41, 41)#292929
gray15gray15rgb( 38, 38, 38)#262626
grey15grey15rgb( 38, 38, 38)#262626
gray14gray14rgb( 36, 36, 36)#242424
grey14grey14rgb( 36, 36, 36)#242424
gray13gray13rgb( 33, 33, 33)#212121
grey13grey13rgb( 33, 33, 33)#212121
gray12gray12rgb( 31, 31, 31)#1F1F1F
grey12grey12rgb( 31, 31, 31)#1F1F1F
gray11gray11rgb( 28, 28, 28)#1C1C1C
grey11grey11rgb( 28, 28, 28)#1C1C1C
gray10gray10rgb( 26, 26, 26)#1A1A1A
grey10grey10rgb( 26, 26, 26)#1A1A1A
gray9gray9rgb( 23, 23, 23)#171717
grey9grey9rgb( 23, 23, 23)#171717
gray8gray8rgb( 20, 20, 20)#141414
grey8grey8rgb( 20, 20, 20)#141414
gray7gray7rgb( 18, 18, 18)#121212
grey7grey7rgb( 18, 18, 18)#121212
gray6gray6rgb( 15, 15, 15)#0F0F0F
grey6grey6rgb( 15, 15, 15)#0F0F0F
gray5gray5rgb( 13, 13, 13)#0D0D0D
grey5grey5rgb( 13, 13, 13)#0D0D0D
gray4gray4rgb( 10, 10, 10)#0A0A0A
grey4grey4rgb( 10, 10, 10)#0A0A0A
gray3gray3rgb( 8, 8, 8)#080808
grey3grey3rgb( 8, 8, 8)#080808
gray2gray2rgb( 5, 5, 5)#050505
grey2grey2rgb( 5, 5, 5)#050505
gray1gray1rgb( 3, 3, 3)#030303
grey1grey1rgb( 3, 3, 3)#030303
blackblackrgb( 0, 0, 0)#000000
gray0gray0rgb( 0, 0, 0)#000000
grey0grey0rgb( 0, 0, 0)#000000
opaqueopaquergb( 0, 0, 0)#000000
nonenonergba( 0, 0, 0, 0.0)#00000000
transparenttransparentrgba( 0, 0, 0, 0.0)#00000000
- -
- -
- - diff --git a/share/frontend/imgrid/colors/js/wrkshp/hexes b/share/frontend/imgrid/colors/js/wrkshp/hexes deleted file mode 100755 index dcc3bda..0000000 --- a/share/frontend/imgrid/colors/js/wrkshp/hexes +++ /dev/null @@ -1 +0,0 @@ -hexlist = ['#FFFAFA', '#FFFAFA', '#EEE9E9', '#FFC1C1', '#EEB4B4', '#CDC9C9', '#F08080', '#FF6A6A', '#CD9B9B', '#EE6363', '#BC8F8F', '#FF4040', '#FF3030', '#EE3B3B', '#CD5C5C', '#CD5555', '#EE2C2C', '#8B8989', '#CD3333', '#FF0000', '#FF0000', '#8B6969', '#CD2626', '#EE0000', '#B22222', '#A52A2A', '#CD0000', '#8B3A3A', '#8B2323', '#8B1A1A', '#8B0000', '#8B0000', '#800000', '#FFAEB9', '#CD8C95', '#8B5F65', '#EEA2AD', '#FFB6C1', '#FFC0CB', '#DC143C', '#FFB5C5', '#EEA9B8', '#CD919E', '#8B636C', '#8B475D', '#DB7093', '#EE799F', '#FF82AB', '#CD6889', '#FFF0F5', '#FFF0F5', '#CDC1C5', '#EEE0E5', '#8B8386', '#B03060', '#CD6090', '#CD3278', '#FF3E96', '#EE3A8C', '#8B2252', '#EE6AA7', '#FF6EB4', '#8B3A62', '#FF69B4', '#FF1493', '#FF1493', '#EE1289', '#CD1076', '#8B0A50', '#FF34B3', '#EE30A7', '#CD2990', '#8B1C62', '#C71585', '#D02090', '#EE7AE9', '#DA70D6', '#FF83FA', '#CD69C9', '#8B4789', '#FFE1FF', '#EED2EE', '#FFBBFF', '#EEAEEE', '#D8BFD8', '#CDB5CD', '#DDA0DD', '#EE82EE', '#CD96CD', '#8B7B8B', '#FF00FF', '#FF00FF', '#FF00FF', '#8B668B', '#EE00EE', '#CD00CD', '#8B008B', '#8B008B', '#800080', '#BA55D3', '#E066FF', '#D15FEE', '#B452CD', '#7A378B', '#9400D3', '#9932CC', '#BF3EFF', '#9A32CD', '#B23AEE', '#68228B', '#A020F0', '#4B0082', '#8A2BE2', '#912CEE', '#7D26CD', '#551A8B', '#9B30FF', '#9370DB', '#AB82FF', '#9F79EE', '#8968CD', '#5D478B', '#483D8B', '#8470FF', '#7B68EE', '#6A5ACD', '#836FFF', '#7A67EE', '#6959CD', '#473C8B', '#F8F8FF', '#E6E6FA', '#0000FF', '#0000FF', '#0000EE', '#0000CD', '#0000CD', '#00008B', '#00008B', '#191970', '#000080', '#000080', '#4169E1', '#4876FF', '#436EEE', '#3A5FCD', '#27408B', '#6495ED', '#B0C4DE', '#CAE1FF', '#BCD2EE', '#A2B5CD', '#6E7B8B', '#6C7B8B', '#C6E2FF', '#B9D3EE', '#9FB6CD', '#778899', '#778899', '#708090', '#708090', '#1E90FF', '#1E90FF', '#1C86EE', '#104E8B', '#1874CD', '#F0F8FF', '#36648B', '#4682B4', '#63B8FF', '#5CACEE', '#4F94CD', '#4A708B', '#87CEFF', '#7EC0EE', '#6CA6CD', '#87CEFA', '#607B8B', '#B0E2FF', '#A4D3EE', '#8DB6CD', '#87CEEB', '#9AC0CD', '#00BFFF', '#00BFFF', '#00B2EE', '#00688B', '#009ACD', '#BFEFFF', '#B2DFEE', '#ADD8E6', '#68838B', '#B0E0E6', '#98F5FF', '#8EE5EE', '#7AC5CD', '#53868B', '#00F5FF', '#00E5EE', '#00C5CD', '#00868B', '#5F9EA0', '#5F9EA0', '#00CED1', '#F0FFFF', '#F0FFFF', '#E0FFFF', '#E0FFFF', '#E0EEEE', '#D1EEEE', '#BBFFFF', '#AFEEEE', '#AEEEEE', '#97FFFF', '#C1CDCD', '#B4CDCD', '#8DEEEE', '#96CDCD', '#79CDCD', '#838B8B', '#7A8B8B', '#00FFFF', '#00FFFF', '#00FFFF', '#668B8B', '#00EEEE', '#528B8B', '#00CDCD', '#008B8B', '#008B8B', '#008080', '#2F4F4F', '#2F4F4F', '#48D1CC', '#20B2AA', '#40E0D0', '#458B74', '#7FFFD4', '#7FFFD4', '#76EEC6', '#66CDAA', '#66CDAA', '#00FA9A', '#F5FFFA', '#00FF7F', '#00FF7F', '#00EE76', '#00CD66', '#008B45', '#3CB371', '#2E8B57', '#43CD80', '#54FF9F', '#2E8B57', '#4EEE94', '#32814B', '#F0FFF0', '#F0FFF0', '#E0EEE0', '#C1FFC1', '#B4EEB4', '#9AFF9A', '#98FB98', '#C1CDC1', '#90EE90', '#90EE90', '#9BCD9B', '#8FBC8F', '#7CCD7C', '#838B83', '#00FF00', '#00FF00', '#32CD32', '#698B69', '#00EE00', '#548B54', '#00CD00', '#228B22', '#008B00', '#008000', '#006400', '#7CFC00', '#7FFF00', '#7FFF00', '#76EE00', '#66CD00', '#458B00', '#ADFF2F', '#A2CD5A', '#CAFF70', '#BCEE68', '#6E8B3D', '#556B2F', '#6B8E23', '#C0FF3E', '#B3EE3A', '#9ACD32', '#9ACD32', '#698B22', '#FFFFF0', '#FFFFF0', '#FFFFE0', '#FFFFE0', '#F5F5DC', '#EEEEE0', '#FAFAD2', '#EEEED1', '#CDCDC1', '#CDCDB4', '#8B8B83', '#8B8B7A', '#FFFF00', '#FFFF00', '#EEEE00', '#CDCD00', '#8B8B00', '#808000', '#BDB76B', '#EEE685', '#8B8970', '#FFF68F', '#CDC673', '#8B864E', '#EEE8AA', '#FFFACD', '#FFFACD', '#F0E68C', '#CDC9A5', '#EEE9BF', '#D1C166', '#8B8878', '#FFD700', '#FFD700', '#EEC900', '#CDAD00', '#8B7500', '#EEDD82', '#8B814C', '#FFEC8B', '#CDBE70', '#EEDC82', '#CDC8B1', '#EEE8CD', '#FFF8DC', '#FFF8DC', '#DAA520', '#FFC125', '#EEB422', '#CD9B1D', '#8B6914', '#B8860B', '#FFB90F', '#EEAD0E', '#CD950C', '#8B6508', '#FFFAF0', '#EED8AE', '#FDF5E6', '#F5DEB3', '#FFE7BA', '#CDBA96', '#FFA500', '#FFA500', '#EE9A00', '#CD8500', '#8B5A00', '#8B7E66', '#FFE4B5', '#FFEFD5', '#CDB38B', '#FFEBCD', '#FFDEAD', '#FFDEAD', '#EECFA1', '#8B795E', '#8B8378', '#FAEBD7', '#D2B48C', '#8B7D6B', '#DEB887', '#EEDFCC', '#FFD39B', '#CDAA7D', '#EEC591', '#FFEFDB', '#8B7355', '#CDC0B0', '#FF8C00', '#EED5B7', '#FFE4C4', '#FFE4C4', '#CDB79E', '#FF7F00', '#FAF0E6', '#EE7600', '#CD6600', '#8B4500', '#CD853F', '#FFA54F', '#EE9A49', '#CD853F', '#8B5A2B', '#FFDAB9', '#FFDAB9', '#8B7765', '#EECBAD', '#CDAF95', '#F4A460', '#8B8682', '#EEE5DE', '#CDC5BF', '#D2691E', '#FF7F24', '#EE7621', '#CD661D', '#8B4513', '#8B4513', '#FFF5EE', '#FFF5EE', '#8B4726', '#A0522D', '#FF8247', '#EE7942', '#CD6839', '#CD8162', '#FFA07A', '#FFA07A', '#8B5742', '#EE9572', '#FF7F50', '#FF4500', '#FF4500', '#EE4000', '#CD3700', '#8B2500', '#E9967A', '#FF8C69', '#EE8262', '#CD7054', '#8B4C39', '#FF7256', '#EE6A50', '#CD5B45', '#8B3E2F', '#8B3626', '#FF6347', '#FF6347', '#EE5C42', '#CD4F39', '#8B7D7B', '#EED5D2', '#FFE4E1', '#FFE4E1', '#FA8072', '#CDB7B5', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FCFCFC', '#FCFCFC', '#FAFAFA', '#FAFAFA', '#F7F7F7', '#F7F7F7', '#F5F5F5', '#F5F5F5', '#F5F5F5', '#F2F2F2', '#F2F2F2', '#F0F0F0', '#F0F0F0', '#EDEDED', '#EDEDED', '#EBEBEB', '#EBEBEB', '#E8E8E8', '#E8E8E8', '#E5E5E5', '#E5E5E5', '#E3E3E3', '#E3E3E3', '#E0E0E0', '#E0E0E0', '#DEDEDE', '#DEDEDE', '#DCDCDC', '#DBDBDB', '#DBDBDB', '#D9D9D9', '#D9D9D9', '#D6D6D6', '#D6D6D6', '#D4D4D4', '#D4D4D4', '#D3D3D3', '#D3D3D3', '#D1D1D1', '#D1D1D1', '#CFCFCF', '#CFCFCF', '#CCCCCC', '#CCCCCC', '#C9C9C9', '#C9C9C9', '#C7C7C7', '#C7C7C7', '#C4C4C4', '#C4C4C4', '#C2C2C2', '#C2C2C2', '#C0C0C0', '#BFBFBF', '#BFBFBF', '#BDBDBD', '#BDBDBD', '#BABABA', '#BABABA', '#B8B8B8', '#B8B8B8', '#B5B5B5', '#B5B5B5', '#B3B3B3', '#B3B3B3', '#B0B0B0', '#B0B0B0', '#ADADAD', '#ADADAD', '#ABABAB', '#ABABAB', '#A9A9A9', '#A9A9A9', '#A8A8A8', '#A8A8A8', '#A6A6A6', '#A6A6A6', '#A3A3A3', '#A3A3A3', '#A1A1A1', '#A1A1A1', '#9E9E9E', '#9E9E9E', '#9C9C9C', '#9C9C9C', '#999999', '#999999', '#969696', '#969696', '#949494', '#949494', '#919191', '#919191', '#8F8F8F', '#8F8F8F', '#8C8C8C', '#8C8C8C', '#8A8A8A', '#8A8A8A', '#878787', '#878787', '#858585', '#858585', '#828282', '#828282', '#808080', '#7F7F7F', '#7F7F7F', '#7E7E7E', '#7D7D7D', '#7D7D7D', '#7A7A7A', '#7A7A7A', '#787878', '#787878', '#757575', '#757575', '#737373', '#737373', '#707070', '#707070', '#6E6E6E', '#6E6E6E', '#6B6B6B', '#6B6B6B', '#696969', '#696969', '#696969', '#696969', '#666666', '#666666', '#636363', '#636363', '#616161', '#616161', '#5E5E5E', '#5E5E5E', '#5C5C5C', '#5C5C5C', '#595959', '#595959', '#575757', '#575757', '#545454', '#545454', '#525252', '#525252', '#4F4F4F', '#4F4F4F', '#4D4D4D', '#4D4D4D', '#4A4A4A', '#4A4A4A', '#474747', '#474747', '#454545', '#454545', '#424242', '#424242', '#404040', '#404040', '#3D3D3D', '#3D3D3D', '#3B3B3B', '#3B3B3B', '#383838', '#383838', '#363636', '#363636', '#333333', '#333333', '#303030', '#303030', '#2E2E2E', '#2E2E2E', '#2B2B2B', '#2B2B2B', '#292929', '#292929', '#262626', '#262626', '#242424', '#242424', '#212121', '#212121', '#1F1F1F', '#1F1F1F', '#1C1C1C', '#1C1C1C', '#1A1A1A', '#1A1A1A', '#171717', '#171717', '#141414', '#141414', '#121212', '#121212', '#0F0F0F', '#0F0F0F', '#0D0D0D', '#0D0D0D', '#0A0A0A', '#0A0A0A', '#080808', '#080808', '#050505', '#050505', '#030303', '#030303', '#000000', '#000000', '#000000', '#000000', '#000000', '#000000'] \ No newline at end of file diff --git a/share/frontend/imgrid/colors/js/wrkshp/maker.py b/share/frontend/imgrid/colors/js/wrkshp/maker.py deleted file mode 100755 index 65209aa..0000000 --- a/share/frontend/imgrid/colors/js/wrkshp/maker.py +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/python2.7 - - - -hexlist = ['#FFFAFA', '#FFFAFA', '#EEE9E9', '#FFC1C1', '#EEB4B4', '#CDC9C9', '#F08080', '#FF6A6A', '#CD9B9B', '#EE6363', '#BC8F8F', '#FF4040', '#FF3030', '#EE3B3B', '#CD5C5C', '#CD5555', '#EE2C2C', '#8B8989', '#CD3333', '#FF0000', '#FF0000', '#8B6969', '#CD2626', '#EE0000', '#B22222', '#A52A2A', '#CD0000', '#8B3A3A', '#8B2323', '#8B1A1A', '#8B0000', '#8B0000', '#800000', '#FFAEB9', '#CD8C95', '#8B5F65', '#EEA2AD', '#FFB6C1', '#FFC0CB', '#DC143C', '#FFB5C5', '#EEA9B8', '#CD919E', '#8B636C', '#8B475D', '#DB7093', '#EE799F', '#FF82AB', '#CD6889', '#FFF0F5', '#FFF0F5', '#CDC1C5', '#EEE0E5', '#8B8386', '#B03060', '#CD6090', '#CD3278', '#FF3E96', '#EE3A8C', '#8B2252', '#EE6AA7', '#FF6EB4', '#8B3A62', '#FF69B4', '#FF1493', '#FF1493', '#EE1289', '#CD1076', '#8B0A50', '#FF34B3', '#EE30A7', '#CD2990', '#8B1C62', '#C71585', '#D02090', '#EE7AE9', '#DA70D6', '#FF83FA', '#CD69C9', '#8B4789', '#FFE1FF', '#EED2EE', '#FFBBFF', '#EEAEEE', '#D8BFD8', '#CDB5CD', '#DDA0DD', '#EE82EE', '#CD96CD', '#8B7B8B', '#FF00FF', '#FF00FF', '#FF00FF', '#8B668B', '#EE00EE', '#CD00CD', '#8B008B', '#8B008B', '#800080', '#BA55D3', '#E066FF', '#D15FEE', '#B452CD', '#7A378B', '#9400D3', '#9932CC', '#BF3EFF', '#9A32CD', '#B23AEE', '#68228B', '#A020F0', '#4B0082', '#8A2BE2', '#912CEE', '#7D26CD', '#551A8B', '#9B30FF', '#9370DB', '#AB82FF', '#9F79EE', '#8968CD', '#5D478B', '#483D8B', '#8470FF', '#7B68EE', '#6A5ACD', '#836FFF', '#7A67EE', '#6959CD', '#473C8B', '#F8F8FF', '#E6E6FA', '#0000FF', '#0000FF', '#0000EE', '#0000CD', '#0000CD', '#00008B', '#00008B', '#191970', '#000080', '#000080', '#4169E1', '#4876FF', '#436EEE', '#3A5FCD', '#27408B', '#6495ED', '#B0C4DE', '#CAE1FF', '#BCD2EE', '#A2B5CD', '#6E7B8B', '#6C7B8B', '#C6E2FF', '#B9D3EE', '#9FB6CD', '#778899', '#778899', '#708090', '#708090', '#1E90FF', '#1E90FF', '#1C86EE', '#104E8B', '#1874CD', '#F0F8FF', '#36648B', '#4682B4', '#63B8FF', '#5CACEE', '#4F94CD', '#4A708B', '#87CEFF', '#7EC0EE', '#6CA6CD', '#87CEFA', '#607B8B', '#B0E2FF', '#A4D3EE', '#8DB6CD', '#87CEEB', '#9AC0CD', '#00BFFF', '#00BFFF', '#00B2EE', '#00688B', '#009ACD', '#BFEFFF', '#B2DFEE', '#ADD8E6', '#68838B', '#B0E0E6', '#98F5FF', '#8EE5EE', '#7AC5CD', '#53868B', '#00F5FF', '#00E5EE', '#00C5CD', '#00868B', '#5F9EA0', '#5F9EA0', '#00CED1', '#F0FFFF', '#F0FFFF', '#E0FFFF', '#E0FFFF', '#E0EEEE', '#D1EEEE', '#BBFFFF', '#AFEEEE', '#AEEEEE', '#97FFFF', '#C1CDCD', '#B4CDCD', '#8DEEEE', '#96CDCD', '#79CDCD', '#838B8B', '#7A8B8B', '#00FFFF', '#00FFFF', '#00FFFF', '#668B8B', '#00EEEE', '#528B8B', '#00CDCD', '#008B8B', '#008B8B', '#008080', '#2F4F4F', '#2F4F4F', '#48D1CC', '#20B2AA', '#40E0D0', '#458B74', '#7FFFD4', '#7FFFD4', '#76EEC6', '#66CDAA', '#66CDAA', '#00FA9A', '#F5FFFA', '#00FF7F', '#00FF7F', '#00EE76', '#00CD66', '#008B45', '#3CB371', '#2E8B57', '#43CD80', '#54FF9F', '#2E8B57', '#4EEE94', '#32814B', '#F0FFF0', '#F0FFF0', '#E0EEE0', '#C1FFC1', '#B4EEB4', '#9AFF9A', '#98FB98', '#C1CDC1', '#90EE90', '#90EE90', '#9BCD9B', '#8FBC8F', '#7CCD7C', '#838B83', '#00FF00', '#00FF00', '#32CD32', '#698B69', '#00EE00', '#548B54', '#00CD00', '#228B22', '#008B00', '#008000', '#006400', '#7CFC00', '#7FFF00', '#7FFF00', '#76EE00', '#66CD00', '#458B00', '#ADFF2F', '#A2CD5A', '#CAFF70', '#BCEE68', '#6E8B3D', '#556B2F', '#6B8E23', '#C0FF3E', '#B3EE3A', '#9ACD32', '#9ACD32', '#698B22', '#FFFFF0', '#FFFFF0', '#FFFFE0', '#FFFFE0', '#F5F5DC', '#EEEEE0', '#FAFAD2', '#EEEED1', '#CDCDC1', '#CDCDB4', '#8B8B83', '#8B8B7A', '#FFFF00', '#FFFF00', '#EEEE00', '#CDCD00', '#8B8B00', '#808000', '#BDB76B', '#EEE685', '#8B8970', '#FFF68F', '#CDC673', '#8B864E', '#EEE8AA', '#FFFACD', '#FFFACD', '#F0E68C', '#CDC9A5', '#EEE9BF', '#D1C166', '#8B8878', '#FFD700', '#FFD700', '#EEC900', '#CDAD00', '#8B7500', '#EEDD82', '#8B814C', '#FFEC8B', '#CDBE70', '#EEDC82', '#CDC8B1', '#EEE8CD', '#FFF8DC', '#FFF8DC', '#DAA520', '#FFC125', '#EEB422', '#CD9B1D', '#8B6914', '#B8860B', '#FFB90F', '#EEAD0E', '#CD950C', '#8B6508', '#FFFAF0', '#EED8AE', '#FDF5E6', '#F5DEB3', '#FFE7BA', '#CDBA96', '#FFA500', '#FFA500', '#EE9A00', '#CD8500', '#8B5A00', '#8B7E66', '#FFE4B5', '#FFEFD5', '#CDB38B', '#FFEBCD', '#FFDEAD', '#FFDEAD', '#EECFA1', '#8B795E', '#8B8378', '#FAEBD7', '#D2B48C', '#8B7D6B', '#DEB887', '#EEDFCC', '#FFD39B', '#CDAA7D', '#EEC591', '#FFEFDB', '#8B7355', '#CDC0B0', '#FF8C00', '#EED5B7', '#FFE4C4', '#FFE4C4', '#CDB79E', '#FF7F00', '#FAF0E6', '#EE7600', '#CD6600', '#8B4500', '#CD853F', '#FFA54F', '#EE9A49', '#CD853F', '#8B5A2B', '#FFDAB9', '#FFDAB9', '#8B7765', '#EECBAD', '#CDAF95', '#F4A460', '#8B8682', '#EEE5DE', '#CDC5BF', '#D2691E', '#FF7F24', '#EE7621', '#CD661D', '#8B4513', '#8B4513', '#FFF5EE', '#FFF5EE', '#8B4726', '#A0522D', '#FF8247', '#EE7942', '#CD6839', '#CD8162', '#FFA07A', '#FFA07A', '#8B5742', '#EE9572', '#FF7F50', '#FF4500', '#FF4500', '#EE4000', '#CD3700', '#8B2500', '#E9967A', '#FF8C69', '#EE8262', '#CD7054', '#8B4C39', '#FF7256', '#EE6A50', '#CD5B45', '#8B3E2F', '#8B3626', '#FF6347', '#FF6347', '#EE5C42', '#CD4F39', '#8B7D7B', '#EED5D2', '#FFE4E1', '#FFE4E1', '#FA8072', '#CDB7B5', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FCFCFC', '#FCFCFC', '#FAFAFA', '#FAFAFA', '#F7F7F7', '#F7F7F7', '#F5F5F5', '#F5F5F5', '#F5F5F5', '#F2F2F2', '#F2F2F2', '#F0F0F0', '#F0F0F0', '#EDEDED', '#EDEDED', '#EBEBEB', '#EBEBEB', '#E8E8E8', '#E8E8E8', '#E5E5E5', '#E5E5E5', '#E3E3E3', '#E3E3E3', '#E0E0E0', '#E0E0E0', '#DEDEDE', '#DEDEDE', '#DCDCDC', '#DBDBDB', '#DBDBDB', '#D9D9D9', '#D9D9D9', '#D6D6D6', '#D6D6D6', '#D4D4D4', '#D4D4D4', '#D3D3D3', '#D3D3D3', '#D1D1D1', '#D1D1D1', '#CFCFCF', '#CFCFCF', '#CCCCCC', '#CCCCCC', '#C9C9C9', '#C9C9C9', '#C7C7C7', '#C7C7C7', '#C4C4C4', '#C4C4C4', '#C2C2C2', '#C2C2C2', '#C0C0C0', '#BFBFBF', '#BFBFBF', '#BDBDBD', '#BDBDBD', '#BABABA', '#BABABA', '#B8B8B8', '#B8B8B8', '#B5B5B5', '#B5B5B5', '#B3B3B3', '#B3B3B3', '#B0B0B0', '#B0B0B0', '#ADADAD', '#ADADAD', '#ABABAB', '#ABABAB', '#A9A9A9', '#A9A9A9', '#A8A8A8', '#A8A8A8', '#A6A6A6', '#A6A6A6', '#A3A3A3', '#A3A3A3', '#A1A1A1', '#A1A1A1', '#9E9E9E', '#9E9E9E', '#9C9C9C', '#9C9C9C', '#999999', '#999999', '#969696', '#969696', '#949494', '#949494', '#919191', '#919191', '#8F8F8F', '#8F8F8F', '#8C8C8C', '#8C8C8C', '#8A8A8A', '#8A8A8A', '#878787', '#878787', '#858585', '#858585', '#828282', '#828282', '#808080', '#7F7F7F', '#7F7F7F', '#7E7E7E', '#7D7D7D', '#7D7D7D', '#7A7A7A', '#7A7A7A', '#787878', '#787878', '#757575', '#757575', '#737373', '#737373', '#707070', '#707070', '#6E6E6E', '#6E6E6E', '#6B6B6B', '#6B6B6B', '#696969', '#696969', '#696969', '#696969', '#666666', '#666666', '#636363', '#636363', '#616161', '#616161', '#5E5E5E', '#5E5E5E', '#5C5C5C', '#5C5C5C', '#595959', '#595959', '#575757', '#575757', '#545454', '#545454', '#525252', '#525252', '#4F4F4F', '#4F4F4F', '#4D4D4D', '#4D4D4D', '#4A4A4A', '#4A4A4A', '#474747', '#474747', '#454545', '#454545', '#424242', '#424242', '#404040', '#404040', '#3D3D3D', '#3D3D3D', '#3B3B3B', '#3B3B3B', '#383838', '#383838', '#363636', '#363636', '#333333', '#333333', '#303030', '#303030', '#2E2E2E', '#2E2E2E', '#2B2B2B', '#2B2B2B', '#292929', '#292929', '#262626', '#262626', '#242424', '#242424', '#212121', '#212121', '#1F1F1F', '#1F1F1F', '#1C1C1C', '#1C1C1C', '#1A1A1A', '#1A1A1A', '#171717', '#171717', '#141414', '#141414', '#121212', '#121212', '#0F0F0F', '#0F0F0F', '#0D0D0D', '#0D0D0D', '#0A0A0A', '#0A0A0A', '#080808', '#080808', '#050505', '#050505', '#030303', '#030303', '#000000', '#000000', '#000000', '#000000', '#000000', '#000000'] -rgblist = ['rgb(255, 250, 250)', 'rgb(255, 250, 250)', 'rgb(238, 233, 233)', 'rgb(255, 193, 193)', 'rgb(238, 180, 180)', 'rgb(205, 201, 201)', 'rgb(240, 128, 128)', 'rgb(255, 106, 106)', 'rgb(205, 155, 155)', 'rgb(238, 99, 99)', 'rgb(188, 143, 143)', 'rgb(255, 64, 64)', 'rgb(255, 48, 48)', 'rgb(238, 59, 59)', 'rgb(205, 92, 92)', 'rgb(205, 85, 85)', 'rgb(238, 44, 44)', 'rgb(139, 137, 137)', 'rgb(205, 51, 51)', 'rgb(255, 0, 0)', 'rgb(255, 0, 0)', 'rgb(139, 105, 105)', 'rgb(205, 38, 38)', 'rgb(238, 0, 0)', 'rgb(178, 34, 34)', 'rgb(165, 42, 42)', 'rgb(205, 0, 0)', 'rgb(139, 58, 58)', 'rgb(139, 35, 35)', 'rgb(139, 26, 26)', 'rgb(139, 0, 0)', 'rgb(139, 0, 0)', 'rgb(128, 0, 0)', 'rgb(255, 174, 185)', 'rgb(205, 140, 149)', 'rgb(139, 95, 101)', 'rgb(238, 162, 173)', 'rgb(255, 182, 193)', 'rgb(255, 192, 203)', 'rgb(220, 20, 60)', 'rgb(255, 181, 197)', 'rgb(238, 169, 184)', 'rgb(205, 145, 158)', 'rgb(139, 99, 108)', 'rgb(139, 71, 93)', 'rgb(219, 112, 147)', 'rgb(238, 121, 159)', 'rgb(255, 130, 171)', 'rgb(205, 104, 137)', 'rgb(255, 240, 245)', 'rgb(255, 240, 245)', 'rgb(205, 193, 197)', 'rgb(238, 224, 229)', 'rgb(139, 131, 134)', 'rgb(176, 48, 96)', 'rgb(205, 96, 144)', 'rgb(205, 50, 120)', 'rgb(255, 62, 150)', 'rgb(238, 58, 140)', 'rgb(139, 34, 82)', 'rgb(238, 106, 167)', 'rgb(255, 110, 180)', 'rgb(139, 58, 98)', 'rgb(255, 105, 180)', 'rgb(255, 20, 147)', 'rgb(255, 20, 147)', 'rgb(238, 18, 137)', 'rgb(205, 16, 118)', 'rgb(139, 10, 80)', 'rgb(255, 52, 179)', 'rgb(238, 48, 167)', 'rgb(205, 41, 144)', 'rgb(139, 28, 98)', 'rgb(199, 21, 133)', 'rgb(208, 32, 144)', 'rgb(238, 122, 233)', 'rgb(218, 112, 214)', 'rgb(255, 131, 250)', 'rgb(205, 105, 201)', 'rgb(139, 71, 137)', 'rgb(255, 225, 255)', 'rgb(238, 210, 238)', 'rgb(255, 187, 255)', 'rgb(238, 174, 238)', 'rgb(216, 191, 216)', 'rgb(205, 181, 205)', 'rgb(221, 160, 221)', 'rgb(238, 130, 238)', 'rgb(205, 150, 205)', 'rgb(139, 123, 139)', 'rgb(255, 0, 255)', 'rgb(255, 0, 255)', 'rgb(255, 0, 255)', 'rgb(139, 102, 139)', 'rgb(238, 0, 238)', 'rgb(205, 0, 205)', 'rgb(139, 0, 139)', 'rgb(139, 0, 139)', 'rgb(128, 0, 128)', 'rgb(186, 85, 211)', 'rgb(224, 102, 255)', 'rgb(209, 95, 238)', 'rgb(180, 82, 205)', 'rgb(122, 55, 139)', 'rgb(148, 0, 211)', 'rgb(153, 50, 204)', 'rgb(191, 62, 255)', 'rgb(154, 50, 205)', 'rgb(178, 58, 238)', 'rgb(104, 34, 139)', 'rgb(160, 32, 240)', 'rgb( 75, 0, 130)', 'rgb(138, 43, 226)', 'rgb(145, 44, 238)', 'rgb(125, 38, 205)', 'rgb( 85, 26, 139)', 'rgb(155, 48, 255)', 'rgb(147, 112, 219)', 'rgb(171, 130, 255)', 'rgb(159, 121, 238)', 'rgb(137, 104, 205)', 'rgb( 93, 71, 139)', 'rgb( 72, 61, 139)', 'rgb(132, 112, 255)', 'rgb(123, 104, 238)', 'rgb(106, 90, 205)', 'rgb(131, 111, 255)', 'rgb(122, 103, 238)', 'rgb(105, 89, 205)', 'rgb( 71, 60, 139)', 'rgb(248, 248, 255)', 'rgb(230, 230, 250)', 'rgb( 0, 0, 255)', 'rgb( 0, 0, 255)', 'rgb( 0, 0, 238)', 'rgb( 0, 0, 205)', 'rgb( 0, 0, 205)', 'rgb( 0, 0, 139)', 'rgb( 0, 0, 139)', 'rgb( 25, 25, 112)', 'rgb( 0, 0, 128)', 'rgb( 0, 0, 128)', 'rgb( 65, 105, 225)', 'rgb( 72, 118, 255)', 'rgb( 67, 110, 238)', 'rgb( 58, 95, 205)', 'rgb( 39, 64, 139)', 'rgb(100, 149, 237)', 'rgb(176, 196, 222)', 'rgb(202, 225, 255)', 'rgb(188, 210, 238)', 'rgb(162, 181, 205)', 'rgb(110, 123, 139)', 'rgb(108, 123, 139)', 'rgb(198, 226, 255)', 'rgb(185, 211, 238)', 'rgb(159, 182, 205)', 'rgb(119, 136, 153)', 'rgb(119, 136, 153)', 'rgb(112, 128, 144)', 'rgb(112, 128, 144)', 'rgb( 30, 144, 255)', 'rgb( 30, 144, 255)', 'rgb( 28, 134, 238)', 'rgb( 16, 78, 139)', 'rgb( 24, 116, 205)', 'rgb(240, 248, 255)', 'rgb( 54, 100, 139)', 'rgb( 70, 130, 180)', 'rgb( 99, 184, 255)', 'rgb( 92, 172, 238)', 'rgb( 79, 148, 205)', 'rgb( 74, 112, 139)', 'rgb(135, 206, 255)', 'rgb(126, 192, 238)', 'rgb(108, 166, 205)', 'rgb(135, 206, 250)', 'rgb( 96, 123, 139)', 'rgb(176, 226, 255)', 'rgb(164, 211, 238)', 'rgb(141, 182, 205)', 'rgb(135, 206, 235)', 'rgb(154, 192, 205)', 'rgb( 0, 191, 255)', 'rgb( 0, 191, 255)', 'rgb( 0, 178, 238)', 'rgb( 0, 104, 139)', 'rgb( 0, 154, 205)', 'rgb(191, 239, 255)', 'rgb(178, 223, 238)', 'rgb(173, 216, 230)', 'rgb(104, 131, 139)', 'rgb(176, 224, 230)', 'rgb(152, 245, 255)', 'rgb(142, 229, 238)', 'rgb(122, 197, 205)', 'rgb( 83, 134, 139)', 'rgb( 0, 245, 255)', 'rgb( 0, 229, 238)', 'rgb( 0, 197, 205)', 'rgb( 0, 134, 139)', 'rgb( 95, 158, 160)', 'rgb( 95, 158, 160)', 'rgb( 0, 206, 209)', 'rgb(240, 255, 255)', 'rgb(240, 255, 255)', 'rgb(224, 255, 255)', 'rgb(224, 255, 255)', 'rgb(224, 238, 238)', 'rgb(209, 238, 238)', 'rgb(187, 255, 255)', 'rgb(175, 238, 238)', 'rgb(174, 238, 238)', 'rgb(151, 255, 255)', 'rgb(193, 205, 205)', 'rgb(180, 205, 205)', 'rgb(141, 238, 238)', 'rgb(150, 205, 205)', 'rgb(121, 205, 205)', 'rgb(131, 139, 139)', 'rgb(122, 139, 139)', 'rgb( 0, 255, 255)', 'rgb( 0, 255, 255)', 'rgb( 0, 255, 255)', 'rgb(102, 139, 139)', 'rgb( 0, 238, 238)', 'rgb( 82, 139, 139)', 'rgb( 0, 205, 205)', 'rgb( 0, 139, 139)', 'rgb( 0, 139, 139)', 'rgb( 0, 128, 128)', 'rgb( 47, 79, 79)', 'rgb( 47, 79, 79)', 'rgb( 72, 209, 204)', 'rgb( 32, 178, 170)', 'rgb( 64, 224, 208)', 'rgb( 69, 139, 116)', 'rgb(127, 255, 212)', 'rgb(127, 255, 212)', 'rgb(118, 238, 198)', 'rgb(102, 205, 170)', 'rgb(102, 205, 170)', 'rgb( 0, 250, 154)', 'rgb(245, 255, 250)', 'rgb( 0, 255, 127)', 'rgb( 0, 255, 127)', 'rgb( 0, 238, 118)', 'rgb( 0, 205, 102)', 'rgb( 0, 139, 69)', 'rgb( 60, 179, 113)', 'rgb( 46, 139, 87)', 'rgb( 67, 205, 128)', 'rgb( 84, 255, 159)', 'rgb( 46, 139, 87)', 'rgb( 78, 238, 148)', 'rgb( 50, 129, 75)', 'rgb(240, 255, 240)', 'rgb(240, 255, 240)', 'rgb(224, 238, 224)', 'rgb(193, 255, 193)', 'rgb(180, 238, 180)', 'rgb(154, 255, 154)', 'rgb(152, 251, 152)', 'rgb(193, 205, 193)', 'rgb(144, 238, 144)', 'rgb(144, 238, 144)', 'rgb(155, 205, 155)', 'rgb(143, 188, 143)', 'rgb(124, 205, 124)', 'rgb(131, 139, 131)', 'rgb( 0, 255, 0)', 'rgb( 0, 255, 0)', 'rgb( 50, 205, 50)', 'rgb(105, 139, 105)', 'rgb( 0, 238, 0)', 'rgb( 84, 139, 84)', 'rgb( 0, 205, 0)', 'rgb( 34, 139, 34)', 'rgb( 0, 139, 0)', 'rgb( 0, 128, 0)', 'rgb( 0, 100, 0)', 'rgb(124, 252, 0)', 'rgb(127, 255, 0)', 'rgb(127, 255, 0)', 'rgb(118, 238, 0)', 'rgb(102, 205, 0)', 'rgb( 69, 139, 0)', 'rgb(173, 255, 47)', 'rgb(162, 205, 90)', 'rgb(202, 255, 112)', 'rgb(188, 238, 104)', 'rgb(110, 139, 61)', 'rgb( 85, 107, 47)', 'rgb(107, 142, 35)', 'rgb(192, 255, 62)', 'rgb(179, 238, 58)', 'rgb(154, 205, 50)', 'rgb(154, 205, 50)', 'rgb(105, 139, 34)', 'rgb(255, 255, 240)', 'rgb(255, 255, 240)', 'rgb(255, 255, 224)', 'rgb(255, 255, 224)', 'rgb(245, 245, 220)', 'rgb(238, 238, 224)', 'rgb(250, 250, 210)', 'rgb(238, 238, 209)', 'rgb(205, 205, 193)', 'rgb(205, 205, 180)', 'rgb(139, 139, 131)', 'rgb(139, 139, 122)', 'rgb(255, 255, 0)', 'rgb(255, 255, 0)', 'rgb(238, 238, 0)', 'rgb(205, 205, 0)', 'rgb(139, 139, 0)', 'rgb(128, 128, 0)', 'rgb(189, 183, 107)', 'rgb(238, 230, 133)', 'rgb(139, 137, 112)', 'rgb(255, 246, 143)', 'rgb(205, 198, 115)', 'rgb(139, 134, 78)', 'rgb(238, 232, 170)', 'rgb(255, 250, 205)', 'rgb(255, 250, 205)', 'rgb(240, 230, 140)', 'rgb(205, 201, 165)', 'rgb(238, 233, 191)', 'rgb(209, 193, 102)', 'rgb(139, 136, 120)', 'rgb(255, 215, 0)', 'rgb(255, 215, 0)', 'rgb(238, 201, 0)', 'rgb(205, 173, 0)', 'rgb(139, 117, 0)', 'rgb(238, 221, 130)', 'rgb(139, 129, 76)', 'rgb(255, 236, 139)', 'rgb(205, 190, 112)', 'rgb(238, 220, 130)', 'rgb(205, 200, 177)', 'rgb(238, 232, 205)', 'rgb(255, 248, 220)', 'rgb(255, 248, 220)', 'rgb(218, 165, 32)', 'rgb(255, 193, 37)', 'rgb(238, 180, 34)', 'rgb(205, 155, 29)', 'rgb(139, 105, 20)', 'rgb(184, 134, 11)', 'rgb(255, 185, 15)', 'rgb(238, 173, 14)', 'rgb(205, 149, 12)', 'rgb(139, 101, 8)', 'rgb(255, 250, 240)', 'rgb(238, 216, 174)', 'rgb(253, 245, 230)', 'rgb(245, 222, 179)', 'rgb(255, 231, 186)', 'rgb(205, 186, 150)', 'rgb(255, 165, 0)', 'rgb(255, 165, 0)', 'rgb(238, 154, 0)', 'rgb(205, 133, 0)', 'rgb(139, 90, 0)', 'rgb(139, 126, 102)', 'rgb(255, 228, 181)', 'rgb(255, 239, 213)', 'rgb(205, 179, 139)', 'rgb(255, 235, 205)', 'rgb(255, 222, 173)', 'rgb(255, 222, 173)', 'rgb(238, 207, 161)', 'rgb(139, 121, 94)', 'rgb(139, 131, 120)', 'rgb(250, 235, 215)', 'rgb(210, 180, 140)', 'rgb(139, 125, 107)', 'rgb(222, 184, 135)', 'rgb(238, 223, 204)', 'rgb(255, 211, 155)', 'rgb(205, 170, 125)', 'rgb(238, 197, 145)', 'rgb(255, 239, 219)', 'rgb(139, 115, 85)', 'rgb(205, 192, 176)', 'rgb(255, 140, 0)', 'rgb(238, 213, 183)', 'rgb(255, 228, 196)', 'rgb(255, 228, 196)', 'rgb(205, 183, 158)', 'rgb(255, 127, 0)', 'rgb(250, 240, 230)', 'rgb(238, 118, 0)', 'rgb(205, 102, 0)', 'rgb(139, 69, 0)', 'rgb(205, 133, 63)', 'rgb(255, 165, 79)', 'rgb(238, 154, 73)', 'rgb(205, 133, 63)', 'rgb(139, 90, 43)', 'rgb(255, 218, 185)', 'rgb(255, 218, 185)', 'rgb(139, 119, 101)', 'rgb(238, 203, 173)', 'rgb(205, 175, 149)', 'rgb(244, 164, 96)', 'rgb(139, 134, 130)', 'rgb(238, 229, 222)', 'rgb(205, 197, 191)', 'rgb(210, 105, 30)', 'rgb(255, 127, 36)', 'rgb(238, 118, 33)', 'rgb(205, 102, 29)', 'rgb(139, 69, 19)', 'rgb(139, 69, 19)', 'rgb(255, 245, 238)', 'rgb(255, 245, 238)', 'rgb(139, 71, 38)', 'rgb(160, 82, 45)', 'rgb(255, 130, 71)', 'rgb(238, 121, 66)', 'rgb(205, 104, 57)', 'rgb(205, 129, 98)', 'rgb(255, 160, 122)', 'rgb(255, 160, 122)', 'rgb(139, 87, 66)', 'rgb(238, 149, 114)', 'rgb(255, 127, 80)', 'rgb(255, 69, 0)', 'rgb(255, 69, 0)', 'rgb(238, 64, 0)', 'rgb(205, 55, 0)', 'rgb(139, 37, 0)', 'rgb(233, 150, 122)', 'rgb(255, 140, 105)', 'rgb(238, 130, 98)', 'rgb(205, 112, 84)', 'rgb(139, 76, 57)', 'rgb(255, 114, 86)', 'rgb(238, 106, 80)', 'rgb(205, 91, 69)', 'rgb(139, 62, 47)', 'rgb(139, 54, 38)', 'rgb(255, 99, 71)', 'rgb(255, 99, 71)', 'rgb(238, 92, 66)', 'rgb(205, 79, 57)', 'rgb(139, 125, 123)', 'rgb(238, 213, 210)', 'rgb(255, 228, 225)', 'rgb(255, 228, 225)', 'rgb(250, 128, 114)', 'rgb(205, 183, 181)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(252, 252, 252)', 'rgb(252, 252, 252)', 'rgb(250, 250, 250)', 'rgb(250, 250, 250)', 'rgb(247, 247, 247)', 'rgb(247, 247, 247)', 'rgb(245, 245, 245)', 'rgb(245, 245, 245)', 'rgb(245, 245, 245)', 'rgb(242, 242, 242)', 'rgb(242, 242, 242)', 'rgb(240, 240, 240)', 'rgb(240, 240, 240)', 'rgb(237, 237, 237)', 'rgb(237, 237, 237)', 'rgb(235, 235, 235)', 'rgb(235, 235, 235)', 'rgb(232, 232, 232)', 'rgb(232, 232, 232)', 'rgb(229, 229, 229)', 'rgb(229, 229, 229)', 'rgb(227, 227, 227)', 'rgb(227, 227, 227)', 'rgb(224, 224, 224)', 'rgb(224, 224, 224)', 'rgb(222, 222, 222)', 'rgb(222, 222, 222)', 'rgb(220, 220, 220)', 'rgb(219, 219, 219)', 'rgb(219, 219, 219)', 'rgb(217, 217, 217)', 'rgb(217, 217, 217)', 'rgb(214, 214, 214)', 'rgb(214, 214, 214)', 'rgb(212, 212, 212)', 'rgb(212, 212, 212)', 'rgb(211, 211, 211)', 'rgb(211, 211, 211)', 'rgb(209, 209, 209)', 'rgb(209, 209, 209)', 'rgb(207, 207, 207)', 'rgb(207, 207, 207)', 'rgb(204, 204, 204)', 'rgb(204, 204, 204)', 'rgb(201, 201, 201)', 'rgb(201, 201, 201)', 'rgb(199, 199, 199)', 'rgb(199, 199, 199)', 'rgb(196, 196, 196)', 'rgb(196, 196, 196)', 'rgb(194, 194, 194)', 'rgb(194, 194, 194)', 'rgb(192, 192, 192)', 'rgb(191, 191, 191)', 'rgb(191, 191, 191)', 'rgb(189, 189, 189)', 'rgb(189, 189, 189)', 'rgb(186, 186, 186)', 'rgb(186, 186, 186)', 'rgb(184, 184, 184)', 'rgb(184, 184, 184)', 'rgb(181, 181, 181)', 'rgb(181, 181, 181)', 'rgb(179, 179, 179)', 'rgb(179, 179, 179)', 'rgb(176, 176, 176)', 'rgb(176, 176, 176)', 'rgb(173, 173, 173)', 'rgb(173, 173, 173)', 'rgb(171, 171, 171)', 'rgb(171, 171, 171)', 'rgb(169, 169, 169)', 'rgb(169, 169, 169)', 'rgb(168, 168, 168)', 'rgb(168, 168, 168)', 'rgb(166, 166, 166)', 'rgb(166, 166, 166)', 'rgb(163, 163, 163)', 'rgb(163, 163, 163)', 'rgb(161, 161, 161)', 'rgb(161, 161, 161)', 'rgb(158, 158, 158)', 'rgb(158, 158, 158)', 'rgb(156, 156, 156)', 'rgb(156, 156, 156)', 'rgb(153, 153, 153)', 'rgb(153, 153, 153)', 'rgb(150, 150, 150)', 'rgb(150, 150, 150)', 'rgb(148, 148, 148)', 'rgb(148, 148, 148)', 'rgb(145, 145, 145)', 'rgb(145, 145, 145)', 'rgb(143, 143, 143)', 'rgb(143, 143, 143)', 'rgb(140, 140, 140)', 'rgb(140, 140, 140)', 'rgb(138, 138, 138)', 'rgb(138, 138, 138)', 'rgb(135, 135, 135)', 'rgb(135, 135, 135)', 'rgb(133, 133, 133)', 'rgb(133, 133, 133)', 'rgb(130, 130, 130)', 'rgb(130, 130, 130)', 'rgb(128, 128, 128)', 'rgb(127, 127, 127)', 'rgb(127, 127, 127)', 'rgb(126, 126, 126)', 'rgb(125, 125, 125)', 'rgb(125, 125, 125)', 'rgb(122, 122, 122)', 'rgb(122, 122, 122)', 'rgb(120, 120, 120)', 'rgb(120, 120, 120)', 'rgb(117, 117, 117)', 'rgb(117, 117, 117)', 'rgb(115, 115, 115)', 'rgb(115, 115, 115)', 'rgb(112, 112, 112)', 'rgb(112, 112, 112)', 'rgb(110, 110, 110)', 'rgb(110, 110, 110)', 'rgb(107, 107, 107)', 'rgb(107, 107, 107)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(102, 102, 102)', 'rgb(102, 102, 102)', 'rgb( 99, 99, 99)', 'rgb( 99, 99, 99)', 'rgb( 97, 97, 97)', 'rgb( 97, 97, 97)', 'rgb( 94, 94, 94)', 'rgb( 94, 94, 94)', 'rgb( 92, 92, 92)', 'rgb( 92, 92, 92)', 'rgb( 89, 89, 89)', 'rgb( 89, 89, 89)', 'rgb( 87, 87, 87)', 'rgb( 87, 87, 87)', 'rgb( 84, 84, 84)', 'rgb( 84, 84, 84)', 'rgb( 82, 82, 82)', 'rgb( 82, 82, 82)', 'rgb( 79, 79, 79)', 'rgb( 79, 79, 79)', 'rgb( 77, 77, 77)', 'rgb( 77, 77, 77)', 'rgb( 74, 74, 74)', 'rgb( 74, 74, 74)', 'rgb( 71, 71, 71)', 'rgb( 71, 71, 71)', 'rgb( 69, 69, 69)', 'rgb( 69, 69, 69)', 'rgb( 66, 66, 66)', 'rgb( 66, 66, 66)', 'rgb( 64, 64, 64)', 'rgb( 64, 64, 64)', 'rgb( 61, 61, 61)', 'rgb( 61, 61, 61)', 'rgb( 59, 59, 59)', 'rgb( 59, 59, 59)', 'rgb( 56, 56, 56)', 'rgb( 56, 56, 56)', 'rgb( 54, 54, 54)', 'rgb( 54, 54, 54)', 'rgb( 51, 51, 51)', 'rgb( 51, 51, 51)', 'rgb( 48, 48, 48)', 'rgb( 48, 48, 48)', 'rgb( 46, 46, 46)', 'rgb( 46, 46, 46)', 'rgb( 43, 43, 43)', 'rgb( 43, 43, 43)', 'rgb( 41, 41, 41)', 'rgb( 41, 41, 41)', 'rgb( 38, 38, 38)', 'rgb( 38, 38, 38)', 'rgb( 36, 36, 36)', 'rgb( 36, 36, 36)', 'rgb( 33, 33, 33)', 'rgb( 33, 33, 33)', 'rgb( 31, 31, 31)', 'rgb( 31, 31, 31)', 'rgb( 28, 28, 28)', 'rgb( 28, 28, 28)', 'rgb( 26, 26, 26)', 'rgb( 26, 26, 26)', 'rgb( 23, 23, 23)', 'rgb( 23, 23, 23)', 'rgb( 20, 20, 20)', 'rgb( 20, 20, 20)', 'rgb( 18, 18, 18)', 'rgb( 18, 18, 18)', 'rgb( 15, 15, 15)', 'rgb( 15, 15, 15)', 'rgb( 13, 13, 13)', 'rgb( 13, 13, 13)', 'rgb( 10, 10, 10)', 'rgb( 10, 10, 10)', 'rgb( 8, 8, 8)', 'rgb( 8, 8, 8)', 'rgb( 5, 5, 5)', 'rgb( 5, 5, 5)', 'rgb( 3, 3, 3)', 'rgb( 3, 3, 3)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'white', 'white'] -namelist = ['snow', 'snow1', 'snow2', 'RosyBrown1', 'RosyBrown2', 'snow3', 'LightCoral', 'IndianRed1', 'RosyBrown3', 'IndianRed2', 'RosyBrown', 'brown1', 'firebrick1', 'brown2', 'IndianRed', 'IndianRed3', 'firebrick2', 'snow4', 'brown3', 'red', 'red1', 'RosyBrown4', 'firebrick3', 'red2', 'firebrick', 'brown', 'red3', 'IndianRed4', 'brown4', 'firebrick4', 'DarkRed', 'red4', 'maroon', 'LightPink1', 'LightPink3', 'LightPink4', 'LightPink2', 'LightPink', 'pink', 'crimson', 'pink1', 'pink2', 'pink3', 'pink4', 'PaleVioletRed4', 'PaleVioletRed', 'PaleVioletRed2', 'PaleVioletRed1', 'PaleVioletRed3', 'LavenderBlush', 'LavenderBlush1', 'LavenderBlush3', 'LavenderBlush2', 'LavenderBlush4', 'maroon', 'HotPink3', 'VioletRed3', 'VioletRed1', 'VioletRed2', 'VioletRed4', 'HotPink2', 'HotPink1', 'HotPink4', 'HotPink', 'DeepPink', 'DeepPink1', 'DeepPink2', 'DeepPink3', 'DeepPink4', 'maroon1', 'maroon2', 'maroon3', 'maroon4', 'MediumVioletRed', 'VioletRed', 'orchid2', 'orchid', 'orchid1', 'orchid3', 'orchid4', 'thistle1', 'thistle2', 'plum1', 'plum2', 'thistle', 'thistle3', 'plum', 'violet', 'plum3', 'thistle4', 'fuchsia', 'magenta', 'magenta1', 'plum4', 'magenta2', 'magenta3', 'DarkMagenta', 'magenta4', 'purple', 'MediumOrchid', 'MediumOrchid1', 'MediumOrchid2', 'MediumOrchid3', 'MediumOrchid4', 'DarkViolet', 'DarkOrchid', 'DarkOrchid1', 'DarkOrchid3', 'DarkOrchid2', 'DarkOrchid4', 'purple', 'indigo', 'BlueViolet', 'purple2', 'purple3', 'purple4', 'purple1', 'MediumPurple', 'MediumPurple1', 'MediumPurple2', 'MediumPurple3', 'MediumPurple4', 'DarkSlateBlue', 'LightSlateBlue', 'MediumSlateBlue', 'SlateBlue', 'SlateBlue1', 'SlateBlue2', 'SlateBlue3', 'SlateBlue4', 'GhostWhite', 'lavender', 'blue', 'blue1', 'blue2', 'blue3', 'MediumBlue', 'blue4', 'DarkBlue', 'MidnightBlue', 'navy', 'NavyBlue', 'RoyalBlue', 'RoyalBlue1', 'RoyalBlue2', 'RoyalBlue3', 'RoyalBlue4', 'CornflowerBlue', 'LightSteelBlue', 'LightSteelBlue1', 'LightSteelBlue2', 'LightSteelBlue3', 'LightSteelBlue4', 'SlateGray4', 'SlateGray1', 'SlateGray2', 'SlateGray3', 'LightSlateGray', 'LightSlateGrey', 'SlateGray', 'SlateGrey', 'DodgerBlue', 'DodgerBlue1', 'DodgerBlue2', 'DodgerBlue4', 'DodgerBlue3', 'AliceBlue', 'SteelBlue4', 'SteelBlue', 'SteelBlue1', 'SteelBlue2', 'SteelBlue3', 'SkyBlue4', 'SkyBlue1', 'SkyBlue2', 'SkyBlue3', 'LightSkyBlue', 'LightSkyBlue4', 'LightSkyBlue1', 'LightSkyBlue2', 'LightSkyBlue3', 'SkyBlue', 'LightBlue3', 'DeepSkyBlue', 'DeepSkyBlue1', 'DeepSkyBlue2', 'DeepSkyBlue4', 'DeepSkyBlue3', 'LightBlue1', 'LightBlue2', 'LightBlue', 'LightBlue4', 'PowderBlue', 'CadetBlue1', 'CadetBlue2', 'CadetBlue3', 'CadetBlue4', 'turquoise1', 'turquoise2', 'turquoise3', 'turquoise4', 'cadet blue', 'CadetBlue', 'DarkTurquoise', 'azure', 'azure1', 'LightCyan', 'LightCyan1', 'azure2', 'LightCyan2', 'PaleTurquoise1', 'PaleTurquoise', 'PaleTurquoise2', 'DarkSlateGray1', 'azure3', 'LightCyan3', 'DarkSlateGray2', 'PaleTurquoise3', 'DarkSlateGray3', 'azure4', 'LightCyan4', 'aqua', 'cyan', 'cyan1', 'PaleTurquoise4', 'cyan2', 'DarkSlateGray4', 'cyan3', 'cyan4', 'DarkCyan', 'teal', 'DarkSlateGray', 'DarkSlateGrey', 'MediumTurquoise', 'LightSeaGreen', 'turquoise', 'aquamarine4', 'aquamarine', 'aquamarine1', 'aquamarine2', 'aquamarine3', 'MediumAquamarine', 'MediumSpringGreen', 'MintCream', 'SpringGreen', 'SpringGreen1', 'SpringGreen2', 'SpringGreen3', 'SpringGreen4', 'MediumSeaGreen', 'SeaGreen', 'SeaGreen3', 'SeaGreen1', 'SeaGreen4', 'SeaGreen2', 'MediumForestGreen', 'honeydew', 'honeydew1', 'honeydew2', 'DarkSeaGreen1', 'DarkSeaGreen2', 'PaleGreen1', 'PaleGreen', 'honeydew3', 'LightGreen', 'PaleGreen2', 'DarkSeaGreen3', 'DarkSeaGreen', 'PaleGreen3', 'honeydew4', 'green1', 'lime', 'LimeGreen', 'DarkSeaGreen4', 'green2', 'PaleGreen4', 'green3', 'ForestGreen', 'green4', 'green', 'DarkGreen', 'LawnGreen', 'chartreuse', 'chartreuse1', 'chartreuse2', 'chartreuse3', 'chartreuse4', 'GreenYellow', 'DarkOliveGreen3', 'DarkOliveGreen1', 'DarkOliveGreen2', 'DarkOliveGreen4', 'DarkOliveGreen', 'OliveDrab', 'OliveDrab1', 'OliveDrab2', 'OliveDrab3', 'YellowGreen', 'OliveDrab4', 'ivory', 'ivory1', 'LightYellow', 'LightYellow1', 'beige', 'ivory2', 'LightGoldenrodYellow', 'LightYellow2', 'ivory3', 'LightYellow3', 'ivory4', 'LightYellow4', 'yellow', 'yellow1', 'yellow2', 'yellow3', 'yellow4', 'olive', 'DarkKhaki', 'khaki2', 'LemonChiffon4', 'khaki1', 'khaki3', 'khaki4', 'PaleGoldenrod', 'LemonChiffon', 'LemonChiffon1', 'khaki', 'LemonChiffon3', 'LemonChiffon2', 'MediumGoldenRod', 'cornsilk4', 'gold', 'gold1', 'gold2', 'gold3', 'gold4', 'LightGoldenrod', 'LightGoldenrod4', 'LightGoldenrod1', 'LightGoldenrod3', 'LightGoldenrod2', 'cornsilk3', 'cornsilk2', 'cornsilk', 'cornsilk1', 'goldenrod', 'goldenrod1', 'goldenrod2', 'goldenrod3', 'goldenrod4', 'DarkGoldenrod', 'DarkGoldenrod1', 'DarkGoldenrod2', 'DarkGoldenrod3', 'DarkGoldenrod4', 'FloralWhite', 'wheat2', 'OldLace', 'wheat', 'wheat1', 'wheat3', 'orange', 'orange1', 'orange2', 'orange3', 'orange4', 'wheat4', 'moccasin', 'PapayaWhip', 'NavajoWhite3', 'BlanchedAlmond', 'NavajoWhite', 'NavajoWhite1', 'NavajoWhite2', 'NavajoWhite4', 'AntiqueWhite4', 'AntiqueWhite', 'tan', 'bisque4', 'burlywood', 'AntiqueWhite2', 'burlywood1', 'burlywood3', 'burlywood2', 'AntiqueWhite1', 'burlywood4', 'AntiqueWhite3', 'DarkOrange', 'bisque2', 'bisque', 'bisque1', 'bisque3', 'DarkOrange1', 'linen', 'DarkOrange2', 'DarkOrange3', 'DarkOrange4', 'peru', 'tan1', 'tan2', 'tan3', 'tan4', 'PeachPuff', 'PeachPuff1', 'PeachPuff4', 'PeachPuff2', 'PeachPuff3', 'SandyBrown', 'seashell4', 'seashell2', 'seashell3', 'chocolate', 'chocolate1', 'chocolate2', 'chocolate3', 'chocolate4', 'SaddleBrown', 'seashell', 'seashell1', 'sienna4', 'sienna', 'sienna1', 'sienna2', 'sienna3', 'LightSalmon3', 'LightSalmon', 'LightSalmon1', 'LightSalmon4', 'LightSalmon2', 'coral', 'OrangeRed', 'OrangeRed1', 'OrangeRed2', 'OrangeRed3', 'OrangeRed4', 'DarkSalmon', 'salmon1', 'salmon2', 'salmon3', 'salmon4', 'coral1', 'coral2', 'coral3', 'coral4', 'tomato4', 'tomato', 'tomato1', 'tomato2', 'tomato3', 'MistyRose4', 'MistyRose2', 'MistyRose', 'MistyRose1', 'salmon', 'MistyRose3', 'white', 'gray100', 'grey100', 'grey100', 'gray99', 'grey99', 'gray98', 'grey98', 'gray97', 'grey97', 'gray96', 'grey96', 'WhiteSmoke', 'gray95', 'grey95', 'gray94', 'grey94', 'gray93', 'grey93', 'gray92', 'grey92', 'gray91', 'grey91', 'gray90', 'grey90', 'gray89', 'grey89', 'gray88', 'grey88', 'gray87', 'grey87', 'gainsboro', 'gray86', 'grey86', 'gray85', 'grey85', 'gray84', 'grey84', 'gray83', 'grey83', 'LightGray', 'LightGrey', 'gray82', 'grey82', 'gray81', 'grey81', 'gray80', 'grey80', 'gray79', 'grey79', 'gray78', 'grey78', 'gray77', 'grey77', 'gray76', 'grey76', 'silver', 'gray75', 'grey75', 'gray74', 'grey74', 'gray73', 'grey73', 'gray72', 'grey72', 'gray71', 'grey71', 'gray70', 'grey70', 'gray69', 'grey69', 'gray68', 'grey68', 'gray67', 'grey67', 'DarkGray', 'DarkGrey', 'gray66', 'grey66', 'gray65', 'grey65', 'gray64', 'grey64', 'gray63', 'grey63', 'gray62', 'grey62', 'gray61', 'grey61', 'gray60', 'grey60', 'gray59', 'grey59', 'gray58', 'grey58', 'gray57', 'grey57', 'gray56', 'grey56', 'gray55', 'grey55', 'gray54', 'grey54', 'gray53', 'grey53', 'gray52', 'grey52', 'gray51', 'grey51', 'fractal', 'gray50', 'grey50', 'gray', 'gray49', 'grey49', 'gray48', 'grey48', 'gray47', 'grey47', 'gray46', 'grey46', 'gray45', 'grey45', 'gray44', 'grey44', 'gray43', 'grey43', 'gray42', 'grey42', 'DimGray', 'DimGrey', 'gray41', 'grey41', 'gray40', 'grey40', 'gray39', 'grey39', 'gray38', 'grey38', 'gray37', 'grey37', 'gray36', 'grey36', 'gray35', 'grey35', 'gray34', 'grey34', 'gray33', 'grey33', 'gray32', 'grey32', 'gray31', 'grey31', 'gray30', 'grey30', 'gray29', 'grey29', 'gray28', 'grey28', 'gray27', 'grey27', 'gray26', 'grey26', 'gray25', 'grey25', 'gray24', 'grey24', 'gray23', 'grey23', 'gray22', 'grey22', 'gray21', 'grey21', 'gray20', 'grey20', 'gray19', 'grey19', 'gray18', 'grey18', 'gray17', 'grey17', 'gray16', 'grey16', 'gray15', 'grey15', 'gray14', 'grey14', 'gray13', 'grey13', 'gray12', 'grey12', 'gray11', 'grey11', 'gray10', 'grey10', 'gray9', 'grey9', 'gray8', 'grey8', 'gray7', 'grey7', 'gray6', 'grey6', 'gray5', 'grey5', 'gray4', 'grey4', 'gray3', 'grey3', 'gray2', 'grey2', 'gray1', 'grey1', 'black', 'gray0', 'grey0', 'opaque', 'none', 'transparent'] - - -#### create some dictionaries###### -#rgb to hex -#rgb to name -#the rest will not work -#maybe hex to rgb - -rgbtohex = {} -for x in xrange(0,len(hexlist)-1): - rgbtohex[rgblist[x]] = hexlist[x] - -rgbtoname ={} -for x in xrange(0, len(namelist)-1): - rgbtoname[rgblist[x]] = namelist[x] - -hextorgb = {} -for x in xrange(0, len(hexlist)-1): - hextorgb[hexlist[x]] = rgblist[x] - -f = open("colordictionaries2.js","w") -f.write('rgbtohex = '+str(rgbtohex)+'\n') -f.write('rgbtoname = '+str(rgbtoname)+'\n') -f.write('hextorgb = '+str(hextorgb)+'\n') - -f.close() diff --git a/share/frontend/imgrid/colors/js/wrkshp/names b/share/frontend/imgrid/colors/js/wrkshp/names deleted file mode 100755 index ebcec30..0000000 --- a/share/frontend/imgrid/colors/js/wrkshp/names +++ /dev/null @@ -1 +0,0 @@ -namelist = ['snow', 'snow1', 'snow2', 'RosyBrown1', 'RosyBrown2', 'snow3', 'LightCoral', 'IndianRed1', 'RosyBrown3', 'IndianRed2', 'RosyBrown', 'brown1', 'firebrick1', 'brown2', 'IndianRed', 'IndianRed3', 'firebrick2', 'snow4', 'brown3', 'red', 'red1', 'RosyBrown4', 'firebrick3', 'red2', 'firebrick', 'brown', 'red3', 'IndianRed4', 'brown4', 'firebrick4', 'DarkRed', 'red4', 'maroon', 'LightPink1', 'LightPink3', 'LightPink4', 'LightPink2', 'LightPink', 'pink', 'crimson', 'pink1', 'pink2', 'pink3', 'pink4', 'PaleVioletRed4', 'PaleVioletRed', 'PaleVioletRed2', 'PaleVioletRed1', 'PaleVioletRed3', 'LavenderBlush', 'LavenderBlush1', 'LavenderBlush3', 'LavenderBlush2', 'LavenderBlush4', 'maroon', 'HotPink3', 'VioletRed3', 'VioletRed1', 'VioletRed2', 'VioletRed4', 'HotPink2', 'HotPink1', 'HotPink4', 'HotPink', 'DeepPink', 'DeepPink1', 'DeepPink2', 'DeepPink3', 'DeepPink4', 'maroon1', 'maroon2', 'maroon3', 'maroon4', 'MediumVioletRed', 'VioletRed', 'orchid2', 'orchid', 'orchid1', 'orchid3', 'orchid4', 'thistle1', 'thistle2', 'plum1', 'plum2', 'thistle', 'thistle3', 'plum', 'violet', 'plum3', 'thistle4', 'fuchsia', 'magenta', 'magenta1', 'plum4', 'magenta2', 'magenta3', 'DarkMagenta', 'magenta4', 'purple', 'MediumOrchid', 'MediumOrchid1', 'MediumOrchid2', 'MediumOrchid3', 'MediumOrchid4', 'DarkViolet', 'DarkOrchid', 'DarkOrchid1', 'DarkOrchid3', 'DarkOrchid2', 'DarkOrchid4', 'purple', 'indigo', 'BlueViolet', 'purple2', 'purple3', 'purple4', 'purple1', 'MediumPurple', 'MediumPurple1', 'MediumPurple2', 'MediumPurple3', 'MediumPurple4', 'DarkSlateBlue', 'LightSlateBlue', 'MediumSlateBlue', 'SlateBlue', 'SlateBlue1', 'SlateBlue2', 'SlateBlue3', 'SlateBlue4', 'GhostWhite', 'lavender', 'blue', 'blue1', 'blue2', 'blue3', 'MediumBlue', 'blue4', 'DarkBlue', 'MidnightBlue', 'navy', 'NavyBlue', 'RoyalBlue', 'RoyalBlue1', 'RoyalBlue2', 'RoyalBlue3', 'RoyalBlue4', 'CornflowerBlue', 'LightSteelBlue', 'LightSteelBlue1', 'LightSteelBlue2', 'LightSteelBlue3', 'LightSteelBlue4', 'SlateGray4', 'SlateGray1', 'SlateGray2', 'SlateGray3', 'LightSlateGray', 'LightSlateGrey', 'SlateGray', 'SlateGrey', 'DodgerBlue', 'DodgerBlue1', 'DodgerBlue2', 'DodgerBlue4', 'DodgerBlue3', 'AliceBlue', 'SteelBlue4', 'SteelBlue', 'SteelBlue1', 'SteelBlue2', 'SteelBlue3', 'SkyBlue4', 'SkyBlue1', 'SkyBlue2', 'SkyBlue3', 'LightSkyBlue', 'LightSkyBlue4', 'LightSkyBlue1', 'LightSkyBlue2', 'LightSkyBlue3', 'SkyBlue', 'LightBlue3', 'DeepSkyBlue', 'DeepSkyBlue1', 'DeepSkyBlue2', 'DeepSkyBlue4', 'DeepSkyBlue3', 'LightBlue1', 'LightBlue2', 'LightBlue', 'LightBlue4', 'PowderBlue', 'CadetBlue1', 'CadetBlue2', 'CadetBlue3', 'CadetBlue4', 'turquoise1', 'turquoise2', 'turquoise3', 'turquoise4', 'cadet blue', 'CadetBlue', 'DarkTurquoise', 'azure', 'azure1', 'LightCyan', 'LightCyan1', 'azure2', 'LightCyan2', 'PaleTurquoise1', 'PaleTurquoise', 'PaleTurquoise2', 'DarkSlateGray1', 'azure3', 'LightCyan3', 'DarkSlateGray2', 'PaleTurquoise3', 'DarkSlateGray3', 'azure4', 'LightCyan4', 'aqua', 'cyan', 'cyan1', 'PaleTurquoise4', 'cyan2', 'DarkSlateGray4', 'cyan3', 'cyan4', 'DarkCyan', 'teal', 'DarkSlateGray', 'DarkSlateGrey', 'MediumTurquoise', 'LightSeaGreen', 'turquoise', 'aquamarine4', 'aquamarine', 'aquamarine1', 'aquamarine2', 'aquamarine3', 'MediumAquamarine', 'MediumSpringGreen', 'MintCream', 'SpringGreen', 'SpringGreen1', 'SpringGreen2', 'SpringGreen3', 'SpringGreen4', 'MediumSeaGreen', 'SeaGreen', 'SeaGreen3', 'SeaGreen1', 'SeaGreen4', 'SeaGreen2', 'MediumForestGreen', 'honeydew', 'honeydew1', 'honeydew2', 'DarkSeaGreen1', 'DarkSeaGreen2', 'PaleGreen1', 'PaleGreen', 'honeydew3', 'LightGreen', 'PaleGreen2', 'DarkSeaGreen3', 'DarkSeaGreen', 'PaleGreen3', 'honeydew4', 'green1', 'lime', 'LimeGreen', 'DarkSeaGreen4', 'green2', 'PaleGreen4', 'green3', 'ForestGreen', 'green4', 'green', 'DarkGreen', 'LawnGreen', 'chartreuse', 'chartreuse1', 'chartreuse2', 'chartreuse3', 'chartreuse4', 'GreenYellow', 'DarkOliveGreen3', 'DarkOliveGreen1', 'DarkOliveGreen2', 'DarkOliveGreen4', 'DarkOliveGreen', 'OliveDrab', 'OliveDrab1', 'OliveDrab2', 'OliveDrab3', 'YellowGreen', 'OliveDrab4', 'ivory', 'ivory1', 'LightYellow', 'LightYellow1', 'beige', 'ivory2', 'LightGoldenrodYellow', 'LightYellow2', 'ivory3', 'LightYellow3', 'ivory4', 'LightYellow4', 'yellow', 'yellow1', 'yellow2', 'yellow3', 'yellow4', 'olive', 'DarkKhaki', 'khaki2', 'LemonChiffon4', 'khaki1', 'khaki3', 'khaki4', 'PaleGoldenrod', 'LemonChiffon', 'LemonChiffon1', 'khaki', 'LemonChiffon3', 'LemonChiffon2', 'MediumGoldenRod', 'cornsilk4', 'gold', 'gold1', 'gold2', 'gold3', 'gold4', 'LightGoldenrod', 'LightGoldenrod4', 'LightGoldenrod1', 'LightGoldenrod3', 'LightGoldenrod2', 'cornsilk3', 'cornsilk2', 'cornsilk', 'cornsilk1', 'goldenrod', 'goldenrod1', 'goldenrod2', 'goldenrod3', 'goldenrod4', 'DarkGoldenrod', 'DarkGoldenrod1', 'DarkGoldenrod2', 'DarkGoldenrod3', 'DarkGoldenrod4', 'FloralWhite', 'wheat2', 'OldLace', 'wheat', 'wheat1', 'wheat3', 'orange', 'orange1', 'orange2', 'orange3', 'orange4', 'wheat4', 'moccasin', 'PapayaWhip', 'NavajoWhite3', 'BlanchedAlmond', 'NavajoWhite', 'NavajoWhite1', 'NavajoWhite2', 'NavajoWhite4', 'AntiqueWhite4', 'AntiqueWhite', 'tan', 'bisque4', 'burlywood', 'AntiqueWhite2', 'burlywood1', 'burlywood3', 'burlywood2', 'AntiqueWhite1', 'burlywood4', 'AntiqueWhite3', 'DarkOrange', 'bisque2', 'bisque', 'bisque1', 'bisque3', 'DarkOrange1', 'linen', 'DarkOrange2', 'DarkOrange3', 'DarkOrange4', 'peru', 'tan1', 'tan2', 'tan3', 'tan4', 'PeachPuff', 'PeachPuff1', 'PeachPuff4', 'PeachPuff2', 'PeachPuff3', 'SandyBrown', 'seashell4', 'seashell2', 'seashell3', 'chocolate', 'chocolate1', 'chocolate2', 'chocolate3', 'chocolate4', 'SaddleBrown', 'seashell', 'seashell1', 'sienna4', 'sienna', 'sienna1', 'sienna2', 'sienna3', 'LightSalmon3', 'LightSalmon', 'LightSalmon1', 'LightSalmon4', 'LightSalmon2', 'coral', 'OrangeRed', 'OrangeRed1', 'OrangeRed2', 'OrangeRed3', 'OrangeRed4', 'DarkSalmon', 'salmon1', 'salmon2', 'salmon3', 'salmon4', 'coral1', 'coral2', 'coral3', 'coral4', 'tomato4', 'tomato', 'tomato1', 'tomato2', 'tomato3', 'MistyRose4', 'MistyRose2', 'MistyRose', 'MistyRose1', 'salmon', 'MistyRose3', 'white', 'gray100', 'grey100', 'grey100', 'gray99', 'grey99', 'gray98', 'grey98', 'gray97', 'grey97', 'gray96', 'grey96', 'WhiteSmoke', 'gray95', 'grey95', 'gray94', 'grey94', 'gray93', 'grey93', 'gray92', 'grey92', 'gray91', 'grey91', 'gray90', 'grey90', 'gray89', 'grey89', 'gray88', 'grey88', 'gray87', 'grey87', 'gainsboro', 'gray86', 'grey86', 'gray85', 'grey85', 'gray84', 'grey84', 'gray83', 'grey83', 'LightGray', 'LightGrey', 'gray82', 'grey82', 'gray81', 'grey81', 'gray80', 'grey80', 'gray79', 'grey79', 'gray78', 'grey78', 'gray77', 'grey77', 'gray76', 'grey76', 'silver', 'gray75', 'grey75', 'gray74', 'grey74', 'gray73', 'grey73', 'gray72', 'grey72', 'gray71', 'grey71', 'gray70', 'grey70', 'gray69', 'grey69', 'gray68', 'grey68', 'gray67', 'grey67', 'DarkGray', 'DarkGrey', 'gray66', 'grey66', 'gray65', 'grey65', 'gray64', 'grey64', 'gray63', 'grey63', 'gray62', 'grey62', 'gray61', 'grey61', 'gray60', 'grey60', 'gray59', 'grey59', 'gray58', 'grey58', 'gray57', 'grey57', 'gray56', 'grey56', 'gray55', 'grey55', 'gray54', 'grey54', 'gray53', 'grey53', 'gray52', 'grey52', 'gray51', 'grey51', 'fractal', 'gray50', 'grey50', 'gray', 'gray49', 'grey49', 'gray48', 'grey48', 'gray47', 'grey47', 'gray46', 'grey46', 'gray45', 'grey45', 'gray44', 'grey44', 'gray43', 'grey43', 'gray42', 'grey42', 'DimGray', 'DimGrey', 'gray41', 'grey41', 'gray40', 'grey40', 'gray39', 'grey39', 'gray38', 'grey38', 'gray37', 'grey37', 'gray36', 'grey36', 'gray35', 'grey35', 'gray34', 'grey34', 'gray33', 'grey33', 'gray32', 'grey32', 'gray31', 'grey31', 'gray30', 'grey30', 'gray29', 'grey29', 'gray28', 'grey28', 'gray27', 'grey27', 'gray26', 'grey26', 'gray25', 'grey25', 'gray24', 'grey24', 'gray23', 'grey23', 'gray22', 'grey22', 'gray21', 'grey21', 'gray20', 'grey20', 'gray19', 'grey19', 'gray18', 'grey18', 'gray17', 'grey17', 'gray16', 'grey16', 'gray15', 'grey15', 'gray14', 'grey14', 'gray13', 'grey13', 'gray12', 'grey12', 'gray11', 'grey11', 'gray10', 'grey10', 'gray9', 'grey9', 'gray8', 'grey8', 'gray7', 'grey7', 'gray6', 'grey6', 'gray5', 'grey5', 'gray4', 'grey4', 'gray3', 'grey3', 'gray2', 'grey2', 'gray1', 'grey1', 'black', 'gray0', 'grey0', 'opaque', 'none', 'transparent'] \ No newline at end of file diff --git a/share/frontend/imgrid/colors/js/wrkshp/rgbs b/share/frontend/imgrid/colors/js/wrkshp/rgbs deleted file mode 100755 index 59981a8..0000000 --- a/share/frontend/imgrid/colors/js/wrkshp/rgbs +++ /dev/null @@ -1 +0,0 @@ -rgblist = ['rgb(255, 250, 250)', 'rgb(255, 250, 250)', 'rgb(238, 233, 233)', 'rgb(255, 193, 193)', 'rgb(238, 180, 180)', 'rgb(205, 201, 201)', 'rgb(240, 128, 128)', 'rgb(255, 106, 106)', 'rgb(205, 155, 155)', 'rgb(238, 99, 99)', 'rgb(188, 143, 143)', 'rgb(255, 64, 64)', 'rgb(255, 48, 48)', 'rgb(238, 59, 59)', 'rgb(205, 92, 92)', 'rgb(205, 85, 85)', 'rgb(238, 44, 44)', 'rgb(139, 137, 137)', 'rgb(205, 51, 51)', 'rgb(255, 0, 0)', 'rgb(255, 0, 0)', 'rgb(139, 105, 105)', 'rgb(205, 38, 38)', 'rgb(238, 0, 0)', 'rgb(178, 34, 34)', 'rgb(165, 42, 42)', 'rgb(205, 0, 0)', 'rgb(139, 58, 58)', 'rgb(139, 35, 35)', 'rgb(139, 26, 26)', 'rgb(139, 0, 0)', 'rgb(139, 0, 0)', 'rgb(128, 0, 0)', 'rgb(255, 174, 185)', 'rgb(205, 140, 149)', 'rgb(139, 95, 101)', 'rgb(238, 162, 173)', 'rgb(255, 182, 193)', 'rgb(255, 192, 203)', 'rgb(220, 20, 60)', 'rgb(255, 181, 197)', 'rgb(238, 169, 184)', 'rgb(205, 145, 158)', 'rgb(139, 99, 108)', 'rgb(139, 71, 93)', 'rgb(219, 112, 147)', 'rgb(238, 121, 159)', 'rgb(255, 130, 171)', 'rgb(205, 104, 137)', 'rgb(255, 240, 245)', 'rgb(255, 240, 245)', 'rgb(205, 193, 197)', 'rgb(238, 224, 229)', 'rgb(139, 131, 134)', 'rgb(176, 48, 96)', 'rgb(205, 96, 144)', 'rgb(205, 50, 120)', 'rgb(255, 62, 150)', 'rgb(238, 58, 140)', 'rgb(139, 34, 82)', 'rgb(238, 106, 167)', 'rgb(255, 110, 180)', 'rgb(139, 58, 98)', 'rgb(255, 105, 180)', 'rgb(255, 20, 147)', 'rgb(255, 20, 147)', 'rgb(238, 18, 137)', 'rgb(205, 16, 118)', 'rgb(139, 10, 80)', 'rgb(255, 52, 179)', 'rgb(238, 48, 167)', 'rgb(205, 41, 144)', 'rgb(139, 28, 98)', 'rgb(199, 21, 133)', 'rgb(208, 32, 144)', 'rgb(238, 122, 233)', 'rgb(218, 112, 214)', 'rgb(255, 131, 250)', 'rgb(205, 105, 201)', 'rgb(139, 71, 137)', 'rgb(255, 225, 255)', 'rgb(238, 210, 238)', 'rgb(255, 187, 255)', 'rgb(238, 174, 238)', 'rgb(216, 191, 216)', 'rgb(205, 181, 205)', 'rgb(221, 160, 221)', 'rgb(238, 130, 238)', 'rgb(205, 150, 205)', 'rgb(139, 123, 139)', 'rgb(255, 0, 255)', 'rgb(255, 0, 255)', 'rgb(255, 0, 255)', 'rgb(139, 102, 139)', 'rgb(238, 0, 238)', 'rgb(205, 0, 205)', 'rgb(139, 0, 139)', 'rgb(139, 0, 139)', 'rgb(128, 0, 128)', 'rgb(186, 85, 211)', 'rgb(224, 102, 255)', 'rgb(209, 95, 238)', 'rgb(180, 82, 205)', 'rgb(122, 55, 139)', 'rgb(148, 0, 211)', 'rgb(153, 50, 204)', 'rgb(191, 62, 255)', 'rgb(154, 50, 205)', 'rgb(178, 58, 238)', 'rgb(104, 34, 139)', 'rgb(160, 32, 240)', 'rgb( 75, 0, 130)', 'rgb(138, 43, 226)', 'rgb(145, 44, 238)', 'rgb(125, 38, 205)', 'rgb( 85, 26, 139)', 'rgb(155, 48, 255)', 'rgb(147, 112, 219)', 'rgb(171, 130, 255)', 'rgb(159, 121, 238)', 'rgb(137, 104, 205)', 'rgb( 93, 71, 139)', 'rgb( 72, 61, 139)', 'rgb(132, 112, 255)', 'rgb(123, 104, 238)', 'rgb(106, 90, 205)', 'rgb(131, 111, 255)', 'rgb(122, 103, 238)', 'rgb(105, 89, 205)', 'rgb( 71, 60, 139)', 'rgb(248, 248, 255)', 'rgb(230, 230, 250)', 'rgb( 0, 0, 255)', 'rgb( 0, 0, 255)', 'rgb( 0, 0, 238)', 'rgb( 0, 0, 205)', 'rgb( 0, 0, 205)', 'rgb( 0, 0, 139)', 'rgb( 0, 0, 139)', 'rgb( 25, 25, 112)', 'rgb( 0, 0, 128)', 'rgb( 0, 0, 128)', 'rgb( 65, 105, 225)', 'rgb( 72, 118, 255)', 'rgb( 67, 110, 238)', 'rgb( 58, 95, 205)', 'rgb( 39, 64, 139)', 'rgb(100, 149, 237)', 'rgb(176, 196, 222)', 'rgb(202, 225, 255)', 'rgb(188, 210, 238)', 'rgb(162, 181, 205)', 'rgb(110, 123, 139)', 'rgb(108, 123, 139)', 'rgb(198, 226, 255)', 'rgb(185, 211, 238)', 'rgb(159, 182, 205)', 'rgb(119, 136, 153)', 'rgb(119, 136, 153)', 'rgb(112, 128, 144)', 'rgb(112, 128, 144)', 'rgb( 30, 144, 255)', 'rgb( 30, 144, 255)', 'rgb( 28, 134, 238)', 'rgb( 16, 78, 139)', 'rgb( 24, 116, 205)', 'rgb(240, 248, 255)', 'rgb( 54, 100, 139)', 'rgb( 70, 130, 180)', 'rgb( 99, 184, 255)', 'rgb( 92, 172, 238)', 'rgb( 79, 148, 205)', 'rgb( 74, 112, 139)', 'rgb(135, 206, 255)', 'rgb(126, 192, 238)', 'rgb(108, 166, 205)', 'rgb(135, 206, 250)', 'rgb( 96, 123, 139)', 'rgb(176, 226, 255)', 'rgb(164, 211, 238)', 'rgb(141, 182, 205)', 'rgb(135, 206, 235)', 'rgb(154, 192, 205)', 'rgb( 0, 191, 255)', 'rgb( 0, 191, 255)', 'rgb( 0, 178, 238)', 'rgb( 0, 104, 139)', 'rgb( 0, 154, 205)', 'rgb(191, 239, 255)', 'rgb(178, 223, 238)', 'rgb(173, 216, 230)', 'rgb(104, 131, 139)', 'rgb(176, 224, 230)', 'rgb(152, 245, 255)', 'rgb(142, 229, 238)', 'rgb(122, 197, 205)', 'rgb( 83, 134, 139)', 'rgb( 0, 245, 255)', 'rgb( 0, 229, 238)', 'rgb( 0, 197, 205)', 'rgb( 0, 134, 139)', 'rgb( 95, 158, 160)', 'rgb( 95, 158, 160)', 'rgb( 0, 206, 209)', 'rgb(240, 255, 255)', 'rgb(240, 255, 255)', 'rgb(224, 255, 255)', 'rgb(224, 255, 255)', 'rgb(224, 238, 238)', 'rgb(209, 238, 238)', 'rgb(187, 255, 255)', 'rgb(175, 238, 238)', 'rgb(174, 238, 238)', 'rgb(151, 255, 255)', 'rgb(193, 205, 205)', 'rgb(180, 205, 205)', 'rgb(141, 238, 238)', 'rgb(150, 205, 205)', 'rgb(121, 205, 205)', 'rgb(131, 139, 139)', 'rgb(122, 139, 139)', 'rgb( 0, 255, 255)', 'rgb( 0, 255, 255)', 'rgb( 0, 255, 255)', 'rgb(102, 139, 139)', 'rgb( 0, 238, 238)', 'rgb( 82, 139, 139)', 'rgb( 0, 205, 205)', 'rgb( 0, 139, 139)', 'rgb( 0, 139, 139)', 'rgb( 0, 128, 128)', 'rgb( 47, 79, 79)', 'rgb( 47, 79, 79)', 'rgb( 72, 209, 204)', 'rgb( 32, 178, 170)', 'rgb( 64, 224, 208)', 'rgb( 69, 139, 116)', 'rgb(127, 255, 212)', 'rgb(127, 255, 212)', 'rgb(118, 238, 198)', 'rgb(102, 205, 170)', 'rgb(102, 205, 170)', 'rgb( 0, 250, 154)', 'rgb(245, 255, 250)', 'rgb( 0, 255, 127)', 'rgb( 0, 255, 127)', 'rgb( 0, 238, 118)', 'rgb( 0, 205, 102)', 'rgb( 0, 139, 69)', 'rgb( 60, 179, 113)', 'rgb( 46, 139, 87)', 'rgb( 67, 205, 128)', 'rgb( 84, 255, 159)', 'rgb( 46, 139, 87)', 'rgb( 78, 238, 148)', 'rgb( 50, 129, 75)', 'rgb(240, 255, 240)', 'rgb(240, 255, 240)', 'rgb(224, 238, 224)', 'rgb(193, 255, 193)', 'rgb(180, 238, 180)', 'rgb(154, 255, 154)', 'rgb(152, 251, 152)', 'rgb(193, 205, 193)', 'rgb(144, 238, 144)', 'rgb(144, 238, 144)', 'rgb(155, 205, 155)', 'rgb(143, 188, 143)', 'rgb(124, 205, 124)', 'rgb(131, 139, 131)', 'rgb( 0, 255, 0)', 'rgb( 0, 255, 0)', 'rgb( 50, 205, 50)', 'rgb(105, 139, 105)', 'rgb( 0, 238, 0)', 'rgb( 84, 139, 84)', 'rgb( 0, 205, 0)', 'rgb( 34, 139, 34)', 'rgb( 0, 139, 0)', 'rgb( 0, 128, 0)', 'rgb( 0, 100, 0)', 'rgb(124, 252, 0)', 'rgb(127, 255, 0)', 'rgb(127, 255, 0)', 'rgb(118, 238, 0)', 'rgb(102, 205, 0)', 'rgb( 69, 139, 0)', 'rgb(173, 255, 47)', 'rgb(162, 205, 90)', 'rgb(202, 255, 112)', 'rgb(188, 238, 104)', 'rgb(110, 139, 61)', 'rgb( 85, 107, 47)', 'rgb(107, 142, 35)', 'rgb(192, 255, 62)', 'rgb(179, 238, 58)', 'rgb(154, 205, 50)', 'rgb(154, 205, 50)', 'rgb(105, 139, 34)', 'rgb(255, 255, 240)', 'rgb(255, 255, 240)', 'rgb(255, 255, 224)', 'rgb(255, 255, 224)', 'rgb(245, 245, 220)', 'rgb(238, 238, 224)', 'rgb(250, 250, 210)', 'rgb(238, 238, 209)', 'rgb(205, 205, 193)', 'rgb(205, 205, 180)', 'rgb(139, 139, 131)', 'rgb(139, 139, 122)', 'rgb(255, 255, 0)', 'rgb(255, 255, 0)', 'rgb(238, 238, 0)', 'rgb(205, 205, 0)', 'rgb(139, 139, 0)', 'rgb(128, 128, 0)', 'rgb(189, 183, 107)', 'rgb(238, 230, 133)', 'rgb(139, 137, 112)', 'rgb(255, 246, 143)', 'rgb(205, 198, 115)', 'rgb(139, 134, 78)', 'rgb(238, 232, 170)', 'rgb(255, 250, 205)', 'rgb(255, 250, 205)', 'rgb(240, 230, 140)', 'rgb(205, 201, 165)', 'rgb(238, 233, 191)', 'rgb(209, 193, 102)', 'rgb(139, 136, 120)', 'rgb(255, 215, 0)', 'rgb(255, 215, 0)', 'rgb(238, 201, 0)', 'rgb(205, 173, 0)', 'rgb(139, 117, 0)', 'rgb(238, 221, 130)', 'rgb(139, 129, 76)', 'rgb(255, 236, 139)', 'rgb(205, 190, 112)', 'rgb(238, 220, 130)', 'rgb(205, 200, 177)', 'rgb(238, 232, 205)', 'rgb(255, 248, 220)', 'rgb(255, 248, 220)', 'rgb(218, 165, 32)', 'rgb(255, 193, 37)', 'rgb(238, 180, 34)', 'rgb(205, 155, 29)', 'rgb(139, 105, 20)', 'rgb(184, 134, 11)', 'rgb(255, 185, 15)', 'rgb(238, 173, 14)', 'rgb(205, 149, 12)', 'rgb(139, 101, 8)', 'rgb(255, 250, 240)', 'rgb(238, 216, 174)', 'rgb(253, 245, 230)', 'rgb(245, 222, 179)', 'rgb(255, 231, 186)', 'rgb(205, 186, 150)', 'rgb(255, 165, 0)', 'rgb(255, 165, 0)', 'rgb(238, 154, 0)', 'rgb(205, 133, 0)', 'rgb(139, 90, 0)', 'rgb(139, 126, 102)', 'rgb(255, 228, 181)', 'rgb(255, 239, 213)', 'rgb(205, 179, 139)', 'rgb(255, 235, 205)', 'rgb(255, 222, 173)', 'rgb(255, 222, 173)', 'rgb(238, 207, 161)', 'rgb(139, 121, 94)', 'rgb(139, 131, 120)', 'rgb(250, 235, 215)', 'rgb(210, 180, 140)', 'rgb(139, 125, 107)', 'rgb(222, 184, 135)', 'rgb(238, 223, 204)', 'rgb(255, 211, 155)', 'rgb(205, 170, 125)', 'rgb(238, 197, 145)', 'rgb(255, 239, 219)', 'rgb(139, 115, 85)', 'rgb(205, 192, 176)', 'rgb(255, 140, 0)', 'rgb(238, 213, 183)', 'rgb(255, 228, 196)', 'rgb(255, 228, 196)', 'rgb(205, 183, 158)', 'rgb(255, 127, 0)', 'rgb(250, 240, 230)', 'rgb(238, 118, 0)', 'rgb(205, 102, 0)', 'rgb(139, 69, 0)', 'rgb(205, 133, 63)', 'rgb(255, 165, 79)', 'rgb(238, 154, 73)', 'rgb(205, 133, 63)', 'rgb(139, 90, 43)', 'rgb(255, 218, 185)', 'rgb(255, 218, 185)', 'rgb(139, 119, 101)', 'rgb(238, 203, 173)', 'rgb(205, 175, 149)', 'rgb(244, 164, 96)', 'rgb(139, 134, 130)', 'rgb(238, 229, 222)', 'rgb(205, 197, 191)', 'rgb(210, 105, 30)', 'rgb(255, 127, 36)', 'rgb(238, 118, 33)', 'rgb(205, 102, 29)', 'rgb(139, 69, 19)', 'rgb(139, 69, 19)', 'rgb(255, 245, 238)', 'rgb(255, 245, 238)', 'rgb(139, 71, 38)', 'rgb(160, 82, 45)', 'rgb(255, 130, 71)', 'rgb(238, 121, 66)', 'rgb(205, 104, 57)', 'rgb(205, 129, 98)', 'rgb(255, 160, 122)', 'rgb(255, 160, 122)', 'rgb(139, 87, 66)', 'rgb(238, 149, 114)', 'rgb(255, 127, 80)', 'rgb(255, 69, 0)', 'rgb(255, 69, 0)', 'rgb(238, 64, 0)', 'rgb(205, 55, 0)', 'rgb(139, 37, 0)', 'rgb(233, 150, 122)', 'rgb(255, 140, 105)', 'rgb(238, 130, 98)', 'rgb(205, 112, 84)', 'rgb(139, 76, 57)', 'rgb(255, 114, 86)', 'rgb(238, 106, 80)', 'rgb(205, 91, 69)', 'rgb(139, 62, 47)', 'rgb(139, 54, 38)', 'rgb(255, 99, 71)', 'rgb(255, 99, 71)', 'rgb(238, 92, 66)', 'rgb(205, 79, 57)', 'rgb(139, 125, 123)', 'rgb(238, 213, 210)', 'rgb(255, 228, 225)', 'rgb(255, 228, 225)', 'rgb(250, 128, 114)', 'rgb(205, 183, 181)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(252, 252, 252)', 'rgb(252, 252, 252)', 'rgb(250, 250, 250)', 'rgb(250, 250, 250)', 'rgb(247, 247, 247)', 'rgb(247, 247, 247)', 'rgb(245, 245, 245)', 'rgb(245, 245, 245)', 'rgb(245, 245, 245)', 'rgb(242, 242, 242)', 'rgb(242, 242, 242)', 'rgb(240, 240, 240)', 'rgb(240, 240, 240)', 'rgb(237, 237, 237)', 'rgb(237, 237, 237)', 'rgb(235, 235, 235)', 'rgb(235, 235, 235)', 'rgb(232, 232, 232)', 'rgb(232, 232, 232)', 'rgb(229, 229, 229)', 'rgb(229, 229, 229)', 'rgb(227, 227, 227)', 'rgb(227, 227, 227)', 'rgb(224, 224, 224)', 'rgb(224, 224, 224)', 'rgb(222, 222, 222)', 'rgb(222, 222, 222)', 'rgb(220, 220, 220)', 'rgb(219, 219, 219)', 'rgb(219, 219, 219)', 'rgb(217, 217, 217)', 'rgb(217, 217, 217)', 'rgb(214, 214, 214)', 'rgb(214, 214, 214)', 'rgb(212, 212, 212)', 'rgb(212, 212, 212)', 'rgb(211, 211, 211)', 'rgb(211, 211, 211)', 'rgb(209, 209, 209)', 'rgb(209, 209, 209)', 'rgb(207, 207, 207)', 'rgb(207, 207, 207)', 'rgb(204, 204, 204)', 'rgb(204, 204, 204)', 'rgb(201, 201, 201)', 'rgb(201, 201, 201)', 'rgb(199, 199, 199)', 'rgb(199, 199, 199)', 'rgb(196, 196, 196)', 'rgb(196, 196, 196)', 'rgb(194, 194, 194)', 'rgb(194, 194, 194)', 'rgb(192, 192, 192)', 'rgb(191, 191, 191)', 'rgb(191, 191, 191)', 'rgb(189, 189, 189)', 'rgb(189, 189, 189)', 'rgb(186, 186, 186)', 'rgb(186, 186, 186)', 'rgb(184, 184, 184)', 'rgb(184, 184, 184)', 'rgb(181, 181, 181)', 'rgb(181, 181, 181)', 'rgb(179, 179, 179)', 'rgb(179, 179, 179)', 'rgb(176, 176, 176)', 'rgb(176, 176, 176)', 'rgb(173, 173, 173)', 'rgb(173, 173, 173)', 'rgb(171, 171, 171)', 'rgb(171, 171, 171)', 'rgb(169, 169, 169)', 'rgb(169, 169, 169)', 'rgb(168, 168, 168)', 'rgb(168, 168, 168)', 'rgb(166, 166, 166)', 'rgb(166, 166, 166)', 'rgb(163, 163, 163)', 'rgb(163, 163, 163)', 'rgb(161, 161, 161)', 'rgb(161, 161, 161)', 'rgb(158, 158, 158)', 'rgb(158, 158, 158)', 'rgb(156, 156, 156)', 'rgb(156, 156, 156)', 'rgb(153, 153, 153)', 'rgb(153, 153, 153)', 'rgb(150, 150, 150)', 'rgb(150, 150, 150)', 'rgb(148, 148, 148)', 'rgb(148, 148, 148)', 'rgb(145, 145, 145)', 'rgb(145, 145, 145)', 'rgb(143, 143, 143)', 'rgb(143, 143, 143)', 'rgb(140, 140, 140)', 'rgb(140, 140, 140)', 'rgb(138, 138, 138)', 'rgb(138, 138, 138)', 'rgb(135, 135, 135)', 'rgb(135, 135, 135)', 'rgb(133, 133, 133)', 'rgb(133, 133, 133)', 'rgb(130, 130, 130)', 'rgb(130, 130, 130)', 'rgb(128, 128, 128)', 'rgb(127, 127, 127)', 'rgb(127, 127, 127)', 'rgb(126, 126, 126)', 'rgb(125, 125, 125)', 'rgb(125, 125, 125)', 'rgb(122, 122, 122)', 'rgb(122, 122, 122)', 'rgb(120, 120, 120)', 'rgb(120, 120, 120)', 'rgb(117, 117, 117)', 'rgb(117, 117, 117)', 'rgb(115, 115, 115)', 'rgb(115, 115, 115)', 'rgb(112, 112, 112)', 'rgb(112, 112, 112)', 'rgb(110, 110, 110)', 'rgb(110, 110, 110)', 'rgb(107, 107, 107)', 'rgb(107, 107, 107)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(102, 102, 102)', 'rgb(102, 102, 102)', 'rgb( 99, 99, 99)', 'rgb( 99, 99, 99)', 'rgb( 97, 97, 97)', 'rgb( 97, 97, 97)', 'rgb( 94, 94, 94)', 'rgb( 94, 94, 94)', 'rgb( 92, 92, 92)', 'rgb( 92, 92, 92)', 'rgb( 89, 89, 89)', 'rgb( 89, 89, 89)', 'rgb( 87, 87, 87)', 'rgb( 87, 87, 87)', 'rgb( 84, 84, 84)', 'rgb( 84, 84, 84)', 'rgb( 82, 82, 82)', 'rgb( 82, 82, 82)', 'rgb( 79, 79, 79)', 'rgb( 79, 79, 79)', 'rgb( 77, 77, 77)', 'rgb( 77, 77, 77)', 'rgb( 74, 74, 74)', 'rgb( 74, 74, 74)', 'rgb( 71, 71, 71)', 'rgb( 71, 71, 71)', 'rgb( 69, 69, 69)', 'rgb( 69, 69, 69)', 'rgb( 66, 66, 66)', 'rgb( 66, 66, 66)', 'rgb( 64, 64, 64)', 'rgb( 64, 64, 64)', 'rgb( 61, 61, 61)', 'rgb( 61, 61, 61)', 'rgb( 59, 59, 59)', 'rgb( 59, 59, 59)', 'rgb( 56, 56, 56)', 'rgb( 56, 56, 56)', 'rgb( 54, 54, 54)', 'rgb( 54, 54, 54)', 'rgb( 51, 51, 51)', 'rgb( 51, 51, 51)', 'rgb( 48, 48, 48)', 'rgb( 48, 48, 48)', 'rgb( 46, 46, 46)', 'rgb( 46, 46, 46)', 'rgb( 43, 43, 43)', 'rgb( 43, 43, 43)', 'rgb( 41, 41, 41)', 'rgb( 41, 41, 41)', 'rgb( 38, 38, 38)', 'rgb( 38, 38, 38)', 'rgb( 36, 36, 36)', 'rgb( 36, 36, 36)', 'rgb( 33, 33, 33)', 'rgb( 33, 33, 33)', 'rgb( 31, 31, 31)', 'rgb( 31, 31, 31)', 'rgb( 28, 28, 28)', 'rgb( 28, 28, 28)', 'rgb( 26, 26, 26)', 'rgb( 26, 26, 26)', 'rgb( 23, 23, 23)', 'rgb( 23, 23, 23)', 'rgb( 20, 20, 20)', 'rgb( 20, 20, 20)', 'rgb( 18, 18, 18)', 'rgb( 18, 18, 18)', 'rgb( 15, 15, 15)', 'rgb( 15, 15, 15)', 'rgb( 13, 13, 13)', 'rgb( 13, 13, 13)', 'rgb( 10, 10, 10)', 'rgb( 10, 10, 10)', 'rgb( 8, 8, 8)', 'rgb( 8, 8, 8)', 'rgb( 5, 5, 5)', 'rgb( 5, 5, 5)', 'rgb( 3, 3, 3)', 'rgb( 3, 3, 3)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'white', 'white'] \ No newline at end of file diff --git a/share/frontend/imgrid/colors/junk/ScrollEffect.js b/share/frontend/imgrid/colors/junk/ScrollEffect.js deleted file mode 100755 index ac8ca3f..0000000 --- a/share/frontend/imgrid/colors/junk/ScrollEffect.js +++ /dev/null @@ -1,86 +0,0 @@ -var vt = function () { - var view_box, - scrolled_element, - scrolled_element_actualheight = 0, - new_scrolled_element_top_position = 0, - final_Landing_Spot = 0, - hidden_material = 0, - viewbox_actualheight = 0, - y_coordinate = 0; - - var velx; - var prevY; - // ----- setup jquery selectors, set mouse event, run function run on timer - var start = function (view_element, element_to_be_scrolled) { - - // ----- mouse event ----- - $('.colors').mousemove(function(e){ - y_coordinate = e.clientY; - velx = e.clientY - prevY; - }); - - // ----- selectors and variables - view_box = $('#'+view_element)[0];//.(view_element);//viewarea - scrolled_element = $('#'+element_to_be_scrolled)[0]; //container - viewbox_actualheight = view_box.offsetHeight;//always 850px - scrolled_element_actualheight = scrolled_element.offsetHeight; - hidden_material = scrolled_element_actualheight - viewbox_actualheight; - - - // ----- start engine ----- - - setInterval(run, 60);//previously 16, the higher the number, the easier it is on the browser - }; - ///////////////////////////////////////////////////////////////////////////// - - - // ----- main ----- all this function does is adjust the top position of the div - var run = function () { - - prevY = y_coordinate; - - //if velocity is negative, landing spot and scrolltop increase in value (you have to add it) - - //velocity function if velocity is high, final landing spot is high, - -//FINAL LANDING SPOT IS NO LONGER FINAL LANDING SPOT. INSTEAD it's -//how much the div will move - // ----- calculate the final landing spot -// if(y_coordinate < viewbox_actualheight){ //it almost always is - final_Landing_Spot = y_coordinate * -18.5//( hidden_material / viewbox_actualheight)*-1; //this is negative because it's adjusting top css - - $('#preview').html('x-velocity='+'scrolled element'+scrolled_element_offset_height+'thats it'+velx+'
') -// } - /*this is the mouse position multiplied by the ratio of hidden to visible. this makes sense going in the negative direction, because - it allows the number to grow in proportion to how much invisible stuff there is...the issue is that the mouse position is small at the top of - the screen and large at the bottom...it needs to be equalized*/ - - - - // ----- function to determine easing - var velocity = (final_Landing_Spot - new_scrolled_element_top_position) - new_scrolled_element_top_position += Math.max(-25, Math.min(25, (final_Landing_Spot - new_scrolled_element_top_position))); - - - - - - - - - - - - - $('#boners').html(' final_Landing_Spot ='+(final_Landing_Spot - new_scrolled_element_top_position)+'
var vvvvvvelocity='+velocity+'
clientY='+y_coordinate+'
new scrolled top='+new_scrolled_element_top_position+'
') - // ----- HTML position ----- - scrolled_element.style.top = Math.round(new_scrolled_element_top_position) + 'px'; //and finally it's put in...continuously against the timer - - }; - - return { - //////////////////////////////////////////////////////////////////////////// - /* ==== public functions ==== */ - start : start, - } -}(); diff --git a/share/frontend/imgrid/colors/junk/ScrollEffectcomingsoon.js b/share/frontend/imgrid/colors/junk/ScrollEffectcomingsoon.js deleted file mode 100755 index 3388d5f..0000000 --- a/share/frontend/imgrid/colors/junk/ScrollEffectcomingsoon.js +++ /dev/null @@ -1,237 +0,0 @@ -var vt = function () { - var view_box, - scrolled_element, - scrolled_element_actualheight = 0, - easing = 0, - final_resting_place = 0, - hidden_material = 0, - viewbox_actualheight = 0; - var y_coordinate = 0; - - var velocity; - var prevY; - var lastrested = 0; - // ----- setup jquery selectors, set mouse event, run function run on timer - var start = function (view_element, element_to_be_scrolled) { - - // ----- mouse event ----- - $('.colors').mousemove(function(e){ - y_coordinate = e.clientY; - velocity = e.clientY - prevY; - }); - velocity = y_coordinate - prevY - // ----- selectors and variables - view_box = $('#'+view_element)[0];//.(view_element);//viewarea - scrolled_element = $('#'+element_to_be_scrolled)[0]; //container - viewbox_actualheight = view_box.offsetHeight;//always 850px - scrolled_element_actualheight = scrolled_element.offsetHeight; - hidden_material = scrolled_element_actualheight - viewbox_actualheight; - - - // ----- timer ----- - - setInterval(run, 50);//previously 16, the higher the number, the easier it is on the browser - }; - ///////////////////////////////////////////////////////////////////////////// - - - // ----- main ----- all this function does is adjust the top position of the div - var run = function () { - - prevY = y_coordinate; - - //if velocity is negative, landing spot and scrolltop increase in value (you have to add it) - - //velocity function if velocity is high, final landing spot is high, - -//FINAL LANDING SPOT IS NO LONGER FINAL LANDING SPOT. INSTEAD it's -//how much the div will move - // ----- calculate the final landing spot -// if(y_coordinate < viewbox_actualheight){ //it almost always is - final_resting_place = velocity * -8 - // -18.5//( hidden_material / viewbox_actualheight)*-1; //this is negative because it's adjusting top css - var rush = velocity*.1 - - $('#preview').html('velocity='+velocity+'
rush='+rush+'
') -// } - /*this is the mouse position multiplied by the ratio of hidden to visible. this makes sense going in the negative direction, because - it allows the number to grow in proportion to how much invisible stuff there is...the issue is that the mouse position is small at the top of - the screen and large at the bottom...it needs to be equalized*/ - - - - // ----- function to determine roll_to_zero - // var wheelshow; - var roll_to_zero; - // if(Math.abs(velocity)<10){roll_to_zero = roll_to_zero} - // else{ - roll_to_zero = (final_resting_place - easing) - // easing += Math.max(-25, Math.min(25, roll_to_zero));} - // easing += Math.max(-25, Math.min(25, roll_to_zero));} - if (roll_to_zero > 0) - {if (roll_to_zero > 8000) - {easing = easing + 100} - else if (roll_to_zero > 6000) - {easing = easing +50} - else if (roll_to_zero > 3000) - {easing = easing + 30} - else if (roll_to_zero > 1000) - {easing = easing + 20} - else if (roll_to_zero > 50) - {easing = easing +5} - else{easing = easing +1}} - else if (roll_to_zero < 0) - {if (roll_to_zero < 8000) - {easing = easing - 100} - else if (roll_to_zero < 6000) - {easing = easing -50} - else if (roll_to_zero < 3000) - {easing = easing - 30} - else if (roll_to_zero < 1000) - {easing = easing - 20} - else if (roll_to_zero < 50) - {easing = easing -1}} - else{easing = final_resting_place} - - if (roll_to_zero == 0){roll_to_zero = 0} - if (Math.abs(velocity) <= 50){roll_to_zero = 0} -// } - // easing = - //in other words if its less than 25(and moving down to zero), it uses 25 and if it's greater than 25 (moving up to zero) it uses 25. it will move - //faster going up if the Math.min(25, number is higher, but since the value is determined by the mouse cursor position it won't move as fast - - - - - - - - - - - $('#boners').html('
final resting place='+final_resting_place+'
var roll_to_zero='+roll_to_zero+'
clientY='+y_coordinate+'
easing='+easing+'
') - // ----- HTML position ----- - scrolled_element.style.top = Math.round(easing) + 'px'; //and finally it's put in...continuously against the timer - - }; -// var wheelshow = final_resting_place - lastrested; - // while(easing > 0){html = this div rightwheel} -// while(easing < 0){html = this div leftwheel.show} //wheel should be gray and transparent 3/4 view bg = colors under the mouseover - // if(easing == 0){hmtl = ''} - return { - //////////////////////////////////////////////////////////////////////////// - /* ==== public functions ==== */ - start : start, - } -}(); - - -/*minimap...how would it work? - -an image of the page... - -plus a div with a border - -there would have to be some sort of mathematical correllation to the window.height and the height of the div -against the minimap - - - - - -WHAT WE'VE GOT;;;;;;;;;;;;;;;;;;;;;;;;; -VELOCITY Y...A NUMBER THAT INDICATES THE CHANGE IN POSITION OF THE MOUSE - -HIDDENMATERIAL/VIEWBOX ACTUAL HeIGHT = 18.5 - -resting space range is -200 -1200 - - - -the way the algorithm works - - -final_top_position = (y coordinate)(-20) //some big number that's dependent on the y position - - -easing function...rolling toward the final_top_position - -[first off -the y coordinate shouldn't be based on the upper left (only because of VALUE, that's why it's easier to scroll down than up)] - -[e.pageY-($(window).height()*0.5)] - -value should be eradicated...we should instead use velocity which is DELTA. doesn't matter - - - roll_to_zero = (final_Landing_Spot - easing) first a destination spot is calculated, then easing takes place -new_scrolled_element - - - roll_to_zero = (final_Landing_Spot - easing)} - easing += Math.max(-25, Math.min(25, roll_to_zero)) - -instead of adjusting the height to the final landing spot, it becomes the easing value - -how easing works - x += Math.max(-25, Math.min(25, finalrestingplace-x));//as x approaches the final resting place, easing is used. 25 and -25 are used to traverse -long spaces more quickly - -where x = the current scroller position -as x becomes larger final resting place gets closer to 0 (it would actually be smaller, but we're dealing with negative values) - -the function is read from the inside out - -and of course, the statement that is missing is that x MUST be less than the overall distance travelable (which MUST be calculated) - -what's less important is the destination spot. more important would be the distance traveled per mouse move - -if the velocity is low, the distance is low, if the velocity is really high, it zooms to the end. - -before getting into specifics, for ease of reference lets say the velocity is has a range of -10 to 10, the over all distance traveled is 100px - -if the velocity is equal to range(-3,3) distance traved = 0 -if the velocity is between range(-4,-3) or range(3,4) distance traveled = 2 -if the velocity is between range (5,6) or (-5,-6) distance traveled would be 20 -if the velocity is between the range of 7,8 or -7,-8 the distance traveled would be 40 -if the velocity is between the range of 89 the velocity traveled would 80 -9-10 velocity is 160 - -0 --12302 from the top is the current max - - - - - - - - -plotted out this looks like this - # - - - - - - - - # - - - - - # - - -__- __- __# __ __ __ __ __ __ __ __ __ - -essentially we want something that looks like this (0.3x)^5 -0.ax^b - -we can play with which exponent is right, but only choosing odd ones -where a is the stationary range number -and b is the new slope - - -this function is called on a timer*/ diff --git a/share/frontend/imgrid/colors/junk/brush.ani b/share/frontend/imgrid/colors/junk/brush.ani deleted file mode 100755 index 6da99b4..0000000 Binary files a/share/frontend/imgrid/colors/junk/brush.ani and /dev/null differ diff --git a/share/frontend/imgrid/colors/junk/colordictOLD.js b/share/frontend/imgrid/colors/junk/colordictOLD.js deleted file mode 100755 index 67220ca..0000000 --- a/share/frontend/imgrid/colors/junk/colordictOLD.js +++ /dev/null @@ -1,2 +0,0 @@ -var hextoname = {'#EE1289': 'DeepPink2', '#EE8262': 'salmon2', '#C4C4C4': 'gray77', '#556B2F': 'DarkOliveGreen', '#FF8C00': 'DarkOrange', '#8B7B8B': 'thistle4', '#0000EE': 'blue2', '#EED5D2': 'MistyRose2', '#BA55D3': 'MediumOrchid', '#FFF5EE': 'seashell', '#912CEE': 'purple2', '#2F4F4F': 'DarkSlateGray', '#32814B': 'MediumForestGreen', '#D15FEE': 'MediumOrchid2', '#F0FFF0': 'honeydew', '#B23AEE': 'DarkOrchid2', '#8B7765': 'PeachPuff4', '#3D3D3D': 'gray24', '#54FF9F': 'SeaGreen1', '#636363': 'gray39', '#8B8386': 'LavenderBlush4', '#FF4040': 'brown1', '#EEA9B8': 'pink2', '#C2C2C2': 'gray76', '#800080': 'purple', '#545454': 'gray33', '#EE3A8C': 'VioletRed2', '#8A8A8A': 'gray54', '#FF00FF': 'fuchsia', '#436EEE': 'RoyalBlue2', '#8B864E': 'khaki4', '#0A0A0A': 'gray4', '#808000': 'olive', '#E3E3E3': 'gray89', '#1874CD': 'DodgerBlue3', '#BCD2EE': 'LightSteelBlue2', '#A9A9A9': 'DarkGray', '#F4A460': 'SandyBrown', '#FF3030': 'firebrick1', '#FFEBCD': 'BlanchedAlmond', '#B0C4DE': 'LightSteelBlue', '#00CDCD': 'cyan3', '#C0FF3E': 'OliveDrab1', '#FFD700': 'gold', '#242424': 'gray14', '#8B2252': 'VioletRed4', '#4EEE94': 'SeaGreen2', '#CD3278': 'VioletRed3', '#00E5EE': 'turquoise2', '#CD853F': 'peru', '#ADD8E6': 'LightBlue', '#C7C7C7': 'gray78', '#CD2990': 'maroon3', '#EEE5DE': 'seashell2', '#66CD00': 'chartreuse3', '#878787': 'gray53', '#FFA54F': 'tan1', '#A2B5CD': 'LightSteelBlue3', '#BC8F8F': 'RosyBrown', '#C9C9C9': 'gray79', '#D1C166': 'MediumGoldenRod', '#8B2323': 'brown4', '#B3EE3A': 'OliveDrab2', '#EEEED1': 'LightYellow2', '#AEEEEE': 'PaleTurquoise2', '#BDBDBD': 'gray74', '#FF7F00': 'DarkOrange1', '#FFC0CB': 'pink', '#EE3B3B': 'brown2', '#CDC8B1': 'cornsilk3', '#CDB38B': 'NavajoWhite3', '#CDBA96': 'wheat3', '#B4EEB4': 'DarkSeaGreen2', '#40E0D0': 'turquoise', '#8B795E': 'NavajoWhite4', '#27408B': 'RoyalBlue4', '#424242': 'gray26', '#CDB7B5': 'MistyRose3', '#CAE1FF': 'LightSteelBlue1', '#F0FFFF': 'azure', '#2E8B57': 'SeaGreen', '#87CEEB': 'SkyBlue', '#CD00CD': 'magenta3', '#CDAA7D': 'burlywood3', '#836FFF': 'SlateBlue1', '#ABABAB': 'gray67', '#EEB4B4': 'RosyBrown2', '#8B7355': 'burlywood4', '#F0E68C': 'khaki', '#CDCDB4': 'LightYellow3', '#4D4D4D': 'gray30', '#B8B8B8': 'gray72', '#B4CDCD': 'LightCyan3', '#008B8B': 'cyan4', '#828282': 'gray51', '#00EEEE': 'cyan2', '#708090': 'SlateGray', '#9AFF9A': 'PaleGreen1', '#FFA07A': 'LightSalmon', '#EBEBEB': 'gray92', '#FFB5C5': 'pink1', '#00688B': 'DeepSkyBlue4', '#DBDBDB': 'gray86', '#191970': 'MidnightBlue', '#FF83FA': 'orchid1', '#A1A1A1': 'gray63', '#838B8B': 'azure4', '#FFA500': 'orange', '#00FF7F': 'SpringGreen', '#EEAD0E': 'DarkGoldenrod2', '#B03060': 'maroon', '#96CDCD': 'PaleTurquoise3', '#CD3333': 'brown3', '#CDBE70': 'LightGoldenrod3', '#7CCD7C': 'PaleGreen3', '#97FFFF': 'DarkSlateGray1', '#DAA520': 'goldenrod', '#8B3A3A': 'IndianRed4', '#6B6B6B': 'gray42', '#FFFAF0': 'FloralWhite', '#757575': 'gray46', '#BFBFBF': 'gray75', '#00EE76': 'SpringGreen2', '#FFFAFA': 'snow', '#6E8B3D': 'DarkOliveGreen4', '#EEE685': 'khaki2', '#FF3E96': 'VioletRed1', '#EE0000': 'red2', '#FDF5E6': 'OldLace', '#E066FF': 'MediumOrchid1', '#8DB6CD': 'LightSkyBlue3', '#FF7256': 'coral1', '#7CFC00': 'LawnGreen', '#838B83': 'honeydew4', '#BF3EFF': 'DarkOrchid1', '#8B6914': 'goldenrod4', '#00CD66': 'SpringGreen3', '#525252': 'gray32', '#A4D3EE': 'LightSkyBlue2', '#00868B': 'turquoise4', '#8DEEEE': 'DarkSlateGray2', '#787878': 'gray47', '#8B1C62': 'maroon4', '#616161': 'gray38', '#4876FF': 'RoyalBlue1', '#9F79EE': 'MediumPurple2', '#212121': 'gray13', '#C1CDC1': 'honeydew3', '#CD69C9': 'orchid3', '#E0EEEE': 'azure2', '#8B7E66': 'wheat4', '#8A2BE2': 'BlueViolet', '#CDCD00': 'yellow3', '#EE5C42': 'tomato2', '#6E6E6E': 'gray43', '#EEAEEE': 'plum2', '#DC143C': 'crimson', '#CD919E': 'pink3', '#528B8B': 'DarkSlateGray4', '#AFEEEE': 'PaleTurquoise', '#CD6889': 'PaleVioletRed3', '#E6E6FA': 'lavender', '#EE00EE': 'magenta2', '#999999': 'gray60', '#F0F8FF': 'AliceBlue', '#595959': 'gray35', '#FF7F50': 'coral', '#A6A6A6': 'gray65', '#DEDEDE': 'gray87', '#262626': 'gray15', '#6CA6CD': 'SkyBlue3', '#8B8B83': 'ivory4', '#474747': 'gray28', '#F7F7F7': 'gray97', '#548B54': 'PaleGreen4', '#48D1CC': 'MediumTurquoise', '#C1CDCD': 'azure3', '#E0EEE0': 'honeydew2', '#FFB90F': 'DarkGoldenrod1', '#FFD39B': 'burlywood1', '#8B5A2B': 'tan4', '#EEE9BF': 'LemonChiffon2', '#BCEE68': 'DarkOliveGreen2', '#8470FF': 'LightSlateBlue', '#8B0A50': 'DeepPink4', '#FFF68F': 'khaki1', '#EEA2AD': 'LightPink2', '#CD5B45': 'coral3', '#7FFF00': 'chartreuse', '#8B8378': 'AntiqueWhite4', '#9BCD9B': 'DarkSeaGreen3', '#454545': 'gray27', '#D1D1D1': 'gray82', '#EEE8AA': 'PaleGoldenrod', '#668B8B': 'PaleTurquoise4', '#EE30A7': 'maroon2', '#FFC125': 'goldenrod1', '#8B475D': 'PaleVioletRed4', '#D8BFD8': 'thistle', '#404040': 'gray25', '#EEEE00': 'yellow2', '#CDB5CD': 'thistle3', '#00C5CD': 'turquoise3', '#00CED1': 'DarkTurquoise', '#CFCFCF': 'gray81', '#008B00': 'green4', '#7A7A7A': 'gray48', '#B8860B': 'DarkGoldenrod', '#1C86EE': 'DodgerBlue2', '#8B5742': 'LightSalmon4', '#1A1A1A': 'gray10', '#8B008B': 'DarkMagenta', '#0F0F0F': 'gray6', '#CD3700': 'OrangeRed3', '#7F7F7F': 'gray50', '#FF6EB4': 'HotPink1', '#6959CD': 'SlateBlue3', '#90EE90': 'LightGreen', '#8B4789': 'orchid4', '#EE7AE9': 'orchid2', '#8968CD': 'MediumPurple3', '#080808': 'gray3', '#CDC9C9': 'snow3', '#BDB76B': 'DarkKhaki', '#9370DB': 'MediumPurple', '#EEDC82': 'LightGoldenrod2', '#3CB371': 'MediumSeaGreen', '#F5FFFA': 'MintCream', '#303030': 'gray19', '#B9D3EE': 'SlateGray2', '#575757': 'gray34', '#F5F5DC': 'beige', '#BABABA': 'gray73', '#0000CD': 'blue3', '#FF8247': 'sienna1', '#F2F2F2': 'gray95', '#EED5B7': 'bisque2', '#FFEC8B': 'LightGoldenrod1', '#EE7600': 'DarkOrange2', '#8B636C': 'pink4', '#8B814C': 'LightGoldenrod4', '#FFE4B5': 'moccasin', '#4F94CD': 'SteelBlue3', '#CDAD00': 'gold3', '#CD5555': 'IndianRed3', '#8B7500': 'gold4', '#473C8B': 'SlateBlue4', '#B0E0E6': 'PowderBlue', '#FFFF00': 'yellow', '#CD96CD': 'plum3', '#006400': 'DarkGreen', '#FAFAFA': 'gray98', '#53868B': 'CadetBlue4', '#8B4513': 'chocolate4', '#98FB98': 'PaleGreen', '#63B8FF': 'SteelBlue1', '#FFAEB9': 'LightPink1', '#EE6A50': 'coral2', '#87CEFF': 'SkyBlue1', '#87CEFA': 'LightSkyBlue', '#ADFF2F': 'GreenYellow', '#008B45': 'SpringGreen4', '#EE4000': 'OrangeRed2', '#8B6969': 'RosyBrown4', '#00008B': 'blue4', '#DB7093': 'PaleVioletRed', '#7EC0EE': 'SkyBlue2', '#3B3B3B': 'gray23', '#8C8C8C': 'gray55', '#5F9EA0': 'cadet blue', '#EE799F': 'PaleVioletRed2', '#CD6090': 'HotPink3', '#8B8682': 'seashell4', '#458B74': 'aquamarine4', '#EECFA1': 'NavajoWhite2', '#76EE00': 'chartreuse2', '#000080': 'navy', '#228B22': 'ForestGreen', '#8B8B00': 'yellow4', '#B5B5B5': 'gray71', '#CD950C': 'DarkGoldenrod3', '#EE82EE': 'violet', '#EDEDED': 'gray93', '#F5DEB3': 'wheat', '#3A5FCD': 'RoyalBlue3', '#00FA9A': 'MediumSpringGreen', '#F0F0F0': 'gray94', '#D1EEEE': 'LightCyan2', '#2E2E2E': 'gray18', '#EEC591': 'burlywood2', '#8B3E2F': 'coral4', '#CD8162': 'LightSalmon3', '#9AC0CD': 'LightBlue3', '#8B8989': 'snow4', '#EED8AE': 'wheat2', '#551A8B': 'purple4', '#919191': 'gray57', '#949494': 'gray58', '#778899': 'LightSlateGray', '#FFFACD': 'LemonChiffon', '#458B00': 'chartreuse4', '#008000': 'green', '#FFFFF0': 'ivory', '#E0E0E0': 'gray88', '#EEB422': 'goldenrod2', '#A020F0': 'purple', '#5CACEE': 'SteelBlue2', '#CD4F39': 'tomato3', '#CDC0B0': 'AntiqueWhite3', '#6E7B8B': 'LightSteelBlue4', '#9E9E9E': 'gray62', '#CDC673': 'khaki3', '#104E8B': 'DodgerBlue4', '#E0FFFF': 'LightCyan', '#FFFFFF': 'white', '#6C7B8B': 'SlateGray4', '#FFC1C1': 'RosyBrown1', '#D6D6D6': 'gray84', '#8B4726': 'sienna4', '#CD9B1D': 'goldenrod3', '#FF6347': 'tomato', '#FF34B3': 'maroon1', '#7D7D7D': 'gray49', '#121212': 'gray7', '#B0E2FF': 'LightSkyBlue1', '#8B3A62': 'HotPink4', '#CD5C5C': 'IndianRed', '#4A4A4A': 'gray29', '#B0B0B0': 'gray69', '#D9D9D9': 'gray85', '#A2CD5A': 'DarkOliveGreen3', '#8B0000': 'DarkRed', '#FF6A6A': 'IndianRed1', '#CD6600': 'DarkOrange3', '#FFEFDB': 'AntiqueWhite1', '#E9967A': 'DarkSalmon', '#EEE9E9': 'snow2', '#D4D4D4': 'gray83', '#383838': 'gray22', '#7A67EE': 'SlateBlue2', '#4169E1': 'RoyalBlue', '#5E5E5E': 'gray37', '#00F5FF': 'turquoise1', '#FFEFD5': 'PapayaWhip', '#CDAF95': 'PeachPuff3', '#CCCCCC': 'gray80', '#00BFFF': 'DeepSkyBlue', '#CDB79E': 'bisque3', '#969696': 'gray59', '#4F4F4F': 'gray31', '#1E90FF': 'DodgerBlue', '#FCFCFC': 'gray99', '#EE2C2C': 'firebrick2', '#8B6508': 'DarkGoldenrod4', '#696969': 'DimGray', '#FF7F24': 'chocolate1', '#8FBC8F': 'DarkSeaGreen', '#66CDAA': 'aquamarine3', '#6495ED': 'CornflowerBlue', '#0D0D0D': 'gray5', '#EEE0E5': 'LavenderBlush2', '#666666': 'gray40', '#B2DFEE': 'LightBlue2', '#B22222': 'firebrick', '#4B0082': 'indigo', '#FF82AB': 'PaleVioletRed1', '#AB82FF': 'MediumPurple1', '#79CDCD': 'DarkSlateGray3', '#FFE4C4': 'bisque', '#DEB887': 'burlywood', '#5D478B': 'MediumPurple4', '#8B3626': 'tomato4', '#FFFFE0': 'LightYellow', '#FFE4E1': 'MistyRose', '#171717': 'gray9', '#EEDFCC': 'AntiqueWhite2', '#9400D3': 'DarkViolet', '#BFEFFF': 'LightBlue1', '#8B7D6B': 'bisque4', '#FF8C69': 'salmon1', '#C6E2FF': 'SlateGray1', '#1C1C1C': 'gray11', '#FF4500': 'OrangeRed', '#FFE7BA': 'wheat1', '#808080': 'fractal', '#EE9572': 'LightSalmon2', '#CD8500': 'orange3', '#8B5A00': 'orange4', '#9932CC': 'DarkOrchid', '#EECBAD': 'PeachPuff2', '#CD8C95': 'LightPink3', '#292929': 'gray16', '#CD1076': 'DeepPink3', '#7A378B': 'MediumOrchid4', '#FF0000': 'red', '#698B22': 'OliveDrab4', '#ADADAD': 'gray68', '#EEE8CD': 'cornsilk2', '#DDA0DD': 'plum', '#7D26CD': 'purple3', '#DA70D6': 'orchid', '#DCDCDC': 'gainsboro', '#68228B': 'DarkOrchid4', '#7B68EE': 'MediumSlateBlue', '#000000': 'black', '#6B8E23': 'OliveDrab', '#FF69B4': 'HotPink', '#800000': 'maroon', '#8B668B': 'plum4', '#363636': 'gray21', '#8B4500': 'DarkOrange4', '#D3D3D3': 'LightGray', '#607B8B': 'LightSkyBlue4', '#F08080': 'LightCoral', '#CD9B9B': 'RosyBrown3', '#76EEC6': 'aquamarine2', '#FAEBD7': 'AntiqueWhite', '#68838B': 'LightBlue4', '#7FFFD4': 'aquamarine', '#C0C0C0': 'silver', '#EEDD82': 'LightGoldenrod', '#EE9A49': 'tan2', '#4A708B': 'SkyBlue4', '#008080': 'teal', '#7AC5CD': 'CadetBlue3', '#98F5FF': 'CadetBlue1', '#8B2500': 'OrangeRed4', '#8F8F8F': 'gray56', '#FFF0F5': 'LavenderBlush', '#8B8970': 'LemonChiffon4', '#8B8878': 'cornsilk4', '#6A5ACD': 'SlateBlue', '#4682B4': 'SteelBlue', '#EEEEE0': 'ivory2', '#B3B3B3': 'gray70', '#00FF00': 'green1', '#FFDEAD': 'NavajoWhite', '#CD2626': 'firebrick3', '#8B4C39': 'salmon4', '#9B30FF': 'purple1', '#E5E5E5': 'gray90', '#36648B': 'SteelBlue4', '#9C9C9C': 'gray61', '#F8F8FF': 'GhostWhite', '#333333': 'gray20', '#5C5C5C': 'gray36', '#737373': 'gray45', '#EEC900': 'gold2', '#FFE1FF': 'thistle1', '#C1FFC1': 'DarkSeaGreen1', '#CDC5BF': 'seashell3', '#A0522D': 'sienna', '#8B5F65': 'LightPink4', '#CDC1C5': 'LavenderBlush3', '#EE7621': 'chocolate2', '#FFBBFF': 'plum1', '#CD6839': 'sienna3', '#698B69': 'DarkSeaGreen4', '#050505': 'gray2', '#CD661D': 'chocolate3', '#FAFAD2': 'LightGoldenrodYellow', '#CDCDC1': 'ivory3', '#FFF8DC': 'cornsilk', '#A8A8A8': 'gray66', '#B452CD': 'MediumOrchid3', '#D2B48C': 'tan', '#8EE5EE': 'CadetBlue2', '#483D8B': 'DarkSlateBlue', '#BBFFFF': 'PaleTurquoise1', '#0000FF': 'blue', '#EE6AA7': 'HotPink2', '#EE7942': 'sienna2', '#00CD00': 'green3', '#141414': 'gray8', '#9ACD32': 'OliveDrab3', '#C71585': 'MediumVioletRed', '#EE9A00': 'orange2', '#CAFF70': 'DarkOliveGreen1', '#F5F5F5': 'gray96', '#32CD32': 'LimeGreen', '#00EE00': 'green2', '#FFB6C1': 'LightPink', '#8B1A1A': 'firebrick4', '#00B2EE': 'DeepSkyBlue2', '#20B2AA': 'LightSeaGreen', '#707070': 'gray44', '#009ACD': 'DeepSkyBlue3', '#A52A2A': 'brown', '#EE6363': 'IndianRed2', '#FAF0E6': 'linen', '#8B7D7B': 'MistyRose4', '#9A32CD': 'DarkOrchid3', '#1F1F1F': 'gray12', '#E8E8E8': 'gray91', '#7E7E7E': 'gray', '#7A8B8B': 'LightCyan4', '#CD7054': 'salmon3', '#9FB6CD': 'SlateGray3', '#CDC9A5': 'LemonChiffon3', '#D02090': 'VioletRed', '#00FFFF': 'aqua', '#2B2B2B': 'gray17', '#858585': 'gray52', '#A3A3A3': 'gray64', '#CD0000': 'red3', '#43CD80': 'SeaGreen3', '#FA8072': 'salmon', '#FFDAB9': 'PeachPuff', '#D2691E': 'chocolate', '#FF1493': 'DeepPink', '#EED2EE': 'thistle2', '#030303': 'gray1', '#8B8B7A': 'LightYellow4'} -var nametohex = {'grey21': '#363636', 'yellow': '#FFFF00', 'grey61': '#9C9C9C', 'HotPink3': '#CD6090', 'grey63': '#A1A1A1', 'grey62': '#9E9E9E', 'grey65': '#A6A6A6', 'AliceBlue': '#F0F8FF', 'grey67': '#ABABAB', 'grey66': '#A8A8A8', 'LightCyan1': '#E0FFFF', 'grey68': '#ADADAD', 'LightCyan3': '#B4CDCD', 'LightCyan2': '#D1EEEE', 'LightCyan4': '#7A8B8B', 'gray32': '#525252', 'gray33': '#545454', 'DarkTurquoise': '#00CED1', 'gray31': '#4F4F4F', 'gray36': '#5C5C5C', 'gray37': '#5E5E5E', 'gray34': '#575757', 'gray35': '#595959', 'aquamarine4': '#458B74', 'gray38': '#616161', 'gray39': '#636363', 'aquamarine1': '#7FFFD4', 'aquamarine3': '#66CDAA', 'aquamarine2': '#76EEC6', 'CadetBlue4': '#53868B', 'CadetBlue3': '#7AC5CD', 'CadetBlue2': '#8EE5EE', 'CadetBlue1': '#98F5FF', 'crimson': '#DC143C', 'VioletRed1': '#FF3E96', 'VioletRed2': '#EE3A8C', 'VioletRed3': '#CD3278', 'VioletRed4': '#8B2252', 'brown': '#A52A2A', 'DarkGoldenrod': '#B8860B', 'gray8': '#141414', 'SlateGrey': '#708090', 'NavajoWhite2': '#EECFA1', 'gray2': '#050505', 'cyan': '#00FFFF', 'gray0': '#000000', 'gray1': '#030303', 'fractal': '#808080', 'gray7': '#121212', 'gray4': '#0A0A0A', 'gray5': '#0D0D0D', 'grey60': '#999999', 'DarkBlue': '#00008B', 'gray98': '#FAFAFA', 'DarkKhaki': '#BDB76B', 'gray99': '#FCFCFC', 'teal': '#008080', 'grey11': '#1C1C1C', 'coral4': '#8B3E2F', 'grey12': '#1F1F1F', 'grey64': '#A3A3A3', 'PaleGreen1': '#9AFF9A', 'PaleGreen3': '#7CCD7C', 'PaleGreen2': '#90EE90', 'PaleGreen4': '#548B54', 'grey14': '#242424', 'lavender': '#E6E6FA', 'grey15': '#262626', 'chartreuse3': '#66CD00', 'chartreuse2': '#76EE00', 'chartreuse1': '#7FFF00', 'chartreuse4': '#458B00', 'RosyBrown': '#BC8F8F', 'blue': '#0000FF', 'NavajoWhite': '#FFDEAD', 'opaque': '#000000', 'maroon4': '#8B1C62', 'maroon3': '#CD2990', 'maroon2': '#EE30A7', 'maroon1': '#FF34B3', 'gold3': '#CDAD00', 'gold2': '#EEC900', 'gold1': '#FFD700', 'gold4': '#8B7500', 'LightSlateGrey': '#778899', 'gray30': '#4D4D4D', 'DarkGreen': '#006400', 'SkyBlue': '#87CEEB', 'GhostWhite': '#F8F8FF', 'LavenderBlush': '#FFF0F5', 'SeaGreen': '#2E8B57', 'BlanchedAlmond': '#FFEBCD', 'gray60': '#999999', 'DarkOliveGreen': '#556B2F', 'firebrick2': '#EE2C2C', 'firebrick1': '#FF3030', 'firebrick4': '#8B1A1A', 'sienna': '#A0522D', 'blue1': '#0000FF', 'lime': '#00FF00', 'gray55': '#8C8C8C', 'blue2': '#0000EE', 'DarkViolet': '#9400D3', 'blue4': '#00008B', 'peru': '#CD853F', 'DarkMagenta': '#8B008B', 'LightBlue2': '#B2DFEE', 'red2': '#EE0000', 'red1': '#FF0000', 'LightBlue1': '#BFEFFF', 'LightBlue4': '#68838B', 'red4': '#8B0000', 'MediumSpringGreen': '#00FA9A', 'chocolate': '#D2691E', 'ForestGreen': '#228B22', 'DarkRed': '#8B0000', 'olive': '#808000', 'HotPink2': '#EE6AA7', 'HotPink1': '#FF6EB4', 'HotPink4': '#8B3A62', 'grey18': '#2E2E2E', 'grey19': '#303030', 'none': '#000000', 'PeachPuff': '#FFDAB9', 'MediumGoldenRod': '#D1C166', 'moccasin': '#FFE4B5', 'grey10': '#1A1A1A', 'chocolate1': '#FF7F24', 'chocolate2': '#EE7621', 'chocolate3': '#CD661D', 'chocolate4': '#8B4513', 'wheat2': '#EED8AE', 'grey16': '#292929', 'grey17': '#2B2B2B', 'gray69': '#B0B0B0', 'gray68': '#ADADAD', 'gray65': '#A6A6A6', 'gray64': '#A3A3A3', 'gray67': '#ABABAB', 'gray66': '#A8A8A8', 'gray61': '#9C9C9C', 'coral': '#FF7F50', 'gray63': '#A1A1A1', 'gray62': '#9E9E9E', 'LightGoldenrod': '#EEDD82', 'turquoise4': '#00868B', 'seashell2': '#EEE5DE', 'seashell3': '#CDC5BF', 'magenta': '#FF00FF', 'seashell1': '#FFF5EE', 'tan': '#D2B48C', 'seashell4': '#8B8682', 'pink': '#FFC0CB', 'LightSlateBlue': '#8470FF', 'SteelBlue1': '#63B8FF', 'SteelBlue3': '#4F94CD', 'SteelBlue2': '#5CACEE', 'SteelBlue4': '#36648B', 'grey89': '#E3E3E3', 'grey88': '#E0E0E0', 'grey87': '#DEDEDE', 'grey86': '#DBDBDB', 'grey85': '#D9D9D9', 'grey84': '#D6D6D6', 'grey83': '#D4D4D4', 'grey82': '#D1D1D1', 'grey81': '#CFCFCF', 'grey80': '#CCCCCC', 'ivory2': '#EEEEE0', 'khaki4': '#8B864E', 'khaki1': '#FFF68F', 'khaki2': '#EEE685', 'khaki3': '#CDC673', 'salmon1': '#FF8C69', 'salmon3': '#CD7054', 'salmon2': '#EE8262', 'salmon4': '#8B4C39', 'LightPink': '#FFB6C1', 'gray9': '#171717', 'green': '#008000', 'brown2': '#EE3B3B', 'brown3': '#CD3333', 'brown1': '#FF4040', 'brown4': '#8B2323', 'cadet blue': '#5F9EA0', 'orange4': '#8B5A00', 'orange1': '#FFA500', 'orange3': '#CD8500', 'orange2': '#EE9A00', 'gray3': '#080808', 'gray6': '#0F0F0F', 'yellow4': '#8B8B00', 'yellow3': '#CDCD00', 'yellow2': '#EEEE00', 'yellow1': '#FFFF00', 'PapayaWhip': '#FFEFD5', 'bisque2': '#EED5B7', 'OliveDrab4': '#698B22', 'bisque3': '#CDB79E', 'OliveDrab1': '#C0FF3E', 'OliveDrab2': '#B3EE3A', 'OliveDrab3': '#9ACD32', 'SkyBlue4': '#4A708B', 'SkyBlue1': '#87CEFF', 'SkyBlue3': '#6CA6CD', 'SkyBlue2': '#7EC0EE', 'grey58': '#949494', 'grey59': '#969696', 'grey54': '#8A8A8A', 'grey55': '#8C8C8C', 'grey56': '#8F8F8F', 'grey57': '#919191', 'grey50': '#7F7F7F', 'silver': '#C0C0C0', 'grey52': '#858585', 'grey53': '#878787', 'cyan2': '#00EEEE', 'cyan3': '#00CDCD', 'gray23': '#3B3B3B', 'RosyBrown4': '#8B6969', 'gray25': '#404040', 'CornflowerBlue': '#6495ED', 'cyan4': '#008B8B', 'gray26': '#424242', 'gray29': '#4A4A4A', 'LimeGreen': '#32CD32', 'MistyRose': '#FFE4E1', 'navy': '#000080', 'gray94': '#F0F0F0', 'gray95': '#F2F2F2', 'gray96': '#F5F5F5', 'gray97': '#F7F7F7', 'gray90': '#E5E5E5', 'gray91': '#E8E8E8', 'gray92': '#EBEBEB', 'gray93': '#EDEDED', 'MediumPurple': '#9370DB', 'MidnightBlue': '#191970', 'cornsilk': '#FFF8DC', 'red': '#FF0000', 'grey69': '#B0B0B0', 'DarkOrchid4': '#68228B', 'blue3': '#0000CD', 'LightSteelBlue': '#B0C4DE', 'DarkOrchid1': '#BF3EFF', 'DarkOrchid2': '#B23AEE', 'DarkOrchid3': '#9A32CD', 'grey72': '#B8B8B8', 'FloralWhite': '#FFFAF0', 'grey70': '#B3B3B3', 'DarkSeaGreen': '#8FBC8F', 'grey71': '#B5B5B5', 'gray17': '#2B2B2B', 'grey77': '#C4C4C4', 'tomato4': '#8B3626', 'tomato1': '#FF6347', 'tomato3': '#CD4F39', 'tomato2': '#EE5C42', 'DarkSlateGray1': '#97FFFF', 'DarkSlateGray2': '#8DEEEE', 'DarkSlateGray3': '#79CDCD', 'DarkSlateGray4': '#528B8B', 'SteelBlue': '#4682B4', 'MediumSlateBlue': '#7B68EE', 'OrangeRed': '#FF4500', 'grey79': '#C9C9C9', 'MediumVioletRed': '#C71585', 'burlywood': '#DEB887', 'white': '#FFFFFF', 'tomato': '#FF6347', 'DodgerBlue': '#1E90FF', 'RoyalBlue4': '#27408B', 'RoyalBlue1': '#4876FF', 'RoyalBlue3': '#3A5FCD', 'RoyalBlue2': '#436EEE', 'MistyRose1': '#FFE4E1', 'MistyRose3': '#CDB7B5', 'MistyRose2': '#EED5D2', 'MistyRose4': '#8B7D7B', 'LightGray': '#D3D3D3', 'LightYellow': '#FFFFE0', 'DarkOrange': '#FF8C00', 'DarkGray': '#A9A9A9', 'SlateGray': '#708090', 'turquoise3': '#00C5CD', 'turquoise2': '#00E5EE', 'turquoise1': '#00F5FF', 'burlywood2': '#EEC591', 'burlywood4': '#8B7355', 'DarkSlateGray': '#2F4F4F', 'linen': '#FAF0E6', 'grey47': '#787878', 'snow': '#FFFAFA', 'grey46': '#757575', 'gray58': '#949494', 'gray59': '#969696', 'IndianRed4': '#8B3A3A', 'purple4': '#551A8B', 'gray52': '#858585', 'gray53': '#878787', 'purple1': '#9B30FF', 'IndianRed1': '#FF6A6A', 'purple3': '#7D26CD', 'purple2': '#912CEE', 'thistle3': '#CDB5CD', 'thistle2': '#EED2EE', 'SpringGreen2': '#00EE76', 'SpringGreen3': '#00CD66', 'SpringGreen4': '#008B45', 'thistle4': '#8B7B8B', 'LightPink2': '#EEA2AD', 'LightPink3': '#CD8C95', 'LightPink1': '#FFAEB9', 'LightPink4': '#8B5F65', 'MediumPurple1': '#AB82FF', 'MediumPurple2': '#9F79EE', 'MediumPurple3': '#8968CD', 'MediumPurple4': '#5D478B', 'MediumTurquoise': '#48D1CC', 'DimGray': '#696969', 'gray14': '#242424', 'grey100': '#FFFFFF', 'OrangeRed3': '#CD3700', 'OrangeRed2': '#EE4000', 'OrangeRed1': '#FF4500', 'LightSeaGreen': '#20B2AA', 'gold': '#FFD700', 'OrangeRed4': '#8B2500', 'NavajoWhite4': '#8B795E', 'NavajoWhite1': '#FFDEAD', 'LawnGreen': '#7CFC00', 'NavajoWhite3': '#CDB38B', 'LightGoldenrod4': '#8B814C', 'LightGoldenrod1': '#FFEC8B', 'LightGoldenrod3': '#CDBE70', 'LightGoldenrod2': '#EEDC82', 'gray21': '#363636', 'PaleGreen': '#98FB98', 'green4': '#008B00', 'green1': '#00FF00', 'green3': '#00CD00', 'green2': '#00EE00', 'MediumOrchid': '#BA55D3', 'black': '#000000', 'gray20': '#333333', 'orchid4': '#8B4789', 'DodgerBlue1': '#1E90FF', 'DodgerBlue2': '#1C86EE', 'DodgerBlue3': '#1874CD', 'DodgerBlue4': '#104E8B', 'orchid1': '#FF83FA', 'orchid2': '#EE7AE9', 'orchid3': '#CD69C9', 'DarkSeaGreen4': '#698B69', 'DarkSeaGreen3': '#9BCD9B', 'DarkSeaGreen2': '#B4EEB4', 'DarkSeaGreen1': '#C1FFC1', 'gray100': '#FFFFFF', 'BlueViolet': '#8A2BE2', 'bisque4': '#8B7D6B', 'MediumOrchid4': '#7A378B', 'MintCream': '#F5FFFA', 'MediumOrchid1': '#E066FF', 'bisque1': '#FFE4C4', 'MediumOrchid3': '#B452CD', 'MediumOrchid2': '#D15FEE', 'gray': '#7E7E7E', 'DeepSkyBlue': '#00BFFF', 'LightGrey': '#D3D3D3', 'grey78': '#C7C7C7', 'gray22': '#383838', 'plum4': '#8B668B', 'plum3': '#CD96CD', 'plum2': '#EEAEEE', 'plum1': '#FFBBFF', 'DarkSlateGrey': '#2F4F4F', 'DarkOrchid': '#9932CC', 'OliveDrab': '#6B8E23', 'gray83': '#D4D4D4', 'grey49': '#7D7D7D', 'grey48': '#7A7A7A', 'thistle': '#D8BFD8', 'violet': '#EE82EE', 'grey43': '#6E6E6E', 'grey42': '#6B6B6B', 'LightSalmon4': '#8B5742', 'grey40': '#666666', 'LightSalmon2': '#EE9572', 'LightSalmon3': '#CD8162', 'grey45': '#737373', 'LightSalmon1': '#FFA07A', 'honeydew': '#F0FFF0', 'gray18': '#2E2E2E', 'gray19': '#303030', 'LightCyan': '#E0FFFF', 'gray15': '#262626', 'gray16': '#292929', 'gray82': '#D1D1D1', 'gray10': '#1A1A1A', 'gray11': '#1C1C1C', 'gray12': '#1F1F1F', 'gray13': '#212121', 'grey93': '#EDEDED', 'PaleGoldenrod': '#EEE8AA', 'gainsboro': '#DCDCDC', 'AntiqueWhite3': '#CDC0B0', 'AntiqueWhite2': '#EEDFCC', 'AntiqueWhite1': '#FFEFDB', 'gray27': '#454545', 'SlateBlue': '#6A5ACD', 'AntiqueWhite4': '#8B8378', 'DimGrey': '#696969', 'VioletRed': '#D02090', 'WhiteSmoke': '#F5F5F5', 'grey38': '#616161', 'grey39': '#636363', 'grey36': '#5C5C5C', 'grey37': '#5E5E5E', 'grey34': '#575757', 'grey35': '#595959', 'aqua': '#00FFFF', 'grey33': '#545454', 'grey30': '#4D4D4D', 'grey31': '#4F4F4F', 'NavyBlue': '#000080', 'sienna4': '#8B4726', 'gray81': '#CFCFCF', 'gray80': '#CCCCCC', 'sienna1': '#FF8247', 'gray86': '#DBDBDB', 'sienna3': '#CD6839', 'sienna2': '#EE7942', 'gray89': '#E3E3E3', 'gray88': '#E0E0E0', 'SlateBlue4': '#473C8B', 'gray87': '#DEDEDE', 'LightSteelBlue1': '#CAE1FF', 'magenta3': '#CD00CD', 'IndianRed': '#CD5C5C', 'SlateBlue2': '#7A67EE', 'SlateBlue1': '#836FFF', 'LightBlue': '#ADD8E6', 'PeachPuff4': '#8B7765', 'seashell': '#FFF5EE', 'SaddleBrown': '#8B4513', 'PeachPuff1': '#FFDAB9', 'PeachPuff2': '#EECBAD', 'PeachPuff3': '#CDAF95', 'aquamarine': '#7FFFD4', 'LemonChiffon2': '#EEE9BF', 'LemonChiffon1': '#FFFACD', 'tan4': '#8B5A2B', 'tan3': '#CD853F', 'tan2': '#EE9A49', 'tan1': '#FFA54F', 'LemonChiffon4': '#8B8970', 'orange': '#FFA500', 'OldLace': '#FDF5E6', 'PowderBlue': '#B0E0E6', 'RosyBrown3': '#CD9B9B', 'RoyalBlue': '#4169E1', 'LightSkyBlue4': '#607B8B', 'LightSkyBlue1': '#B0E2FF', 'LightSkyBlue2': '#A4D3EE', 'LightSkyBlue3': '#8DB6CD', 'LightYellow1': '#FFFFE0', 'LightYellow2': '#EEEED1', 'LightYellow3': '#CDCDB4', 'LightYellow4': '#8B8B7A', 'goldenrod4': '#8B6914', 'goldenrod1': '#FFC125', 'goldenrod2': '#EEB422', 'goldenrod3': '#CD9B1D', 'grey32': '#525252', 'LemonChiffon': '#FFFACD', 'burlywood1': '#FFD39B', 'YellowGreen': '#9ACD32', 'LightCoral': '#F08080', 'burlywood3': '#CDAA7D', 'ivory3': '#CDCDC1', 'firebrick3': '#CD2626', 'ivory1': '#FFFFF0', 'grey8': '#141414', 'ivory4': '#8B8B83', 'grey9': '#171717', 'DarkSalmon': '#E9967A', 'SlateGray1': '#C6E2FF', 'SlateGray2': '#B9D3EE', 'SlateGray3': '#9FB6CD', 'SlateGray4': '#6C7B8B', 'RosyBrown2': '#EEB4B4', 'RosyBrown1': '#FFC1C1', 'gray85': '#D9D9D9', 'gray84': '#D6D6D6', 'LightGreen': '#90EE90', 'LavenderBlush1': '#FFF0F5', 'grey73': '#BABABA', 'LavenderBlush3': '#CDC1C5', 'LavenderBlush2': '#EEE0E5', 'grey76': '#C2C2C2', 'LavenderBlush4': '#8B8386', 'grey74': '#BDBDBD', 'grey75': '#BFBFBF', 'pink1': '#FFB5C5', 'pink3': '#CD919E', 'pink2': '#EEA9B8', 'pink4': '#8B636C', 'gray47': '#787878', 'gray46': '#757575', 'gray45': '#737373', 'gray44': '#707070', 'gray43': '#6E6E6E', 'gray42': '#6B6B6B', 'gray41': '#696969', 'gray40': '#666666', 'gray49': '#7D7D7D', 'gray48': '#7A7A7A', 'MediumAquamarine': '#66CDAA', 'MediumForestGreen': '#32814B', 'azure1': '#F0FFFF', 'azure3': '#C1CDCD', 'azure2': '#E0EEEE', 'indigo': '#4B0082', 'azure4': '#838B8B', 'firebrick': '#B22222', 'DarkGrey': '#A9A9A9', 'magenta4': '#8B008B', 'SlateBlue3': '#6959CD', 'magenta2': '#EE00EE', 'magenta1': '#FF00FF', 'grey51': '#828282', 'chartreuse': '#7FFF00', 'grey41': '#696969', 'DarkOliveGreen4': '#6E8B3D', 'turquoise': '#40E0D0', 'DarkOliveGreen1': '#CAFF70', 'DarkOliveGreen3': '#A2CD5A', 'DarkOliveGreen2': '#BCEE68', 'grey6': '#0F0F0F', 'grey7': '#121212', 'grey4': '#0A0A0A', 'grey5': '#0D0D0D', 'grey2': '#050505', 'grey3': '#080808', 'grey0': '#000000', 'grey1': '#030303', 'gray50': '#7F7F7F', 'cyan1': '#00FFFF', 'gray51': '#828282', 'gray24': '#3D3D3D', 'HotPink': '#FF69B4', 'DarkGoldenrod4': '#8B6508', 'gray54': '#8A8A8A', 'DarkGoldenrod1': '#FFB90F', 'DarkGoldenrod2': '#EEAD0E', 'DarkGoldenrod3': '#CD950C', 'IndianRed2': '#EE6363', 'DeepPink': '#FF1493', 'gray28': '#474747', 'IndianRed3': '#CD5555', 'DarkCyan': '#008B8B', 'GreenYellow': '#ADFF2F', 'LightSalmon': '#FFA07A', 'DarkOrange4': '#8B4500', 'DarkOrange1': '#FF7F00', 'transparent': '#000000', 'DarkOrange3': '#CD6600', 'orchid': '#DA70D6', 'purple': '#800080', 'wheat4': '#8B7E66', 'wheat1': '#FFE7BA', 'wheat3': '#CDBA96', 'SpringGreen1': '#00FF7F', 'coral3': '#CD5B45', 'coral2': '#EE6A50', 'coral1': '#FF7256', 'thistle1': '#FFE1FF', 'PaleTurquoise': '#AFEEEE', 'bisque': '#FFE4C4', 'DeepPink3': '#CD1076', 'DeepPink2': '#EE1289', 'DeepPink1': '#FF1493', 'khaki': '#F0E68C', 'wheat': '#F5DEB3', 'MediumSeaGreen': '#3CB371', 'DeepPink4': '#8B0A50', 'salmon': '#FA8072', 'grey44': '#707070', 'DarkSlateBlue': '#483D8B', 'PaleVioletRed4': '#8B475D', 'PaleVioletRed1': '#FF82AB', 'PaleVioletRed2': '#EE799F', 'PaleVioletRed3': '#CD6889', 'AntiqueWhite': '#FAEBD7', 'PaleTurquoise4': '#668B8B', 'PaleTurquoise3': '#96CDCD', 'PaleTurquoise2': '#AEEEEE', 'PaleTurquoise1': '#BBFFFF', 'gray56': '#8F8F8F', 'plum': '#DDA0DD', 'beige': '#F5F5DC', 'SpringGreen': '#00FF7F', 'azure': '#F0FFFF', 'honeydew1': '#F0FFF0', 'honeydew2': '#E0EEE0', 'honeydew3': '#C1CDC1', 'honeydew4': '#838B83', 'gray57': '#919191', 'snow4': '#8B8989', 'snow2': '#EEE9E9', 'snow3': '#CDC9C9', 'snow1': '#FFFAFA', 'SandyBrown': '#F4A460', 'grey13': '#212121', 'SeaGreen4': '#2E8B57', 'SeaGreen3': '#43CD80', 'SeaGreen2': '#4EEE94', 'SeaGreen1': '#54FF9F', 'grey29': '#4A4A4A', 'grey28': '#474747', 'grey25': '#404040', 'grey24': '#3D3D3D', 'grey27': '#454545', 'grey26': '#424242', 'fuchsia': '#FF00FF', 'grey20': '#333333', 'grey23': '#3B3B3B', 'grey22': '#383838', 'gray78': '#C7C7C7', 'gray79': '#C9C9C9', 'gray76': '#C2C2C2', 'gray77': '#C4C4C4', 'gray74': '#BDBDBD', 'gray75': '#BFBFBF', 'gray72': '#B8B8B8', 'gray73': '#BABABA', 'gray70': '#B3B3B3', 'gray71': '#B5B5B5', 'ivory': '#FFFFF0', 'LemonChiffon3': '#CDC9A5', 'DeepSkyBlue4': '#00688B', 'DeepSkyBlue3': '#009ACD', 'DeepSkyBlue2': '#00B2EE', 'DeepSkyBlue1': '#00BFFF', 'cornsilk4': '#8B8878', 'cornsilk2': '#EEE8CD', 'cornsilk3': '#CDC8B1', 'CadetBlue': '#5F9EA0', 'cornsilk1': '#FFF8DC', 'grey90': '#E5E5E5', 'grey91': '#E8E8E8', 'grey92': '#EBEBEB', 'goldenrod': '#DAA520', 'grey94': '#F0F0F0', 'grey95': '#F2F2F2', 'grey96': '#F5F5F5', 'grey97': '#F7F7F7', 'grey98': '#FAFAFA', 'grey99': '#FCFCFC', 'red3': '#CD0000', 'LightSteelBlue2': '#BCD2EE', 'LightSteelBlue3': '#A2B5CD', 'LightSteelBlue4': '#6E7B8B', 'LightBlue3': '#9AC0CD', 'maroon': '#800000', 'LightSkyBlue': '#87CEFA', 'LightGoldenrodYellow': '#FAFAD2', 'MediumBlue': '#0000CD', 'LightSlateGray': '#778899', 'DarkOrange2': '#EE7600', 'PaleVioletRed': '#DB7093'} diff --git a/share/frontend/imgrid/colors/junk/colorpicker.html b/share/frontend/imgrid/colors/junk/colorpicker.html deleted file mode 100755 index 23993ac..0000000 --- a/share/frontend/imgrid/colors/junk/colorpicker.html +++ /dev/null @@ -1,254 +0,0 @@ - - - - - - -
BLACH BLAH BLAH
- -

hex

-

text

-
CLICK TO SHOW HEXES
-
-
funny
-
happy
-
silly
-
smart
-
click it
- -
click me
-
-
- -
choose between hex or text...
- - - - - diff --git a/share/frontend/imgrid/colors/junk/colorpixx.css b/share/frontend/imgrid/colors/junk/colorpixx.css deleted file mode 100755 index 1ddf557..0000000 --- a/share/frontend/imgrid/colors/junk/colorpixx.css +++ /dev/null @@ -1,2047 +0,0 @@ - -body -{word-wrap: break-word;} - -#main div -{display: -moz-inline-stack; -display:inline-block; -vertical-align:bottom; -min-height: 30px; -min-width:20px; -zoom: 1; -*display: inline;} -} - -#main - { - width:600px; - } -#colornames -{position:fixed; -font-size:50px; -top:50px; -right:50%;} -#d0 -{background-color:#FFFAFA} - -#d1 -{background-color:#FFFAFA} - -#d2 -{background-color:#EEE9E9} - -#d3 -{background-color:#FFC1C1} - -#d4 -{background-color:#EEB4B4} - -#d5 -{background-color:#CDC9C9} - -#d6 -{background-color:#F08080} - -#d7 -{background-color:#FF6A6A} - -#d8 -{background-color:#CD9B9B} - -#d9 -{background-color:#EE6363} - -#d10 -{background-color:#BC8F8F} - -#d11 -{background-color:#FF4040} - -#d12 -{background-color:#FF3030} - -#d13 -{background-color:#EE3B3B} - -#d14 -{background-color:#CD5C5C} - -#d15 -{background-color:#CD5555} - -#d16 -{background-color:#EE2C2C} - -#d17 -{background-color:#8B8989} - -#d18 -{background-color:#CD3333} - -#d19 -{background-color:#FF0000} - -#d20 -{background-color:#FF0000} - -#d21 -{background-color:#8B6969} - -#d22 -{background-color:#CD2626} - -#d23 -{background-color:#EE0000} - -#d24 -{background-color:#B22222} - -#d25 -{background-color:#A52A2A} - -#d26 -{background-color:#CD0000} - -#d27 -{background-color:#8B3A3A} - -#d28 -{background-color:#8B2323} - -#d29 -{background-color:#8B1A1A} - -#d30 -{background-color:#8B0000} - -#d31 -{background-color:#8B0000} - -#d32 -{background-color:#800000} - -#d33 -{background-color:#FFAEB9} - -#d34 -{background-color:#CD8C95} - -#d35 -{background-color:#8B5F65} - -#d36 -{background-color:#EEA2AD} - -#d37 -{background-color:#FFB6C1} - -#d38 -{background-color:#FFC0CB} - -#d39 -{background-color:#DC143C} - -#d40 -{background-color:#FFB5C5} - -#d41 -{background-color:#EEA9B8} - -#d42 -{background-color:#CD919E} - -#d43 -{background-color:#8B636C} - -#d44 -{background-color:#8B475D} - -#d45 -{background-color:#DB7093} - -#d46 -{background-color:#EE799F} - -#d47 -{background-color:#FF82AB} - -#d48 -{background-color:#CD6889} - -#d49 -{background-color:#FFF0F5} - -#d50 -{background-color:#FFF0F5} - -#d51 -{background-color:#CDC1C5} - -#d52 -{background-color:#EEE0E5} - -#d53 -{background-color:#8B8386} - -#d54 -{background-color:#B03060} - -#d55 -{background-color:#CD6090} - -#d56 -{background-color:#CD3278} - -#d57 -{background-color:#FF3E96} - -#d58 -{background-color:#EE3A8C} - -#d59 -{background-color:#8B2252} - -#d60 -{background-color:#EE6AA7} - -#d61 -{background-color:#FF6EB4} - -#d62 -{background-color:#8B3A62} - -#d63 -{background-color:#FF69B4} - -#d64 -{background-color:#FF1493} - -#d65 -{background-color:#FF1493} - -#d66 -{background-color:#EE1289} - -#d67 -{background-color:#CD1076} - -#d68 -{background-color:#8B0A50} - -#d69 -{background-color:#FF34B3} - -#d70 -{background-color:#EE30A7} - -#d71 -{background-color:#CD2990} - -#d72 -{background-color:#8B1C62} - -#d73 -{background-color:#C71585} - -#d74 -{background-color:#D02090} - -#d75 -{background-color:#EE7AE9} - -#d76 -{background-color:#DA70D6} - -#d77 -{background-color:#FF83FA} - -#d78 -{background-color:#CD69C9} - -#d79 -{background-color:#8B4789} - -#d80 -{background-color:#FFE1FF} - -#d81 -{background-color:#EED2EE} - -#d82 -{background-color:#FFBBFF} - -#d83 -{background-color:#EEAEEE} - -#d84 -{background-color:#D8BFD8} - -#d85 -{background-color:#CDB5CD} - -#d86 -{background-color:#DDA0DD} - -#d87 -{background-color:#EE82EE} - -#d88 -{background-color:#CD96CD} - -#d89 -{background-color:#8B7B8B} - -#d90 -{background-color:#FF00FF} - -#d91 -{background-color:#FF00FF} - -#d92 -{background-color:#FF00FF} - -#d93 -{background-color:#8B668B} - -#d94 -{background-color:#EE00EE} - -#d95 -{background-color:#CD00CD} - -#d96 -{background-color:#8B008B} - -#d97 -{background-color:#8B008B} - -#d98 -{background-color:#800080} - -#d99 -{background-color:#BA55D3} - -#d100 -{background-color:#E066FF} - -#d101 -{background-color:#D15FEE} - -#d102 -{background-color:#B452CD} - -#d103 -{background-color:#7A378B} - -#d104 -{background-color:#9400D3} - -#d105 -{background-color:#9932CC} - -#d106 -{background-color:#BF3EFF} - -#d107 -{background-color:#9A32CD} - -#d108 -{background-color:#B23AEE} - -#d109 -{background-color:#68228B} - -#d110 -{background-color:#A020F0} - -#d111 -{background-color:#4B0082} - -#d112 -{background-color:#8A2BE2} - -#d113 -{background-color:#912CEE} - -#d114 -{background-color:#7D26CD} - -#d115 -{background-color:#551A8B} - -#d116 -{background-color:#9B30FF} - -#d117 -{background-color:#9370DB} - -#d118 -{background-color:#AB82FF} - -#d119 -{background-color:#9F79EE} - -#d120 -{background-color:#8968CD} - -#d121 -{background-color:#5D478B} - -#d122 -{background-color:#483D8B} - -#d123 -{background-color:#8470FF} - -#d124 -{background-color:#7B68EE} - -#d125 -{background-color:#6A5ACD} - -#d126 -{background-color:#836FFF} - -#d127 -{background-color:#7A67EE} - -#d128 -{background-color:#6959CD} - -#d129 -{background-color:#473C8B} - -#d130 -{background-color:#F8F8FF} - -#d131 -{background-color:#E6E6FA} - -#d132 -{background-color:#0000FF} - -#d133 -{background-color:#0000FF} - -#d134 -{background-color:#0000EE} - -#d135 -{background-color:#0000CD} - -#d136 -{background-color:#0000CD} - -#d137 -{background-color:#00008B} - -#d138 -{background-color:#00008B} - -#d139 -{background-color:#191970} - -#d140 -{background-color:#000080} - -#d141 -{background-color:#000080} - -#d142 -{background-color:#4169E1} - -#d143 -{background-color:#4876FF} - -#d144 -{background-color:#436EEE} - -#d145 -{background-color:#3A5FCD} - -#d146 -{background-color:#27408B} - -#d147 -{background-color:#6495ED} - -#d148 -{background-color:#B0C4DE} - -#d149 -{background-color:#CAE1FF} - -#d150 -{background-color:#BCD2EE} - -#d151 -{background-color:#A2B5CD} - -#d152 -{background-color:#6E7B8B} - -#d153 -{background-color:#6C7B8B} - -#d154 -{background-color:#C6E2FF} - -#d155 -{background-color:#B9D3EE} - -#d156 -{background-color:#9FB6CD} - -#d157 -{background-color:#778899} - -#d158 -{background-color:#778899} - -#d159 -{background-color:#708090} - -#d160 -{background-color:#708090} - -#d161 -{background-color:#1E90FF} - -#d162 -{background-color:#1E90FF} - -#d163 -{background-color:#1C86EE} - -#d164 -{background-color:#104E8B} - -#d165 -{background-color:#1874CD} - -#d166 -{background-color:#F0F8FF} - -#d167 -{background-color:#36648B} - -#d168 -{background-color:#4682B4} - -#d169 -{background-color:#63B8FF} - -#d170 -{background-color:#5CACEE} - -#d171 -{background-color:#4F94CD} - -#d172 -{background-color:#4A708B} - -#d173 -{background-color:#87CEFF} - -#d174 -{background-color:#7EC0EE} - -#d175 -{background-color:#6CA6CD} - -#d176 -{background-color:#87CEFA} - -#d177 -{background-color:#607B8B} - -#d178 -{background-color:#B0E2FF} - -#d179 -{background-color:#A4D3EE} - -#d180 -{background-color:#8DB6CD} - -#d181 -{background-color:#87CEEB} - -#d182 -{background-color:#9AC0CD} - -#d183 -{background-color:#00BFFF} - -#d184 -{background-color:#00BFFF} - -#d185 -{background-color:#00B2EE} - -#d186 -{background-color:#00688B} - -#d187 -{background-color:#009ACD} - -#d188 -{background-color:#BFEFFF} - -#d189 -{background-color:#B2DFEE} - -#d190 -{background-color:#ADD8E6} - -#d191 -{background-color:#68838B} - -#d192 -{background-color:#B0E0E6} - -#d193 -{background-color:#98F5FF} - -#d194 -{background-color:#8EE5EE} - -#d195 -{background-color:#7AC5CD} - -#d196 -{background-color:#53868B} - -#d197 -{background-color:#00F5FF} - -#d198 -{background-color:#00E5EE} - -#d199 -{background-color:#00C5CD} - -#d200 -{background-color:#00868B} - -#d201 -{background-color:#5F9EA0} - -#d202 -{background-color:#5F9EA0} - -#d203 -{background-color:#00CED1} - -#d204 -{background-color:#F0FFFF} - -#d205 -{background-color:#F0FFFF} - -#d206 -{background-color:#E0FFFF} - -#d207 -{background-color:#E0FFFF} - -#d208 -{background-color:#E0EEEE} - -#d209 -{background-color:#D1EEEE} - -#d210 -{background-color:#BBFFFF} - -#d211 -{background-color:#AFEEEE} - -#d212 -{background-color:#AEEEEE} - -#d213 -{background-color:#97FFFF} - -#d214 -{background-color:#C1CDCD} - -#d215 -{background-color:#B4CDCD} - -#d216 -{background-color:#8DEEEE} - -#d217 -{background-color:#96CDCD} - -#d218 -{background-color:#79CDCD} - -#d219 -{background-color:#838B8B} - -#d220 -{background-color:#7A8B8B} - -#d221 -{background-color:#00FFFF} - -#d222 -{background-color:#00FFFF} - -#d223 -{background-color:#00FFFF} - -#d224 -{background-color:#668B8B} - -#d225 -{background-color:#00EEEE} - -#d226 -{background-color:#528B8B} - -#d227 -{background-color:#00CDCD} - -#d228 -{background-color:#008B8B} - -#d229 -{background-color:#008B8B} - -#d230 -{background-color:#008080} - -#d231 -{background-color:#2F4F4F} - -#d232 -{background-color:#2F4F4F} - -#d233 -{background-color:#48D1CC} - -#d234 -{background-color:#20B2AA} - -#d235 -{background-color:#40E0D0} - -#d236 -{background-color:#458B74} - -#d237 -{background-color:#7FFFD4} - -#d238 -{background-color:#7FFFD4} - -#d239 -{background-color:#76EEC6} - -#d240 -{background-color:#66CDAA} - -#d241 -{background-color:#66CDAA} - -#d242 -{background-color:#00FA9A} - -#d243 -{background-color:#F5FFFA} - -#d244 -{background-color:#00FF7F} - -#d245 -{background-color:#00FF7F} - -#d246 -{background-color:#00EE76} - -#d247 -{background-color:#00CD66} - -#d248 -{background-color:#008B45} - -#d249 -{background-color:#3CB371} - -#d250 -{background-color:#2E8B57} - -#d251 -{background-color:#43CD80} - -#d252 -{background-color:#54FF9F} - -#d253 -{background-color:#2E8B57} - -#d254 -{background-color:#4EEE94} - -#d255 -{background-color:#32814B} - -#d256 -{background-color:#F0FFF0} - -#d257 -{background-color:#F0FFF0} - -#d258 -{background-color:#E0EEE0} - -#d259 -{background-color:#C1FFC1} - -#d260 -{background-color:#B4EEB4} - -#d261 -{background-color:#9AFF9A} - -#d262 -{background-color:#98FB98} - -#d263 -{background-color:#C1CDC1} - -#d264 -{background-color:#90EE90} - -#d265 -{background-color:#90EE90} - -#d266 -{background-color:#9BCD9B} - -#d267 -{background-color:#8FBC8F} - -#d268 -{background-color:#7CCD7C} - -#d269 -{background-color:#838B83} - -#d270 -{background-color:#00FF00} - -#d271 -{background-color:#00FF00} - -#d272 -{background-color:#32CD32} - -#d273 -{background-color:#698B69} - -#d274 -{background-color:#00EE00} - -#d275 -{background-color:#548B54} - -#d276 -{background-color:#00CD00} - -#d277 -{background-color:#228B22} - -#d278 -{background-color:#008B00} - -#d279 -{background-color:#008000} - -#d280 -{background-color:#006400} - -#d281 -{background-color:#7CFC00} - -#d282 -{background-color:#7FFF00} - -#d283 -{background-color:#7FFF00} - -#d284 -{background-color:#76EE00} - -#d285 -{background-color:#66CD00} - -#d286 -{background-color:#458B00} - -#d287 -{background-color:#ADFF2F} - -#d288 -{background-color:#A2CD5A} - -#d289 -{background-color:#CAFF70} - -#d290 -{background-color:#BCEE68} - -#d291 -{background-color:#6E8B3D} - -#d292 -{background-color:#556B2F} - -#d293 -{background-color:#6B8E23} - -#d294 -{background-color:#C0FF3E} - -#d295 -{background-color:#B3EE3A} - -#d296 -{background-color:#9ACD32} - -#d297 -{background-color:#9ACD32} - -#d298 -{background-color:#698B22} - -#d299 -{background-color:#FFFFF0} - -#d300 -{background-color:#FFFFF0} - -#d301 -{background-color:#FFFFE0} - -#d302 -{background-color:#FFFFE0} - -#d303 -{background-color:#F5F5DC} - -#d304 -{background-color:#EEEEE0} - -#d305 -{background-color:#FAFAD2} - -#d306 -{background-color:#EEEED1} - -#d307 -{background-color:#CDCDC1} - -#d308 -{background-color:#CDCDB4} - -#d309 -{background-color:#8B8B83} - -#d310 -{background-color:#8B8B7A} - -#d311 -{background-color:#FFFF00} - -#d312 -{background-color:#FFFF00} - -#d313 -{background-color:#EEEE00} - -#d314 -{background-color:#CDCD00} - -#d315 -{background-color:#8B8B00} - -#d316 -{background-color:#808000} - -#d317 -{background-color:#BDB76B} - -#d318 -{background-color:#EEE685} - -#d319 -{background-color:#8B8970} - -#d320 -{background-color:#FFF68F} - -#d321 -{background-color:#CDC673} - -#d322 -{background-color:#8B864E} - -#d323 -{background-color:#EEE8AA} - -#d324 -{background-color:#FFFACD} - -#d325 -{background-color:#FFFACD} - -#d326 -{background-color:#F0E68C} - -#d327 -{background-color:#CDC9A5} - -#d328 -{background-color:#EEE9BF} - -#d329 -{background-color:#D1C166} - -#d330 -{background-color:#8B8878} - -#d331 -{background-color:#FFD700} - -#d332 -{background-color:#FFD700} - -#d333 -{background-color:#EEC900} - -#d334 -{background-color:#CDAD00} - -#d335 -{background-color:#8B7500} - -#d336 -{background-color:#EEDD82} - -#d337 -{background-color:#8B814C} - -#d338 -{background-color:#FFEC8B} - -#d339 -{background-color:#CDBE70} - -#d340 -{background-color:#EEDC82} - -#d341 -{background-color:#CDC8B1} - -#d342 -{background-color:#EEE8CD} - -#d343 -{background-color:#FFF8DC} - -#d344 -{background-color:#FFF8DC} - -#d345 -{background-color:#DAA520} - -#d346 -{background-color:#FFC125} - -#d347 -{background-color:#EEB422} - -#d348 -{background-color:#CD9B1D} - -#d349 -{background-color:#8B6914} - -#d350 -{background-color:#B8860B} - -#d351 -{background-color:#FFB90F} - -#d352 -{background-color:#EEAD0E} - -#d353 -{background-color:#CD950C} - -#d354 -{background-color:#8B6508} - -#d355 -{background-color:#FFFAF0} - -#d356 -{background-color:#EED8AE} - -#d357 -{background-color:#FDF5E6} - -#d358 -{background-color:#F5DEB3} - -#d359 -{background-color:#FFE7BA} - -#d360 -{background-color:#CDBA96} - -#d361 -{background-color:#FFA500} - -#d362 -{background-color:#FFA500} - -#d363 -{background-color:#EE9A00} - -#d364 -{background-color:#CD8500} - -#d365 -{background-color:#8B5A00} - -#d366 -{background-color:#8B7E66} - -#d367 -{background-color:#FFE4B5} - -#d368 -{background-color:#FFEFD5} - -#d369 -{background-color:#CDB38B} - -#d370 -{background-color:#FFEBCD} - -#d371 -{background-color:#FFDEAD} - -#d372 -{background-color:#FFDEAD} - -#d373 -{background-color:#EECFA1} - -#d374 -{background-color:#8B795E} - -#d375 -{background-color:#8B8378} - -#d376 -{background-color:#FAEBD7} - -#d377 -{background-color:#D2B48C} - -#d378 -{background-color:#8B7D6B} - -#d379 -{background-color:#DEB887} - -#d380 -{background-color:#EEDFCC} - -#d381 -{background-color:#FFD39B} - -#d382 -{background-color:#CDAA7D} - -#d383 -{background-color:#EEC591} - -#d384 -{background-color:#FFEFDB} - -#d385 -{background-color:#8B7355} - -#d386 -{background-color:#CDC0B0} - -#d387 -{background-color:#FF8C00} - -#d388 -{background-color:#EED5B7} - -#d389 -{background-color:#FFE4C4} - -#d390 -{background-color:#FFE4C4} - -#d391 -{background-color:#CDB79E} - -#d392 -{background-color:#FF7F00} - -#d393 -{background-color:#FAF0E6} - -#d394 -{background-color:#EE7600} - -#d395 -{background-color:#CD6600} - -#d396 -{background-color:#8B4500} - -#d397 -{background-color:#CD853F} - -#d398 -{background-color:#FFA54F} - -#d399 -{background-color:#EE9A49} - -#d400 -{background-color:#CD853F} - -#d401 -{background-color:#8B5A2B} - -#d402 -{background-color:#FFDAB9} - -#d403 -{background-color:#FFDAB9} - -#d404 -{background-color:#8B7765} - -#d405 -{background-color:#EECBAD} - -#d406 -{background-color:#CDAF95} - -#d407 -{background-color:#F4A460} - -#d408 -{background-color:#8B8682} - -#d409 -{background-color:#EEE5DE} - -#d410 -{background-color:#CDC5BF} - -#d411 -{background-color:#D2691E} - -#d412 -{background-color:#FF7F24} - -#d413 -{background-color:#EE7621} - -#d414 -{background-color:#CD661D} - -#d415 -{background-color:#8B4513} - -#d416 -{background-color:#8B4513} - -#d417 -{background-color:#FFF5EE} - -#d418 -{background-color:#FFF5EE} - -#d419 -{background-color:#8B4726} - -#d420 -{background-color:#A0522D} - -#d421 -{background-color:#FF8247} - -#d422 -{background-color:#EE7942} - -#d423 -{background-color:#CD6839} - -#d424 -{background-color:#CD8162} - -#d425 -{background-color:#FFA07A} - -#d426 -{background-color:#FFA07A} - -#d427 -{background-color:#8B5742} - -#d428 -{background-color:#EE9572} - -#d429 -{background-color:#FF7F50} - -#d430 -{background-color:#FF4500} - -#d431 -{background-color:#FF4500} - -#d432 -{background-color:#EE4000} - -#d433 -{background-color:#CD3700} - -#d434 -{background-color:#8B2500} - -#d435 -{background-color:#E9967A} - -#d436 -{background-color:#FF8C69} - -#d437 -{background-color:#EE8262} - -#d438 -{background-color:#CD7054} - -#d439 -{background-color:#8B4C39} - -#d440 -{background-color:#FF7256} - -#d441 -{background-color:#EE6A50} - -#d442 -{background-color:#CD5B45} - -#d443 -{background-color:#8B3E2F} - -#d444 -{background-color:#8B3626} - -#d445 -{background-color:#FF6347} - -#d446 -{background-color:#FF6347} - -#d447 -{background-color:#EE5C42} - -#d448 -{background-color:#CD4F39} - -#d449 -{background-color:#8B7D7B} - -#d450 -{background-color:#EED5D2} - -#d451 -{background-color:#FFE4E1} - -#d452 -{background-color:#FFE4E1} - -#d453 -{background-color:#FA8072} - -#d454 -{background-color:#CDB7B5} - -#d455 -{background-color:#FFFFFF} - -#d456 -{background-color:#FFFFFF} - -#d457 -{background-color:#FFFFFF} - -#d458 -{background-color:#FFFFFF} - -#d459 -{background-color:#FCFCFC} - -#d460 -{background-color:#FCFCFC} - -#d461 -{background-color:#FAFAFA} - -#d462 -{background-color:#FAFAFA} - -#d463 -{background-color:#F7F7F7} - -#d464 -{background-color:#F7F7F7} - -#d465 -{background-color:#F5F5F5} - -#d466 -{background-color:#F5F5F5} - -#d467 -{background-color:#F5F5F5} - -#d468 -{background-color:#F2F2F2} - -#d469 -{background-color:#F2F2F2} - -#d470 -{background-color:#F0F0F0} - -#d471 -{background-color:#F0F0F0} - -#d472 -{background-color:#EDEDED} - -#d473 -{background-color:#EDEDED} - -#d474 -{background-color:#EBEBEB} - -#d475 -{background-color:#EBEBEB} - -#d476 -{background-color:#E8E8E8} - -#d477 -{background-color:#E8E8E8} - -#d478 -{background-color:#E5E5E5} - -#d479 -{background-color:#E5E5E5} - -#d480 -{background-color:#E3E3E3} - -#d481 -{background-color:#E3E3E3} - -#d482 -{background-color:#E0E0E0} - -#d483 -{background-color:#E0E0E0} - -#d484 -{background-color:#DEDEDE} - -#d485 -{background-color:#DEDEDE} - -#d486 -{background-color:#DCDCDC} - -#d487 -{background-color:#DBDBDB} - -#d488 -{background-color:#DBDBDB} - -#d489 -{background-color:#D9D9D9} - -#d490 -{background-color:#D9D9D9} - -#d491 -{background-color:#D6D6D6} - -#d492 -{background-color:#D6D6D6} - -#d493 -{background-color:#D4D4D4} - -#d494 -{background-color:#D4D4D4} - -#d495 -{background-color:#D3D3D3} - -#d496 -{background-color:#D3D3D3} - -#d497 -{background-color:#D1D1D1} - -#d498 -{background-color:#D1D1D1} - -#d499 -{background-color:#CFCFCF} - -#d500 -{background-color:#CFCFCF} - -#d501 -{background-color:#CCCCCC} - -#d502 -{background-color:#CCCCCC} - -#d503 -{background-color:#C9C9C9} - -#d504 -{background-color:#C9C9C9} - -#d505 -{background-color:#C7C7C7} - -#d506 -{background-color:#C7C7C7} - -#d507 -{background-color:#C4C4C4} - -#d508 -{background-color:#C4C4C4} - -#d509 -{background-color:#C2C2C2} - -#d510 -{background-color:#C2C2C2} - -#d511 -{background-color:#C0C0C0} - -#d512 -{background-color:#BFBFBF} - -#d513 -{background-color:#BFBFBF} - -#d514 -{background-color:#BDBDBD} - -#d515 -{background-color:#BDBDBD} - -#d516 -{background-color:#BABABA} - -#d517 -{background-color:#BABABA} - -#d518 -{background-color:#B8B8B8} - -#d519 -{background-color:#B8B8B8} - -#d520 -{background-color:#B5B5B5} - -#d521 -{background-color:#B5B5B5} - -#d522 -{background-color:#B3B3B3} - -#d523 -{background-color:#B3B3B3} - -#d524 -{background-color:#B0B0B0} - -#d525 -{background-color:#B0B0B0} - -#d526 -{background-color:#ADADAD} - -#d527 -{background-color:#ADADAD} - -#d528 -{background-color:#ABABAB} - -#d529 -{background-color:#ABABAB} - -#d530 -{background-color:#A9A9A9} - -#d531 -{background-color:#A9A9A9} - -#d532 -{background-color:#A8A8A8} - -#d533 -{background-color:#A8A8A8} - -#d534 -{background-color:#A6A6A6} - -#d535 -{background-color:#A6A6A6} - -#d536 -{background-color:#A3A3A3} - -#d537 -{background-color:#A3A3A3} - -#d538 -{background-color:#A1A1A1} - -#d539 -{background-color:#A1A1A1} - -#d540 -{background-color:#9E9E9E} - -#d541 -{background-color:#9E9E9E} - -#d542 -{background-color:#9C9C9C} - -#d543 -{background-color:#9C9C9C} - -#d544 -{background-color:#999999} - -#d545 -{background-color:#999999} - -#d546 -{background-color:#969696} - -#d547 -{background-color:#969696} - -#d548 -{background-color:#949494} - -#d549 -{background-color:#949494} - -#d550 -{background-color:#919191} - -#d551 -{background-color:#919191} - -#d552 -{background-color:#8F8F8F} - -#d553 -{background-color:#8F8F8F} - -#d554 -{background-color:#8C8C8C} - -#d555 -{background-color:#8C8C8C} - -#d556 -{background-color:#8A8A8A} - -#d557 -{background-color:#8A8A8A} - -#d558 -{background-color:#878787} - -#d559 -{background-color:#878787} - -#d560 -{background-color:#858585} - -#d561 -{background-color:#858585} - -#d562 -{background-color:#828282} - -#d563 -{background-color:#828282} - -#d564 -{background-color:#808080} - -#d565 -{background-color:#7F7F7F} - -#d566 -{background-color:#7F7F7F} - -#d567 -{background-color:#7E7E7E} - -#d568 -{background-color:#7D7D7D} - -#d569 -{background-color:#7D7D7D} - -#d570 -{background-color:#7A7A7A} - -#d571 -{background-color:#7A7A7A} - -#d572 -{background-color:#787878} - -#d573 -{background-color:#787878} - -#d574 -{background-color:#757575} - -#d575 -{background-color:#757575} - -#d576 -{background-color:#737373} - -#d577 -{background-color:#737373} - -#d578 -{background-color:#707070} - -#d579 -{background-color:#707070} - -#d580 -{background-color:#6E6E6E} - -#d581 -{background-color:#6E6E6E} - -#d582 -{background-color:#6B6B6B} - -#d583 -{background-color:#6B6B6B} - -#d584 -{background-color:#696969} - -#d585 -{background-color:#696969} - -#d586 -{background-color:#696969} - -#d587 -{background-color:#696969} - -#d588 -{background-color:#666666} - -#d589 -{background-color:#666666} - -#d590 -{background-color:#636363} - -#d591 -{background-color:#636363} - -#d592 -{background-color:#616161} - -#d593 -{background-color:#616161} - -#d594 -{background-color:#5E5E5E} - -#d595 -{background-color:#5E5E5E} - -#d596 -{background-color:#5C5C5C} - -#d597 -{background-color:#5C5C5C} - -#d598 -{background-color:#595959} - -#d599 -{background-color:#595959} - -#d600 -{background-color:#575757} - -#d601 -{background-color:#575757} - -#d602 -{background-color:#545454} - -#d603 -{background-color:#545454} - -#d604 -{background-color:#525252} - -#d605 -{background-color:#525252} - -#d606 -{background-color:#4F4F4F} - -#d607 -{background-color:#4F4F4F} - -#d608 -{background-color:#4D4D4D} - -#d609 -{background-color:#4D4D4D} - -#d610 -{background-color:#4A4A4A} - -#d611 -{background-color:#4A4A4A} - -#d612 -{background-color:#474747} - -#d613 -{background-color:#474747} - -#d614 -{background-color:#454545} - -#d615 -{background-color:#454545} - -#d616 -{background-color:#424242} - -#d617 -{background-color:#424242} - -#d618 -{background-color:#404040} - -#d619 -{background-color:#404040} - -#d620 -{background-color:#3D3D3D} - -#d621 -{background-color:#3D3D3D} - -#d622 -{background-color:#3B3B3B} - -#d623 -{background-color:#3B3B3B} - -#d624 -{background-color:#383838} - -#d625 -{background-color:#383838} - -#d626 -{background-color:#363636} - -#d627 -{background-color:#363636} - -#d628 -{background-color:#333333} - -#d629 -{background-color:#333333} - -#d630 -{background-color:#303030} - -#d631 -{background-color:#303030} - -#d632 -{background-color:#2E2E2E} - -#d633 -{background-color:#2E2E2E} - -#d634 -{background-color:#2B2B2B} - -#d635 -{background-color:#2B2B2B} - -#d636 -{background-color:#292929} - -#d637 -{background-color:#292929} - -#d638 -{background-color:#262626} - -#d639 -{background-color:#262626} - -#d640 -{background-color:#242424} - -#d641 -{background-color:#242424} - -#d642 -{background-color:#212121} - -#d643 -{background-color:#212121} - -#d644 -{background-color:#1F1F1F} - -#d645 -{background-color:#1F1F1F} - -#d646 -{background-color:#1C1C1C} - -#d647 -{background-color:#1C1C1C} - -#d648 -{background-color:#1A1A1A} - -#d649 -{background-color:#1A1A1A} - -#d650 -{background-color:#171717} - -#d651 -{background-color:#171717} - -#d652 -{background-color:#141414} - -#d653 -{background-color:#141414} - -#d654 -{background-color:#121212} - -#d655 -{background-color:#121212} - -#d656 -{background-color:#0F0F0F} - -#d657 -{background-color:#0F0F0F} - -#d658 -{background-color:#0D0D0D} - -#d659 -{background-color:#0D0D0D} - -#d660 -{background-color:#0A0A0A} - -#d661 -{background-color:#0A0A0A} - -#d662 -{background-color:#080808} - -#d663 -{background-color:#080808} - -#d664 -{background-color:#050505} - -#d665 -{background-color:#050505} - -#d666 -{background-color:#030303} - -#d667 -{background-color:#030303} - -#d668 -{background-color:#000000} - -#d669 -{background-color:#000000} - -#d670 -{background-color:#000000} - -#d671 -{background-color:#000000} - -#d672 -{background-color:#000000} - -#d673 -{background-color:#000000} -.colors -{height:30px; -width:10px;} diff --git a/share/frontend/imgrid/colors/junk/colorpixx.js b/share/frontend/imgrid/colors/junk/colorpixx.js deleted file mode 100755 index 4b42e4d..0000000 --- a/share/frontend/imgrid/colors/junk/colorpixx.js +++ /dev/null @@ -1,92 +0,0 @@ -function goldenize(num) - { - ratio = (1+Math.sqrt(5))/2 - newnum = Math.round(num*ratio) - return newnum - } -//turns css property width or height into an integer value -function getproperty(idandselectr, propertystr) - { - grab = $(idandselectr).css(propertystr) - grab = grab.slice(0,-2) - numval = parseInt(grab) - return numval - } -function makegolden(idandselectr, propertystr) - { - result = getproperty(idandselectr, propertystr) - newwidth = goldenize(result) - widthval = newwidth.toString()+'px' - $(idandselectr).css('width', widthval) - } -makegolden('.colors', 'height') -//remove content this function takes the name out of the divs - -function removecontent() - { - $('.colors').html("") - } -removecontent() - -function colorToHex(color) { - if (color.substr(0, 1) === '#') { - return color; - } - var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color); - - var red = parseInt(digits[2]); - var green = parseInt(digits[3]); - var blue = parseInt(digits[4]); - - var rgb = blue | (green << 8) | (red << 16); - return digits[1] + '#' + rgb.toString(16); -}; - -//takes a div name and returns a colorname - -function showcolorname(divstr) - - { - - bgcolor = $('#'+divstr).css('background-color') - lowercasehex = colorToHex(bgcolor) - hex = lowercasehex.toUpperCase() - imname = hextoname[hex] -/* if ($('#hexortext:checked').length == 1) - { - imname = hex - }*/ - return imname - } -function bigname(divstr) - { - bebop = showcolorname(divstr) -// $('#colornames').html(bebop) - } -function writeit(text) - { -// $('#colornames').append(text) - } -function makebig(divstr) - { - firstheight = $('#'+divstr).height() - newheight = goldenize(firstheight) - $('#'+divstr).height(newheight) -// $('#colornames').append(firstheight) - } -function makesmall(divstr) - { - oldheight = $('.colors').height() - $('#'+divstr).height(oldheight) - } -$('.colors').hover(function() { - bigname(this.id); - makebig(this.id); - makegolden('#'+this.id, 'height')}, -function(){ - makesmall(this.id); - makegolden('#'+this.id, 'height') -}); -$('#colornames').html("") -$("#popupContact").css('background-color', 'black') -$('.colors').css('margin-top', '2px') diff --git a/share/frontend/imgrid/colors/junk/colors.html b/share/frontend/imgrid/colors/junk/colors.html deleted file mode 100755 index 0ef22f9..0000000 --- a/share/frontend/imgrid/colors/junk/colors.html +++ /dev/null @@ -1,5429 +0,0 @@ - - - - - - - - -
-

List of Color Names

-
- -

a list of named colors for use with PHOTOBLASTER:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameColorRGBHex
snowsnowrgb(255, 250, 250)#FFFAFA
snow1snow1rgb(255, 250, 250)#FFFAFA
snow2snow2rgb(238, 233, 233)#EEE9E9
RosyBrown1RosyBrown1rgb(255, 193, 193)#FFC1C1
RosyBrown2RosyBrown2rgb(238, 180, 180)#EEB4B4
snow3snow3rgb(205, 201, 201)#CDC9C9
LightCoralLightCoralrgb(240, 128, 128)#F08080
IndianRed1IndianRed1rgb(255, 106, 106)#FF6A6A
RosyBrown3RosyBrown3rgb(205, 155, 155)#CD9B9B
IndianRed2IndianRed2rgb(238, 99, 99)#EE6363
RosyBrownRosyBrownrgb(188, 143, 143)#BC8F8F
brown1brown1rgb(255, 64, 64)#FF4040
firebrick1firebrick1rgb(255, 48, 48)#FF3030
brown2brown2rgb(238, 59, 59)#EE3B3B
IndianRedIndianRedrgb(205, 92, 92)#CD5C5C
IndianRed3IndianRed3rgb(205, 85, 85)#CD5555
firebrick2firebrick2rgb(238, 44, 44)#EE2C2C
snow4snow4rgb(139, 137, 137)#8B8989
brown3brown3rgb(205, 51, 51)#CD3333
redredrgb(255, 0, 0)#FF0000
red1red1rgb(255, 0, 0)#FF0000
RosyBrown4RosyBrown4rgb(139, 105, 105)#8B6969
firebrick3firebrick3rgb(205, 38, 38)#CD2626
red2red2rgb(238, 0, 0)#EE0000
firebrickfirebrickrgb(178, 34, 34)#B22222
brownbrownrgb(165, 42, 42)#A52A2A
red3red3rgb(205, 0, 0)#CD0000
IndianRed4IndianRed4rgb(139, 58, 58)#8B3A3A
brown4brown4rgb(139, 35, 35)#8B2323
firebrick4firebrick4rgb(139, 26, 26)#8B1A1A
DarkRedDarkRedrgb(139, 0, 0)#8B0000
red4red4rgb(139, 0, 0)#8B0000
maroonmaroonrgb(128, 0, 0)#800000
LightPink1LightPink1rgb(255, 174, 185)#FFAEB9
LightPink3LightPink3rgb(205, 140, 149)#CD8C95
LightPink4LightPink4rgb(139, 95, 101)#8B5F65
LightPink2LightPink2rgb(238, 162, 173)#EEA2AD
LightPinkLightPinkrgb(255, 182, 193)#FFB6C1
pinkpinkrgb(255, 192, 203)#FFC0CB
crimsoncrimsonrgb(220, 20, 60)#DC143C
pink1pink1rgb(255, 181, 197)#FFB5C5
pink2pink2rgb(238, 169, 184)#EEA9B8
pink3pink3rgb(205, 145, 158)#CD919E
pink4pink4rgb(139, 99, 108)#8B636C
PaleVioletRed4PaleVioletRed4rgb(139, 71, 93)#8B475D
PaleVioletRedPaleVioletRedrgb(219, 112, 147)#DB7093
PaleVioletRed2PaleVioletRed2rgb(238, 121, 159)#EE799F
PaleVioletRed1PaleVioletRed1rgb(255, 130, 171)#FF82AB
PaleVioletRed3PaleVioletRed3rgb(205, 104, 137)#CD6889
LavenderBlushLavenderBlushrgb(255, 240, 245)#FFF0F5
LavenderBlush1LavenderBlush1rgb(255, 240, 245)#FFF0F5
LavenderBlush3LavenderBlush3rgb(205, 193, 197)#CDC1C5
LavenderBlush2LavenderBlush2rgb(238, 224, 229)#EEE0E5
LavenderBlush4LavenderBlush4rgb(139, 131, 134)#8B8386
maroonmaroonrgb(176, 48, 96)#B03060
HotPink3HotPink3rgb(205, 96, 144)#CD6090
VioletRed3VioletRed3rgb(205, 50, 120)#CD3278
VioletRed1VioletRed1rgb(255, 62, 150)#FF3E96
VioletRed2VioletRed2rgb(238, 58, 140)#EE3A8C
VioletRed4VioletRed4rgb(139, 34, 82)#8B2252
HotPink2HotPink2rgb(238, 106, 167)#EE6AA7
HotPink1HotPink1rgb(255, 110, 180)#FF6EB4
HotPink4HotPink4rgb(139, 58, 98)#8B3A62
HotPinkHotPinkrgb(255, 105, 180)#FF69B4
DeepPinkDeepPinkrgb(255, 20, 147)#FF1493
DeepPink1DeepPink1rgb(255, 20, 147)#FF1493
DeepPink2DeepPink2rgb(238, 18, 137)#EE1289
DeepPink3DeepPink3rgb(205, 16, 118)#CD1076
DeepPink4DeepPink4rgb(139, 10, 80)#8B0A50
maroon1maroon1rgb(255, 52, 179)#FF34B3
maroon2maroon2rgb(238, 48, 167)#EE30A7
maroon3maroon3rgb(205, 41, 144)#CD2990
maroon4maroon4rgb(139, 28, 98)#8B1C62
MediumVioletRedMediumVioletRedrgb(199, 21, 133)#C71585
VioletRedVioletRedrgb(208, 32, 144)#D02090
orchid2orchid2rgb(238, 122, 233)#EE7AE9
orchidorchidrgb(218, 112, 214)#DA70D6
orchid1orchid1rgb(255, 131, 250)#FF83FA
orchid3orchid3rgb(205, 105, 201)#CD69C9
orchid4orchid4rgb(139, 71, 137)#8B4789
thistle1thistle1rgb(255, 225, 255)#FFE1FF
thistle2thistle2rgb(238, 210, 238)#EED2EE
plum1plum1rgb(255, 187, 255)#FFBBFF
plum2plum2rgb(238, 174, 238)#EEAEEE
thistlethistlergb(216, 191, 216)#D8BFD8
thistle3thistle3rgb(205, 181, 205)#CDB5CD
plumplumrgb(221, 160, 221)#DDA0DD
violetvioletrgb(238, 130, 238)#EE82EE
plum3plum3rgb(205, 150, 205)#CD96CD
thistle4thistle4rgb(139, 123, 139)#8B7B8B
fuchsiafuchsiargb(255, 0, 255)#FF00FF
magentamagentargb(255, 0, 255)#FF00FF
magenta1magenta1rgb(255, 0, 255)#FF00FF
plum4plum4rgb(139, 102, 139)#8B668B
magenta2magenta2rgb(238, 0, 238)#EE00EE
magenta3magenta3rgb(205, 0, 205)#CD00CD
DarkMagentaDarkMagentargb(139, 0, 139)#8B008B
magenta4magenta4rgb(139, 0, 139)#8B008B
purplepurplergb(128, 0, 128)#800080
MediumOrchidMediumOrchidrgb(186, 85, 211)#BA55D3
MediumOrchid1MediumOrchid1rgb(224, 102, 255)#E066FF
MediumOrchid2MediumOrchid2rgb(209, 95, 238)#D15FEE
MediumOrchid3MediumOrchid3rgb(180, 82, 205)#B452CD
MediumOrchid4MediumOrchid4rgb(122, 55, 139)#7A378B
DarkVioletDarkVioletrgb(148, 0, 211)#9400D3
DarkOrchidDarkOrchidrgb(153, 50, 204)#9932CC
DarkOrchid1DarkOrchid1rgb(191, 62, 255)#BF3EFF
DarkOrchid3DarkOrchid3rgb(154, 50, 205)#9A32CD
DarkOrchid2DarkOrchid2rgb(178, 58, 238)#B23AEE
DarkOrchid4DarkOrchid4rgb(104, 34, 139)#68228B
purplepurplergb(160, 32, 240)#A020F0
indigoindigorgb( 75, 0, 130)#4B0082
BlueVioletBlueVioletrgb(138, 43, 226)#8A2BE2
purple2purple2rgb(145, 44, 238)#912CEE
purple3purple3rgb(125, 38, 205)#7D26CD
purple4purple4rgb( 85, 26, 139)#551A8B
purple1purple1rgb(155, 48, 255)#9B30FF
MediumPurpleMediumPurplergb(147, 112, 219)#9370DB
MediumPurple1MediumPurple1rgb(171, 130, 255)#AB82FF
MediumPurple2MediumPurple2rgb(159, 121, 238)#9F79EE
MediumPurple3MediumPurple3rgb(137, 104, 205)#8968CD
MediumPurple4MediumPurple4rgb( 93, 71, 139)#5D478B
DarkSlateBlueDarkSlateBluergb( 72, 61, 139)#483D8B
LightSlateBlueLightSlateBluergb(132, 112, 255)#8470FF
MediumSlateBlueMediumSlateBluergb(123, 104, 238)#7B68EE
SlateBlueSlateBluergb(106, 90, 205)#6A5ACD
SlateBlue1SlateBlue1rgb(131, 111, 255)#836FFF
SlateBlue2SlateBlue2rgb(122, 103, 238)#7A67EE
SlateBlue3SlateBlue3rgb(105, 89, 205)#6959CD
SlateBlue4SlateBlue4rgb( 71, 60, 139)#473C8B
GhostWhiteGhostWhitergb(248, 248, 255)#F8F8FF
lavenderlavenderrgb(230, 230, 250)#E6E6FA
bluebluergb( 0, 0, 255)#0000FF
blue1blue1rgb( 0, 0, 255)#0000FF
blue2blue2rgb( 0, 0, 238)#0000EE
blue3blue3rgb( 0, 0, 205)#0000CD
MediumBlueMediumBluergb( 0, 0, 205)#0000CD
blue4blue4rgb( 0, 0, 139)#00008B
DarkBlueDarkBluergb( 0, 0, 139)#00008B
MidnightBlueMidnightBluergb( 25, 25, 112)#191970
navynavyrgb( 0, 0, 128)#000080
NavyBlueNavyBluergb( 0, 0, 128)#000080
RoyalBlueRoyalBluergb( 65, 105, 225)#4169E1
RoyalBlue1RoyalBlue1rgb( 72, 118, 255)#4876FF
RoyalBlue2RoyalBlue2rgb( 67, 110, 238)#436EEE
RoyalBlue3RoyalBlue3rgb( 58, 95, 205)#3A5FCD
RoyalBlue4RoyalBlue4rgb( 39, 64, 139)#27408B
CornflowerBlueCornflowerBluergb(100, 149, 237)#6495ED
LightSteelBlueLightSteelBluergb(176, 196, 222)#B0C4DE
LightSteelBlue1LightSteelBlue1rgb(202, 225, 255)#CAE1FF
LightSteelBlue2LightSteelBlue2rgb(188, 210, 238)#BCD2EE
LightSteelBlue3LightSteelBlue3rgb(162, 181, 205)#A2B5CD
LightSteelBlue4LightSteelBlue4rgb(110, 123, 139)#6E7B8B
SlateGray4SlateGray4rgb(108, 123, 139)#6C7B8B
SlateGray1SlateGray1rgb(198, 226, 255)#C6E2FF
SlateGray2SlateGray2rgb(185, 211, 238)#B9D3EE
SlateGray3SlateGray3rgb(159, 182, 205)#9FB6CD
LightSlateGrayLightSlateGrayrgb(119, 136, 153)#778899
LightSlateGreyLightSlateGreyrgb(119, 136, 153)#778899
SlateGraySlateGrayrgb(112, 128, 144)#708090
SlateGreySlateGreyrgb(112, 128, 144)#708090
DodgerBlueDodgerBluergb( 30, 144, 255)#1E90FF
DodgerBlue1DodgerBlue1rgb( 30, 144, 255)#1E90FF
DodgerBlue2DodgerBlue2rgb( 28, 134, 238)#1C86EE
DodgerBlue4DodgerBlue4rgb( 16, 78, 139)#104E8B
DodgerBlue3DodgerBlue3rgb( 24, 116, 205)#1874CD
AliceBlueAliceBluergb(240, 248, 255)#F0F8FF
SteelBlue4SteelBlue4rgb( 54, 100, 139)#36648B
SteelBlueSteelBluergb( 70, 130, 180)#4682B4
SteelBlue1SteelBlue1rgb( 99, 184, 255)#63B8FF
SteelBlue2SteelBlue2rgb( 92, 172, 238)#5CACEE
SteelBlue3SteelBlue3rgb( 79, 148, 205)#4F94CD
SkyBlue4SkyBlue4rgb( 74, 112, 139)#4A708B
SkyBlue1SkyBlue1rgb(135, 206, 255)#87CEFF
SkyBlue2SkyBlue2rgb(126, 192, 238)#7EC0EE
SkyBlue3SkyBlue3rgb(108, 166, 205)#6CA6CD
LightSkyBlueLightSkyBluergb(135, 206, 250)#87CEFA
LightSkyBlue4LightSkyBlue4rgb( 96, 123, 139)#607B8B
LightSkyBlue1LightSkyBlue1rgb(176, 226, 255)#B0E2FF
LightSkyBlue2LightSkyBlue2rgb(164, 211, 238)#A4D3EE
LightSkyBlue3LightSkyBlue3rgb(141, 182, 205)#8DB6CD
SkyBlueSkyBluergb(135, 206, 235)#87CEEB
LightBlue3LightBlue3rgb(154, 192, 205)#9AC0CD
DeepSkyBlueDeepSkyBluergb( 0, 191, 255)#00BFFF
DeepSkyBlue1DeepSkyBlue1rgb( 0, 191, 255)#00BFFF
DeepSkyBlue2DeepSkyBlue2rgb( 0, 178, 238)#00B2EE
DeepSkyBlue4DeepSkyBlue4rgb( 0, 104, 139)#00688B
DeepSkyBlue3DeepSkyBlue3rgb( 0, 154, 205)#009ACD
LightBlue1LightBlue1rgb(191, 239, 255)#BFEFFF
LightBlue2LightBlue2rgb(178, 223, 238)#B2DFEE
LightBlueLightBluergb(173, 216, 230)#ADD8E6
LightBlue4LightBlue4rgb(104, 131, 139)#68838B
PowderBluePowderBluergb(176, 224, 230)#B0E0E6
CadetBlue1CadetBlue1rgb(152, 245, 255)#98F5FF
CadetBlue2CadetBlue2rgb(142, 229, 238)#8EE5EE
CadetBlue3CadetBlue3rgb(122, 197, 205)#7AC5CD
CadetBlue4CadetBlue4rgb( 83, 134, 139)#53868B
turquoise1turquoise1rgb( 0, 245, 255)#00F5FF
turquoise2turquoise2rgb( 0, 229, 238)#00E5EE
turquoise3turquoise3rgb( 0, 197, 205)#00C5CD
turquoise4turquoise4rgb( 0, 134, 139)#00868B
cadet bluecadet bluergb( 95, 158, 160)#5F9EA0
CadetBlueCadetBluergb( 95, 158, 160)#5F9EA0
DarkTurquoiseDarkTurquoisergb( 0, 206, 209)#00CED1
azureazurergb(240, 255, 255)#F0FFFF
azure1azure1rgb(240, 255, 255)#F0FFFF
LightCyanLightCyanrgb(224, 255, 255)#E0FFFF
LightCyan1LightCyan1rgb(224, 255, 255)#E0FFFF
azure2azure2rgb(224, 238, 238)#E0EEEE
LightCyan2LightCyan2rgb(209, 238, 238)#D1EEEE
PaleTurquoise1PaleTurquoise1rgb(187, 255, 255)#BBFFFF
PaleTurquoisePaleTurquoisergb(175, 238, 238)#AFEEEE
PaleTurquoise2PaleTurquoise2rgb(174, 238, 238)#AEEEEE
DarkSlateGray1DarkSlateGray1rgb(151, 255, 255)#97FFFF
azure3azure3rgb(193, 205, 205)#C1CDCD
LightCyan3LightCyan3rgb(180, 205, 205)#B4CDCD
DarkSlateGray2DarkSlateGray2rgb(141, 238, 238)#8DEEEE
PaleTurquoise3PaleTurquoise3rgb(150, 205, 205)#96CDCD
DarkSlateGray3DarkSlateGray3rgb(121, 205, 205)#79CDCD
azure4azure4rgb(131, 139, 139)#838B8B
LightCyan4LightCyan4rgb(122, 139, 139)#7A8B8B
aquaaquargb( 0, 255, 255)#00FFFF
cyancyanrgb( 0, 255, 255)#00FFFF
cyan1cyan1rgb( 0, 255, 255)#00FFFF
PaleTurquoise4PaleTurquoise4rgb(102, 139, 139)#668B8B
cyan2cyan2rgb( 0, 238, 238)#00EEEE
DarkSlateGray4DarkSlateGray4rgb( 82, 139, 139)#528B8B
cyan3cyan3rgb( 0, 205, 205)#00CDCD
cyan4cyan4rgb( 0, 139, 139)#008B8B
DarkCyanDarkCyanrgb( 0, 139, 139)#008B8B
tealtealrgb( 0, 128, 128)#008080
DarkSlateGrayDarkSlateGrayrgb( 47, 79, 79)#2F4F4F
DarkSlateGreyDarkSlateGreyrgb( 47, 79, 79)#2F4F4F
MediumTurquoiseMediumTurquoisergb( 72, 209, 204)#48D1CC
LightSeaGreenLightSeaGreenrgb( 32, 178, 170)#20B2AA
turquoiseturquoisergb( 64, 224, 208)#40E0D0
aquamarine4aquamarine4rgb( 69, 139, 116)#458B74
aquamarineaquamarinergb(127, 255, 212)#7FFFD4
aquamarine1aquamarine1rgb(127, 255, 212)#7FFFD4
aquamarine2aquamarine2rgb(118, 238, 198)#76EEC6
aquamarine3aquamarine3rgb(102, 205, 170)#66CDAA
MediumAquamarineMediumAquamarinergb(102, 205, 170)#66CDAA
MediumSpringGreenMediumSpringGreenrgb( 0, 250, 154)#00FA9A
MintCreamMintCreamrgb(245, 255, 250)#F5FFFA
SpringGreenSpringGreenrgb( 0, 255, 127)#00FF7F
SpringGreen1SpringGreen1rgb( 0, 255, 127)#00FF7F
SpringGreen2SpringGreen2rgb( 0, 238, 118)#00EE76
SpringGreen3SpringGreen3rgb( 0, 205, 102)#00CD66
SpringGreen4SpringGreen4rgb( 0, 139, 69)#008B45
MediumSeaGreenMediumSeaGreenrgb( 60, 179, 113)#3CB371
SeaGreenSeaGreenrgb( 46, 139, 87)#2E8B57
SeaGreen3SeaGreen3rgb( 67, 205, 128)#43CD80
SeaGreen1SeaGreen1rgb( 84, 255, 159)#54FF9F
SeaGreen4SeaGreen4rgb( 46, 139, 87)#2E8B57
SeaGreen2SeaGreen2rgb( 78, 238, 148)#4EEE94
MediumForestGreenMediumForestGreenrgb( 50, 129, 75)#32814B
honeydewhoneydewrgb(240, 255, 240)#F0FFF0
honeydew1honeydew1rgb(240, 255, 240)#F0FFF0
honeydew2honeydew2rgb(224, 238, 224)#E0EEE0
DarkSeaGreen1DarkSeaGreen1rgb(193, 255, 193)#C1FFC1
DarkSeaGreen2DarkSeaGreen2rgb(180, 238, 180)#B4EEB4
PaleGreen1PaleGreen1rgb(154, 255, 154)#9AFF9A
PaleGreenPaleGreenrgb(152, 251, 152)#98FB98
honeydew3honeydew3rgb(193, 205, 193)#C1CDC1
LightGreenLightGreenrgb(144, 238, 144)#90EE90
PaleGreen2PaleGreen2rgb(144, 238, 144)#90EE90
DarkSeaGreen3DarkSeaGreen3rgb(155, 205, 155)#9BCD9B
DarkSeaGreenDarkSeaGreenrgb(143, 188, 143)#8FBC8F
PaleGreen3PaleGreen3rgb(124, 205, 124)#7CCD7C
honeydew4honeydew4rgb(131, 139, 131)#838B83
green1green1rgb( 0, 255, 0)#00FF00
limelimergb( 0, 255, 0)#00FF00
LimeGreenLimeGreenrgb( 50, 205, 50)#32CD32
DarkSeaGreen4DarkSeaGreen4rgb(105, 139, 105)#698B69
green2green2rgb( 0, 238, 0)#00EE00
PaleGreen4PaleGreen4rgb( 84, 139, 84)#548B54
green3green3rgb( 0, 205, 0)#00CD00
ForestGreenForestGreenrgb( 34, 139, 34)#228B22
green4green4rgb( 0, 139, 0)#008B00
greengreenrgb( 0, 128, 0)#008000
DarkGreenDarkGreenrgb( 0, 100, 0)#006400
LawnGreenLawnGreenrgb(124, 252, 0)#7CFC00
chartreusechartreusergb(127, 255, 0)#7FFF00
chartreuse1chartreuse1rgb(127, 255, 0)#7FFF00
chartreuse2chartreuse2rgb(118, 238, 0)#76EE00
chartreuse3chartreuse3rgb(102, 205, 0)#66CD00
chartreuse4chartreuse4rgb( 69, 139, 0)#458B00
GreenYellowGreenYellowrgb(173, 255, 47)#ADFF2F
DarkOliveGreen3DarkOliveGreen3rgb(162, 205, 90)#A2CD5A
DarkOliveGreen1DarkOliveGreen1rgb(202, 255, 112)#CAFF70
DarkOliveGreen2DarkOliveGreen2rgb(188, 238, 104)#BCEE68
DarkOliveGreen4DarkOliveGreen4rgb(110, 139, 61)#6E8B3D
DarkOliveGreenDarkOliveGreenrgb( 85, 107, 47)#556B2F
OliveDrabOliveDrabrgb(107, 142, 35)#6B8E23
OliveDrab1OliveDrab1rgb(192, 255, 62)#C0FF3E
OliveDrab2OliveDrab2rgb(179, 238, 58)#B3EE3A
OliveDrab3OliveDrab3rgb(154, 205, 50)#9ACD32
YellowGreenYellowGreenrgb(154, 205, 50)#9ACD32
OliveDrab4OliveDrab4rgb(105, 139, 34)#698B22
ivoryivoryrgb(255, 255, 240)#FFFFF0
ivory1ivory1rgb(255, 255, 240)#FFFFF0
LightYellowLightYellowrgb(255, 255, 224)#FFFFE0
LightYellow1LightYellow1rgb(255, 255, 224)#FFFFE0
beigebeigergb(245, 245, 220)#F5F5DC
ivory2ivory2rgb(238, 238, 224)#EEEEE0
LightGoldenrodYellowLightGoldenrodYellowrgb(250, 250, 210)#FAFAD2
LightYellow2LightYellow2rgb(238, 238, 209)#EEEED1
ivory3ivory3rgb(205, 205, 193)#CDCDC1
LightYellow3LightYellow3rgb(205, 205, 180)#CDCDB4
ivory4ivory4rgb(139, 139, 131)#8B8B83
LightYellow4LightYellow4rgb(139, 139, 122)#8B8B7A
yellowyellowrgb(255, 255, 0)#FFFF00
yellow1yellow1rgb(255, 255, 0)#FFFF00
yellow2yellow2rgb(238, 238, 0)#EEEE00
yellow3yellow3rgb(205, 205, 0)#CDCD00
yellow4yellow4rgb(139, 139, 0)#8B8B00
oliveolivergb(128, 128, 0)#808000
DarkKhakiDarkKhakirgb(189, 183, 107)#BDB76B
khaki2khaki2rgb(238, 230, 133)#EEE685
LemonChiffon4LemonChiffon4rgb(139, 137, 112)#8B8970
khaki1khaki1rgb(255, 246, 143)#FFF68F
khaki3khaki3rgb(205, 198, 115)#CDC673
khaki4khaki4rgb(139, 134, 78)#8B864E
PaleGoldenrodPaleGoldenrodrgb(238, 232, 170)#EEE8AA
LemonChiffonLemonChiffonrgb(255, 250, 205)#FFFACD
LemonChiffon1LemonChiffon1rgb(255, 250, 205)#FFFACD
khakikhakirgb(240, 230, 140)#F0E68C
LemonChiffon3LemonChiffon3rgb(205, 201, 165)#CDC9A5
LemonChiffon2LemonChiffon2rgb(238, 233, 191)#EEE9BF
MediumGoldenRodMediumGoldenRodrgb(209, 193, 102)#D1C166
cornsilk4cornsilk4rgb(139, 136, 120)#8B8878
goldgoldrgb(255, 215, 0)#FFD700
gold1gold1rgb(255, 215, 0)#FFD700
gold2gold2rgb(238, 201, 0)#EEC900
gold3gold3rgb(205, 173, 0)#CDAD00
gold4gold4rgb(139, 117, 0)#8B7500
LightGoldenrodLightGoldenrodrgb(238, 221, 130)#EEDD82
LightGoldenrod4LightGoldenrod4rgb(139, 129, 76)#8B814C
LightGoldenrod1LightGoldenrod1rgb(255, 236, 139)#FFEC8B
LightGoldenrod3LightGoldenrod3rgb(205, 190, 112)#CDBE70
LightGoldenrod2LightGoldenrod2rgb(238, 220, 130)#EEDC82
cornsilk3cornsilk3rgb(205, 200, 177)#CDC8B1
cornsilk2cornsilk2rgb(238, 232, 205)#EEE8CD
cornsilkcornsilkrgb(255, 248, 220)#FFF8DC
cornsilk1cornsilk1rgb(255, 248, 220)#FFF8DC
goldenrodgoldenrodrgb(218, 165, 32)#DAA520
goldenrod1goldenrod1rgb(255, 193, 37)#FFC125
goldenrod2goldenrod2rgb(238, 180, 34)#EEB422
goldenrod3goldenrod3rgb(205, 155, 29)#CD9B1D
goldenrod4goldenrod4rgb(139, 105, 20)#8B6914
DarkGoldenrodDarkGoldenrodrgb(184, 134, 11)#B8860B
DarkGoldenrod1DarkGoldenrod1rgb(255, 185, 15)#FFB90F
DarkGoldenrod2DarkGoldenrod2rgb(238, 173, 14)#EEAD0E
DarkGoldenrod3DarkGoldenrod3rgb(205, 149, 12)#CD950C
DarkGoldenrod4DarkGoldenrod4rgb(139, 101, 8)#8B6508
FloralWhiteFloralWhitergb(255, 250, 240)#FFFAF0
wheat2wheat2rgb(238, 216, 174)#EED8AE
OldLaceOldLacergb(253, 245, 230)#FDF5E6
wheatwheatrgb(245, 222, 179)#F5DEB3
wheat1wheat1rgb(255, 231, 186)#FFE7BA
wheat3wheat3rgb(205, 186, 150)#CDBA96
orangeorangergb(255, 165, 0)#FFA500
orange1orange1rgb(255, 165, 0)#FFA500
orange2orange2rgb(238, 154, 0)#EE9A00
orange3orange3rgb(205, 133, 0)#CD8500
orange4orange4rgb(139, 90, 0)#8B5A00
wheat4wheat4rgb(139, 126, 102)#8B7E66
moccasinmoccasinrgb(255, 228, 181)#FFE4B5
PapayaWhipPapayaWhiprgb(255, 239, 213)#FFEFD5
NavajoWhite3NavajoWhite3rgb(205, 179, 139)#CDB38B
BlanchedAlmondBlanchedAlmondrgb(255, 235, 205)#FFEBCD
NavajoWhiteNavajoWhitergb(255, 222, 173)#FFDEAD
NavajoWhite1NavajoWhite1rgb(255, 222, 173)#FFDEAD
NavajoWhite2NavajoWhite2rgb(238, 207, 161)#EECFA1
NavajoWhite4NavajoWhite4rgb(139, 121, 94)#8B795E
AntiqueWhite4AntiqueWhite4rgb(139, 131, 120)#8B8378
AntiqueWhiteAntiqueWhitergb(250, 235, 215)#FAEBD7
tantanrgb(210, 180, 140)#D2B48C
bisque4bisque4rgb(139, 125, 107)#8B7D6B
burlywoodburlywoodrgb(222, 184, 135)#DEB887
AntiqueWhite2AntiqueWhite2rgb(238, 223, 204)#EEDFCC
burlywood1burlywood1rgb(255, 211, 155)#FFD39B
burlywood3burlywood3rgb(205, 170, 125)#CDAA7D
burlywood2burlywood2rgb(238, 197, 145)#EEC591
AntiqueWhite1AntiqueWhite1rgb(255, 239, 219)#FFEFDB
burlywood4burlywood4rgb(139, 115, 85)#8B7355
AntiqueWhite3AntiqueWhite3rgb(205, 192, 176)#CDC0B0
DarkOrangeDarkOrangergb(255, 140, 0)#FF8C00
bisque2bisque2rgb(238, 213, 183)#EED5B7
bisquebisquergb(255, 228, 196)#FFE4C4
bisque1bisque1rgb(255, 228, 196)#FFE4C4
bisque3bisque3rgb(205, 183, 158)#CDB79E
DarkOrange1DarkOrange1rgb(255, 127, 0)#FF7F00
linenlinenrgb(250, 240, 230)#FAF0E6
DarkOrange2DarkOrange2rgb(238, 118, 0)#EE7600
DarkOrange3DarkOrange3rgb(205, 102, 0)#CD6600
DarkOrange4DarkOrange4rgb(139, 69, 0)#8B4500
peruperurgb(205, 133, 63)#CD853F
tan1tan1rgb(255, 165, 79)#FFA54F
tan2tan2rgb(238, 154, 73)#EE9A49
tan3tan3rgb(205, 133, 63)#CD853F
tan4tan4rgb(139, 90, 43)#8B5A2B
PeachPuffPeachPuffrgb(255, 218, 185)#FFDAB9
PeachPuff1PeachPuff1rgb(255, 218, 185)#FFDAB9
PeachPuff4PeachPuff4rgb(139, 119, 101)#8B7765
PeachPuff2PeachPuff2rgb(238, 203, 173)#EECBAD
PeachPuff3PeachPuff3rgb(205, 175, 149)#CDAF95
SandyBrownSandyBrownrgb(244, 164, 96)#F4A460
seashell4seashell4rgb(139, 134, 130)#8B8682
seashell2seashell2rgb(238, 229, 222)#EEE5DE
seashell3seashell3rgb(205, 197, 191)#CDC5BF
chocolatechocolatergb(210, 105, 30)#D2691E
chocolate1chocolate1rgb(255, 127, 36)#FF7F24
chocolate2chocolate2rgb(238, 118, 33)#EE7621
chocolate3chocolate3rgb(205, 102, 29)#CD661D
chocolate4chocolate4rgb(139, 69, 19)#8B4513
SaddleBrownSaddleBrownrgb(139, 69, 19)#8B4513
seashellseashellrgb(255, 245, 238)#FFF5EE
seashell1seashell1rgb(255, 245, 238)#FFF5EE
sienna4sienna4rgb(139, 71, 38)#8B4726
siennasiennargb(160, 82, 45)#A0522D
sienna1sienna1rgb(255, 130, 71)#FF8247
sienna2sienna2rgb(238, 121, 66)#EE7942
sienna3sienna3rgb(205, 104, 57)#CD6839
LightSalmon3LightSalmon3rgb(205, 129, 98)#CD8162
LightSalmonLightSalmonrgb(255, 160, 122)#FFA07A
LightSalmon1LightSalmon1rgb(255, 160, 122)#FFA07A
LightSalmon4LightSalmon4rgb(139, 87, 66)#8B5742
LightSalmon2LightSalmon2rgb(238, 149, 114)#EE9572
coralcoralrgb(255, 127, 80)#FF7F50
OrangeRedOrangeRedrgb(255, 69, 0)#FF4500
OrangeRed1OrangeRed1rgb(255, 69, 0)#FF4500
OrangeRed2OrangeRed2rgb(238, 64, 0)#EE4000
OrangeRed3OrangeRed3rgb(205, 55, 0)#CD3700
OrangeRed4OrangeRed4rgb(139, 37, 0)#8B2500
DarkSalmonDarkSalmonrgb(233, 150, 122)#E9967A
salmon1salmon1rgb(255, 140, 105)#FF8C69
salmon2salmon2rgb(238, 130, 98)#EE8262
salmon3salmon3rgb(205, 112, 84)#CD7054
salmon4salmon4rgb(139, 76, 57)#8B4C39
coral1coral1rgb(255, 114, 86)#FF7256
coral2coral2rgb(238, 106, 80)#EE6A50
coral3coral3rgb(205, 91, 69)#CD5B45
coral4coral4rgb(139, 62, 47)#8B3E2F
tomato4tomato4rgb(139, 54, 38)#8B3626
tomatotomatorgb(255, 99, 71)#FF6347
tomato1tomato1rgb(255, 99, 71)#FF6347
tomato2tomato2rgb(238, 92, 66)#EE5C42
tomato3tomato3rgb(205, 79, 57)#CD4F39
MistyRose4MistyRose4rgb(139, 125, 123)#8B7D7B
MistyRose2MistyRose2rgb(238, 213, 210)#EED5D2
MistyRoseMistyRosergb(255, 228, 225)#FFE4E1
MistyRose1MistyRose1rgb(255, 228, 225)#FFE4E1
salmonsalmonrgb(250, 128, 114)#FA8072
MistyRose3MistyRose3rgb(205, 183, 181)#CDB7B5
whitewhitergb(255, 255, 255)#FFFFFF
gray100gray100rgb(255, 255, 255)#FFFFFF
grey100grey100rgb(255, 255, 255)#FFFFFF
grey100grey100rgb(255, 255, 255)#FFFFFF
gray99gray99rgb(252, 252, 252)#FCFCFC
grey99grey99rgb(252, 252, 252)#FCFCFC
gray98gray98rgb(250, 250, 250)#FAFAFA
grey98grey98rgb(250, 250, 250)#FAFAFA
gray97gray97rgb(247, 247, 247)#F7F7F7
grey97grey97rgb(247, 247, 247)#F7F7F7
gray96gray96rgb(245, 245, 245)#F5F5F5
grey96grey96rgb(245, 245, 245)#F5F5F5
WhiteSmokeWhiteSmokergb(245, 245, 245)#F5F5F5
gray95gray95rgb(242, 242, 242)#F2F2F2
grey95grey95rgb(242, 242, 242)#F2F2F2
gray94gray94rgb(240, 240, 240)#F0F0F0
grey94grey94rgb(240, 240, 240)#F0F0F0
gray93gray93rgb(237, 237, 237)#EDEDED
grey93grey93rgb(237, 237, 237)#EDEDED
gray92gray92rgb(235, 235, 235)#EBEBEB
grey92grey92rgb(235, 235, 235)#EBEBEB
gray91gray91rgb(232, 232, 232)#E8E8E8
grey91grey91rgb(232, 232, 232)#E8E8E8
gray90gray90rgb(229, 229, 229)#E5E5E5
grey90grey90rgb(229, 229, 229)#E5E5E5
gray89gray89rgb(227, 227, 227)#E3E3E3
grey89grey89rgb(227, 227, 227)#E3E3E3
gray88gray88rgb(224, 224, 224)#E0E0E0
grey88grey88rgb(224, 224, 224)#E0E0E0
gray87gray87rgb(222, 222, 222)#DEDEDE
grey87grey87rgb(222, 222, 222)#DEDEDE
gainsborogainsbororgb(220, 220, 220)#DCDCDC
gray86gray86rgb(219, 219, 219)#DBDBDB
grey86grey86rgb(219, 219, 219)#DBDBDB
gray85gray85rgb(217, 217, 217)#D9D9D9
grey85grey85rgb(217, 217, 217)#D9D9D9
gray84gray84rgb(214, 214, 214)#D6D6D6
grey84grey84rgb(214, 214, 214)#D6D6D6
gray83gray83rgb(212, 212, 212)#D4D4D4
grey83grey83rgb(212, 212, 212)#D4D4D4
LightGrayLightGrayrgb(211, 211, 211)#D3D3D3
LightGreyLightGreyrgb(211, 211, 211)#D3D3D3
gray82gray82rgb(209, 209, 209)#D1D1D1
grey82grey82rgb(209, 209, 209)#D1D1D1
gray81gray81rgb(207, 207, 207)#CFCFCF
grey81grey81rgb(207, 207, 207)#CFCFCF
gray80gray80rgb(204, 204, 204)#CCCCCC
grey80grey80rgb(204, 204, 204)#CCCCCC
gray79gray79rgb(201, 201, 201)#C9C9C9
grey79grey79rgb(201, 201, 201)#C9C9C9
gray78gray78rgb(199, 199, 199)#C7C7C7
grey78grey78rgb(199, 199, 199)#C7C7C7
gray77gray77rgb(196, 196, 196)#C4C4C4
grey77grey77rgb(196, 196, 196)#C4C4C4
gray76gray76rgb(194, 194, 194)#C2C2C2
grey76grey76rgb(194, 194, 194)#C2C2C2
silversilverrgb(192, 192, 192)#C0C0C0
gray75gray75rgb(191, 191, 191)#BFBFBF
grey75grey75rgb(191, 191, 191)#BFBFBF
gray74gray74rgb(189, 189, 189)#BDBDBD
grey74grey74rgb(189, 189, 189)#BDBDBD
gray73gray73rgb(186, 186, 186)#BABABA
grey73grey73rgb(186, 186, 186)#BABABA
gray72gray72rgb(184, 184, 184)#B8B8B8
grey72grey72rgb(184, 184, 184)#B8B8B8
gray71gray71rgb(181, 181, 181)#B5B5B5
grey71grey71rgb(181, 181, 181)#B5B5B5
gray70gray70rgb(179, 179, 179)#B3B3B3
grey70grey70rgb(179, 179, 179)#B3B3B3
gray69gray69rgb(176, 176, 176)#B0B0B0
grey69grey69rgb(176, 176, 176)#B0B0B0
gray68gray68rgb(173, 173, 173)#ADADAD
grey68grey68rgb(173, 173, 173)#ADADAD
gray67gray67rgb(171, 171, 171)#ABABAB
grey67grey67rgb(171, 171, 171)#ABABAB
DarkGrayDarkGrayrgb(169, 169, 169)#A9A9A9
DarkGreyDarkGreyrgb(169, 169, 169)#A9A9A9
gray66gray66rgb(168, 168, 168)#A8A8A8
grey66grey66rgb(168, 168, 168)#A8A8A8
gray65gray65rgb(166, 166, 166)#A6A6A6
grey65grey65rgb(166, 166, 166)#A6A6A6
gray64gray64rgb(163, 163, 163)#A3A3A3
grey64grey64rgb(163, 163, 163)#A3A3A3
gray63gray63rgb(161, 161, 161)#A1A1A1
grey63grey63rgb(161, 161, 161)#A1A1A1
gray62gray62rgb(158, 158, 158)#9E9E9E
grey62grey62rgb(158, 158, 158)#9E9E9E
gray61gray61rgb(156, 156, 156)#9C9C9C
grey61grey61rgb(156, 156, 156)#9C9C9C
gray60gray60rgb(153, 153, 153)#999999
grey60grey60rgb(153, 153, 153)#999999
gray59gray59rgb(150, 150, 150)#969696
grey59grey59rgb(150, 150, 150)#969696
gray58gray58rgb(148, 148, 148)#949494
grey58grey58rgb(148, 148, 148)#949494
gray57gray57rgb(145, 145, 145)#919191
grey57grey57rgb(145, 145, 145)#919191
gray56gray56rgb(143, 143, 143)#8F8F8F
grey56grey56rgb(143, 143, 143)#8F8F8F
gray55gray55rgb(140, 140, 140)#8C8C8C
grey55grey55rgb(140, 140, 140)#8C8C8C
gray54gray54rgb(138, 138, 138)#8A8A8A
grey54grey54rgb(138, 138, 138)#8A8A8A
gray53gray53rgb(135, 135, 135)#878787
grey53grey53rgb(135, 135, 135)#878787
gray52gray52rgb(133, 133, 133)#858585
grey52grey52rgb(133, 133, 133)#858585
gray51gray51rgb(130, 130, 130)#828282
grey51grey51rgb(130, 130, 130)#828282
fractalfractalrgb(128, 128, 128)#808080
gray50gray50rgb(127, 127, 127)#7F7F7F
grey50grey50rgb(127, 127, 127)#7F7F7F
graygrayrgb(126, 126, 126)#7E7E7E
gray49gray49rgb(125, 125, 125)#7D7D7D
grey49grey49rgb(125, 125, 125)#7D7D7D
gray48gray48rgb(122, 122, 122)#7A7A7A
grey48grey48rgb(122, 122, 122)#7A7A7A
gray47gray47rgb(120, 120, 120)#787878
grey47grey47rgb(120, 120, 120)#787878
gray46gray46rgb(117, 117, 117)#757575
grey46grey46rgb(117, 117, 117)#757575
gray45gray45rgb(115, 115, 115)#737373
grey45grey45rgb(115, 115, 115)#737373
gray44gray44rgb(112, 112, 112)#707070
grey44grey44rgb(112, 112, 112)#707070
gray43gray43rgb(110, 110, 110)#6E6E6E
grey43grey43rgb(110, 110, 110)#6E6E6E
gray42gray42rgb(107, 107, 107)#6B6B6B
grey42grey42rgb(107, 107, 107)#6B6B6B
DimGrayDimGrayrgb(105, 105, 105)#696969
DimGreyDimGreyrgb(105, 105, 105)#696969
gray41gray41rgb(105, 105, 105)#696969
grey41grey41rgb(105, 105, 105)#696969
gray40gray40rgb(102, 102, 102)#666666
grey40grey40rgb(102, 102, 102)#666666
gray39gray39rgb( 99, 99, 99)#636363
grey39grey39rgb( 99, 99, 99)#636363
gray38gray38rgb( 97, 97, 97)#616161
grey38grey38rgb( 97, 97, 97)#616161
gray37gray37rgb( 94, 94, 94)#5E5E5E
grey37grey37rgb( 94, 94, 94)#5E5E5E
gray36gray36rgb( 92, 92, 92)#5C5C5C
grey36grey36rgb( 92, 92, 92)#5C5C5C
gray35gray35rgb( 89, 89, 89)#595959
grey35grey35rgb( 89, 89, 89)#595959
gray34gray34rgb( 87, 87, 87)#575757
grey34grey34rgb( 87, 87, 87)#575757
gray33gray33rgb( 84, 84, 84)#545454
grey33grey33rgb( 84, 84, 84)#545454
gray32gray32rgb( 82, 82, 82)#525252
grey32grey32rgb( 82, 82, 82)#525252
gray31gray31rgb( 79, 79, 79)#4F4F4F
grey31grey31rgb( 79, 79, 79)#4F4F4F
gray30gray30rgb( 77, 77, 77)#4D4D4D
grey30grey30rgb( 77, 77, 77)#4D4D4D
gray29gray29rgb( 74, 74, 74)#4A4A4A
grey29grey29rgb( 74, 74, 74)#4A4A4A
gray28gray28rgb( 71, 71, 71)#474747
grey28grey28rgb( 71, 71, 71)#474747
gray27gray27rgb( 69, 69, 69)#454545
grey27grey27rgb( 69, 69, 69)#454545
gray26gray26rgb( 66, 66, 66)#424242
grey26grey26rgb( 66, 66, 66)#424242
gray25gray25rgb( 64, 64, 64)#404040
grey25grey25rgb( 64, 64, 64)#404040
gray24gray24rgb( 61, 61, 61)#3D3D3D
grey24grey24rgb( 61, 61, 61)#3D3D3D
gray23gray23rgb( 59, 59, 59)#3B3B3B
grey23grey23rgb( 59, 59, 59)#3B3B3B
gray22gray22rgb( 56, 56, 56)#383838
grey22grey22rgb( 56, 56, 56)#383838
gray21gray21rgb( 54, 54, 54)#363636
grey21grey21rgb( 54, 54, 54)#363636
gray20gray20rgb( 51, 51, 51)#333333
grey20grey20rgb( 51, 51, 51)#333333
gray19gray19rgb( 48, 48, 48)#303030
grey19grey19rgb( 48, 48, 48)#303030
gray18gray18rgb( 46, 46, 46)#2E2E2E
grey18grey18rgb( 46, 46, 46)#2E2E2E
gray17gray17rgb( 43, 43, 43)#2B2B2B
grey17grey17rgb( 43, 43, 43)#2B2B2B
gray16gray16rgb( 41, 41, 41)#292929
grey16grey16rgb( 41, 41, 41)#292929
gray15gray15rgb( 38, 38, 38)#262626
grey15grey15rgb( 38, 38, 38)#262626
gray14gray14rgb( 36, 36, 36)#242424
grey14grey14rgb( 36, 36, 36)#242424
gray13gray13rgb( 33, 33, 33)#212121
grey13grey13rgb( 33, 33, 33)#212121
gray12gray12rgb( 31, 31, 31)#1F1F1F
grey12grey12rgb( 31, 31, 31)#1F1F1F
gray11gray11rgb( 28, 28, 28)#1C1C1C
grey11grey11rgb( 28, 28, 28)#1C1C1C
gray10gray10rgb( 26, 26, 26)#1A1A1A
grey10grey10rgb( 26, 26, 26)#1A1A1A
gray9gray9rgb( 23, 23, 23)#171717
grey9grey9rgb( 23, 23, 23)#171717
gray8gray8rgb( 20, 20, 20)#141414
grey8grey8rgb( 20, 20, 20)#141414
gray7gray7rgb( 18, 18, 18)#121212
grey7grey7rgb( 18, 18, 18)#121212
gray6gray6rgb( 15, 15, 15)#0F0F0F
grey6grey6rgb( 15, 15, 15)#0F0F0F
gray5gray5rgb( 13, 13, 13)#0D0D0D
grey5grey5rgb( 13, 13, 13)#0D0D0D
gray4gray4rgb( 10, 10, 10)#0A0A0A
grey4grey4rgb( 10, 10, 10)#0A0A0A
gray3gray3rgb( 8, 8, 8)#080808
grey3grey3rgb( 8, 8, 8)#080808
gray2gray2rgb( 5, 5, 5)#050505
grey2grey2rgb( 5, 5, 5)#050505
gray1gray1rgb( 3, 3, 3)#030303
grey1grey1rgb( 3, 3, 3)#030303
blackblackrgb( 0, 0, 0)#000000
gray0gray0rgb( 0, 0, 0)#000000
grey0grey0rgb( 0, 0, 0)#000000
opaqueopaquergb( 0, 0, 0)#000000
nonenonergba( 0, 0, 0, 0.0)#00000000
transparenttransparentrgba( 0, 0, 0, 0.0)#00000000
- -
- -
- - diff --git a/share/frontend/imgrid/colors/junk/colorsbest.html b/share/frontend/imgrid/colors/junk/colorsbest.html deleted file mode 100755 index 047eb6b..0000000 --- a/share/frontend/imgrid/colors/junk/colorsbest.html +++ /dev/null @@ -1,3606 +0,0 @@ - - - - -
-
-snow
-
-snow1
-
-snow2
-
-RosyBrown1
-
-RosyBrown2
-
-snow3
-
-LightCoral
-
-IndianRed1
-
-RosyBrown3
-
-IndianRed2
-
-RosyBrown
-
-brown1
-
-firebrick1
-
-brown2
-
-IndianRed
-
-IndianRed3
-
-firebrick2
-
-snow4
-
-brown3
-
-red
-
-red1
-
-RosyBrown4
-
-firebrick3
-
-red2
-
-firebrick
-
-brown
-
-red3
-
-IndianRed4
-
-brown4
-
-firebrick4
-
-DarkRed
-
-red4
-
-maroon
-
-LightPink1
-
-LightPink3
-
-LightPink4
-
-LightPink2
-
-LightPink
-
-pink
-
-crimson
-
-pink1
-
-pink2
-
-pink3
-
-pink4
-
-PaleVioletRed4
-
-PaleVioletRed
-
-PaleVioletRed2
-
-PaleVioletRed1
-
-PaleVioletRed3
-
-LavenderBlush
-
-LavenderBlush1
-
-LavenderBlush3
-
-LavenderBlush2
-
-LavenderBlush4
-
-maroon
-
-HotPink3
-
-VioletRed3
-
-VioletRed1
-
-VioletRed2
-
-VioletRed4
-
-HotPink2
-
-HotPink1
-
-HotPink4
-
-HotPink
-
-DeepPink
-
-DeepPink1
-
-DeepPink2
-
-DeepPink3
-
-DeepPink4
-
-maroon1
-
-maroon2
-
-maroon3
-
-maroon4
-
-MediumVioletRed
-
-VioletRed
-
-orchid2
-
-orchid
-
-orchid1
-
-orchid3
-
-orchid4
-
-thistle1
-
-thistle2
-
-plum1
-
-plum2
-
-thistle
-
-thistle3
-
-plum
-
-violet
-
-plum3
-
-thistle4
-
-fuchsia
-
-magenta
-
-magenta1
-
-plum4
-
-magenta2
-
-magenta3
-
-DarkMagenta
-
-magenta4
-
-purple
-
-MediumOrchid
-
-MediumOrchid1
-
-MediumOrchid2
-
-MediumOrchid3
-
-MediumOrchid4
-
-DarkViolet
-
-DarkOrchid
-
-DarkOrchid1
-
-DarkOrchid3
-
-DarkOrchid2
-
-DarkOrchid4
-
-purple
-
-indigo
-
-BlueViolet
-
-purple2
-
-purple3
-
-purple4
-
-purple1
-
-MediumPurple
-
-MediumPurple1
-
-MediumPurple2
-
-MediumPurple3
-
-MediumPurple4
-
-DarkSlateBlue
-
-LightSlateBlue
-
-MediumSlateBlue
-
-SlateBlue
-
-SlateBlue1
-
-SlateBlue2
-
-SlateBlue3
-
-SlateBlue4
-
-GhostWhite
-
-lavender
-
-blue
-
-blue1
-
-blue2
-
-blue3
-
-MediumBlue
-
-blue4
-
-DarkBlue
-
-MidnightBlue
-
-navy
-
-NavyBlue
-
-RoyalBlue
-
-RoyalBlue1
-
-RoyalBlue2
-
-RoyalBlue3
-
-RoyalBlue4
-
-CornflowerBlue
-
-LightSteelBlue
-
-LightSteelBlue1
-
-LightSteelBlue2
-
-LightSteelBlue3
-
-LightSteelBlue4
-
-SlateGray4
-
-SlateGray1
-
-SlateGray2
-
-SlateGray3
-
-LightSlateGray
-
-LightSlateGrey
-
-SlateGray
-
-SlateGrey
-
-DodgerBlue
-
-DodgerBlue1
-
-DodgerBlue2
-
-DodgerBlue4
-
-DodgerBlue3
-
-AliceBlue
-
-SteelBlue4
-
-SteelBlue
-
-SteelBlue1
-
-SteelBlue2
-
-SteelBlue3
-
-SkyBlue4
-
-SkyBlue1
-
-SkyBlue2
-
-SkyBlue3
-
-LightSkyBlue
-
-LightSkyBlue4
-
-LightSkyBlue1
-
-LightSkyBlue2
-
-LightSkyBlue3
-
-SkyBlue
-
-LightBlue3
-
-DeepSkyBlue
-
-DeepSkyBlue1
-
-DeepSkyBlue2
-
-DeepSkyBlue4
-
-DeepSkyBlue3
-
-LightBlue1
-
-LightBlue2
-
-LightBlue
-
-LightBlue4
-
-PowderBlue
-
-CadetBlue1
-
-CadetBlue2
-
-CadetBlue3
-
-CadetBlue4
-
-turquoise1
-
-turquoise2
-
-turquoise3
-
-turquoise4
-
-cadet blue
-
-CadetBlue
-
-DarkTurquoise
-
-azure
-
-azure1
-
-LightCyan
-
-LightCyan1
-
-azure2
-
-LightCyan2
-
-PaleTurquoise1
-
-PaleTurquoise
-
-PaleTurquoise2
-
-DarkSlateGray1
-
-azure3
-
-LightCyan3
-
-DarkSlateGray2
-
-PaleTurquoise3
-
-DarkSlateGray3
-
-azure4
-
-LightCyan4
-
-aqua
-
-cyan
-
-cyan1
-
-PaleTurquoise4
-
-cyan2
-
-DarkSlateGray4
-
-cyan3
-
-cyan4
-
-DarkCyan
-
-teal
-
-DarkSlateGray
-
-DarkSlateGrey
-
-MediumTurquoise
-
-LightSeaGreen
-
-turquoise
-
-aquamarine4
-
-aquamarine
-
-aquamarine1
-
-aquamarine2
-
-aquamarine3
-
-MediumAquamarine
-
-MediumSpringGreen
-
-MintCream
-
-SpringGreen
-
-SpringGreen1
-
-SpringGreen2
-
-SpringGreen3
-
-SpringGreen4
-
-MediumSeaGreen
-
-SeaGreen
-
-SeaGreen3
-
-SeaGreen1
-
-SeaGreen4
-
-SeaGreen2
-
-MediumForestGreen
-
-honeydew
-
-honeydew1
-
-honeydew2
-
-DarkSeaGreen1
-
-DarkSeaGreen2
-
-PaleGreen1
-
-PaleGreen
-
-honeydew3
-
-LightGreen
-
-PaleGreen2
-
-DarkSeaGreen3
-
-DarkSeaGreen
-
-PaleGreen3
-
-honeydew4
-
-green1
-
-lime
-
-LimeGreen
-
-DarkSeaGreen4
-
-green2
-
-PaleGreen4
-
-green3
-
-ForestGreen
-
-green4
-
-green
-
-DarkGreen
-
-LawnGreen
-
-chartreuse
-
-chartreuse1
-
-chartreuse2
-
-chartreuse3
-
-chartreuse4
-
-GreenYellow
-
-DarkOliveGreen3
-
-DarkOliveGreen1
-
-DarkOliveGreen2
-
-DarkOliveGreen4
-
-DarkOliveGreen
-
-OliveDrab
-
-OliveDrab1
-
-OliveDrab2
-
-OliveDrab3
-
-YellowGreen
-
-OliveDrab4
-
-ivory
-
-ivory1
-
-LightYellow
-
-LightYellow1
-
-beige
-
-ivory2
-
-LightGoldenrodYellow
-
-LightYellow2
-
-ivory3
-
-LightYellow3
-
-ivory4
-
-LightYellow4
-
-yellow
-
-yellow1
-
-yellow2
-
-yellow3
-
-yellow4
-
-olive
-
-DarkKhaki
-
-khaki2
-
-LemonChiffon4
-
-khaki1
-
-khaki3
-
-khaki4
-
-PaleGoldenrod
-
-LemonChiffon
-
-LemonChiffon1
-
-khaki
-
-LemonChiffon3
-
-LemonChiffon2
-
-MediumGoldenRod
-
-cornsilk4
-
-gold
-
-gold1
-
-gold2
-
-gold3
-
-gold4
-
-LightGoldenrod
-
-LightGoldenrod4
-
-LightGoldenrod1
-
-LightGoldenrod3
-
-LightGoldenrod2
-
-cornsilk3
-
-cornsilk2
-
-cornsilk
-
-cornsilk1
-
-goldenrod
-
-goldenrod1
-
-goldenrod2
-
-goldenrod3
-
-goldenrod4
-
-DarkGoldenrod
-
-DarkGoldenrod1
-
-DarkGoldenrod2
-
-DarkGoldenrod3
-
-DarkGoldenrod4
-
-FloralWhite
-
-wheat2
-
-OldLace
-
-wheat
-
-wheat1
-
-wheat3
-
-orange
-
-orange1
-
-orange2
-
-orange3
-
-orange4
-
-wheat4
-
-moccasin
-
-PapayaWhip
-
-NavajoWhite3
-
-BlanchedAlmond
-
-NavajoWhite
-
-NavajoWhite1
-
-NavajoWhite2
-
-NavajoWhite4
-
-AntiqueWhite4
-
-AntiqueWhite
-
-tan
-
-bisque4
-
-burlywood
-
-AntiqueWhite2
-
-burlywood1
-
-burlywood3
-
-burlywood2
-
-AntiqueWhite1
-
-burlywood4
-
-AntiqueWhite3
-
-DarkOrange
-
-bisque2
-
-bisque
-
-bisque1
-
-bisque3
-
-DarkOrange1
-
-linen
-
-DarkOrange2
-
-DarkOrange3
-
-DarkOrange4
-
-peru
-
-tan1
-
-tan2
-
-tan3
-
-tan4
-
-PeachPuff
-
-PeachPuff1
-
-PeachPuff4
-
-PeachPuff2
-
-PeachPuff3
-
-SandyBrown
-
-seashell4
-
-seashell2
-
-seashell3
-
-chocolate
-
-chocolate1
-
-chocolate2
-
-chocolate3
-
-chocolate4
-
-SaddleBrown
-
-seashell
-
-seashell1
-
-sienna4
-
-sienna
-
-sienna1
-
-sienna2
-
-sienna3
-
-LightSalmon3
-
-LightSalmon
-
-LightSalmon1
-
-LightSalmon4
-
-LightSalmon2
-
-coral
-
-OrangeRed
-
-OrangeRed1
-
-OrangeRed2
-
-OrangeRed3
-
-OrangeRed4
-
-DarkSalmon
-
-salmon1
-
-salmon2
-
-salmon3
-
-salmon4
-
-coral1
-
-coral2
-
-coral3
-
-coral4
-
-tomato4
-
-tomato
-
-tomato1
-
-tomato2
-
-tomato3
-
-MistyRose4
-
-MistyRose2
-
-MistyRose
-
-MistyRose1
-
-salmon
-
-MistyRose3
-
-white
-
-gray100
-
-grey100
-
-grey100
-
-gray99
-
-grey99
-
-gray98
-
-grey98
-
-gray97
-
-grey97
-
-gray96
-
-grey96
-
-WhiteSmoke
-
-gray95
-
-grey95
-
-gray94
-
-grey94
-
-gray93
-
-grey93
-
-gray92
-
-grey92
-
-gray91
-
-grey91
-
-gray90
-
-grey90
-
-gray89
-
-grey89
-
-gray88
-
-grey88
-
-gray87
-
-grey87
-
-gainsboro
-
-gray86
-
-grey86
-
-gray85
-
-grey85
-
-gray84
-
-grey84
-
-gray83
-
-grey83
-
-LightGray
-
-LightGrey
-
-gray82
-
-grey82
-
-gray81
-
-grey81
-
-gray80
-
-grey80
-
-gray79
-
-grey79
-
-gray78
-
-grey78
-
-gray77
-
-grey77
-
-gray76
-
-grey76
-
-silver
-
-gray75
-
-grey75
-
-gray74
-
-grey74
-
-gray73
-
-grey73
-
-gray72
-
-grey72
-
-gray71
-
-grey71
-
-gray70
-
-grey70
-
-gray69
-
-grey69
-
-gray68
-
-grey68
-
-gray67
-
-grey67
-
-DarkGray
-
-DarkGrey
-
-gray66
-
-grey66
-
-gray65
-
-grey65
-
-gray64
-
-grey64
-
-gray63
-
-grey63
-
-gray62
-
-grey62
-
-gray61
-
-grey61
-
-gray60
-
-grey60
-
-gray59
-
-grey59
-
-gray58
-
-grey58
-
-gray57
-
-grey57
-
-gray56
-
-grey56
-
-gray55
-
-grey55
-
-gray54
-
-grey54
-
-gray53
-
-grey53
-
-gray52
-
-grey52
-
-gray51
-
-grey51
-
-fractal
-
-gray50
-
-grey50
-
-gray
-
-gray49
-
-grey49
-
-gray48
-
-grey48
-
-gray47
-
-grey47
-
-gray46
-
-grey46
-
-gray45
-
-grey45
-
-gray44
-
-grey44
-
-gray43
-
-grey43
-
-gray42
-
-grey42
-
-DimGray
-
-DimGrey
-
-gray41
-
-grey41
-
-gray40
-
-grey40
-
-gray39
-
-grey39
-
-gray38
-
-grey38
-
-gray37
-
-grey37
-
-gray36
-
-grey36
-
-gray35
-
-grey35
-
-gray34
-
-grey34
-
-gray33
-
-grey33
-
-gray32
-
-grey32
-
-gray31
-
-grey31
-
-gray30
-
-grey30
-
-gray29
-
-grey29
-
-gray28
-
-grey28
-
-gray27
-
-grey27
-
-gray26
-
-grey26
-
-gray25
-
-grey25
-
-gray24
-
-grey24
-
-gray23
-
-grey23
-
-gray22
-
-grey22
-
-gray21
-
-grey21
-
-gray20
-
-grey20
-
-gray19
-
-grey19
-
-gray18
-
-grey18
-
-gray17
-
-grey17
-
-gray16
-
-grey16
-
-gray15
-
-grey15
-
-gray14
-
-grey14
-
-gray13
-
-grey13
-
-gray12
-
-grey12
-
-gray11
-
-grey11
-
-gray10
-
-grey10
-
-gray9
-
-grey9
-
-gray8
-
-grey8
-
-gray7
-
-grey7
-
-gray6
-
-grey6
-
-gray5
-
-grey5
-
-gray4
-
-grey4
-
-gray3
-
-grey3
-
-gray2
-
-grey2
-
-gray1
-
-grey1
-
-black
-
-gray0
-
-grey0
-
-opaque
-
-none
-
-transparent
-
- -
-WHERE THE COLORNAMES WILL GO -
- -
CLICK TO SHOW HEXES
-
CLICK TO SHOW INFO
- - - - - - - diff --git a/share/frontend/imgrid/colors/junk/divlist.js b/share/frontend/imgrid/colors/junk/divlist.js deleted file mode 100755 index 49ee990..0000000 --- a/share/frontend/imgrid/colors/junk/divlist.js +++ /dev/null @@ -1,2 +0,0 @@ -var divlist = ['#d0', '#d1', '#d2', '#d3', '#d4', '#d5', '#d6', '#d7', '#d8', '#d9', '#d10', '#d11', '#d12', '#d13', '#d14', '#d15', '#d16', '#d17', '#d18', '#d19', '#d20', '#d21', '#d22', '#d23', '#d24', '#d25', '#d26', '#d27', '#d28', '#d29', '#d30', '#d31', '#d32', '#d33', '#d34', '#d35', '#d36', '#d37', '#d38', '#d39', '#d40', '#d41', '#d42', '#d43', '#d44', '#d45', '#d46', '#d47', '#d48', '#d49', '#d50', '#d51', '#d52', '#d53', '#d54', '#d55', '#d56', '#d57', '#d58', '#d59', '#d60', '#d61', '#d62', '#d63', '#d64', '#d65', '#d66', '#d67', '#d68', '#d69', '#d70', '#d71', '#d72', '#d73', '#d74', '#d75', '#d76', '#d77', '#d78', '#d79', '#d80', '#d81', '#d82', '#d83', '#d84', '#d85', '#d86', '#d87', '#d88', '#d89', '#d90', '#d91', '#d92', '#d93', '#d94', '#d95', '#d96', '#d97', '#d98', '#d99', '#d100', '#d101', '#d102', '#d103', '#d104', '#d105', '#d106', '#d107', '#d108', '#d109', '#d110', '#d111', '#d112', '#d113', '#d114', '#d115', '#d116', '#d117', '#d118', '#d119', '#d120', '#d121', '#d122', '#d123', '#d124', '#d125', '#d126', '#d127', '#d128', '#d129', '#d130', '#d131', '#d132', '#d133', '#d134', '#d135', '#d136', '#d137', '#d138', '#d139', '#d140', '#d141', '#d142', '#d143', '#d144', '#d145', '#d146', '#d147', '#d148', '#d149', '#d150', '#d151', '#d152', '#d153', '#d154', '#d155', '#d156', '#d157', '#d158', '#d159', '#d160', '#d161', '#d162', '#d163', '#d164', '#d165', '#d166', '#d167', '#d168', '#d169', '#d170', '#d171', '#d172', '#d173', '#d174', '#d175', '#d176', '#d177', '#d178', '#d179', '#d180', '#d181', '#d182', '#d183', '#d184', '#d185', '#d186', '#d187', '#d188', '#d189', '#d190', '#d191', '#d192', '#d193', '#d194', '#d195', '#d196', '#d197', '#d198', '#d199', '#d200', '#d201', '#d202', '#d203', '#d204', '#d205', '#d206', '#d207', '#d208', '#d209', '#d210', '#d211', '#d212', '#d213', '#d214', '#d215', '#d216', '#d217', '#d218', '#d219', '#d220', '#d221', '#d222', '#d223', '#d224', '#d225', '#d226', '#d227', '#d228', '#d229', '#d230', '#d231', '#d232', '#d233', '#d234', '#d235', '#d236', '#d237', '#d238', '#d239', '#d240', '#d241', '#d242', '#d243', '#d244', '#d245', '#d246', '#d247', '#d248', '#d249', '#d250', '#d251', '#d252', '#d253', '#d254', '#d255', '#d256', '#d257', '#d258', '#d259', '#d260', '#d261', '#d262', '#d263', '#d264', '#d265', '#d266', '#d267', '#d268', '#d269', '#d270', '#d271', '#d272', '#d273', '#d274', '#d275', '#d276', '#d277', '#d278', '#d279', '#d280', '#d281', '#d282', '#d283', '#d284', '#d285', '#d286', '#d287', '#d288', '#d289', '#d290', '#d291', '#d292', '#d293', '#d294', '#d295', '#d296', '#d297', '#d298', '#d299', '#d300', '#d301', '#d302', '#d303', '#d304', '#d305', '#d306', '#d307', '#d308', '#d309', '#d310', '#d311', '#d312', '#d313', '#d314', '#d315', '#d316', '#d317', '#d318', '#d319', '#d320', '#d321', '#d322', '#d323', '#d324', '#d325', '#d326', '#d327', '#d328', '#d329', '#d330', '#d331', '#d332', '#d333', '#d334', '#d335', '#d336', '#d337', '#d338', '#d339', '#d340', '#d341', '#d342', '#d343', '#d344', '#d345', '#d346', '#d347', '#d348', '#d349', '#d350', '#d351', '#d352', '#d353', '#d354', '#d355', '#d356', '#d357', '#d358', '#d359', '#d360', '#d361', '#d362', '#d363', '#d364', '#d365', '#d366', '#d367', '#d368', '#d369', '#d370', '#d371', '#d372', '#d373', '#d374', '#d375', '#d376', '#d377', '#d378', '#d379', '#d380', '#d381', '#d382', '#d383', '#d384', '#d385', '#d386', '#d387', '#d388', '#d389', '#d390', '#d391', '#d392', '#d393', '#d394', '#d395', '#d396', '#d397', '#d398', '#d399', '#d400', '#d401', '#d402', '#d403', '#d404', '#d405', '#d406', '#d407', '#d408', '#d409', '#d410', '#d411', '#d412', '#d413', '#d414', '#d415', '#d416', '#d417', '#d418', '#d419', '#d420', '#d421', '#d422', '#d423', '#d424', '#d425', '#d426', '#d427', '#d428', '#d429', '#d430', '#d431', '#d432', '#d433', '#d434', '#d435', '#d436', '#d437', '#d438', '#d439', '#d440', '#d441', '#d442', '#d443', '#d444', '#d445', '#d446', '#d447', '#d448', '#d449', '#d450', '#d451', '#d452', '#d453', '#d454', '#d455', '#d456', '#d457', '#d458', '#d459', '#d460', '#d461', '#d462', '#d463', '#d464', '#d465', '#d466', '#d467', '#d468', '#d469', '#d470', '#d471', '#d472', '#d473', '#d474', '#d475', '#d476', '#d477', '#d478', '#d479', '#d480', '#d481', '#d482', '#d483', '#d484', '#d485', '#d486', '#d487', '#d488', '#d489', '#d490', '#d491', '#d492', '#d493', '#d494', '#d495', '#d496', '#d497', '#d498', '#d499', '#d500', '#d501', '#d502', '#d503', '#d504', '#d505', '#d506', '#d507', '#d508', '#d509', '#d510', '#d511', '#d512', '#d513', '#d514', '#d515', '#d516', '#d517', '#d518', '#d519', '#d520', '#d521', '#d522', '#d523', '#d524', '#d525', '#d526', '#d527', '#d528', '#d529', '#d530', '#d531', '#d532', '#d533', '#d534', '#d535', '#d536', '#d537', '#d538', '#d539', '#d540', '#d541', '#d542', '#d543', '#d544', '#d545', '#d546', '#d547', '#d548', '#d549', '#d550', '#d551', '#d552', '#d553', '#d554', '#d555', '#d556', '#d557', '#d558', '#d559', '#d560', '#d561', '#d562', '#d563', '#d564', '#d565', '#d566', '#d567', '#d568', '#d569', '#d570', '#d571', '#d572', '#d573', '#d574', '#d575', '#d576', '#d577', '#d578', '#d579', '#d580', '#d581', '#d582', '#d583', '#d584', '#d585', '#d586', '#d587', '#d588', '#d589', '#d590', '#d591', '#d592', '#d593', '#d594', '#d595', '#d596', '#d597', '#d598', '#d599', '#d600', '#d601', '#d602', '#d603', '#d604', '#d605', '#d606', '#d607', '#d608', '#d609', '#d610', '#d611', '#d612', '#d613', '#d614', '#d615', '#d616', '#d617', '#d618', '#d619', '#d620', '#d621', '#d622', '#d623', '#d624', '#d625', '#d626', '#d627', '#d628', '#d629', '#d630', '#d631', '#d632', '#d633', '#d634', '#d635', '#d636', '#d637', '#d638', '#d639', '#d640', '#d641', '#d642', '#d643', '#d644', '#d645', '#d646', '#d647', '#d648', '#d649', '#d650', '#d651', '#d652', '#d653', '#d654', '#d655', '#d656', '#d657', '#d658', '#d659', '#d660', '#d661', '#d662', '#d663', '#d664', '#d665', '#d666', '#d667', '#d668', '#d669', '#d670', '#d671', '#d672', '#d673'] -var divtoname = {'#d322': 'khaki4', '#d600': 'gray34', '#d118': 'MediumPurple1', '#d119': 'MediumPurple2', '#d114': 'purple3', '#d115': 'purple4', '#d116': 'purple1', '#d117': 'MediumPurple', '#d110': 'purple', '#d111': 'indigo', '#d112': 'BlueViolet', '#d113': 'purple2', '#d529': 'grey67', '#d231': 'DarkSlateGray', '#d339': 'LightGoldenrod3', '#d233': 'MediumTurquoise', '#d232': 'DarkSlateGrey', '#d235': 'turquoise', '#d234': 'LightSeaGreen', '#d237': 'aquamarine', '#d236': 'aquamarine4', '#d239': 'aquamarine2', '#d238': 'aquamarine1', '#d332': 'gold1', '#d333': 'gold2', '#d334': 'gold3', '#d335': 'gold4', '#d336': 'LightGoldenrod', '#d337': 'LightGoldenrod4', '#d424': 'LightSalmon3', '#d425': 'LightSalmon', '#d426': 'LightSalmon1', '#d427': 'LightSalmon4', '#d420': 'sienna', '#d421': 'sienna1', '#d422': 'sienna2', '#d423': 'sienna3', '#d587': 'grey41', '#d586': 'gray41', '#d585': 'DimGrey', '#d584': 'DimGray', '#d428': 'LightSalmon2', '#d429': 'coral', '#d581': 'grey43', '#d580': 'gray43', '#d89': 'thistle4', '#d88': 'plum3', '#d349': 'goldenrod4', '#d348': 'goldenrod3', '#d81': 'thistle2', '#d80': 'thistle1', '#d83': 'plum2', '#d82': 'plum1', '#d85': 'thistle3', '#d84': 'thistle', '#d87': 'violet', '#d86': 'plum', '#d601': 'grey34', '#d67': 'DeepPink3', '#d66': 'DeepPink2', '#d65': 'DeepPink1', '#d64': 'DeepPink', '#d63': 'HotPink', '#d62': 'HotPink4', '#d61': 'HotPink1', '#d60': 'HotPink2', '#d69': 'maroon1', '#d68': 'DeepPink4', '#d510': 'grey76', '#d511': 'silver', '#d512': 'gray75', '#d513': 'grey75', '#d514': 'gray74', '#d515': 'grey74', '#d516': 'gray73', '#d517': 'grey73', '#d518': 'gray72', '#d519': 'grey72', '#d150': 'LightSteelBlue2', '#d151': 'LightSteelBlue3', '#d152': 'LightSteelBlue4', '#d153': 'SlateGray4', '#d154': 'SlateGray1', '#d155': 'SlateGray2', '#d156': 'SlateGray3', '#d157': 'LightSlateGray', '#d158': 'LightSlateGrey', '#d159': 'SlateGray', '#d565': 'gray50', '#d564': 'fractal', '#d567': 'gray', '#d566': 'grey50', '#d561': 'grey52', '#d560': 'gray52', '#d563': 'grey51', '#d562': 'gray51', '#d604': 'gray32', '#d605': 'grey32', '#d606': 'gray31', '#d607': 'grey31', '#d569': 'grey49', '#d568': 'gray49', '#d602': 'gray33', '#d603': 'grey33', '#d125': 'SlateBlue', '#d124': 'MediumSlateBlue', '#d127': 'SlateBlue2', '#d126': 'SlateBlue1', '#d121': 'MediumPurple4', '#d120': 'MediumPurple3', '#d123': 'LightSlateBlue', '#d122': 'DarkSlateBlue', '#d359': 'wheat1', '#d129': 'SlateBlue4', '#d128': 'SlateBlue3', '#d301': 'LightYellow', '#d300': 'ivory1', '#d303': 'beige', '#d302': 'LightYellow1', '#d305': 'LightGoldenrodYellow', '#d304': 'ivory2', '#d307': 'ivory3', '#d306': 'LightYellow2', '#d309': 'ivory4', '#d308': 'LightYellow3', '#d462': 'grey98', '#d351': 'DarkGoldenrod1', '#d464': 'grey97', '#d465': 'gray96', '#d466': 'grey96', '#d467': 'WhiteSmoke', '#d463': 'gray97', '#d268': 'PaleGreen3', '#d269': 'honeydew4', '#d266': 'DarkSeaGreen3', '#d267': 'DarkSeaGreen', '#d264': 'LightGreen', '#d265': 'PaleGreen2', '#d262': 'PaleGreen', '#d263': 'honeydew3', '#d260': 'DarkSeaGreen2', '#d261': 'PaleGreen1', '#d598': 'gray35', '#d29': 'firebrick4', '#d28': 'brown4', '#d23': 'red2', '#d22': 'firebrick3', '#d21': 'RosyBrown4', '#d20': 'red1', '#d27': 'IndianRed4', '#d26': 'red3', '#d25': 'brown', '#d24': 'firebrick', '#d599': 'grey35', '#d338': 'LightGoldenrod1', '#d419': 'sienna4', '#d418': 'seashell1', '#d230': 'teal', '#d415': 'chocolate4', '#d414': 'chocolate3', '#d417': 'seashell', '#d416': 'SaddleBrown', '#d411': 'chocolate', '#d410': 'seashell3', '#d413': 'chocolate2', '#d412': 'chocolate1', '#d398': 'tan1', '#d399': 'tan2', '#d392': 'DarkOrange1', '#d393': 'linen', '#d390': 'bisque1', '#d391': 'bisque3', '#d396': 'DarkOrange4', '#d397': 'peru', '#d394': 'DarkOrange2', '#d395': 'DarkOrange3', '#d194': 'CadetBlue2', '#d195': 'CadetBlue3', '#d196': 'CadetBlue4', '#d197': 'turquoise1', '#d190': 'LightBlue', '#d191': 'LightBlue4', '#d192': 'PowderBlue', '#d193': 'CadetBlue1', '#d198': 'turquoise2', '#d199': 'turquoise3', '#d330': 'cornsilk4', '#d331': 'gold', '#d640': 'gray14', '#d641': 'grey14', '#d642': 'gray13', '#d643': 'grey13', '#d644': 'gray12', '#d645': 'grey12', '#d646': 'gray11', '#d647': 'grey11', '#d648': 'gray10', '#d649': 'grey10', '#d668': 'black', '#d486': 'gainsboro', '#d487': 'gray86', '#d484': 'gray87', '#d485': 'grey87', '#d482': 'gray88', '#d483': 'grey88', '#d480': 'gray89', '#d481': 'grey89', '#d521': 'grey71', '#d520': 'gray71', '#d523': 'grey70', '#d522': 'gray70', '#d525': 'grey69', '#d524': 'gray69', '#d488': 'grey86', '#d489': 'gray85', '#d430': 'OrangeRed', '#d660': 'gray4', '#d169': 'SteelBlue1', '#d168': 'SteelBlue', '#d661': 'grey4', '#d161': 'DodgerBlue', '#d160': 'SlateGrey', '#d163': 'DodgerBlue2', '#d162': 'DodgerBlue1', '#d165': 'DodgerBlue3', '#d164': 'DodgerBlue4', '#d167': 'SteelBlue4', '#d166': 'AliceBlue', '#d635': 'grey17', '#d634': 'gray17', '#d637': 'grey16', '#d636': 'gray16', '#d631': 'grey19', '#d630': 'gray19', '#d633': 'grey18', '#d632': 'gray18', '#d639': 'grey15', '#d638': 'gray15', '#d368': 'PapayaWhip', '#d222': 'cyan', '#d223': 'cyan1', '#d220': 'LightCyan4', '#d221': 'aqua', '#d226': 'DarkSlateGray4', '#d227': 'cyan3', '#d224': 'PaleTurquoise4', '#d225': 'cyan2', '#d228': 'cyan4', '#d229': 'DarkCyan', '#d590': 'gray39', '#d538': 'gray63', '#d539': 'grey63', '#d591': 'grey39', '#d451': 'MistyRose', '#d450': 'MistyRose2', '#d453': 'salmon', '#d452': 'MistyRose1', '#d455': 'white', '#d454': 'MistyRose3', '#d457': 'grey100', '#d456': 'gray100', '#d459': 'gray99', '#d458': 'grey100', '#d592': 'gray38', '#d593': 'grey38', '#d594': 'gray37', '#d595': 'grey37', '#d596': 'gray36', '#d597': 'grey36', '#d297': 'YellowGreen', '#d296': 'OliveDrab3', '#d295': 'OliveDrab2', '#d294': 'OliveDrab1', '#d293': 'OliveDrab', '#d292': 'DarkOliveGreen', '#d291': 'DarkOliveGreen4', '#d290': 'DarkOliveGreen2', '#d356': 'wheat2', '#d357': 'OldLace', '#d354': 'DarkGoldenrod4', '#d355': 'FloralWhite', '#d352': 'DarkGoldenrod2', '#d353': 'DarkGoldenrod3', '#d299': 'ivory', '#d298': 'OliveDrab4', '#d468': 'gray95', '#d534': 'gray65', '#d535': 'grey65', '#d52': 'LavenderBlush2', '#d53': 'LavenderBlush4', '#d50': 'LavenderBlush1', '#d51': 'LavenderBlush3', '#d56': 'VioletRed3', '#d57': 'VioletRed1', '#d54': 'maroon', '#d55': 'HotPink3', '#d58': 'VioletRed2', '#d59': 'VioletRed4', '#d469': 'grey95', '#d558': 'gray53', '#d559': 'grey53', '#d576': 'gray45', '#d577': 'grey45', '#d574': 'gray46', '#d575': 'grey46', '#d572': 'gray47', '#d573': 'grey47', '#d570': 'gray48', '#d571': 'grey48', '#d671': 'opaque', '#d670': 'grey0', '#d673': 'transparent', '#d672': 'none', '#d578': 'gray44', '#d579': 'grey44', '#d589': 'grey40', '#d588': 'gray40', '#d4': 'RosyBrown2', '#d5': 'snow3', '#d6': 'LightCoral', '#d7': 'IndianRed1', '#d0': 'snow', '#d1': 'snow1', '#d2': 'snow2', '#d3': 'RosyBrown1', '#d8': 'RosyBrown3', '#d9': 'IndianRed2', '#d136': 'MediumBlue', '#d137': 'blue4', '#d134': 'blue2', '#d135': 'blue3', '#d132': 'blue', '#d133': 'blue1', '#d130': 'GhostWhite', '#d131': 'lavender', '#d583': 'grey42', '#d138': 'DarkBlue', '#d139': 'MidnightBlue', '#d312': 'yellow1', '#d313': 'yellow2', '#d310': 'LightYellow4', '#d311': 'yellow', '#d316': 'olive', '#d317': 'DarkKhaki', '#d314': 'yellow3', '#d315': 'yellow4', '#d318': 'khaki2', '#d319': 'LemonChiffon4', '#d259': 'DarkSeaGreen1', '#d258': 'honeydew2', '#d253': 'SeaGreen4', '#d252': 'SeaGreen1', '#d251': 'SeaGreen3', '#d250': 'SeaGreen', '#d257': 'honeydew1', '#d256': 'honeydew', '#d255': 'MediumForestGreen', '#d254': 'SeaGreen2', '#d345': 'goldenrod', '#d344': 'cornsilk1', '#d612': 'gray28', '#d347': 'goldenrod2', '#d461': 'gray98', '#d346': 'goldenrod1', '#d479': 'grey90', '#d341': 'cornsilk3', '#d478': 'gray90', '#d340': 'LightGoldenrod2', '#d343': 'cornsilk', '#d342': 'cornsilk2', '#d528': 'gray67', '#d408': 'seashell4', '#d409': 'seashell2', '#d406': 'PeachPuff3', '#d407': 'SandyBrown', '#d404': 'PeachPuff4', '#d405': 'PeachPuff2', '#d402': 'PeachPuff', '#d403': 'PeachPuff1', '#d400': 'tan3', '#d401': 'tan4', '#d552': 'gray56', '#d460': 'grey99', '#d16': 'firebrick2', '#d17': 'snow4', '#d14': 'IndianRed', '#d15': 'IndianRed3', '#d12': 'firebrick1', '#d13': 'brown2', '#d10': 'RosyBrown', '#d11': 'brown1', '#d532': 'gray66', '#d533': 'grey66', '#d530': 'DarkGray', '#d531': 'DarkGrey', '#d536': 'gray64', '#d537': 'grey64', '#d18': 'brown3', '#d19': 'red', '#d329': 'MediumGoldenRod', '#d328': 'LemonChiffon2', '#d178': 'LightSkyBlue1', '#d179': 'LightSkyBlue2', '#d172': 'SkyBlue4', '#d173': 'SkyBlue1', '#d170': 'SteelBlue2', '#d171': 'SteelBlue3', '#d176': 'LightSkyBlue', '#d177': 'LightSkyBlue4', '#d174': 'SkyBlue2', '#d175': 'SkyBlue3', '#d626': 'gray21', '#d627': 'grey21', '#d624': 'gray22', '#d625': 'grey22', '#d622': 'gray23', '#d623': 'grey23', '#d620': 'gray24', '#d621': 'grey24', '#d628': 'gray20', '#d629': 'grey20', '#d219': 'azure4', '#d218': 'DarkSlateGray3', '#d217': 'PaleTurquoise3', '#d216': 'DarkSlateGray2', '#d215': 'LightCyan3', '#d214': 'azure3', '#d213': 'DarkSlateGray1', '#d212': 'PaleTurquoise2', '#d211': 'PaleTurquoise', '#d210': 'PaleTurquoise1', '#d669': 'gray0', '#d582': 'gray42', '#d442': 'coral3', '#d443': 'coral4', '#d440': 'coral1', '#d441': 'coral2', '#d446': 'tomato1', '#d447': 'tomato2', '#d444': 'tomato4', '#d445': 'tomato', '#d448': 'tomato3', '#d449': 'MistyRose4', '#d280': 'DarkGreen', '#d281': 'LawnGreen', '#d282': 'chartreuse', '#d283': 'chartreuse1', '#d284': 'chartreuse2', '#d285': 'chartreuse3', '#d286': 'chartreuse4', '#d287': 'GreenYellow', '#d288': 'DarkOliveGreen3', '#d289': 'DarkOliveGreen1', '#d361': 'orange', '#d360': 'wheat3', '#d367': 'moccasin', '#d366': 'wheat4', '#d365': 'orange4', '#d364': 'orange3', '#d49': 'LavenderBlush', '#d48': 'PaleVioletRed3', '#d45': 'PaleVioletRed', '#d44': 'PaleVioletRed4', '#d47': 'PaleVioletRed1', '#d46': 'PaleVioletRed2', '#d41': 'pink2', '#d40': 'pink1', '#d43': 'pink4', '#d42': 'pink3', '#d358': 'wheat', '#d527': 'grey68', '#d526': 'gray68', '#d614': 'gray27', '#d543': 'grey61', '#d542': 'gray61', '#d541': 'grey62', '#d540': 'gray62', '#d547': 'grey59', '#d546': 'gray59', '#d545': 'grey60', '#d544': 'gray60', '#d662': 'gray3', '#d663': 'grey3', '#d549': 'grey58', '#d548': 'gray58', '#d666': 'gray1', '#d667': 'grey1', '#d664': 'gray2', '#d665': 'grey2', '#d103': 'MediumOrchid4', '#d102': 'MediumOrchid3', '#d101': 'MediumOrchid2', '#d100': 'MediumOrchid1', '#d107': 'DarkOrchid3', '#d106': 'DarkOrchid1', '#d105': 'DarkOrchid', '#d104': 'DarkViolet', '#d109': 'DarkOrchid4', '#d108': 'DarkOrchid2', '#d244': 'SpringGreen', '#d245': 'SpringGreen1', '#d246': 'SpringGreen2', '#d247': 'SpringGreen3', '#d240': 'aquamarine3', '#d241': 'MediumAquamarine', '#d242': 'MediumSpringGreen', '#d243': 'MintCream', '#d327': 'LemonChiffon3', '#d326': 'khaki', '#d325': 'LemonChiffon1', '#d324': 'LemonChiffon', '#d248': 'SpringGreen4', '#d249': 'MediumSeaGreen', '#d321': 'khaki3', '#d320': 'khaki1', '#d350': 'DarkGoldenrod', '#d439': 'salmon4', '#d438': 'salmon3', '#d98': 'purple', '#d99': 'MediumOrchid', '#d96': 'DarkMagenta', '#d97': 'magenta4', '#d94': 'magenta2', '#d95': 'magenta3', '#d92': 'magenta1', '#d93': 'plum4', '#d90': 'fuchsia', '#d91': 'magenta', '#d433': 'OrangeRed3', '#d432': 'OrangeRed2', '#d431': 'OrangeRed1', '#d74': 'VioletRed', '#d75': 'orchid2', '#d76': 'orchid', '#d77': 'orchid1', '#d70': 'maroon2', '#d71': 'maroon3', '#d72': 'maroon4', '#d73': 'MediumVioletRed', '#d437': 'salmon2', '#d78': 'orchid3', '#d79': 'orchid4', '#d436': 'salmon1', '#d435': 'DarkSalmon', '#d434': 'OrangeRed4', '#d507': 'gray77', '#d506': 'grey78', '#d505': 'gray78', '#d504': 'grey79', '#d503': 'gray79', '#d502': 'grey80', '#d501': 'gray80', '#d500': 'grey81', '#d509': 'gray76', '#d508': 'grey77', '#d473': 'grey93', '#d369': 'NavajoWhite3', '#d147': 'CornflowerBlue', '#d146': 'RoyalBlue4', '#d145': 'RoyalBlue3', '#d144': 'RoyalBlue2', '#d143': 'RoyalBlue1', '#d142': 'RoyalBlue', '#d141': 'NavyBlue', '#d140': 'navy', '#d149': 'LightSteelBlue1', '#d148': 'LightSteelBlue', '#d472': 'gray93', '#d613': 'grey28', '#d363': 'orange2', '#d611': 'grey29', '#d610': 'gray29', '#d617': 'grey26', '#d616': 'gray26', '#d615': 'grey27', '#d362': 'orange1', '#d619': 'grey25', '#d618': 'gray25', '#d208': 'azure2', '#d209': 'LightCyan2', '#d200': 'turquoise4', '#d201': 'cadet blue', '#d202': 'CadetBlue', '#d203': 'DarkTurquoise', '#d204': 'azure', '#d205': 'azure1', '#d206': 'LightCyan', '#d207': 'LightCyan1', '#d608': 'gray30', '#d609': 'grey30', '#d374': 'NavajoWhite4', '#d375': 'AntiqueWhite4', '#d376': 'AntiqueWhite', '#d377': 'tan', '#d370': 'BlanchedAlmond', '#d371': 'NavajoWhite', '#d372': 'NavajoWhite1', '#d373': 'NavajoWhite2', '#d477': 'grey91', '#d476': 'gray91', '#d475': 'grey92', '#d474': 'gray92', '#d378': 'bisque4', '#d379': 'burlywood', '#d471': 'grey94', '#d470': 'gray94', '#d279': 'green', '#d278': 'green4', '#d275': 'PaleGreen4', '#d274': 'green2', '#d277': 'ForestGreen', '#d276': 'green3', '#d271': 'lime', '#d270': 'green1', '#d273': 'DarkSeaGreen4', '#d272': 'LimeGreen', '#d38': 'pink', '#d39': 'crimson', '#d30': 'DarkRed', '#d31': 'red4', '#d32': 'maroon', '#d33': 'LightPink1', '#d34': 'LightPink3', '#d35': 'LightPink4', '#d36': 'LightPink2', '#d37': 'LightPink', '#d658': 'gray5', '#d389': 'bisque', '#d388': 'bisque2', '#d381': 'burlywood1', '#d380': 'AntiqueWhite2', '#d383': 'burlywood2', '#d382': 'burlywood3', '#d385': 'burlywood4', '#d384': 'AntiqueWhite1', '#d387': 'DarkOrange', '#d386': 'AntiqueWhite3', '#d189': 'LightBlue2', '#d188': 'LightBlue1', '#d183': 'DeepSkyBlue', '#d182': 'LightBlue3', '#d181': 'SkyBlue', '#d180': 'LightSkyBlue3', '#d187': 'DeepSkyBlue3', '#d186': 'DeepSkyBlue4', '#d185': 'DeepSkyBlue2', '#d184': 'DeepSkyBlue1', '#d657': 'grey6', '#d656': 'gray6', '#d655': 'grey7', '#d654': 'gray7', '#d653': 'grey8', '#d652': 'gray8', '#d651': 'grey9', '#d650': 'gray9', '#d550': 'gray57', '#d659': 'grey5', '#d551': 'grey57', '#d495': 'LightGray', '#d494': 'grey83', '#d497': 'gray82', '#d496': 'LightGrey', '#d491': 'gray84', '#d490': 'grey85', '#d493': 'gray83', '#d492': 'grey84', '#d554': 'gray55', '#d555': 'grey55', '#d556': 'gray54', '#d557': 'grey54', '#d499': 'gray81', '#d498': 'grey82', '#d323': 'PaleGoldenrod', '#d553': 'grey56'} \ No newline at end of file diff --git a/share/frontend/imgrid/colors/junk/divlistmaker b/share/frontend/imgrid/colors/junk/divlistmaker deleted file mode 100755 index b461bc9..0000000 --- a/share/frontend/imgrid/colors/junk/divlistmaker +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/python2.7 - - - -divlist = [] -for x in range(674): - divlist.append("#d"+str(x)) - -print str(divlist) - -f = open('colordict.js', 'a') - -f.write("var divlist = ") -f.write(str(divlist)) -f.close() - -f = open('colors.html', 'r') -lines = f.readlines() -colornames = [] -for line in lines: - if 'right' in line and 'td' in line: - colornames.append(line[22:-6]) - -divtoname = {} -for i in divlist: - divtoname[i] = colornames[divlist.index(i)] - -print divtoname -f = open('colordict.js', 'a') -f.write("\nvar divtoname = ") -f.write(str(divtoname)) - diff --git a/share/frontend/imgrid/colors/junk/mapmaker.html b/share/frontend/imgrid/colors/junk/mapmaker.html deleted file mode 100755 index 05ca832..0000000 --- a/share/frontend/imgrid/colors/junk/mapmaker.html +++ /dev/null @@ -1,3586 +0,0 @@ - - - - -
-
-snow
-
-snow1
-
-snow2
-
-RosyBrown1
-
-RosyBrown2
-
-snow3
-
-LightCoral
-
-IndianRed1
-
-RosyBrown3
-
-IndianRed2
-
-RosyBrown
-
-brown1
-
-firebrick1
-
-brown2
-
-IndianRed
-
-IndianRed3
-
-firebrick2
-
-snow4
-
-brown3
-
-red
-
-red1
-
-RosyBrown4
-
-firebrick3
-
-red2
-
-firebrick
-
-brown
-
-red3
-
-IndianRed4
-
-brown4
-
-firebrick4
-
-DarkRed
-
-red4
-
-maroon
-
-LightPink1
-
-LightPink3
-
-LightPink4
-
-LightPink2
-
-LightPink
-
-pink
-
-crimson
-
-pink1
-
-pink2
-
-pink3
-
-pink4
-
-PaleVioletRed4
-
-PaleVioletRed
-
-PaleVioletRed2
-
-PaleVioletRed1
-
-PaleVioletRed3
-
-LavenderBlush
-
-LavenderBlush1
-
-LavenderBlush3
-
-LavenderBlush2
-
-LavenderBlush4
-
-maroon
-
-HotPink3
-
-VioletRed3
-
-VioletRed1
-
-VioletRed2
-
-VioletRed4
-
-HotPink2
-
-HotPink1
-
-HotPink4
-
-HotPink
-
-DeepPink
-
-DeepPink1
-
-DeepPink2
-
-DeepPink3
-
-DeepPink4
-
-maroon1
-
-maroon2
-
-maroon3
-
-maroon4
-
-MediumVioletRed
-
-VioletRed
-
-orchid2
-
-orchid
-
-orchid1
-
-orchid3
-
-orchid4
-
-thistle1
-
-thistle2
-
-plum1
-
-plum2
-
-thistle
-
-thistle3
-
-plum
-
-violet
-
-plum3
-
-thistle4
-
-fuchsia
-
-magenta
-
-magenta1
-
-plum4
-
-magenta2
-
-magenta3
-
-DarkMagenta
-
-magenta4
-
-purple
-
-MediumOrchid
-
-MediumOrchid1
-
-MediumOrchid2
-
-MediumOrchid3
-
-MediumOrchid4
-
-DarkViolet
-
-DarkOrchid
-
-DarkOrchid1
-
-DarkOrchid3
-
-DarkOrchid2
-
-DarkOrchid4
-
-purple
-
-indigo
-
-BlueViolet
-
-purple2
-
-purple3
-
-purple4
-
-purple1
-
-MediumPurple
-
-MediumPurple1
-
-MediumPurple2
-
-MediumPurple3
-
-MediumPurple4
-
-DarkSlateBlue
-
-LightSlateBlue
-
-MediumSlateBlue
-
-SlateBlue
-
-SlateBlue1
-
-SlateBlue2
-
-SlateBlue3
-
-SlateBlue4
-
-GhostWhite
-
-lavender
-
-blue
-
-blue1
-
-blue2
-
-blue3
-
-MediumBlue
-
-blue4
-
-DarkBlue
-
-MidnightBlue
-
-navy
-
-NavyBlue
-
-RoyalBlue
-
-RoyalBlue1
-
-RoyalBlue2
-
-RoyalBlue3
-
-RoyalBlue4
-
-CornflowerBlue
-
-LightSteelBlue
-
-LightSteelBlue1
-
-LightSteelBlue2
-
-LightSteelBlue3
-
-LightSteelBlue4
-
-SlateGray4
-
-SlateGray1
-
-SlateGray2
-
-SlateGray3
-
-LightSlateGray
-
-LightSlateGrey
-
-SlateGray
-
-SlateGrey
-
-DodgerBlue
-
-DodgerBlue1
-
-DodgerBlue2
-
-DodgerBlue4
-
-DodgerBlue3
-
-AliceBlue
-
-SteelBlue4
-
-SteelBlue
-
-SteelBlue1
-
-SteelBlue2
-
-SteelBlue3
-
-SkyBlue4
-
-SkyBlue1
-
-SkyBlue2
-
-SkyBlue3
-
-LightSkyBlue
-
-LightSkyBlue4
-
-LightSkyBlue1
-
-LightSkyBlue2
-
-LightSkyBlue3
-
-SkyBlue
-
-LightBlue3
-
-DeepSkyBlue
-
-DeepSkyBlue1
-
-DeepSkyBlue2
-
-DeepSkyBlue4
-
-DeepSkyBlue3
-
-LightBlue1
-
-LightBlue2
-
-LightBlue
-
-LightBlue4
-
-PowderBlue
-
-CadetBlue1
-
-CadetBlue2
-
-CadetBlue3
-
-CadetBlue4
-
-turquoise1
-
-turquoise2
-
-turquoise3
-
-turquoise4
-
-cadet blue
-
-CadetBlue
-
-DarkTurquoise
-
-azure
-
-azure1
-
-LightCyan
-
-LightCyan1
-
-azure2
-
-LightCyan2
-
-PaleTurquoise1
-
-PaleTurquoise
-
-PaleTurquoise2
-
-DarkSlateGray1
-
-azure3
-
-LightCyan3
-
-DarkSlateGray2
-
-PaleTurquoise3
-
-DarkSlateGray3
-
-azure4
-
-LightCyan4
-
-aqua
-
-cyan
-
-cyan1
-
-PaleTurquoise4
-
-cyan2
-
-DarkSlateGray4
-
-cyan3
-
-cyan4
-
-DarkCyan
-
-teal
-
-DarkSlateGray
-
-DarkSlateGrey
-
-MediumTurquoise
-
-LightSeaGreen
-
-turquoise
-
-aquamarine4
-
-aquamarine
-
-aquamarine1
-
-aquamarine2
-
-aquamarine3
-
-MediumAquamarine
-
-MediumSpringGreen
-
-MintCream
-
-SpringGreen
-
-SpringGreen1
-
-SpringGreen2
-
-SpringGreen3
-
-SpringGreen4
-
-MediumSeaGreen
-
-SeaGreen
-
-SeaGreen3
-
-SeaGreen1
-
-SeaGreen4
-
-SeaGreen2
-
-MediumForestGreen
-
-honeydew
-
-honeydew1
-
-honeydew2
-
-DarkSeaGreen1
-
-DarkSeaGreen2
-
-PaleGreen1
-
-PaleGreen
-
-honeydew3
-
-LightGreen
-
-PaleGreen2
-
-DarkSeaGreen3
-
-DarkSeaGreen
-
-PaleGreen3
-
-honeydew4
-
-green1
-
-lime
-
-LimeGreen
-
-DarkSeaGreen4
-
-green2
-
-PaleGreen4
-
-green3
-
-ForestGreen
-
-green4
-
-green
-
-DarkGreen
-
-LawnGreen
-
-chartreuse
-
-chartreuse1
-
-chartreuse2
-
-chartreuse3
-
-chartreuse4
-
-GreenYellow
-
-DarkOliveGreen3
-
-DarkOliveGreen1
-
-DarkOliveGreen2
-
-DarkOliveGreen4
-
-DarkOliveGreen
-
-OliveDrab
-
-OliveDrab1
-
-OliveDrab2
-
-OliveDrab3
-
-YellowGreen
-
-OliveDrab4
-
-ivory
-
-ivory1
-
-LightYellow
-
-LightYellow1
-
-beige
-
-ivory2
-
-LightGoldenrodYellow
-
-LightYellow2
-
-ivory3
-
-LightYellow3
-
-ivory4
-
-LightYellow4
-
-yellow
-
-yellow1
-
-yellow2
-
-yellow3
-
-yellow4
-
-olive
-
-DarkKhaki
-
-khaki2
-
-LemonChiffon4
-
-khaki1
-
-khaki3
-
-khaki4
-
-PaleGoldenrod
-
-LemonChiffon
-
-LemonChiffon1
-
-khaki
-
-LemonChiffon3
-
-LemonChiffon2
-
-MediumGoldenRod
-
-cornsilk4
-
-gold
-
-gold1
-
-gold2
-
-gold3
-
-gold4
-
-LightGoldenrod
-
-LightGoldenrod4
-
-LightGoldenrod1
-
-LightGoldenrod3
-
-LightGoldenrod2
-
-cornsilk3
-
-cornsilk2
-
-cornsilk
-
-cornsilk1
-
-goldenrod
-
-goldenrod1
-
-goldenrod2
-
-goldenrod3
-
-goldenrod4
-
-DarkGoldenrod
-
-DarkGoldenrod1
-
-DarkGoldenrod2
-
-DarkGoldenrod3
-
-DarkGoldenrod4
-
-FloralWhite
-
-wheat2
-
-OldLace
-
-wheat
-
-wheat1
-
-wheat3
-
-orange
-
-orange1
-
-orange2
-
-orange3
-
-orange4
-
-wheat4
-
-moccasin
-
-PapayaWhip
-
-NavajoWhite3
-
-BlanchedAlmond
-
-NavajoWhite
-
-NavajoWhite1
-
-NavajoWhite2
-
-NavajoWhite4
-
-AntiqueWhite4
-
-AntiqueWhite
-
-tan
-
-bisque4
-
-burlywood
-
-AntiqueWhite2
-
-burlywood1
-
-burlywood3
-
-burlywood2
-
-AntiqueWhite1
-
-burlywood4
-
-AntiqueWhite3
-
-DarkOrange
-
-bisque2
-
-bisque
-
-bisque1
-
-bisque3
-
-DarkOrange1
-
-linen
-
-DarkOrange2
-
-DarkOrange3
-
-DarkOrange4
-
-peru
-
-tan1
-
-tan2
-
-tan3
-
-tan4
-
-PeachPuff
-
-PeachPuff1
-
-PeachPuff4
-
-PeachPuff2
-
-PeachPuff3
-
-SandyBrown
-
-seashell4
-
-seashell2
-
-seashell3
-
-chocolate
-
-chocolate1
-
-chocolate2
-
-chocolate3
-
-chocolate4
-
-SaddleBrown
-
-seashell
-
-seashell1
-
-sienna4
-
-sienna
-
-sienna1
-
-sienna2
-
-sienna3
-
-LightSalmon3
-
-LightSalmon
-
-LightSalmon1
-
-LightSalmon4
-
-LightSalmon2
-
-coral
-
-OrangeRed
-
-OrangeRed1
-
-OrangeRed2
-
-OrangeRed3
-
-OrangeRed4
-
-DarkSalmon
-
-salmon1
-
-salmon2
-
-salmon3
-
-salmon4
-
-coral1
-
-coral2
-
-coral3
-
-coral4
-
-tomato4
-
-tomato
-
-tomato1
-
-tomato2
-
-tomato3
-
-MistyRose4
-
-MistyRose2
-
-MistyRose
-
-MistyRose1
-
-salmon
-
-MistyRose3
-
-white
-
-gray100
-
-grey100
-
-grey100
-
-gray99
-
-grey99
-
-gray98
-
-grey98
-
-gray97
-
-grey97
-
-gray96
-
-grey96
-
-WhiteSmoke
-
-gray95
-
-grey95
-
-gray94
-
-grey94
-
-gray93
-
-grey93
-
-gray92
-
-grey92
-
-gray91
-
-grey91
-
-gray90
-
-grey90
-
-gray89
-
-grey89
-
-gray88
-
-grey88
-
-gray87
-
-grey87
-
-gainsboro
-
-gray86
-
-grey86
-
-gray85
-
-grey85
-
-gray84
-
-grey84
-
-gray83
-
-grey83
-
-LightGray
-
-LightGrey
-
-gray82
-
-grey82
-
-gray81
-
-grey81
-
-gray80
-
-grey80
-
-gray79
-
-grey79
-
-gray78
-
-grey78
-
-gray77
-
-grey77
-
-gray76
-
-grey76
-
-silver
-
-gray75
-
-grey75
-
-gray74
-
-grey74
-
-gray73
-
-grey73
-
-gray72
-
-grey72
-
-gray71
-
-grey71
-
-gray70
-
-grey70
-
-gray69
-
-grey69
-
-gray68
-
-grey68
-
-gray67
-
-grey67
-
-DarkGray
-
-DarkGrey
-
-gray66
-
-grey66
-
-gray65
-
-grey65
-
-gray64
-
-grey64
-
-gray63
-
-grey63
-
-gray62
-
-grey62
-
-gray61
-
-grey61
-
-gray60
-
-grey60
-
-gray59
-
-grey59
-
-gray58
-
-grey58
-
-gray57
-
-grey57
-
-gray56
-
-grey56
-
-gray55
-
-grey55
-
-gray54
-
-grey54
-
-gray53
-
-grey53
-
-gray52
-
-grey52
-
-gray51
-
-grey51
-
-fractal
-
-gray50
-
-grey50
-
-gray
-
-gray49
-
-grey49
-
-gray48
-
-grey48
-
-gray47
-
-grey47
-
-gray46
-
-grey46
-
-gray45
-
-grey45
-
-gray44
-
-grey44
-
-gray43
-
-grey43
-
-gray42
-
-grey42
-
-DimGray
-
-DimGrey
-
-gray41
-
-grey41
-
-gray40
-
-grey40
-
-gray39
-
-grey39
-
-gray38
-
-grey38
-
-gray37
-
-grey37
-
-gray36
-
-grey36
-
-gray35
-
-grey35
-
-gray34
-
-grey34
-
-gray33
-
-grey33
-
-gray32
-
-grey32
-
-gray31
-
-grey31
-
-gray30
-
-grey30
-
-gray29
-
-grey29
-
-gray28
-
-grey28
-
-gray27
-
-grey27
-
-gray26
-
-grey26
-
-gray25
-
-grey25
-
-gray24
-
-grey24
-
-gray23
-
-grey23
-
-gray22
-
-grey22
-
-gray21
-
-grey21
-
-gray20
-
-grey20
-
-gray19
-
-grey19
-
-gray18
-
-grey18
-
-gray17
-
-grey17
-
-gray16
-
-grey16
-
-gray15
-
-grey15
-
-gray14
-
-grey14
-
-gray13
-
-grey13
-
-gray12
-
-grey12
-
-gray11
-
-grey11
-
-gray10
-
-grey10
-
-gray9
-
-grey9
-
-gray8
-
-grey8
-
-gray7
-
-grey7
-
-gray6
-
-grey6
-
-gray5
-
-grey5
-
-gray4
-
-grey4
-
-gray3
-
-grey3
-
-gray2
-
-grey2
-
-gray1
-
-grey1
-
-black
-
-gray0
-
-grey0
-
-opaque
-
-none
-
-transparent
-
- -
-WHERE THE COLORNAMES WILL GO -
- -
CLICK TO SHOW HEXES
-
CLICK TO SHOW INFO
- - - - diff --git a/share/frontend/imgrid/colors/junk/picker.js b/share/frontend/imgrid/colors/junk/picker.js deleted file mode 100755 index 04a49f1..0000000 --- a/share/frontend/imgrid/colors/junk/picker.js +++ /dev/null @@ -1,15 +0,0 @@ -var colorpicker = "
"+"
"+"snow
"+"
"+"snow1
"+"
"+"snow2
"+"
"+"RosyBrown1
"+"
"+"RosyBrown2
"+"
"+"snow3
"+"
"+"LightCoral
"+"
"+"IndianRed1
"+"
"+"RosyBrown3
"+"
"+"IndianRed2
"+"
"+"RosyBrown
"+"
"+"brown1
"+"
"+"firebrick1
"+"
"+"brown2
"+"
"+"IndianRed
"+"
"+"IndianRed3
"+"
"+"firebrick2
"+"
"+"snow4
"+"
"+"brown3
"+"
"+"red
"+"
"+"red1
"+"
"+"RosyBrown4
"+"
"+"firebrick3
"+"
"+"red2
"+"
"+"firebrick
"+"
"+"brown
"+"
"+"red3
"+"
"+"IndianRed4
"+"
"+"brown4
"+"
"+"firebrick4
"+"
"+"DarkRed
"+"
"+"red4
"+"
"+"maroon
"+"
"+"LightPink1
"+"
"+"LightPink3
"+"
"+"LightPink4
"+"
"+"LightPink2
"+"
"+"LightPink
"+"
"+"pink
"+"
"+"crimson
"+"
"+"pink1
"+"
"+"pink2
"+"
"+"pink3
"+"
"+"pink4
"+"
"+"PaleVioletRed4
"+"
"+"PaleVioletRed
"+"
"+"PaleVioletRed2
"+"
"+"PaleVioletRed1
"+"
"+"PaleVioletRed3
"+"
"+"LavenderBlush
"+"
"+"LavenderBlush1
"+"
"+"LavenderBlush3
"+"
"+"LavenderBlush2
"+"
"+"LavenderBlush4
"+"
"+"maroon
"+"
"+"HotPink3
"+"
"+"VioletRed3
"+"
"+"VioletRed1
"+"
"+"VioletRed2
"+"
"+"VioletRed4
"+"
"+"HotPink2
"+"
"+"HotPink1
"+"
"+"HotPink4
"+"
"+"HotPink
"+"
"+"DeepPink
"+"
"+"DeepPink1
"+"
"+"DeepPink2
"+"
"+"DeepPink3
"+"
"+"DeepPink4
"+"
"+"maroon1
"+"
"+"maroon2
"+"
"+"maroon3
"+"
"+"maroon4
"+"
"+"MediumVioletRed
"+"
"+"VioletRed
"+"
"+"orchid2
"+"
"+"orchid
"+"
"+"orchid1
"+"
"+"orchid3
"+"
"+"orchid4
"+"
"+"thistle1
"+"
"+"thistle2
"+"
"+"plum1
"+"
"+"plum2
"+"
"+"thistle
"+"
"+"thistle3
"+"
"+"plum
"+"
"+"violet
"+"
"+"plum3
"+"
"+"thistle4
"+"
"+"fuchsia
"+"
"+"magenta
"+"
"+"magenta1
"+"
"+"plum4
"+"
"+"magenta2
"+"
"+"magenta3
"+"
"+"DarkMagenta
"+"
"+"magenta4
"+"
"+"purple
"+"
"+"MediumOrchid
"+"
"+"MediumOrchid1
"+"
"+"MediumOrchid2
"+"
"+"MediumOrchid3
"+"
"+"MediumOrchid4
"+"
"+"DarkViolet
"+"
"+"DarkOrchid
"+"
"+"DarkOrchid1
"+"
"+"DarkOrchid3
"+"
"+"DarkOrchid2
"+"
"+"DarkOrchid4
"+"
"+"purple
"+"
"+"indigo
"+"
"+"BlueViolet
"+"
"+"purple2
"+"
"+"purple3
"+"
"+"purple4
"+"
"+"purple1
"+"
"+"MediumPurple
"+"
"+"MediumPurple1
"+"
"+"MediumPurple2
"+"
"+"MediumPurple3
"+"
"+"MediumPurple4
"+"
"+"DarkSlateBlue
"+"
"+"LightSlateBlue
"+"
"+"MediumSlateBlue
"+"
"+"SlateBlue
"+"
"+"SlateBlue1
"+"
"+"SlateBlue2
"+"
"+"SlateBlue3
"+"
"+"SlateBlue4
"+"
"+"GhostWhite
"+"
"+"lavender
"+"
"+"blue
"+"
"+"blue1
"+"
"+"blue2
"+"
"+"blue3
"+"
"+"MediumBlue
"+"
"+"blue4
"+"
"+"DarkBlue
"+"
"+"MidnightBlue
"+"
"+"navy
"+"
"+"NavyBlue
"+"
"+"RoyalBlue
"+"
"+"RoyalBlue1
"+"
"+"RoyalBlue2
"+"
"+"RoyalBlue3
"+"
"+"RoyalBlue4
"+"
"+"CornflowerBlue
"+"
"+"LightSteelBlue
"+"
"+"LightSteelBlue1
"+"
"+"LightSteelBlue2
"+"
"+"LightSteelBlue3
"+"
"+"LightSteelBlue4
"+"
"+"SlateGray4
"+"
"+"SlateGray1
"+"
"+"SlateGray2
"+"
"+"SlateGray3
"+"
"+"LightSlateGray
"+"
"+"LightSlateGrey
"+"
"+"SlateGray
"+"
"+"SlateGrey
"+"
"+"DodgerBlue
"+"
"+"DodgerBlue1
"+"
"+"DodgerBlue2
"+"
"+"DodgerBlue4
"+"
"+"DodgerBlue3
"+"
"+"AliceBlue
"+"
"+"SteelBlue4
"+"
"+"SteelBlue
"+"
"+"SteelBlue1
"+"
"+"SteelBlue2
"+"
"+"SteelBlue3
"+"
"+"SkyBlue4
"+"
"+"SkyBlue1
"+"
"+"SkyBlue2
"+"
"+"SkyBlue3
"+"
"+"LightSkyBlue
"+"
"+"LightSkyBlue4
"+"
"+"LightSkyBlue1
"+"
"+"LightSkyBlue2
"+"
"+"LightSkyBlue3
"+"
"+"SkyBlue
"+"
"+"LightBlue3
"+"
"+"DeepSkyBlue
"+"
"+"DeepSkyBlue1
"+"
"+"DeepSkyBlue2
"+"
"+"DeepSkyBlue4
"+"
"+"DeepSkyBlue3
"+"
"+"LightBlue1
"+"
"+"LightBlue2
"+"
"+"LightBlue
"+"
"+"LightBlue4
"+"
"+"PowderBlue
"+"
"+"CadetBlue1
"+"
"+"CadetBlue2
"+"
"+"CadetBlue3
"+"
"+"CadetBlue4
"+"
"+"turquoise1
"+"
"+"turquoise2
"+"
"+"turquoise3
"+"
"+"turquoise4
"+"
"+"cadet blue
"+"
"+"CadetBlue
"+"
"+"DarkTurquoise
"+"
"+"azure
"+"
"+"azure1
"+"
"+"LightCyan
"+"
"+"LightCyan1
"+"
"+"azure2
"+"
"+"LightCyan2
"+"
"+"PaleTurquoise1
"+"
"+"PaleTurquoise
"+"
"+"PaleTurquoise2
"+"
"+"DarkSlateGray1
"+"
"+"azure3
"+"
"+"LightCyan3
"+"
"+"DarkSlateGray2
"+"
"+"PaleTurquoise3
"+"
"+"DarkSlateGray3
"+"
"+"azure4
"+"
"+"LightCyan4
"+"
"+"aqua
"+"
"+"cyan
"+"
"+"cyan1
"+"
"+"PaleTurquoise4
"+"
"+"cyan2
"+"
"+"DarkSlateGray4
"+"
"+"cyan3
"+"
"+"cyan4
"+"
"+"DarkCyan
"+"
"+"teal
"+"
"+"DarkSlateGray
"+"
"+"DarkSlateGrey
"+"
"+"MediumTurquoise
"+"
"+"LightSeaGreen
"+"
"+"turquoise
"+"
"+"aquamarine4
"+"
"+"aquamarine
"+"
"+"aquamarine1
"+"
"+"aquamarine2
"+"
"+"aquamarine3
"+"
"+"MediumAquamarine
"+"
"+"MediumSpringGreen
"+"
"+"MintCream
"+"
"+"SpringGreen
"+"
"+"SpringGreen1
"+"
"+"SpringGreen2
"+"
"+"SpringGreen3
"+"
"+"SpringGreen4
"+"
"+"MediumSeaGreen
"+"
"+"SeaGreen
"+"
"+"SeaGreen3
"+"
"+"SeaGreen1
"+"
"+"SeaGreen4
"+"
"+"SeaGreen2
"+"
"+"MediumForestGreen
"+"
"+"honeydew
"+"
"+"honeydew1
"+"
"+"honeydew2
"+"
"+"DarkSeaGreen1
"+"
"+"DarkSeaGreen2
"+"
"+"PaleGreen1
"+"
"+"PaleGreen
"+"
"+"honeydew3
"+"
"+"LightGreen
"+"
"+"PaleGreen2
"+"
"+"DarkSeaGreen3
"+"
"+"DarkSeaGreen
"+"
"+"PaleGreen3
"+"
"+"honeydew4
"+"
"+"green1
"+"
"+"lime
"+"
"+"LimeGreen
"+"
"+"DarkSeaGreen4
"+"
"+"green2
"+"
"+"PaleGreen4
"+"
"+"green3
"+"
"+"ForestGreen
"+"
"+"green4
"+"
"+"green
"+"
"+"DarkGreen
"+"
"+"LawnGreen
"+"
"+"chartreuse
"+"
"+"chartreuse1
"+"
"+"chartreuse2
"+"
"+"chartreuse3
"+"
"+"chartreuse4
"+"
"+"GreenYellow
"+"
"+"DarkOliveGreen3
"+"
"+"DarkOliveGreen1
"+"
"+"DarkOliveGreen2
"+"
"+"DarkOliveGreen4
"+"
"+"DarkOliveGreen
"+"
"+"OliveDrab
"+"
"+"OliveDrab1
"+"
"+"OliveDrab2
"+"
"+"OliveDrab3
"+"
"+"YellowGreen
"+"
"+"OliveDrab4
"+"
"+"ivory
"+"
"+"ivory1
"+"
"+"LightYellow
"+"
"+"LightYellow1
"+"
"+"beige
"+"
"+"ivory2
"+"
"+"LightGoldenrodYellow
"+"
"+"LightYellow2
"+"
"+"ivory3
"+"
"+"LightYellow3
"+"
"+"ivory4
"+"
"+"LightYellow4
"+"
"+"yellow
"+"
"+"yellow1
"+"
"+"yellow2
"+"
"+"yellow3
"+"
"+"yellow4
"+"
"+"olive
"+"
"+"DarkKhaki
"+"
"+"khaki2
"+"
"+"LemonChiffon4
"+"
"+"khaki1
"+"
"+"khaki3
"+"
"+"khaki4
"+"
"+"PaleGoldenrod
"+"
"+"LemonChiffon
"+"
"+"LemonChiffon1
"+"
"+"khaki
"+"
"+"LemonChiffon3
"+"
"+"LemonChiffon2
"+"
"+"MediumGoldenRod
"+"
"+"cornsilk4
"+"
"+"gold
"+"
"+"gold1
"+"
"+"gold2
"+"
"+"gold3
"+"
"+"gold4
"+"
"+"LightGoldenrod
"+"
"+"LightGoldenrod4
"+"
"+"LightGoldenrod1
"+"
"+"LightGoldenrod3
"+"
"+"LightGoldenrod2
"+"
"+"cornsilk3
"+"
"+"cornsilk2
"+"
"+"cornsilk
"+"
"+"cornsilk1
"+"
"+"goldenrod
"+"
"+"goldenrod1
"+"
"+"goldenrod2
"+"
"+"goldenrod3
"+"
"+"goldenrod4
"+"
"+"DarkGoldenrod
"+"
"+"DarkGoldenrod1
"+"
"+"DarkGoldenrod2
"+"
"+"DarkGoldenrod3
"+"
"+"DarkGoldenrod4
"+"
"+"FloralWhite
"+"
"+"wheat2
"+"
"+"OldLace
"+"
"+"wheat
"+"
"+"wheat1
"+"
"+"wheat3
"+"
"+"orange
"+"
"+"orange1
"+"
"+"orange2
"+"
"+"orange3
"+"
"+"orange4
"+"
"+"wheat4
"+"
"+"moccasin
"+"
"+"PapayaWhip
"+"
"+"NavajoWhite3
"+"
"+"BlanchedAlmond
"+"
"+"NavajoWhite
"+"
"+"NavajoWhite1
"+"
"+"NavajoWhite2
"+"
"+"NavajoWhite4
"+"
"+"AntiqueWhite4
"+"
"+"AntiqueWhite
"+"
"+"tan
"+"
"+"bisque4
"+"
"+"burlywood
"+"
"+"AntiqueWhite2
"+"
"+"burlywood1
"+"
"+"burlywood3
"+"
"+"burlywood2
"+"
"+"AntiqueWhite1
"+"
"+"burlywood4
"+"
"+"AntiqueWhite3
"+"
"+"DarkOrange
"+"
"+"bisque2
"+"
"+"bisque
"+"
"+"bisque1
"+"
"+"bisque3
"+"
"+"DarkOrange1
"+"
"+"linen
"+"
"+"DarkOrange2
"+"
"+"DarkOrange3
"+"
"+"DarkOrange4
"+"
"+"peru
"+"
"+"tan1
"+"
"+"tan2
"+"
"+"tan3
"+"
"+"tan4
"+"
"+"PeachPuff
"+"
"+"PeachPuff1
"+"
"+"PeachPuff4
"+"
"+"PeachPuff2
"+"
"+"PeachPuff3
"+"
"+"SandyBrown
"+"
"+"seashell4
"+"
"+"seashell2
"+"
"+"seashell3
"+"
"+"chocolate
"+"
"+"chocolate1
"+"
"+"chocolate2
"+"
"+"chocolate3
"+"
"+"chocolate4
"+"
"+"SaddleBrown
"+"
"+"seashell
"+"
"+"seashell1
"+"
"+"sienna4
"+"
"+"sienna
"+"
"+"sienna1
"+"
"+"sienna2
"+"
"+"sienna3
"+"
"+"LightSalmon3
"+"
"+"LightSalmon
"+"
"+"LightSalmon1
"+"
"+"LightSalmon4
"+"
"+"LightSalmon2
"+"
"+"coral
"+"
"+"OrangeRed
"+"
"+"OrangeRed1
"+"
"+"OrangeRed2
"+"
"+"OrangeRed3
"+"
"+"OrangeRed4
"+"
"+"DarkSalmon
"+"
"+"salmon1
"+"
"+"salmon2
"+"
"+"salmon3
"+"
"+"salmon4
"+"
"+"coral1
"+"
"+"coral2
"+"
"+"coral3
"+"
"+"coral4
"+"
"+"tomato4
"+"
"+"tomato
"+"
"+"tomato1
"+"
"+"tomato2
"+"
"+"tomato3
"+"
"+"MistyRose4
"+"
"+"MistyRose2
"+"
"+"MistyRose
"+"
"+"MistyRose1
"+"
"+"salmon
"+"
"+"MistyRose3
"+"
"+"white
"+"
"+"gray100
"+"
"+"grey100
"+"
"+"grey100
"+"
"+"gray99
"+"
"+"grey99
"+"
"+"gray98
"+"
"+"grey98
"+"
"+"gray97
"+"
"+"grey97
"+"
"+"gray96
"+"
"+"grey96
"+"
"+"WhiteSmoke
"+"
"+"gray95
"+"
"+"grey95
"+"
"+"gray94
"+"
"+"grey94
"+"
"+"gray93
"+"
"+"grey93
"+"
"+"gray92
"+"
"+"grey92
"+"
"+"gray91
"+"
"+"grey91
"+"
"+"gray90
"+"
"+"grey90
"+"
"+"gray89
"+"
"+"grey89
"+"
"+"gray88
"+"
"+"grey88
"+"
"+"gray87
"+"
"+"grey87
"+"
"+"gainsboro
"+"
"+"gray86
"+"
"+"grey86
"+"
"+"gray85
"+"
"+"grey85
"+"
"+"gray84
"+"
"+"grey84
"+"
"+"gray83
"+"
"+"grey83
"+"
"+"LightGray
"+"
"+"LightGrey
"+"
"+"gray82
"+"
"+"grey82
"+"
"+"gray81
"+"
"+"grey81
"+"
"+"gray80
"+"
"+"grey80
"+"
"+"gray79
"+"
"+"grey79
"+"
"+"gray78
"+"
"+"grey78
"+"
"+"gray77
"+"
"+"grey77
"+"
"+"gray76
"+"
"+"grey76
"+"
"+"silver
"+"
"+"gray75
"+"
"+"grey75
"+"
"+"gray74
"+"
"+"grey74
"+"
"+"gray73
"+"
"+"grey73
"+"
"+"gray72
"+"
"+"grey72
"+"
"+"gray71
"+"
"+"grey71
"+"
"+"gray70
"+"
"+"grey70
"+"
"+"gray69
"+"
"+"grey69
"+"
"+"gray68
"+"
"+"grey68
"+"
"+"gray67
"+"
"+"grey67
"+"
"+"DarkGray
"+"
"+"DarkGrey
"+"
"+"gray66
"+"
"+"grey66
"+"
"+"gray65
"+"
"+"grey65
"+"
"+"gray64
"+"
"+"grey64
"+"
"+"gray63
"+"
"+"grey63
"+"
"+"gray62
"+"
"+"grey62
"+"
"+"gray61
"+"
"+"grey61
"+"
"+"gray60
"+"
"+"grey60
"+"
"+"gray59
"+"
"+"grey59
"+"
"+"gray58
"+"
"+"grey58
"+"
"+"gray57
"+"
"+"grey57
"+"
"+"gray56
"+"
"+"grey56
"+"
"+"gray55
"+"
"+"grey55
"+"
"+"gray54
"+"
"+"grey54
"+"
"+"gray53
"+"
"+"grey53
"+"
"+"gray52
"+"
"+"grey52
"+"
"+"gray51
"+"
"+"grey51
"+"
"+"fractal
"+"
"+"gray50
"+"
"+"grey50
"+"
"+"gray
"+"
"+"gray49
"+"
"+"grey49
"+"
"+"gray48
"+"
"+"grey48
"+"
"+"gray47
"+"
"+"grey47
"+"
"+"gray46
"+"
"+"grey46
"+"
"+"gray45
"+"
"+"grey45
"+"
"+"gray44
"+"
"+"grey44
"+"
"+"gray43
"+"
"+"grey43
"+"
"+"gray42
"+"
"+"grey42
"+"
"+"DimGray
"+"
"+"DimGrey
"+"
"+"gray41
"+"
"+"grey41
"+"
"+"gray40
"+"
"+"grey40
"+"
"+"gray39
"+"
"+"grey39
"+"
"+"gray38
"+"
"+"grey38
"+"
"+"gray37
"+"
"+"grey37
"+"
"+"gray36
"+"
"+"grey36
"+"
"+"gray35
"+"
"+"grey35
"+"
"+"gray34
"+"
"+"grey34
"+"
"+"gray33
"+"
"+"grey33
"+"
"+"gray32
"+"
"+"grey32
"+"
"+"gray31
"+"
"+"grey31
"+"
"+"gray30
"+"
"+"grey30
"+"
"+"gray29
"+"
"+"grey29
"+"
"+"gray28
"+"
"+"grey28
"+"
"+"gray27
"+"
"+"grey27
"+"
"+"gray26
"+"
"+"grey26
"+"
"+"gray25
"+"
"+"grey25
"+"
"+"gray24
"+"
"+"grey24
"+"
"+"gray23
"+"
"+"grey23
"+"
"+"gray22
"+"
"+"grey22
"+"
"+"gray21
"+"
"+"grey21
"+"
"+"gray20
"+"
"+"grey20
"+"
"+"gray19
"+"
"+"grey19
"+"
"+"gray18
"+"
"+"grey18
"+"
"+"gray17
"+"
"+"grey17
"+"
"+"gray16
"+"
"+"grey16
"+"
"+"gray15
"+"
"+"grey15
"+"
"+"gray14
"+"
"+"grey14
"+"
"+"gray13
"+"
"+"grey13
"+"
"+"gray12
"+"
"+"grey12
"+"
"+"gray11
"+"
"+"grey11
"+"
"+"gray10
"+"
"+"grey10
"+"
"+"gray9
"+"
"+"grey9
"+"
"+"gray8
"+"
"+"grey8
"+"
"+"gray7
"+"
"+"grey7
"+"
"+"gray6
"+"
"+"grey6
"+"
"+"gray5
"+"
"+"grey5
"+"
"+"gray4
"+"
"+"grey4
"+"
"+"gray3
"+"
"+"grey3
"+"
"+"gray2
"+"
"+"grey2
"+"
"+"gray1
"+"
"+"grey1
"+"
"+"black
"+"
"+"gray0
"+"
"+"grey0
"+"
"+"opaque
"+"
"+"none
"+"
"+"transparent
"+"
"+"
WHERE THE COLORNAMES WILL GO
"+""+"" - - -function showpicker() - { - $('#popupContact').html(colorpicker); - $('#swingleft').append("whos the dadd addad"); - $('#popupContact').css('height', '1500px') - } - -$('#colorlist').click(function(){showpicker()}) - - - - diff --git a/share/frontend/imgrid/colors/junk/scrollio.html b/share/frontend/imgrid/colors/junk/scrollio.html deleted file mode 100755 index e1443c3..0000000 --- a/share/frontend/imgrid/colors/junk/scrollio.html +++ /dev/null @@ -1,3850 +0,0 @@ - - - - - - -
-
-
-
-snow
-
-snow1
-
-snow2
-
-RosyBrown1
-
-RosyBrown2
-
-snow3
-
-LightCoral
-
-IndianRed1
-
-RosyBrown3
-
-IndianRed2
-
-RosyBrown
-
-brown1
-
-firebrick1
-
-brown2
-
-IndianRed
-
-IndianRed3
-
-firebrick2
-
-snow4
-
-brown3
-
-red
-
-red1
-
-RosyBrown4
-
-firebrick3
-
-red2
-
-firebrick
-
-brown
-
-red3
-
-IndianRed4
-
-brown4
-
-firebrick4
-
-DarkRed
-
-red4
-
-maroon
-
-LightPink1
-
-LightPink3
-
-LightPink4
-
-LightPink2
-
-LightPink
-
-pink
-
-crimson
-
-pink1
-
-pink2
-
-pink3
-
-pink4
-
-PaleVioletRed4
-
-PaleVioletRed
-
-PaleVioletRed2
-
-PaleVioletRed1
-
-PaleVioletRed3
-
-LavenderBlush
-
-LavenderBlush1
-
-LavenderBlush3
-
-LavenderBlush2
-
-LavenderBlush4
-
-maroon
-
-HotPink3
-
-VioletRed3
-
-VioletRed1
-
-VioletRed2
-
-VioletRed4
-
-HotPink2
-
-HotPink1
-
-HotPink4
-
-HotPink
-
-DeepPink
-
-DeepPink1
-
-DeepPink2
-
-DeepPink3
-
-DeepPink4
-
-maroon1
-
-maroon2
-
-maroon3
-
-maroon4
-
-MediumVioletRed
-
-VioletRed
-
-orchid2
-
-orchid
-
-orchid1
-
-orchid3
-
-orchid4
-
-thistle1
-
-thistle2
-
-plum1
-
-plum2
-
-thistle
-
-thistle3
-
-plum
-
-violet
-
-plum3
-
-thistle4
-
-fuchsia
-
-magenta
-
-magenta1
-
-plum4
-
-magenta2
-
-magenta3
-
-DarkMagenta
-
-magenta4
-
-purple
-
-MediumOrchid
-
-MediumOrchid1
-
-MediumOrchid2
-
-MediumOrchid3
-
-MediumOrchid4
-
-DarkViolet
-
-DarkOrchid
-
-DarkOrchid1
-
-DarkOrchid3
-
-DarkOrchid2
-
-DarkOrchid4
-
-purple
-
-indigo
-
-BlueViolet
-
-purple2
-
-purple3
-
-purple4
-
-purple1
-
-MediumPurple
-
-MediumPurple1
-
-MediumPurple2
-
-MediumPurple3
-
-MediumPurple4
-
-DarkSlateBlue
-
-LightSlateBlue
-
-MediumSlateBlue
-
-SlateBlue
-
-SlateBlue1
-
-SlateBlue2
-
-SlateBlue3
-
-SlateBlue4
-
-GhostWhite
-
-lavender
-
-blue
-
-blue1
-
-blue2
-
-blue3
-
-MediumBlue
-
-blue4
-
-DarkBlue
-
-MidnightBlue
-
-navy
-
-NavyBlue
-
-RoyalBlue
-
-RoyalBlue1
-
-RoyalBlue2
-
-RoyalBlue3
-
-RoyalBlue4
-
-CornflowerBlue
-
-LightSteelBlue
-
-LightSteelBlue1
-
-LightSteelBlue2
-
-LightSteelBlue3
-
-LightSteelBlue4
-
-SlateGray4
-
-SlateGray1
-
-SlateGray2
-
-SlateGray3
-
-LightSlateGray
-
-LightSlateGrey
-
-SlateGray
-
-SlateGrey
-
-DodgerBlue
-
-DodgerBlue1
-
-DodgerBlue2
-
-DodgerBlue4
-
-DodgerBlue3
-
-AliceBlue
-
-SteelBlue4
-
-SteelBlue
-
-SteelBlue1
-
-SteelBlue2
-
-SteelBlue3
-
-SkyBlue4
-
-SkyBlue1
-
-SkyBlue2
-
-SkyBlue3
-
-LightSkyBlue
-
-LightSkyBlue4
-
-LightSkyBlue1
-
-LightSkyBlue2
-
-LightSkyBlue3
-
-SkyBlue
-
-LightBlue3
-
-DeepSkyBlue
-
-DeepSkyBlue1
-
-DeepSkyBlue2
-
-DeepSkyBlue4
-
-DeepSkyBlue3
-
-LightBlue1
-
-LightBlue2
-
-LightBlue
-
-LightBlue4
-
-PowderBlue
-
-CadetBlue1
-
-CadetBlue2
-
-CadetBlue3
-
-CadetBlue4
-
-turquoise1
-
-turquoise2
-
-turquoise3
-
-turquoise4
-
-cadet blue
-
-CadetBlue
-
-DarkTurquoise
-
-azure
-
-azure1
-
-LightCyan
-
-LightCyan1
-
-azure2
-
-LightCyan2
-
-PaleTurquoise1
-
-PaleTurquoise
-
-PaleTurquoise2
-
-DarkSlateGray1
-
-azure3
-
-LightCyan3
-
-DarkSlateGray2
-
-PaleTurquoise3
-
-DarkSlateGray3
-
-azure4
-
-LightCyan4
-
-aqua
-
-cyan
-
-cyan1
-
-PaleTurquoise4
-
-cyan2
-
-DarkSlateGray4
-
-cyan3
-
-cyan4
-
-DarkCyan
-
-teal
-
-DarkSlateGray
-
-DarkSlateGrey
-
-MediumTurquoise
-
-LightSeaGreen
-
-turquoise
-
-aquamarine4
-
-aquamarine
-
-aquamarine1
-
-aquamarine2
-
-aquamarine3
-
-MediumAquamarine
-
-MediumSpringGreen
-
-MintCream
-
-SpringGreen
-
-SpringGreen1
-
-SpringGreen2
-
-SpringGreen3
-
-SpringGreen4
-
-MediumSeaGreen
-
-SeaGreen
-
-SeaGreen3
-
-SeaGreen1
-
-SeaGreen4
-
-SeaGreen2
-
-MediumForestGreen
-
-honeydew
-
-honeydew1
-
-honeydew2
-
-DarkSeaGreen1
-
-DarkSeaGreen2
-
-PaleGreen1
-
-PaleGreen
-
-honeydew3
-
-LightGreen
-
-PaleGreen2
-
-DarkSeaGreen3
-
-DarkSeaGreen
-
-PaleGreen3
-
-honeydew4
-
-green1
-
-lime
-
-LimeGreen
-
-DarkSeaGreen4
-
-green2
-
-PaleGreen4
-
-green3
-
-ForestGreen
-
-green4
-
-green
-
-DarkGreen
-
-LawnGreen
-
-chartreuse
-
-chartreuse1
-
-chartreuse2
-
-chartreuse3
-
-chartreuse4
-
-GreenYellow
-
-DarkOliveGreen3
-
-DarkOliveGreen1
-
-DarkOliveGreen2
-
-DarkOliveGreen4
-
-DarkOliveGreen
-
-OliveDrab
-
-OliveDrab1
-
-OliveDrab2
-
-OliveDrab3
-
-YellowGreen
-
-OliveDrab4
-
-ivory
-
-ivory1
-
-LightYellow
-
-LightYellow1
-
-beige
-
-ivory2
-
-LightGoldenrodYellow
-
-LightYellow2
-
-ivory3
-
-LightYellow3
-
-ivory4
-
-LightYellow4
-
-yellow
-
-yellow1
-
-yellow2
-
-yellow3
-
-yellow4
-
-olive
-
-DarkKhaki
-
-khaki2
-
-LemonChiffon4
-
-khaki1
-
-khaki3
-
-khaki4
-
-PaleGoldenrod
-
-LemonChiffon
-
-LemonChiffon1
-
-khaki
-
-LemonChiffon3
-
-LemonChiffon2
-
-MediumGoldenRod
-
-cornsilk4
-
-gold
-
-gold1
-
-gold2
-
-gold3
-
-gold4
-
-LightGoldenrod
-
-LightGoldenrod4
-
-LightGoldenrod1
-
-LightGoldenrod3
-
-LightGoldenrod2
-
-cornsilk3
-
-cornsilk2
-
-cornsilk
-
-cornsilk1
-
-goldenrod
-
-goldenrod1
-
-goldenrod2
-
-goldenrod3
-
-goldenrod4
-
-DarkGoldenrod
-
-DarkGoldenrod1
-
-DarkGoldenrod2
-
-DarkGoldenrod3
-
-DarkGoldenrod4
-
-FloralWhite
-
-wheat2
-
-OldLace
-
-wheat
-
-wheat1
-
-wheat3
-
-orange
-
-orange1
-
-orange2
-
-orange3
-
-orange4
-
-wheat4
-
-moccasin
-
-PapayaWhip
-
-NavajoWhite3
-
-BlanchedAlmond
-
-NavajoWhite
-
-NavajoWhite1
-
-NavajoWhite2
-
-NavajoWhite4
-
-AntiqueWhite4
-
-AntiqueWhite
-
-tan
-
-bisque4
-
-burlywood
-
-AntiqueWhite2
-
-burlywood1
-
-burlywood3
-
-burlywood2
-
-AntiqueWhite1
-
-burlywood4
-
-AntiqueWhite3
-
-DarkOrange
-
-bisque2
-
-bisque
-
-bisque1
-
-bisque3
-
-DarkOrange1
-
-linen
-
-DarkOrange2
-
-DarkOrange3
-
-DarkOrange4
-
-peru
-
-tan1
-
-tan2
-
-tan3
-
-tan4
-
-PeachPuff
-
-PeachPuff1
-
-PeachPuff4
-
-PeachPuff2
-
-PeachPuff3
-
-SandyBrown
-
-seashell4
-
-seashell2
-
-seashell3
-
-chocolate
-
-chocolate1
-
-chocolate2
-
-chocolate3
-
-chocolate4
-
-SaddleBrown
-
-seashell
-
-seashell1
-
-sienna4
-
-sienna
-
-sienna1
-
-sienna2
-
-sienna3
-
-LightSalmon3
-
-LightSalmon
-
-LightSalmon1
-
-LightSalmon4
-
-LightSalmon2
-
-coral
-
-OrangeRed
-
-OrangeRed1
-
-OrangeRed2
-
-OrangeRed3
-
-OrangeRed4
-
-DarkSalmon
-
-salmon1
-
-salmon2
-
-salmon3
-
-salmon4
-
-coral1
-
-coral2
-
-coral3
-
-coral4
-
-tomato4
-
-tomato
-
-tomato1
-
-tomato2
-
-tomato3
-
-MistyRose4
-
-MistyRose2
-
-MistyRose
-
-MistyRose1
-
-salmon
-
-MistyRose3
-
-white
-
-gray100
-
-grey100
-
-grey100
-
-gray99
-
-grey99
-
-gray98
-
-grey98
-
-gray97
-
-grey97
-
-gray96
-
-grey96
-
-WhiteSmoke
-
-gray95
-
-grey95
-
-gray94
-
-grey94
-
-gray93
-
-grey93
-
-gray92
-
-grey92
-
-gray91
-
-grey91
-
-gray90
-
-grey90
-
-gray89
-
-grey89
-
-gray88
-
-grey88
-
-gray87
-
-grey87
-
-gainsboro
-
-gray86
-
-grey86
-
-gray85
-
-grey85
-
-gray84
-
-grey84
-
-gray83
-
-grey83
-
-LightGray
-
-LightGrey
-
-gray82
-
-grey82
-
-gray81
-
-grey81
-
-gray80
-
-grey80
-
-gray79
-
-grey79
-
-gray78
-
-grey78
-
-gray77
-
-grey77
-
-gray76
-
-grey76
-
-silver
-
-gray75
-
-grey75
-
-gray74
-
-grey74
-
-gray73
-
-grey73
-
-gray72
-
-grey72
-
-gray71
-
-grey71
-
-gray70
-
-grey70
-
-gray69
-
-grey69
-
-gray68
-
-grey68
-
-gray67
-
-grey67
-
-DarkGray
-
-DarkGrey
-
-gray66
-
-grey66
-
-gray65
-
-grey65
-
-gray64
-
-grey64
-
-gray63
-
-grey63
-
-gray62
-
-grey62
-
-gray61
-
-grey61
-
-gray60
-
-grey60
-
-gray59
-
-grey59
-
-gray58
-
-grey58
-
-gray57
-
-grey57
-
-gray56
-
-grey56
-
-gray55
-
-grey55
-
-gray54
-
-grey54
-
-gray53
-
-grey53
-
-gray52
-
-grey52
-
-gray51
-
-grey51
-
-fractal
-
-gray50
-
-grey50
-
-gray
-
-gray49
-
-grey49
-
-gray48
-
-grey48
-
-gray47
-
-grey47
-
-gray46
-
-grey46
-
-gray45
-
-grey45
-
-gray44
-
-grey44
-
-gray43
-
-grey43
-
-gray42
-
-grey42
-
-DimGray
-
-DimGrey
-
-gray41
-
-grey41
-
-gray40
-
-grey40
-
-gray39
-
-grey39
-
-gray38
-
-grey38
-
-gray37
-
-grey37
-
-gray36
-
-grey36
-
-gray35
-
-grey35
-
-gray34
-
-grey34
-
-gray33
-
-grey33
-
-gray32
-
-grey32
-
-gray31
-
-grey31
-
-gray30
-
-grey30
-
-gray29
-
-grey29
-
-gray28
-
-grey28
-
-gray27
-
-grey27
-
-gray26
-
-grey26
-
-gray25
-
-grey25
-
-gray24
-
-grey24
-
-gray23
-
-grey23
-
-gray22
-
-grey22
-
-gray21
-
-grey21
-
-gray20
-
-grey20
-
-gray19
-
-grey19
-
-gray18
-
-grey18
-
-gray17
-
-grey17
-
-gray16
-
-grey16
-
-gray15
-
-grey15
-
-gray14
-
-grey14
-
-gray13
-
-grey13
-
-gray12
-
-grey12
-
-gray11
-
-grey11
-
-gray10
-
-grey10
-
-gray9
-
-grey9
-
-gray8
-
-grey8
-
-gray7
-
-grey7
-
-gray6
-
-grey6
-
-gray5
-
-grey5
-
-gray4
-
-grey4
-
-gray3
-
-grey3
-
-gray2
-
-grey2
-
-gray1
-
-grey1
-
-black
-
-gray0
-
-grey0
-
-opaque
-
-none
-
-transparent
-
-
- -
-CLICK TO CHOOSE THE COLOR -
- -
- -OPTIONS -
CLICK TO USE HEX KEYS
-
-
CLICK TO TOGGLE PALATE INFO
-
-
CLICK TO TOGGLE BACKGROUNDS
-
-
-
YOU WILL CHOOSE:
-
-to choose transparent as a color, click HERE -
-
- - - - - - diff --git a/share/frontend/imgrid/colors/junk/separate b/share/frontend/imgrid/colors/junk/separate deleted file mode 100755 index b32bc49..0000000 --- a/share/frontend/imgrid/colors/junk/separate +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/bin/python2.7 - - -f = open('colors.html', 'r') -lines = f.readlines() -colornames = [] -hexes = [] -for line in lines: - if 'right' in line and 'td' in line: - colornames.append(line[22:-6]) - if '#' in line: - hexes.append(line[21:28]) - if line == lines[len(lines)-1]: - break -print len(hexes) -print len(colornames) -###making a dictionary -hextoname = {} -nametohex = {} -for i in hexes: - hextoname[i] = colornames[hexes.index(i)] -for i in colornames: - nametohex[i] = hexes[colornames.index(i)] -w = open('colordict.js', 'w') -w.write("var hextoname = "+str(hextoname)+"\n") -w.write("var nametohex = "+str(nametohex)+"\n") -w.close() -ds = [] -for x in range(674): - ds.append('d'+str(x)) - -#print hexes -#note last two hex values in lists are wrong for they correspond to none and transparent -w = open('colorsnew.html', 'w') -w.write("""\n\n -") -w.write("\n
\n") -for x in range(674): - w.write("
\n"+colornames[x]+"
\n") -w.write("
\n") -w.write("
WHERE THE COLORNAMES WILL GO
") -w.write("") -w.write("\n") -w.write("\n") -w.write("\n\n") diff --git a/share/frontend/imgrid/colors/junk/todo.txt b/share/frontend/imgrid/colors/junk/todo.txt deleted file mode 100755 index ff9ae66..0000000 --- a/share/frontend/imgrid/colors/junk/todo.txt +++ /dev/null @@ -1,135 +0,0 @@ -manyprettygradients: -finish formatting tumblr -put on autoscroll -think about font (minoan) THIS IS WHY WE NEED TEXT BLASTER -turn it to a bot - pre-step: delete everything on there - step 1: gradientscrape longerlogfile - step 2: post those - step 3: make gradientscrape call itself every 30 minutes - step 5: swipe??? - step 4: import the write function from main.py - - - - - - - - - - - - - - - - - - - - - - python 2.6 == /opt/python2.6/bin/python - - - JUANITA = True - #JUANITA = False - - - -from main.py, import * (follow_followers, reblog_posts, post_images) -process_followers() -reblog_posts() -post_images() - -def now (): - return int(time.mktime(time.localtime())) - -def save_seen (ids): - out = open (DUMP_SEEN+".tmp", "w") - for id in ids.keys(): - out.write(id+"\n") - out.close() - system(["/bin/mv", DUMP_SEEN+".tmp", DUMP_SEEN]) - -def slurp (file): - input = open (file, "r") - lines = input.readlines() - input.close() - return lines - -def new_dump (dumps, seen): - id = random.choice(dumps.keys()) - while id in seen: - id = random.choice(dumps.keys()) - thedump = dumps[id] - seen[id] = True - save_seen(seen) - if JUANITA: - print thedump - else: - dump.say(thedump) - wait = random.randint(2,28)*30 + random.randint(1,55) - print "sleeping for", str(wait/60) + "m" + str(wait % 60) + "s..." - print - time.sleep(wait) - -def main (): - score_lines = slurp(DUMP_LIST) - dumps = {} - scored = {} - # first pass to work out the top score for each dump - for line in score_lines: - # 0 id 1 score 2 favers 3 urls - partz = line.split("\t") -#skipping over really old stuff - if int(partz[0]) < 3618853: - continue - - urls = partz[3].split(" ") - skip = False - for url in urls: - if "http" not in url: - skip = True - if skip: - continue - # dictionary: urls => (id, score) - if partz[3] in scored and int(partz[1]) > scored[partz[3]][1]: - scored[partz[3]] = (partz[0], int(partz[1])) - else: - scored[partz[3]] = (partz[0], int(partz[1])) - - except KeyError: - continue - except ValueError: - continue - - # second pass to weed out dumps with scores too high/low - for urls in scored.keys(): - if scored[urls][1] > 0 and scored[urls][1] < 6: - # dictionary: id => urls - dumps[scored[urls][0]] = urls.strip() - - seen_lines = slurp(DUMP_SEEN) - seen = {} - for line in seen_lines: - l = line.strip() - if len(l): - seen[l] = True - - print len(dumps), "dumps in queue" - print len(seen_lines), "dumped already" - - if JUANITA: - for i in xrange(10): - new_dump (dumps, seen) - else: - while (1): - new_dump (dumps, seen) - else: - print "TURNED OFF, sleeping for half an hour..." - time.sleep (30*60) - -main () - diff --git a/share/frontend/imgrid/colors/junk/withscroller.html b/share/frontend/imgrid/colors/junk/withscroller.html deleted file mode 100755 index e1443c3..0000000 --- a/share/frontend/imgrid/colors/junk/withscroller.html +++ /dev/null @@ -1,3850 +0,0 @@ - - - - - - -
-
-
-
-snow
-
-snow1
-
-snow2
-
-RosyBrown1
-
-RosyBrown2
-
-snow3
-
-LightCoral
-
-IndianRed1
-
-RosyBrown3
-
-IndianRed2
-
-RosyBrown
-
-brown1
-
-firebrick1
-
-brown2
-
-IndianRed
-
-IndianRed3
-
-firebrick2
-
-snow4
-
-brown3
-
-red
-
-red1
-
-RosyBrown4
-
-firebrick3
-
-red2
-
-firebrick
-
-brown
-
-red3
-
-IndianRed4
-
-brown4
-
-firebrick4
-
-DarkRed
-
-red4
-
-maroon
-
-LightPink1
-
-LightPink3
-
-LightPink4
-
-LightPink2
-
-LightPink
-
-pink
-
-crimson
-
-pink1
-
-pink2
-
-pink3
-
-pink4
-
-PaleVioletRed4
-
-PaleVioletRed
-
-PaleVioletRed2
-
-PaleVioletRed1
-
-PaleVioletRed3
-
-LavenderBlush
-
-LavenderBlush1
-
-LavenderBlush3
-
-LavenderBlush2
-
-LavenderBlush4
-
-maroon
-
-HotPink3
-
-VioletRed3
-
-VioletRed1
-
-VioletRed2
-
-VioletRed4
-
-HotPink2
-
-HotPink1
-
-HotPink4
-
-HotPink
-
-DeepPink
-
-DeepPink1
-
-DeepPink2
-
-DeepPink3
-
-DeepPink4
-
-maroon1
-
-maroon2
-
-maroon3
-
-maroon4
-
-MediumVioletRed
-
-VioletRed
-
-orchid2
-
-orchid
-
-orchid1
-
-orchid3
-
-orchid4
-
-thistle1
-
-thistle2
-
-plum1
-
-plum2
-
-thistle
-
-thistle3
-
-plum
-
-violet
-
-plum3
-
-thistle4
-
-fuchsia
-
-magenta
-
-magenta1
-
-plum4
-
-magenta2
-
-magenta3
-
-DarkMagenta
-
-magenta4
-
-purple
-
-MediumOrchid
-
-MediumOrchid1
-
-MediumOrchid2
-
-MediumOrchid3
-
-MediumOrchid4
-
-DarkViolet
-
-DarkOrchid
-
-DarkOrchid1
-
-DarkOrchid3
-
-DarkOrchid2
-
-DarkOrchid4
-
-purple
-
-indigo
-
-BlueViolet
-
-purple2
-
-purple3
-
-purple4
-
-purple1
-
-MediumPurple
-
-MediumPurple1
-
-MediumPurple2
-
-MediumPurple3
-
-MediumPurple4
-
-DarkSlateBlue
-
-LightSlateBlue
-
-MediumSlateBlue
-
-SlateBlue
-
-SlateBlue1
-
-SlateBlue2
-
-SlateBlue3
-
-SlateBlue4
-
-GhostWhite
-
-lavender
-
-blue
-
-blue1
-
-blue2
-
-blue3
-
-MediumBlue
-
-blue4
-
-DarkBlue
-
-MidnightBlue
-
-navy
-
-NavyBlue
-
-RoyalBlue
-
-RoyalBlue1
-
-RoyalBlue2
-
-RoyalBlue3
-
-RoyalBlue4
-
-CornflowerBlue
-
-LightSteelBlue
-
-LightSteelBlue1
-
-LightSteelBlue2
-
-LightSteelBlue3
-
-LightSteelBlue4
-
-SlateGray4
-
-SlateGray1
-
-SlateGray2
-
-SlateGray3
-
-LightSlateGray
-
-LightSlateGrey
-
-SlateGray
-
-SlateGrey
-
-DodgerBlue
-
-DodgerBlue1
-
-DodgerBlue2
-
-DodgerBlue4
-
-DodgerBlue3
-
-AliceBlue
-
-SteelBlue4
-
-SteelBlue
-
-SteelBlue1
-
-SteelBlue2
-
-SteelBlue3
-
-SkyBlue4
-
-SkyBlue1
-
-SkyBlue2
-
-SkyBlue3
-
-LightSkyBlue
-
-LightSkyBlue4
-
-LightSkyBlue1
-
-LightSkyBlue2
-
-LightSkyBlue3
-
-SkyBlue
-
-LightBlue3
-
-DeepSkyBlue
-
-DeepSkyBlue1
-
-DeepSkyBlue2
-
-DeepSkyBlue4
-
-DeepSkyBlue3
-
-LightBlue1
-
-LightBlue2
-
-LightBlue
-
-LightBlue4
-
-PowderBlue
-
-CadetBlue1
-
-CadetBlue2
-
-CadetBlue3
-
-CadetBlue4
-
-turquoise1
-
-turquoise2
-
-turquoise3
-
-turquoise4
-
-cadet blue
-
-CadetBlue
-
-DarkTurquoise
-
-azure
-
-azure1
-
-LightCyan
-
-LightCyan1
-
-azure2
-
-LightCyan2
-
-PaleTurquoise1
-
-PaleTurquoise
-
-PaleTurquoise2
-
-DarkSlateGray1
-
-azure3
-
-LightCyan3
-
-DarkSlateGray2
-
-PaleTurquoise3
-
-DarkSlateGray3
-
-azure4
-
-LightCyan4
-
-aqua
-
-cyan
-
-cyan1
-
-PaleTurquoise4
-
-cyan2
-
-DarkSlateGray4
-
-cyan3
-
-cyan4
-
-DarkCyan
-
-teal
-
-DarkSlateGray
-
-DarkSlateGrey
-
-MediumTurquoise
-
-LightSeaGreen
-
-turquoise
-
-aquamarine4
-
-aquamarine
-
-aquamarine1
-
-aquamarine2
-
-aquamarine3
-
-MediumAquamarine
-
-MediumSpringGreen
-
-MintCream
-
-SpringGreen
-
-SpringGreen1
-
-SpringGreen2
-
-SpringGreen3
-
-SpringGreen4
-
-MediumSeaGreen
-
-SeaGreen
-
-SeaGreen3
-
-SeaGreen1
-
-SeaGreen4
-
-SeaGreen2
-
-MediumForestGreen
-
-honeydew
-
-honeydew1
-
-honeydew2
-
-DarkSeaGreen1
-
-DarkSeaGreen2
-
-PaleGreen1
-
-PaleGreen
-
-honeydew3
-
-LightGreen
-
-PaleGreen2
-
-DarkSeaGreen3
-
-DarkSeaGreen
-
-PaleGreen3
-
-honeydew4
-
-green1
-
-lime
-
-LimeGreen
-
-DarkSeaGreen4
-
-green2
-
-PaleGreen4
-
-green3
-
-ForestGreen
-
-green4
-
-green
-
-DarkGreen
-
-LawnGreen
-
-chartreuse
-
-chartreuse1
-
-chartreuse2
-
-chartreuse3
-
-chartreuse4
-
-GreenYellow
-
-DarkOliveGreen3
-
-DarkOliveGreen1
-
-DarkOliveGreen2
-
-DarkOliveGreen4
-
-DarkOliveGreen
-
-OliveDrab
-
-OliveDrab1
-
-OliveDrab2
-
-OliveDrab3
-
-YellowGreen
-
-OliveDrab4
-
-ivory
-
-ivory1
-
-LightYellow
-
-LightYellow1
-
-beige
-
-ivory2
-
-LightGoldenrodYellow
-
-LightYellow2
-
-ivory3
-
-LightYellow3
-
-ivory4
-
-LightYellow4
-
-yellow
-
-yellow1
-
-yellow2
-
-yellow3
-
-yellow4
-
-olive
-
-DarkKhaki
-
-khaki2
-
-LemonChiffon4
-
-khaki1
-
-khaki3
-
-khaki4
-
-PaleGoldenrod
-
-LemonChiffon
-
-LemonChiffon1
-
-khaki
-
-LemonChiffon3
-
-LemonChiffon2
-
-MediumGoldenRod
-
-cornsilk4
-
-gold
-
-gold1
-
-gold2
-
-gold3
-
-gold4
-
-LightGoldenrod
-
-LightGoldenrod4
-
-LightGoldenrod1
-
-LightGoldenrod3
-
-LightGoldenrod2
-
-cornsilk3
-
-cornsilk2
-
-cornsilk
-
-cornsilk1
-
-goldenrod
-
-goldenrod1
-
-goldenrod2
-
-goldenrod3
-
-goldenrod4
-
-DarkGoldenrod
-
-DarkGoldenrod1
-
-DarkGoldenrod2
-
-DarkGoldenrod3
-
-DarkGoldenrod4
-
-FloralWhite
-
-wheat2
-
-OldLace
-
-wheat
-
-wheat1
-
-wheat3
-
-orange
-
-orange1
-
-orange2
-
-orange3
-
-orange4
-
-wheat4
-
-moccasin
-
-PapayaWhip
-
-NavajoWhite3
-
-BlanchedAlmond
-
-NavajoWhite
-
-NavajoWhite1
-
-NavajoWhite2
-
-NavajoWhite4
-
-AntiqueWhite4
-
-AntiqueWhite
-
-tan
-
-bisque4
-
-burlywood
-
-AntiqueWhite2
-
-burlywood1
-
-burlywood3
-
-burlywood2
-
-AntiqueWhite1
-
-burlywood4
-
-AntiqueWhite3
-
-DarkOrange
-
-bisque2
-
-bisque
-
-bisque1
-
-bisque3
-
-DarkOrange1
-
-linen
-
-DarkOrange2
-
-DarkOrange3
-
-DarkOrange4
-
-peru
-
-tan1
-
-tan2
-
-tan3
-
-tan4
-
-PeachPuff
-
-PeachPuff1
-
-PeachPuff4
-
-PeachPuff2
-
-PeachPuff3
-
-SandyBrown
-
-seashell4
-
-seashell2
-
-seashell3
-
-chocolate
-
-chocolate1
-
-chocolate2
-
-chocolate3
-
-chocolate4
-
-SaddleBrown
-
-seashell
-
-seashell1
-
-sienna4
-
-sienna
-
-sienna1
-
-sienna2
-
-sienna3
-
-LightSalmon3
-
-LightSalmon
-
-LightSalmon1
-
-LightSalmon4
-
-LightSalmon2
-
-coral
-
-OrangeRed
-
-OrangeRed1
-
-OrangeRed2
-
-OrangeRed3
-
-OrangeRed4
-
-DarkSalmon
-
-salmon1
-
-salmon2
-
-salmon3
-
-salmon4
-
-coral1
-
-coral2
-
-coral3
-
-coral4
-
-tomato4
-
-tomato
-
-tomato1
-
-tomato2
-
-tomato3
-
-MistyRose4
-
-MistyRose2
-
-MistyRose
-
-MistyRose1
-
-salmon
-
-MistyRose3
-
-white
-
-gray100
-
-grey100
-
-grey100
-
-gray99
-
-grey99
-
-gray98
-
-grey98
-
-gray97
-
-grey97
-
-gray96
-
-grey96
-
-WhiteSmoke
-
-gray95
-
-grey95
-
-gray94
-
-grey94
-
-gray93
-
-grey93
-
-gray92
-
-grey92
-
-gray91
-
-grey91
-
-gray90
-
-grey90
-
-gray89
-
-grey89
-
-gray88
-
-grey88
-
-gray87
-
-grey87
-
-gainsboro
-
-gray86
-
-grey86
-
-gray85
-
-grey85
-
-gray84
-
-grey84
-
-gray83
-
-grey83
-
-LightGray
-
-LightGrey
-
-gray82
-
-grey82
-
-gray81
-
-grey81
-
-gray80
-
-grey80
-
-gray79
-
-grey79
-
-gray78
-
-grey78
-
-gray77
-
-grey77
-
-gray76
-
-grey76
-
-silver
-
-gray75
-
-grey75
-
-gray74
-
-grey74
-
-gray73
-
-grey73
-
-gray72
-
-grey72
-
-gray71
-
-grey71
-
-gray70
-
-grey70
-
-gray69
-
-grey69
-
-gray68
-
-grey68
-
-gray67
-
-grey67
-
-DarkGray
-
-DarkGrey
-
-gray66
-
-grey66
-
-gray65
-
-grey65
-
-gray64
-
-grey64
-
-gray63
-
-grey63
-
-gray62
-
-grey62
-
-gray61
-
-grey61
-
-gray60
-
-grey60
-
-gray59
-
-grey59
-
-gray58
-
-grey58
-
-gray57
-
-grey57
-
-gray56
-
-grey56
-
-gray55
-
-grey55
-
-gray54
-
-grey54
-
-gray53
-
-grey53
-
-gray52
-
-grey52
-
-gray51
-
-grey51
-
-fractal
-
-gray50
-
-grey50
-
-gray
-
-gray49
-
-grey49
-
-gray48
-
-grey48
-
-gray47
-
-grey47
-
-gray46
-
-grey46
-
-gray45
-
-grey45
-
-gray44
-
-grey44
-
-gray43
-
-grey43
-
-gray42
-
-grey42
-
-DimGray
-
-DimGrey
-
-gray41
-
-grey41
-
-gray40
-
-grey40
-
-gray39
-
-grey39
-
-gray38
-
-grey38
-
-gray37
-
-grey37
-
-gray36
-
-grey36
-
-gray35
-
-grey35
-
-gray34
-
-grey34
-
-gray33
-
-grey33
-
-gray32
-
-grey32
-
-gray31
-
-grey31
-
-gray30
-
-grey30
-
-gray29
-
-grey29
-
-gray28
-
-grey28
-
-gray27
-
-grey27
-
-gray26
-
-grey26
-
-gray25
-
-grey25
-
-gray24
-
-grey24
-
-gray23
-
-grey23
-
-gray22
-
-grey22
-
-gray21
-
-grey21
-
-gray20
-
-grey20
-
-gray19
-
-grey19
-
-gray18
-
-grey18
-
-gray17
-
-grey17
-
-gray16
-
-grey16
-
-gray15
-
-grey15
-
-gray14
-
-grey14
-
-gray13
-
-grey13
-
-gray12
-
-grey12
-
-gray11
-
-grey11
-
-gray10
-
-grey10
-
-gray9
-
-grey9
-
-gray8
-
-grey8
-
-gray7
-
-grey7
-
-gray6
-
-grey6
-
-gray5
-
-grey5
-
-gray4
-
-grey4
-
-gray3
-
-grey3
-
-gray2
-
-grey2
-
-gray1
-
-grey1
-
-black
-
-gray0
-
-grey0
-
-opaque
-
-none
-
-transparent
-
-
- -
-CLICK TO CHOOSE THE COLOR -
- -
- -OPTIONS -
CLICK TO USE HEX KEYS
-
-
CLICK TO TOGGLE PALATE INFO
-
-
CLICK TO TOGGLE BACKGROUNDS
-
-
-
YOU WILL CHOOSE:
-
-to choose transparent as a color, click HERE -
-
- - - - - - diff --git a/share/frontend/imgrid/colors/minimap.html b/share/frontend/imgrid/colors/minimap.html deleted file mode 100755 index 5a5291e..0000000 --- a/share/frontend/imgrid/colors/minimap.html +++ /dev/null @@ -1,3891 +0,0 @@ - - - - -
-
-
-snow
-
-snow1
-
-snow2
-
-RosyBrown1
-
-RosyBrown2
-
-snow3
-
-LightCoral
-
-IndianRed1
-
-RosyBrown3
-
-IndianRed2
-
-RosyBrown
-
-brown1
-
-firebrick1
-
-brown2
-
-IndianRed
-
-IndianRed3
-
-firebrick2
-
-snow4
-
-brown3
-
-red
-
-red1
-
-RosyBrown4
-
-firebrick3
-
-red2
-
-firebrick
-
-brown
-
-red3
-
-IndianRed4
-
-brown4
-
-firebrick4
-
-DarkRed
-
-red4
-
-maroon
-
-LightPink1
-
-LightPink3
-
-LightPink4
-
-LightPink2
-
-LightPink
-
-pink
-
-crimson
-
-pink1
-
-pink2
-
-pink3
-
-pink4
-
-PaleVioletRed4
-
-PaleVioletRed
-
-PaleVioletRed2
-
-PaleVioletRed1
-
-PaleVioletRed3
-
-LavenderBlush
-
-LavenderBlush1
-
-LavenderBlush3
-
-LavenderBlush2
-
-LavenderBlush4
-
-maroon
-
-HotPink3
-
-VioletRed3
-
-VioletRed1
-
-VioletRed2
-
-VioletRed4
-
-HotPink2
-
-HotPink1
-
-HotPink4
-
-HotPink
-
-DeepPink
-
-DeepPink1
-
-DeepPink2
-
-DeepPink3
-
-DeepPink4
-
-maroon1
-
-maroon2
-
-maroon3
-
-maroon4
-
-MediumVioletRed
-
-VioletRed
-
-orchid2
-
-orchid
-
-orchid1
-
-orchid3
-
-orchid4
-
-thistle1
-
-thistle2
-
-plum1
-
-plum2
-
-thistle
-
-thistle3
-
-plum
-
-violet
-
-plum3
-
-thistle4
-
-fuchsia
-
-magenta
-
-magenta1
-
-plum4
-
-magenta2
-
-magenta3
-
-DarkMagenta
-
-magenta4
-
-purple
-
-MediumOrchid
-
-MediumOrchid1
-
-MediumOrchid2
-
-MediumOrchid3
-
-MediumOrchid4
-
-DarkViolet
-
-DarkOrchid
-
-DarkOrchid1
-
-DarkOrchid3
-
-DarkOrchid2
-
-DarkOrchid4
-
-purple
-
-indigo
-
-BlueViolet
-
-purple2
-
-purple3
-
-purple4
-
-purple1
-
-MediumPurple
-
-MediumPurple1
-
-MediumPurple2
-
-MediumPurple3
-
-MediumPurple4
-
-DarkSlateBlue
-
-LightSlateBlue
-
-MediumSlateBlue
-
-SlateBlue
-
-SlateBlue1
-
-SlateBlue2
-
-SlateBlue3
-
-SlateBlue4
-
-GhostWhite
-
-lavender
-
-blue
-
-blue1
-
-blue2
-
-blue3
-
-MediumBlue
-
-blue4
-
-DarkBlue
-
-MidnightBlue
-
-navy
-
-NavyBlue
-
-RoyalBlue
-
-RoyalBlue1
-
-RoyalBlue2
-
-RoyalBlue3
-
-RoyalBlue4
-
-CornflowerBlue
-
-LightSteelBlue
-
-LightSteelBlue1
-
-LightSteelBlue2
-
-LightSteelBlue3
-
-LightSteelBlue4
-
-SlateGray4
-
-SlateGray1
-
-SlateGray2
-
-SlateGray3
-
-LightSlateGray
-
-LightSlateGrey
-
-SlateGray
-
-SlateGrey
-
-DodgerBlue
-
-DodgerBlue1
-
-DodgerBlue2
-
-DodgerBlue4
-
-DodgerBlue3
-
-AliceBlue
-
-SteelBlue4
-
-SteelBlue
-
-SteelBlue1
-
-SteelBlue2
-
-SteelBlue3
-
-SkyBlue4
-
-SkyBlue1
-
-SkyBlue2
-
-SkyBlue3
-
-LightSkyBlue
-
-LightSkyBlue4
-
-LightSkyBlue1
-
-LightSkyBlue2
-
-LightSkyBlue3
-
-SkyBlue
-
-LightBlue3
-
-DeepSkyBlue
-
-DeepSkyBlue1
-
-DeepSkyBlue2
-
-DeepSkyBlue4
-
-DeepSkyBlue3
-
-LightBlue1
-
-LightBlue2
-
-LightBlue
-
-LightBlue4
-
-PowderBlue
-
-CadetBlue1
-
-CadetBlue2
-
-CadetBlue3
-
-CadetBlue4
-
-turquoise1
-
-turquoise2
-
-turquoise3
-
-turquoise4
-
-cadet blue
-
-CadetBlue
-
-DarkTurquoise
-
-azure
-
-azure1
-
-LightCyan
-
-LightCyan1
-
-azure2
-
-LightCyan2
-
-PaleTurquoise1
-
-PaleTurquoise
-
-PaleTurquoise2
-
-DarkSlateGray1
-
-azure3
-
-LightCyan3
-
-DarkSlateGray2
-
-PaleTurquoise3
-
-DarkSlateGray3
-
-azure4
-
-LightCyan4
-
-aqua
-
-cyan
-
-cyan1
-
-PaleTurquoise4
-
-cyan2
-
-DarkSlateGray4
-
-cyan3
-
-cyan4
-
-DarkCyan
-
-teal
-
-DarkSlateGray
-
-DarkSlateGrey
-
-MediumTurquoise
-
-LightSeaGreen
-
-turquoise
-
-aquamarine4
-
-aquamarine
-
-aquamarine1
-
-aquamarine2
-
-aquamarine3
-
-MediumAquamarine
-
-MediumSpringGreen
-
-MintCream
-
-SpringGreen
-
-SpringGreen1
-
-SpringGreen2
-
-SpringGreen3
-
-SpringGreen4
-
-MediumSeaGreen
-
-SeaGreen
-
-SeaGreen3
-
-SeaGreen1
-
-SeaGreen4
-
-SeaGreen2
-
-MediumForestGreen
-
-honeydew
-
-honeydew1
-
-honeydew2
-
-DarkSeaGreen1
-
-DarkSeaGreen2
-
-PaleGreen1
-
-PaleGreen
-
-honeydew3
-
-LightGreen
-
-PaleGreen2
-
-DarkSeaGreen3
-
-DarkSeaGreen
-
-PaleGreen3
-
-honeydew4
-
-green1
-
-lime
-
-LimeGreen
-
-DarkSeaGreen4
-
-green2
-
-PaleGreen4
-
-green3
-
-ForestGreen
-
-green4
-
-green
-
-DarkGreen
-
-LawnGreen
-
-chartreuse
-
-chartreuse1
-
-chartreuse2
-
-chartreuse3
-
-chartreuse4
-
-GreenYellow
-
-DarkOliveGreen3
-
-DarkOliveGreen1
-
-DarkOliveGreen2
-
-DarkOliveGreen4
-
-DarkOliveGreen
-
-OliveDrab
-
-OliveDrab1
-
-OliveDrab2
-
-OliveDrab3
-
-YellowGreen
-
-OliveDrab4
-
-ivory
-
-ivory1
-
-LightYellow
-
-LightYellow1
-
-beige
-
-ivory2
-
-LightGoldenrodYellow
-
-LightYellow2
-
-ivory3
-
-LightYellow3
-
-ivory4
-
-LightYellow4
-
-yellow
-
-yellow1
-
-yellow2
-
-yellow3
-
-yellow4
-
-olive
-
-DarkKhaki
-
-khaki2
-
-LemonChiffon4
-
-khaki1
-
-khaki3
-
-khaki4
-
-PaleGoldenrod
-
-LemonChiffon
-
-LemonChiffon1
-
-khaki
-
-LemonChiffon3
-
-LemonChiffon2
-
-MediumGoldenRod
-
-cornsilk4
-
-gold
-
-gold1
-
-gold2
-
-gold3
-
-gold4
-
-LightGoldenrod
-
-LightGoldenrod4
-
-LightGoldenrod1
-
-LightGoldenrod3
-
-LightGoldenrod2
-
-cornsilk3
-
-cornsilk2
-
-cornsilk
-
-cornsilk1
-
-goldenrod
-
-goldenrod1
-
-goldenrod2
-
-goldenrod3
-
-goldenrod4
-
-DarkGoldenrod
-
-DarkGoldenrod1
-
-DarkGoldenrod2
-
-DarkGoldenrod3
-
-DarkGoldenrod4
-
-FloralWhite
-
-wheat2
-
-OldLace
-
-wheat
-
-wheat1
-
-wheat3
-
-orange
-
-orange1
-
-orange2
-
-orange3
-
-orange4
-
-wheat4
-
-moccasin
-
-PapayaWhip
-
-NavajoWhite3
-
-BlanchedAlmond
-
-NavajoWhite
-
-NavajoWhite1
-
-NavajoWhite2
-
-NavajoWhite4
-
-AntiqueWhite4
-
-AntiqueWhite
-
-tan
-
-bisque4
-
-burlywood
-
-AntiqueWhite2
-
-burlywood1
-
-burlywood3
-
-burlywood2
-
-AntiqueWhite1
-
-burlywood4
-
-AntiqueWhite3
-
-DarkOrange
-
-bisque2
-
-bisque
-
-bisque1
-
-bisque3
-
-DarkOrange1
-
-linen
-
-DarkOrange2
-
-DarkOrange3
-
-DarkOrange4
-
-peru
-
-tan1
-
-tan2
-
-tan3
-
-tan4
-
-PeachPuff
-
-PeachPuff1
-
-PeachPuff4
-
-PeachPuff2
-
-PeachPuff3
-
-SandyBrown
-
-seashell4
-
-seashell2
-
-seashell3
-
-chocolate
-
-chocolate1
-
-chocolate2
-
-chocolate3
-
-chocolate4
-
-SaddleBrown
-
-seashell
-
-seashell1
-
-sienna4
-
-sienna
-
-sienna1
-
-sienna2
-
-sienna3
-
-LightSalmon3
-
-LightSalmon
-
-LightSalmon1
-
-LightSalmon4
-
-LightSalmon2
-
-coral
-
-OrangeRed
-
-OrangeRed1
-
-OrangeRed2
-
-OrangeRed3
-
-OrangeRed4
-
-DarkSalmon
-
-salmon1
-
-salmon2
-
-salmon3
-
-salmon4
-
-coral1
-
-coral2
-
-coral3
-
-coral4
-
-tomato4
-
-tomato
-
-tomato1
-
-tomato2
-
-tomato3
-
-MistyRose4
-
-MistyRose2
-
-MistyRose
-
-MistyRose1
-
-salmon
-
-MistyRose3
-
-white
-
-gray100
-
-grey100
-
-grey100
-
-gray99
-
-grey99
-
-gray98
-
-grey98
-
-gray97
-
-grey97
-
-gray96
-
-grey96
-
-WhiteSmoke
-
-gray95
-
-grey95
-
-gray94
-
-grey94
-
-gray93
-
-grey93
-
-gray92
-
-grey92
-
-gray91
-
-grey91
-
-gray90
-
-grey90
-
-gray89
-
-grey89
-
-gray88
-
-grey88
-
-gray87
-
-grey87
-
-gainsboro
-
-gray86
-
-grey86
-
-gray85
-
-grey85
-
-gray84
-
-grey84
-
-gray83
-
-grey83
-
-LightGray
-
-LightGrey
-
-gray82
-
-grey82
-
-gray81
-
-grey81
-
-gray80
-
-grey80
-
-gray79
-
-grey79
-
-gray78
-
-grey78
-
-gray77
-
-grey77
-
-gray76
-
-grey76
-
-silver
-
-gray75
-
-grey75
-
-gray74
-
-grey74
-
-gray73
-
-grey73
-
-gray72
-
-grey72
-
-gray71
-
-grey71
-
-gray70
-
-grey70
-
-gray69
-
-grey69
-
-gray68
-
-grey68
-
-gray67
-
-grey67
-
-DarkGray
-
-DarkGrey
-
-gray66
-
-grey66
-
-gray65
-
-grey65
-
-gray64
-
-grey64
-
-gray63
-
-grey63
-
-gray62
-
-grey62
-
-gray61
-
-grey61
-
-gray60
-
-grey60
-
-gray59
-
-grey59
-
-gray58
-
-grey58
-
-gray57
-
-grey57
-
-gray56
-
-grey56
-
-gray55
-
-grey55
-
-gray54
-
-grey54
-
-gray53
-
-grey53
-
-gray52
-
-grey52
-
-gray51
-
-grey51
-
-fractal
-
-gray50
-
-grey50
-
-gray
-
-gray49
-
-grey49
-
-gray48
-
-grey48
-
-gray47
-
-grey47
-
-gray46
-
-grey46
-
-gray45
-
-grey45
-
-gray44
-
-grey44
-
-gray43
-
-grey43
-
-gray42
-
-grey42
-
-DimGray
-
-DimGrey
-
-gray41
-
-grey41
-
-gray40
-
-grey40
-
-gray39
-
-grey39
-
-gray38
-
-grey38
-
-gray37
-
-grey37
-
-gray36
-
-grey36
-
-gray35
-
-grey35
-
-gray34
-
-grey34
-
-gray33
-
-grey33
-
-gray32
-
-grey32
-
-gray31
-
-grey31
-
-gray30
-
-grey30
-
-gray29
-
-grey29
-
-gray28
-
-grey28
-
-gray27
-
-grey27
-
-gray26
-
-grey26
-
-gray25
-
-grey25
-
-gray24
-
-grey24
-
-gray23
-
-grey23
-
-gray22
-
-grey22
-
-gray21
-
-grey21
-
-gray20
-
-grey20
-
-gray19
-
-grey19
-
-gray18
-
-grey18
-
-gray17
-
-grey17
-
-gray16
-
-grey16
-
-gray15
-
-grey15
-
-gray14
-
-grey14
-
-gray13
-
-grey13
-
-gray12
-
-grey12
-
-gray11
-
-grey11
-
-gray10
-
-grey10
-
-gray9
-
-grey9
-
-gray8
-
-grey8
-
-gray7
-
-grey7
-
-gray6
-
-grey6
-
-gray5
-
-grey5
-
-gray4
-
-grey4
-
-gray3
-
-grey3
-
-gray2
-
-grey2
-
-gray1
-
-grey1
-
-black
-
-gray0
-
-grey0
-
-opaque
-
-none
-
-transparent
-
- -
-CLICK TO CHOOSE THE COLOR -
- -
- -OPTIONS -
CLICK TO USE HEX KEYS
-
-
CLICK TO TOGGLE PALATE INFO
-
-
CLICK TO TOGGLE BACKGROUNDS
-
-
-
YOU WILL CHOOSE:
-
-to choose transparent as a color, click HERE -
-
- - - - - - diff --git a/share/frontend/imgrid/colors/minoan.gif b/share/frontend/imgrid/colors/minoan.gif deleted file mode 100755 index 4ceb804..0000000 Binary files a/share/frontend/imgrid/colors/minoan.gif and /dev/null differ diff --git a/share/frontend/imgrid/colors/savior.html b/share/frontend/imgrid/colors/savior.html deleted file mode 100755 index 72395fd..0000000 --- a/share/frontend/imgrid/colors/savior.html +++ /dev/null @@ -1,3582 +0,0 @@ - - - - -
-
-snow
-
-snow1
-
-snow2
-
-RosyBrown1
-
-RosyBrown2
-
-snow3
-
-LightCoral
-
-IndianRed1
-
-RosyBrown3
-
-IndianRed2
-
-RosyBrown
-
-brown1
-
-firebrick1
-
-brown2
-
-IndianRed
-
-IndianRed3
-
-firebrick2
-
-snow4
-
-brown3
-
-red
-
-red1
-
-RosyBrown4
-
-firebrick3
-
-red2
-
-firebrick
-
-brown
-
-red3
-
-IndianRed4
-
-brown4
-
-firebrick4
-
-DarkRed
-
-red4
-
-maroon
-
-LightPink1
-
-LightPink3
-
-LightPink4
-
-LightPink2
-
-LightPink
-
-pink
-
-crimson
-
-pink1
-
-pink2
-
-pink3
-
-pink4
-
-PaleVioletRed4
-
-PaleVioletRed
-
-PaleVioletRed2
-
-PaleVioletRed1
-
-PaleVioletRed3
-
-LavenderBlush
-
-LavenderBlush1
-
-LavenderBlush3
-
-LavenderBlush2
-
-LavenderBlush4
-
-maroon
-
-HotPink3
-
-VioletRed3
-
-VioletRed1
-
-VioletRed2
-
-VioletRed4
-
-HotPink2
-
-HotPink1
-
-HotPink4
-
-HotPink
-
-DeepPink
-
-DeepPink1
-
-DeepPink2
-
-DeepPink3
-
-DeepPink4
-
-maroon1
-
-maroon2
-
-maroon3
-
-maroon4
-
-MediumVioletRed
-
-VioletRed
-
-orchid2
-
-orchid
-
-orchid1
-
-orchid3
-
-orchid4
-
-thistle1
-
-thistle2
-
-plum1
-
-plum2
-
-thistle
-
-thistle3
-
-plum
-
-violet
-
-plum3
-
-thistle4
-
-fuchsia
-
-magenta
-
-magenta1
-
-plum4
-
-magenta2
-
-magenta3
-
-DarkMagenta
-
-magenta4
-
-purple
-
-MediumOrchid
-
-MediumOrchid1
-
-MediumOrchid2
-
-MediumOrchid3
-
-MediumOrchid4
-
-DarkViolet
-
-DarkOrchid
-
-DarkOrchid1
-
-DarkOrchid3
-
-DarkOrchid2
-
-DarkOrchid4
-
-purple
-
-indigo
-
-BlueViolet
-
-purple2
-
-purple3
-
-purple4
-
-purple1
-
-MediumPurple
-
-MediumPurple1
-
-MediumPurple2
-
-MediumPurple3
-
-MediumPurple4
-
-DarkSlateBlue
-
-LightSlateBlue
-
-MediumSlateBlue
-
-SlateBlue
-
-SlateBlue1
-
-SlateBlue2
-
-SlateBlue3
-
-SlateBlue4
-
-GhostWhite
-
-lavender
-
-blue
-
-blue1
-
-blue2
-
-blue3
-
-MediumBlue
-
-blue4
-
-DarkBlue
-
-MidnightBlue
-
-navy
-
-NavyBlue
-
-RoyalBlue
-
-RoyalBlue1
-
-RoyalBlue2
-
-RoyalBlue3
-
-RoyalBlue4
-
-CornflowerBlue
-
-LightSteelBlue
-
-LightSteelBlue1
-
-LightSteelBlue2
-
-LightSteelBlue3
-
-LightSteelBlue4
-
-SlateGray4
-
-SlateGray1
-
-SlateGray2
-
-SlateGray3
-
-LightSlateGray
-
-LightSlateGrey
-
-SlateGray
-
-SlateGrey
-
-DodgerBlue
-
-DodgerBlue1
-
-DodgerBlue2
-
-DodgerBlue4
-
-DodgerBlue3
-
-AliceBlue
-
-SteelBlue4
-
-SteelBlue
-
-SteelBlue1
-
-SteelBlue2
-
-SteelBlue3
-
-SkyBlue4
-
-SkyBlue1
-
-SkyBlue2
-
-SkyBlue3
-
-LightSkyBlue
-
-LightSkyBlue4
-
-LightSkyBlue1
-
-LightSkyBlue2
-
-LightSkyBlue3
-
-SkyBlue
-
-LightBlue3
-
-DeepSkyBlue
-
-DeepSkyBlue1
-
-DeepSkyBlue2
-
-DeepSkyBlue4
-
-DeepSkyBlue3
-
-LightBlue1
-
-LightBlue2
-
-LightBlue
-
-LightBlue4
-
-PowderBlue
-
-CadetBlue1
-
-CadetBlue2
-
-CadetBlue3
-
-CadetBlue4
-
-turquoise1
-
-turquoise2
-
-turquoise3
-
-turquoise4
-
-cadet blue
-
-CadetBlue
-
-DarkTurquoise
-
-azure
-
-azure1
-
-LightCyan
-
-LightCyan1
-
-azure2
-
-LightCyan2
-
-PaleTurquoise1
-
-PaleTurquoise
-
-PaleTurquoise2
-
-DarkSlateGray1
-
-azure3
-
-LightCyan3
-
-DarkSlateGray2
-
-PaleTurquoise3
-
-DarkSlateGray3
-
-azure4
-
-LightCyan4
-
-aqua
-
-cyan
-
-cyan1
-
-PaleTurquoise4
-
-cyan2
-
-DarkSlateGray4
-
-cyan3
-
-cyan4
-
-DarkCyan
-
-teal
-
-DarkSlateGray
-
-DarkSlateGrey
-
-MediumTurquoise
-
-LightSeaGreen
-
-turquoise
-
-aquamarine4
-
-aquamarine
-
-aquamarine1
-
-aquamarine2
-
-aquamarine3
-
-MediumAquamarine
-
-MediumSpringGreen
-
-MintCream
-
-SpringGreen
-
-SpringGreen1
-
-SpringGreen2
-
-SpringGreen3
-
-SpringGreen4
-
-MediumSeaGreen
-
-SeaGreen
-
-SeaGreen3
-
-SeaGreen1
-
-SeaGreen4
-
-SeaGreen2
-
-MediumForestGreen
-
-honeydew
-
-honeydew1
-
-honeydew2
-
-DarkSeaGreen1
-
-DarkSeaGreen2
-
-PaleGreen1
-
-PaleGreen
-
-honeydew3
-
-LightGreen
-
-PaleGreen2
-
-DarkSeaGreen3
-
-DarkSeaGreen
-
-PaleGreen3
-
-honeydew4
-
-green1
-
-lime
-
-LimeGreen
-
-DarkSeaGreen4
-
-green2
-
-PaleGreen4
-
-green3
-
-ForestGreen
-
-green4
-
-green
-
-DarkGreen
-
-LawnGreen
-
-chartreuse
-
-chartreuse1
-
-chartreuse2
-
-chartreuse3
-
-chartreuse4
-
-GreenYellow
-
-DarkOliveGreen3
-
-DarkOliveGreen1
-
-DarkOliveGreen2
-
-DarkOliveGreen4
-
-DarkOliveGreen
-
-OliveDrab
-
-OliveDrab1
-
-OliveDrab2
-
-OliveDrab3
-
-YellowGreen
-
-OliveDrab4
-
-ivory
-
-ivory1
-
-LightYellow
-
-LightYellow1
-
-beige
-
-ivory2
-
-LightGoldenrodYellow
-
-LightYellow2
-
-ivory3
-
-LightYellow3
-
-ivory4
-
-LightYellow4
-
-yellow
-
-yellow1
-
-yellow2
-
-yellow3
-
-yellow4
-
-olive
-
-DarkKhaki
-
-khaki2
-
-LemonChiffon4
-
-khaki1
-
-khaki3
-
-khaki4
-
-PaleGoldenrod
-
-LemonChiffon
-
-LemonChiffon1
-
-khaki
-
-LemonChiffon3
-
-LemonChiffon2
-
-MediumGoldenRod
-
-cornsilk4
-
-gold
-
-gold1
-
-gold2
-
-gold3
-
-gold4
-
-LightGoldenrod
-
-LightGoldenrod4
-
-LightGoldenrod1
-
-LightGoldenrod3
-
-LightGoldenrod2
-
-cornsilk3
-
-cornsilk2
-
-cornsilk
-
-cornsilk1
-
-goldenrod
-
-goldenrod1
-
-goldenrod2
-
-goldenrod3
-
-goldenrod4
-
-DarkGoldenrod
-
-DarkGoldenrod1
-
-DarkGoldenrod2
-
-DarkGoldenrod3
-
-DarkGoldenrod4
-
-FloralWhite
-
-wheat2
-
-OldLace
-
-wheat
-
-wheat1
-
-wheat3
-
-orange
-
-orange1
-
-orange2
-
-orange3
-
-orange4
-
-wheat4
-
-moccasin
-
-PapayaWhip
-
-NavajoWhite3
-
-BlanchedAlmond
-
-NavajoWhite
-
-NavajoWhite1
-
-NavajoWhite2
-
-NavajoWhite4
-
-AntiqueWhite4
-
-AntiqueWhite
-
-tan
-
-bisque4
-
-burlywood
-
-AntiqueWhite2
-
-burlywood1
-
-burlywood3
-
-burlywood2
-
-AntiqueWhite1
-
-burlywood4
-
-AntiqueWhite3
-
-DarkOrange
-
-bisque2
-
-bisque
-
-bisque1
-
-bisque3
-
-DarkOrange1
-
-linen
-
-DarkOrange2
-
-DarkOrange3
-
-DarkOrange4
-
-peru
-
-tan1
-
-tan2
-
-tan3
-
-tan4
-
-PeachPuff
-
-PeachPuff1
-
-PeachPuff4
-
-PeachPuff2
-
-PeachPuff3
-
-SandyBrown
-
-seashell4
-
-seashell2
-
-seashell3
-
-chocolate
-
-chocolate1
-
-chocolate2
-
-chocolate3
-
-chocolate4
-
-SaddleBrown
-
-seashell
-
-seashell1
-
-sienna4
-
-sienna
-
-sienna1
-
-sienna2
-
-sienna3
-
-LightSalmon3
-
-LightSalmon
-
-LightSalmon1
-
-LightSalmon4
-
-LightSalmon2
-
-coral
-
-OrangeRed
-
-OrangeRed1
-
-OrangeRed2
-
-OrangeRed3
-
-OrangeRed4
-
-DarkSalmon
-
-salmon1
-
-salmon2
-
-salmon3
-
-salmon4
-
-coral1
-
-coral2
-
-coral3
-
-coral4
-
-tomato4
-
-tomato
-
-tomato1
-
-tomato2
-
-tomato3
-
-MistyRose4
-
-MistyRose2
-
-MistyRose
-
-MistyRose1
-
-salmon
-
-MistyRose3
-
-white
-
-gray100
-
-grey100
-
-grey100
-
-gray99
-
-grey99
-
-gray98
-
-grey98
-
-gray97
-
-grey97
-
-gray96
-
-grey96
-
-WhiteSmoke
-
-gray95
-
-grey95
-
-gray94
-
-grey94
-
-gray93
-
-grey93
-
-gray92
-
-grey92
-
-gray91
-
-grey91
-
-gray90
-
-grey90
-
-gray89
-
-grey89
-
-gray88
-
-grey88
-
-gray87
-
-grey87
-
-gainsboro
-
-gray86
-
-grey86
-
-gray85
-
-grey85
-
-gray84
-
-grey84
-
-gray83
-
-grey83
-
-LightGray
-
-LightGrey
-
-gray82
-
-grey82
-
-gray81
-
-grey81
-
-gray80
-
-grey80
-
-gray79
-
-grey79
-
-gray78
-
-grey78
-
-gray77
-
-grey77
-
-gray76
-
-grey76
-
-silver
-
-gray75
-
-grey75
-
-gray74
-
-grey74
-
-gray73
-
-grey73
-
-gray72
-
-grey72
-
-gray71
-
-grey71
-
-gray70
-
-grey70
-
-gray69
-
-grey69
-
-gray68
-
-grey68
-
-gray67
-
-grey67
-
-DarkGray
-
-DarkGrey
-
-gray66
-
-grey66
-
-gray65
-
-grey65
-
-gray64
-
-grey64
-
-gray63
-
-grey63
-
-gray62
-
-grey62
-
-gray61
-
-grey61
-
-gray60
-
-grey60
-
-gray59
-
-grey59
-
-gray58
-
-grey58
-
-gray57
-
-grey57
-
-gray56
-
-grey56
-
-gray55
-
-grey55
-
-gray54
-
-grey54
-
-gray53
-
-grey53
-
-gray52
-
-grey52
-
-gray51
-
-grey51
-
-fractal
-
-gray50
-
-grey50
-
-gray
-
-gray49
-
-grey49
-
-gray48
-
-grey48
-
-gray47
-
-grey47
-
-gray46
-
-grey46
-
-gray45
-
-grey45
-
-gray44
-
-grey44
-
-gray43
-
-grey43
-
-gray42
-
-grey42
-
-DimGray
-
-DimGrey
-
-gray41
-
-grey41
-
-gray40
-
-grey40
-
-gray39
-
-grey39
-
-gray38
-
-grey38
-
-gray37
-
-grey37
-
-gray36
-
-grey36
-
-gray35
-
-grey35
-
-gray34
-
-grey34
-
-gray33
-
-grey33
-
-gray32
-
-grey32
-
-gray31
-
-grey31
-
-gray30
-
-grey30
-
-gray29
-
-grey29
-
-gray28
-
-grey28
-
-gray27
-
-grey27
-
-gray26
-
-grey26
-
-gray25
-
-grey25
-
-gray24
-
-grey24
-
-gray23
-
-grey23
-
-gray22
-
-grey22
-
-gray21
-
-grey21
-
-gray20
-
-grey20
-
-gray19
-
-grey19
-
-gray18
-
-grey18
-
-gray17
-
-grey17
-
-gray16
-
-grey16
-
-gray15
-
-grey15
-
-gray14
-
-grey14
-
-gray13
-
-grey13
-
-gray12
-
-grey12
-
-gray11
-
-grey11
-
-gray10
-
-grey10
-
-gray9
-
-grey9
-
-gray8
-
-grey8
-
-gray7
-
-grey7
-
-gray6
-
-grey6
-
-gray5
-
-grey5
-
-gray4
-
-grey4
-
-gray3
-
-grey3
-
-gray2
-
-grey2
-
-gray1
-
-grey1
-
-black
-
-gray0
-
-grey0
-
-opaque
-
-none
-
-transparent
-
- -
-WHERE THE COLORNAMES WILL GO -
- -
CLICK TO SHOW HEXES
-
CLICK TO SHOW INFO
- - - - - - diff --git a/share/frontend/imgrid/colors/test.html b/share/frontend/imgrid/colors/test.html deleted file mode 100755 index 1912ebf..0000000 --- a/share/frontend/imgrid/colors/test.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - -
- -
-
-
-
- -
-
-
-
-
-
-
-
-
- - - - - diff --git a/share/frontend/imgrid/colors/vase.gif b/share/frontend/imgrid/colors/vase.gif deleted file mode 100755 index dc1c104..0000000 Binary files a/share/frontend/imgrid/colors/vase.gif and /dev/null differ diff --git a/share/frontend/imgrid/colors/vase.png b/share/frontend/imgrid/colors/vase.png deleted file mode 100755 index 153e72b..0000000 Binary files a/share/frontend/imgrid/colors/vase.png and /dev/null differ diff --git a/share/frontend/imgrid/colors/vaseshim.png b/share/frontend/imgrid/colors/vaseshim.png deleted file mode 100755 index 7dbd352..0000000 Binary files a/share/frontend/imgrid/colors/vaseshim.png and /dev/null differ diff --git a/share/frontend/imgrid/colors/whiteshim.png b/share/frontend/imgrid/colors/whiteshim.png deleted file mode 100755 index 6b58334..0000000 Binary files a/share/frontend/imgrid/colors/whiteshim.png and /dev/null differ diff --git a/share/frontend/imgrid/dist/3dmap.jar b/share/frontend/imgrid/dist/3dmap.jar deleted file mode 100755 index 0424a46..0000000 Binary files a/share/frontend/imgrid/dist/3dmap.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/3dmap.jnlp b/share/frontend/imgrid/dist/3dmap.jnlp deleted file mode 100755 index 7c2108c..0000000 --- a/share/frontend/imgrid/dist/3dmap.jnlp +++ /dev/null @@ -1,38 +0,0 @@ - - - - 3D Map - ScannerJammer - - 3D Map Viewer - JOGL Applet that can generate a 3D landscape based on 2 images: texture and heightmap. - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/share/frontend/imgrid/dist/deployment/v1/gluegen-rt.jnlp b/share/frontend/imgrid/dist/deployment/v1/gluegen-rt.jnlp deleted file mode 100755 index 032fdb6..0000000 --- a/share/frontend/imgrid/dist/deployment/v1/gluegen-rt.jnlp +++ /dev/null @@ -1,63 +0,0 @@ - - - - GlueGen Runtime v2 - JogAmp Community - - GlueGen Runtime Library - Run-time support classes and native code for applications and libraries built using the GlueGen tool. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/applet-launcher.jar b/share/frontend/imgrid/dist/deployment/v1/jar/applet-launcher.jar deleted file mode 100755 index 53e0742..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/applet-launcher.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-linux-amd64.jar b/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-linux-amd64.jar deleted file mode 100755 index eaf6bad..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-linux-amd64.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-linux-i586.jar b/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-linux-i586.jar deleted file mode 100755 index 6c21412..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-linux-i586.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-macosx-ppc.jar b/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-macosx-ppc.jar deleted file mode 100755 index 2144ebf..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-macosx-ppc.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-macosx-universal.jar b/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-macosx-universal.jar deleted file mode 100755 index 8a5efb4..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-macosx-universal.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-amd64.jar b/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-amd64.jar deleted file mode 100755 index 1ad7faa..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-amd64.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-i586.jar b/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-i586.jar deleted file mode 100755 index dbadb72..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-i586.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-sparc.jar b/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-sparc.jar deleted file mode 100755 index 02367c7..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-sparc.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-sparcv9.jar b/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-sparcv9.jar deleted file mode 100755 index da0ff3a..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-sparcv9.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-windows-amd64.jar b/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-windows-amd64.jar deleted file mode 100755 index e9a3ffe..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-windows-amd64.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-windows-i586.jar b/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-windows-i586.jar deleted file mode 100755 index bb00056..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-windows-i586.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt.jar b/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt.jar deleted file mode 100755 index c995b22..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-linux-amd64.jar b/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-linux-amd64.jar deleted file mode 100755 index 64d95a0..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-linux-amd64.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-linux-i586.jar b/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-linux-i586.jar deleted file mode 100755 index 9370828..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-linux-i586.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-macosx-ppc.jar b/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-macosx-ppc.jar deleted file mode 100755 index 9495e36..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-macosx-ppc.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-macosx-universal.jar b/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-macosx-universal.jar deleted file mode 100755 index f2186cb..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-macosx-universal.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-amd64.jar b/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-amd64.jar deleted file mode 100755 index cd617f9..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-amd64.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-i586.jar b/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-i586.jar deleted file mode 100755 index 4209a9d..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-i586.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-sparc.jar b/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-sparc.jar deleted file mode 100755 index b25fdcd..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-sparc.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-sparcv9.jar b/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-sparcv9.jar deleted file mode 100755 index b60e31f..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-sparcv9.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-windows-amd64.jar b/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-windows-amd64.jar deleted file mode 100755 index af8b5f9..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-windows-amd64.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-windows-i586.jar b/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-windows-i586.jar deleted file mode 100755 index 81c1cdf..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-windows-i586.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/jogl.jar b/share/frontend/imgrid/dist/deployment/v1/jar/jogl.jar deleted file mode 100755 index ef96967..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/jogl.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jar/testKeys b/share/frontend/imgrid/dist/deployment/v1/jar/testKeys deleted file mode 100755 index 7eb9ceb..0000000 Binary files a/share/frontend/imgrid/dist/deployment/v1/jar/testKeys and /dev/null differ diff --git a/share/frontend/imgrid/dist/deployment/v1/jogl-awt.jnlp b/share/frontend/imgrid/dist/deployment/v1/jogl-awt.jnlp deleted file mode 100755 index 8c86404..0000000 --- a/share/frontend/imgrid/dist/deployment/v1/jogl-awt.jnlp +++ /dev/null @@ -1,71 +0,0 @@ - - - - Java(tm) Binding to the OpenGL(r) API (ALL.AWT) - JogAmp Community - - Java Binding to the OpenGL API - 2.0.0 - ALL.AWT - Java programming language binding for the OpenGL 3D graphics API - ALL.AWT - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/share/frontend/imgrid/dist/http/commons-codec-1.4.jar b/share/frontend/imgrid/dist/http/commons-codec-1.4.jar deleted file mode 100755 index 16cd33a..0000000 Binary files a/share/frontend/imgrid/dist/http/commons-codec-1.4.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/http/commons-logging-1.1.1.jar b/share/frontend/imgrid/dist/http/commons-logging-1.1.1.jar deleted file mode 100755 index 1fe7176..0000000 Binary files a/share/frontend/imgrid/dist/http/commons-logging-1.1.1.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/http/httpclient-4.1.2.jar b/share/frontend/imgrid/dist/http/httpclient-4.1.2.jar deleted file mode 100755 index 6a61ea2..0000000 Binary files a/share/frontend/imgrid/dist/http/httpclient-4.1.2.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/http/httpclient-cache-4.1.2.jar b/share/frontend/imgrid/dist/http/httpclient-cache-4.1.2.jar deleted file mode 100755 index 713decb..0000000 Binary files a/share/frontend/imgrid/dist/http/httpclient-cache-4.1.2.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/http/httpcore-4.1.2.jar b/share/frontend/imgrid/dist/http/httpcore-4.1.2.jar deleted file mode 100755 index 343e174..0000000 Binary files a/share/frontend/imgrid/dist/http/httpcore-4.1.2.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/http/httpmime-4.1.2.jar b/share/frontend/imgrid/dist/http/httpmime-4.1.2.jar deleted file mode 100755 index cce60ef..0000000 Binary files a/share/frontend/imgrid/dist/http/httpmime-4.1.2.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/http/plugin.jar b/share/frontend/imgrid/dist/http/plugin.jar deleted file mode 100755 index ee4792a..0000000 Binary files a/share/frontend/imgrid/dist/http/plugin.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist/index.html b/share/frontend/imgrid/dist/index.html deleted file mode 100755 index 76ed3ab..0000000 --- a/share/frontend/imgrid/dist/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/share/frontend/imgrid/dist/temp/HeightMap.jpg b/share/frontend/imgrid/dist/temp/HeightMap.jpg deleted file mode 100755 index ccee392..0000000 Binary files a/share/frontend/imgrid/dist/temp/HeightMap.jpg and /dev/null differ diff --git a/share/frontend/imgrid/dist/temp/Texture.jpg b/share/frontend/imgrid/dist/temp/Texture.jpg deleted file mode 100755 index eef3866..0000000 Binary files a/share/frontend/imgrid/dist/temp/Texture.jpg and /dev/null differ diff --git a/share/frontend/imgrid/dist/testKeys b/share/frontend/imgrid/dist/testKeys deleted file mode 100755 index 7eb9ceb..0000000 Binary files a/share/frontend/imgrid/dist/testKeys and /dev/null differ diff --git a/share/frontend/imgrid/dist_embedded/3DMapAllWin.jar b/share/frontend/imgrid/dist_embedded/3DMapAllWin.jar deleted file mode 100755 index 7ee9c3d..0000000 Binary files a/share/frontend/imgrid/dist_embedded/3DMapAllWin.jar and /dev/null differ diff --git a/share/frontend/imgrid/dist_embedded/index.html b/share/frontend/imgrid/dist_embedded/index.html deleted file mode 100755 index 828945e..0000000 --- a/share/frontend/imgrid/dist_embedded/index.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - diff --git a/share/frontend/imgrid/harrisbros.png b/share/frontend/imgrid/harrisbros.png deleted file mode 100755 index 47366e1..0000000 Binary files a/share/frontend/imgrid/harrisbros.png and /dev/null differ diff --git a/share/frontend/imgrid/index.html b/share/frontend/imgrid/index.html index 3076df7..96813c2 100755 --- a/share/frontend/imgrid/index.html +++ b/share/frontend/imgrid/index.html @@ -197,7 +197,7 @@ table
- +
diff --git a/share/frontend/imgrid/indexOLD.html b/share/frontend/imgrid/indexOLD.html deleted file mode 100755 index 0e72d37..0000000 --- a/share/frontend/imgrid/indexOLD.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - - - - - - - - - - - IMGRID - a 3D GRID-PLANE GENERATOR - - - - - - - - - - - - -
- x - - - - - - - - - - - -
-
- - - -

IMGRID: A 3D-GRID-PLANE GENERATOR FROM PHOTOBLASTER

-

USE:

-
-

I. THE FLAT PLANE -II. THE 3D PLANE
CLICK TO OPEN JAVA APPLET

-
-

CHOOSE AN IMAGE SIZE: HEIGHTPXWIDTHPX

-

CHOOSE THE LINE THICKNESS:PX

-

CHOOSE A LINE COLOR:PX

- -

ADJUST LINE OPACITY: -

-

ADJUST SPACING: PX -

-

USE ONLY VERTICAL LINES

-

USE ONLY HORIZONTAL LINES

-

ADD A SHADOW

-

CHOOSE BACKGROUND OF GRID:

-

TRANSPARENT? (THE DEFAULT)

-

USE AN IMAGE?IMG URL eg:http://ww...

-

USE A COLOR?SEE COLOR LIST

-

ADJUST WITHIN THE 3D PLANE:

-

USE IMAGE INSTEAD OF GRIDIMG URL eg:http://ww...

-

CHOOSE A BACKGROUND COLORSEE COLOR LIST

-

OR USE A BACKGROUND IMAGE

IMG URL eg:http://ww... -

CHOOSE A SKYCOLOR

for the area above the horizon-line -

ADD A DITHERED-TRANSITION

-

SWING -

-

TILT -

-

ROLL -

-

ZOOM -

-

TRIM IT

-

ADJUST THE IMAGE FORMAT

-

← ENTER YOUR NAME if you want

- - -
-
-click generate or hit enter to get your 2D plane - -
-
-
-
COPYRIGHT 2011 PEPPER DREAMTEAMER
- - -
- -
-
- - - - - - - - - - - - - - - - - diff --git a/share/frontend/imgrid/indexnewold.html b/share/frontend/imgrid/indexnewold.html deleted file mode 100755 index bcb5cd3..0000000 --- a/share/frontend/imgrid/indexnewold.html +++ /dev/null @@ -1,336 +0,0 @@ - - - - - - - - - - - - - - - - - IMGRID - a 3D GRID-PLANE GENERATOR - - - - - - - - - - - - - -

IMGRID

-

A 3D-GRID-PLANE GENERATOR FROM PHOTOBLASTER

- - - -
- - - - - - - - -
SWING
TILT
ROLL
ZOOM
- -
-
- - - - - -
3D PLANE
- - - - - - - - - - - - - - - - - - - - - - - - - -
GRID THICKNESS:PX
GRID COLOR:SEE COLOR LIST
GRID OPACITY:
GRID SPACING: PX
USE ONLY VERTICAL LINES
USE ONLY HORIZONTAL LINES
- - - - - -
USE IMAGE INSTEAD OF GRIDIMG URL eg:http://ww...
- - - - -
DROP SHADOW
- - - - - - - -
GRID BACKGROUND:
TRANSPARENT? (THE DEFAULT)
USE AN IMAGE?IMG URL eg:http://ww...
- -
USE A COLOR?SEE COLOR LIST
- - - - - - -
DITHERED-TRANSITION
- - - - -
IMAGE:
- -
BACKGROUND COLORSEE COLOR LIST
- - - -
OR BACKGROUND IMAGEIMG URL eg:http://ww...
- - - - - - - - -
SKYCOLORfor the area above the horizon-lineSEE COLOR LIST
HEIGHT PX
WIDTHPX
- - -
TRIM WHITESPACE
IMAGE FORMAT -
- - - - ← ENTER YOUR NAME if you want -
- - - - - - - - - -
- click generate or hit enter to get your 2D plane - - -
-
- -
COPYRIGHT 2011 PEPPER DREAMTEAMER
-
- -
-
- - - - - - - - - - - diff --git a/share/frontend/imgrid/indexold.html b/share/frontend/imgrid/indexold.html deleted file mode 100755 index 5c1e27e..0000000 --- a/share/frontend/imgrid/indexold.html +++ /dev/null @@ -1,322 +0,0 @@ - - - - - - - - - - - - - - - - - IMGRID - a 3D GRID-PLANE GENERATOR - - - - - - - - - - - - - -

IMGRID

-

A 3D-GRID-PLANE GENERATOR FROM PHOTOBLASTER

- - - -
-
- - - - - - - - - - -
HEIGHTPXWIDTH  PX
SWING  
TILT  
ROLL  
ZOOM  
- - -
TRIM WHITESPACE
-
- - - - - -
3D PLANE
- -
PLANE BACKGROUND COLORSEE COLOR LIST
- - - -
OR USE A BACKGROUND IMAGEIMG URL eg:http://ww...
- - - - -
DITHERED-TRANSITION
- - - - -
DROP SHADOW
SKYCOLORfor the area above the horizon-lineSEE COLOR LIST
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LINE:
LINE THICKNESS:PX
LINE COLOR:SEE COLOR LIST
LINE OPACITY:
LINE SPACING: PX
USE ONLY VERTICAL LINES
USE ONLY HORIZONTAL LINES
- - - -
USE IMAGE INSTEAD OF GRIDIMG URL eg:http://ww...
- - -
- - - - - - - -
GRID BACKGROUND:
TRANSPARENT? (THE DEFAULT)
USE AN IMAGE?IMG URL eg:http://ww...
- -
USE A COLOR?SEE COLOR LIST
- - - -
IMAGE FORMAT -
- - - - ← ENTER YOUR NAME if you want -
- - - - - - - - -
- click generate or hit enter to get your 2D plane - - -
-
- -
COPYRIGHT 2011 PEPPER DREAMTEAMER
-
-
-
- - - - - - - - - - - diff --git a/share/frontend/imgrid/intro.html b/share/frontend/imgrid/intro.html deleted file mode 100755 index 5c14969..0000000 --- a/share/frontend/imgrid/intro.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - - - - - - - IMGRID - a 3D GRID-PLANE GENERATOR - - - - - -
-
- -
-
-
- - - - - \ No newline at end of file diff --git a/share/frontend/imgrid/jeremy.html b/share/frontend/imgrid/jeremy.html index 608056d..4d648e3 100755 --- a/share/frontend/imgrid/jeremy.html +++ b/share/frontend/imgrid/jeremy.html @@ -348,7 +348,7 @@ endpopup code-->
--> -
+
diff --git a/share/frontend/imgrid/old.html b/share/frontend/imgrid/old.html deleted file mode 100755 index 46e4a34..0000000 --- a/share/frontend/imgrid/old.html +++ /dev/null @@ -1,461 +0,0 @@ - - - - - - - - - - - - - - - - - IMGRID - a 3D GRID-PLANE GENERATOR - - - - - - - - - -
- -
- - -
IMGRID
-
3D-GRID-PLANE GENERATOR -
-hit enter or click GENERATE to get your 2D plane - - -
- -
-
- - - - -
DIMENSIONS
+
-
- - - - - -
HEIGHT PX
WIDTHPX
 
-
- - - - - - - - - - -
SWING 
TILT 
ROLL 
ZOOM  (in/out)  
- - - - -
 
CROP WHITESPACE
 
- -
IMAGE FORMAT -
-
- - - - -
GRID AND IMAGE
+
- -
- - - -
USE IMAGE INSTEAD OF GRIDIMG URL eg:http://ww...
- - - - - - - - - -
GRID THICKNESS:PX  
GRID COLOR:COLOR LIST
- - - - - - - - - - - - - - - -
GRID OPACITY:
GRID SPACING:
USE ONLY VERTICAL LINES
USE ONLY HORIZONTAL LINES
- - -
GRID BACKGROUND COLOR COLOR LIST
- - - -
OR GRID BACKGROUND IMAGEIMG URL eg:http://ww...
- - - - - -
GRID-TRANSITION
- - - - -
DROP SHADOW
-
- - - - - - -
BACKGROUND
+
-
- -
BACKGROUND COLORCOLOR LIST
- - - -
OR BACKGROUND IMAGEIMG URL eg:http://ww...
- - - - -
SKYCOLORfor the area above the horizon-lineCOLOR LIST
- -
- - - -
 
USERNAME
+
- -
- - -
- - - -
-
- - - - -
-
- - - - - - - - - - - - - - - diff --git a/share/frontend/imgrid/oldathena.gif b/share/frontend/imgrid/oldathena.gif deleted file mode 100755 index b05605c..0000000 Binary files a/share/frontend/imgrid/oldathena.gif and /dev/null differ diff --git a/share/frontend/imgrid/oldindex.html b/share/frontend/imgrid/oldindex.html deleted file mode 100755 index 106fabf..0000000 --- a/share/frontend/imgrid/oldindex.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - - - - - - - - - - - - IMGRID - a 3D GRID-PLANE GENERATOR - - - - - - - - - - - - - -

IMGRID

-

A 3D-GRID-PLANE GENERATOR FROM PHOTOBLASTER

- - - -
- - - - - - - - -
SWING
TILT
ROLL
ZOOM
- -
- - - - - - -
THE 3D PLANE...
USE IMAGE INSTEAD OF GRIDIMG URL eg:http://ww...
- -
PLANE BACKGROUND COLORSEE COLOR LIST
- - - -
OR USE A BACKGROUND IMAGEIMG URL eg:http://ww...
- - - - -
DROP SHADOW
SKYCOLORfor the area above the horizon-lineSEE COLOR LIST
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ADJUST LINE:
LINE THICKNESS:PX
LINE COLOR:SEE COLOR LIST
LINE OPACITY:
LINE SPACING: PX
USE ONLY VERTICAL LINES
USE ONLY HORIZONTAL LINES
- - -
- - - - - - - -
GRID BACKGROUND:
TRANSPARENT? (THE DEFAULT)
USE AN IMAGE?IMG URL eg:http://ww...
- -
USE A COLOR?SEE COLOR LIST
- - - - - - -
DITHERED-TRANSITION
- - - - - - -
IMAGE SIZE:
HEIGHT PX
WIDTHPX
- - - IMAGE FORMAT
TRIM WHITESPACE
- - ← ENTER YOUR NAME if you want -
- - - - - - - - - -
- click generate or hit enter to get your 2D plane - - -
-
- -
COPYRIGHT 2011 PEPPER DREAMTEAMER
-
- -
-
- - - - - - - - - - - diff --git a/share/frontend/imgrid/safety.html b/share/frontend/imgrid/safety.html deleted file mode 100755 index 79bc91a..0000000 --- a/share/frontend/imgrid/safety.html +++ /dev/null @@ -1,488 +0,0 @@ - - - - - - - - - - - - - - - - - IMGRID - a 3D GRID-PLANE GENERATOR - - - - - - - - - -
- -
- - -
-
3D-GRID-PLANE GENERATOR -
-hit enter or click GENERATE to get your 2D plane - - -
- - -
-
- - - -
DIMENSIONS
+
-
- - - - - -
HEIGHT PX
WIDTHPX
 
-
- - - - - - - - - - -
SWING 
TILT 
ROLL 
ZOOM  (in/out)  
- - - - -
 
CROP WHITESPACE
 
- -
IMAGE FORMAT -
-
- - - - -
GRID AND IMAGE
+
- -
- - - -
USE IMAGE INSTEAD OF GRIDIMG URL eg:http://ww...
- - - - - - - - - -
GRID THICKNESS:PX  
GRID COLOR:COLOR LIST
- - - - - - - - - - - - - - - -
GRID OPACITY:
GRID SPACING:
USE ONLY VERTICAL LINES
USE ONLY HORIZONTAL LINES
- - -
GRID BACKGROUND COLOR COLOR LIST
- - - -
OR GRID BACKGROUND IMAGEIMG URL eg:http://ww...
- - - - - -
GRID-TRANSITION
- - - - -
DROP SHADOW
-
- - - - - - -
BACKGROUND
+
-
- -
BACKGROUND COLORCOLOR LIST
- - - -
OR BACKGROUND IMAGEIMG URL eg:http://ww...
- - - - -
SKYCOLORfor the area above the horizon-lineCOLOR LIST
- -
- - - -
 
USERNAME
+
- -
- -
- - -
- - - - -
- - - - -
-
- - - - -COPYRIGHT 2011 PEPPER DREAMTEAMER - - - - - - - - - - diff --git a/share/frontend/imgrid/test.gif b/share/frontend/imgrid/test.gif deleted file mode 100755 index ebfbdeb..0000000 Binary files a/share/frontend/imgrid/test.gif and /dev/null differ diff --git a/share/frontend/imgrid/thatbackground.gif b/share/frontend/imgrid/thatbackground.gif deleted file mode 100755 index e52cfdc..0000000 Binary files a/share/frontend/imgrid/thatbackground.gif and /dev/null differ diff --git a/share/frontend/imlandscape/README.md b/share/frontend/imlandscape/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/share/frontend/imlandscape/simple_proxy.py b/share/frontend/imlandscape/simple_proxy.py deleted file mode 100644 index cde43e8..0000000 --- a/share/frontend/imlandscape/simple_proxy.py +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env python3 -import http.server -import urllib.request -import re -import sys - -class MyHTTPRequestHandler(http.server.CGIHTTPRequestHandler ): - def end_headers(self): - self.send_my_headers() - - http.server.CGIHTTPRequestHandler .end_headers(self) - - def send_my_headers(self): - self.send_header("Access-Control-Allow-Origin", "*") - - def do_GET(self): - if self.path[0:14] == "/cgi-bin/proxy": - sys.stderr.write(self.path[15:]); - self.copyfile(urllib.request.urlopen(self.path[15:]), self.wfile) - super().do_GET(); - else: - super().do_GET() - - def do_POST(self): - super().do_POST(); - -if __name__ == '__main__': - http.server.test(port=8181, HandlerClass=MyHTTPRequestHandler) - diff --git a/share/frontend/impattern/app.pl b/share/frontend/impattern/app.pl deleted file mode 100644 index b1bfc3c..0000000 --- a/share/frontend/impattern/app.pl +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env perl -use Dancer2; -use Data::Dumper; -set public => './'; - -get '/download/*.*' => sub { - my ($file, $ext) = splat; - # do something with $file.$ext here -}; - -get qr{/img/([\w\.\-_]+)} => sub { - my ($filename) = splat; - send_file sprintf("/img/%s", $filename); -}; -get qr{/patterns/([\w\.\-_]+)} => sub { - my ($filename) = splat; - send_file sprintf("/patterns/%s", $filename); -}; -get qr{/css/([\w\.\-_]+)} => sub { - my ($filename) = splat; - send_file sprintf("/css/%s", $filename); -}; -get qr{/js/([\w\.\-_]+)} => sub { - my ($filename) = splat; - send_file sprintf("/js/%s", $filename); -}; -get qr{/fonts/([\w\.\-_]+)} => sub { - my ($filename) = splat; - send_file sprintf("/fonts/%s", $filename); -}; -get '/' => sub { - send_file ("index.html"); -}; -dance; diff --git a/share/frontend/impattern/impattern.html b/share/frontend/impattern/impattern.html deleted file mode 100644 index bf26446..0000000 --- a/share/frontend/impattern/impattern.html +++ /dev/null @@ -1,254 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  
- -
-testing testing tesitng -
- -
  -
-Image to overlay: - - - - - - - diff --git a/share/frontend/impattern/makePattern.py b/share/frontend/impattern/makePattern.py deleted file mode 100755 index 98d298b..0000000 --- a/share/frontend/impattern/makePattern.py +++ /dev/null @@ -1,111 +0,0 @@ -#!/usr/bin/python2.7 - -import sys -import cgi -from os import getpid, path -from subprocess import call, Popen, PIPE -import time - -MAIN_DIRECTORY = "" -BIN_CONVERT = "convert" -BIN_IDENTIFY = "identify" -BIN_COMPOSITE = "composite" -ACCEPTABLE_FILE_TYPES = [".png", ".jpg", ".gif", ".jpeg"] - -def usage(): - sys.stderr.write("$>makePattern.py [ input_file ] [ pattern_file ] [ username ]"); - -def now(): - return str(int(time.time())) - -def image_dimensions_and_test(filename): - ident = Popen([BIN_IDENTIFY, filename], stdout=PIPE).communicate()[0] - partz = ident.split(" ") - filetype = "."+partz[1] - size = partz[6] - if filetype.lower() not in ACCEPTABLE_FILE_TYPES: - error("file was not an image") - return partz[2].split("x") - -def error(s): - " returns an error and exits the program " - print("ERROR: "+s) - exit(1) - -def hexdir(filename): - " creates a two-letter directory name " - return sha1(filename.encode()).hexdigest()[:2] -#repage command convert original.png -resize 425x92 -repage 425x92+0+0 new.png - -class Pattern: - - def __init__(self): - self.nametag = "imPattern"; - self.pid = str(getpid()) - self.pattern_file = ""; - self.original_file = ""; - self.username = ""; - self.commands = []; - - def makeResultFilename(self): - file_base, extension = path.splitext(self.original_file) - if len(file_base) > self.MAX_NAME_LENGTH: - file_base = file_base[0:self.MAX_NAME_LENGTH] - return "%s_%s_%s%s%s" % (file_base, self.username, self.nametag, now(), extension) - - #first step - def makeCanvas(self): - call([BIN_CONVERT,"-size",self.dimensions[0]+"x"+self.dimensions[1],"canvas:transparent", self.canvas_file]) - - #second step use the Canvas as a background - def makeMask(self): - #tile the pattern pattern on the canvas - command = [BIN_COMPOSITE,"-tile", self.pattern_file, self.canvas_file, self.mask_file]; - call(command) - self.commands.append(command) - #fuse the tiled file to create a mask - #convert thebg.gif -compose Dst_In null: thefile.gif -matte -layers composite new.gif - command = [BIN_CONVERT, self.mask_file, "-compose", "Dst_In", "null:", self.original_file, "-matte", "-layers", "composite", self.mask_file] - call(command) - - #cleanup - call(["rm", self.canvas_file]) - - #third step - def fuseMask(self, fuse_mode="Pin_Light"): - call([BIN_CONVERT, self.mask_file, "null:", self.original_file, "-matte", "-compose", fuse_mode, "-layers", "composite", self.result_file]) - call(["rm", self.mask_file]) - - def main(self, input_file_path, pattern_file, username=""): - self.pattern_file = pattern_file; - self.original_file = input_file_path; - self.username = username; - self.MAX_NAME_LENGTH = 10; - - self.image_format = self.original_file.split(".")[-1] - self.dimensions = "" - try: - self.dimensions = image_dimensions_and_test(self.original_file); - except Exception as e: - sys.stderr.write(str(e)); - error("Unable to determine dimensions") - self.canvas_file = self.pid+"blank_canvas.png"; - self.makeCanvas(); - self.mask_file = self.pid+"mask_file"+"."+self.image_format; - self.makeMask(); - self.result_file = self.makeResultFilename(); - self.fuseMask(); - -if __name__ == "__main__": - p = Pattern(); - if len(sys.argv) < 2 or len(sys.argv) > 3: - usage(); - sys.exit(0); - input_file_path = sys.argv[1] - pattern_file = sys.argv[2] - username = ""; -# username = sys.argv[3] - print input_file_path; - print pattern_file; - print username; - p.main(input_file_path, pattern_file, username); diff --git a/share/frontend/impattern/newimagefromjson.py b/share/frontend/impattern/newimagefromjson.py deleted file mode 100644 index 5f62bd1..0000000 --- a/share/frontend/impattern/newimagefromjson.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/python2.7 -import simplejson as json -from PIL import Image -import sys - -f = open("myjson.json", 'r'); -myjson = f.read(); -f.close(); - -specs = json.loads(myjson); -img = Image.new('RGBA', (int(specs['width']), int(specs['height']))); - -def boolToColor(boolean): - if boolean: - return (0,0,0,255); - else: - return (255,255,255,0) - -pixels = img.load(); -#for i in range(0, 9, 2): -# dosomething(i) -for i in range(0, len(specs['matrix'])): - for j in range(0, len(specs['matrix'][i])): - pixels[j,i] = boolToColor(int(specs['matrix'][i][j])); - -img.save("myimage.png", "PNG") diff --git a/share/frontend/impattern/old/bottle.py b/share/frontend/impattern/old/bottle.py deleted file mode 100644 index 40a858d..0000000 --- a/share/frontend/impattern/old/bottle.py +++ /dev/null @@ -1,3605 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -""" -Bottle is a fast and simple micro-framework for small web applications. It -offers request dispatching (Routes) with url parameter support, templates, -a built-in HTTP Server and adapters for many third party WSGI/HTTP-server and -template engines - all in a single file and with no dependencies other than the -Python Standard Library. - -Homepage and documentation: http://bottlepy.org/ - -Copyright (c) 2012, Marcel Hellkamp. -License: MIT (see LICENSE for details) -""" - -from __future__ import with_statement - -__author__ = 'Marcel Hellkamp' -__version__ = '0.12-dev' -__license__ = 'MIT' - -# The gevent server adapter needs to patch some modules before they are imported -# This is why we parse the commandline parameters here but handle them later -if __name__ == '__main__': - from optparse import OptionParser - _cmd_parser = OptionParser(usage="usage: %prog [options] package.module:app") - _opt = _cmd_parser.add_option - _opt("--version", action="store_true", help="show version number.") - _opt("-b", "--bind", metavar="ADDRESS", help="bind socket to ADDRESS.") - _opt("-s", "--server", default='wsgiref', help="use SERVER as backend.") - _opt("-p", "--plugin", action="append", help="install additional plugin/s.") - _opt("--debug", action="store_true", help="start server in debug mode.") - _opt("--reload", action="store_true", help="auto-reload on file changes.") - _cmd_options, _cmd_args = _cmd_parser.parse_args() - if _cmd_options.server and _cmd_options.server.startswith('gevent'): - import gevent.monkey; gevent.monkey.patch_all() - -import base64, cgi, email.utils, functools, hmac, imp, itertools, mimetypes,\ - os, re, subprocess, sys, tempfile, threading, time, warnings - -from datetime import date as datedate, datetime, timedelta -from tempfile import TemporaryFile -from traceback import format_exc, print_exc -from inspect import getargspec - -try: from simplejson import dumps as json_dumps, loads as json_lds -except ImportError: # pragma: no cover - try: from json import dumps as json_dumps, loads as json_lds - except ImportError: - try: from django.utils.simplejson import dumps as json_dumps, loads as json_lds - except ImportError: - def json_dumps(data): - raise ImportError("JSON support requires Python 2.6 or simplejson.") - json_lds = json_dumps - - - -# We now try to fix 2.5/2.6/3.1/3.2 incompatibilities. -# It ain't pretty but it works... Sorry for the mess. - -py = sys.version_info -py3k = py >= (3, 0, 0) -py25 = py < (2, 6, 0) -py31 = (3, 1, 0) <= py < (3, 2, 0) - -# Workaround for the missing "as" keyword in py3k. -def _e(): return sys.exc_info()[1] - -# Workaround for the "print is a keyword/function" Python 2/3 dilemma -# and a fallback for mod_wsgi (resticts stdout/err attribute access) -try: - _stdout, _stderr = sys.stdout.write, sys.stderr.write -except IOError: - _stdout = lambda x: sys.stdout.write(x) - _stderr = lambda x: sys.stderr.write(x) - -# Lots of stdlib and builtin differences. -if py3k: - import http.client as httplib - import _thread as thread - from urllib.parse import urljoin, SplitResult as UrlSplitResult - from urllib.parse import urlencode, quote as urlquote, unquote as urlunquote - urlunquote = functools.partial(urlunquote, encoding='latin1') - from http.cookies import SimpleCookie - from collections import MutableMapping as DictMixin - import pickle - from io import BytesIO - from configparser import ConfigParser - basestring = str - unicode = str - json_loads = lambda s: json_lds(touni(s)) - callable = lambda x: hasattr(x, '__call__') - imap = map - def _raise(*a): raise a[0](a[1]).with_traceback(a[2]) -else: # 2.x - import httplib - import thread - from urlparse import urljoin, SplitResult as UrlSplitResult - from urllib import urlencode, quote as urlquote, unquote as urlunquote - from Cookie import SimpleCookie - from itertools import imap - import cPickle as pickle - from StringIO import StringIO as BytesIO - from ConfigParser import SafeConfigParser as ConfigParser - if py25: - msg = "Python 2.5 support may be dropped in future versions of Bottle." - warnings.warn(msg, DeprecationWarning) - from UserDict import DictMixin - def next(it): return it.next() - bytes = str - else: # 2.6, 2.7 - from collections import MutableMapping as DictMixin - json_loads = json_lds - eval(compile('def _raise(*a): raise a[0], a[1], a[2]', '', 'exec')) - -# Some helpers for string/byte handling -def tob(s, enc='utf8'): - return s.encode(enc) if isinstance(s, unicode) else bytes(s) -def touni(s, enc='utf8', err='strict'): - return s.decode(enc, err) if isinstance(s, bytes) else unicode(s) -tonat = touni if py3k else tob - -# 3.2 fixes cgi.FieldStorage to accept bytes (which makes a lot of sense). -# 3.1 needs a workaround. -if py31: - from io import TextIOWrapper - class NCTextIOWrapper(TextIOWrapper): - def close(self): pass # Keep wrapped buffer open. - - -# A bug in functools causes it to break if the wrapper is an instance method -def update_wrapper(wrapper, wrapped, *a, **ka): - try: functools.update_wrapper(wrapper, wrapped, *a, **ka) - except AttributeError: pass - - - -# These helpers are used at module level and need to be defined first. -# And yes, I know PEP-8, but sometimes a lower-case classname makes more sense. - -def depr(message, hard=False): - warnings.warn(message, DeprecationWarning, stacklevel=3) - -def makelist(data): # This is just to handy - if isinstance(data, (tuple, list, set, dict)): return list(data) - elif data: return [data] - else: return [] - - -class DictProperty(object): - ''' Property that maps to a key in a local dict-like attribute. ''' - def __init__(self, attr, key=None, read_only=False): - self.attr, self.key, self.read_only = attr, key, read_only - - def __call__(self, func): - functools.update_wrapper(self, func, updated=[]) - self.getter, self.key = func, self.key or func.__name__ - return self - - def __get__(self, obj, cls): - if obj is None: return self - key, storage = self.key, getattr(obj, self.attr) - if key not in storage: storage[key] = self.getter(obj) - return storage[key] - - def __set__(self, obj, value): - if self.read_only: raise AttributeError("Read-Only property.") - getattr(obj, self.attr)[self.key] = value - - def __delete__(self, obj): - if self.read_only: raise AttributeError("Read-Only property.") - del getattr(obj, self.attr)[self.key] - - -class cached_property(object): - ''' A property that is only computed once per instance and then replaces - itself with an ordinary attribute. Deleting the attribute resets the - property. ''' - - def __init__(self, func): - self.__doc__ = getattr(func, '__doc__') - self.func = func - - def __get__(self, obj, cls): - if obj is None: return self - value = obj.__dict__[self.func.__name__] = self.func(obj) - return value - - -class lazy_attribute(object): - ''' A property that caches itself to the class object. ''' - def __init__(self, func): - functools.update_wrapper(self, func, updated=[]) - self.getter = func - - def __get__(self, obj, cls): - value = self.getter(cls) - setattr(cls, self.__name__, value) - return value - - - - - - -############################################################################### -# Exceptions and Events ######################################################## -############################################################################### - - -class BottleException(Exception): - """ A base class for exceptions used by bottle. """ - pass - - - - - - -############################################################################### -# Routing ###################################################################### -############################################################################### - - -class RouteError(BottleException): - """ This is a base class for all routing related exceptions """ - - -class RouteReset(BottleException): - """ If raised by a plugin or request handler, the route is reset and all - plugins are re-applied. """ - -class RouterUnknownModeError(RouteError): pass - - -class RouteSyntaxError(RouteError): - """ The route parser found something not supported by this router. """ - - -class RouteBuildError(RouteError): - """ The route could not be built. """ - - -def _re_flatten(p): - ''' Turn all capturing groups in a regular expression pattern into - non-capturing groups. ''' - if '(' not in p: return p - return re.sub(r'(\\*)(\(\?P<[^>]+>|\((?!\?))', - lambda m: m.group(0) if len(m.group(1)) % 2 else m.group(1) + '(?:', p) - - -class Router(object): - ''' A Router is an ordered collection of route->target pairs. It is used to - efficiently match WSGI requests against a number of routes and return - the first target that satisfies the request. The target may be anything, - usually a string, ID or callable object. A route consists of a path-rule - and a HTTP method. - - The path-rule is either a static path (e.g. `/contact`) or a dynamic - path that contains wildcards (e.g. `/wiki/`). The wildcard syntax - and details on the matching order are described in docs:`routing`. - ''' - - default_pattern = '[^/]+' - default_filter = 're' - - #: The current CPython regexp implementation does not allow more - #: than 99 matching groups per regular expression. - _MAX_GROUPS_PER_PATTERN = 99 - - def __init__(self, strict=False): - self.rules = [] # All rules in order - self._groups = {} # index of regexes to find them in dyna_routes - self.builder = {} # Data structure for the url builder - self.static = {} # Search structure for static routes - self.dyna_routes = {} - self.dyna_regexes = {} # Search structure for dynamic routes - #: If true, static routes are no longer checked first. - self.strict_order = strict - self.filters = { - 're': lambda conf: - (_re_flatten(conf or self.default_pattern), None, None), - 'int': lambda conf: (r'-?\d+', int, lambda x: str(int(x))), - 'float': lambda conf: (r'-?[\d.]+', float, lambda x: str(float(x))), - 'path': lambda conf: (r'.+?', None, None)} - - def add_filter(self, name, func): - ''' Add a filter. The provided function is called with the configuration - string as parameter and must return a (regexp, to_python, to_url) tuple. - The first element is a string, the last two are callables or None. ''' - self.filters[name] = func - - rule_syntax = re.compile('(\\\\*)'\ - '(?:(?::([a-zA-Z_][a-zA-Z_0-9]*)?()(?:#(.*?)#)?)'\ - '|(?:<([a-zA-Z_][a-zA-Z_0-9]*)?(?::([a-zA-Z_]*)'\ - '(?::((?:\\\\.|[^\\\\>]+)+)?)?)?>))') - - def _itertokens(self, rule): - offset, prefix = 0, '' - for match in self.rule_syntax.finditer(rule): - prefix += rule[offset:match.start()] - g = match.groups() - if len(g[0])%2: # Escaped wildcard - prefix += match.group(0)[len(g[0]):] - offset = match.end() - continue - if prefix: - yield prefix, None, None - name, filtr, conf = g[4:7] if g[2] is None else g[1:4] - yield name, filtr or 'default', conf or None - offset, prefix = match.end(), '' - if offset <= len(rule) or prefix: - yield prefix+rule[offset:], None, None - - def add(self, rule, method, target, name=None): - ''' Add a new rule or replace the target for an existing rule. ''' - anons = 0 # Number of anonymous wildcards found - keys = [] # Names of keys - pattern = '' # Regular expression pattern with named groups - filters = [] # Lists of wildcard input filters - builder = [] # Data structure for the URL builder - is_static = True - - for key, mode, conf in self._itertokens(rule): - if mode: - is_static = False - if mode == 'default': mode = self.default_filter - mask, in_filter, out_filter = self.filters[mode](conf) - if not key: - pattern += '(?:%s)' % mask - key = 'anon%d' % anons - anons += 1 - else: - pattern += '(?P<%s>%s)' % (key, mask) - keys.append(key) - if in_filter: filters.append((key, in_filter)) - builder.append((key, out_filter or str)) - elif key: - pattern += re.escape(key) - builder.append((None, key)) - - self.builder[rule] = builder - if name: self.builder[name] = builder - - if is_static and not self.strict_order: - self.static.setdefault(method, {}) - self.static[method][self.build(rule)] = (target, None) - return - - try: - re_pattern = re.compile('^(%s)$' % pattern) - re_match = re_pattern.match - except re.error: - raise RouteSyntaxError("Could not add Route: %s (%s)" % (rule, _e())) - - if filters: - def getargs(path): - url_args = re_match(path).groupdict() - for name, wildcard_filter in filters: - try: - url_args[name] = wildcard_filter(url_args[name]) - except ValueError: - raise HTTPError(400, 'Path has wrong format.') - return url_args - elif re_pattern.groupindex: - def getargs(path): - return re_match(path).groupdict() - else: - getargs = None - - flatpat = _re_flatten(pattern) - whole_rule = (rule, flatpat, target, getargs) - - if (flatpat, method) in self._groups: - if DEBUG: - msg = 'Route <%s %s> overwrites a previously defined route' - warnings.warn(msg % (method, rule), RuntimeWarning) - self.dyna_routes[method][self._groups[flatpat, method]] = whole_rule - else: - self.dyna_routes.setdefault(method, []).append(whole_rule) - self._groups[flatpat, method] = len(self.dyna_routes[method]) - 1 - - self._compile(method) - - def _compile(self, method): - all_rules = self.dyna_routes[method] - comborules = self.dyna_regexes[method] = [] - maxgroups = self._MAX_GROUPS_PER_PATTERN - for x in range(0, len(all_rules), maxgroups): - some = all_rules[x:x+maxgroups] - combined = (flatpat for (_, flatpat, _, _) in some) - combined = '|'.join('(^%s$)' % flatpat for flatpat in combined) - combined = re.compile(combined).match - rules = [(target, getargs) for (_, _, target, getargs) in some] - comborules.append((combined, rules)) - - def build(self, _name, *anons, **query): - ''' Build an URL by filling the wildcards in a rule. ''' - builder = self.builder.get(_name) - if not builder: raise RouteBuildError("No route with that name.", _name) - try: - for i, value in enumerate(anons): query['anon%d'%i] = value - url = ''.join([f(query.pop(n)) if n else f for (n,f) in builder]) - return url if not query else url+'?'+urlencode(query) - except KeyError: - raise RouteBuildError('Missing URL argument: %r' % _e().args[0]) - - def match(self, environ): - ''' Return a (target, url_agrs) tuple or raise HTTPError(400/404/405). ''' - verb = environ['REQUEST_METHOD'].upper() - path = environ['PATH_INFO'] or '/' - target = None - methods = [verb, 'GET', 'ANY'] if verb == 'HEAD' else [verb, 'ANY'] - - for method in methods: - if method in self.static and path in self.static[method]: - target, getargs = self.static[method][path] - return target, getargs(path) if getargs else {} - elif method in self.dyna_regexes: - for combined, rules in self.dyna_regexes[method]: - match = combined(path) - if match: - target, getargs = rules[match.lastindex - 1] - return target, getargs(path) if getargs else {} - - # No matching route found. Collect alternative methods for 405 response - allowed = set([]) - nocheck = set(methods) - for method in set(self.static) - nocheck: - if path in self.static[method]: - allowed.add(verb) - for method in set(self.dyna_regexes) - allowed - nocheck: - for combined, rules in self.dyna_regexes[method]: - match = combined(path) - if match: - allowed.add(method) - if allowed: - allow_header = ",".join(sorted(allowed)) - raise HTTPError(405, "Method not allowed.", Allow=allow_header) - - # No matching route and no alternative method found. We give up - raise HTTPError(404, "Not found: " + repr(path)) - - - - - - -class Route(object): - ''' This class wraps a route callback along with route specific metadata and - configuration and applies Plugins on demand. It is also responsible for - turing an URL path rule into a regular expression usable by the Router. - ''' - - def __init__(self, app, rule, method, callback, name=None, - plugins=None, skiplist=None, **config): - #: The application this route is installed to. - self.app = app - #: The path-rule string (e.g. ``/wiki/:page``). - self.rule = rule - #: The HTTP method as a string (e.g. ``GET``). - self.method = method - #: The original callback with no plugins applied. Useful for introspection. - self.callback = callback - #: The name of the route (if specified) or ``None``. - self.name = name or None - #: A list of route-specific plugins (see :meth:`Bottle.route`). - self.plugins = plugins or [] - #: A list of plugins to not apply to this route (see :meth:`Bottle.route`). - self.skiplist = skiplist or [] - #: Additional keyword arguments passed to the :meth:`Bottle.route` - #: decorator are stored in this dictionary. Used for route-specific - #: plugin configuration and meta-data. - self.config = ConfigDict().load_dict(config) - - def __call__(self, *a, **ka): - depr("Some APIs changed to return Route() instances instead of"\ - " callables. Make sure to use the Route.call method and not to"\ - " call Route instances directly.") - return self.call(*a, **ka) - - @cached_property - def call(self): - ''' The route callback with all plugins applied. This property is - created on demand and then cached to speed up subsequent requests.''' - return self._make_callback() - - def reset(self): - ''' Forget any cached values. The next time :attr:`call` is accessed, - all plugins are re-applied. ''' - self.__dict__.pop('call', None) - - def prepare(self): - ''' Do all on-demand work immediately (useful for debugging).''' - self.call - - @property - def _context(self): - depr('Switch to Plugin API v2 and access the Route object directly.') - return dict(rule=self.rule, method=self.method, callback=self.callback, - name=self.name, app=self.app, config=self.config, - apply=self.plugins, skip=self.skiplist) - - def all_plugins(self): - ''' Yield all Plugins affecting this route. ''' - unique = set() - for p in reversed(self.app.plugins + self.plugins): - if True in self.skiplist: break - name = getattr(p, 'name', False) - if name and (name in self.skiplist or name in unique): continue - if p in self.skiplist or type(p) in self.skiplist: continue - if name: unique.add(name) - yield p - - def _make_callback(self): - callback = self.callback - for plugin in self.all_plugins(): - try: - if hasattr(plugin, 'apply'): - api = getattr(plugin, 'api', 1) - context = self if api > 1 else self._context - callback = plugin.apply(callback, context) - else: - callback = plugin(callback) - except RouteReset: # Try again with changed configuration. - return self._make_callback() - if not callback is self.callback: - update_wrapper(callback, self.callback) - return callback - - def get_undecorated_callback(self): - ''' Return the callback. If the callback is a decorated function, try to - recover the original function. ''' - func = self.callback - func = getattr(func, '__func__' if py3k else 'im_func', func) - closure_attr = '__closure__' if py3k else 'func_closure' - while hasattr(func, closure_attr) and getattr(func, closure_attr): - func = getattr(func, closure_attr)[0].cell_contents - return func - - def get_callback_args(self): - ''' Return a list of argument names the callback (most likely) accepts - as keyword arguments. If the callback is a decorated function, try - to recover the original function before inspection. ''' - return getargspec(self.get_undecorated_callback())[0] - - def get_config(key, default=None): - ''' Lookup a config field and return its value, first checking the - route.config, then route.app.config.''' - for conf in (self.config, self.app.conifg): - if key in conf: return conf[key] - return default - - def __repr__(self): - cb = self.get_undecorated_callback() - return '<%s %r %r>' % (self.method, self.rule, cb) - - - - - - -############################################################################### -# Application Object ########################################################### -############################################################################### - - -class Bottle(object): - """ Each Bottle object represents a single, distinct web application and - consists of routes, callbacks, plugins, resources and configuration. - Instances are callable WSGI applications. - - :param catchall: If true (default), handle all exceptions. Turn off to - let debugging middleware handle exceptions. - """ - - def __init__(self, catchall=True, autojson=True): - - #: A :class:`ConfigDict` for app specific configuration. - self.config = ConfigDict() - self.config._on_change = functools.partial(self.trigger_hook, 'config') - self.config.meta_set('autojson', 'validate', bool) - self.config.meta_set('catchall', 'validate', bool) - self.config['catchall'] = catchall - self.config['autojson'] = autojson - - #: A :class:`ResourceManager` for application files - self.resources = ResourceManager() - - self.routes = [] # List of installed :class:`Route` instances. - self.router = Router() # Maps requests to :class:`Route` instances. - self.error_handler = {} - - # Core plugins - self.plugins = [] # List of installed plugins. - if self.config['autojson']: - self.install(JSONPlugin()) - self.install(TemplatePlugin()) - - #: If true, most exceptions are caught and returned as :exc:`HTTPError` - catchall = DictProperty('config', 'catchall') - - __hook_names = 'before_request', 'after_request', 'app_reset', 'config' - __hook_reversed = 'after_request' - - @cached_property - def _hooks(self): - return dict((name, []) for name in self.__hook_names) - - def add_hook(self, name, func): - ''' Attach a callback to a hook. Three hooks are currently implemented: - - before_request - Executed once before each request. The request context is - available, but no routing has happened yet. - after_request - Executed once after each request regardless of its outcome. - app_reset - Called whenever :meth:`Bottle.reset` is called. - ''' - if name in self.__hook_reversed: - self._hooks[name].insert(0, func) - else: - self._hooks[name].append(func) - - def remove_hook(self, name, func): - ''' Remove a callback from a hook. ''' - if name in self._hooks and func in self._hooks[name]: - self._hooks[name].remove(func) - return True - - def trigger_hook(self, __name, *args, **kwargs): - ''' Trigger a hook and return a list of results. ''' - return [hook(*args, **kwargs) for hook in self._hooks[__name][:]] - - def hook(self, name): - """ Return a decorator that attaches a callback to a hook. See - :meth:`add_hook` for details.""" - def decorator(func): - self.add_hook(name, func) - return func - return decorator - - def mount(self, prefix, app, **options): - ''' Mount an application (:class:`Bottle` or plain WSGI) to a specific - URL prefix. Example:: - - root_app.mount('/admin/', admin_app) - - :param prefix: path prefix or `mount-point`. If it ends in a slash, - that slash is mandatory. - :param app: an instance of :class:`Bottle` or a WSGI application. - - All other parameters are passed to the underlying :meth:`route` call. - ''' - if isinstance(app, basestring): - depr('Parameter order of Bottle.mount() changed.', True) # 0.10 - - segments = [p for p in prefix.split('/') if p] - if not segments: raise ValueError('Empty path prefix.') - path_depth = len(segments) - - def mountpoint_wrapper(): - try: - request.path_shift(path_depth) - rs = HTTPResponse([]) - def start_response(status, headerlist, exc_info=None): - if exc_info: - try: - _raise(*exc_info) - finally: - exc_info = None - rs.status = status - for name, value in headerlist: rs.add_header(name, value) - return rs.body.append - body = app(request.environ, start_response) - if body and rs.body: body = itertools.chain(rs.body, body) - rs.body = body or rs.body - return rs - finally: - request.path_shift(-path_depth) - - options.setdefault('skip', True) - options.setdefault('method', 'ANY') - options.setdefault('mountpoint', {'prefix': prefix, 'target': app}) - options['callback'] = mountpoint_wrapper - - self.route('/%s/<:re:.*>' % '/'.join(segments), **options) - if not prefix.endswith('/'): - self.route('/' + '/'.join(segments), **options) - - def merge(self, routes): - ''' Merge the routes of another :class:`Bottle` application or a list of - :class:`Route` objects into this application. The routes keep their - 'owner', meaning that the :data:`Route.app` attribute is not - changed. ''' - if isinstance(routes, Bottle): - routes = routes.routes - for route in routes: - self.add_route(route) - - def install(self, plugin): - ''' Add a plugin to the list of plugins and prepare it for being - applied to all routes of this application. A plugin may be a simple - decorator or an object that implements the :class:`Plugin` API. - ''' - if hasattr(plugin, 'setup'): plugin.setup(self) - if not callable(plugin) and not hasattr(plugin, 'apply'): - raise TypeError("Plugins must be callable or implement .apply()") - self.plugins.append(plugin) - self.reset() - return plugin - - def uninstall(self, plugin): - ''' Uninstall plugins. Pass an instance to remove a specific plugin, a type - object to remove all plugins that match that type, a string to remove - all plugins with a matching ``name`` attribute or ``True`` to remove all - plugins. Return the list of removed plugins. ''' - removed, remove = [], plugin - for i, plugin in list(enumerate(self.plugins))[::-1]: - if remove is True or remove is plugin or remove is type(plugin) \ - or getattr(plugin, 'name', True) == remove: - removed.append(plugin) - del self.plugins[i] - if hasattr(plugin, 'close'): plugin.close() - if removed: self.reset() - return removed - - def reset(self, route=None): - ''' Reset all routes (force plugins to be re-applied) and clear all - caches. If an ID or route object is given, only that specific route - is affected. ''' - if route is None: routes = self.routes - elif isinstance(route, Route): routes = [route] - else: routes = [self.routes[route]] - for route in routes: route.reset() - if DEBUG: - for route in routes: route.prepare() - self.trigger_hook('app_reset') - - def close(self): - ''' Close the application and all installed plugins. ''' - for plugin in self.plugins: - if hasattr(plugin, 'close'): plugin.close() - self.stopped = True - - def run(self, **kwargs): - ''' Calls :func:`run` with the same parameters. ''' - run(self, **kwargs) - - def match(self, environ): - """ Search for a matching route and return a (:class:`Route` , urlargs) - tuple. The second value is a dictionary with parameters extracted - from the URL. Raise :exc:`HTTPError` (404/405) on a non-match.""" - return self.router.match(environ) - - def get_url(self, routename, **kargs): - """ Return a string that matches a named route """ - scriptname = request.environ.get('SCRIPT_NAME', '').strip('/') + '/' - location = self.router.build(routename, **kargs).lstrip('/') - return urljoin(urljoin('/', scriptname), location) - - def add_route(self, route): - ''' Add a route object, but do not change the :data:`Route.app` - attribute.''' - self.routes.append(route) - self.router.add(route.rule, route.method, route, name=route.name) - if DEBUG: route.prepare() - - def route(self, path=None, method='GET', callback=None, name=None, - apply=None, skip=None, **config): - """ A decorator to bind a function to a request URL. Example:: - - @app.route('/hello/:name') - def hello(name): - return 'Hello %s' % name - - The ``:name`` part is a wildcard. See :class:`Router` for syntax - details. - - :param path: Request path or a list of paths to listen to. If no - path is specified, it is automatically generated from the - signature of the function. - :param method: HTTP method (`GET`, `POST`, `PUT`, ...) or a list of - methods to listen to. (default: `GET`) - :param callback: An optional shortcut to avoid the decorator - syntax. ``route(..., callback=func)`` equals ``route(...)(func)`` - :param name: The name for this route. (default: None) - :param apply: A decorator or plugin or a list of plugins. These are - applied to the route callback in addition to installed plugins. - :param skip: A list of plugins, plugin classes or names. Matching - plugins are not installed to this route. ``True`` skips all. - - Any additional keyword arguments are stored as route-specific - configuration and passed to plugins (see :meth:`Plugin.apply`). - """ - if callable(path): path, callback = None, path - plugins = makelist(apply) - skiplist = makelist(skip) - def decorator(callback): - # TODO: Documentation and tests - if isinstance(callback, basestring): callback = load(callback) - for rule in makelist(path) or yieldroutes(callback): - for verb in makelist(method): - verb = verb.upper() - route = Route(self, rule, verb, callback, name=name, - plugins=plugins, skiplist=skiplist, **config) - self.add_route(route) - return callback - return decorator(callback) if callback else decorator - - def get(self, path=None, method='GET', **options): - """ Equals :meth:`route`. """ - return self.route(path, method, **options) - - def post(self, path=None, method='POST', **options): - """ Equals :meth:`route` with a ``POST`` method parameter. """ - return self.route(path, method, **options) - - def put(self, path=None, method='PUT', **options): - """ Equals :meth:`route` with a ``PUT`` method parameter. """ - return self.route(path, method, **options) - - def delete(self, path=None, method='DELETE', **options): - """ Equals :meth:`route` with a ``DELETE`` method parameter. """ - return self.route(path, method, **options) - - def error(self, code=500): - """ Decorator: Register an output handler for a HTTP error code""" - def wrapper(handler): - self.error_handler[int(code)] = handler - return handler - return wrapper - - def handle(self, path, method='GET'): - """ (deprecated) Execute the first matching route callback and return - the result. :exc:`HTTPResponse` exceptions are caught and returned. - If :attr:`Bottle.catchall` is true, other exceptions are caught as - well and returned as :exc:`HTTPError` instances (500). - """ - depr("This method will change semantics in 0.10. Try to avoid it.") - if isinstance(path, dict): - return self._handle(path) - return self._handle({'PATH_INFO': path, 'REQUEST_METHOD': method.upper()}) - - def default_error_handler(self, res): - return tob(template(ERROR_PAGE_TEMPLATE, e=res)) - - def _handle(self, environ): - try: - environ['bottle.app'] = self - request.bind(environ) - response.bind() - - try: - self.trigger_hook('before_request') - route, args = self.router.match(environ) - environ['route.handle'] = route - environ['bottle.route'] = route - environ['route.url_args'] = args - return route.call(**args) - finally: - self.trigger_hook('after_request') - - except HTTPResponse: - return _e() - except RouteReset: - route.reset() - return self._handle(environ) - except (KeyboardInterrupt, SystemExit, MemoryError): - raise - except Exception: - if not self.catchall: raise - stacktrace = format_exc() - environ['wsgi.errors'].write(stacktrace) - return HTTPError(500, "Internal Server Error", _e(), stacktrace) - - def _cast(self, out, peek=None): - """ Try to convert the parameter into something WSGI compatible and set - correct HTTP headers when possible. - Support: False, str, unicode, dict, HTTPResponse, HTTPError, file-like, - iterable of strings and iterable of unicodes - """ - - # Empty output is done here - if not out: - if 'Content-Length' not in response: - response['Content-Length'] = 0 - return [] - # Join lists of byte or unicode strings. Mixed lists are NOT supported - if isinstance(out, (tuple, list))\ - and isinstance(out[0], (bytes, unicode)): - out = out[0][0:0].join(out) # b'abc'[0:0] -> b'' - # Encode unicode strings - if isinstance(out, unicode): - out = out.encode(response.charset) - # Byte Strings are just returned - if isinstance(out, bytes): - if 'Content-Length' not in response: - response['Content-Length'] = len(out) - return [out] - # HTTPError or HTTPException (recursive, because they may wrap anything) - # TODO: Handle these explicitly in handle() or make them iterable. - if isinstance(out, HTTPError): - out.apply(response) - out = self.error_handler.get(out.status_code, self.default_error_handler)(out) - return self._cast(out) - if isinstance(out, HTTPResponse): - out.apply(response) - return self._cast(out.body) - - # File-like objects. - if hasattr(out, 'read'): - if 'wsgi.file_wrapper' in request.environ: - return request.environ['wsgi.file_wrapper'](out) - elif hasattr(out, 'close') or not hasattr(out, '__iter__'): - return WSGIFileWrapper(out) - - # Handle Iterables. We peek into them to detect their inner type. - try: - iout = iter(out) - first = next(iout) - while not first: - first = next(iout) - except StopIteration: - return self._cast('') - except HTTPResponse: - first = _e() - except (KeyboardInterrupt, SystemExit, MemoryError): - raise - except Exception: - if not self.catchall: raise - first = HTTPError(500, 'Unhandled exception', _e(), format_exc()) - - # These are the inner types allowed in iterator or generator objects. - if isinstance(first, HTTPResponse): - return self._cast(first) - elif isinstance(first, bytes): - new_iter = itertools.chain([first], iout) - elif isinstance(first, unicode): - encoder = lambda x: x.encode(response.charset) - new_iter = imap(encoder, itertools.chain([first], iout)) - else: - msg = 'Unsupported response type: %s' % type(first) - return self._cast(HTTPError(500, msg)) - if hasattr(out, 'close'): - new_iter = _closeiter(new_iter, out.close) - return new_iter - - def wsgi(self, environ, start_response): - """ The bottle WSGI-interface. """ - try: - out = self._cast(self._handle(environ)) - # rfc2616 section 4.3 - if response._status_code in (100, 101, 204, 304)\ - or environ['REQUEST_METHOD'] == 'HEAD': - if hasattr(out, 'close'): out.close() - out = [] - start_response(response._status_line, response.headerlist) - return out - except (KeyboardInterrupt, SystemExit, MemoryError): - raise - except Exception: - if not self.catchall: raise - err = '

Critical error while processing request: %s

' \ - % html_escape(environ.get('PATH_INFO', '/')) - if DEBUG: - err += '

Error:

\n
\n%s\n
\n' \ - '

Traceback:

\n
\n%s\n
\n' \ - % (html_escape(repr(_e())), html_escape(format_exc())) - environ['wsgi.errors'].write(err) - headers = [('Content-Type', 'text/html; charset=UTF-8')] - start_response('500 INTERNAL SERVER ERROR', headers, sys.exc_info()) - return [tob(err)] - - def __call__(self, environ, start_response): - ''' Each instance of :class:'Bottle' is a WSGI application. ''' - return self.wsgi(environ, start_response) - - - - - - -############################################################################### -# HTTP and WSGI Tools ########################################################## -############################################################################### - -class BaseRequest(object): - """ A wrapper for WSGI environment dictionaries that adds a lot of - convenient access methods and properties. Most of them are read-only. - - Adding new attributes to a request actually adds them to the environ - dictionary (as 'bottle.request.ext.'). This is the recommended - way to store and access request-specific data. - """ - - __slots__ = ('environ') - - #: Maximum size of memory buffer for :attr:`body` in bytes. - MEMFILE_MAX = 102400 - #: Maximum number pr GET or POST parameters per request - MAX_PARAMS = 100 - - def __init__(self, environ=None): - """ Wrap a WSGI environ dictionary. """ - #: The wrapped WSGI environ dictionary. This is the only real attribute. - #: All other attributes actually are read-only properties. - self.environ = {} if environ is None else environ - self.environ['bottle.request'] = self - - @DictProperty('environ', 'bottle.app', read_only=True) - def app(self): - ''' Bottle application handling this request. ''' - raise RuntimeError('This request is not connected to an application.') - - @DictProperty('environ', 'bottle.route', read_only=True) - def route(self): - """ The bottle :class:`Route` object that matches this request. """ - raise RuntimeError('This request is not connected to a route.') - - @DictProperty('environ', 'route.url_args', read_only=True) - def url_args(self): - """ The arguments extracted from the URL. """ - raise RuntimeError('This request is not connected to a route.') - - @property - def path(self): - ''' The value of ``PATH_INFO`` with exactly one prefixed slash (to fix - broken clients and avoid the "empty path" edge case). ''' - return '/' + self.environ.get('PATH_INFO','').lstrip('/') - - @property - def method(self): - ''' The ``REQUEST_METHOD`` value as an uppercase string. ''' - return self.environ.get('REQUEST_METHOD', 'GET').upper() - - @DictProperty('environ', 'bottle.request.headers', read_only=True) - def headers(self): - ''' A :class:`WSGIHeaderDict` that provides case-insensitive access to - HTTP request headers. ''' - return WSGIHeaderDict(self.environ) - - def get_header(self, name, default=None): - ''' Return the value of a request header, or a given default value. ''' - return self.headers.get(name, default) - - @DictProperty('environ', 'bottle.request.cookies', read_only=True) - def cookies(self): - """ Cookies parsed into a :class:`FormsDict`. Signed cookies are NOT - decoded. Use :meth:`get_cookie` if you expect signed cookies. """ - cookies = SimpleCookie(self.environ.get('HTTP_COOKIE','')).values() - if len(cookies) > self.MAX_PARAMS: - raise HTTPError(413, 'Too many cookies') - return FormsDict((c.key, c.value) for c in cookies) - - def get_cookie(self, key, default=None, secret=None): - """ Return the content of a cookie. To read a `Signed Cookie`, the - `secret` must match the one used to create the cookie (see - :meth:`BaseResponse.set_cookie`). If anything goes wrong (missing - cookie or wrong signature), return a default value. """ - value = self.cookies.get(key) - if secret and value: - dec = cookie_decode(value, secret) # (key, value) tuple or None - return dec[1] if dec and dec[0] == key else default - return value or default - - @DictProperty('environ', 'bottle.request.query', read_only=True) - def query(self): - ''' The :attr:`query_string` parsed into a :class:`FormsDict`. These - values are sometimes called "URL arguments" or "GET parameters", but - not to be confused with "URL wildcards" as they are provided by the - :class:`Router`. ''' - get = self.environ['bottle.get'] = FormsDict() - pairs = _parse_qsl(self.environ.get('QUERY_STRING', '')) - if len(pairs) > self.MAX_PARAMS: - raise HTTPError(413, 'Too many parameters') - for key, value in pairs: - get[key] = value - return get - - @DictProperty('environ', 'bottle.request.forms', read_only=True) - def forms(self): - """ Form values parsed from an `url-encoded` or `multipart/form-data` - encoded POST or PUT request body. The result is returned as a - :class:`FormsDict`. All keys and values are strings. File uploads - are stored separately in :attr:`files`. """ - forms = FormsDict() - for name, item in self.POST.allitems(): - if not isinstance(item, FileUpload): - forms[name] = item - return forms - - @DictProperty('environ', 'bottle.request.params', read_only=True) - def params(self): - """ A :class:`FormsDict` with the combined values of :attr:`query` and - :attr:`forms`. File uploads are stored in :attr:`files`. """ - params = FormsDict() - for key, value in self.query.allitems(): - params[key] = value - for key, value in self.forms.allitems(): - params[key] = value - return params - - @DictProperty('environ', 'bottle.request.files', read_only=True) - def files(self): - """ File uploads parsed from `multipart/form-data` encoded POST or PUT - request body. The values are instances of :class:`FileUpload`. - - """ - files = FormsDict() - for name, item in self.POST.allitems(): - if isinstance(item, FileUpload): - files[name] = item - return files - - @DictProperty('environ', 'bottle.request.json', read_only=True) - def json(self): - ''' If the ``Content-Type`` header is ``application/json``, this - property holds the parsed content of the request body. Only requests - smaller than :attr:`MEMFILE_MAX` are processed to avoid memory - exhaustion. ''' - if 'application/json' in self.environ.get('CONTENT_TYPE', ''): - return json_loads(self._get_body_string()) - return None - - @DictProperty('environ', 'bottle.request.body', read_only=True) - def _body(self): - maxread = max(0, self.content_length) - stream = self.environ['wsgi.input'] - body = BytesIO() if maxread < self.MEMFILE_MAX else TemporaryFile(mode='w+b') - while maxread > 0: - part = stream.read(min(maxread, self.MEMFILE_MAX)) - if not part: break - body.write(part) - maxread -= len(part) - self.environ['wsgi.input'] = body - body.seek(0) - return body - - def _get_body_string(self): - ''' read body until content-length or MEMFILE_MAX into a string. Raise - HTTPError(413) on requests that are to large. ''' - clen = self.content_length - if clen > self.MEMFILE_MAX: - raise HTTPError(413, 'Request to large') - if clen < 0: clen = self.MEMFILE_MAX + 1 - data = self.body.read(clen) - if len(data) > self.MEMFILE_MAX: # Fail fast - raise HTTPError(413, 'Request to large') - return data - - @property - def body(self): - """ The HTTP request body as a seek-able file-like object. Depending on - :attr:`MEMFILE_MAX`, this is either a temporary file or a - :class:`io.BytesIO` instance. Accessing this property for the first - time reads and replaces the ``wsgi.input`` environ variable. - Subsequent accesses just do a `seek(0)` on the file object. """ - self._body.seek(0) - return self._body - - #: An alias for :attr:`query`. - GET = query - - @DictProperty('environ', 'bottle.request.post', read_only=True) - def POST(self): - """ The values of :attr:`forms` and :attr:`files` combined into a single - :class:`FormsDict`. Values are either strings (form values) or - instances of :class:`cgi.FieldStorage` (file uploads). - """ - post = FormsDict() - # We default to application/x-www-form-urlencoded for everything that - # is not multipart and take the fast path (also: 3.1 workaround) - if not self.content_type.startswith('multipart/'): - pairs = _parse_qsl(tonat(self._get_body_string(), 'latin1')) - if len(pairs) > self.MAX_PARAMS: - raise HTTPError(413, 'Too many parameters') - for key, value in pairs: - post[key] = value - return post - - safe_env = {'QUERY_STRING':''} # Build a safe environment for cgi - for key in ('REQUEST_METHOD', 'CONTENT_TYPE', 'CONTENT_LENGTH'): - if key in self.environ: safe_env[key] = self.environ[key] - args = dict(fp=self.body, environ=safe_env, keep_blank_values=True) - if py31: - args['fp'] = NCTextIOWrapper(args['fp'], encoding='latin1', - newline='\n') - elif py3k: - args['encoding'] = 'latin1' - data = cgi.FieldStorage(**args) - data = data.list or [] - if len(data) > self.MAX_PARAMS: - raise HTTPError(413, 'Too many parameters') - for item in data: - if item.filename: - post[item.name] = FileUpload(item.file, item.name, - item.filename, item.headers) - else: - post[item.name] = item.value - return post - - @property - def COOKIES(self): - ''' Alias for :attr:`cookies` (deprecated). ''' - depr('BaseRequest.COOKIES was renamed to BaseRequest.cookies (lowercase).') - return self.cookies - - @property - def url(self): - """ The full request URI including hostname and scheme. If your app - lives behind a reverse proxy or load balancer and you get confusing - results, make sure that the ``X-Forwarded-Host`` header is set - correctly. """ - return self.urlparts.geturl() - - @DictProperty('environ', 'bottle.request.urlparts', read_only=True) - def urlparts(self): - ''' The :attr:`url` string as an :class:`urlparse.SplitResult` tuple. - The tuple contains (scheme, host, path, query_string and fragment), - but the fragment is always empty because it is not visible to the - server. ''' - env = self.environ - http = env.get('HTTP_X_FORWARDED_PROTO') or env.get('wsgi.url_scheme', 'http') - host = env.get('HTTP_X_FORWARDED_HOST') or env.get('HTTP_HOST') - if not host: - # HTTP 1.1 requires a Host-header. This is for HTTP/1.0 clients. - host = env.get('SERVER_NAME', '127.0.0.1') - port = env.get('SERVER_PORT') - if port and port != ('80' if http == 'http' else '443'): - host += ':' + port - path = urlquote(self.fullpath) - return UrlSplitResult(http, host, path, env.get('QUERY_STRING'), '') - - @property - def fullpath(self): - """ Request path including :attr:`script_name` (if present). """ - return urljoin(self.script_name, self.path.lstrip('/')) - - @property - def query_string(self): - """ The raw :attr:`query` part of the URL (everything in between ``?`` - and ``#``) as a string. """ - return self.environ.get('QUERY_STRING', '') - - @property - def script_name(self): - ''' The initial portion of the URL's `path` that was removed by a higher - level (server or routing middleware) before the application was - called. This script path is returned with leading and tailing - slashes. ''' - script_name = self.environ.get('SCRIPT_NAME', '').strip('/') - return '/' + script_name + '/' if script_name else '/' - - def path_shift(self, shift=1): - ''' Shift path segments from :attr:`path` to :attr:`script_name` and - vice versa. - - :param shift: The number of path segments to shift. May be negative - to change the shift direction. (default: 1) - ''' - script = self.environ.get('SCRIPT_NAME','/') - self['SCRIPT_NAME'], self['PATH_INFO'] = path_shift(script, self.path, shift) - - @property - def content_length(self): - ''' The request body length as an integer. The client is responsible to - set this header. Otherwise, the real length of the body is unknown - and -1 is returned. In this case, :attr:`body` will be empty. ''' - return int(self.environ.get('CONTENT_LENGTH') or -1) - - @property - def content_type(self): - ''' The Content-Type header as a lowercase-string (default: empty). ''' - return self.environ.get('CONTENT_TYPE', '').lower() - - @property - def is_xhr(self): - ''' True if the request was triggered by a XMLHttpRequest. This only - works with JavaScript libraries that support the `X-Requested-With` - header (most of the popular libraries do). ''' - requested_with = self.environ.get('HTTP_X_REQUESTED_WITH','') - return requested_with.lower() == 'xmlhttprequest' - - @property - def is_ajax(self): - ''' Alias for :attr:`is_xhr`. "Ajax" is not the right term. ''' - return self.is_xhr - - @property - def auth(self): - """ HTTP authentication data as a (user, password) tuple. This - implementation currently supports basic (not digest) authentication - only. If the authentication happened at a higher level (e.g. in the - front web-server or a middleware), the password field is None, but - the user field is looked up from the ``REMOTE_USER`` environ - variable. On any errors, None is returned. """ - basic = parse_auth(self.environ.get('HTTP_AUTHORIZATION','')) - if basic: return basic - ruser = self.environ.get('REMOTE_USER') - if ruser: return (ruser, None) - return None - - @property - def remote_route(self): - """ A list of all IPs that were involved in this request, starting with - the client IP and followed by zero or more proxies. This does only - work if all proxies support the ```X-Forwarded-For`` header. Note - that this information can be forged by malicious clients. """ - proxy = self.environ.get('HTTP_X_FORWARDED_FOR') - if proxy: return [ip.strip() for ip in proxy.split(',')] - remote = self.environ.get('REMOTE_ADDR') - return [remote] if remote else [] - - @property - def remote_addr(self): - """ The client IP as a string. Note that this information can be forged - by malicious clients. """ - route = self.remote_route - return route[0] if route else None - - def copy(self): - """ Return a new :class:`Request` with a shallow :attr:`environ` copy. """ - return Request(self.environ.copy()) - - def get(self, value, default=None): return self.environ.get(value, default) - def __getitem__(self, key): return self.environ[key] - def __delitem__(self, key): self[key] = ""; del(self.environ[key]) - def __iter__(self): return iter(self.environ) - def __len__(self): return len(self.environ) - def keys(self): return self.environ.keys() - def __setitem__(self, key, value): - """ Change an environ value and clear all caches that depend on it. """ - - if self.environ.get('bottle.request.readonly'): - raise KeyError('The environ dictionary is read-only.') - - self.environ[key] = value - todelete = () - - if key == 'wsgi.input': - todelete = ('body', 'forms', 'files', 'params', 'post', 'json') - elif key == 'QUERY_STRING': - todelete = ('query', 'params') - elif key.startswith('HTTP_'): - todelete = ('headers', 'cookies') - - for key in todelete: - self.environ.pop('bottle.request.'+key, None) - - def __repr__(self): - return '<%s: %s %s>' % (self.__class__.__name__, self.method, self.url) - - def __getattr__(self, name): - ''' Search in self.environ for additional user defined attributes. ''' - try: - var = self.environ['bottle.request.ext.%s'%name] - return var.__get__(self) if hasattr(var, '__get__') else var - except KeyError: - raise AttributeError('Attribute %r not defined.' % name) - - def __setattr__(self, name, value): - if name == 'environ': return object.__setattr__(self, name, value) - self.environ['bottle.request.ext.%s'%name] = value - - - - -def _hkey(s): - return s.title().replace('_','-') - - -class HeaderProperty(object): - def __init__(self, name, reader=None, writer=str, default=''): - self.name, self.default = name, default - self.reader, self.writer = reader, writer - self.__doc__ = 'Current value of the %r header.' % name.title() - - def __get__(self, obj, cls): - if obj is None: return self - value = obj.headers.get(self.name, self.default) - return self.reader(value) if self.reader else value - - def __set__(self, obj, value): - obj.headers[self.name] = self.writer(value) - - def __delete__(self, obj): - del obj.headers[self.name] - - -class BaseResponse(object): - """ Storage class for a response body as well as headers and cookies. - - This class does support dict-like case-insensitive item-access to - headers, but is NOT a dict. Most notably, iterating over a response - yields parts of the body and not the headers. - - :param body: The response body as one of the supported types. - :param status: Either an HTTP status code (e.g. 200) or a status line - including the reason phrase (e.g. '200 OK'). - :param headers: A dictionary or a list of name-value pairs. - - Additional keyword arguments are added to the list of headers. - Underscores in the header name are replaced with dashes. - """ - - default_status = 200 - default_content_type = 'text/html; charset=UTF-8' - - # Header blacklist for specific response codes - # (rfc2616 section 10.2.3 and 10.3.5) - bad_headers = { - 204: set(('Content-Type',)), - 304: set(('Allow', 'Content-Encoding', 'Content-Language', - 'Content-Length', 'Content-Range', 'Content-Type', - 'Content-Md5', 'Last-Modified'))} - - def __init__(self, body='', status=None, headers=None, **more_headers): - self._cookies = None - self._headers = {} - self.body = body - self.status = status or self.default_status - if headers: - if isinstance(headers, dict): - headers = headers.items() - for name, value in headers: - self.add_header(name, value) - if more_headers: - for name, value in more_headers.items(): - self.add_header(name, value) - - def copy(self, cls=None): - ''' Returns a copy of self. ''' - cls = cls or BaseResponse - assert issubclass(cls, BaseResponse) - copy = cls() - copy.status = self.status - copy._headers = dict((k, v[:]) for (k, v) in self._headers.items()) - copy.COOKIES.load(self.COOKIES.output()) - return copy - - def __iter__(self): - return iter(self.body) - - def close(self): - if hasattr(self.body, 'close'): - self.body.close() - - @property - def status_line(self): - ''' The HTTP status line as a string (e.g. ``404 Not Found``).''' - return self._status_line - - @property - def status_code(self): - ''' The HTTP status code as an integer (e.g. 404).''' - return self._status_code - - def _set_status(self, status): - if isinstance(status, int): - code, status = status, _HTTP_STATUS_LINES.get(status) - elif ' ' in status: - status = status.strip() - code = int(status.split()[0]) - else: - raise ValueError('String status line without a reason phrase.') - if not 100 <= code <= 999: raise ValueError('Status code out of range.') - self._status_code = code - self._status_line = str(status or ('%d Unknown' % code)) - - def _get_status(self): - return self._status_line - - status = property(_get_status, _set_status, None, - ''' A writeable property to change the HTTP response status. It accepts - either a numeric code (100-999) or a string with a custom reason - phrase (e.g. "404 Brain not found"). Both :data:`status_line` and - :data:`status_code` are updated accordingly. The return value is - always a status string. ''') - del _get_status, _set_status - - @property - def headers(self): - ''' An instance of :class:`HeaderDict`, a case-insensitive dict-like - view on the response headers. ''' - hdict = HeaderDict() - hdict.dict = self._headers - return hdict - - def __contains__(self, name): return _hkey(name) in self._headers - def __delitem__(self, name): del self._headers[_hkey(name)] - def __getitem__(self, name): return self._headers[_hkey(name)][-1] - def __setitem__(self, name, value): self._headers[_hkey(name)] = [str(value)] - - def get_header(self, name, default=None): - ''' Return the value of a previously defined header. If there is no - header with that name, return a default value. ''' - return self._headers.get(_hkey(name), [default])[-1] - - def set_header(self, name, value): - ''' Create a new response header, replacing any previously defined - headers with the same name. ''' - self._headers[_hkey(name)] = [str(value)] - - def add_header(self, name, value): - ''' Add an additional response header, not removing duplicates. ''' - self._headers.setdefault(_hkey(name), []).append(str(value)) - - def iter_headers(self): - ''' Yield (header, value) tuples, skipping headers that are not - allowed with the current response status code. ''' - return self.headerlist - - def wsgiheader(self): - depr('The wsgiheader method is deprecated. See headerlist.') #0.10 - return self.headerlist - - @property - def headerlist(self): - ''' WSGI conform list of (header, value) tuples. ''' - out = [] - headers = list(self._headers.items()) - if 'Content-Type' not in self._headers: - headers.append(('Content-Type', [self.default_content_type])) - if self._status_code in self.bad_headers: - bad_headers = self.bad_headers[self._status_code] - headers = [h for h in headers if h[0] not in bad_headers] - out += [(name, val) for name, vals in headers for val in vals] - if self._cookies: - for c in self._cookies.values(): - out.append(('Set-Cookie', c.OutputString())) - return out - - content_type = HeaderProperty('Content-Type') - content_length = HeaderProperty('Content-Length', reader=int) - expires = HeaderProperty('Expires', - reader=lambda x: datetime.utcfromtimestamp(parse_date(x)), - writer=lambda x: http_date(x)) - - @property - def charset(self, default='UTF-8'): - """ Return the charset specified in the content-type header (default: utf8). """ - if 'charset=' in self.content_type: - return self.content_type.split('charset=')[-1].split(';')[0].strip() - return default - - @property - def COOKIES(self): - """ A dict-like SimpleCookie instance. This should not be used directly. - See :meth:`set_cookie`. """ - depr('The COOKIES dict is deprecated. Use `set_cookie()` instead.') # 0.10 - if not self._cookies: - self._cookies = SimpleCookie() - return self._cookies - - def set_cookie(self, name, value, secret=None, **options): - ''' Create a new cookie or replace an old one. If the `secret` parameter is - set, create a `Signed Cookie` (described below). - - :param name: the name of the cookie. - :param value: the value of the cookie. - :param secret: a signature key required for signed cookies. - - Additionally, this method accepts all RFC 2109 attributes that are - supported by :class:`cookie.Morsel`, including: - - :param max_age: maximum age in seconds. (default: None) - :param expires: a datetime object or UNIX timestamp. (default: None) - :param domain: the domain that is allowed to read the cookie. - (default: current domain) - :param path: limits the cookie to a given path (default: current path) - :param secure: limit the cookie to HTTPS connections (default: off). - :param httponly: prevents client-side javascript to read this cookie - (default: off, requires Python 2.6 or newer). - - If neither `expires` nor `max_age` is set (default), the cookie will - expire at the end of the browser session (as soon as the browser - window is closed). - - Signed cookies may store any pickle-able object and are - cryptographically signed to prevent manipulation. Keep in mind that - cookies are limited to 4kb in most browsers. - - Warning: Signed cookies are not encrypted (the client can still see - the content) and not copy-protected (the client can restore an old - cookie). The main intention is to make pickling and unpickling - save, not to store secret information at client side. - ''' - if not self._cookies: - self._cookies = SimpleCookie() - - if secret: - value = touni(cookie_encode((name, value), secret)) - elif not isinstance(value, basestring): - raise TypeError('Secret key missing for non-string Cookie.') - - if len(value) > 4096: raise ValueError('Cookie value to long.') - self._cookies[name] = value - - for key, value in options.items(): - if key == 'max_age': - if isinstance(value, timedelta): - value = value.seconds + value.days * 24 * 3600 - if key == 'expires': - if isinstance(value, (datedate, datetime)): - value = value.timetuple() - elif isinstance(value, (int, float)): - value = time.gmtime(value) - value = time.strftime("%a, %d %b %Y %H:%M:%S GMT", value) - self._cookies[name][key.replace('_', '-')] = value - - def delete_cookie(self, key, **kwargs): - ''' Delete a cookie. Be sure to use the same `domain` and `path` - settings as used to create the cookie. ''' - kwargs['max_age'] = -1 - kwargs['expires'] = 0 - self.set_cookie(key, '', **kwargs) - - def __repr__(self): - out = '' - for name, value in self.headerlist: - out += '%s: %s\n' % (name.title(), value.strip()) - return out - -#: Thread-local storage for :class:`LocalRequest` and :class:`LocalResponse` -#: attributes. -_lctx = threading.local() - -def local_property(name): - def fget(self): - try: - return getattr(_lctx, name) - except AttributeError: - raise RuntimeError("Request context not initialized.") - def fset(self, value): setattr(_lctx, name, value) - def fdel(self): delattr(_lctx, name) - return property(fget, fset, fdel, - 'Thread-local property stored in :data:`_lctx.%s`' % name) - - -class LocalRequest(BaseRequest): - ''' A thread-local subclass of :class:`BaseRequest` with a different - set of attribues for each thread. There is usually only one global - instance of this class (:data:`request`). If accessed during a - request/response cycle, this instance always refers to the *current* - request (even on a multithreaded server). ''' - bind = BaseRequest.__init__ - environ = local_property('request_environ') - - -class LocalResponse(BaseResponse): - ''' A thread-local subclass of :class:`BaseResponse` with a different - set of attribues for each thread. There is usually only one global - instance of this class (:data:`response`). Its attributes are used - to build the HTTP response at the end of the request/response cycle. - ''' - bind = BaseResponse.__init__ - _status_line = local_property('response_status_line') - _status_code = local_property('response_status_code') - _cookies = local_property('response_cookies') - _headers = local_property('response_headers') - body = local_property('response_body') - - -Request = BaseRequest -Response = BaseResponse - - -class HTTPResponse(Response, BottleException): - def __init__(self, body='', status=None, headers=None, - header=None, **more_headers): - if header or 'output' in more_headers: - depr('Call signature changed (for the better). See BaseResponse') - if header: more_headers.update(header) - if 'output' in more_headers: body = more_headers.pop('output') - super(HTTPResponse, self).__init__(body, status, headers, **more_headers) - - def apply(self, response): - response._status_code = self._status_code - response._status_line = self._status_line - response._headers = self._headers - response._cookies = self._cookies - response.body = self.body - - def _output(self, value=None): - depr('Use HTTPResponse.body instead of HTTPResponse.output') - if value is None: return self.body - self.body = value - - output = property(_output, _output, doc='Alias for .body') - - -class HTTPError(HTTPResponse): - default_status = 500 - def __init__(self, status=None, body=None, exception=None, traceback=None, - **options): - self.exception = exception - self.traceback = traceback - super(HTTPError, self).__init__(body, status, **options) - - - - - -############################################################################### -# Plugins ###################################################################### -############################################################################### - -class PluginError(BottleException): pass - - -class JSONPlugin(object): - name = 'json' - api = 2 - - def __init__(self, json_dumps=json_dumps): - self.json_dumps = json_dumps - - def apply(self, callback, route): - dumps = self.json_dumps - if not dumps: return callback - def wrapper(*a, **ka): - try: - rv = callback(*a, **ka) - except HTTPError: - rv = _e() - - if isinstance(rv, dict): - #Attempt to serialize, raises exception on failure - json_response = dumps(rv) - #Set content type only if serialization succesful - response.content_type = 'application/json' - return json_response - elif isinstance(rv, HTTPResponse) and isinstance(rv.body, dict): - rv.body = dumps(rv.body) - rv.content_type = 'application/json' - return rv - - return wrapper - - -class TemplatePlugin(object): - ''' This plugin applies the :func:`view` decorator to all routes with a - `template` config parameter. If the parameter is a tuple, the second - element must be a dict with additional options (e.g. `template_engine`) - or default variables for the template. ''' - name = 'template' - api = 2 - - def apply(self, callback, route): - conf = route.config.get('template') - if isinstance(conf, (tuple, list)) and len(conf) == 2: - return view(conf[0], **conf[1])(callback) - elif isinstance(conf, str): - return view(conf)(callback) - else: - return callback - - -#: Not a plugin, but part of the plugin API. TODO: Find a better place. -class _ImportRedirect(object): - def __init__(self, name, impmask): - ''' Create a virtual package that redirects imports (see PEP 302). ''' - self.name = name - self.impmask = impmask - self.module = sys.modules.setdefault(name, imp.new_module(name)) - self.module.__dict__.update({'__file__': __file__, '__path__': [], - '__all__': [], '__loader__': self}) - sys.meta_path.append(self) - - def find_module(self, fullname, path=None): - if '.' not in fullname: return - packname, modname = fullname.rsplit('.', 1) - if packname != self.name: return - return self - - def load_module(self, fullname): - if fullname in sys.modules: return sys.modules[fullname] - packname, modname = fullname.rsplit('.', 1) - realname = self.impmask % modname - __import__(realname) - module = sys.modules[fullname] = sys.modules[realname] - setattr(self.module, modname, module) - module.__loader__ = self - return module - - - - - - -############################################################################### -# Common Utilities ############################################################# -############################################################################### - - -class MultiDict(DictMixin): - """ This dict stores multiple values per key, but behaves exactly like a - normal dict in that it returns only the newest value for any given key. - There are special methods available to access the full list of values. - """ - - def __init__(self, *a, **k): - self.dict = dict((k, [v]) for (k, v) in dict(*a, **k).items()) - - def __len__(self): return len(self.dict) - def __iter__(self): return iter(self.dict) - def __contains__(self, key): return key in self.dict - def __delitem__(self, key): del self.dict[key] - def __getitem__(self, key): return self.dict[key][-1] - def __setitem__(self, key, value): self.append(key, value) - def keys(self): return self.dict.keys() - - if py3k: - def values(self): return (v[-1] for v in self.dict.values()) - def items(self): return ((k, v[-1]) for k, v in self.dict.items()) - def allitems(self): - return ((k, v) for k, vl in self.dict.items() for v in vl) - iterkeys = keys - itervalues = values - iteritems = items - iterallitems = allitems - - else: - def values(self): return [v[-1] for v in self.dict.values()] - def items(self): return [(k, v[-1]) for k, v in self.dict.items()] - def iterkeys(self): return self.dict.iterkeys() - def itervalues(self): return (v[-1] for v in self.dict.itervalues()) - def iteritems(self): - return ((k, v[-1]) for k, v in self.dict.iteritems()) - def iterallitems(self): - return ((k, v) for k, vl in self.dict.iteritems() for v in vl) - def allitems(self): - return [(k, v) for k, vl in self.dict.iteritems() for v in vl] - - def get(self, key, default=None, index=-1, type=None): - ''' Return the most recent value for a key. - - :param default: The default value to be returned if the key is not - present or the type conversion fails. - :param index: An index for the list of available values. - :param type: If defined, this callable is used to cast the value - into a specific type. Exception are suppressed and result in - the default value to be returned. - ''' - try: - val = self.dict[key][index] - return type(val) if type else val - except Exception: - pass - return default - - def append(self, key, value): - ''' Add a new value to the list of values for this key. ''' - self.dict.setdefault(key, []).append(value) - - def replace(self, key, value): - ''' Replace the list of values with a single value. ''' - self.dict[key] = [value] - - def getall(self, key): - ''' Return a (possibly empty) list of values for a key. ''' - return self.dict.get(key) or [] - - #: Aliases for WTForms to mimic other multi-dict APIs (Django) - getone = get - getlist = getall - - -class FormsDict(MultiDict): - ''' This :class:`MultiDict` subclass is used to store request form data. - Additionally to the normal dict-like item access methods (which return - unmodified data as native strings), this container also supports - attribute-like access to its values. Attributes are automatically de- - or recoded to match :attr:`input_encoding` (default: 'utf8'). Missing - attributes default to an empty string. ''' - - #: Encoding used for attribute values. - input_encoding = 'utf8' - #: If true (default), unicode strings are first encoded with `latin1` - #: and then decoded to match :attr:`input_encoding`. - recode_unicode = True - - def _fix(self, s, encoding=None): - if isinstance(s, unicode) and self.recode_unicode: # Python 3 WSGI - s = s.encode('latin1') - if isinstance(s, bytes): # Python 2 WSGI - return s.decode(encoding or self.input_encoding) - return s - - def decode(self, encoding=None): - ''' Returns a copy with all keys and values de- or recoded to match - :attr:`input_encoding`. Some libraries (e.g. WTForms) want a - unicode dictionary. ''' - copy = FormsDict() - enc = copy.input_encoding = encoding or self.input_encoding - copy.recode_unicode = False - for key, value in self.allitems(): - copy.append(self._fix(key, enc), self._fix(value, enc)) - return copy - - def getunicode(self, name, default=None, encoding=None): - ''' Return the value as a unicode string, or the default. ''' - try: - return self._fix(self[name], encoding) - except (UnicodeError, KeyError): - return default - - def __getattr__(self, name, default=unicode()): - # Without this guard, pickle generates a cryptic TypeError: - if name.startswith('__') and name.endswith('__'): - return super(FormsDict, self).__getattr__(name) - return self.getunicode(name, default=default) - - -class HeaderDict(MultiDict): - """ A case-insensitive version of :class:`MultiDict` that defaults to - replace the old value instead of appending it. """ - - def __init__(self, *a, **ka): - self.dict = {} - if a or ka: self.update(*a, **ka) - - def __contains__(self, key): return _hkey(key) in self.dict - def __delitem__(self, key): del self.dict[_hkey(key)] - def __getitem__(self, key): return self.dict[_hkey(key)][-1] - def __setitem__(self, key, value): self.dict[_hkey(key)] = [str(value)] - def append(self, key, value): - self.dict.setdefault(_hkey(key), []).append(str(value)) - def replace(self, key, value): self.dict[_hkey(key)] = [str(value)] - def getall(self, key): return self.dict.get(_hkey(key)) or [] - def get(self, key, default=None, index=-1): - return MultiDict.get(self, _hkey(key), default, index) - def filter(self, names): - for name in [_hkey(n) for n in names]: - if name in self.dict: - del self.dict[name] - - -class WSGIHeaderDict(DictMixin): - ''' This dict-like class wraps a WSGI environ dict and provides convenient - access to HTTP_* fields. Keys and values are native strings - (2.x bytes or 3.x unicode) and keys are case-insensitive. If the WSGI - environment contains non-native string values, these are de- or encoded - using a lossless 'latin1' character set. - - The API will remain stable even on changes to the relevant PEPs. - Currently PEP 333, 444 and 3333 are supported. (PEP 444 is the only one - that uses non-native strings.) - ''' - #: List of keys that do not have a ``HTTP_`` prefix. - cgikeys = ('CONTENT_TYPE', 'CONTENT_LENGTH') - - def __init__(self, environ): - self.environ = environ - - def _ekey(self, key): - ''' Translate header field name to CGI/WSGI environ key. ''' - key = key.replace('-','_').upper() - if key in self.cgikeys: - return key - return 'HTTP_' + key - - def raw(self, key, default=None): - ''' Return the header value as is (may be bytes or unicode). ''' - return self.environ.get(self._ekey(key), default) - - def __getitem__(self, key): - return tonat(self.environ[self._ekey(key)], 'latin1') - - def __setitem__(self, key, value): - raise TypeError("%s is read-only." % self.__class__) - - def __delitem__(self, key): - raise TypeError("%s is read-only." % self.__class__) - - def __iter__(self): - for key in self.environ: - if key[:5] == 'HTTP_': - yield key[5:].replace('_', '-').title() - elif key in self.cgikeys: - yield key.replace('_', '-').title() - - def keys(self): return [x for x in self] - def __len__(self): return len(self.keys()) - def __contains__(self, key): return self._ekey(key) in self.environ - - - -class ConfigDict(dict): - ''' A dict-like configuration storage with additional support for - namespaces, validators, meta-data, on_change listeners and more. - ''' - - __slots__ = ('_meta', '_on_change') - - def __init__(self, *a, **ka): - self._meta = {} - self._on_change = lambda name, value: None - if a or ka: - depr('Constructor does no longer accept parameters.') - self.update(*a, **ka) - - def load_config(self, filename): - ''' Load values from an *.ini style config file. - - If the config file contains sections, their names are used as - namespaces for the values within. The two special sections - ``DEFAULT`` and ``bottle`` refer to the root namespace (no prefix). - ''' - conf = ConfigParser() - conf.read(filename) - for section in conf.sections(): - for key, value in conf.items(section): - if section not in ('DEFAULT', 'bottle'): - key = section + '.' + key - self[key] = value - return self - - def load_dict(self, source, namespace=''): - ''' Load values from a dictionary structure. Nesting can be used to - represent namespaces. - - >>> c.load_dict({'some': {'namespace': {'key': 'value'} } }) - {'some.namespace.key': 'value'} - ''' - for key, value in source.items(): - if isinstance(key, str): - nskey = (namespace + '.' + key).strip('.') - if isinstance(value, dict): - self.load_dict(value, namespace=nskey) - else: - self[nskey] = value - else: - raise TypeError('Key has type %r (not a string)' % type(key)) - return self - - def update(self, *a, **ka): - ''' If the first parameter is a string, all keys are prefixed with this - namespace. Apart from that it works just as the usual dict.update(). - Example: ``update('some.namespace', key='value')`` ''' - prefix = '' - if a and isinstance(a[0], str): - prefix = a[0].strip('.') + '.' - a = a[1:] - for key, value in dict(*a, **ka).items(): - self[prefix+key] = value - - def setdefault(self, key, value): - if key not in self: - self[key] = value - - def __setitem__(self, key, value): - if not isinstance(key, str): - raise TypeError('Key has type %r (not a string)' % type(key)) - value = self.meta_get(key, 'filter', lambda x: x)(value) - if key in self and self[key] is value: - return - self._on_change(key, value) - dict.__setitem__(self, key, value) - - def __delitem__(self, key): - self._on_change(key, None) - dict.__delitem__(self, key) - - def meta_get(self, key, metafield, default=None): - ''' Return the value of a meta field for a key. ''' - return self._meta.get(key, {}).get(metafield, default) - - def meta_set(self, key, metafield, value): - ''' Set the meta field for a key to a new value. This triggers the - on-change handler for existing keys. ''' - self._meta.setdefault(key, {})[metafield] = value - if key in self: - self[key] = self[key] - - def meta_list(self, key): - ''' Return an iterable of meta field names defined for a key. ''' - return self._meta.get(key, {}).keys() - - # Deprecated ConfigDict features - def __getattr__(self, key): - depr('Attribute access is deprecated.') #0.12 - if key not in self and key[0].isupper(): - self[key] = ConfigDict() - return self.get(key) - - def __setattr__(self, key, value): - if key in self.__slots__: - return dict.__setattr__(self, key, value) - depr('Attribute assignment is deprecated.') #0.12 - if hasattr(dict, key): - raise AttributeError('Read-only attribute.') - if key in self and self[key] and isinstance(self[key], ConfigDict): - raise AttributeError('Non-empty namespace attribute.') - self[key] = value - - def __delattr__(self, key): - if key in self: del self[key] - - def __call__(self, *a, **ka): - depr('Calling ConfDict is deprecated. Use the update() method.') #0.12 - self.update(*a, **ka) - return self - - - -class AppStack(list): - """ A stack-like list. Calling it returns the head of the stack. """ - - def __call__(self): - """ Return the current default application. """ - return self[-1] - - def push(self, value=None): - """ Add a new :class:`Bottle` instance to the stack """ - if not isinstance(value, Bottle): - value = Bottle() - self.append(value) - return value - - -class WSGIFileWrapper(object): - - def __init__(self, fp, buffer_size=1024*64): - self.fp, self.buffer_size = fp, buffer_size - for attr in ('fileno', 'close', 'read', 'readlines', 'tell', 'seek'): - if hasattr(fp, attr): setattr(self, attr, getattr(fp, attr)) - - def __iter__(self): - buff, read = self.buffer_size, self.read - while True: - part = read(buff) - if not part: return - yield part - - -class _closeiter(object): - ''' This only exists to be able to attach a .close method to iterators that - do not support attribute assignment (most of itertools). ''' - - def __init__(self, iterator, close=None): - self.iterator = iterator - self.close_callbacks = makelist(close) - - def __iter__(self): - return iter(self.iterator) - - def close(self): - for func in self.close_callbacks: - func() - - -class ResourceManager(object): - ''' This class manages a list of search paths and helps to find and open - application-bound resources (files). - - :param base: default value for :meth:`add_path` calls. - :param opener: callable used to open resources. - :param cachemode: controls which lookups are cached. One of 'all', - 'found' or 'none'. - ''' - - def __init__(self, base='./', opener=open, cachemode='all'): - self.opener = open - self.base = base - self.cachemode = cachemode - - #: A list of search paths. See :meth:`add_path` for details. - self.path = [] - #: A cache for resolved paths. ``res.cache.clear()`` clears the cache. - self.cache = {} - - def add_path(self, path, base=None, index=None, create=False): - ''' Add a new path to the list of search paths. Return False if the - path does not exist. - - :param path: The new search path. Relative paths are turned into - an absolute and normalized form. If the path looks like a file - (not ending in `/`), the filename is stripped off. - :param base: Path used to absolutize relative search paths. - Defaults to :attr:`base` which defaults to ``os.getcwd()``. - :param index: Position within the list of search paths. Defaults - to last index (appends to the list). - - The `base` parameter makes it easy to reference files installed - along with a python module or package:: - - res.add_path('./resources/', __file__) - ''' - base = os.path.abspath(os.path.dirname(base or self.base)) - path = os.path.abspath(os.path.join(base, os.path.dirname(path))) - path += os.sep - if path in self.path: - self.path.remove(path) - if create and not os.path.isdir(path): - os.makedirs(path) - if index is None: - self.path.append(path) - else: - self.path.insert(index, path) - self.cache.clear() - return os.path.exists(path) - - def __iter__(self): - ''' Iterate over all existing files in all registered paths. ''' - search = self.path[:] - while search: - path = search.pop() - if not os.path.isdir(path): continue - for name in os.listdir(path): - full = os.path.join(path, name) - if os.path.isdir(full): search.append(full) - else: yield full - - def lookup(self, name): - ''' Search for a resource and return an absolute file path, or `None`. - - The :attr:`path` list is searched in order. The first match is - returend. Symlinks are followed. The result is cached to speed up - future lookups. ''' - if name not in self.cache or DEBUG: - for path in self.path: - fpath = os.path.join(path, name) - if os.path.isfile(fpath): - if self.cachemode in ('all', 'found'): - self.cache[name] = fpath - return fpath - if self.cachemode == 'all': - self.cache[name] = None - return self.cache[name] - - def open(self, name, mode='r', *args, **kwargs): - ''' Find a resource and return a file object, or raise IOError. ''' - fname = self.lookup(name) - if not fname: raise IOError("Resource %r not found." % name) - return self.opener(fname, mode=mode, *args, **kwargs) - - -class FileUpload(object): - - def __init__(self, fileobj, name, filename, headers=None): - ''' Wrapper for file uploads. ''' - #: Open file(-like) object (BytesIO buffer or temporary file) - self.file = fileobj - #: Name of the upload form field - self.name = name - #: Raw filename as sent by the client (may contain unsafe characters) - self.raw_filename = filename - #: A :class:`HeaderDict` with additional headers (e.g. content-type) - self.headers = HeaderDict(headers) if headers else HeaderDict() - - content_type = HeaderProperty('Content-Type') - content_length = HeaderProperty('Content-Length', reader=int, default=-1) - - @cached_property - def filename(self): - ''' Name of the file on the client file system, but normalized to ensure - file system compatibility (lowercase, no whitespace, no path - separators, no unsafe characters, ASCII only). An empty filename - is returned as 'empty'. - ''' - from unicodedata import normalize #TODO: Module level import? - fname = self.raw_filename - if isinstance(fname, unicode): - fname = normalize('NFKD', fname).encode('ASCII', 'ignore') - fname = fname.decode('ASCII', 'ignore') - fname = os.path.basename(fname.replace('\\', os.path.sep)) - fname = re.sub(r'[^a-zA-Z0-9-_.\s]', '', fname).strip().lower() - fname = re.sub(r'[-\s]+', '-', fname.strip('.').strip()) - return fname or 'empty' - - def _copy_file(self, fp, chunk_size=2**16): - read, write, offset = self.file.read, fp.write, self.file.tell() - while 1: - buf = read(chunk_size) - if not buf: break - write(buf) - self.file.seek(offset) - - def save(self, destination, overwrite=False, chunk_size=2**16): - ''' Save file to disk or copy its content to an open file(-like) object. - If *destination* is a directory, :attr:`filename` is added to the - path. Existing files are not overwritten by default (IOError). - - :param destination: File path, directory or file(-like) object. - :param overwrite: If True, replace existing files. (default: False) - :param chunk_size: Bytes to read at a time. (default: 64kb) - ''' - if isinstance(destination, basestring): # Except file-likes here - if os.path.isdir(destination): - destination = os.path.join(destination, self.filename) - if not overwrite and os.path.exists(destination): - raise IOError('File exists.') - with open(destination, 'wb') as fp: - self._copy_file(fp, chunk_size) - else: - self._copy_file(destination, chunk_size) - - - - - - -############################################################################### -# Application Helper ########################################################### -############################################################################### - - -def abort(code=500, text='Unknown Error: Application stopped.'): - """ Aborts execution and causes a HTTP error. """ - raise HTTPError(code, text) - - -def redirect(url, code=None): - """ Aborts execution and causes a 303 or 302 redirect, depending on - the HTTP protocol version. """ - if not code: - code = 303 if request.get('SERVER_PROTOCOL') == "HTTP/1.1" else 302 - res = response.copy(cls=HTTPResponse) - res.status = code - res.body = "" - res.set_header('Location', urljoin(request.url, url)) - raise res - - -def _file_iter_range(fp, offset, bytes, maxread=1024*1024): - ''' Yield chunks from a range in a file. No chunk is bigger than maxread.''' - fp.seek(offset) - while bytes > 0: - part = fp.read(min(bytes, maxread)) - if not part: break - bytes -= len(part) - yield part - - -def static_file(filename, root, mimetype='auto', download=False, charset='UTF-8'): - """ Open a file in a safe way and return :exc:`HTTPResponse` with status - code 200, 305, 401 or 404. The ``Content-Type``, ``Content-Encoding``, - ``Content-Length`` and ``Last-Modified`` headers are set if possible. - Special support for ``If-Modified-Since``, ``Range`` and ``HEAD`` - requests. - - :param filename: Name or path of the file to send. - :param root: Root path for file lookups. Should be an absolute directory - path. - :param mimetype: Defines the content-type header (default: guess from - file extension) - :param download: If True, ask the browser to open a `Save as...` dialog - instead of opening the file with the associated program. You can - specify a custom filename as a string. If not specified, the - original filename is used (default: False). - :param charset: The charset to use for files with a ``text/*`` - mime-type. (default: UTF-8) - """ - - root = os.path.abspath(root) + os.sep - filename = os.path.abspath(os.path.join(root, filename.strip('/\\'))) - headers = dict() - - if not filename.startswith(root): - return HTTPError(403, "Access denied.") - if not os.path.exists(filename) or not os.path.isfile(filename): - return HTTPError(404, "File does not exist.") - if not os.access(filename, os.R_OK): - return HTTPError(403, "You do not have permission to access this file.") - - if mimetype == 'auto': - mimetype, encoding = mimetypes.guess_type(filename) - if encoding: headers['Content-Encoding'] = encoding - - if mimetype: - if mimetype[:5] == 'text/' and charset and 'charset' not in mimetype: - mimetype += '; charset=%s' % charset - headers['Content-Type'] = mimetype - - if download: - download = os.path.basename(filename if download == True else download) - headers['Content-Disposition'] = 'attachment; filename="%s"' % download - - stats = os.stat(filename) - headers['Content-Length'] = clen = stats.st_size - lm = time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime(stats.st_mtime)) - headers['Last-Modified'] = lm - - ims = request.environ.get('HTTP_IF_MODIFIED_SINCE') - if ims: - ims = parse_date(ims.split(";")[0].strip()) - if ims is not None and ims >= int(stats.st_mtime): - headers['Date'] = time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime()) - return HTTPResponse(status=304, **headers) - - body = '' if request.method == 'HEAD' else open(filename, 'rb') - - headers["Accept-Ranges"] = "bytes" - ranges = request.environ.get('HTTP_RANGE') - if 'HTTP_RANGE' in request.environ: - ranges = list(parse_range_header(request.environ['HTTP_RANGE'], clen)) - if not ranges: - return HTTPError(416, "Requested Range Not Satisfiable") - offset, end = ranges[0] - headers["Content-Range"] = "bytes %d-%d/%d" % (offset, end-1, clen) - headers["Content-Length"] = str(end-offset) - if body: body = _file_iter_range(body, offset, end-offset) - return HTTPResponse(body, status=206, **headers) - return HTTPResponse(body, **headers) - - - - - - -############################################################################### -# HTTP Utilities and MISC (TODO) ############################################### -############################################################################### - - -def debug(mode=True): - """ Change the debug level. - There is only one debug level supported at the moment.""" - global DEBUG - if mode: warnings.simplefilter('default') - DEBUG = bool(mode) - -def http_date(value): - if isinstance(value, (datedate, datetime)): - value = value.utctimetuple() - elif isinstance(value, (int, float)): - value = time.gmtime(value) - if not isinstance(value, basestring): - value = time.strftime("%a, %d %b %Y %H:%M:%S GMT", value) - return value - -def parse_date(ims): - """ Parse rfc1123, rfc850 and asctime timestamps and return UTC epoch. """ - try: - ts = email.utils.parsedate_tz(ims) - return time.mktime(ts[:8] + (0,)) - (ts[9] or 0) - time.timezone - except (TypeError, ValueError, IndexError, OverflowError): - return None - -def parse_auth(header): - """ Parse rfc2617 HTTP authentication header string (basic) and return (user,pass) tuple or None""" - try: - method, data = header.split(None, 1) - if method.lower() == 'basic': - user, pwd = touni(base64.b64decode(tob(data))).split(':',1) - return user, pwd - except (KeyError, ValueError): - return None - -def parse_range_header(header, maxlen=0): - ''' Yield (start, end) ranges parsed from a HTTP Range header. Skip - unsatisfiable ranges. The end index is non-inclusive.''' - if not header or header[:6] != 'bytes=': return - ranges = [r.split('-', 1) for r in header[6:].split(',') if '-' in r] - for start, end in ranges: - try: - if not start: # bytes=-100 -> last 100 bytes - start, end = max(0, maxlen-int(end)), maxlen - elif not end: # bytes=100- -> all but the first 99 bytes - start, end = int(start), maxlen - else: # bytes=100-200 -> bytes 100-200 (inclusive) - start, end = int(start), min(int(end)+1, maxlen) - if 0 <= start < end <= maxlen: - yield start, end - except ValueError: - pass - -def _parse_qsl(qs): - r = [] - for pair in qs.replace(';','&').split('&'): - if not pair: continue - nv = pair.split('=', 1) - if len(nv) != 2: nv.append('') - key = urlunquote(nv[0].replace('+', ' ')) - value = urlunquote(nv[1].replace('+', ' ')) - r.append((key, value)) - return r - -def _lscmp(a, b): - ''' Compares two strings in a cryptographically safe way: - Runtime is not affected by length of common prefix. ''' - return not sum(0 if x==y else 1 for x, y in zip(a, b)) and len(a) == len(b) - - -def cookie_encode(data, key): - ''' Encode and sign a pickle-able object. Return a (byte) string ''' - msg = base64.b64encode(pickle.dumps(data, -1)) - sig = base64.b64encode(hmac.new(tob(key), msg).digest()) - return tob('!') + sig + tob('?') + msg - - -def cookie_decode(data, key): - ''' Verify and decode an encoded string. Return an object or None.''' - data = tob(data) - if cookie_is_encoded(data): - sig, msg = data.split(tob('?'), 1) - if _lscmp(sig[1:], base64.b64encode(hmac.new(tob(key), msg).digest())): - return pickle.loads(base64.b64decode(msg)) - return None - - -def cookie_is_encoded(data): - ''' Return True if the argument looks like a encoded cookie.''' - return bool(data.startswith(tob('!')) and tob('?') in data) - - -def html_escape(string): - ''' Escape HTML special characters ``&<>`` and quotes ``'"``. ''' - return string.replace('&','&').replace('<','<').replace('>','>')\ - .replace('"','"').replace("'",''') - - -def html_quote(string): - ''' Escape and quote a string to be used as an HTTP attribute.''' - return '"%s"' % html_escape(string).replace('\n','%#10;')\ - .replace('\r',' ').replace('\t',' ') - - -def yieldroutes(func): - """ Return a generator for routes that match the signature (name, args) - of the func parameter. This may yield more than one route if the function - takes optional keyword arguments. The output is best described by example:: - - a() -> '/a' - b(x, y) -> '/b//' - c(x, y=5) -> '/c/' and '/c//' - d(x=5, y=6) -> '/d' and '/d/' and '/d//' - """ - path = '/' + func.__name__.replace('__','/').lstrip('/') - spec = getargspec(func) - argc = len(spec[0]) - len(spec[3] or []) - path += ('/<%s>' * argc) % tuple(spec[0][:argc]) - yield path - for arg in spec[0][argc:]: - path += '/<%s>' % arg - yield path - - -def path_shift(script_name, path_info, shift=1): - ''' Shift path fragments from PATH_INFO to SCRIPT_NAME and vice versa. - - :return: The modified paths. - :param script_name: The SCRIPT_NAME path. - :param script_name: The PATH_INFO path. - :param shift: The number of path fragments to shift. May be negative to - change the shift direction. (default: 1) - ''' - if shift == 0: return script_name, path_info - pathlist = path_info.strip('/').split('/') - scriptlist = script_name.strip('/').split('/') - if pathlist and pathlist[0] == '': pathlist = [] - if scriptlist and scriptlist[0] == '': scriptlist = [] - if shift > 0 and shift <= len(pathlist): - moved = pathlist[:shift] - scriptlist = scriptlist + moved - pathlist = pathlist[shift:] - elif shift < 0 and shift >= -len(scriptlist): - moved = scriptlist[shift:] - pathlist = moved + pathlist - scriptlist = scriptlist[:shift] - else: - empty = 'SCRIPT_NAME' if shift < 0 else 'PATH_INFO' - raise AssertionError("Cannot shift. Nothing left from %s" % empty) - new_script_name = '/' + '/'.join(scriptlist) - new_path_info = '/' + '/'.join(pathlist) - if path_info.endswith('/') and pathlist: new_path_info += '/' - return new_script_name, new_path_info - - -def auth_basic(check, realm="private", text="Access denied"): - ''' Callback decorator to require HTTP auth (basic). - TODO: Add route(check_auth=...) parameter. ''' - def decorator(func): - def wrapper(*a, **ka): - user, password = request.auth or (None, None) - if user is None or not check(user, password): - err = HTTPError(401, text) - err.add_header('WWW-Authenticate', 'Basic realm="%s"' % realm) - return err - return func(*a, **ka) - return wrapper - return decorator - - -# Shortcuts for common Bottle methods. -# They all refer to the current default application. - -def make_default_app_wrapper(name): - ''' Return a callable that relays calls to the current default app. ''' - @functools.wraps(getattr(Bottle, name)) - def wrapper(*a, **ka): - return getattr(app(), name)(*a, **ka) - return wrapper - -route = make_default_app_wrapper('route') -get = make_default_app_wrapper('get') -post = make_default_app_wrapper('post') -put = make_default_app_wrapper('put') -delete = make_default_app_wrapper('delete') -error = make_default_app_wrapper('error') -mount = make_default_app_wrapper('mount') -hook = make_default_app_wrapper('hook') -install = make_default_app_wrapper('install') -uninstall = make_default_app_wrapper('uninstall') -url = make_default_app_wrapper('get_url') - - - - - - - -############################################################################### -# Server Adapter ############################################################### -############################################################################### - - -class ServerAdapter(object): - quiet = False - def __init__(self, host='127.0.0.1', port=8080, **options): - self.options = options - self.host = host - self.port = int(port) - - def run(self, handler): # pragma: no cover - pass - - def __repr__(self): - args = ', '.join(['%s=%s'%(k,repr(v)) for k, v in self.options.items()]) - return "%s(%s)" % (self.__class__.__name__, args) - - -class CGIServer(ServerAdapter): - quiet = True - def run(self, handler): # pragma: no cover - from wsgiref.handlers import CGIHandler - def fixed_environ(environ, start_response): - environ.setdefault('PATH_INFO', '') - return handler(environ, start_response) - CGIHandler().run(fixed_environ) - - -class FlupFCGIServer(ServerAdapter): - def run(self, handler): # pragma: no cover - import flup.server.fcgi - self.options.setdefault('bindAddress', (self.host, self.port)) - flup.server.fcgi.WSGIServer(handler, **self.options).run() - - -class WSGIRefServer(ServerAdapter): - def run(self, app): # pragma: no cover - from wsgiref.simple_server import WSGIRequestHandler, WSGIServer - from wsgiref.simple_server import make_server - import socket - - class FixedHandler(WSGIRequestHandler): - def address_string(self): # Prevent reverse DNS lookups please. - return self.client_address[0] - def log_request(*args, **kw): - if not self.quiet: - return WSGIRequestHandler.log_request(*args, **kw) - - handler_cls = self.options.get('handler_class', FixedHandler) - server_cls = self.options.get('server_class', WSGIServer) - - if ':' in self.host: # Fix wsgiref for IPv6 addresses. - if getattr(server_cls, 'address_family') == socket.AF_INET: - class server_cls(server_cls): - address_family = socket.AF_INET6 - - srv = make_server(self.host, self.port, app, server_cls, handler_cls) - srv.serve_forever() - - -class CherryPyServer(ServerAdapter): - def run(self, handler): # pragma: no cover - from cherrypy import wsgiserver - self.options['bind_addr'] = (self.host, self.port) - self.options['wsgi_app'] = handler - server = wsgiserver.CherryPyWSGIServer(**self.options) - try: - server.start() - finally: - server.stop() - - -class WaitressServer(ServerAdapter): - def run(self, handler): - from waitress import serve - serve(handler, host=self.host, port=self.port) - - -class PasteServer(ServerAdapter): - def run(self, handler): # pragma: no cover - from paste import httpserver - from paste.translogger import TransLogger - handler = TransLogger(handler, setup_console_handler=(not self.quiet)) - httpserver.serve(handler, host=self.host, port=str(self.port), - **self.options) - - -class MeinheldServer(ServerAdapter): - def run(self, handler): - from meinheld import server - server.listen((self.host, self.port)) - server.run(handler) - - -class FapwsServer(ServerAdapter): - """ Extremely fast webserver using libev. See http://www.fapws.org/ """ - def run(self, handler): # pragma: no cover - import fapws._evwsgi as evwsgi - from fapws import base, config - port = self.port - if float(config.SERVER_IDENT[-2:]) > 0.4: - # fapws3 silently changed its API in 0.5 - port = str(port) - evwsgi.start(self.host, port) - # fapws3 never releases the GIL. Complain upstream. I tried. No luck. - if 'BOTTLE_CHILD' in os.environ and not self.quiet: - _stderr("WARNING: Auto-reloading does not work with Fapws3.\n") - _stderr(" (Fapws3 breaks python thread support)\n") - evwsgi.set_base_module(base) - def app(environ, start_response): - environ['wsgi.multiprocess'] = False - return handler(environ, start_response) - evwsgi.wsgi_cb(('', app)) - evwsgi.run() - - -class TornadoServer(ServerAdapter): - """ The super hyped asynchronous server by facebook. Untested. """ - def run(self, handler): # pragma: no cover - import tornado.wsgi, tornado.httpserver, tornado.ioloop - container = tornado.wsgi.WSGIContainer(handler) - server = tornado.httpserver.HTTPServer(container) - server.listen(port=self.port,address=self.host) - tornado.ioloop.IOLoop.instance().start() - - -class AppEngineServer(ServerAdapter): - """ Adapter for Google App Engine. """ - quiet = True - def run(self, handler): - from google.appengine.ext.webapp import util - # A main() function in the handler script enables 'App Caching'. - # Lets makes sure it is there. This _really_ improves performance. - module = sys.modules.get('__main__') - if module and not hasattr(module, 'main'): - module.main = lambda: util.run_wsgi_app(handler) - util.run_wsgi_app(handler) - - -class TwistedServer(ServerAdapter): - """ Untested. """ - def run(self, handler): - from twisted.web import server, wsgi - from twisted.python.threadpool import ThreadPool - from twisted.internet import reactor - thread_pool = ThreadPool() - thread_pool.start() - reactor.addSystemEventTrigger('after', 'shutdown', thread_pool.stop) - factory = server.Site(wsgi.WSGIResource(reactor, thread_pool, handler)) - reactor.listenTCP(self.port, factory, interface=self.host) - reactor.run() - - -class DieselServer(ServerAdapter): - """ Untested. """ - def run(self, handler): - from diesel.protocols.wsgi import WSGIApplication - app = WSGIApplication(handler, port=self.port) - app.run() - - -class GeventServer(ServerAdapter): - """ Untested. Options: - - * `fast` (default: False) uses libevent's http server, but has some - issues: No streaming, no pipelining, no SSL. - * See gevent.wsgi.WSGIServer() documentation for more options. - """ - def run(self, handler): - from gevent import wsgi, pywsgi, local - if not isinstance(_lctx, local.local): - msg = "Bottle requires gevent.monkey.patch_all() (before import)" - raise RuntimeError(msg) - if not self.options.pop('fast', None): wsgi = pywsgi - self.options['log'] = None if self.quiet else 'default' - address = (self.host, self.port) - wsgi.WSGIServer(address, handler, **self.options).serve_forever() - - -class GunicornServer(ServerAdapter): - """ Untested. See http://gunicorn.org/configure.html for options. """ - def run(self, handler): - from gunicorn.app.base import Application - - config = {'bind': "%s:%d" % (self.host, int(self.port))} - config.update(self.options) - - class GunicornApplication(Application): - def init(self, parser, opts, args): - return config - - def load(self): - return handler - - GunicornApplication().run() - - -class EventletServer(ServerAdapter): - """ Untested """ - def run(self, handler): - from eventlet import wsgi, listen - try: - wsgi.server(listen((self.host, self.port)), handler, - log_output=(not self.quiet)) - except TypeError: - # Fallback, if we have old version of eventlet - wsgi.server(listen((self.host, self.port)), handler) - - -class RocketServer(ServerAdapter): - """ Untested. """ - def run(self, handler): - from rocket import Rocket - server = Rocket((self.host, self.port), 'wsgi', { 'wsgi_app' : handler }) - server.start() - - -class BjoernServer(ServerAdapter): - """ Fast server written in C: https://github.com/jonashaag/bjoern """ - def run(self, handler): - from bjoern import run - run(handler, self.host, self.port) - - -class AutoServer(ServerAdapter): - """ Untested. """ - adapters = [WaitressServer, PasteServer, TwistedServer, CherryPyServer, WSGIRefServer] - def run(self, handler): - for sa in self.adapters: - try: - return sa(self.host, self.port, **self.options).run(handler) - except ImportError: - pass - -server_names = { - 'cgi': CGIServer, - 'flup': FlupFCGIServer, - 'wsgiref': WSGIRefServer, - 'waitress': WaitressServer, - 'cherrypy': CherryPyServer, - 'paste': PasteServer, - 'fapws3': FapwsServer, - 'tornado': TornadoServer, - 'gae': AppEngineServer, - 'twisted': TwistedServer, - 'diesel': DieselServer, - 'meinheld': MeinheldServer, - 'gunicorn': GunicornServer, - 'eventlet': EventletServer, - 'gevent': GeventServer, - 'rocket': RocketServer, - 'bjoern' : BjoernServer, - 'auto': AutoServer, -} - - - - - - -############################################################################### -# Application Control ########################################################## -############################################################################### - - -def load(target, **namespace): - """ Import a module or fetch an object from a module. - - * ``package.module`` returns `module` as a module object. - * ``pack.mod:name`` returns the module variable `name` from `pack.mod`. - * ``pack.mod:func()`` calls `pack.mod.func()` and returns the result. - - The last form accepts not only function calls, but any type of - expression. Keyword arguments passed to this function are available as - local variables. Example: ``import_string('re:compile(x)', x='[a-z]')`` - """ - module, target = target.split(":", 1) if ':' in target else (target, None) - if module not in sys.modules: __import__(module) - if not target: return sys.modules[module] - if target.isalnum(): return getattr(sys.modules[module], target) - package_name = module.split('.')[0] - namespace[package_name] = sys.modules[package_name] - return eval('%s.%s' % (module, target), namespace) - - -def load_app(target): - """ Load a bottle application from a module and make sure that the import - does not affect the current default application, but returns a separate - application object. See :func:`load` for the target parameter. """ - global NORUN; NORUN, nr_old = True, NORUN - try: - tmp = default_app.push() # Create a new "default application" - rv = load(target) # Import the target module - return rv if callable(rv) else tmp - finally: - default_app.remove(tmp) # Remove the temporary added default application - NORUN = nr_old - -_debug = debug -def run(app=None, server='wsgiref', host='127.0.0.1', port=8080, - interval=1, reloader=False, quiet=False, plugins=None, - debug=None, **kargs): - """ Start a server instance. This method blocks until the server terminates. - - :param app: WSGI application or target string supported by - :func:`load_app`. (default: :func:`default_app`) - :param server: Server adapter to use. See :data:`server_names` keys - for valid names or pass a :class:`ServerAdapter` subclass. - (default: `wsgiref`) - :param host: Server address to bind to. Pass ``0.0.0.0`` to listens on - all interfaces including the external one. (default: 127.0.0.1) - :param port: Server port to bind to. Values below 1024 require root - privileges. (default: 8080) - :param reloader: Start auto-reloading server? (default: False) - :param interval: Auto-reloader interval in seconds (default: 1) - :param quiet: Suppress output to stdout and stderr? (default: False) - :param options: Options passed to the server adapter. - """ - if NORUN: return - if reloader and not os.environ.get('BOTTLE_CHILD'): - try: - lockfile = None - fd, lockfile = tempfile.mkstemp(prefix='bottle.', suffix='.lock') - os.close(fd) # We only need this file to exist. We never write to it - while os.path.exists(lockfile): - args = [sys.executable] + sys.argv - environ = os.environ.copy() - environ['BOTTLE_CHILD'] = 'true' - environ['BOTTLE_LOCKFILE'] = lockfile - p = subprocess.Popen(args, env=environ) - while p.poll() is None: # Busy wait... - os.utime(lockfile, None) # I am alive! - time.sleep(interval) - if p.poll() != 3: - if os.path.exists(lockfile): os.unlink(lockfile) - sys.exit(p.poll()) - except KeyboardInterrupt: - pass - finally: - if os.path.exists(lockfile): - os.unlink(lockfile) - return - - try: - if debug is not None: _debug(debug) - app = app or default_app() - if isinstance(app, basestring): - app = load_app(app) - if not callable(app): - raise ValueError("Application is not callable: %r" % app) - - for plugin in plugins or []: - app.install(plugin) - - if server in server_names: - server = server_names.get(server) - if isinstance(server, basestring): - server = load(server) - if isinstance(server, type): - server = server(host=host, port=port, **kargs) - if not isinstance(server, ServerAdapter): - raise ValueError("Unknown or unsupported server: %r" % server) - - server.quiet = server.quiet or quiet - if not server.quiet: - _stderr("Bottle v%s server starting up (using %s)...\n" % (__version__, repr(server))) - _stderr("Listening on http://%s:%d/\n" % (server.host, server.port)) - _stderr("Hit Ctrl-C to quit.\n\n") - - if reloader: - lockfile = os.environ.get('BOTTLE_LOCKFILE') - bgcheck = FileCheckerThread(lockfile, interval) - with bgcheck: - server.run(app) - if bgcheck.status == 'reload': - sys.exit(3) - else: - server.run(app) - except KeyboardInterrupt: - pass - except (SystemExit, MemoryError): - raise - except: - if not reloader: raise - if not getattr(server, 'quiet', quiet): - print_exc() - time.sleep(interval) - sys.exit(3) - - - -class FileCheckerThread(threading.Thread): - ''' Interrupt main-thread as soon as a changed module file is detected, - the lockfile gets deleted or gets to old. ''' - - def __init__(self, lockfile, interval): - threading.Thread.__init__(self) - self.lockfile, self.interval = lockfile, interval - #: Is one of 'reload', 'error' or 'exit' - self.status = None - - def run(self): - exists = os.path.exists - mtime = lambda path: os.stat(path).st_mtime - files = dict() - - for module in list(sys.modules.values()): - path = getattr(module, '__file__', '') - if path[-4:] in ('.pyo', '.pyc'): path = path[:-1] - if path and exists(path): files[path] = mtime(path) - - while not self.status: - if not exists(self.lockfile)\ - or mtime(self.lockfile) < time.time() - self.interval - 5: - self.status = 'error' - thread.interrupt_main() - for path, lmtime in list(files.items()): - if not exists(path) or mtime(path) > lmtime: - self.status = 'reload' - thread.interrupt_main() - break - time.sleep(self.interval) - - def __enter__(self): - self.start() - - def __exit__(self, exc_type, exc_val, exc_tb): - if not self.status: self.status = 'exit' # silent exit - self.join() - return exc_type is not None and issubclass(exc_type, KeyboardInterrupt) - - - - - -############################################################################### -# Template Adapters ############################################################ -############################################################################### - - -class TemplateError(HTTPError): - def __init__(self, message): - HTTPError.__init__(self, 500, message) - - -class BaseTemplate(object): - """ Base class and minimal API for template adapters """ - extensions = ['tpl','html','thtml','stpl'] - settings = {} #used in prepare() - defaults = {} #used in render() - - def __init__(self, source=None, name=None, lookup=[], encoding='utf8', **settings): - """ Create a new template. - If the source parameter (str or buffer) is missing, the name argument - is used to guess a template filename. Subclasses can assume that - self.source and/or self.filename are set. Both are strings. - The lookup, encoding and settings parameters are stored as instance - variables. - The lookup parameter stores a list containing directory paths. - The encoding parameter should be used to decode byte strings or files. - The settings parameter contains a dict for engine-specific settings. - """ - self.name = name - self.source = source.read() if hasattr(source, 'read') else source - self.filename = source.filename if hasattr(source, 'filename') else None - self.lookup = [os.path.abspath(x) for x in lookup] - self.encoding = encoding - self.settings = self.settings.copy() # Copy from class variable - self.settings.update(settings) # Apply - if not self.source and self.name: - self.filename = self.search(self.name, self.lookup) - if not self.filename: - raise TemplateError('Template %s not found.' % repr(name)) - if not self.source and not self.filename: - raise TemplateError('No template specified.') - self.prepare(**self.settings) - - @classmethod - def search(cls, name, lookup=[]): - """ Search name in all directories specified in lookup. - First without, then with common extensions. Return first hit. """ - if not lookup: - depr('The template lookup path list should not be empty.') - lookup = ['.'] - - if os.path.isabs(name) and os.path.isfile(name): - depr('Absolute template path names are deprecated.') - return os.path.abspath(name) - - for spath in lookup: - spath = os.path.abspath(spath) + os.sep - fname = os.path.abspath(os.path.join(spath, name)) - if not fname.startswith(spath): continue - if os.path.isfile(fname): return fname - for ext in cls.extensions: - if os.path.isfile('%s.%s' % (fname, ext)): - return '%s.%s' % (fname, ext) - - @classmethod - def global_config(cls, key, *args): - ''' This reads or sets the global settings stored in class.settings. ''' - if args: - cls.settings = cls.settings.copy() # Make settings local to class - cls.settings[key] = args[0] - else: - return cls.settings[key] - - def prepare(self, **options): - """ Run preparations (parsing, caching, ...). - It should be possible to call this again to refresh a template or to - update settings. - """ - raise NotImplementedError - - def render(self, *args, **kwargs): - """ Render the template with the specified local variables and return - a single byte or unicode string. If it is a byte string, the encoding - must match self.encoding. This method must be thread-safe! - Local variables may be provided in dictionaries (args) - or directly, as keywords (kwargs). - """ - raise NotImplementedError - - -class MakoTemplate(BaseTemplate): - def prepare(self, **options): - from mako.template import Template - from mako.lookup import TemplateLookup - options.update({'input_encoding':self.encoding}) - options.setdefault('format_exceptions', bool(DEBUG)) - lookup = TemplateLookup(directories=self.lookup, **options) - if self.source: - self.tpl = Template(self.source, lookup=lookup, **options) - else: - self.tpl = Template(uri=self.name, filename=self.filename, lookup=lookup, **options) - - def render(self, *args, **kwargs): - for dictarg in args: kwargs.update(dictarg) - _defaults = self.defaults.copy() - _defaults.update(kwargs) - return self.tpl.render(**_defaults) - - -class CheetahTemplate(BaseTemplate): - def prepare(self, **options): - from Cheetah.Template import Template - self.context = threading.local() - self.context.vars = {} - options['searchList'] = [self.context.vars] - if self.source: - self.tpl = Template(source=self.source, **options) - else: - self.tpl = Template(file=self.filename, **options) - - def render(self, *args, **kwargs): - for dictarg in args: kwargs.update(dictarg) - self.context.vars.update(self.defaults) - self.context.vars.update(kwargs) - out = str(self.tpl) - self.context.vars.clear() - return out - - -class Jinja2Template(BaseTemplate): - def prepare(self, filters=None, tests=None, **kwargs): - from jinja2 import Environment, FunctionLoader - if 'prefix' in kwargs: # TODO: to be removed after a while - raise RuntimeError('The keyword argument `prefix` has been removed. ' - 'Use the full jinja2 environment name line_statement_prefix instead.') - self.env = Environment(loader=FunctionLoader(self.loader), **kwargs) - if filters: self.env.filters.update(filters) - if tests: self.env.tests.update(tests) - if self.source: - self.tpl = self.env.from_string(self.source) - else: - self.tpl = self.env.get_template(self.filename) - - def render(self, *args, **kwargs): - for dictarg in args: kwargs.update(dictarg) - _defaults = self.defaults.copy() - _defaults.update(kwargs) - return self.tpl.render(**_defaults) - - def loader(self, name): - fname = self.search(name, self.lookup) - if not fname: return - with open(fname, "rb") as f: - return f.read().decode(self.encoding) - - -class SimpleTemplate(BaseTemplate): - - def prepare(self, escape_func=html_escape, noescape=False, syntax=None, **ka): - self.cache = {} - enc = self.encoding - self._str = lambda x: touni(x, enc) - self._escape = lambda x: escape_func(touni(x, enc)) - self.syntax = syntax - if noescape: - self._str, self._escape = self._escape, self._str - - @cached_property - def co(self): - return compile(self.code, self.filename or '', 'exec') - - @cached_property - def code(self): - source = self.source or open(self.filename, 'rb').read() - try: - source, encoding = touni(source), 'utf8' - except UnicodeError: - depr('Template encodings other than utf8 are no longer supported.') - source, encoding = touni(source, 'latin1'), 'latin1' - parser = StplParser(source, encoding=encoding, syntax=self.syntax) - code = parser.translate() - self.encoding = parser.encoding - return code - - def _rebase(self, _env, _name=None, **kwargs): - if _name is None: - depr('Rebase function called without arguments.' - ' You were probably looking for {{base}}?', True) - _env['_rebase'] = (_name, kwargs) - - def _include(self, _env, _name=None, **kwargs): - if _name is None: - depr('Rebase function called without arguments.' - ' You were probably looking for {{base}}?', True) - env = _env.copy() - env.update(kwargs) - if _name not in self.cache: - self.cache[_name] = self.__class__(name=_name, lookup=self.lookup) - return self.cache[_name].execute(env['_stdout'], env) - - def execute(self, _stdout, kwargs): - env = self.defaults.copy() - env.update(kwargs) - env.update({'_stdout': _stdout, '_printlist': _stdout.extend, - 'include': functools.partial(self._include, env), - 'rebase': functools.partial(self._rebase, env), '_rebase': None, - '_str': self._str, '_escape': self._escape, 'get': env.get, - 'setdefault': env.setdefault, 'defined': env.__contains__ }) - eval(self.co, env) - if env.get('_rebase'): - subtpl, rargs = env.pop('_rebase') - rargs['base'] = ''.join(_stdout) #copy stdout - del _stdout[:] # clear stdout - return self._include(env, subtpl, **rargs) - return env - - def render(self, *args, **kwargs): - """ Render the template using keyword arguments as local variables. """ - env = {}; stdout = [] - for dictarg in args: env.update(dictarg) - env.update(kwargs) - self.execute(stdout, env) - return ''.join(stdout) - - -class StplSyntaxError(TemplateError): pass - - -class StplParser(object): - ''' Parser for stpl templates. ''' - _re_cache = {} #: Cache for compiled re patterns - # This huge pile of voodoo magic splits python code into 8 different tokens. - # 1: All kinds of python strings (trust me, it works) - _re_tok = '((?m)[urbURB]?(?:\'\'(?!\')|""(?!")|\'{6}|"{6}' \ - '|\'(?:[^\\\\\']|\\\\.)+?\'|"(?:[^\\\\"]|\\\\.)+?"' \ - '|\'{3}(?:[^\\\\]|\\\\.|\\n)+?\'{3}' \ - '|"{3}(?:[^\\\\]|\\\\.|\\n)+?"{3}))' - _re_inl = _re_tok.replace('|\\n','') # We re-use this string pattern later - # 2: Comments (until end of line, but not the newline itself) - _re_tok += '|(#.*)' - # 3,4: Keywords that start or continue a python block (only start of line) - _re_tok += '|^([ \\t]*(?:if|for|while|with|try|def|class)\\b)' \ - '|^([ \\t]*(?:elif|else|except|finally)\\b)' - # 5: Our special 'end' keyword (but only if it stands alone) - _re_tok += '|((?:^|;)[ \\t]*end[ \\t]*(?=(?:%(block_close)s[ \\t]*)?\\r?$|;|#))' - # 6: A customizable end-of-code-block template token (only end of line) - _re_tok += '|(%(block_close)s[ \\t]*(?=$))' - # 7: And finally, a single newline. The 8th token is 'everything else' - _re_tok += '|(\\r?\\n)' - # Match the start tokens of code areas in a template - _re_split = '(?m)^[ \t]*(\\\\?)((%(line_start)s)|(%(block_start)s))(%%?)' - # Match inline statements (may contain python strings) - _re_inl = '%%(inline_start)s((?:%s|[^\'"\n]*?)+)%%(inline_end)s' % _re_inl - - default_syntax = '<% %> % {{ }}' - - def __init__(self, source, syntax=None, encoding='utf8'): - self.source, self.encoding = touni(source, encoding), encoding - self.set_syntax(syntax or self.default_syntax) - self.code_buffer, self.text_buffer = [], [] - self.lineno, self.offset = 1, 0 - self.indent, self.indent_mod = 0, 0 - - def get_syntax(self): - ''' Tokens as a space separated string (default: <% %> % {{ }}) ''' - return self._syntax - - def set_syntax(self, syntax): - self._syntax = syntax - self._tokens = syntax.split() - if not syntax in self._re_cache: - names = 'block_start block_close line_start inline_start inline_end' - etokens = map(re.escape, self._tokens) - pattern_vars = dict(zip(names.split(), etokens)) - patterns = (self._re_split, self._re_tok, self._re_inl) - patterns = [re.compile(p%pattern_vars) for p in patterns] - self._re_cache[syntax] = patterns - self.re_split, self.re_tok, self.re_inl = self._re_cache[syntax] - - syntax = property(get_syntax, set_syntax) - - def translate(self): - if self.offset: raise RuntimeError('Parser is a one time instance.') - while True: - m = self.re_split.search(self.source[self.offset:]) - if m: - text = self.source[self.offset:self.offset+m.start()] - self.text_buffer.append(text) - self.offset += m.end() - if m.group(1): # New escape syntax - line, sep, _ = self.source[self.offset:].partition('\n') - self.text_buffer.append(m.group(2)+m.group(5)+line+sep) - self.offset += len(line+sep)+1 - continue - elif m.group(5): # Old escape syntax - depr('Escape code lines with a backslash.') - line, sep, _ = self.source[self.offset:].partition('\n') - self.text_buffer.append(m.group(2)+line+sep) - self.offset += len(line+sep)+1 - continue - self.flush_text() - self.read_code(multiline=bool(m.group(4))) - else: break - self.text_buffer.append(self.source[self.offset:]) - self.flush_text() - return ''.join(self.code_buffer) - - def read_code(self, multiline): - code_line, comment, start_line = '', '', self.lineno - while True: - m = self.re_tok.search(self.source[self.offset:]) - if not m: - code_line += self.source[self.offset:] - self.offset = len(self.source) - self.write_code(code_line.strip(), comment) - return - code_line += self.source[self.offset:self.offset+m.start()] - self.offset += m.end() - _str, _com, _blk1, _blk2, _end, _cend, _nl = m.groups() - if _str: # Python string - code_line += _str - elif _com: # Python comment (up to EOL) - comment = _com - if multiline and _com.strip().endswith(self._tokens[1]): - multiline = False # Allow end-of-block in comments - elif _blk1: # Start-block keyword (if/for/while/def/try/...) - code_line, self.indent_mod = _blk1, -1 - self.indent += 1 - elif _blk2: # Continue-block keyword (else/elif/except/...) - code_line, self.indent_mod = _blk2, -1 - elif _end: # The non-standard 'end'-keyword (ends a block) - self.indent -= 1 - elif _cend: # The end-code-block template token (usually '%>') - if multiline: multiline = False - else: code_line += _cend - else: # \n - self.write_code(code_line.strip(), comment) - self.lineno += 1 - code_line, comment, self.indent_mod = '', '', 0 - if not multiline: - break - - def flush_text(self): - text = ''.join(self.text_buffer) - del self.text_buffer[:] - if not text: return - parts, pos, nl = [], 0, '\\\n'+' '*self.indent - for m in self.re_inl.finditer(text): - prefix, pos = text[pos:m.start()], m.end() - if prefix: - parts.append(nl.join(map(repr, prefix.splitlines(True)))) - if prefix.endswith('\n'): parts[-1] += nl - parts.append(self.process_inline(m.group(1).strip())) - if pos < len(text): - prefix = text[pos:] - lines = prefix.splitlines(True) - if lines[-1].endswith('\\\\\n'): lines[-1] = lines[-1][:-3] - parts.append(nl.join(map(repr, lines))) - code = '_printlist((%s,))' % ', '.join(parts) - self.lineno += code.count('\n')+1 - self.write_code(code) - - def process_inline(self, chunk): - if chunk[0] == '!': return '_str(%s)' % chunk[1:] - return '_escape(%s)' % chunk - - def write_code(self, line, comment=''): - line, comment = self.fix_backward_compatibility(line, comment) - code = ' ' * (self.indent+self.indent_mod) - code += line.lstrip() + comment + '\n' - self.code_buffer.append(code) - - def fix_backward_compatibility(self, line, comment): - parts = line.strip().split(None, 2) - if parts and parts[0] in ('include', 'rebase'): - depr('The include and rebase keywords are functions now.') - if len(parts) == 1: return "_printlist([base])", comment - elif len(parts) == 2: return "_=%s(%r)" % tuple(parts), comment - else: return "_=%s(%r, %s)" % tuple(parts), comment - if self.lineno <= 2 and not line.strip() and 'coding' in comment: - m = re.match(r"#.*coding[:=]\s*([-\w.]+)", comment) - if m: - depr('PEP263 encoding strings in templates are deprecated.') - enc = m.group(1) - self.source = self.source.encode(self.encoding).decode(enc) - self.encoding = enc - return line, comment.replace('coding','coding*') - return line, comment - - -def template(*args, **kwargs): - ''' - Get a rendered template as a string iterator. - You can use a name, a filename or a template string as first parameter. - Template rendering arguments can be passed as dictionaries - or directly (as keyword arguments). - ''' - tpl = args[0] if args else None - adapter = kwargs.pop('template_adapter', SimpleTemplate) - lookup = kwargs.pop('template_lookup', TEMPLATE_PATH) - tplid = (id(lookup), tpl) - if tplid not in TEMPLATES or DEBUG: - settings = kwargs.pop('template_settings', {}) - if isinstance(tpl, adapter): - TEMPLATES[tplid] = tpl - if settings: TEMPLATES[tplid].prepare(**settings) - elif "\n" in tpl or "{" in tpl or "%" in tpl or '$' in tpl: - TEMPLATES[tplid] = adapter(source=tpl, lookup=lookup, **settings) - else: - TEMPLATES[tplid] = adapter(name=tpl, lookup=lookup, **settings) - if not TEMPLATES[tplid]: - abort(500, 'Template (%s) not found' % tpl) - for dictarg in args[1:]: kwargs.update(dictarg) - return TEMPLATES[tplid].render(kwargs) - -mako_template = functools.partial(template, template_adapter=MakoTemplate) -cheetah_template = functools.partial(template, template_adapter=CheetahTemplate) -jinja2_template = functools.partial(template, template_adapter=Jinja2Template) - - -def view(tpl_name, **defaults): - ''' Decorator: renders a template for a handler. - The handler can control its behavior like that: - - - return a dict of template vars to fill out the template - - return something other than a dict and the view decorator will not - process the template, but return the handler result as is. - This includes returning a HTTPResponse(dict) to get, - for instance, JSON with autojson or other castfilters. - ''' - def decorator(func): - @functools.wraps(func) - def wrapper(*args, **kwargs): - result = func(*args, **kwargs) - if isinstance(result, (dict, DictMixin)): - tplvars = defaults.copy() - tplvars.update(result) - return template(tpl_name, **tplvars) - elif result is None: - return template(tpl_name, defaults) - return result - return wrapper - return decorator - -mako_view = functools.partial(view, template_adapter=MakoTemplate) -cheetah_view = functools.partial(view, template_adapter=CheetahTemplate) -jinja2_view = functools.partial(view, template_adapter=Jinja2Template) - - - - - - -############################################################################### -# Constants and Globals ######################################################## -############################################################################### - - -TEMPLATE_PATH = ['./', './views/'] -TEMPLATES = {} -DEBUG = False -NORUN = False # If set, run() does nothing. Used by load_app() - -#: A dict to map HTTP status codes (e.g. 404) to phrases (e.g. 'Not Found') -HTTP_CODES = httplib.responses -HTTP_CODES[418] = "I'm a teapot" # RFC 2324 -HTTP_CODES[428] = "Precondition Required" -HTTP_CODES[429] = "Too Many Requests" -HTTP_CODES[431] = "Request Header Fields Too Large" -HTTP_CODES[511] = "Network Authentication Required" -_HTTP_STATUS_LINES = dict((k, '%d %s'%(k,v)) for (k,v) in HTTP_CODES.items()) - -#: The default template used for error pages. Override with @error() -ERROR_PAGE_TEMPLATE = """ -%%try: - %%from %s import DEBUG, HTTP_CODES, request, touni - - - - Error: {{e.status}} - - - -

Error: {{e.status}}

-

Sorry, the requested URL {{repr(request.url)}} - caused an error:

-
{{e.body}}
- %%if DEBUG and e.exception: -

Exception:

-
{{repr(e.exception)}}
- %%end - %%if DEBUG and e.traceback: -

Traceback:

-
{{e.traceback}}
- %%end - - -%%except ImportError: - ImportError: Could not generate the error page. Please add bottle to - the import path. -%%end -""" % __name__ - -#: A thread-safe instance of :class:`LocalRequest`. If accessed from within a -#: request callback, this instance always refers to the *current* request -#: (even on a multithreaded server). -request = LocalRequest() - -#: A thread-safe instance of :class:`LocalResponse`. It is used to change the -#: HTTP response for the *current* request. -response = LocalResponse() - -#: A thread-safe namespace. Not used by Bottle. -local = threading.local() - -# Initialize app stack (create first empty Bottle app) -# BC: 0.6.4 and needed for run() -app = default_app = AppStack() -app.push() - -#: A virtual package that redirects import statements. -#: Example: ``import bottle.ext.sqlite`` actually imports `bottle_sqlite`. -ext = _ImportRedirect('bottle.ext' if __name__ == '__main__' else __name__+".ext", 'bottle_%s').module - -if __name__ == '__main__': - opt, args, parser = _cmd_options, _cmd_args, _cmd_parser - if opt.version: - _stdout('Bottle %s\n'%__version__) - sys.exit(0) - if not args: - parser.print_help() - _stderr('\nError: No application specified.\n') - sys.exit(1) - - sys.path.insert(0, '.') - sys.modules.setdefault('bottle', sys.modules['__main__']) - - host, port = (opt.bind or 'localhost'), 8080 - if ':' in host and host.rfind(']') < host.rfind(':'): - host, port = host.rsplit(':', 1) - host = host.strip('[]') - - run(args[0], host=host, port=int(port), server=opt.server, - reloader=opt.reload, plugins=opt.plugin, debug=opt.debug) - - - - -# THE END diff --git a/share/frontend/impattern/old/index.html.old b/share/frontend/impattern/old/index.html.old deleted file mode 100644 index fbb5850..0000000 --- a/share/frontend/impattern/old/index.html.old +++ /dev/null @@ -1,305 +0,0 @@ - - - - - - - -
- -
- -
-Step 1: Choose your dither -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  
- - -
  -
- -
-Image to overlay: -Or Upload -
- - -
-
- - - - - - - - - diff --git a/share/frontend/impattern/old/oldpatterns/1.png b/share/frontend/impattern/old/oldpatterns/1.png deleted file mode 100644 index a0aeccb..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/1.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/10.png b/share/frontend/impattern/old/oldpatterns/10.png deleted file mode 100644 index 3865589..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/10.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/11.png b/share/frontend/impattern/old/oldpatterns/11.png deleted file mode 100644 index 2a8ca34..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/11.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/12.png b/share/frontend/impattern/old/oldpatterns/12.png deleted file mode 100644 index 4adb35f..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/12.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/13.png b/share/frontend/impattern/old/oldpatterns/13.png deleted file mode 100644 index 48e9362..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/13.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/14.png b/share/frontend/impattern/old/oldpatterns/14.png deleted file mode 100644 index 867b0a9..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/14.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/15.png b/share/frontend/impattern/old/oldpatterns/15.png deleted file mode 100644 index f37be5a..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/15.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/16.png b/share/frontend/impattern/old/oldpatterns/16.png deleted file mode 100644 index 7994ced..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/16.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/17.png b/share/frontend/impattern/old/oldpatterns/17.png deleted file mode 100644 index 9ffa444..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/17.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/18.png b/share/frontend/impattern/old/oldpatterns/18.png deleted file mode 100644 index 2522e8d..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/18.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/19.png b/share/frontend/impattern/old/oldpatterns/19.png deleted file mode 100644 index 5b4ac7a..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/19.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/2.png b/share/frontend/impattern/old/oldpatterns/2.png deleted file mode 100644 index a6aa256..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/2.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/20.png b/share/frontend/impattern/old/oldpatterns/20.png deleted file mode 100644 index 57a82c1..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/20.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/21.png b/share/frontend/impattern/old/oldpatterns/21.png deleted file mode 100644 index 2b671c7..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/21.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/22.png b/share/frontend/impattern/old/oldpatterns/22.png deleted file mode 100644 index d28f071..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/22.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/23.png b/share/frontend/impattern/old/oldpatterns/23.png deleted file mode 100644 index 052cf6f..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/23.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/24.png b/share/frontend/impattern/old/oldpatterns/24.png deleted file mode 100644 index 4bee000..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/24.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/25.png b/share/frontend/impattern/old/oldpatterns/25.png deleted file mode 100644 index cbd1097..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/25.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/26.png b/share/frontend/impattern/old/oldpatterns/26.png deleted file mode 100644 index 5fc32f4..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/26.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/27.png b/share/frontend/impattern/old/oldpatterns/27.png deleted file mode 100644 index 18ce493..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/27.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/28.png b/share/frontend/impattern/old/oldpatterns/28.png deleted file mode 100644 index 5924c44..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/28.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/29.png b/share/frontend/impattern/old/oldpatterns/29.png deleted file mode 100644 index 16fc2a5..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/29.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/3.png b/share/frontend/impattern/old/oldpatterns/3.png deleted file mode 100644 index 8c3d334..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/3.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/30.png b/share/frontend/impattern/old/oldpatterns/30.png deleted file mode 100644 index 50c8289..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/30.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/31.png b/share/frontend/impattern/old/oldpatterns/31.png deleted file mode 100644 index 3dd944e..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/31.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/32.png b/share/frontend/impattern/old/oldpatterns/32.png deleted file mode 100644 index 79aeb84..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/32.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/33.png b/share/frontend/impattern/old/oldpatterns/33.png deleted file mode 100644 index 55def42..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/33.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/34.png b/share/frontend/impattern/old/oldpatterns/34.png deleted file mode 100644 index f7616ea..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/34.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/35.png b/share/frontend/impattern/old/oldpatterns/35.png deleted file mode 100644 index 3ecbaaf..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/35.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/36.png b/share/frontend/impattern/old/oldpatterns/36.png deleted file mode 100644 index 0243cf7..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/36.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/37.png b/share/frontend/impattern/old/oldpatterns/37.png deleted file mode 100644 index 012ed79..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/37.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/38.png b/share/frontend/impattern/old/oldpatterns/38.png deleted file mode 100644 index 9aa54b7..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/38.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/39.png b/share/frontend/impattern/old/oldpatterns/39.png deleted file mode 100644 index e98ec53..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/39.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/4.png b/share/frontend/impattern/old/oldpatterns/4.png deleted file mode 100644 index 473e6e7..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/4.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/40.png b/share/frontend/impattern/old/oldpatterns/40.png deleted file mode 100644 index d7d7cba..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/40.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/41.png b/share/frontend/impattern/old/oldpatterns/41.png deleted file mode 100644 index 5d15dd7..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/41.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/42.png b/share/frontend/impattern/old/oldpatterns/42.png deleted file mode 100644 index dedbfe2..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/42.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/43.png b/share/frontend/impattern/old/oldpatterns/43.png deleted file mode 100644 index dd690d6..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/43.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/44.png b/share/frontend/impattern/old/oldpatterns/44.png deleted file mode 100644 index 12afc85..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/44.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/45.png b/share/frontend/impattern/old/oldpatterns/45.png deleted file mode 100644 index 972933b..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/45.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/46.png b/share/frontend/impattern/old/oldpatterns/46.png deleted file mode 100644 index 857ef06..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/46.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/47.png b/share/frontend/impattern/old/oldpatterns/47.png deleted file mode 100644 index 4002e54..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/47.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/48.png b/share/frontend/impattern/old/oldpatterns/48.png deleted file mode 100644 index ff785ed..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/48.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/49.png b/share/frontend/impattern/old/oldpatterns/49.png deleted file mode 100644 index 1a8525f..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/49.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/5.png b/share/frontend/impattern/old/oldpatterns/5.png deleted file mode 100644 index 7bd6619..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/5.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/50.png b/share/frontend/impattern/old/oldpatterns/50.png deleted file mode 100644 index f32d908..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/50.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/51.png b/share/frontend/impattern/old/oldpatterns/51.png deleted file mode 100644 index 20dc9ca..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/51.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/52.png b/share/frontend/impattern/old/oldpatterns/52.png deleted file mode 100644 index 0e097fa..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/52.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/53.png b/share/frontend/impattern/old/oldpatterns/53.png deleted file mode 100644 index eec7951..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/53.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/54.png b/share/frontend/impattern/old/oldpatterns/54.png deleted file mode 100644 index e23a862..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/54.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/55.png b/share/frontend/impattern/old/oldpatterns/55.png deleted file mode 100644 index d908a85..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/55.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/56.png b/share/frontend/impattern/old/oldpatterns/56.png deleted file mode 100644 index 330b589..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/56.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/57.png b/share/frontend/impattern/old/oldpatterns/57.png deleted file mode 100644 index d9587f3..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/57.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/58.png b/share/frontend/impattern/old/oldpatterns/58.png deleted file mode 100644 index 0ccfba0..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/58.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/59.png b/share/frontend/impattern/old/oldpatterns/59.png deleted file mode 100644 index 673a3b7..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/59.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/6.png b/share/frontend/impattern/old/oldpatterns/6.png deleted file mode 100644 index a3b8272..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/6.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/60.png b/share/frontend/impattern/old/oldpatterns/60.png deleted file mode 100644 index e8ea7a6..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/60.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/61.png b/share/frontend/impattern/old/oldpatterns/61.png deleted file mode 100644 index 4a8f42c..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/61.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/62.png b/share/frontend/impattern/old/oldpatterns/62.png deleted file mode 100644 index 491e211..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/62.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/63.png b/share/frontend/impattern/old/oldpatterns/63.png deleted file mode 100644 index 456203e..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/63.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/64.png b/share/frontend/impattern/old/oldpatterns/64.png deleted file mode 100644 index 363c9e1..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/64.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/65.png b/share/frontend/impattern/old/oldpatterns/65.png deleted file mode 100644 index 40b3ab0..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/65.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/66.png b/share/frontend/impattern/old/oldpatterns/66.png deleted file mode 100644 index 4c46c0d..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/66.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/67.png b/share/frontend/impattern/old/oldpatterns/67.png deleted file mode 100644 index 62f44fa..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/67.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/68.png b/share/frontend/impattern/old/oldpatterns/68.png deleted file mode 100644 index 32bd5bc..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/68.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/69.png b/share/frontend/impattern/old/oldpatterns/69.png deleted file mode 100644 index 35b5d56..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/69.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/7.png b/share/frontend/impattern/old/oldpatterns/7.png deleted file mode 100644 index 3e01636..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/7.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/70.png b/share/frontend/impattern/old/oldpatterns/70.png deleted file mode 100644 index a6771e5..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/70.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/71.png b/share/frontend/impattern/old/oldpatterns/71.png deleted file mode 100644 index 649c43f..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/71.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/72.png b/share/frontend/impattern/old/oldpatterns/72.png deleted file mode 100644 index d51cde8..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/72.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/73.png b/share/frontend/impattern/old/oldpatterns/73.png deleted file mode 100644 index 79d7585..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/73.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/74.png b/share/frontend/impattern/old/oldpatterns/74.png deleted file mode 100644 index 9e91e73..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/74.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/75.png b/share/frontend/impattern/old/oldpatterns/75.png deleted file mode 100644 index 8702a1e..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/75.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/76.png b/share/frontend/impattern/old/oldpatterns/76.png deleted file mode 100644 index 618f42a..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/76.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/77.png b/share/frontend/impattern/old/oldpatterns/77.png deleted file mode 100644 index a2b5966..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/77.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/78.png b/share/frontend/impattern/old/oldpatterns/78.png deleted file mode 100644 index 82867f8..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/78.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/79.png b/share/frontend/impattern/old/oldpatterns/79.png deleted file mode 100644 index 3bbd78d..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/79.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/8.png b/share/frontend/impattern/old/oldpatterns/8.png deleted file mode 100644 index 73f4d43..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/8.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/80.png b/share/frontend/impattern/old/oldpatterns/80.png deleted file mode 100644 index 810fba6..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/80.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/81.png b/share/frontend/impattern/old/oldpatterns/81.png deleted file mode 100644 index 92fa744..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/81.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/82.png b/share/frontend/impattern/old/oldpatterns/82.png deleted file mode 100644 index bc30bcf..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/82.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/83.png b/share/frontend/impattern/old/oldpatterns/83.png deleted file mode 100644 index caddb63..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/83.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/84.png b/share/frontend/impattern/old/oldpatterns/84.png deleted file mode 100644 index 4176f9a..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/84.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/85.png b/share/frontend/impattern/old/oldpatterns/85.png deleted file mode 100644 index 8215f71..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/85.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/86.png b/share/frontend/impattern/old/oldpatterns/86.png deleted file mode 100644 index c85e4f7..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/86.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/87.png b/share/frontend/impattern/old/oldpatterns/87.png deleted file mode 100644 index 2933559..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/87.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/88.png b/share/frontend/impattern/old/oldpatterns/88.png deleted file mode 100644 index 7793e19..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/88.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/89.png b/share/frontend/impattern/old/oldpatterns/89.png deleted file mode 100644 index 1523885..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/89.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/9.png b/share/frontend/impattern/old/oldpatterns/9.png deleted file mode 100644 index 6741ffd..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/9.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/90.png b/share/frontend/impattern/old/oldpatterns/90.png deleted file mode 100644 index e001830..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/90.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/91.png b/share/frontend/impattern/old/oldpatterns/91.png deleted file mode 100644 index e6e87f0..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/91.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/92.png b/share/frontend/impattern/old/oldpatterns/92.png deleted file mode 100644 index 30f150d..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/92.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/93.png b/share/frontend/impattern/old/oldpatterns/93.png deleted file mode 100644 index fb1c648..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/93.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/94.png b/share/frontend/impattern/old/oldpatterns/94.png deleted file mode 100644 index 171a461..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/94.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/95.png b/share/frontend/impattern/old/oldpatterns/95.png deleted file mode 100644 index 27f0f06..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/95.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/96.png b/share/frontend/impattern/old/oldpatterns/96.png deleted file mode 100644 index 11114ec..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/96.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a0.png b/share/frontend/impattern/old/oldpatterns/a0.png deleted file mode 100644 index 5fb0b18..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a0.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a1.png b/share/frontend/impattern/old/oldpatterns/a1.png deleted file mode 100644 index cab1780..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a1.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a10.png b/share/frontend/impattern/old/oldpatterns/a10.png deleted file mode 100644 index 193ff24..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a10.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a11.png b/share/frontend/impattern/old/oldpatterns/a11.png deleted file mode 100644 index a211a04..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a11.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a12.png b/share/frontend/impattern/old/oldpatterns/a12.png deleted file mode 100644 index 0c493b9..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a12.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a13.png b/share/frontend/impattern/old/oldpatterns/a13.png deleted file mode 100644 index bfa653c..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a13.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a14.png b/share/frontend/impattern/old/oldpatterns/a14.png deleted file mode 100644 index 10d7b13..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a14.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a15.png b/share/frontend/impattern/old/oldpatterns/a15.png deleted file mode 100644 index 2381078..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a15.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a16.png b/share/frontend/impattern/old/oldpatterns/a16.png deleted file mode 100644 index 9636ee5..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a16.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a17.png b/share/frontend/impattern/old/oldpatterns/a17.png deleted file mode 100644 index 9bc91db..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a17.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a18.png b/share/frontend/impattern/old/oldpatterns/a18.png deleted file mode 100644 index a2e2928..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a18.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a19.png b/share/frontend/impattern/old/oldpatterns/a19.png deleted file mode 100644 index 7d45270..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a19.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a2.png b/share/frontend/impattern/old/oldpatterns/a2.png deleted file mode 100644 index 7d9c7d9..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a2.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a20.png b/share/frontend/impattern/old/oldpatterns/a20.png deleted file mode 100644 index f670cf5..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a20.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a21.png b/share/frontend/impattern/old/oldpatterns/a21.png deleted file mode 100644 index 14aac9b..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a21.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a22.png b/share/frontend/impattern/old/oldpatterns/a22.png deleted file mode 100644 index e9f8a43..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a22.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a23.png b/share/frontend/impattern/old/oldpatterns/a23.png deleted file mode 100644 index bbdaa29..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a23.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a24.png b/share/frontend/impattern/old/oldpatterns/a24.png deleted file mode 100644 index 0746ced..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a24.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a25.png b/share/frontend/impattern/old/oldpatterns/a25.png deleted file mode 100644 index 2f23bdd..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a25.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a26.png b/share/frontend/impattern/old/oldpatterns/a26.png deleted file mode 100644 index 0e21976..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a26.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a27.png b/share/frontend/impattern/old/oldpatterns/a27.png deleted file mode 100644 index 0c11122..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a27.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a28.png b/share/frontend/impattern/old/oldpatterns/a28.png deleted file mode 100644 index 4469d65..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a28.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a29.png b/share/frontend/impattern/old/oldpatterns/a29.png deleted file mode 100644 index e956157..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a29.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a3.png b/share/frontend/impattern/old/oldpatterns/a3.png deleted file mode 100644 index 41cd44f..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a3.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a30.png b/share/frontend/impattern/old/oldpatterns/a30.png deleted file mode 100644 index 9058a6d..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a30.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a31.png b/share/frontend/impattern/old/oldpatterns/a31.png deleted file mode 100644 index 6692715..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a31.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a32.png b/share/frontend/impattern/old/oldpatterns/a32.png deleted file mode 100644 index daf16c1..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a32.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a33.png b/share/frontend/impattern/old/oldpatterns/a33.png deleted file mode 100644 index b3cee15..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a33.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a34.png b/share/frontend/impattern/old/oldpatterns/a34.png deleted file mode 100644 index 0557dae..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a34.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a35.png b/share/frontend/impattern/old/oldpatterns/a35.png deleted file mode 100644 index 66d88c9..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a35.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a36.png b/share/frontend/impattern/old/oldpatterns/a36.png deleted file mode 100644 index 7abb51b..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a36.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a37.png b/share/frontend/impattern/old/oldpatterns/a37.png deleted file mode 100644 index f30a1ce..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a37.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a38.png b/share/frontend/impattern/old/oldpatterns/a38.png deleted file mode 100644 index 3e03424..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a38.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a39.png b/share/frontend/impattern/old/oldpatterns/a39.png deleted file mode 100644 index a802ae0..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a39.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a4.png b/share/frontend/impattern/old/oldpatterns/a4.png deleted file mode 100644 index 943ecac..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a4.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a40.png b/share/frontend/impattern/old/oldpatterns/a40.png deleted file mode 100644 index 7e3f149..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a40.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a41.png b/share/frontend/impattern/old/oldpatterns/a41.png deleted file mode 100644 index 95a7558..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a41.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a5.png b/share/frontend/impattern/old/oldpatterns/a5.png deleted file mode 100644 index c0d0801..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a5.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a6.png b/share/frontend/impattern/old/oldpatterns/a6.png deleted file mode 100644 index 414ebb4..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a6.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a7.png b/share/frontend/impattern/old/oldpatterns/a7.png deleted file mode 100644 index e93e21f..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a7.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a8.png b/share/frontend/impattern/old/oldpatterns/a8.png deleted file mode 100644 index 8fa69bb..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a8.png and /dev/null differ diff --git a/share/frontend/impattern/old/oldpatterns/a9.png b/share/frontend/impattern/old/oldpatterns/a9.png deleted file mode 100644 index 98c81ad..0000000 Binary files a/share/frontend/impattern/old/oldpatterns/a9.png and /dev/null differ diff --git a/share/frontend/impattern/other_script.py b/share/frontend/impattern/other_script.py deleted file mode 100644 index a057646..0000000 --- a/share/frontend/impattern/other_script.py +++ /dev/null @@ -1,90 +0,0 @@ -#!/usr/bin/python - -import downloader -import filenamer -import inventnamer -import fieldstorager -import hexdirer -import cgi -from subprocess import Popen, PIPE -import os -import sys - -print "Content-Type: text/html" -print -print "" - -nametag = "imDither" - -MAIN_DIRECTORY = "" -#BIN_CONVERT = "/usr/bin/convert" -#BIN_IDENTIFY = "/usr/bin/identify" -#BIN_COMPOSITE = "/usr/bin/composite" -BIN_CONVERT = "convert" -BIN_IDENTIFY = "identify" -BIN_COMPOSITE = "composite" - -PARAM_LIST = "theurl thedither username format" - -form = cgi.FieldStorage() -newvalues = fieldstorager.fieldstorage(PARAM_LIST, form) -thekeys = PARAM_LIST.split() -for key in thekeys: - globals()[key] = newvalues[key] - -if username == None: - username = "" - -################################### -### TEST WITH VALUES HERE -theurl = "http://asdf.us/im/10/friedeggstresstoy_1321140711_1322282769_pepper.gif" -thedither = "1.png" -username = "pepper" -format = "png" -################################### -if format == None: - format = "png" - -class Dither: - def file_size (self, file): - return os.stat(file)[6] - def identify(self, thefile): - ident = Popen([BIN_IDENTIFY, thefile], stdout=PIPE).communicate()[0] - partz = ident.split(" ") - return partz[2].split("x") - def makeCanvas(self, dimensions, thefile): - os.system(BIN_CONVERT+" -size "+self.dimensions[0]+"x"+self.dimensions[1]+" canvas:transparent "+thefile) - def makeMask(self, themask, thedither, thebackground): - os.system(BIN_COMPOSITE+" -tile "+thedither+" "+thebackground+" "+themask) - #convert thebg.gif -compose Dst_In null: thefile.gif -matte -layers composite new.gif - os.system(BIN_CONVERT+" "+themask+" -compose Dst_In null: "+self.mainfile+" -matte -layers composite "+themask) - # os.system("rm "+thebackground) - def fuseMask(self, themask, theimage): - os.system(BIN_COMPOSITE+" "+theimage+" -compose Pin_Light "+themask+" "+theimage) - # os.system("rm "+themask) - def __init__(self, theurl, thedither, username): - self.mainfile = filenamer.filename(theurl, "imDither", username) - filepaths = hexdirer.hexdir() - self.privatepath = filepaths[0] - self.publicpath = filepaths[1] - self.privatepath = "" # - downloader.download(theurl, self.mainfile, self.privatepath) - parts = self.mainfile.split('.') - print parts - if "gif" in parts[-1]: - canvastype = "gif" - else: - canvastype = "png" - self.canvasfile = inventnamer.inventname(canvastype, "canvasfile") - self.dimensions = self.identify(self.mainfile) - self.makeCanvas(self.dimensions, self.canvasfile) - self.theMask = inventnamer.inventname(canvastype, "maskfile") - self.makeMask(self.theMask, thedither, self.canvasfile) - self.fuseMask(self.theMask, self.mainfile) - #self.mainfile = self.mainfile.replace(, do something with s3) - print self.mainfile - print self.file_size(self.mainfile) - print 'width: '+self.dimensions[0]+'px' - print 'height: '+self.dimensions[1]+'px' -daddy = Dither(theurl, thedither, username) - diff --git a/share/frontend/impattern/semi_patterns/1.png b/share/frontend/impattern/semi_patterns/1.png deleted file mode 100644 index a0aeccb..0000000 Binary files a/share/frontend/impattern/semi_patterns/1.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/10.png b/share/frontend/impattern/semi_patterns/10.png deleted file mode 100644 index 3865589..0000000 Binary files a/share/frontend/impattern/semi_patterns/10.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/11.png b/share/frontend/impattern/semi_patterns/11.png deleted file mode 100644 index 2a8ca34..0000000 Binary files a/share/frontend/impattern/semi_patterns/11.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/12.png b/share/frontend/impattern/semi_patterns/12.png deleted file mode 100644 index 4adb35f..0000000 Binary files a/share/frontend/impattern/semi_patterns/12.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/13.png b/share/frontend/impattern/semi_patterns/13.png deleted file mode 100644 index 48e9362..0000000 Binary files a/share/frontend/impattern/semi_patterns/13.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/14.png b/share/frontend/impattern/semi_patterns/14.png deleted file mode 100644 index 867b0a9..0000000 Binary files a/share/frontend/impattern/semi_patterns/14.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/15.png b/share/frontend/impattern/semi_patterns/15.png deleted file mode 100644 index f37be5a..0000000 Binary files a/share/frontend/impattern/semi_patterns/15.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/16.png b/share/frontend/impattern/semi_patterns/16.png deleted file mode 100644 index 7994ced..0000000 Binary files a/share/frontend/impattern/semi_patterns/16.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/17.png b/share/frontend/impattern/semi_patterns/17.png deleted file mode 100644 index 9ffa444..0000000 Binary files a/share/frontend/impattern/semi_patterns/17.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/18.png b/share/frontend/impattern/semi_patterns/18.png deleted file mode 100644 index 2522e8d..0000000 Binary files a/share/frontend/impattern/semi_patterns/18.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/19.png b/share/frontend/impattern/semi_patterns/19.png deleted file mode 100644 index 5b4ac7a..0000000 Binary files a/share/frontend/impattern/semi_patterns/19.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/2.png b/share/frontend/impattern/semi_patterns/2.png deleted file mode 100644 index a6aa256..0000000 Binary files a/share/frontend/impattern/semi_patterns/2.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/20.png b/share/frontend/impattern/semi_patterns/20.png deleted file mode 100644 index 57a82c1..0000000 Binary files a/share/frontend/impattern/semi_patterns/20.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/21.png b/share/frontend/impattern/semi_patterns/21.png deleted file mode 100644 index 2b671c7..0000000 Binary files a/share/frontend/impattern/semi_patterns/21.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/22.png b/share/frontend/impattern/semi_patterns/22.png deleted file mode 100644 index d28f071..0000000 Binary files a/share/frontend/impattern/semi_patterns/22.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/23.png b/share/frontend/impattern/semi_patterns/23.png deleted file mode 100644 index 052cf6f..0000000 Binary files a/share/frontend/impattern/semi_patterns/23.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/24.png b/share/frontend/impattern/semi_patterns/24.png deleted file mode 100644 index 4bee000..0000000 Binary files a/share/frontend/impattern/semi_patterns/24.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/25.png b/share/frontend/impattern/semi_patterns/25.png deleted file mode 100644 index cbd1097..0000000 Binary files a/share/frontend/impattern/semi_patterns/25.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/26.png b/share/frontend/impattern/semi_patterns/26.png deleted file mode 100644 index 5fc32f4..0000000 Binary files a/share/frontend/impattern/semi_patterns/26.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/27.png b/share/frontend/impattern/semi_patterns/27.png deleted file mode 100644 index 18ce493..0000000 Binary files a/share/frontend/impattern/semi_patterns/27.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/28.png b/share/frontend/impattern/semi_patterns/28.png deleted file mode 100644 index 5924c44..0000000 Binary files a/share/frontend/impattern/semi_patterns/28.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/29.png b/share/frontend/impattern/semi_patterns/29.png deleted file mode 100644 index 16fc2a5..0000000 Binary files a/share/frontend/impattern/semi_patterns/29.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/3.png b/share/frontend/impattern/semi_patterns/3.png deleted file mode 100644 index 8c3d334..0000000 Binary files a/share/frontend/impattern/semi_patterns/3.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/30.png b/share/frontend/impattern/semi_patterns/30.png deleted file mode 100644 index 50c8289..0000000 Binary files a/share/frontend/impattern/semi_patterns/30.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/31.png b/share/frontend/impattern/semi_patterns/31.png deleted file mode 100644 index 3dd944e..0000000 Binary files a/share/frontend/impattern/semi_patterns/31.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/32.png b/share/frontend/impattern/semi_patterns/32.png deleted file mode 100644 index 79aeb84..0000000 Binary files a/share/frontend/impattern/semi_patterns/32.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/33.png b/share/frontend/impattern/semi_patterns/33.png deleted file mode 100644 index 55def42..0000000 Binary files a/share/frontend/impattern/semi_patterns/33.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/34.png b/share/frontend/impattern/semi_patterns/34.png deleted file mode 100644 index f7616ea..0000000 Binary files a/share/frontend/impattern/semi_patterns/34.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/35.png b/share/frontend/impattern/semi_patterns/35.png deleted file mode 100644 index 3ecbaaf..0000000 Binary files a/share/frontend/impattern/semi_patterns/35.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/36.png b/share/frontend/impattern/semi_patterns/36.png deleted file mode 100644 index 0243cf7..0000000 Binary files a/share/frontend/impattern/semi_patterns/36.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/37.png b/share/frontend/impattern/semi_patterns/37.png deleted file mode 100644 index 012ed79..0000000 Binary files a/share/frontend/impattern/semi_patterns/37.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/38.png b/share/frontend/impattern/semi_patterns/38.png deleted file mode 100644 index 9aa54b7..0000000 Binary files a/share/frontend/impattern/semi_patterns/38.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/39.png b/share/frontend/impattern/semi_patterns/39.png deleted file mode 100644 index e98ec53..0000000 Binary files a/share/frontend/impattern/semi_patterns/39.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/4.png b/share/frontend/impattern/semi_patterns/4.png deleted file mode 100644 index 473e6e7..0000000 Binary files a/share/frontend/impattern/semi_patterns/4.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/40.png b/share/frontend/impattern/semi_patterns/40.png deleted file mode 100644 index d7d7cba..0000000 Binary files a/share/frontend/impattern/semi_patterns/40.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/41.png b/share/frontend/impattern/semi_patterns/41.png deleted file mode 100644 index 5d15dd7..0000000 Binary files a/share/frontend/impattern/semi_patterns/41.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/42.png b/share/frontend/impattern/semi_patterns/42.png deleted file mode 100644 index dedbfe2..0000000 Binary files a/share/frontend/impattern/semi_patterns/42.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/43.png b/share/frontend/impattern/semi_patterns/43.png deleted file mode 100644 index dd690d6..0000000 Binary files a/share/frontend/impattern/semi_patterns/43.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/44.png b/share/frontend/impattern/semi_patterns/44.png deleted file mode 100644 index 12afc85..0000000 Binary files a/share/frontend/impattern/semi_patterns/44.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/45.png b/share/frontend/impattern/semi_patterns/45.png deleted file mode 100644 index 972933b..0000000 Binary files a/share/frontend/impattern/semi_patterns/45.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/46.png b/share/frontend/impattern/semi_patterns/46.png deleted file mode 100644 index 857ef06..0000000 Binary files a/share/frontend/impattern/semi_patterns/46.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/47.png b/share/frontend/impattern/semi_patterns/47.png deleted file mode 100644 index 4002e54..0000000 Binary files a/share/frontend/impattern/semi_patterns/47.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/48.png b/share/frontend/impattern/semi_patterns/48.png deleted file mode 100644 index ff785ed..0000000 Binary files a/share/frontend/impattern/semi_patterns/48.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/49.png b/share/frontend/impattern/semi_patterns/49.png deleted file mode 100644 index 1a8525f..0000000 Binary files a/share/frontend/impattern/semi_patterns/49.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/5.png b/share/frontend/impattern/semi_patterns/5.png deleted file mode 100644 index 7bd6619..0000000 Binary files a/share/frontend/impattern/semi_patterns/5.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/50.png b/share/frontend/impattern/semi_patterns/50.png deleted file mode 100644 index f32d908..0000000 Binary files a/share/frontend/impattern/semi_patterns/50.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/51.png b/share/frontend/impattern/semi_patterns/51.png deleted file mode 100644 index 20dc9ca..0000000 Binary files a/share/frontend/impattern/semi_patterns/51.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/52.png b/share/frontend/impattern/semi_patterns/52.png deleted file mode 100644 index 0e097fa..0000000 Binary files a/share/frontend/impattern/semi_patterns/52.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/53.png b/share/frontend/impattern/semi_patterns/53.png deleted file mode 100644 index eec7951..0000000 Binary files a/share/frontend/impattern/semi_patterns/53.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/54.png b/share/frontend/impattern/semi_patterns/54.png deleted file mode 100644 index e23a862..0000000 Binary files a/share/frontend/impattern/semi_patterns/54.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/55.png b/share/frontend/impattern/semi_patterns/55.png deleted file mode 100644 index d908a85..0000000 Binary files a/share/frontend/impattern/semi_patterns/55.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/56.png b/share/frontend/impattern/semi_patterns/56.png deleted file mode 100644 index 330b589..0000000 Binary files a/share/frontend/impattern/semi_patterns/56.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/57.png b/share/frontend/impattern/semi_patterns/57.png deleted file mode 100644 index d9587f3..0000000 Binary files a/share/frontend/impattern/semi_patterns/57.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/58.png b/share/frontend/impattern/semi_patterns/58.png deleted file mode 100644 index 0ccfba0..0000000 Binary files a/share/frontend/impattern/semi_patterns/58.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/59.png b/share/frontend/impattern/semi_patterns/59.png deleted file mode 100644 index 673a3b7..0000000 Binary files a/share/frontend/impattern/semi_patterns/59.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/6.png b/share/frontend/impattern/semi_patterns/6.png deleted file mode 100644 index a3b8272..0000000 Binary files a/share/frontend/impattern/semi_patterns/6.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/60.png b/share/frontend/impattern/semi_patterns/60.png deleted file mode 100644 index e8ea7a6..0000000 Binary files a/share/frontend/impattern/semi_patterns/60.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/61.png b/share/frontend/impattern/semi_patterns/61.png deleted file mode 100644 index 4a8f42c..0000000 Binary files a/share/frontend/impattern/semi_patterns/61.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/62.png b/share/frontend/impattern/semi_patterns/62.png deleted file mode 100644 index 491e211..0000000 Binary files a/share/frontend/impattern/semi_patterns/62.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/63.png b/share/frontend/impattern/semi_patterns/63.png deleted file mode 100644 index 456203e..0000000 Binary files a/share/frontend/impattern/semi_patterns/63.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/64.png b/share/frontend/impattern/semi_patterns/64.png deleted file mode 100644 index 363c9e1..0000000 Binary files a/share/frontend/impattern/semi_patterns/64.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/65.png b/share/frontend/impattern/semi_patterns/65.png deleted file mode 100644 index 40b3ab0..0000000 Binary files a/share/frontend/impattern/semi_patterns/65.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/66.png b/share/frontend/impattern/semi_patterns/66.png deleted file mode 100644 index 4c46c0d..0000000 Binary files a/share/frontend/impattern/semi_patterns/66.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/67.png b/share/frontend/impattern/semi_patterns/67.png deleted file mode 100644 index 62f44fa..0000000 Binary files a/share/frontend/impattern/semi_patterns/67.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/68.png b/share/frontend/impattern/semi_patterns/68.png deleted file mode 100644 index 32bd5bc..0000000 Binary files a/share/frontend/impattern/semi_patterns/68.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/69.png b/share/frontend/impattern/semi_patterns/69.png deleted file mode 100644 index 35b5d56..0000000 Binary files a/share/frontend/impattern/semi_patterns/69.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/7.png b/share/frontend/impattern/semi_patterns/7.png deleted file mode 100644 index 3e01636..0000000 Binary files a/share/frontend/impattern/semi_patterns/7.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/70.png b/share/frontend/impattern/semi_patterns/70.png deleted file mode 100644 index a6771e5..0000000 Binary files a/share/frontend/impattern/semi_patterns/70.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/71.png b/share/frontend/impattern/semi_patterns/71.png deleted file mode 100644 index 649c43f..0000000 Binary files a/share/frontend/impattern/semi_patterns/71.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/72.png b/share/frontend/impattern/semi_patterns/72.png deleted file mode 100644 index d51cde8..0000000 Binary files a/share/frontend/impattern/semi_patterns/72.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/73.png b/share/frontend/impattern/semi_patterns/73.png deleted file mode 100644 index 79d7585..0000000 Binary files a/share/frontend/impattern/semi_patterns/73.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/74.png b/share/frontend/impattern/semi_patterns/74.png deleted file mode 100644 index 9e91e73..0000000 Binary files a/share/frontend/impattern/semi_patterns/74.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/75.png b/share/frontend/impattern/semi_patterns/75.png deleted file mode 100644 index 8702a1e..0000000 Binary files a/share/frontend/impattern/semi_patterns/75.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/76.png b/share/frontend/impattern/semi_patterns/76.png deleted file mode 100644 index 618f42a..0000000 Binary files a/share/frontend/impattern/semi_patterns/76.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/77.png b/share/frontend/impattern/semi_patterns/77.png deleted file mode 100644 index a2b5966..0000000 Binary files a/share/frontend/impattern/semi_patterns/77.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/78.png b/share/frontend/impattern/semi_patterns/78.png deleted file mode 100644 index 82867f8..0000000 Binary files a/share/frontend/impattern/semi_patterns/78.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/79.png b/share/frontend/impattern/semi_patterns/79.png deleted file mode 100644 index 3bbd78d..0000000 Binary files a/share/frontend/impattern/semi_patterns/79.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/8.png b/share/frontend/impattern/semi_patterns/8.png deleted file mode 100644 index 73f4d43..0000000 Binary files a/share/frontend/impattern/semi_patterns/8.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/80.png b/share/frontend/impattern/semi_patterns/80.png deleted file mode 100644 index 810fba6..0000000 Binary files a/share/frontend/impattern/semi_patterns/80.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/81.png b/share/frontend/impattern/semi_patterns/81.png deleted file mode 100644 index 92fa744..0000000 Binary files a/share/frontend/impattern/semi_patterns/81.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/82.png b/share/frontend/impattern/semi_patterns/82.png deleted file mode 100644 index bc30bcf..0000000 Binary files a/share/frontend/impattern/semi_patterns/82.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/83.png b/share/frontend/impattern/semi_patterns/83.png deleted file mode 100644 index caddb63..0000000 Binary files a/share/frontend/impattern/semi_patterns/83.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/84.png b/share/frontend/impattern/semi_patterns/84.png deleted file mode 100644 index 4176f9a..0000000 Binary files a/share/frontend/impattern/semi_patterns/84.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/85.png b/share/frontend/impattern/semi_patterns/85.png deleted file mode 100644 index 8215f71..0000000 Binary files a/share/frontend/impattern/semi_patterns/85.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/86.png b/share/frontend/impattern/semi_patterns/86.png deleted file mode 100644 index c85e4f7..0000000 Binary files a/share/frontend/impattern/semi_patterns/86.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/87.png b/share/frontend/impattern/semi_patterns/87.png deleted file mode 100644 index 2933559..0000000 Binary files a/share/frontend/impattern/semi_patterns/87.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/88.png b/share/frontend/impattern/semi_patterns/88.png deleted file mode 100644 index 7793e19..0000000 Binary files a/share/frontend/impattern/semi_patterns/88.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/89.png b/share/frontend/impattern/semi_patterns/89.png deleted file mode 100644 index 1523885..0000000 Binary files a/share/frontend/impattern/semi_patterns/89.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/9.png b/share/frontend/impattern/semi_patterns/9.png deleted file mode 100644 index 6741ffd..0000000 Binary files a/share/frontend/impattern/semi_patterns/9.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/90.png b/share/frontend/impattern/semi_patterns/90.png deleted file mode 100644 index e001830..0000000 Binary files a/share/frontend/impattern/semi_patterns/90.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/91.png b/share/frontend/impattern/semi_patterns/91.png deleted file mode 100644 index e6e87f0..0000000 Binary files a/share/frontend/impattern/semi_patterns/91.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/92.png b/share/frontend/impattern/semi_patterns/92.png deleted file mode 100644 index 30f150d..0000000 Binary files a/share/frontend/impattern/semi_patterns/92.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/93.png b/share/frontend/impattern/semi_patterns/93.png deleted file mode 100644 index fb1c648..0000000 Binary files a/share/frontend/impattern/semi_patterns/93.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/94.png b/share/frontend/impattern/semi_patterns/94.png deleted file mode 100644 index 171a461..0000000 Binary files a/share/frontend/impattern/semi_patterns/94.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/95.png b/share/frontend/impattern/semi_patterns/95.png deleted file mode 100644 index 27f0f06..0000000 Binary files a/share/frontend/impattern/semi_patterns/95.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/96.png b/share/frontend/impattern/semi_patterns/96.png deleted file mode 100644 index 11114ec..0000000 Binary files a/share/frontend/impattern/semi_patterns/96.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a0.png b/share/frontend/impattern/semi_patterns/a0.png deleted file mode 100644 index 5fb0b18..0000000 Binary files a/share/frontend/impattern/semi_patterns/a0.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a1.png b/share/frontend/impattern/semi_patterns/a1.png deleted file mode 100644 index cab1780..0000000 Binary files a/share/frontend/impattern/semi_patterns/a1.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a10.png b/share/frontend/impattern/semi_patterns/a10.png deleted file mode 100644 index 193ff24..0000000 Binary files a/share/frontend/impattern/semi_patterns/a10.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a11.png b/share/frontend/impattern/semi_patterns/a11.png deleted file mode 100644 index a211a04..0000000 Binary files a/share/frontend/impattern/semi_patterns/a11.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a12.png b/share/frontend/impattern/semi_patterns/a12.png deleted file mode 100644 index 0c493b9..0000000 Binary files a/share/frontend/impattern/semi_patterns/a12.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a13.png b/share/frontend/impattern/semi_patterns/a13.png deleted file mode 100644 index bfa653c..0000000 Binary files a/share/frontend/impattern/semi_patterns/a13.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a14.png b/share/frontend/impattern/semi_patterns/a14.png deleted file mode 100644 index 10d7b13..0000000 Binary files a/share/frontend/impattern/semi_patterns/a14.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a15.png b/share/frontend/impattern/semi_patterns/a15.png deleted file mode 100644 index 2381078..0000000 Binary files a/share/frontend/impattern/semi_patterns/a15.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a16.png b/share/frontend/impattern/semi_patterns/a16.png deleted file mode 100644 index 9636ee5..0000000 Binary files a/share/frontend/impattern/semi_patterns/a16.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a17.png b/share/frontend/impattern/semi_patterns/a17.png deleted file mode 100644 index 9bc91db..0000000 Binary files a/share/frontend/impattern/semi_patterns/a17.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a18.png b/share/frontend/impattern/semi_patterns/a18.png deleted file mode 100644 index a2e2928..0000000 Binary files a/share/frontend/impattern/semi_patterns/a18.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a19.png b/share/frontend/impattern/semi_patterns/a19.png deleted file mode 100644 index 7d45270..0000000 Binary files a/share/frontend/impattern/semi_patterns/a19.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a2.png b/share/frontend/impattern/semi_patterns/a2.png deleted file mode 100644 index 7d9c7d9..0000000 Binary files a/share/frontend/impattern/semi_patterns/a2.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a20.png b/share/frontend/impattern/semi_patterns/a20.png deleted file mode 100644 index f670cf5..0000000 Binary files a/share/frontend/impattern/semi_patterns/a20.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a21.png b/share/frontend/impattern/semi_patterns/a21.png deleted file mode 100644 index 14aac9b..0000000 Binary files a/share/frontend/impattern/semi_patterns/a21.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a22.png b/share/frontend/impattern/semi_patterns/a22.png deleted file mode 100644 index e9f8a43..0000000 Binary files a/share/frontend/impattern/semi_patterns/a22.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a23.png b/share/frontend/impattern/semi_patterns/a23.png deleted file mode 100644 index bbdaa29..0000000 Binary files a/share/frontend/impattern/semi_patterns/a23.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a24.png b/share/frontend/impattern/semi_patterns/a24.png deleted file mode 100644 index 0746ced..0000000 Binary files a/share/frontend/impattern/semi_patterns/a24.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a25.png b/share/frontend/impattern/semi_patterns/a25.png deleted file mode 100644 index 2f23bdd..0000000 Binary files a/share/frontend/impattern/semi_patterns/a25.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a26.png b/share/frontend/impattern/semi_patterns/a26.png deleted file mode 100644 index 0e21976..0000000 Binary files a/share/frontend/impattern/semi_patterns/a26.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a27.png b/share/frontend/impattern/semi_patterns/a27.png deleted file mode 100644 index 0c11122..0000000 Binary files a/share/frontend/impattern/semi_patterns/a27.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a28.png b/share/frontend/impattern/semi_patterns/a28.png deleted file mode 100644 index 4469d65..0000000 Binary files a/share/frontend/impattern/semi_patterns/a28.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a29.png b/share/frontend/impattern/semi_patterns/a29.png deleted file mode 100644 index e956157..0000000 Binary files a/share/frontend/impattern/semi_patterns/a29.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a3.png b/share/frontend/impattern/semi_patterns/a3.png deleted file mode 100644 index 41cd44f..0000000 Binary files a/share/frontend/impattern/semi_patterns/a3.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a30.png b/share/frontend/impattern/semi_patterns/a30.png deleted file mode 100644 index 9058a6d..0000000 Binary files a/share/frontend/impattern/semi_patterns/a30.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a31.png b/share/frontend/impattern/semi_patterns/a31.png deleted file mode 100644 index 6692715..0000000 Binary files a/share/frontend/impattern/semi_patterns/a31.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a32.png b/share/frontend/impattern/semi_patterns/a32.png deleted file mode 100644 index daf16c1..0000000 Binary files a/share/frontend/impattern/semi_patterns/a32.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a33.png b/share/frontend/impattern/semi_patterns/a33.png deleted file mode 100644 index b3cee15..0000000 Binary files a/share/frontend/impattern/semi_patterns/a33.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a34.png b/share/frontend/impattern/semi_patterns/a34.png deleted file mode 100644 index 0557dae..0000000 Binary files a/share/frontend/impattern/semi_patterns/a34.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a35.png b/share/frontend/impattern/semi_patterns/a35.png deleted file mode 100644 index 66d88c9..0000000 Binary files a/share/frontend/impattern/semi_patterns/a35.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a36.png b/share/frontend/impattern/semi_patterns/a36.png deleted file mode 100644 index 7abb51b..0000000 Binary files a/share/frontend/impattern/semi_patterns/a36.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a37.png b/share/frontend/impattern/semi_patterns/a37.png deleted file mode 100644 index f30a1ce..0000000 Binary files a/share/frontend/impattern/semi_patterns/a37.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a38.png b/share/frontend/impattern/semi_patterns/a38.png deleted file mode 100644 index 3e03424..0000000 Binary files a/share/frontend/impattern/semi_patterns/a38.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a39.png b/share/frontend/impattern/semi_patterns/a39.png deleted file mode 100644 index a802ae0..0000000 Binary files a/share/frontend/impattern/semi_patterns/a39.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a4.png b/share/frontend/impattern/semi_patterns/a4.png deleted file mode 100644 index 943ecac..0000000 Binary files a/share/frontend/impattern/semi_patterns/a4.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a40.png b/share/frontend/impattern/semi_patterns/a40.png deleted file mode 100644 index 7e3f149..0000000 Binary files a/share/frontend/impattern/semi_patterns/a40.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a41.png b/share/frontend/impattern/semi_patterns/a41.png deleted file mode 100644 index 95a7558..0000000 Binary files a/share/frontend/impattern/semi_patterns/a41.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a5.png b/share/frontend/impattern/semi_patterns/a5.png deleted file mode 100644 index c0d0801..0000000 Binary files a/share/frontend/impattern/semi_patterns/a5.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a6.png b/share/frontend/impattern/semi_patterns/a6.png deleted file mode 100644 index 414ebb4..0000000 Binary files a/share/frontend/impattern/semi_patterns/a6.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a7.png b/share/frontend/impattern/semi_patterns/a7.png deleted file mode 100644 index e93e21f..0000000 Binary files a/share/frontend/impattern/semi_patterns/a7.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a8.png b/share/frontend/impattern/semi_patterns/a8.png deleted file mode 100644 index 8fa69bb..0000000 Binary files a/share/frontend/impattern/semi_patterns/a8.png and /dev/null differ diff --git a/share/frontend/impattern/semi_patterns/a9.png b/share/frontend/impattern/semi_patterns/a9.png deleted file mode 100644 index 98c81ad..0000000 Binary files a/share/frontend/impattern/semi_patterns/a9.png and /dev/null differ diff --git a/share/frontend/js/zepto-0.7.zip b/share/frontend/js/zepto-0.7.zip deleted file mode 100644 index f46af99..0000000 Binary files a/share/frontend/js/zepto-0.7.zip and /dev/null differ diff --git a/share/frontend/js/zepto.js b/share/frontend/js/zepto.js deleted file mode 100644 index 2419eac..0000000 --- a/share/frontend/js/zepto.js +++ /dev/null @@ -1,4 +0,0 @@ -// Zepto.js -// (c) 2010, 2011 Thomas Fuchs -// Zepto.js may be freely distributed under the MIT license. -(function(a){String.prototype.trim===a&&(String.prototype.trim=function(){return this.replace(/^\s+/,"").replace(/\s+$/,"")}),Array.prototype.reduce===a&&(Array.prototype.reduce=function(b){if(this===void 0||this===null)throw new TypeError;var c=Object(this),d=c.length>>>0,e=0,f;if(typeof b!="function")throw new TypeError;if(d==0&&arguments.length==1)throw new TypeError;if(arguments.length>=2)f=arguments[1];else do{if(e in c){f=c[e++];break}if(++e>=d)throw new TypeError}while(!0);while(e=0||b===window?(e=[b],b=null):l.test(b)?(e=E(b,RegExp.$1),b=null):b.nodeType&&b.nodeType==3?e=[b]:e=c(g,b);return F(e,b)}function F(a,b){a=a||e,a.__proto__=F.prototype,a.selector=b||"";return a}function E(b,c){c===a&&l.test(b)&&RegExp.$1,c in r||(c="*");var d=r[c];d.innerHTML=""+b;return f.call(d.childNodes)}function D(a){var b,c;h[a]||(b=g.createElement(a),g.body.appendChild(b),c=j(b,"").getPropertyValue("display"),b.parentNode.removeChild(b),c=="none"&&(c="block"),h[a]=c);return h[a]}function C(a,b){return typeof b=="number"&&!k[z(a)]?b+"px":b}function B(a){return a in i?i[a]:i[a]=new RegExp("(^|\\s)"+a+"(\\s|$)")}function A(a){return a.filter(function(a,b,c){return c.indexOf(a)==b})}function z(a){return a.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function y(a){return a.replace(/-+(.)?/g,function(a,b){return b?b.toUpperCase():""})}function x(a){return a.length>0?[].concat.apply([],a):a}function w(b){return b.filter(function(b){return b!==a&&b!==null})}function v(a){return typeof a.length=="number"}function u(a){return a instanceof Array}function t(a){return a instanceof Object}function s(a){return{}.toString.call(a)=="[object Function]"}var a,b,c,d,e=[],f=e.slice,g=window.document,h={},i={},j=g.defaultView.getComputedStyle,k={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},l=/^\s*<(\w+)[^>]*>/,m=[1,9,11],n=["prepend","after","before","append"],o=["append","prepend"],p=g.createElement("table"),q=g.createElement("tr"),r={tr:g.createElement("tbody"),tbody:p,thead:p,tfoot:p,td:q,th:q,"*":g.createElement("div")};G.extend=function(a){f.call(arguments,1).forEach(function(c){for(b in c)a[b]=c[b]});return a},G.qsa=c=function(a,b){return f.call(a.querySelectorAll(b))},G.isFunction=s,G.isObject=t,G.isArray=u,G.map=function(a,b){var c,d=[],e,f;if(v(a))for(e=0;e=0}))},end:function(){return this.prevObject||G()},add:function(a,b){return G(A(this.concat(G(a,b))))},is:function(a){return this.length>0&&G(this[0]).filter(a).length>0},not:function(b){var c=[];if(s(b)&&b.call!==a)this.each(function(a){b.call(this,a)||c.push(this)});else{var d=typeof b=="string"?this.filter(b):v(b)&&s(b.item)?f.call(b):G(b);this.forEach(function(a){d.indexOf(a)<0&&c.push(a)})}return G(c)},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return G(this[0])},last:function(){return G(this[this.length-1])},find:function(a){var b;this.length==1?b=c(this[0],a):b=this.map(function(){return c(this,a)});return G(b)},closest:function(b,d){var e=this[0],f=c(d!==a?d:g,b);f.length===0&&(e=null);while(e&&e!==g&&f.indexOf(e)<0)e=e.parentNode;return G(e!==g&&e)},parents:function(a){var b=[],c=this;while(c.length>0)c=G.map(c,function(a){if((a=a.parentNode)&&a!==g&&b.indexOf(a)<0){b.push(a);return a}});return H(b,a)},parent:function(a){return H(A(this.pluck("parentNode")),a)},children:function(a){return H(this.map(function(){return f.call(this.children)}),a)},siblings:function(a){return H(this.map(function(a,b){return f.call(b.parentNode.children).filter(function(a){return a!==b})}),a)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(a){return this.map(function(){return this[a]})},show:function(){return this.each(function(){this.style.display=="none"&&(this.style.display=null),j(this,"").getPropertyValue("display")=="none"&&(this.style.display=D(this.nodeName))})},replaceWith:function(a){return this.each(function(){var b=this.parentNode,c=this.nextSibling;G(this).remove(),c?G(c).before(a):G(b).append(a)})},wrap:function(a){return this.each(function(){G(this).wrapAll(G(a)[0].cloneNode(!1))})},wrapAll:function(a){this[0]&&(G(this[0]).before(a=G(a)),a.append(this));return this},unwrap:function(){this.parent().each(function(){G(this).replaceWith(G(this).children())});return this},hide:function(){return this.css("display","none")},toggle:function(b){return(b===a?this.css("display")=="none":b)?this.show():this.hide()},prev:function(){return G(this.pluck("previousElementSibling"))},next:function(){return G(this.pluck("nextElementSibling"))},html:function(b){return b===a?this.length>0?this[0].innerHTML:null:this.each(function(a){var c=this.innerHTML;G(this).empty().append(I(this,b,a,c))})},text:function(b){return b===a?this.length>0?this[0].textContent:null:this.each(function(){this.textContent=b})},attr:function(c,d){return typeof c=="string"&&d===a?this.length>0&&this[0].nodeName=="INPUT"&&this[0].type=="text"&&c=="value"?this.val():this.length>0?this[0].getAttribute(c)||(c in this[0]?this[0][c]:a):a:this.each(function(a){if(t(c))for(b in c)this.setAttribute(b,c[b]);else this.setAttribute(c,I(this,d,a,this.getAttribute(c)))})},removeAttr:function(a){return this.each(function(){this.removeAttribute(a)})},data:function(a,b){return this.attr("data-"+a,b)},val:function(b){return b===a?this.length>0?this[0].value:null:this.each(function(){this.value=b})},offset:function(){if(this.length==0)return null;var a=this[0].getBoundingClientRect();return{left:a.left+g.body.scrollLeft,top:a.top+g.body.scrollTop,width:a.width,height:a.height}},css:function(c,d){if(d===a&&typeof c=="string")return this[0].style[y(c)]||j(this[0],"").getPropertyValue(c);var e="";for(b in c)e+=z(b)+":"+C(b,c[b])+";";typeof c=="string"&&(e=z(c)+":"+C(c,d));return this.each(function(){this.style.cssText+=";"+e})},index:function(a){return a?this.indexOf(G(a)[0]):this.parent().children().indexOf(this[0])},hasClass:function(a){return this.length<1?!1:B(a).test(this[0].className)},addClass:function(a){return this.each(function(b){d=[];var c=this.className,e=I(this,a,b,c);e.split(/\s+/g).forEach(function(a){G(this).hasClass(a)||d.push(a)},this),d.length&&(this.className+=(c?" ":"")+d.join(" "))})},removeClass:function(b){return this.each(function(c){if(b===a)return this.className="";d=this.className,I(this,b,c,d).split(/\s+/g).forEach(function(a){d=d.replace(B(a)," ")}),this.className=d.trim()})},toggleClass:function(b,c){return this.each(function(d){var e=this.className,f=I(this,b,d,e);c!==a&&!c||G(this).hasClass(f)?G(this).removeClass(f):G(this).addClass(f)})}},"filter,add,not,eq,first,last,find,closest,parents,parent,children,siblings".split(",").forEach(function(a){var b=G.fn[a];G.fn[a]=function(){var a=b.apply(this,arguments);a.prevObject=this;return a}}),["width","height"].forEach(function(b){G.fn[b]=function(c){var d;return c===a?(d=this.offset())&&d[b]:this.css(b,c)}}),n.forEach(function(a,b){G.fn[a]=function(a){var c=typeof a=="object"?a:E(a);"length"in c||(c=[c]);if(c.length<1)return this;var d=this.length,e=d>1,f=b<2;return this.each(function(a,g){for(var h=0;h=0?g.push(i+"("+a[i]+")"):h[i]=a[i];k=function(){j.css({"-webkit-transition":"none"}),f&&f()},d>0?this.one("webkitTransitionEnd",k):setTimeout(k,0),g.length>0&&(h["-webkit-transform"]=g.join(" ")),h["-webkit-transition"]="all "+(d!==b?d:.5)+"s "+(e||""),setTimeout(function(){j.css(h)},0);return this}}(Zepto),function(a){function e(){}var b=0,c=a.isObject,d;a.ajaxJSONP=function(c){var d="jsonp"+ ++b,e=document.createElement("script");window[d]=function(a){c.success(a),delete window[d]},e.src=c.url.replace(/=\?/,"="+d),a("head").append(e)},a.ajaxSettings={type:"GET",beforeSend:e,success:e,error:e,complete:e,accepts:{script:"text/javascript, application/javascript",json:"application/json",xml:"application/xml, text/xml",html:"text/html",text:"text/plain"}},a.ajax=function(b){b=b||{};var e=a.extend({},b);for(d in a.ajaxSettings)e[d]||(e[d]=a.ajaxSettings[d]);if(/=\?/.test(e.url))return a.ajaxJSONP(e);e.url||(e.url=window.location.toString()),e.data&&!e.contentType&&(e.contentType="application/x-www-form-urlencoded"),c(e.data)&&(e.data=a.param(e.data));if(e.type.match(/get/i)&&e.data){var f=e.data;e.url.match(/\?.*=/)?f="&"+f:f[0]!="?"&&(f="?"+f),e.url+=f}var g=e.accepts[e.dataType],h=new XMLHttpRequest;e.headers=a.extend({"X-Requested-With":"XMLHttpRequest"},e.headers||{}),g&&(e.headers.Accept=g),h.onreadystatechange=function(){if(h.readyState==4){var a,b=!1;if(h.status>=200&&h.status<300||h.status==0){if(g=="application/json"&&h.responseText!="")try{a=JSON.parse(h.responseText)}catch(c){b=c}else a=h.responseText;b?e.error(h,"parsererror",b):e.success(a,"success",h)}else b=!0,e.error(h,"error");e.complete(h,b?"error":"success")}},h.open(e.type,e.url,!0);if(e.beforeSend(h,e)===!1){h.abort();return!1}e.contentType&&(e.headers["Content-Type"]=e.contentType);for(name in e.headers)h.setRequestHeader(name,e.headers[name]);h.send(e.data);return h},a.get=function(b,c){a.ajax({url:b,success:c})},a.post=function(b,c,d,e){a.isFunction(c)&&(e=e||d,d=c,c=null),a.ajax({type:"POST",url:b,data:c,success:d,dataType:e})},a.getJSON=function(b,c){a.ajax({url:b,success:c,dataType:"json"})},a.fn.load=function(b,c){if(!this.length)return this;var d=this,e=b.split(/\s/),f;e.length>1&&(b=e[0],f=e[1]),a.get(b,function(b){d.html(f?a(document.createElement("div")).html(b).find(f).html():b),c&&c()});return this},a.param=function(b,e){var f=[],g=function(a,b){f.push(encodeURIComponent(e?e+"["+a+"]":a)+"="+encodeURIComponent(b))},h=a.isArray(b);for(d in b)c(b[d])?f.push(a.param(b[d],e?e+"["+d+"]":d)):g(h?"":d,b[d]);return f.join("&").replace("%20","+")}}(Zepto),function(a){a.fn.serializeArray=function(){var b=[],c;a(Array.prototype.slice.call(this.get(0).elements)).each(function(){c=a(this),(c.attr("type")!=="radio"||c.is(":checked"))&&(c.attr("type")!=="checkbox"||!!c.is(":checked"))&&b.push({name:c.attr("name"),value:c.val()})});return b},a.fn.serialize=function(){var a=[];this.serializeArray().forEach(function(b){a.push(encodeURIComponent(b.name)+"="+encodeURIComponent(b.value))});return a.join("&")},a.fn.submit=function(b){if(b)this.bind("submit",b);else if(this.length){var c=a.Event("submit");this.eq(0).trigger(c),c.defaultPrevented||this.get(0).submit()}return this}}(Zepto),function(a){function g(){b.last&&Date.now()-b.last>=f&&(a(b.target).trigger("longTap"),b={})}function e(a,b,c,d){var e=Math.abs(a-b),f=Math.abs(c-d);return e>=f?a-b>0?"Left":"Right":c-d>0?"Up":"Down"}function d(a){return"tagName"in a?a:a.parentNode}var b={},c,f=750;a(document).ready(function(){a(document.body).bind("touchstart",function(a){var e=Date.now(),h=e-(b.last||e);b.target=d(a.touches[0].target),c&&clearTimeout(c),b.x1=a.touches[0].pageX,b.y1=a.touches[0].pageY,h>0&&h<=250&&(b.isDoubleTap=!0),b.last=e,setTimeout(g,f)}).bind("touchmove",function(a){b.x2=a.touches[0].pageX,b.y2=a.touches[0].pageY}).bind("touchend",function(d){b.isDoubleTap?(a(b.target).trigger("doubleTap"),b={}):b.x2>0||b.y2>0?((Math.abs(b.x1-b.x2)>30||Math.abs(b.y1-b.y2)>30)&&a(b.target).trigger("swipe")&&a(b.target).trigger("swipe"+e(b.x1,b.x2,b.y1,b.y2)),b.x1=b.x2=b.y1=b.y2=b.last=0):"last"in b&&(c=setTimeout(function(){c=null,a(b.target).trigger("tap"),b={}},250))}).bind("touchcancel",function(){b={}})}),["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap","longTap"].forEach(function(b){a.fn[b]=function(a){return this.bind(b,a)}})}(Zepto) -- cgit v1.2.3-70-g09d2