using System;
using System.Collections.Generic;
using System.Drawing;

namespace FastReport.Export.Dxf.Utils
{
    public static class ACIDictionary
    {
        #region Public Fields

        /// <summary>
        /// AutoCAD Color Index -> RGB Color table
        /// </summary>
        public static Dictionary<byte, Color> ACI_RGB = new Dictionary<byte, Color>();

        /// <summary>
        /// RGB Color table -> AutoCAD Color Index
        /// </summary>
        public static Dictionary<Color, byte> RGB_ACI = new Dictionary<Color, byte>();

        #endregion Public Fields

        #region Public Constructors

        static ACIDictionary()
        {
            ACI_RGB.Add(1, Color.FromArgb(255, 0, 0));
            ACI_RGB.Add(2, Color.FromArgb(255, 255, 0));
            ACI_RGB.Add(3, Color.FromArgb(0, 255, 0));
            ACI_RGB.Add(4, Color.FromArgb(0, 255, 255));
            ACI_RGB.Add(5, Color.FromArgb(0, 0, 255));
            ACI_RGB.Add(6, Color.FromArgb(255, 0, 255));
            //ACI_RGB.Add(7, Color.FromArgb(255, 255, 255));
            ACI_RGB.Add(8, Color.FromArgb(128, 128, 128));
            ACI_RGB.Add(9, Color.FromArgb(192, 192, 192));
            //ACI_RGB.Add(10, Color.FromArgb(255, 0, 0));
            ACI_RGB.Add(11, Color.FromArgb(255, 127, 127));
            ACI_RGB.Add(12, Color.FromArgb(204, 0, 0));
            ACI_RGB.Add(13, Color.FromArgb(204, 102, 102));
            ACI_RGB.Add(14, Color.FromArgb(153, 0, 0));
            ACI_RGB.Add(15, Color.FromArgb(153, 76, 76));
            ACI_RGB.Add(16, Color.FromArgb(127, 0, 0));
            ACI_RGB.Add(17, Color.FromArgb(127, 63, 63));
            ACI_RGB.Add(18, Color.FromArgb(76, 0, 0));
            ACI_RGB.Add(19, Color.FromArgb(76, 38, 38));
            ACI_RGB.Add(20, Color.FromArgb(255, 63, 0));
            ACI_RGB.Add(21, Color.FromArgb(255, 159, 127));
            ACI_RGB.Add(22, Color.FromArgb(204, 51, 0));
            ACI_RGB.Add(23, Color.FromArgb(204, 127, 102));
            ACI_RGB.Add(24, Color.FromArgb(153, 38, 0));
            ACI_RGB.Add(25, Color.FromArgb(153, 95, 76));
            ACI_RGB.Add(26, Color.FromArgb(127, 31, 0));
            ACI_RGB.Add(27, Color.FromArgb(127, 79, 63));
            ACI_RGB.Add(28, Color.FromArgb(76, 19, 0));
            ACI_RGB.Add(29, Color.FromArgb(76, 47, 38));
            ACI_RGB.Add(30, Color.FromArgb(255, 127, 0));
            ACI_RGB.Add(31, Color.FromArgb(255, 191, 127));
            ACI_RGB.Add(32, Color.FromArgb(204, 102, 0));
            ACI_RGB.Add(33, Color.FromArgb(204, 153, 102));
            ACI_RGB.Add(34, Color.FromArgb(153, 76, 0));
            ACI_RGB.Add(35, Color.FromArgb(153, 114, 76));
            ACI_RGB.Add(36, Color.FromArgb(127, 63, 0));
            ACI_RGB.Add(37, Color.FromArgb(127, 95, 63));
            ACI_RGB.Add(38, Color.FromArgb(76, 38, 0));
            ACI_RGB.Add(39, Color.FromArgb(76, 57, 38));
            ACI_RGB.Add(40, Color.FromArgb(255, 191, 0));
            ACI_RGB.Add(41, Color.FromArgb(255, 223, 127));
            ACI_RGB.Add(42, Color.FromArgb(204, 153, 0));
            ACI_RGB.Add(43, Color.FromArgb(204, 178, 102));
            ACI_RGB.Add(44, Color.FromArgb(153, 114, 0));
            ACI_RGB.Add(45, Color.FromArgb(153, 133, 76));
            ACI_RGB.Add(46, Color.FromArgb(127, 95, 0));
            ACI_RGB.Add(47, Color.FromArgb(127, 111, 63));
            ACI_RGB.Add(48, Color.FromArgb(76, 57, 0));
            ACI_RGB.Add(49, Color.FromArgb(76, 66, 38));
            //ACI_RGB.Add(50, Color.FromArgb(255, 255, 0));
            ACI_RGB.Add(51, Color.FromArgb(255, 255, 127));
            ACI_RGB.Add(52, Color.FromArgb(204, 204, 0));
            ACI_RGB.Add(53, Color.FromArgb(204, 204, 102));
            ACI_RGB.Add(54, Color.FromArgb(152, 152, 0));
            ACI_RGB.Add(55, Color.FromArgb(152, 152, 76));
            ACI_RGB.Add(56, Color.FromArgb(127, 127, 0));
            ACI_RGB.Add(57, Color.FromArgb(127, 127, 63));
            ACI_RGB.Add(58, Color.FromArgb(76, 76, 0));
            ACI_RGB.Add(59, Color.FromArgb(76, 76, 38));
            ACI_RGB.Add(60, Color.FromArgb(191, 255, 0));
            ACI_RGB.Add(61, Color.FromArgb(223, 255, 127));
            ACI_RGB.Add(62, Color.FromArgb(153, 204, 0));
            ACI_RGB.Add(63, Color.FromArgb(178, 204, 102));
            ACI_RGB.Add(64, Color.FromArgb(114, 152, 0));
            ACI_RGB.Add(65, Color.FromArgb(133, 152, 76));
            ACI_RGB.Add(66, Color.FromArgb(95, 127, 0));
            ACI_RGB.Add(67, Color.FromArgb(111, 127, 63));
            ACI_RGB.Add(68, Color.FromArgb(57, 76, 0));
            ACI_RGB.Add(69, Color.FromArgb(66, 76, 38));
            ACI_RGB.Add(70, Color.FromArgb(127, 255, 0));
            ACI_RGB.Add(71, Color.FromArgb(191, 255, 127));
            ACI_RGB.Add(72, Color.FromArgb(102, 204, 0));
            ACI_RGB.Add(73, Color.FromArgb(153, 204, 102));
            ACI_RGB.Add(74, Color.FromArgb(76, 152, 0));
            ACI_RGB.Add(75, Color.FromArgb(114, 152, 76));
            ACI_RGB.Add(76, Color.FromArgb(63, 127, 0));
            ACI_RGB.Add(77, Color.FromArgb(95, 127, 63));
            ACI_RGB.Add(78, Color.FromArgb(38, 76, 0));
            ACI_RGB.Add(79, Color.FromArgb(57, 76, 38));
            ACI_RGB.Add(80, Color.FromArgb(63, 255, 0));
            ACI_RGB.Add(81, Color.FromArgb(159, 255, 127));
            ACI_RGB.Add(82, Color.FromArgb(51, 204, 0));
            ACI_RGB.Add(83, Color.FromArgb(127, 204, 102));
            ACI_RGB.Add(84, Color.FromArgb(38, 152, 0));
            ACI_RGB.Add(85, Color.FromArgb(95, 152, 76));
            ACI_RGB.Add(86, Color.FromArgb(31, 127, 0));
            ACI_RGB.Add(87, Color.FromArgb(79, 127, 63));
            ACI_RGB.Add(88, Color.FromArgb(19, 76, 0));
            ACI_RGB.Add(89, Color.FromArgb(47, 76, 38));
            //ACI_RGB.Add(90, Color.FromArgb(0, 255, 0));
            ACI_RGB.Add(91, Color.FromArgb(127, 255, 127));
            ACI_RGB.Add(92, Color.FromArgb(0, 204, 0));
            ACI_RGB.Add(93, Color.FromArgb(102, 204, 102));
            ACI_RGB.Add(94, Color.FromArgb(0, 152, 0));
            ACI_RGB.Add(95, Color.FromArgb(76, 152, 76));
            ACI_RGB.Add(96, Color.FromArgb(0, 127, 0));
            ACI_RGB.Add(97, Color.FromArgb(63, 127, 63));
            ACI_RGB.Add(98, Color.FromArgb(0, 76, 0));
            ACI_RGB.Add(99, Color.FromArgb(38, 76, 38));
            ACI_RGB.Add(100, Color.FromArgb(0, 255, 63));
            ACI_RGB.Add(101, Color.FromArgb(127, 255, 159));
            ACI_RGB.Add(102, Color.FromArgb(0, 204, 51));
            ACI_RGB.Add(103, Color.FromArgb(102, 204, 127));
            ACI_RGB.Add(104, Color.FromArgb(0, 152, 38));
            ACI_RGB.Add(105, Color.FromArgb(76, 152, 95));
            ACI_RGB.Add(106, Color.FromArgb(0, 127, 31));
            ACI_RGB.Add(107, Color.FromArgb(63, 127, 79));
            ACI_RGB.Add(108, Color.FromArgb(0, 76, 19));
            ACI_RGB.Add(109, Color.FromArgb(38, 76, 47));
            ACI_RGB.Add(110, Color.FromArgb(0, 255, 127));
            ACI_RGB.Add(111, Color.FromArgb(127, 255, 191));
            ACI_RGB.Add(112, Color.FromArgb(0, 204, 102));
            ACI_RGB.Add(113, Color.FromArgb(102, 204, 153));
            ACI_RGB.Add(114, Color.FromArgb(0, 152, 76));
            ACI_RGB.Add(115, Color.FromArgb(76, 152, 114));
            ACI_RGB.Add(116, Color.FromArgb(0, 127, 63));
            ACI_RGB.Add(117, Color.FromArgb(63, 127, 95));
            ACI_RGB.Add(118, Color.FromArgb(0, 76, 38));
            ACI_RGB.Add(119, Color.FromArgb(38, 76, 57));
            ACI_RGB.Add(120, Color.FromArgb(0, 255, 191));
            ACI_RGB.Add(121, Color.FromArgb(127, 255, 223));
            ACI_RGB.Add(122, Color.FromArgb(0, 204, 153));
            ACI_RGB.Add(123, Color.FromArgb(102, 204, 178));
            ACI_RGB.Add(124, Color.FromArgb(0, 152, 114));
            ACI_RGB.Add(125, Color.FromArgb(76, 152, 133));
            ACI_RGB.Add(126, Color.FromArgb(0, 127, 95));
            ACI_RGB.Add(127, Color.FromArgb(63, 127, 111));
            ACI_RGB.Add(128, Color.FromArgb(0, 76, 57));
            ACI_RGB.Add(129, Color.FromArgb(38, 76, 66));
            //ACI_RGB.Add(130, Color.FromArgb(0, 255, 255));
            ACI_RGB.Add(131, Color.FromArgb(127, 255, 255));
            ACI_RGB.Add(132, Color.FromArgb(0, 204, 204));
            ACI_RGB.Add(133, Color.FromArgb(102, 204, 204));
            ACI_RGB.Add(134, Color.FromArgb(0, 152, 152));
            ACI_RGB.Add(135, Color.FromArgb(76, 152, 152));
            ACI_RGB.Add(136, Color.FromArgb(0, 127, 127));
            ACI_RGB.Add(137, Color.FromArgb(63, 127, 127));
            ACI_RGB.Add(138, Color.FromArgb(0, 76, 76));
            ACI_RGB.Add(139, Color.FromArgb(38, 76, 76));
            ACI_RGB.Add(140, Color.FromArgb(0, 191, 255));
            ACI_RGB.Add(141, Color.FromArgb(127, 223, 255));
            ACI_RGB.Add(142, Color.FromArgb(0, 153, 204));
            ACI_RGB.Add(143, Color.FromArgb(102, 178, 204));
            ACI_RGB.Add(144, Color.FromArgb(0, 114, 152));
            ACI_RGB.Add(145, Color.FromArgb(76, 133, 152));
            ACI_RGB.Add(146, Color.FromArgb(0, 95, 127));
            ACI_RGB.Add(147, Color.FromArgb(63, 111, 127));
            ACI_RGB.Add(148, Color.FromArgb(0, 57, 76));
            ACI_RGB.Add(149, Color.FromArgb(38, 66, 76));
            ACI_RGB.Add(150, Color.FromArgb(0, 127, 255));
            ACI_RGB.Add(151, Color.FromArgb(127, 191, 255));
            ACI_RGB.Add(152, Color.FromArgb(0, 102, 204));
            ACI_RGB.Add(153, Color.FromArgb(102, 153, 204));
            ACI_RGB.Add(154, Color.FromArgb(0, 76, 152));
            ACI_RGB.Add(155, Color.FromArgb(76, 114, 152));
            ACI_RGB.Add(156, Color.FromArgb(0, 63, 127));
            ACI_RGB.Add(157, Color.FromArgb(63, 95, 127));
            ACI_RGB.Add(158, Color.FromArgb(0, 38, 76));
            ACI_RGB.Add(159, Color.FromArgb(38, 57, 76));
            ACI_RGB.Add(160, Color.FromArgb(0, 63, 255));
            ACI_RGB.Add(161, Color.FromArgb(127, 159, 255));
            ACI_RGB.Add(162, Color.FromArgb(0, 51, 204));
            ACI_RGB.Add(163, Color.FromArgb(102, 127, 204));
            ACI_RGB.Add(164, Color.FromArgb(0, 38, 152));
            ACI_RGB.Add(165, Color.FromArgb(76, 95, 152));
            ACI_RGB.Add(166, Color.FromArgb(0, 31, 127));
            ACI_RGB.Add(167, Color.FromArgb(63, 79, 127));
            ACI_RGB.Add(168, Color.FromArgb(0, 19, 76));
            ACI_RGB.Add(169, Color.FromArgb(38, 47, 76));
            //ACI_RGB.Add(170, Color.FromArgb(0, 0, 255));
            ACI_RGB.Add(171, Color.FromArgb(127, 127, 255));
            ACI_RGB.Add(172, Color.FromArgb(0, 0, 204));
            ACI_RGB.Add(173, Color.FromArgb(102, 102, 204));
            ACI_RGB.Add(174, Color.FromArgb(0, 0, 152));
            ACI_RGB.Add(175, Color.FromArgb(76, 76, 152));
            ACI_RGB.Add(176, Color.FromArgb(0, 0, 127));
            ACI_RGB.Add(177, Color.FromArgb(63, 63, 127));
            ACI_RGB.Add(178, Color.FromArgb(0, 0, 76));
            ACI_RGB.Add(179, Color.FromArgb(38, 38, 76));
            ACI_RGB.Add(180, Color.FromArgb(63, 0, 255));
            ACI_RGB.Add(181, Color.FromArgb(159, 127, 255));
            ACI_RGB.Add(182, Color.FromArgb(51, 0, 204));
            ACI_RGB.Add(183, Color.FromArgb(127, 102, 204));
            ACI_RGB.Add(184, Color.FromArgb(38, 0, 152));
            ACI_RGB.Add(185, Color.FromArgb(95, 76, 152));
            ACI_RGB.Add(186, Color.FromArgb(31, 0, 127));
            ACI_RGB.Add(187, Color.FromArgb(79, 63, 127));
            ACI_RGB.Add(188, Color.FromArgb(19, 0, 76));
            ACI_RGB.Add(189, Color.FromArgb(47, 38, 76));
            ACI_RGB.Add(190, Color.FromArgb(127, 0, 255));
            ACI_RGB.Add(191, Color.FromArgb(191, 127, 255));
            ACI_RGB.Add(192, Color.FromArgb(102, 0, 204));
            ACI_RGB.Add(193, Color.FromArgb(153, 102, 204));
            ACI_RGB.Add(194, Color.FromArgb(76, 0, 152));
            ACI_RGB.Add(195, Color.FromArgb(114, 76, 152));
            ACI_RGB.Add(196, Color.FromArgb(63, 0, 127));
            ACI_RGB.Add(197, Color.FromArgb(95, 63, 127));
            ACI_RGB.Add(198, Color.FromArgb(38, 0, 76));
            ACI_RGB.Add(199, Color.FromArgb(57, 38, 76));
            ACI_RGB.Add(200, Color.FromArgb(191, 0, 255));
            ACI_RGB.Add(201, Color.FromArgb(223, 127, 255));
            ACI_RGB.Add(202, Color.FromArgb(153, 0, 204));
            ACI_RGB.Add(203, Color.FromArgb(178, 102, 204));
            ACI_RGB.Add(204, Color.FromArgb(114, 0, 152));
            ACI_RGB.Add(205, Color.FromArgb(133, 76, 152));
            ACI_RGB.Add(206, Color.FromArgb(95, 0, 127));
            ACI_RGB.Add(207, Color.FromArgb(111, 63, 127));
            ACI_RGB.Add(208, Color.FromArgb(57, 0, 76));
            ACI_RGB.Add(209, Color.FromArgb(66, 38, 76));
            //ACI_RGB.Add(210, Color.FromArgb(255, 0, 255));
            ACI_RGB.Add(211, Color.FromArgb(255, 127, 255));
            ACI_RGB.Add(212, Color.FromArgb(204, 0, 204));
            ACI_RGB.Add(213, Color.FromArgb(204, 102, 204));
            ACI_RGB.Add(214, Color.FromArgb(152, 0, 152));
            ACI_RGB.Add(215, Color.FromArgb(152, 76, 152));
            ACI_RGB.Add(216, Color.FromArgb(127, 0, 127));
            ACI_RGB.Add(217, Color.FromArgb(127, 63, 127));
            ACI_RGB.Add(218, Color.FromArgb(76, 0, 76));
            ACI_RGB.Add(219, Color.FromArgb(76, 38, 76));
            ACI_RGB.Add(220, Color.FromArgb(255, 0, 191));
            ACI_RGB.Add(221, Color.FromArgb(255, 127, 223));
            ACI_RGB.Add(222, Color.FromArgb(204, 0, 153));
            ACI_RGB.Add(223, Color.FromArgb(204, 102, 178));
            ACI_RGB.Add(224, Color.FromArgb(152, 0, 114));
            ACI_RGB.Add(225, Color.FromArgb(152, 76, 133));
            ACI_RGB.Add(226, Color.FromArgb(127, 0, 95));
            ACI_RGB.Add(227, Color.FromArgb(127, 63, 111));
            ACI_RGB.Add(228, Color.FromArgb(76, 0, 57));
            ACI_RGB.Add(229, Color.FromArgb(76, 38, 66));
            ACI_RGB.Add(230, Color.FromArgb(255, 0, 127));
            ACI_RGB.Add(231, Color.FromArgb(255, 127, 191));
            ACI_RGB.Add(232, Color.FromArgb(204, 0, 102));
            ACI_RGB.Add(233, Color.FromArgb(204, 102, 153));
            ACI_RGB.Add(234, Color.FromArgb(152, 0, 76));
            ACI_RGB.Add(235, Color.FromArgb(152, 76, 114));
            ACI_RGB.Add(236, Color.FromArgb(127, 0, 63));
            ACI_RGB.Add(237, Color.FromArgb(127, 63, 95));
            ACI_RGB.Add(238, Color.FromArgb(76, 0, 38));
            ACI_RGB.Add(239, Color.FromArgb(76, 38, 57));
            ACI_RGB.Add(240, Color.FromArgb(255, 0, 63));
            ACI_RGB.Add(241, Color.FromArgb(255, 127, 159));
            ACI_RGB.Add(242, Color.FromArgb(204, 0, 51));
            ACI_RGB.Add(243, Color.FromArgb(204, 102, 127));
            ACI_RGB.Add(244, Color.FromArgb(152, 0, 38));
            ACI_RGB.Add(245, Color.FromArgb(152, 76, 95));
            ACI_RGB.Add(246, Color.FromArgb(127, 0, 31));
            ACI_RGB.Add(247, Color.FromArgb(127, 63, 79));
            ACI_RGB.Add(248, Color.FromArgb(76, 0, 19));
            ACI_RGB.Add(249, Color.FromArgb(76, 38, 47));
            ACI_RGB.Add(250, Color.FromArgb(51, 51, 51));
            ACI_RGB.Add(251, Color.FromArgb(91, 91, 91));
            ACI_RGB.Add(252, Color.FromArgb(132, 132, 132));
            ACI_RGB.Add(253, Color.FromArgb(173, 173, 173));
            ACI_RGB.Add(254, Color.FromArgb(214, 214, 214));
            ACI_RGB.Add(255, Color.FromArgb(255, 255, 255));

            //----------------------------------------------
            RGB_ACI.Add(Color.FromArgb(255, 0, 0), 1);
            RGB_ACI.Add(Color.FromArgb(255, 255, 0), 2);
            RGB_ACI.Add(Color.FromArgb(0, 255, 0), 3);
            RGB_ACI.Add(Color.FromArgb(0, 255, 255), 4);
            RGB_ACI.Add(Color.FromArgb(0, 0, 255), 5);
            RGB_ACI.Add(Color.FromArgb(255, 0, 255), 6);
            //RGB_ACI.Add(Color.FromArgb(255, 255, 255), 7);
            RGB_ACI.Add(Color.FromArgb(128, 128, 128), 8);
            RGB_ACI.Add(Color.FromArgb(192, 192, 192), 9);
            //RGB_ACI.Add(Color.FromArgb(255, 0, 0), 10);
            RGB_ACI.Add(Color.FromArgb(255, 127, 127), 11);
            RGB_ACI.Add(Color.FromArgb(204, 0, 0), 12);
            RGB_ACI.Add(Color.FromArgb(204, 102, 102), 13);
            RGB_ACI.Add(Color.FromArgb(153, 0, 0), 14);
            RGB_ACI.Add(Color.FromArgb(153, 76, 76), 15);
            RGB_ACI.Add(Color.FromArgb(127, 0, 0), 16);
            RGB_ACI.Add(Color.FromArgb(127, 63, 63), 17);
            RGB_ACI.Add(Color.FromArgb(76, 0, 0), 18);
            RGB_ACI.Add(Color.FromArgb(76, 38, 38), 19);
            RGB_ACI.Add(Color.FromArgb(255, 63, 0), 20);
            RGB_ACI.Add(Color.FromArgb(255, 159, 127), 21);
            RGB_ACI.Add(Color.FromArgb(204, 51, 0), 22);
            RGB_ACI.Add(Color.FromArgb(204, 127, 102), 23);
            RGB_ACI.Add(Color.FromArgb(153, 38, 0), 24);
            RGB_ACI.Add(Color.FromArgb(153, 95, 76), 25);
            RGB_ACI.Add(Color.FromArgb(127, 31, 0), 26);
            RGB_ACI.Add(Color.FromArgb(127, 79, 63), 27);
            RGB_ACI.Add(Color.FromArgb(76, 19, 0), 28);
            RGB_ACI.Add(Color.FromArgb(76, 47, 38), 29);
            RGB_ACI.Add(Color.FromArgb(255, 127, 0), 30);
            RGB_ACI.Add(Color.FromArgb(255, 191, 127), 31);
            RGB_ACI.Add(Color.FromArgb(204, 102, 0), 32);
            RGB_ACI.Add(Color.FromArgb(204, 153, 102), 33);
            RGB_ACI.Add(Color.FromArgb(153, 76, 0), 34);
            RGB_ACI.Add(Color.FromArgb(153, 114, 76), 35);
            RGB_ACI.Add(Color.FromArgb(127, 63, 0), 36);
            RGB_ACI.Add(Color.FromArgb(127, 95, 63), 37);
            RGB_ACI.Add(Color.FromArgb(76, 38, 0), 38);
            RGB_ACI.Add(Color.FromArgb(76, 57, 38), 39);
            RGB_ACI.Add(Color.FromArgb(255, 191, 0), 40);
            RGB_ACI.Add(Color.FromArgb(255, 223, 127), 41);
            RGB_ACI.Add(Color.FromArgb(204, 153, 0), 42);
            RGB_ACI.Add(Color.FromArgb(204, 178, 102), 43);
            RGB_ACI.Add(Color.FromArgb(153, 114, 0), 44);
            RGB_ACI.Add(Color.FromArgb(153, 133, 76), 45);
            RGB_ACI.Add(Color.FromArgb(127, 95, 0), 46);
            RGB_ACI.Add(Color.FromArgb(127, 111, 63), 47);
            RGB_ACI.Add(Color.FromArgb(76, 57, 0), 48);
            RGB_ACI.Add(Color.FromArgb(76, 66, 38), 49);
            //RGB_ACI.Add(Color.FromArgb(255, 255, 0), 50);
            RGB_ACI.Add(Color.FromArgb(255, 255, 127), 51);
            RGB_ACI.Add(Color.FromArgb(204, 204, 0), 52);
            RGB_ACI.Add(Color.FromArgb(204, 204, 102), 53);
            RGB_ACI.Add(Color.FromArgb(152, 152, 0), 54);
            RGB_ACI.Add(Color.FromArgb(152, 152, 76), 55);
            RGB_ACI.Add(Color.FromArgb(127, 127, 0), 56);
            RGB_ACI.Add(Color.FromArgb(127, 127, 63), 57);
            RGB_ACI.Add(Color.FromArgb(76, 76, 0), 58);
            RGB_ACI.Add(Color.FromArgb(76, 76, 38), 59);
            RGB_ACI.Add(Color.FromArgb(191, 255, 0), 60);
            RGB_ACI.Add(Color.FromArgb(223, 255, 127), 61);
            RGB_ACI.Add(Color.FromArgb(153, 204, 0), 62);
            RGB_ACI.Add(Color.FromArgb(178, 204, 102), 63);
            RGB_ACI.Add(Color.FromArgb(114, 152, 0), 64);
            RGB_ACI.Add(Color.FromArgb(133, 152, 76), 65);
            RGB_ACI.Add(Color.FromArgb(95, 127, 0), 66);
            RGB_ACI.Add(Color.FromArgb(111, 127, 63), 67);
            RGB_ACI.Add(Color.FromArgb(57, 76, 0), 68);
            RGB_ACI.Add(Color.FromArgb(66, 76, 38), 69);
            RGB_ACI.Add(Color.FromArgb(127, 255, 0), 70);
            RGB_ACI.Add(Color.FromArgb(191, 255, 127), 71);
            RGB_ACI.Add(Color.FromArgb(102, 204, 0), 72);
            RGB_ACI.Add(Color.FromArgb(153, 204, 102), 73);
            RGB_ACI.Add(Color.FromArgb(76, 152, 0), 74);
            RGB_ACI.Add(Color.FromArgb(114, 152, 76), 75);
            RGB_ACI.Add(Color.FromArgb(63, 127, 0), 76);
            RGB_ACI.Add(Color.FromArgb(95, 127, 63), 77);
            RGB_ACI.Add(Color.FromArgb(38, 76, 0), 78);
            RGB_ACI.Add(Color.FromArgb(57, 76, 38), 79);
            RGB_ACI.Add(Color.FromArgb(63, 255, 0), 80);
            RGB_ACI.Add(Color.FromArgb(159, 255, 127), 81);
            RGB_ACI.Add(Color.FromArgb(51, 204, 0), 82);
            RGB_ACI.Add(Color.FromArgb(127, 204, 102), 83);
            RGB_ACI.Add(Color.FromArgb(38, 152, 0), 84);
            RGB_ACI.Add(Color.FromArgb(95, 152, 76), 85);
            RGB_ACI.Add(Color.FromArgb(31, 127, 0), 86);
            RGB_ACI.Add(Color.FromArgb(79, 127, 63), 87);
            RGB_ACI.Add(Color.FromArgb(19, 76, 0), 88);
            RGB_ACI.Add(Color.FromArgb(47, 76, 38), 89);
            ////RGB_ACI.Add(Color.FromArgb(0, 255, 0), 90);
            RGB_ACI.Add(Color.FromArgb(127, 255, 127), 91);
            RGB_ACI.Add(Color.FromArgb(0, 204, 0), 92);
            RGB_ACI.Add(Color.FromArgb(102, 204, 102), 93);
            RGB_ACI.Add(Color.FromArgb(0, 152, 0), 94);
            RGB_ACI.Add(Color.FromArgb(76, 152, 76), 95);
            RGB_ACI.Add(Color.FromArgb(0, 127, 0), 96);
            RGB_ACI.Add(Color.FromArgb(63, 127, 63), 97);
            RGB_ACI.Add(Color.FromArgb(0, 76, 0), 98);
            RGB_ACI.Add(Color.FromArgb(38, 76, 38), 99);
            RGB_ACI.Add(Color.FromArgb(0, 255, 63), 100);
            RGB_ACI.Add(Color.FromArgb(127, 255, 159), 101);
            RGB_ACI.Add(Color.FromArgb(0, 204, 51), 102);
            RGB_ACI.Add(Color.FromArgb(102, 204, 127), 103);
            RGB_ACI.Add(Color.FromArgb(0, 152, 38), 104);
            RGB_ACI.Add(Color.FromArgb(76, 152, 95), 105);
            RGB_ACI.Add(Color.FromArgb(0, 127, 31), 106);
            RGB_ACI.Add(Color.FromArgb(63, 127, 79), 107);
            RGB_ACI.Add(Color.FromArgb(0, 76, 19), 108);
            RGB_ACI.Add(Color.FromArgb(38, 76, 47), 109);
            RGB_ACI.Add(Color.FromArgb(0, 255, 127), 110);
            RGB_ACI.Add(Color.FromArgb(127, 255, 191), 111);
            RGB_ACI.Add(Color.FromArgb(0, 204, 102), 112);
            RGB_ACI.Add(Color.FromArgb(102, 204, 153), 113);
            RGB_ACI.Add(Color.FromArgb(0, 152, 76), 114);
            RGB_ACI.Add(Color.FromArgb(76, 152, 114), 115);
            RGB_ACI.Add(Color.FromArgb(0, 127, 63), 116);
            RGB_ACI.Add(Color.FromArgb(63, 127, 95), 117);
            RGB_ACI.Add(Color.FromArgb(0, 76, 38), 118);
            RGB_ACI.Add(Color.FromArgb(38, 76, 57), 119);
            RGB_ACI.Add(Color.FromArgb(0, 255, 191), 120);
            RGB_ACI.Add(Color.FromArgb(127, 255, 223), 121);
            RGB_ACI.Add(Color.FromArgb(0, 204, 153), 122);
            RGB_ACI.Add(Color.FromArgb(102, 204, 178), 123);
            RGB_ACI.Add(Color.FromArgb(0, 152, 114), 124);
            RGB_ACI.Add(Color.FromArgb(76, 152, 133), 125);
            RGB_ACI.Add(Color.FromArgb(0, 127, 95), 126);
            RGB_ACI.Add(Color.FromArgb(63, 127, 111), 127);
            RGB_ACI.Add(Color.FromArgb(0, 76, 57), 128);
            RGB_ACI.Add(Color.FromArgb(38, 76, 66), 129);
            //RGB_ACI.Add(Color.FromArgb(0, 255, 255), 130);
            RGB_ACI.Add(Color.FromArgb(127, 255, 255), 131);
            RGB_ACI.Add(Color.FromArgb(0, 204, 204), 132);
            RGB_ACI.Add(Color.FromArgb(102, 204, 204), 133);
            RGB_ACI.Add(Color.FromArgb(0, 152, 152), 134);
            RGB_ACI.Add(Color.FromArgb(76, 152, 152), 135);
            RGB_ACI.Add(Color.FromArgb(0, 127, 127), 136);
            RGB_ACI.Add(Color.FromArgb(63, 127, 127), 137);
            RGB_ACI.Add(Color.FromArgb(0, 76, 76), 138);
            RGB_ACI.Add(Color.FromArgb(38, 76, 76), 139);
            RGB_ACI.Add(Color.FromArgb(0, 191, 255), 140);
            RGB_ACI.Add(Color.FromArgb(127, 223, 255), 141);
            RGB_ACI.Add(Color.FromArgb(0, 153, 204), 142);
            RGB_ACI.Add(Color.FromArgb(102, 178, 204), 143);
            RGB_ACI.Add(Color.FromArgb(0, 114, 152), 144);
            RGB_ACI.Add(Color.FromArgb(76, 133, 152), 145);
            RGB_ACI.Add(Color.FromArgb(0, 95, 127), 146);
            RGB_ACI.Add(Color.FromArgb(63, 111, 127), 147);
            RGB_ACI.Add(Color.FromArgb(0, 57, 76), 148);
            RGB_ACI.Add(Color.FromArgb(38, 66, 76), 149);
            RGB_ACI.Add(Color.FromArgb(0, 127, 255), 150);
            RGB_ACI.Add(Color.FromArgb(127, 191, 255), 151);
            RGB_ACI.Add(Color.FromArgb(0, 102, 204), 152);
            RGB_ACI.Add(Color.FromArgb(102, 153, 204), 153);
            RGB_ACI.Add(Color.FromArgb(0, 76, 152), 154);
            RGB_ACI.Add(Color.FromArgb(76, 114, 152), 155);
            RGB_ACI.Add(Color.FromArgb(0, 63, 127), 156);
            RGB_ACI.Add(Color.FromArgb(63, 95, 127), 157);
            RGB_ACI.Add(Color.FromArgb(0, 38, 76), 158);
            RGB_ACI.Add(Color.FromArgb(38, 57, 76), 159);
            RGB_ACI.Add(Color.FromArgb(0, 63, 255), 160);
            RGB_ACI.Add(Color.FromArgb(127, 159, 255), 161);
            RGB_ACI.Add(Color.FromArgb(0, 51, 204), 162);
            RGB_ACI.Add(Color.FromArgb(102, 127, 204), 163);
            RGB_ACI.Add(Color.FromArgb(0, 38, 152), 164);
            RGB_ACI.Add(Color.FromArgb(76, 95, 152), 165);
            RGB_ACI.Add(Color.FromArgb(0, 31, 127), 166);
            RGB_ACI.Add(Color.FromArgb(63, 79, 127), 167);
            RGB_ACI.Add(Color.FromArgb(0, 19, 76), 168);
            RGB_ACI.Add(Color.FromArgb(38, 47, 76), 169);
            //RGB_ACI.Add(Color.FromArgb(0, 0, 255), 170);
            RGB_ACI.Add(Color.FromArgb(127, 127, 255), 171);
            RGB_ACI.Add(Color.FromArgb(0, 0, 204), 172);
            RGB_ACI.Add(Color.FromArgb(102, 102, 204), 173);
            RGB_ACI.Add(Color.FromArgb(0, 0, 152), 174);
            RGB_ACI.Add(Color.FromArgb(76, 76, 152), 175);
            RGB_ACI.Add(Color.FromArgb(0, 0, 127), 176);
            RGB_ACI.Add(Color.FromArgb(63, 63, 127), 177);
            RGB_ACI.Add(Color.FromArgb(0, 0, 76), 178);
            RGB_ACI.Add(Color.FromArgb(38, 38, 76), 179);
            RGB_ACI.Add(Color.FromArgb(63, 0, 255), 180);
            RGB_ACI.Add(Color.FromArgb(159, 127, 255), 181);
            RGB_ACI.Add(Color.FromArgb(51, 0, 204), 182);
            RGB_ACI.Add(Color.FromArgb(127, 102, 204), 183);
            RGB_ACI.Add(Color.FromArgb(38, 0, 152), 184);
            RGB_ACI.Add(Color.FromArgb(95, 76, 152), 185);
            RGB_ACI.Add(Color.FromArgb(31, 0, 127), 186);
            RGB_ACI.Add(Color.FromArgb(79, 63, 127), 187);
            RGB_ACI.Add(Color.FromArgb(19, 0, 76), 188);
            RGB_ACI.Add(Color.FromArgb(47, 38, 76), 189);
            RGB_ACI.Add(Color.FromArgb(127, 0, 255), 190);
            RGB_ACI.Add(Color.FromArgb(191, 127, 255), 191);
            RGB_ACI.Add(Color.FromArgb(102, 0, 204), 192);
            RGB_ACI.Add(Color.FromArgb(153, 102, 204), 193);
            RGB_ACI.Add(Color.FromArgb(76, 0, 152), 194);
            RGB_ACI.Add(Color.FromArgb(114, 76, 152), 195);
            RGB_ACI.Add(Color.FromArgb(63, 0, 127), 196);
            RGB_ACI.Add(Color.FromArgb(95, 63, 127), 197);
            RGB_ACI.Add(Color.FromArgb(38, 0, 76), 198);
            RGB_ACI.Add(Color.FromArgb(57, 38, 76), 199);
            RGB_ACI.Add(Color.FromArgb(191, 0, 255), 200);
            RGB_ACI.Add(Color.FromArgb(223, 127, 255), 201);
            RGB_ACI.Add(Color.FromArgb(153, 0, 204), 202);
            RGB_ACI.Add(Color.FromArgb(178, 102, 204), 203);
            RGB_ACI.Add(Color.FromArgb(114, 0, 152), 204);
            RGB_ACI.Add(Color.FromArgb(133, 76, 152), 205);
            RGB_ACI.Add(Color.FromArgb(95, 0, 127), 206);
            RGB_ACI.Add(Color.FromArgb(111, 63, 127), 207);
            RGB_ACI.Add(Color.FromArgb(57, 0, 76), 208);
            RGB_ACI.Add(Color.FromArgb(66, 38, 76), 209);
            //RGB_ACI.Add(Color.FromArgb(255, 0, 255), 210);
            RGB_ACI.Add(Color.FromArgb(255, 127, 255), 211);
            RGB_ACI.Add(Color.FromArgb(204, 0, 204), 212);
            RGB_ACI.Add(Color.FromArgb(204, 102, 204), 213);
            RGB_ACI.Add(Color.FromArgb(152, 0, 152), 214);
            RGB_ACI.Add(Color.FromArgb(152, 76, 152), 215);
            RGB_ACI.Add(Color.FromArgb(127, 0, 127), 216);
            RGB_ACI.Add(Color.FromArgb(127, 63, 127), 217);
            RGB_ACI.Add(Color.FromArgb(76, 0, 76), 218);
            RGB_ACI.Add(Color.FromArgb(76, 38, 76), 219);
            RGB_ACI.Add(Color.FromArgb(255, 0, 191), 220);
            RGB_ACI.Add(Color.FromArgb(255, 127, 223), 221);
            RGB_ACI.Add(Color.FromArgb(204, 0, 153), 222);
            RGB_ACI.Add(Color.FromArgb(204, 102, 178), 223);
            RGB_ACI.Add(Color.FromArgb(152, 0, 114), 224);
            RGB_ACI.Add(Color.FromArgb(152, 76, 133), 225);
            RGB_ACI.Add(Color.FromArgb(127, 0, 95), 226);
            RGB_ACI.Add(Color.FromArgb(127, 63, 111), 227);
            RGB_ACI.Add(Color.FromArgb(76, 0, 57), 228);
            RGB_ACI.Add(Color.FromArgb(76, 38, 66), 229);
            RGB_ACI.Add(Color.FromArgb(255, 0, 127), 230);
            RGB_ACI.Add(Color.FromArgb(255, 127, 191), 231);
            RGB_ACI.Add(Color.FromArgb(204, 0, 102), 232);
            RGB_ACI.Add(Color.FromArgb(204, 102, 153), 233);
            RGB_ACI.Add(Color.FromArgb(152, 0, 76), 234);
            RGB_ACI.Add(Color.FromArgb(152, 76, 114), 235);
            RGB_ACI.Add(Color.FromArgb(127, 0, 63), 236);
            RGB_ACI.Add(Color.FromArgb(127, 63, 95), 237);
            RGB_ACI.Add(Color.FromArgb(76, 0, 38), 238);
            RGB_ACI.Add(Color.FromArgb(76, 38, 57), 239);
            RGB_ACI.Add(Color.FromArgb(255, 0, 63), 240);
            RGB_ACI.Add(Color.FromArgb(255, 127, 159), 241);
            RGB_ACI.Add(Color.FromArgb(204, 0, 51), 242);
            RGB_ACI.Add(Color.FromArgb(204, 102, 127), 243);
            RGB_ACI.Add(Color.FromArgb(152, 0, 38), 244);
            RGB_ACI.Add(Color.FromArgb(152, 76, 95), 245);
            RGB_ACI.Add(Color.FromArgb(127, 0, 31), 246);
            RGB_ACI.Add(Color.FromArgb(127, 63, 79), 247);
            RGB_ACI.Add(Color.FromArgb(76, 0, 19), 248);
            RGB_ACI.Add(Color.FromArgb(76, 38, 47), 249);
            RGB_ACI.Add(Color.FromArgb(51, 51, 51), 250);
            RGB_ACI.Add(Color.FromArgb(91, 91, 91), 251);
            RGB_ACI.Add(Color.FromArgb(132, 132, 132), 252);
            RGB_ACI.Add(Color.FromArgb(173, 173, 173), 253);
            RGB_ACI.Add(Color.FromArgb(214, 214, 214), 254);
            RGB_ACI.Add(Color.FromArgb(255, 255, 255), 255);
        }

        #endregion Public Constructors

        #region Public Methods

        /// <summary>
        /// Get AutoCAD Color Index
        /// </summary>
        /// <param name="color"></param>
        /// <returns>AutoCAD Color Index</returns>
        public static byte GetAciColor(Color color)
        {
            byte aciColor = 0;
            RGB_ACI.TryGetValue(color, out aciColor);
            if (aciColor > 0)
                return aciColor;
            else
            {
                double k = double.MaxValue;

                // get the closest color
                foreach (KeyValuePair<Color, byte> pair in RGB_ACI)
                {
                    double k1 = Math.Sqrt(Math.Pow((pair.Key.R - color.R), 2) +
                        Math.Pow((pair.Key.G - color.G), 2) + Math.Pow((pair.Key.B - color.B), 2));
                    if (k1 < k)
                    {
                        k = k1;
                        aciColor = pair.Value;
                    }
                }
                return aciColor;
            }
        }

        #endregion Public Methods
    }
}