Indexed(Library library, Hashtable entries, Vector dictionary) {
        super(library, entries);
        // get the base colour space
        colorSpace = getColorSpace(library, dictionary.elementAt(1));
        // get the hival
        hival = (((Number) (dictionary.elementAt(2))).intValue());
        // check for an instance of a lookup table.
        if (dictionary.elementAt(3) instanceof StringObject) {
            // peel and decrypt the literal string
            StringObject tmpText = (StringObject) dictionary.elementAt(3);
            String tmp = tmpText.getDecryptedLiteralString(library.securityManager);
            // build the colour lookup table.
            byte[] textBytes = new byte[colorSpace.getNumComponents() * (hival + 1)]; // m * (hival + 1)
            for (int i = 0; i < textBytes.length; i++) {
                textBytes[i] = (byte) tmp.charAt(i);
            }
            colors = textBytes;
        } else if (dictionary.elementAt(3) instanceof Reference) {
            Stream lookup = (Stream) (library.getObject((Reference) (dictionary.elementAt(3))));
            colors = lookup.getBytes();
        }
    }