#
# DO NOT EDIT!
# This file is automatically generated at least once every
# hour by the GenerateVersionTable() sub in globals.pl.
# Any changes you make will be overwritten.
#
@::log_columns = (
                   'alias',
                   'assigned_to',
                   'bug_file_loc',
                   'bug_severity',
                   'bug_status',
                   'cclist_accessible',
                   'component_id',
                   'deadline',
                   'estimated_time',
                   'everconfirmed',
                   'keywords',
                   'op_sys',
                   'priority',
                   'product_id',
                   'qa_contact',
                   'remaining_time',
                   'rep_platform',
                   'reporter',
                   'reporter_accessible',
                   'resolution',
                   'short_desc',
                   'status_whiteboard',
                   'target_milestone',
                   'version',
                   'votes'
                 );
%::versions = (
                'usermgmt_cmds' => [
                                     'unspecified'
                                   ],
                'WebKit' => [
                              '312.x',
                              '412',
                              '412.x',
                              '416.x',
                              '417.x',
                              '418.x',
                              '420+ (nightly)'
                            ],
                'XPostFacto' => [
                                  '3.0a10',
                                  '3.0a11',
                                  '3.0a3',
                                  '3.0a4',
                                  '3.0a5',
                                  '3.0a6',
                                  '3.0a8',
                                  '3.0a9',
                                  '3.0b1',
                                  'unspecified'
                                ],
                'Infrastructure' => [
                                      'unspecified'
                                    ],
                'HeaderDoc' => [
                                 '6',
                                 '8.0'
                               ],
                'xar' => [
                           'unspecified'
                         ],
                'darwinbuild' => [
                                   '0.1',
                                   '0.2',
                                   '0.3',
                                   '0.4',
                                   '0.5',
                                   '0.6',
                                   '0.6.1',
                                   '0.7',
                                   '0.7.1',
                                   '0.7.2',
                                   '0.7.3',
                                   'current'
                                 ],
                'Doc' => [
                           '1.0'
                         ],
                'openssh-lpk' => [
                                   '0.2',
                                   'current'
                                 ],
                'libFoundation' => [
                                     'unspecified'
                                   ],
                'DarwinPorts' => [
                                   '0.5',
                                   '1.0',
                                   '1.2'
                                 ],
                'OpenAudio' => [
                                 '0.2',
                                 'unspecified'
                               ],
                'OpenDarwin' => [
                                  '7.2.1',
                                  '7.2.1-pre',
                                  '8.2.1',
                                  'unspecified'
                                ]
              );
@::legal_versions = (
                      '0.1',
                      '0.2',
                      '0.3',
                      '0.4',
                      '0.5',
                      '0.6',
                      '0.6.1',
                      '0.7',
                      '0.7.1',
                      '0.7.2',
                      '0.7.3',
                      '1.0',
                      '1.2',
                      '3.0a10',
                      '3.0a11',
                      '3.0a3',
                      '3.0a4',
                      '3.0a5',
                      '3.0a6',
                      '3.0a8',
                      '3.0a9',
                      '3.0b1',
                      '312.x',
                      '412',
                      '412.x',
                      '416.x',
                      '417.x',
                      '418.x',
                      '420+ (nightly)',
                      '6',
                      '7.2.1',
                      '7.2.1-pre',
                      '8.0',
                      '8.2.1',
                      'current',
                      'unspecified'
                    );
%::components = (
                  'usermgmt_cmds' => [
                                       'adduser',
                                       'pw',
                                       'www'
                                     ],
                  'WebKit' => [
                                'Accessibility',
                                'CSS',
                                'Forms',
                                'Frames',
                                'History',
                                'HTML DOM',
                                'HTML Editing',
                                'Images',
                                'Java',
                                'JavaScriptCore',
                                'JavaScriptGlue',
                                'kxmlcore',
                                'Layout and Rendering',
                                'New Bugs',
                                'Page Loading',
                                'PDF',
                                'Platform',
                                'Plug-ins',
                                'Printing',
                                'SVG',
                                'Tables',
                                'Text',
                                'Tools',
                                'Web Inspector',
                                'WebCore JavaScript',
                                'WebCore Misc.',
                                'WebKit API',
                                'WebKit Misc.',
                                'WebKit Website',
                                'XML',
                                'XML DOM'
                              ],
                  'XPostFacto' => [
                                    'Application',
                                    'BootX',
                                    'doc',
                                    'Failure Booting',
                                    'Kernel Extensions',
                                    'Machine Support',
                                    'NVRAM Patches',
                                    'Other',
                                    'PCI cards',
                                    'User Interface',
                                    'XPFStartupItem'
                                  ],
                  'Infrastructure' => [
                                        'Bugzilla',
                                        'General',
                                        'Web Content'
                                      ],
                  'HeaderDoc' => [
                                   'HeaderDoc'
                                 ],
                  'xar' => [
                             'xar'
                           ],
                  'darwinbuild' => [
                                     'darwinbuild',
                                     'darwinxref'
                                   ],
                  'Doc' => [
                             'Articles'
                           ],
                  'openssh-lpk' => [
                                     'openssh-lpk'
                                   ],
                  'libFoundation' => [
                                       'General'
                                     ],
                  'DarwinPorts' => [
                                     'base',
                                     'doc',
                                     'dp-cocoa',
                                     'dports',
                                     'uninstaller',
                                     'www'
                                   ],
                  'OpenAudio' => [
                                   'OpenAudio'
                                 ],
                  'OpenDarwin' => [
                                    'CoreFoundation',
                                    'General',
                                    'Releases'
                                  ]
                );
@::legal_components = (
                        'Accessibility',
                        'adduser',
                        'Application',
                        'Articles',
                        'base',
                        'BootX',
                        'Bugzilla',
                        'CoreFoundation',
                        'CSS',
                        'darwinbuild',
                        'darwinxref',
                        'doc',
                        'dp-cocoa',
                        'dports',
                        'Failure Booting',
                        'Forms',
                        'Frames',
                        'General',
                        'HeaderDoc',
                        'History',
                        'HTML DOM',
                        'HTML Editing',
                        'Images',
                        'Java',
                        'JavaScriptCore',
                        'JavaScriptGlue',
                        'Kernel Extensions',
                        'kxmlcore',
                        'Layout and Rendering',
                        'Machine Support',
                        'New Bugs',
                        'NVRAM Patches',
                        'OpenAudio',
                        'openssh-lpk',
                        'Other',
                        'Page Loading',
                        'PCI cards',
                        'PDF',
                        'Platform',
                        'Plug-ins',
                        'Printing',
                        'pw',
                        'Releases',
                        'SVG',
                        'Tables',
                        'Text',
                        'Tools',
                        'uninstaller',
                        'User Interface',
                        'Web Content',
                        'Web Inspector',
                        'WebCore JavaScript',
                        'WebCore Misc.',
                        'WebKit API',
                        'WebKit Misc.',
                        'WebKit Website',
                        'www',
                        'xar',
                        'XML',
                        'XML DOM',
                        'XPFStartupItem'
                      );
@::legal_product = (
                     'darwinbuild',
                     'DarwinPorts',
                     'Doc',
                     'HeaderDoc',
                     'Infrastructure',
                     'libFoundation',
                     'OpenAudio',
                     'OpenDarwin',
                     'openssh-lpk',
                     'usermgmt_cmds',
                     'WebKit',
                     'xar',
                     'XPostFacto'
                   );
@::legal_priority = (
                      'P1',
                      'P2',
                      'P3',
                      'P4',
                      'P5'
                    );
@::legal_severity = (
                      'blocker',
                      'critical',
                      'major',
                      'normal',
                      'minor',
                      'trivial',
                      'enhancement'
                    );
@::legal_platform = (
                      'All',
                      'DEC',
                      'HP',
                      'Macintosh',
                      'PC',
                      'SGI',
                      'Sun',
                      'Other'
                    );
@::legal_opsys = (
                   'All',
                   'Windows 3.1',
                   'Windows 95',
                   'Windows 98',
                   'Windows ME',
                   'Windows 2000',
                   'Windows NT',
                   'Windows XP',
                   'Windows Server 2003',
                   'Mac System 7',
                   'Mac System 7.5',
                   'Mac System 7.6.1',
                   'Mac System 8.0',
                   'Mac System 8.5',
                   'Mac System 8.6',
                   'Mac System 9.x',
                   'Mac OS X 10.0',
                   'Mac OS X 10.1',
                   'Mac OS X 10.2',
                   'Mac OS X 10.3',
                   'Mac OS X 10.4',
                   'Linux',
                   'BSD/OS',
                   'FreeBSD',
                   'NetBSD',
                   'OpenBSD',
                   'AIX',
                   'BeOS',
                   'HP-UX',
                   'IRIX',
                   'Neutrino',
                   'OpenVMS',
                   'OS/2',
                   'OSF/1',
                   'Solaris',
                   'SunOS',
                   'Darwin',
                   'OpenDarwin',
                   'other'
                 );
@::legal_bug_status = (
                        'UNCONFIRMED',
                        'NEW',
                        'ASSIGNED',
                        'REOPENED',
                        'RESOLVED',
                        'VERIFIED',
                        'CLOSED'
                      );
@::legal_resolution = (
                        '',
                        'FIXED',
                        'INVALID',
                        'WONTFIX',
                        'LATER',
                        'REMIND',
                        'DUPLICATE',
                        'WORKSFORME',
                        'MOVED'
                      );
@::settable_resolution = (
                           '',
                           'FIXED',
                           'INVALID',
                           'WONTFIX',
                           'LATER',
                           'REMIND',
                           'WORKSFORME'
                         );
%::proddesc = (
                'WebKit' => 'An open source XML and HTML framework used by the Safari Web browser.',
                'usermgmt_cmds' => 'Command-line tools for managing users and groups.',
                'XPostFacto' => 'Mac OS X extensions for "unsupported" machines.',
                'Infrastructure' => 'The OpenDarwin.org services and servers and stuff.',
                'HeaderDoc' => 'The documentation generator.',
                'xar' => 'eXtensible ARchiver',
                'darwinbuild' => 'Bugs related to the darwinbuild scripts',
                'Doc' => 'Darwin Documentation',
                'openssh-lpk' => 'OpenSSH LDAP Public Key patch.',
                'DarwinPorts' => 'DarwinPorts infrastructure and ports collection',
                'libFoundation' => 'A light-weight standalone library which implements a large portion of the OPENSTEP specification designed to work with both the GNU and NeXT/Apple Objective-C runtimes.',
                'OpenAudio' => 'Audio driver for Darwin (/dev/dsp)',
                'OpenDarwin' => 'The OpenDarwin operating system. NOTE: General Darwin bugs do NOT belong here UNLESS you intend to work on them. All bugs not specific to OpenDarwin should be filed upstream with Apple FIRST.'
              );
%::classifications = (
                       'Unclassified' => [
                                           'libFoundation',
                                           'Infrastructure',
                                           'HeaderDoc',
                                           'OpenDarwin',
                                           'DarwinPorts',
                                           'Doc',
                                           'XPostFacto',
                                           'xar',
                                           'OpenAudio',
                                           'usermgmt_cmds',
                                           'openssh-lpk',
                                           'WebKit',
                                           'darwinbuild'
                                         ]
                     );
%::classdesc = (
                 'Unclassified' => 'Unassigned to any classifications'
               );
@::enterable_products = (
                          'darwinbuild',
                          'DarwinPorts',
                          'Doc',
                          'HeaderDoc',
                          'Infrastructure',
                          'libFoundation',
                          'OpenAudio',
                          'OpenDarwin',
                          'openssh-lpk',
                          'usermgmt_cmds',
                          'WebKit',
                          'xar',
                          'XPostFacto'
                        );
%::prodmaxvotes = (
                    'WebKit' => '0',
                    'usermgmt_cmds' => '0',
                    'XPostFacto' => '10',
                    'Infrastructure' => '0',
                    'HeaderDoc' => '0',
                    'xar' => '0',
                    'darwinbuild' => '0',
                    'Doc' => '0',
                    'openssh-lpk' => '0',
                    'DarwinPorts' => '0',
                    'libFoundation' => '0',
                    'OpenAudio' => '0',
                    'OpenDarwin' => '0'
                  );
%::target_milestone = (
                        'WebKit' => [
                                      '---'
                                    ],
                        'usermgmt_cmds' => [
                                             '---'
                                           ],
                        'XPostFacto' => [
                                          '---'
                                        ],
                        'Infrastructure' => [
                                              '---'
                                            ],
                        'HeaderDoc' => [
                                         '---'
                                       ],
                        'darwinbuild' => [
                                           '---'
                                         ],
                        'xar' => [
                                   '---'
                                 ],
                        'Doc' => [
                                   '---'
                                 ],
                        'openssh-lpk' => [
                                           '---'
                                         ],
                        'libFoundation' => [
                                             '---'
                                           ],
                        'DarwinPorts' => [
                                           '---'
                                         ],
                        'OpenAudio' => [
                                         '---'
                                       ],
                        'OpenDarwin' => [
                                          '---'
                                        ]
                      );
@::legal_target_milestone = (
                              '---'
                            );
%::milestoneurl = (
                    'WebKit' => '',
                    'usermgmt_cmds' => '',
                    'XPostFacto' => '',
                    'Infrastructure' => '',
                    'HeaderDoc' => '',
                    'xar' => '',
                    'darwinbuild' => '',
                    'Doc' => '',
                    'openssh-lpk' => '',
                    'DarwinPorts' => '',
                    'libFoundation' => '',
                    'OpenAudio' => '',
                    'OpenDarwin' => ''
                  );
@::legal_keywords = (
                      'EasyFix',
                      'HasReduction',
                      'HitList',
                      'HitListCandidate',
                      'InRadar',
                      'NativeTextField',
                      'NeedsReduction',
                      'Regression',
                      'SVGHitList'
                    );
%::keywordsbyname = (
                      'hitlistcandidate' => '6',
                      'needsreduction' => '1',
                      'inradar' => '4',
                      'hasreduction' => '2',
                      'regression' => '3',
                      'easyfix' => '8',
                      'svghitlist' => '9',
                      'nativetextfield' => '7',
                      'hitlist' => '5'
                    );
1;
