<?php
declare(strict_types=1);

namespace PrinsFrank\PdfParser\Document\Dictionary\DictionaryKey;

use Override;
use PrinsFrank\PdfParser\Document\Dictionary\Dictionary;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Array\ArrayValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Array\CIDFontWidths;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Array\DictionaryArrayValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Array\CrossReferenceStreamByteSizes;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Array\DifferencesArrayValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Boolean\BooleanValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Date\DateValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Float\FloatValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Integer\IntegerValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\AuthEventNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\BlendModeNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\BorderStyleNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\CFMNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\CIEColorSpaceNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\DeviceColorSpaceNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\DirectionNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\EncodingNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\EventNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\FilterNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\IntentNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\ListModeNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\NonFullScreenPageModeNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\NumberingStyleNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\PageLayoutNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\PageModeNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\PaperHandlingNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\RenderingIntentNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\SecurityHandlerNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\SpecialColorSpaceNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\SubtypeNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\TabsNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\TransitionStyleNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\TrappedNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\TypeNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\ViewNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Name\VisibilityPolicyNameValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Rectangle\Rectangle;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Reference\ReferenceValue;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\Reference\ReferenceValueArray;
use PrinsFrank\PdfParser\Document\Dictionary\DictionaryValue\TextString\TextStringValue;
use PrinsFrank\PdfParser\Document\Security\SecurityAlgorithm;
use PrinsFrank\PdfParser\Document\Security\StandardSecurityHandlerRevision;
use PrinsFrank\PdfParser\Document\Version\Version;

/** @api */
enum DictionaryKey: string implements DictionaryKeyInterface {
    case A = 'A';
    case AA = 'AA';
    case AC = 'AC';
    case AF = 'AF';
    case ACCURATE_SCREENS = 'AccurateScreens';
    case ACRO_FORM = 'AcroForm';
    case ACTION = 'Action';
    case ADD_REV_INFO = 'AddRevInfo';
    case ADDITIONAL_STREAMS = 'AdditionalStreams';
    case AFTER = 'After';
    case AFTER_PERMS_READY = 'AfterPermsReady';
    case AIS = 'AIS';
    case ALT = 'Alt';
    case ALTERNATE = 'Alternate';
    case ALTERNATE_IMAGES = 'AlternateImages';
    case ALTERNATE_PRESENTATIONS = 'AlternatePresentations';
    case ALTERNATES = 'Alternates';
    case AN = 'AN';
    case ANGLE = 'Angle';
    case ANNOTATION = 'Annotation';
    case ANNOTATIONS = 'Annotations';
    case ANNOTS = 'Annots';
    case ANTI_ALIAS = 'AntiAlias';
    case AP = 'AP';
    case APREF = 'APRef';
    case ART_BOX = 'ArtBox';
    case AS = 'AS';
    case ASCENT = 'Ascent';
    case ASPECT = 'Aspect';
    case ATTESTATION = 'Attestation';
    case AUTH_EVENT = 'AuthEvent';
    case AUTHOR = 'Author';
    case AVG_WIDTH = 'AvgWidth';
    case B = 'B';
    case BACKGROUND = 'Background';
    case BASE = 'Base';
    case BASE_ENCODING = 'BaseEncoding';
    case BASE_FONT = 'BaseFont';
    case BASE_STATE = 'BaseState';
    case BASE_VERSION = 'BaseVersion';
    case BBOX = 'BBox';
    case BC = 'BC';
    case BE = 'BE';
    case BEFORE = 'Before';
    case BG = 'BG';
    case BG2 = 'BG2';
    case BI = 'BI';
    case BITS_PER_COMPONENT = 'BitsPerComponent';
    case BITS_PER_COORDINATE = 'BitsPerCoordinate';
    case BITS_PER_FLAG = 'BitsPerFlag';
    case BITS_PER_SAMPLE = 'BitsPerSample';
    case BLACK_IS1 = 'BlackIs1';
    case BLACK_POINT = 'BlackPoint';
    case BLEED_BOX = 'BleedBox';
    case BM = 'BM';
    case BORDER = 'Border';
    case BOUNDS = 'Bounds';
    case BOX_COLOR_INFO = 'BoxColorInfo';
    case BS = 'BS';
    case BU = 'BU';
    case BYTE_RANGE = 'ByteRange';
    case C = 'C';
    case C0 = 'C0';
    case C1 = 'C1';
    case C2W = 'C2W';
    case CA = 'CA';
    case CA_L = 'ca';
    case CAP = 'Cap';
    case CAP_HEIGHT = 'CapHeight';
    case CATEGORY = 'Category';
    case CENTER_WINDOW = 'CenterWindow';
    case CERT = 'Cert';
    case CF = 'CF';
    case CFM = 'CFM';
    case CHANGES = 'Changes';
    case CHAR_PROCS = 'CharProcs';
    case CHAR_SET = 'CharSet';
    case CHECK_SUM = 'CheckSum';
    case CI = 'CI';
    case CIDSET = 'CIDSet';
    case CIDSYSTEM_INFO = 'CIDSystemInfo';
    case CIDTO_GIDMAP = 'CIDToGIDMap';
    case CL = 'CL';
    case CLR_F = 'ClrF';
    case CLR_FF = 'ClrFf';
    case CMAP_NAME = 'CMapName';
    case CO = 'CO';
    case CO_ = 'CO_';
    case COLLECTION = 'Collection';
    case COLOR_SPACE = 'ColorSpace';
    case COLOR_TRANSFORM = 'ColorTransform';
    case COLORANTS = 'Colorants';
    case COLORS = 'Colors';
    case COLUMNS = 'Columns';
    case COMPANY = 'Company';
    case COMPONENTS = 'Components';
    case CONFIGS = 'Configs';
    case CONTACT_INFO = 'ContactInfo';
    case CONTENT_TYPE_ID = 'ContentTypeId';
    case CONTENTS = 'Contents';
    case COORDS = 'Coords';
    case COUNT = 'Count';
    case CP = 'CP';
    case CREATION_DATE = 'CreationDate';
    case CREATOR = 'Creator';
    case CREATOR_INFO = 'CreatorInfo';
    case CROP_BOX = 'CropBox';
    case CS = 'CS';
    case CS_L = 'Cs';
    case CT = 'CT';
    case CV = 'CV';
    case CYX = 'CYX';
    case D = 'D';
    case DA = 'DA';
    case DAMAGED_ROWS_BEFORE_ERROR = 'DamagedRowsBeforeError';
    case DATA = 'DATA';
    case DECODE = 'Decode';
    case DECODE_PARMS = 'DecodeParms';
    case DEFAULT = 'Default';
    case DEFAULT_FOR_PRINTING = 'DefaultForPrinting';
    case DESC = 'Desc';
    case DESCENDANT_FONTS = 'DescendantFonts';
    case DESCENT = 'Descent';
    case DEST = 'Dest';
    case DESTS = 'Dests';
    case DEV_DEP_GS_BG = 'DevDepGS_BG';
    case DEV_DEP_GS_FL = 'DevDepGS_FL';
    case DEV_DEP_GS_HT = 'DevDepGS_HT';
    case DEV_DEP_GS_OP = 'DevDepGS_OP';
    case DEV_DEP_GS_TR = 'DevDepGS_TR';
    case DEV_DEP_GS_UCR = 'DevDepGS_UCR';
    case DI = 'Di';
    case DIFFERENCES = 'Differences';
    case DIGEST_METHOD = 'DigestMethod';
    case DIRECTION = 'Direction';
    case DIS = 'DIS';
    case DISPLAY_DOC_TITLE = 'DisplayDocTitle';
    case DL = 'DL';
    case DM = 'Dm';
    case DOC = 'Doc';
    case DOC_CHECKSUM = 'DocChecksum';
    case DOC_MDP = 'DocMDP';
    case DOCUMENT = 'Document';
    case DOMAIN = 'Domain';
    case DOS = 'DOS';
    case DOT_GAIN = 'DotGain';
    case DP = 'DP';
    case DR = 'DR';
    case DS = 'DS';
    case DUPLEX = 'Duplex';
    case DUR = 'Dur';
    case DURATION = 'Duration';
    case DV = 'DV';
    case DW = 'DW';
    case DW2 = 'DW2';
    case E = 'E';
    case EA = 'EA';
    case EARLY_CHANGE = 'EarlyChange';
    case EF = 'EF';
    case EFF = 'EFF';
    case EMBEDDED_FDFS = 'EmbeddedFDFs';
    case EMBEDDED_FILES = 'EmbeddedFiles';
    case ENCODE = 'Encode';
    case ENCODED_BYTE_ALIGN = 'EncodedByteAlign';
    case ENCODING = 'Encoding';
    case ENCRYPT = 'Encrypt';
    case ENCRYPT_METADATA = 'EncryptMetadata';
    case ENCRYPTION_REVISION = 'EncryptionRevision';
    case END_OF_BLOCK = 'EndOfBlock';
    case END_OF_LINE = 'EndOfLine';
    case EVENT = 'Event';
    case EX_DATA = 'ExData';
    case EXPORT = 'Export';
    case EXT_GSTATE = 'ExtGState';
    case EXTEND = 'Extend';
    case EXTENDS = 'Extends';
    case EXTENSION_LEVEL = 'ExtensionLevel';
    case EXTENSIONS = 'Extensions';
    case EXTERNAL_OPIDICTS = 'ExternalOPIdicts';
    case EXTERNAL_REF_XOBJECTS = 'ExternalRefXobjects';
    case EXTERNAL_STREAMS = 'ExternalStreams';
    case F = 'F';
    case FB = 'FB';
    case FC = 'FC';
    case FD = 'FD';
    case FDECODE_PARMS = 'FDecodeParms';
    case FDF = 'FDF';
    case FF = 'Ff';
    case FFILTER = 'FFilter';
    case FIELDS = 'Fields';
    case FILTER = 'Filter';
    case FIRST = 'First';
    case FIRST_CHAR = 'FirstChar';
    case FIT_WINDOW = 'FitWindow';
    case FIXED_PRINT = 'FixedPrint';
    case FL = 'FL';
    case FLAGS = 'Flags';
    case FO = 'FO';
    case FONT = 'Font';
    case FONT_BBOX = 'FontBBox';
    case FONT_DESCRIPTOR = 'FontDescriptor';
    case FONT_FAMILY = 'FontFamily';
    case FONT_FAUXING = 'FontFauxing';
    case FONT_FILE = 'FontFile';
    case FONT_FILE2 = 'FontFile2';
    case FONT_FILE3 = 'FontFile3';
    case FONT_MATRIX = 'FontMatrix';
    case FONT_NAME = 'FontName';
    case FONT_STRETCH = 'FontStretch';
    case FONT_WEIGHT = 'FontWeight';
    case FORM = 'Form';
    case FORM_TYPE = 'FormType';
    case FOV = 'FOV';
    case FREQUENCY = 'Frequency';
    case FS = 'FS';
    case FT = 'FT';
    case FUNCTION = 'Function';
    case FUNCTION_TYPE = 'FunctionType';
    case FUNCTIONS = 'Functions';
    case FWPOSITION = 'FWPosition';
    case FWSCALE = 'FWScale';
    case G = 'G';
    case GAMMA = 'Gamma';
    case GO_TO_REMOTE_ACTIONS = 'GoToRemoteActions';
    case GROUP = 'Group';
    case GS = 'GS';
    case GS_L = 'Gs';
    case H = 'H';
    case HALFTONE_NAME = 'HalftoneName';
    case HALFTONE_TYPE = 'HalftoneType';
    case HEIGHT = 'Height';
    case HEIGHT2 = 'Height2';
    case HELV = 'Helv';
    case HI = 'HI';
    case HIDE_ANNOTATION_ACTIONS = 'HideAnnotationActions';
    case HIDE_MENUBAR = 'HideMenubar';
    case HIDE_TOOLBAR = 'HideToolbar';
    case HIDE_WINDOW_UI = 'HideWindowUI';
    case HT = 'HT';
    case I = 'I';
    case IC = 'IC';
    case ID = 'ID';
    case IDTREE = 'IDTree';
    case IDENTITY = 'Identity';
    case IDS = 'IDS';
    case IF = 'IF';
    case IM = 'Im';
    case IMAGE = 'Image';
    case IMAGE_B = 'ImageB';
    case IMAGE_C = 'ImageC';
    case IMAGE_I = 'ImageI';
    case IMAGE_MASK = 'ImageMask';
    case IN = 'IN';
    case IN_DESIGN = 'InDesign';
    case INDEX = 'Index';
    case INFO = 'Info';
    case INK_LIST = 'InkList';
    case INTENT = 'Intent';
    case INTERPOLATE = 'Interpolate';
    case IRT = 'IRT';
    case IS_MAP = 'IsMap';
    case ISSUER = 'Issuer';
    case IT = 'IT';
    case ITALIC_ANGLE = 'ItalicAngle';
    case IV = 'IV';
    case IX = 'IX';
    case JAVA_SCRIPT = 'JavaScript';
    case JAVA_SCRIPT_ACTIONS = 'JavaScriptActions';
    case JBIG2GLOBALS = 'JBIG2Globals';
    case JS = 'JS';
    case K = 'K';
    case KEY_USAGE = 'KeyUsage';
    case KEYWORDS = 'Keywords';
    case KIDS = 'Kids';
    case L = 'L';
    case LANG = 'Lang';
    case LANGUAGE = 'Language';
    case LAST = 'Last';
    case LAST_CHAR = 'LastChar';
    case LAST_MODIFIED = 'LastModified';
    case LAUNCH_ACTIONS = 'LaunchActions';
    case LC = 'LC';
    case LE = 'LE';
    case LEADING = 'Leading';
    case LEGAL = 'Legal';
    case LEGAL_ATTESTATION = 'LegalAttestation';
    case LENGTH = 'Length';
    case LENGTH1 = 'Length1';
    case LENGTH2 = 'Length2';
    case LENGTH3 = 'Length3';
    case LEVEL1 = 'Level1';
    case LI = 'LI';
    case LIMITS = 'Limits';
    case LINEARIZED = 'Linearized';
    case LIST_MODE = 'ListMode';
    case LJ = 'LJ';
    case LL = 'LL';
    case LLE = 'LLE';
    case LLO = 'LLO';
    case LOCATION = 'Location';
    case LOCK = 'Lock';
    case LOCKED = 'Locked';
    case LS = 'LS';
    case LW = 'LW';
    case M = 'M';
    case MA = 'MA';
    case MAC = 'Mac';
    case MARK_INFO = 'MarkInfo';
    case MARKED = 'Marked';
    case MASK = 'Mask';
    case MATRIX = 'Matrix';
    case MATTE = 'Matte';
    case MAX_LEN = 'MaxLen';
    case MAX_WIDTH = 'MaxWidth';
    case MCAF = 'MCAF';
    case MD5 = 'MD5';
    case MDP = 'MDP';
    case MEASURE = 'Measure';
    case MEDIA_BOX = 'MediaBox';
    case METADATA = 'Metadata';
    case MH = 'MH';
    case MISSING_WIDTH = 'MissingWidth';
    case MIX = 'Mix';
    case MIXING_HINTS = 'MixingHints';
    case MK = 'MK';
    case ML = 'ML';
    case MOD_DATE = 'ModDate';
    case MODE = 'Mode';
    case MOVIE = 'Movie';
    case MOVIE_ACTIONS = 'MovieActions';
    case MS = 'MS';
    case MSG = 'Msg';
    case MU = 'MU';
    case N = 'N';
    case NA = 'NA';
    case NAME = 'Name';
    case NAMES = 'Names';
    case NEED_APPEARANCES = 'NeedAppearances';
    case NEEDS_RENDERING = 'NeedsRendering';
    case NEW_WINDOW = 'NewWindow';
    case NEXT = 'Next';
    case NM = 'NM';
    case NON_EMBEDDED_FONTS = 'NonEmbeddedFonts';
    case NON_FULL_SCREEN_PAGE_MODE = 'NonFullScreenPageMode';
    case NP = 'NP';
    case NR = 'NR';
    case NU = 'NU';
    case NUM_COPIES = 'NumCopies';
    case NUMS = 'Nums';
    case O = 'O';
    case OB = 'OB';
    case OC = 'OC';
    case OCGS = 'OCGs';
    case OCPROPERTIES = 'OCProperties';
    case OFF = 'OFF';
    case OID = 'OID';
    case ON = 'ON';
    case ON_INSTANTIATE = 'OnInstantiate';
    case OP = 'OP';
    case OP_L = 'op';
    case OPEN = 'Open';
    case OPEN_ACTION = 'OpenAction';
    case OPERATION = 'Operation';
    case OPI = 'OPI';
    case OPM = 'OPM';
    case OPT = 'Opt';
    case OPTIONAL_CONTENT = 'OptionalContent';
    case ORDER = 'Order';
    case ORDERING = 'Ordering';
    case OS = 'OS';
    case OUTLINES = 'Outlines';
    case OUTPUT_INTENTS = 'OutputIntents';
    case OVERLAY_TEXT = 'OverlayText';
    case P = 'P';
    case PA = 'PA';
    case PAGE = 'Page';
    case PAGE_ELEMENT = 'PageElement';
    case PAGE_LABELS = 'PageLabels';
    case PAGE_LAYOUT = 'PageLayout';
    case PAGE_MODE = 'PageMode';
    case PAGES = 'Pages';
    case PAINT_TYPE = 'PaintType';
    case PARAMS = 'Params';
    case PARENT = 'Parent';
    case PARENT_TREE = 'ParentTree';
    case PATTERN = 'Pattern';
    case PATTERN_TYPE = 'PatternType';
    case PC = 'PC';
    case PDF = 'PDF';
    case PDFDOC_ENCODING = 'PDFDocEncoding';
    case PERMS = 'Perms';
    case PI = 'PI';
    case PICK_TRAY_BY_PDFSIZE = 'PickTrayByPDFSize';
    case PID = 'PID';
    case PIECE_INFO = 'PieceInfo';
    case PL = 'PL';
    case PO = 'PO';
    case POPUP = 'Popup';
    case POSTER = 'Poster';
    case PREDICTOR = 'Predictor';
    case PRES_STEPS = 'PresSteps';
    case PRESERVE_RB = 'PreserveRB';
    case PREV = 'Prev';
    case PRINT = 'Print';
    case PRINT_AREA = 'PrintArea';
    case PRINT_CLIP = 'PrintClip';
    case PRINT_PAGE_RANGE = 'PrintPageRange';
    case PRINT_SCALING = 'PrintScaling';
    case PRINTING_ORDER = 'PrintingOrder';
    case PRIVATE = 'Private';
    case PROC_SET = 'ProcSet';
    case PROCESS = 'Process';
    case PRODUCER = 'Producer';
    case PROP_AUTH_TIME = 'Prop_AuthTime';
    case PROP_AUTH_TYPE = 'Prop_AuthType';
    case PROP_BUILD = 'Prop_Build';
    case PROPERTIES = 'Properties';
    case PS = 'PS';
    case PT_DATA = 'PtData';
    case PTEX_FULLBANNER = 'PTEX.Fullbanner';
    case PV = 'PV';
    case PZ = 'PZ';
    case Q = 'Q';
    case QUAD_POINTS = 'QuadPoints';
    case R = 'R';
    case RANGE = 'Range';
    case RATE = 'Rate';
    case RBGROUPS = 'RBGroups';
    case RC = 'RC';
    case RD = 'RD';
    case REASON = 'Reason';
    case REASONS = 'Reasons';
    case RECIPIENTS = 'Recipients';
    case RECT = 'Rect';
    case REF = 'Ref';
    case REFERENCE = 'Reference';
    case REGISTRY = 'Registry';
    case RENAME = 'Rename';
    case RENDITIONS = 'Renditions';
    case REPEAT = 'Repeat';
    case REQUIREMENTS = 'Requirements';
    case RES_FORK = 'ResFork';
    case RESOURCE = 'Resource';
    case RESOURCES = 'Resources';
    case RF = 'RF';
    case RH = 'RH';
    case RI = 'RI';
    case RIGHTS_WATCHMARK = 'RightsWATCHMark';
    case RM = 'RM';
    case RO = 'RO';
    case ROOT = 'Root';
    case ROTATE = 'Rotate';
    case ROWS = 'Rows';
    case RT = 'RT';
    case RV = 'RV';
    case S = 'S';
    case SA = 'SA';
    case SCHEMA = 'Schema';
    case SCRIPT = 'Script';
    case SE = 'SE';
    case SEPARATION_INFO = 'SeparationInfo';
    case SET_F = 'SetF';
    case SET_FF = 'SetFf';
    case SHADING = 'Shading';
    case SHADING_TYPE = 'ShadingType';
    case SHOW_CONTROLS = 'ShowControls';
    case SI = 'SI';
    case SIG_FLAGS = 'SigFlags';
    case SIGNATURE = 'Signature';
    case SIZE = 'Size';
    case SM = 'SM';
    case SMASK = 'SMask';
    case SMASK_IN_DATA = 'SMaskInData';
    case SOLIDITIES = 'Solidities';
    case SORT = 'Sort';
    case SOUND = 'Sound';
    case SOUND_ACTIONS = 'SoundActions';
    case SOURCE_MODIFIED = 'SourceModified';
    case SP = 'SP';
    case SPIDER_INFO = 'SpiderInfo';
    case SPOT_FUNCTION = 'SpotFunction';
    case SS = 'SS';
    case ST = 'St';
    case START = 'Start';
    case START_RESOURCE = 'StartResource';
    case STATE = 'State';
    case STATE_MODEL = 'StateModel';
    case STATUS = 'Status';
    case STEM_H = 'StemH';
    case STEM_V = 'StemV';
    case STM_F = 'StmF';
    case STR_F = 'StrF';
    case STRUCT_PARENT = 'StructParent';
    case STRUCT_PARENTS = 'StructParents';
    case STRUCT_TREE_ROOT = 'StructTreeRoot';
    case STYLE = 'Style';
    case SUB_FILTER = 'SubFilter';
    case SUBJ = 'Subj';
    case SUBJECT = 'Subject';
    case SUBJECT_DN = 'SubjectDN';
    case SUBTYPE = 'Subtype';
    case SUPPLEMENT = 'Supplement';
    case SUSPECTS = 'Suspects';
    case SV = 'SV';
    case SW = 'SW';
    case SY = 'Sy';
    case SYNCHRONOUS = 'Synchronous';
    case T = 'T';
    case TA = 'TA';
    case TABS = 'Tabs';
    case TARGET = 'Target';
    case TB = 'TB';
    case TC = 'Tc';
    case TEMPLATE_INSTANTIATED = 'TemplateInstantiated';
    case TEMPLATES = 'Templates';
    case TEXT = 'Text';
    case TF = 'TF';
    case THREADS = 'Threads';
    case THREE_DA = '3DA';
    case THREE_DB = '3DB';
    case THREE_DD = '3DD';
    case THREE_DI = '3DI';
    case THREE_DV = '3DV';
    case THUMB = 'Thumb';
    case TILING_TYPE = 'TilingType';
    case TIME_STAMP = 'TimeStamp';
    case TITLE = 'Title';
    case TK = 'TK';
    case TM = 'TM';
    case TO_UNICODE = 'ToUnicode';
    case TP = 'TP';
    case TPL = 'TPL';
    case TR = 'TR';
    case TR2 = 'TR2';
    case TRANS = 'Trans';
    case TRANSFER_FUNCTION = 'TransferFunction';
    case TRANSFORM_METHOD = 'TransformMethod';
    case TRANSFORM_PARAMS = 'TransformParams';
    case TRAPPED = 'Trapped';
    case TREF = 'TRef';
    case TRIM_BOX = 'TrimBox';
    case TRUE_TYPE_FONTS = 'TrueTypeFonts';
    case TT = 'TT';
    case TU = 'TU';
    case TYPE = 'Type';
    case U = 'U';
    case U3DPATH = 'U3DPath';
    case UC = 'UC';
    case UCR = 'UCR';
    case UCR2 = 'UCR2';
    case UF = 'UF';
    case UNIX = 'Unix';
    case UR3 = 'UR3';
    case URI = 'URI';
    case URIACTIONS = 'URIActions';
    case URL = 'URL';
    case URLS = 'URLS';
    case URLTYPE = 'URLType';
    case USAGE = 'Usage';
    case USE_CMAP = 'UseCMap';
    case USER = 'User';
    case USER_PROPERTIES = 'UserProperties';
    case USER_UNIT = 'UserUnit';
    case V = 'V';
    case VA = 'VA';
    case VE = 'VE';
    case VERIKET_CLASSIFICATION = 'VeriketClassification';
    case VERSION = 'Version';
    case VERTICES = 'Vertices';
    case VERTICES_PER_ROW = 'VerticesPerRow';
    case VIEW = 'View';
    case VIEW_AREA = 'ViewArea';
    case VIEW_CLIP = 'ViewClip';
    case VIEWER_PREFERENCES = 'ViewerPreferences';
    case VOLUME = 'Volume';
    case VP = 'VP';
    case W = 'W';
    case W2 = 'W2';
    case WC = 'WC';
    case WHITE_POINT = 'WhitePoint';
    case WIDTH = 'Width';
    case WIDTH2 = 'Width2';
    case WIDTHS = 'Widths';
    case WIN = 'Win';
    case WM = 'WM';
    case WMODE = 'WMode';
    case WP = 'WP';
    case WS = 'WS';
    case X = 'X';
    case XFA = 'XFA';
    case XHEIGHT = 'XHeight';
    case XN = 'XN';
    case XOBJECT = 'XObject';
    case XREF_STM = 'XRefStm';
    case XSQUARE = 'XSquare';
    case XSTEP = 'XStep';
    case XYZ = 'XYZ';
    case Y = 'Y';
    case YSQUARE = 'YSquare';
    case YSTEP = 'YStep';
    case Z = 'Z';
    case ZA_DB = 'ZaDb';
    case ZOOM = 'Zoom';

    /** @internal */
    public static function tryFromKeyString(string $keyString): ?self {
        return self::tryFrom(rtrim(ltrim(trim($keyString), '/'), "\n\t "));
    }

    /** @api */
    #[Override]
    public function getValueTypes(): array {
        return match ($this) {
            self::A => [Dictionary::class, BooleanValue::class, DictionaryArrayValue::class, IntegerValue::class, TextStringValue::class],
            self::AA, self::BS => [Dictionary::class],
            self::AC => [TextStringValue::class, ArrayValue::class],
            self::AF => [DictionaryArrayValue::class, ReferenceValueArray::class, ReferenceValue::class],
            self::ACCURATE_SCREENS => [BooleanValue::class],
            self::ACRO_FORM => [Dictionary::class],
            self::ACTION => [TextStringValue::class],
            self::ADD_REV_INFO => [BooleanValue::class],
            self::ADDITIONAL_STREAMS => [ArrayValue::class],
            self::AFTER => [TextStringValue::class],
            self::AFTER_PERMS_READY => [TextStringValue::class],
            self::AIS => [BooleanValue::class, TextStringValue::class],
            self::ALT => [ArrayValue::class],
            self::ALTERNATE => [ArrayValue::class, TextStringValue::class],
            self::ALTERNATE_IMAGES => [IntegerValue::class],
            self::ALTERNATE_PRESENTATIONS => [TextStringValue::class],
            self::ALTERNATES => [DictionaryArrayValue::class],
            self::AN => [Dictionary::class],
            self::ANGLE => [IntegerValue::class, FloatValue::class],
            self::ANNOTATION => [Dictionary::class],
            self::ANNOTATIONS => [IntegerValue::class],
            self::ANNOTS => [ReferenceValue::class, ReferenceValueArray::class, DictionaryArrayValue::class],
            self::ANTI_ALIAS => [BooleanValue::class],
            self::AP => [DictionaryArrayValue::class],
            self::APREF => [Dictionary::class],
            self::ART_BOX => [Rectangle::class],
            self::AS => [DictionaryArrayValue::class, TextStringValue::class],
            self::ASCENT => [IntegerValue::class, FloatValue::class],
            self::ASPECT => [ArrayValue::class],
            self::ATTESTATION => [TextStringValue::class],
            self::AUTH_EVENT => [AuthEventNameValue::class],
            self::AUTHOR => [TextStringValue::class],
            self::AVG_WIDTH => [IntegerValue::class, FloatValue::class],
            self::B => [ArrayValue::class, BooleanValue::class, Dictionary::class, IntegerValue::class],
            self::BACKGROUND => [ArrayValue::class],
            self::BASE => [TextStringValue::class],
            self::BASE_ENCODING => [EncodingNameValue::class],
            self::BASE_FONT => [TextStringValue::class],
            self::BASE_STATE => [TextStringValue::class],
            self::BASE_VERSION => [Version::class],
            self::BBOX => [Rectangle::class],
            self::BC => [ArrayValue::class],
            self::BE => [Dictionary::class],
            self::BEFORE => [TextStringValue::class],
            self::BG => [TextStringValue::class, ArrayValue::class, Dictionary::class],
            self::BG2 => [TextStringValue::class],
            self::BI => [Dictionary::class],
            self::BITS_PER_COMPONENT => [IntegerValue::class],
            self::BITS_PER_COORDINATE => [IntegerValue::class],
            self::BITS_PER_FLAG => [IntegerValue::class],
            self::BITS_PER_SAMPLE => [IntegerValue::class],
            self::BLACK_IS1 => [BooleanValue::class],
            self::BLACK_POINT => [ArrayValue::class],
            self::BLEED_BOX => [Rectangle::class],
            self::BM => [BlendModeNameValue::class],
            self::BORDER => [ArrayValue::class],
            self::BOUNDS => [ArrayValue::class],
            self::BOX_COLOR_INFO => [Dictionary::class],
            self::BU => [TextStringValue::class],
            self::BYTE_RANGE => [ArrayValue::class],
            self::C => [Dictionary::class, ArrayValue::class, IntegerValue::class, FloatValue::class, BooleanValue::class],
            self::C0 => [ArrayValue::class],
            self::C1 => [ArrayValue::class],
            self::C2W => [ArrayValue::class],
            self::CA => [IntegerValue::class, FloatValue::class, TextStringValue::class],
            self::CA_L => [IntegerValue::class, FloatValue::class],
            self::CAP => [BooleanValue::class],
            self::CAP_HEIGHT => [IntegerValue::class, FloatValue::class],
            self::CATEGORY => [ArrayValue::class],
            self::CENTER_WINDOW => [BooleanValue::class],
            self::CERT => [Dictionary::class, ArrayValue::class, TextStringValue::class],
            self::CF => [Dictionary::class],
            self::CFM => [CFMNameValue::class],
            self::CHANGES => [ArrayValue::class],
            self::CHAR_PROCS => [Dictionary::class],
            self::CHAR_SET => [TextStringValue::class],
            self::CHECK_SUM => [TextStringValue::class],
            self::CI => [Dictionary::class],
            self::CIDSET => [TextStringValue::class],
            self::CIDSYSTEM_INFO => [Dictionary::class, DictionaryArrayValue::class],
            self::CIDTO_GIDMAP => [TextStringValue::class],
            self::CL => [ArrayValue::class],
            self::CLR_F => [IntegerValue::class],
            self::CLR_FF => [TextStringValue::class],
            self::CMAP_NAME => [TextStringValue::class],
            self::CO => [ArrayValue::class, TextStringValue::class, IntegerValue::class, FloatValue::class],
            self::CO_ => [TextStringValue::class],
            self::COLLECTION => [Dictionary::class],
            self::COLOR_SPACE => [DeviceColorSpaceNameValue::class, CIEColorSpaceNameValue::class, SpecialColorSpaceNameValue::class, Dictionary::class, ArrayValue::class],
            self::COLOR_TRANSFORM => [IntegerValue::class],
            self::COLORANTS => [Dictionary::class],
            self::COLORS => [IntegerValue::class],
            self::COLUMNS => [IntegerValue::class],
            self::COMPANY => [TextStringValue::class],
            self::COMPONENTS => [ArrayValue::class],
            self::CONFIGS => [DictionaryArrayValue::class],
            self::CONTACT_INFO => [TextStringValue::class],
            self::CONTENT_TYPE_ID => [TextStringValue::class],
            self::CONTENTS => [ReferenceValue::class, ReferenceValueArray::class, TextStringValue::class],
            self::COORDS => [ArrayValue::class],
            self::COUNT => [IntegerValue::class],
            self::CP => [TextStringValue::class],
            self::CREATION_DATE => [DateValue::class, ReferenceValue::class, TextStringValue::class],
            self::CREATOR => [IntegerValue::class, TextStringValue::class],
            self::CREATOR_INFO => [Dictionary::class],
            self::CROP_BOX => [Rectangle::class, ReferenceValue::class],
            self::CS => [TextStringValue::class, ArrayValue::class],
            self::CS_L => [TextStringValue::class],
            self::CT => [TextStringValue::class],
            self::CV => [IntegerValue::class, FloatValue::class],
            self::CYX => [IntegerValue::class, FloatValue::class],
            self::D => [TextStringValue::class, DateValue::class, IntegerValue::class, FloatValue::class, ArrayValue::class, Dictionary::class],
            self::DA => [TextStringValue::class],
            self::DAMAGED_ROWS_BEFORE_ERROR => [IntegerValue::class],
            self::DATA => [TextStringValue::class],
            self::DECODE => [ArrayValue::class],
            self::DECODE_PARMS => [Dictionary::class, DictionaryArrayValue::class],
            self::DEFAULT => [Dictionary::class, TextStringValue::class],
            self::DEFAULT_FOR_PRINTING => [BooleanValue::class],
            self::DESC => [TextStringValue::class],
            self::DESCENDANT_FONTS => [ReferenceValueArray::class, Dictionary::class, DictionaryArrayValue::class],
            self::DESCENT => [IntegerValue::class, FloatValue::class],
            self::DEST => [TextStringValue::class, ArrayValue::class],
            self::DESTS => [Dictionary::class, TextStringValue::class],
            self::DEV_DEP_GS_BG => [IntegerValue::class],
            self::DEV_DEP_GS_FL => [IntegerValue::class],
            self::DEV_DEP_GS_HT => [IntegerValue::class],
            self::DEV_DEP_GS_OP => [IntegerValue::class],
            self::DEV_DEP_GS_TR => [IntegerValue::class],
            self::DEV_DEP_GS_UCR => [IntegerValue::class],
            self::DI => [IntegerValue::class, FloatValue::class, TextStringValue::class],
            self::DIFFERENCES => [DifferencesArrayValue::class, TextStringValue::class],
            self::DIGEST_METHOD => [ArrayValue::class, TextStringValue::class],
            self::DIRECTION => [DirectionNameValue::class],
            self::DIS => [TextStringValue::class],
            self::DISPLAY_DOC_TITLE => [BooleanValue::class, ReferenceValue::class],
            self::DL => [IntegerValue::class],
            self::DM => [TextStringValue::class],
            self::DOC => [ArrayValue::class],
            self::DOC_CHECKSUM => [TextStringValue::class],
            self::DOC_MDP => [Dictionary::class],
            self::DOCUMENT => [ArrayValue::class],
            self::DOMAIN => [ArrayValue::class],
            self::DOS => [TextStringValue::class],
            self::DOT_GAIN => [Dictionary::class],
            self::DP => [Dictionary::class],
            self::DR => [Dictionary::class],
            self::DS => [TextStringValue::class, Dictionary::class],
            self::DUPLEX => [PaperHandlingNameValue::class],
            self::DUR => [IntegerValue::class, FloatValue::class],
            self::DURATION => [TextStringValue::class],
            self::DV => [TextStringValue::class],
            self::DW => [IntegerValue::class],
            self::DW2 => [ArrayValue::class],
            self::E => [BooleanValue::class, Dictionary::class, TextStringValue::class],
            self::EA => [BooleanValue::class],
            self::EARLY_CHANGE => [IntegerValue::class],
            self::EF => [Dictionary::class, ReferenceValue::class],
            self::EFF => [TextStringValue::class],
            self::EMBEDDED_FDFS => [DictionaryArrayValue::class],
            self::EMBEDDED_FILES => [Dictionary::class],
            self::ENCODE => [ArrayValue::class],
            self::ENCODED_BYTE_ALIGN => [BooleanValue::class],
            self::ENCODING => [EncodingNameValue::class, Dictionary::class],
            self::ENCRYPT => [Dictionary::class],
            self::ENCRYPT_METADATA => [BooleanValue::class],
            self::ENCRYPTION_REVISION => [IntegerValue::class],
            self::END_OF_BLOCK => [BooleanValue::class],
            self::END_OF_LINE => [BooleanValue::class],
            self::EVENT => [EventNameValue::class],
            self::EX_DATA => [Dictionary::class],
            self::EXPORT => [Dictionary::class],
            self::EXT_GSTATE => [Dictionary::class],
            self::EXTEND => [ArrayValue::class],
            self::EXTENDS => [TextStringValue::class],
            self::EXTENSION_LEVEL => [IntegerValue::class],
            self::EXTENSIONS => [Dictionary::class],
            self::EXTERNAL_OPIDICTS => [IntegerValue::class],
            self::EXTERNAL_REF_XOBJECTS => [IntegerValue::class],
            self::EXTERNAL_STREAMS => [IntegerValue::class],
            self::F => [TextStringValue::class, IntegerValue::class, FloatValue::class, Dictionary::class],
            self::FB => [BooleanValue::class],
            self::FC => [ArrayValue::class, TextStringValue::class],
            self::FD => [Dictionary::class, BooleanValue::class],
            self::FDECODE_PARMS => [Dictionary::class, DictionaryArrayValue::class],
            self::FDF => [Dictionary::class],
            self::FF => [IntegerValue::class],
            self::FFILTER => [FilterNameValue::class, ArrayValue::class],
            self::FIELDS => [ReferenceValue::class, ReferenceValueArray::class, DictionaryArrayValue::class],
            self::FILTER => [FilterNameValue::class, SecurityHandlerNameValue::class, ArrayValue::class],
            self::FIRST => [IntegerValue::class, Dictionary::class],
            self::FIRST_CHAR => [IntegerValue::class],
            self::FIT_WINDOW => [BooleanValue::class],
            self::FIXED_PRINT => [Dictionary::class],
            self::FL => [IntegerValue::class, FloatValue::class],
            self::FLAGS => [IntegerValue::class],
            self::FO => [Dictionary::class],
            self::FONT => [Dictionary::class, ArrayValue::class],
            self::FONT_BBOX => [Rectangle::class, ReferenceValue::class],
            self::FONT_DESCRIPTOR => [Dictionary::class],
            self::FONT_FAMILY => [TextStringValue::class],
            self::FONT_FAUXING => [DictionaryArrayValue::class],
            self::FONT_FILE => [TextStringValue::class],
            self::FONT_FILE2 => [TextStringValue::class],
            self::FONT_FILE3 => [TextStringValue::class],
            self::FONT_MATRIX => [ArrayValue::class],
            self::FONT_NAME => [TextStringValue::class],
            self::FONT_STRETCH => [TextStringValue::class],
            self::FONT_WEIGHT => [IntegerValue::class, FloatValue::class],
            self::FORM => [ArrayValue::class],
            self::FORM_TYPE => [IntegerValue::class],
            self::FOV => [IntegerValue::class, FloatValue::class],
            self::FREQUENCY => [IntegerValue::class, FloatValue::class],
            self::FS => [TextStringValue::class],
            self::FT => [TextStringValue::class],
            self::FUNCTION => [TextStringValue::class],
            self::FUNCTION_TYPE => [IntegerValue::class],
            self::FUNCTIONS => [ArrayValue::class],
            self::FWPOSITION => [ArrayValue::class],
            self::FWSCALE => [ArrayValue::class],
            self::G => [ReferenceValue::class, TextStringValue::class],
            self::GAMMA => [IntegerValue::class, FloatValue::class, ArrayValue::class],
            self::GO_TO_REMOTE_ACTIONS => [IntegerValue::class],
            self::GROUP => [Dictionary::class],
            self::GS => [TextStringValue::class],
            self::GS_L => [TextStringValue::class],
            self::H => [TextStringValue::class, IntegerValue::class, FloatValue::class, BooleanValue::class, ArrayValue::class],
            self::HALFTONE_NAME => [TextStringValue::class],
            self::HALFTONE_TYPE => [IntegerValue::class],
            self::HEIGHT => [IntegerValue::class],
            self::HEIGHT2 => [IntegerValue::class],
            self::HELV => [TextStringValue::class],
            self::HI => [BooleanValue::class],
            self::HIDE_ANNOTATION_ACTIONS => [IntegerValue::class],
            self::HIDE_MENUBAR => [BooleanValue::class],
            self::HIDE_TOOLBAR => [BooleanValue::class],
            self::HIDE_WINDOW_UI => [BooleanValue::class],
            self::HT => [Dictionary::class, TextStringValue::class],
            self::I => [BooleanValue::class, Dictionary::class, IntegerValue::class, FloatValue::class, TextStringValue::class],
            self::IC => [ArrayValue::class],
            self::ID => [ArrayValue::class, TextStringValue::class],
            self::IDTREE => [Dictionary::class],
            self::IDENTITY => [TextStringValue::class],
            self::IDS => [TextStringValue::class],
            self::IF => [Dictionary::class],
            self::IM => [TextStringValue::class],
            self::IMAGE => [TextStringValue::class],
            self::IMAGE_B => [TextStringValue::class],
            self::IMAGE_C => [TextStringValue::class],
            self::IMAGE_I => [TextStringValue::class],
            self::IMAGE_MASK => [BooleanValue::class],
            self::IN => [TextStringValue::class],
            self::IN_DESIGN => [TextStringValue::class, Dictionary::class],
            self::INDEX => [ArrayValue::class],
            self::INFO => [Dictionary::class, TextStringValue::class],
            self::INK_LIST => [ArrayValue::class],
            self::INTENT => [IntentNameValue::class, RenderingIntentNameValue::class, ArrayValue::class],
            self::INTERPOLATE => [BooleanValue::class],
            self::IRT => [Dictionary::class],
            self::IS_MAP => [BooleanValue::class],
            self::ISSUER => [ArrayValue::class],
            self::IT => [TextStringValue::class],
            self::ITALIC_ANGLE => [IntegerValue::class, FloatValue::class],
            self::IV => [BooleanValue::class],
            self::IX => [TextStringValue::class],
            self::JAVA_SCRIPT => [TextStringValue::class, Dictionary::class],
            self::JAVA_SCRIPT_ACTIONS => [IntegerValue::class],
            self::JBIG2GLOBALS => [TextStringValue::class],
            self::JS => [TextStringValue::class],
            self::K => [IntegerValue::class, BooleanValue::class, Dictionary::class, DictionaryArrayValue::class],
            self::KEY_USAGE => [ArrayValue::class],
            self::KEYWORDS => [TextStringValue::class],
            self::KIDS => [ReferenceValueArray::class],
            self::L => [Rectangle::class, ArrayValue::class],
            self::LANG => [TextStringValue::class],
            self::LANGUAGE => [Dictionary::class],
            self::LAST => [Dictionary::class],
            self::LAST_CHAR => [IntegerValue::class],
            self::LAST_MODIFIED => [DateValue::class],
            self::LAUNCH_ACTIONS => [IntegerValue::class],
            self::LC => [IntegerValue::class],
            self::LE => [TextStringValue::class, ArrayValue::class],
            self::LEADING => [IntegerValue::class, FloatValue::class],
            self::LEGAL => [Dictionary::class],
            self::LEGAL_ATTESTATION => [Dictionary::class],
            self::LENGTH => [IntegerValue::class, ReferenceValue::class],
            self::LENGTH1 => [IntegerValue::class],
            self::LENGTH2 => [IntegerValue::class],
            self::LENGTH3 => [IntegerValue::class],
            self::LEVEL1 => [TextStringValue::class],
            self::LI => [BooleanValue::class],
            self::LIMITS => [ArrayValue::class],
            self::LINEARIZED => [IntegerValue::class, FloatValue::class],
            self::LIST_MODE => [ListModeNameValue::class],
            self::LJ => [IntegerValue::class],
            self::LL => [IntegerValue::class, FloatValue::class],
            self::LLE => [IntegerValue::class, FloatValue::class],
            self::LLO => [IntegerValue::class, FloatValue::class],
            self::LOCATION => [TextStringValue::class],
            self::LOCK => [Dictionary::class],
            self::LOCKED => [ArrayValue::class],
            self::LS => [Dictionary::class],
            self::LW => [IntegerValue::class, FloatValue::class],
            self::M => [TextStringValue::class, DateValue::class, IntegerValue::class, ArrayValue::class],
            self::MA => [DictionaryArrayValue::class],
            self::MAC => [TextStringValue::class, Dictionary::class],
            self::MARK_INFO => [Dictionary::class],
            self::MARKED => [BooleanValue::class],
            self::MASK => [TextStringValue::class, ArrayValue::class],
            self::MATRIX => [ArrayValue::class],
            self::MATTE => [ArrayValue::class],
            self::MAX_LEN => [IntegerValue::class],
            self::MAX_WIDTH => [IntegerValue::class, FloatValue::class],
            self::MCAF => [DictionaryArrayValue::class],
            self::MD5 => [TextStringValue::class],
            self::MDP => [Dictionary::class],
            self::MEASURE => [Dictionary::class],
            self::MEDIA_BOX => [Rectangle::class, ReferenceValue::class],
            self::METADATA => [TextStringValue::class],
            self::MH => [Dictionary::class],
            self::MISSING_WIDTH => [IntegerValue::class, FloatValue::class],
            self::MIX => [BooleanValue::class],
            self::MIXING_HINTS => [Dictionary::class],
            self::MK => [Dictionary::class],
            self::ML => [IntegerValue::class, FloatValue::class],
            self::MOD_DATE => [DateValue::class, ReferenceValue::class],
            self::MODE => [TextStringValue::class],
            self::MOVIE => [Dictionary::class],
            self::MOVIE_ACTIONS => [IntegerValue::class],
            self::MS => [TextStringValue::class],
            self::MSG => [TextStringValue::class],
            self::MU => [DictionaryArrayValue::class],
            self::N => [IntegerValue::class, FloatValue::class, TextStringValue::class, Dictionary::class],
            self::NA => [Dictionary::class, ArrayValue::class],
            self::NAME => [TextStringValue::class, TextStringValue::class],
            self::NAMES => [Dictionary::class, ArrayValue::class],
            self::NEED_APPEARANCES => [BooleanValue::class],
            self::NEEDS_RENDERING => [BooleanValue::class],
            self::NEW_WINDOW => [BooleanValue::class],
            self::NEXT => [Dictionary::class, DictionaryArrayValue::class],
            self::NM => [TextStringValue::class],
            self::NON_EMBEDDED_FONTS => [IntegerValue::class],
            self::NON_FULL_SCREEN_PAGE_MODE => [NonFullScreenPageModeNameValue::class],
            self::NP => [BooleanValue::class],
            self::NR => [BooleanValue::class],
            self::NU => [DictionaryArrayValue::class],
            self::NUM_COPIES => [IntegerValue::class],
            self::NUMS => [TextStringValue::class],
            self::O => [TextStringValue::class, IntegerValue::class, FloatValue::class, Dictionary::class, ArrayValue::class, BooleanValue::class],
            self::OB => [TextStringValue::class],
            self::OC => [Dictionary::class],
            self::OCGS => [ReferenceValueArray::class, DictionaryArrayValue::class],
            self::OCPROPERTIES => [Dictionary::class],
            self::OFF => [ArrayValue::class],
            self::OID => [ArrayValue::class],
            self::ON => [ReferenceValueArray::class, ArrayValue::class],
            self::ON_INSTANTIATE => [TextStringValue::class],
            self::OP => [BooleanValue::class, IntegerValue::class],
            self::OP_L => [TextStringValue::class],
            self::OPEN => [BooleanValue::class],
            self::OPEN_ACTION => [Dictionary::class, ArrayValue::class],
            self::OPERATION => [TextStringValue::class],
            self::OPI => [Dictionary::class],
            self::OPM => [IntegerValue::class],
            self::OPT => [ArrayValue::class],
            self::OPTIONAL_CONTENT => [BooleanValue::class],
            self::ORDER => [IntegerValue::class, ArrayValue::class],
            self::ORDERING => [TextStringValue::class],
            self::OS => [ArrayValue::class, IntegerValue::class, FloatValue::class],
            self::OUTLINES => [Dictionary::class],
            self::OUTPUT_INTENTS => [ReferenceValue::class, ReferenceValueArray::class, DictionaryArrayValue::class],
            self::OVERLAY_TEXT => [TextStringValue::class],
            self::P => [IntegerValue::class, TextStringValue::class, VisibilityPolicyNameValue::class, Dictionary::class, BooleanValue::class, ArrayValue::class, DictionaryArrayValue::class],
            self::PA => [Dictionary::class],
            self::PAGE => [IntegerValue::class, TextStringValue::class],
            self::PAGE_ELEMENT => [Dictionary::class],
            self::PAGE_LABELS => [TextStringValue::class, ArrayValue::class],
            self::PAGE_LAYOUT => [PageLayoutNameValue::class],
            self::PAGE_MODE => [PageModeNameValue::class],
            self::PAGES => [Dictionary::class, TextStringValue::class, DictionaryArrayValue::class],
            self::PAINT_TYPE => [IntegerValue::class],
            self::PARAMS => [Dictionary::class],
            self::PARENT => [Dictionary::class],
            self::PARENT_TREE => [Dictionary::class],
            self::PATTERN => [Dictionary::class, TextStringValue::class],
            self::PATTERN_TYPE => [IntegerValue::class],
            self::PC => [Dictionary::class, IntegerValue::class, ArrayValue::class],
            self::PDF => [TextStringValue::class],
            self::PDFDOC_ENCODING => [TextStringValue::class],
            self::PERMS => [Dictionary::class],
            self::PI => [Dictionary::class],
            self::PICK_TRAY_BY_PDFSIZE => [BooleanValue::class],
            self::PID => [Dictionary::class],
            self::PIECE_INFO => [Dictionary::class],
            self::PL => [Dictionary::class],
            self::PO => [Dictionary::class, IntegerValue::class, FloatValue::class],
            self::POPUP => [Dictionary::class],
            self::POSTER => [BooleanValue::class, TextStringValue::class],
            self::PREDICTOR => [IntegerValue::class],
            self::PRES_STEPS => [Dictionary::class],
            self::PRESERVE_RB => [BooleanValue::class],
            self::PREV => [IntegerValue::class, Dictionary::class],
            self::PRINT => [Dictionary::class],
            self::PRINT_AREA => [TextStringValue::class],
            self::PRINT_CLIP => [TextStringValue::class],
            self::PRINT_PAGE_RANGE => [TextStringValue::class, ArrayValue::class],
            self::PRINT_SCALING => [TextStringValue::class],
            self::PRINTING_ORDER => [ArrayValue::class],
            self::PRIVATE => [TextStringValue::class],
            self::PROC_SET => [ArrayValue::class, ReferenceValue::class],
            self::PROCESS => [Dictionary::class],
            self::PRODUCER => [TextStringValue::class],
            self::PROP_AUTH_TIME => [IntegerValue::class],
            self::PROP_AUTH_TYPE => [TextStringValue::class],
            self::PROP_BUILD => [Dictionary::class],
            self::PROPERTIES => [Dictionary::class],
            self::PS => [TextStringValue::class, IntegerValue::class, FloatValue::class],
            self::PT_DATA => [DictionaryArrayValue::class],
            self::PTEX_FULLBANNER => [TextStringValue::class],
            self::PV => [Dictionary::class],
            self::PZ => [FloatValue::class],
            self::Q => [IntegerValue::class],
            self::QUAD_POINTS => [ArrayValue::class],
            self::R => [StandardSecurityHandlerRevision::class, Rectangle::class, Dictionary::class, TextStringValue::class, ArrayValue::class],
            self::RANGE => [ArrayValue::class],
            self::RATE => [IntegerValue::class, FloatValue::class],
            self::RBGROUPS => [ArrayValue::class],
            self::RC => [TextStringValue::class, IntegerValue::class, FloatValue::class],
            self::RD => [Rectangle::class, TextStringValue::class],
            self::REASON => [TextStringValue::class],
            self::REASONS => [ArrayValue::class],
            self::RECIPIENTS => [ArrayValue::class, TextStringValue::class],
            self::RECT => [Rectangle::class],
            self::REF => [Dictionary::class],
            self::REFERENCE => [DictionaryArrayValue::class],
            self::REGISTRY => [TextStringValue::class],
            self::RENAME => [BooleanValue::class],
            self::RENDITIONS => [TextStringValue::class],
            self::REPEAT => [BooleanValue::class],
            self::REQUIREMENTS => [DictionaryArrayValue::class],
            self::RES_FORK => [TextStringValue::class],
            self::RESOURCE => [TextStringValue::class],
            self::RESOURCES => [Dictionary::class],
            self::RF => [Dictionary::class],
            self::RH => [Dictionary::class, DictionaryArrayValue::class],
            self::RI => [RenderingIntentNameValue::class, TextStringValue::class],
            self::RIGHTS_WATCHMARK => [TextStringValue::class],
            self::RM => [Dictionary::class],
            self::RO => [TextStringValue::class],
            self::ROOT => [Dictionary::class],
            self::ROTATE => [IntegerValue::class],
            self::ROWS => [IntegerValue::class],
            self::RT => [TextStringValue::class, IntegerValue::class],
            self::RV => [TextStringValue::class],
            self::S => [TextStringValue::class, ArrayValue::class, NumberingStyleNameValue::class, TransitionStyleNameValue::class, BorderStyleNameValue::class, BooleanValue::class],
            self::SA => [BooleanValue::class, ArrayValue::class],
            self::SCHEMA => [Dictionary::class],
            self::SCRIPT => [TextStringValue::class],
            self::SE => [Dictionary::class],
            self::SEPARATION_INFO => [Dictionary::class],
            self::SET_F => [IntegerValue::class],
            self::SET_FF => [TextStringValue::class],
            self::SHADING => [Dictionary::class, TextStringValue::class],
            self::SHADING_TYPE => [IntegerValue::class],
            self::SHOW_CONTROLS => [BooleanValue::class],
            self::SI => [DictionaryArrayValue::class],
            self::SIG_FLAGS => [IntegerValue::class],
            self::SIGNATURE => [ArrayValue::class],
            self::SIZE => [IntegerValue::class, ArrayValue::class],
            self::SM => [IntegerValue::class, FloatValue::class],
            self::SMASK => [Dictionary::class, TextStringValue::class],
            self::SMASK_IN_DATA => [IntegerValue::class],
            self::SOLIDITIES => [Dictionary::class],
            self::SORT => [Dictionary::class],
            self::SOUND => [TextStringValue::class],
            self::SOUND_ACTIONS => [IntegerValue::class],
            self::SOURCE_MODIFIED => [DateValue::class],
            self::SP => [Dictionary::class],
            self::SPIDER_INFO => [Dictionary::class],
            self::SPOT_FUNCTION => [TextStringValue::class],
            self::SS => [IntegerValue::class, FloatValue::class, TextStringValue::class],
            self::ST => [IntegerValue::class],
            self::START => [TextStringValue::class],
            self::START_RESOURCE => [TextStringValue::class],
            self::STATE => [TextStringValue::class, ArrayValue::class],
            self::STATE_MODEL => [TextStringValue::class],
            self::STATUS => [TextStringValue::class],
            self::STEM_H => [IntegerValue::class, FloatValue::class],
            self::STEM_V => [IntegerValue::class, FloatValue::class, ReferenceValue::class],
            self::STM_F => [TextStringValue::class],
            self::STR_F => [TextStringValue::class],
            self::STRUCT_PARENT => [IntegerValue::class],
            self::STRUCT_PARENTS => [IntegerValue::class],
            self::STRUCT_TREE_ROOT => [Dictionary::class],
            self::STYLE => [Dictionary::class],
            self::SUB_FILTER => [TextStringValue::class, ArrayValue::class],
            self::SUBJ => [TextStringValue::class],
            self::SUBJECT => [ArrayValue::class, TextStringValue::class],
            self::SUBJECT_DN => [DictionaryArrayValue::class],
            self::SUBTYPE => [SubtypeNameValue::class, TextStringValue::class],
            self::SUPPLEMENT => [IntegerValue::class],
            self::SUSPECTS => [BooleanValue::class],
            self::SV => [Dictionary::class],
            self::SW => [TextStringValue::class],
            self::SY => [TextStringValue::class],
            self::SYNCHRONOUS => [BooleanValue::class],
            self::T => [Dictionary::class, TextStringValue::class, DictionaryArrayValue::class, BooleanValue::class],
            self::TA => [Dictionary::class],
            self::TABS => [TabsNameValue::class, TextStringValue::class],
            self::TARGET => [TextStringValue::class],
            self::TB => [BooleanValue::class],
            self::TC => [TextStringValue::class],
            self::TEMPLATE_INSTANTIATED => [TextStringValue::class],
            self::TEMPLATES => [TextStringValue::class, DictionaryArrayValue::class],
            self::TEXT => [TextStringValue::class],
            self::TF => [TextStringValue::class],
            self::THREADS => [DictionaryArrayValue::class],
            self::THREE_DA => [Dictionary::class, TextStringValue::class],
            self::THREE_DB => [Rectangle::class],
            self::THREE_DD => [TextStringValue::class],
            self::THREE_DI => [BooleanValue::class],
            self::THREE_DV => [TextStringValue::class, Dictionary::class],
            self::THUMB => [TextStringValue::class],
            self::TILING_TYPE => [IntegerValue::class],
            self::TIME_STAMP => [Dictionary::class],
            self::TITLE => [TextStringValue::class],
            self::TK => [BooleanValue::class],
            self::TM => [TextStringValue::class, IntegerValue::class, FloatValue::class],
            self::TO_UNICODE => [ReferenceValue::class],
            self::TP => [IntegerValue::class],
            self::TPL => [TextStringValue::class],
            self::TR => [TextStringValue::class, ArrayValue::class],
            self::TR2 => [TextStringValue::class],
            self::TRANS => [Dictionary::class],
            self::TRANSFER_FUNCTION => [TextStringValue::class],
            self::TRANSFORM_METHOD => [TextStringValue::class],
            self::TRANSFORM_PARAMS => [Dictionary::class],
            self::TRAPPED => [TrappedNameValue::class],
            self::TREF => [Dictionary::class],
            self::TRIM_BOX => [Rectangle::class],
            self::TRUE_TYPE_FONTS => [IntegerValue::class],
            self::TT => [ArrayValue::class],
            self::TU => [TextStringValue::class],
            self::TYPE => [TypeNameValue::class, Dictionary::class],
            self::U => [TextStringValue::class, Dictionary::class],
            self::U3DPATH => [ArrayValue::class, TextStringValue::class],
            self::UC => [BooleanValue::class],
            self::UCR => [TextStringValue::class],
            self::UCR2 => [TextStringValue::class],
            self::UF => [TextStringValue::class],
            self::UNIX => [TextStringValue::class],
            self::UR3 => [Dictionary::class],
            self::URI => [Dictionary::class, TextStringValue::class],
            self::URIACTIONS => [IntegerValue::class],
            self::URL => [TextStringValue::class],
            self::URLS => [TextStringValue::class],
            self::URLTYPE => [TextStringValue::class],
            self::USAGE => [Dictionary::class],
            self::USE_CMAP => [TextStringValue::class],
            self::USER => [Dictionary::class],
            self::USER_PROPERTIES => [BooleanValue::class],
            self::USER_UNIT => [FloatValue::class],
            self::V => [SecurityAlgorithm::class, FloatValue::class, BooleanValue::class, Dictionary::class, TextStringValue::class, ArrayValue::class],
            self::VA => [DictionaryArrayValue::class],
            self::VE => [ArrayValue::class],
            self::VERIKET_CLASSIFICATION => [TextStringValue::class],
            self::VERSION => [Version::class],
            self::VERTICES => [ArrayValue::class],
            self::VERTICES_PER_ROW => [IntegerValue::class],
            self::VIEW => [Dictionary::class, ViewNameValue::class],
            self::VIEW_AREA => [TextStringValue::class],
            self::VIEW_CLIP => [TextStringValue::class],
            self::VIEWER_PREFERENCES => [Dictionary::class],
            self::VOLUME => [IntegerValue::class, FloatValue::class],
            self::VP => [Dictionary::class, DictionaryArrayValue::class, ReferenceValueArray::class, ArrayValue::class],
            self::W => [CrossReferenceStreamByteSizes::class, CIDFontWidths::class, IntegerValue::class, FloatValue::class, ReferenceValue::class],
            self::W2 => [ArrayValue::class],
            self::WC => [Dictionary::class],
            self::WHITE_POINT => [ArrayValue::class],
            self::WIDTH => [IntegerValue::class],
            self::WIDTH2 => [IntegerValue::class],
            self::WIDTHS => [ArrayValue::class],
            self::WIN => [Dictionary::class],
            self::WM => [TextStringValue::class],
            self::WMODE => [IntegerValue::class],
            self::WP => [Dictionary::class],
            self::WS => [Dictionary::class],
            self::X => [Dictionary::class, ArrayValue::class],
            self::XFA => [TextStringValue::class, ArrayValue::class],
            self::XHEIGHT => [IntegerValue::class, FloatValue::class],
            self::XN => [TextStringValue::class],
            self::XOBJECT => [Dictionary::class],
            self::XREF_STM => [IntegerValue::class],
            self::XSQUARE => [IntegerValue::class],
            self::XSTEP => [IntegerValue::class, FloatValue::class],
            self::XYZ => [TextStringValue::class],
            self::Y => [ArrayValue::class],
            self::YSQUARE => [IntegerValue::class],
            self::YSTEP => [IntegerValue::class, FloatValue::class],
            self::Z => [Dictionary::class],
            self::ZA_DB => [ReferenceValue::class, TextStringValue::class],
            self::ZOOM => [Dictionary::class],
        };
    }
}
