r4332 new object types: power supply chassis, power supply (#409)
[racktables] / wwwroot / inc / install.php
1 <?php
2
3 function renderInstallerHTML()
4 {
5 $stepfunc[1] = 'not_already_installed';
6 $stepfunc[2] = 'platform_is_ok';
7 $stepfunc[3] = 'init_config';
8 $stepfunc[4] = 'init_database_static';
9 $stepfunc[5] = 'init_database_dynamic';
10 $stepfunc[6] = 'congrats';
11 $dbxlink = NULL;
12
13 if (isset ($_REQUEST['step']))
14 $step = $_REQUEST['step'];
15 else
16 $step = 1;
17
18 if ($step > count ($stepfunc))
19 {
20 $root = (empty($_SERVER['HTTPS']) or $_SERVER['HTTPS'] == 'off') ? 'http://' : 'https://';
21 $root .= isset ($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ($_SERVER['SERVER_NAME'].($_SERVER['SERVER_PORT']=='80'?'':$_SERVER['SERVER_PORT']));
22 // "Since PHP 4.3.0, you will often get a slash or a dot back from
23 // dirname() in situations where the older functionality would have given
24 // you the empty string."
25 // "On Windows, both slash (/) and backslash (\) are used as directory
26 // separator character."
27 $root .= strtr (dirname ($_SERVER['PHP_SELF']), '\\', '/');
28 if (substr ($root, -1) != '/')
29 $root .= '/';
30 header ("Location: ${root}");
31 exit;
32 }
33 $title = "RackTables installation: step ${step} of " . count ($stepfunc);
34 header ('Content-Type: text/html; charset=UTF-8');
35 ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
36 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
37 <head><title><?php echo $title; ?></title>
38 <style type="text/css">
39 .tdleft {
40 text-align: left;
41 }
42
43 .trok {
44 background-color: #80FF80;
45 }
46
47 .trwarning {
48 background-color: #FFFF80;
49 }
50
51 .trerror {
52 background-color: #FF8080;
53 }
54 </style>
55 </head>
56 <body>
57 <center>
58 <?php
59 echo "<h1>${title}</h1><p>";
60
61 echo "</p><form method=post>\n";
62 $testres = $stepfunc[$step] ();
63 if ($testres)
64 {
65 $next_step = $step + 1;
66 echo "<br><input type=submit value='proceed'>";
67 }
68 else
69 {
70 $next_step = $step;
71 echo "<br><input type=submit value='retry'>";
72 }
73 echo "<input type=hidden name=step value='${next_step}'>\n";
74
75 ?>
76 </form>
77 </center>
78 </body>
79 </html>
80
81 <?php
82 }
83
84 // Check if the software is already installed.
85 function not_already_installed()
86 {
87 @include ('inc/secret.php');
88 if (isset ($pdo_dsn))
89 {
90 echo 'Your configuration file exists and seems to hold necessary data already.<br>';
91 return FALSE;
92 }
93 else
94 {
95 echo 'There seem to be no existing installation here, I am going to setup one now.<br>';
96 return TRUE;
97 }
98 }
99
100 // Check that we can write to configuration file.
101 // If so, ask for DB connection paramaters and test
102 // the connection. Neither save the parameters nor allow
103 // going further until we succeed with the given
104 // credentials.
105 function init_config ()
106 {
107 if (!is_writable ('inc/secret.php'))
108 {
109 echo "The inc/secret.php file is not writable by web-server. Make sure it is.";
110 echo "The following commands should suffice:<pre>touch inc/secret.php; chmod 666 inc/secret.php</pre>";
111 echo 'Fedora Linux with SELinux may require this file to be owned by specific user (apache) and/or executing "setenforce 0" for the time of installation. ';
112 echo 'SELinux may be turned back on with "setenforce 1" command.<br>';
113 return FALSE;
114 }
115 if
116 (
117 !isset ($_REQUEST['save_config']) or
118 empty ($_REQUEST['mysql_host']) or
119 empty ($_REQUEST['mysql_db']) or
120 empty ($_REQUEST['mysql_username']) or
121 empty ($_REQUEST['mysql_password'])
122 )
123 {
124 echo "<input type=hidden name=save_config value=1>\n";
125 echo '<h3>Hint on setting up a database:</h3><pre>';
126 echo "mysql&gt;\nCREATE DATABASE racktables_db CHARACTER SET utf8 COLLATE utf8_general_ci;\n";
127 echo "GRANT ALL PRIVILEGES ON racktables_db.* TO racktables_user@localhost IDENTIFIED BY 'MY_SECRET_PASSWORD';\n</pre>";
128 echo '<table>';
129 echo "<tr><td><label for=mysql_host>MySQL host:</label></td>";
130 echo "<td><input type=text name=mysql_host id=mysql_host value=localhost></td></tr>\n";
131 echo "<tr><td><label for=mysql_host>database:</label></td>";
132 echo "<td><input type=text name=mysql_db id=mysql_db value=racktables_db></td></tr>\n";
133 echo "<tr><td><label for=mysql_username>username:</label></td>";
134 echo "<td><input type=text name=mysql_username value=racktables_user></td></tr>\n";
135 echo "<tr><td><label for=mysql_password>password:</label></td>";
136 echo "<td><input type=password name=mysql_password></td></tr>\n";
137 echo '</table>';
138 return FALSE;
139 }
140 $pdo_dsn = 'mysql:host=' . $_REQUEST['mysql_host'] . ';dbname=' . $_REQUEST['mysql_db'];
141 try
142 {
143 $dbxlink = new PDO ($pdo_dsn, $_REQUEST['mysql_username'], $_REQUEST['mysql_password']);
144 }
145 catch (PDOException $e)
146 {
147 echo "<input type=hidden name=save_config value=1>\n";
148 echo '<table>';
149 echo "<tr><td><label for=mysql_host>MySQL host:</label></td>";
150 echo "<td><input type=text name=mysql_host id=mysql_host value='" . $_REQUEST['mysql_host'] . "'></td></tr>\n";
151 echo "<tr><td><label for=mysql_host>database:</label></td>";
152 echo "<td><input type=text name=mysql_db id=mysql_db value='" . $_REQUEST['mysql_db'] . "'></td></tr>\n";
153 echo "<tr><td><label for=mysql_username>username:</label></td>";
154 echo "<td><input type=text name=mysql_username value='" . $_REQUEST['mysql_username'] . "'></td></tr>\n";
155 echo "<tr><td><label for=mysql_password>password:</label></td>";
156 echo "<td><input type=password name=mysql_password value='" . $_REQUEST['mysql_password'] . "'></td></tr>\n";
157 echo "<tr><td colspan=2>The above parameters did not work. Check and try again.</td></tr>\n";
158 echo '</table>';
159 return FALSE;
160 }
161
162 $conf = fopen ('inc/secret.php', 'w+');
163 if ($conf === FALSE)
164 {
165 echo "Error: failed to open inc/secret.php for writing";
166 return FALSE;
167 }
168 fwrite ($conf, "<?php\n/* This file has been generated automatically by RackTables installer.\n");
169 fwrite ($conf, " * you shouldn't normally edit it unless your database setup has changed.\n");
170 fwrite ($conf, " */\n");
171 fwrite ($conf, "\$pdo_dsn = '${pdo_dsn}';\n");
172 fwrite ($conf, "\$db_username = '" . $_REQUEST['mysql_username'] . "';\n");
173 fwrite ($conf, "\$db_password = '" . $_REQUEST['mysql_password'] . "';\n\n");
174 fwrite ($conf, <<<ENDOFTEXT
175 // Default setting is to authenticate users locally, but it is possible to
176 // employ existing LDAP or Apache userbase. Uncommenting below two lines MAY
177 // help in switching authentication to LDAP completely.
178 // More info: http://sourceforge.net/apps/mediawiki/racktables/index.php?title=RackTablesAdminGuide
179 #\$user_auth_src = 'ldap';
180 #\$require_local_account = FALSE;
181
182 // This is only necessary for 'ldap' authentication source
183 \$LDAP_options = array
184 (
185 'server' => 'some.server',
186 'domain' => 'some.domain',
187 # 'search_dn' => 'ou=people,O=YourCompany',
188 'search_attr' => 'uid',
189 # 'displayname_attrs' => 'givenname familyname',
190
191 // LDAP cache, values in seconds. Refresh, retry and expiry values are
192 // treated exactly as those for DNS SOA record. Example values 300-15-600:
193 // unconditionally remeber successful auth for 5 minutes, after that still
194 // permit user access, but try to revalidate username and password on the
195 // server (not more often, than once in 15 seconds). After 10 minutes of
196 // unsuccessful retries give up and deny access, so someone goes to fix
197 // LDAP server.
198 //
199 // Like in DNS, the following condition must be always met:
200 // cache_retry <= cache_refresh <= cache_expiry
201 //
202 // To disable LDAP cache completely, set cache_refresh, cache_retry and
203 // cache_expiry to 0.
204 'cache_refresh' => 300,
205 'cache_retry' => 15,
206 'cache_expiry' => 600,
207 // Uncomment line below to work around ActiveDirectory+PHP problem to perform
208 // search right in the base DN (not in one of OUs/CNs below).
209 # 'options' => array (LDAP_OPT_PROTOCOL_VERSION => 3, LDAP_OPT_REFERRALS => 0),
210 );
211
212
213 ENDOFTEXT
214 );
215 fwrite ($conf, "?>\n");
216 fclose ($conf);
217 echo "The configuration file has been written successfully.<br>";
218 return TRUE;
219 }
220
221 function connect_to_db ()
222 {
223 require ('inc/secret.php');
224 global $dbxlink;
225 try
226 {
227 $dbxlink = new PDO ($pdo_dsn, $db_username, $db_password);
228 }
229 catch (PDOException $e)
230 {
231 die ('Error connecting to the database');
232 }
233 }
234
235 function init_database_static ()
236 {
237 connect_to_db ();
238 global $dbxlink;
239 if (!isInnoDBSupported())
240 {
241 echo 'InnoDB test failed! Please configure MySQL server properly and retry.';
242 return FALSE;
243 }
244 $result = $dbxlink->query ('show tables');
245 $tables = $result->fetchAll (PDO::FETCH_NUM);
246 $result->closeCursor();
247 unset ($result);
248 if (count ($tables))
249 {
250 echo 'Your database is already holding ' . count ($tables);
251 echo ' tables, so I will stop here and let you check it yourself.<br>';
252 echo 'There is some important data there probably.<br>';
253 return FALSE;
254 }
255 echo 'Initializing the database...<br>';
256 echo '<table border=1>';
257 echo "<tr><th>section</th><th>queries</th><th>errors</th></tr>";
258 $errlist = array();
259 foreach (array ('structure', 'dictbase') as $part)
260 {
261 echo "<tr><td>${part}</td>";
262 $nq = $nerrs = 0;
263 foreach (preg_split ("/;\s*\n/", get_pseudo_file ($part)) as $query)
264 {
265 $query = trim($query);
266 if (empty ($query) or '--' == substr ($query, 0, 2))
267 continue;
268 $nq++;
269 if ($dbxlink->exec ($query) === FALSE)
270 {
271 $nerrs++;
272 $errlist[] = $query;
273 }
274 }
275 echo "<td>${nq}</td><td>${nerrs}</td></tr>\n";
276 }
277 // (re)load dictionary by pure PHP means w/o any external file
278 echo "<tr><td>dictionary</td>";
279 $nq = $nerrs = 0;
280 $dictq = array();
281 foreach (reloadDictionary() as $query)
282 {
283 $nq++;
284 if ($dbxlink->exec ($query) === FALSE)
285 {
286 $nerrs++;
287 $errlist[] = $query;
288 }
289 }
290 echo "<td>${nq}</td><td>${nerrs}</td></tr>\n";
291
292 echo '</table>';
293 if (count ($errlist))
294 {
295 echo '<pre>The following queries failed:\n';
296 foreach ($errlist as $q)
297 echo "${q}\n\n";
298 echo '</pre>';
299 return FALSE;
300 }
301 return TRUE;
302 }
303
304 function init_database_dynamic ()
305 {
306 connect_to_db();
307 global $dbxlink;
308 if (!isset ($_REQUEST['password']) or empty ($_REQUEST['password']))
309 {
310 $result = $dbxlink->query ('select count(user_id) from UserAccount where user_id = 1');
311 $row = $result->fetch (PDO::FETCH_NUM);
312 $nrecs = $row[0];
313 $result->closeCursor();
314 if (!$nrecs)
315 {
316 echo '<table border=1>';
317 echo '<caption>Administrator password not set</caption>';
318 echo '<tr><td><input type=password name=password></td></tr>';
319 echo '</table>';
320 }
321 return FALSE;
322 }
323 else
324 {
325 // Never send cleartext password over the wire.
326 $hash = sha1 ($_REQUEST['password']);
327 $query = "INSERT INTO `UserAccount` (`user_id`, `user_name`, `user_password_hash`, `user_realname`) " .
328 "VALUES (1,'admin','${hash}','RackTables Administrator')";
329 $result = $dbxlink->exec ($query);
330 echo "Administrator password has been set successfully.<br>";
331 return TRUE;
332 }
333 }
334
335 function congrats ()
336 {
337 echo 'Congratulations! RackTables installation is complete. After pressing Proceed you will ';
338 echo 'enter the system. Authenticate with <strong>admin</strong> username.<br>RackTables project has a ';
339 echo "<a href='http://sourceforge.net/apps/mediawiki/racktables/index.php?title=RackTablesAdminGuide'>";
340 echo "wiki</a> and a ";
341 echo "<a href='http://www.freelists.org/list/racktables-users'>mailing list</a> for users. Have fun.<br>";
342 return TRUE;
343 }
344
345 function get_pseudo_file ($name)
346 {
347 switch ($name)
348 {
349 case 'structure':
350 return <<<END_OF_FILE
351 alter database character set utf8;
352 set names 'utf8';
353 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
354
355 CREATE TABLE `Atom` (
356 `molecule_id` int(10) unsigned default NULL,
357 `rack_id` int(10) unsigned default NULL,
358 `unit_no` int(10) unsigned default NULL,
359 `atom` enum('front','interior','rear') default NULL
360 ) ENGINE=InnoDB;
361
362 CREATE TABLE `Attribute` (
363 `id` int(10) unsigned NOT NULL auto_increment,
364 `type` enum('string','uint','float','dict') default NULL,
365 `name` char(64) default NULL,
366 PRIMARY KEY (`id`),
367 UNIQUE KEY `name` (`name`)
368 ) ENGINE=MyISAM AUTO_INCREMENT=10000;
369
370 CREATE TABLE `AttributeMap` (
371 `objtype_id` int(10) unsigned NOT NULL default '1',
372 `attr_id` int(10) unsigned NOT NULL default '1',
373 `chapter_id` int(10) unsigned default NULL,
374 UNIQUE KEY `objtype_id` (`objtype_id`,`attr_id`)
375 ) ENGINE=InnoDB;
376
377 CREATE TABLE `AttributeValue` (
378 `object_id` int(10) unsigned default NULL,
379 `attr_id` int(10) unsigned default NULL,
380 `string_value` char(128) default NULL,
381 `uint_value` int(10) unsigned default NULL,
382 `float_value` float default NULL,
383 UNIQUE KEY `object_id` (`object_id`,`attr_id`),
384 CONSTRAINT `AttributeValue-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`) ON DELETE CASCADE
385 ) ENGINE=InnoDB;
386
387 CREATE TABLE `CachedPAV` (
388 `object_id` int(10) unsigned NOT NULL,
389 `port_name` char(255) NOT NULL,
390 `vlan_id` int(10) unsigned NOT NULL default '0',
391 PRIMARY KEY (`object_id`,`port_name`,`vlan_id`),
392 KEY `vlan_id` (`vlan_id`),
393 CONSTRAINT `CachedPAV-FK-object-port` FOREIGN KEY (`object_id`, `port_name`) REFERENCES `CachedPVM` (`object_id`, `port_name`) ON DELETE CASCADE,
394 CONSTRAINT `CachedPAV-FK-vlan_id` FOREIGN KEY (`vlan_id`) REFERENCES `VLANValidID` (`vlan_id`)
395 ) ENGINE=InnoDB;
396
397 CREATE TABLE `CachedPNV` (
398 `object_id` int(10) unsigned NOT NULL,
399 `port_name` char(255) NOT NULL,
400 `vlan_id` int(10) unsigned NOT NULL default '0',
401 PRIMARY KEY (`object_id`,`port_name`,`vlan_id`),
402 UNIQUE KEY `port_id` (`object_id`,`port_name`),
403 CONSTRAINT `CachedPNV-FK-compound` FOREIGN KEY (`object_id`, `port_name`, `vlan_id`) REFERENCES `CachedPAV` (`object_id`, `port_name`, `vlan_id`) ON DELETE CASCADE
404 ) ENGINE=InnoDB;
405
406 CREATE TABLE `CachedPVM` (
407 `object_id` int(10) unsigned NOT NULL,
408 `port_name` char(255) NOT NULL,
409 `vlan_mode` enum('access','trunk') NOT NULL default 'access',
410 PRIMARY KEY (`object_id`,`port_name`),
411 CONSTRAINT `CachedPVM-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`) ON DELETE CASCADE
412 ) ENGINE=InnoDB;
413
414 CREATE TABLE `Chapter` (
415 `id` int(10) unsigned NOT NULL auto_increment,
416 `sticky` enum('yes','no') default 'no',
417 `name` char(128) NOT NULL,
418 PRIMARY KEY (`id`),
419 UNIQUE KEY `name` (`name`)
420 ) ENGINE=MyISAM AUTO_INCREMENT=10000;
421
422 CREATE TABLE `Config` (
423 `varname` char(32) NOT NULL,
424 `varvalue` text NOT NULL,
425 `vartype` enum('string','uint') NOT NULL default 'string',
426 `emptyok` enum('yes','no') NOT NULL default 'no',
427 `is_hidden` enum('yes','no') NOT NULL default 'yes',
428 `is_userdefined` enum('yes','no') NOT NULL default 'no',
429 `description` text,
430 PRIMARY KEY (`varname`)
431 ) ENGINE=InnoDB;
432
433 CREATE TABLE `Dictionary` (
434 `chapter_id` int(10) unsigned NOT NULL,
435 `dict_key` int(10) unsigned NOT NULL auto_increment,
436 `dict_value` char(255) default NULL,
437 PRIMARY KEY (`dict_key`),
438 UNIQUE KEY `chap_to_val` (`chapter_id`,`dict_value`)
439 ) ENGINE=MyISAM AUTO_INCREMENT=50000;
440
441 CREATE TABLE `EntityLink` (
442 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
443 `parent_entity_type` enum('ipv4net','ipv4rspool','ipv4vs','ipv6net','object','rack','user') NOT NULL,
444 `parent_entity_id` int(10) unsigned NOT NULL,
445 `child_entity_type` enum('file','object') NOT NULL,
446 `child_entity_id` int(10) unsigned NOT NULL,
447 PRIMARY KEY (`id`),
448 UNIQUE KEY `EntityLink-unique` (`parent_entity_type`,`parent_entity_id`,`child_entity_type`,`child_entity_id`)
449 ) ENGINE=InnoDB;
450
451 CREATE TABLE `File` (
452 `id` int(10) unsigned NOT NULL auto_increment,
453 `name` char(255) NOT NULL,
454 `type` char(255) NOT NULL,
455 `size` int(10) unsigned NOT NULL,
456 `ctime` datetime NOT NULL,
457 `mtime` datetime NOT NULL,
458 `atime` datetime NOT NULL,
459 `thumbnail` longblob,
460 `contents` longblob NOT NULL,
461 `comment` text,
462 PRIMARY KEY (`id`),
463 UNIQUE KEY `name` (`name`)
464 ) ENGINE=InnoDB;
465
466 CREATE TABLE `FileLink` (
467 `id` int(10) unsigned NOT NULL auto_increment,
468 `file_id` int(10) unsigned NOT NULL,
469 `entity_type` enum('ipv4net','ipv4rspool','ipv4vs','object','rack','user','ipv6net') NOT NULL default 'object',
470 `entity_id` int(10) NOT NULL,
471 PRIMARY KEY (`id`),
472 KEY `FileLink-file_id` (`file_id`),
473 UNIQUE KEY `FileLink-unique` (`file_id`,`entity_type`,`entity_id`),
474 CONSTRAINT `FileLink-File_fkey` FOREIGN KEY (`file_id`) REFERENCES `File` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
475 ) ENGINE=InnoDB;
476
477 CREATE TABLE `IPv4Address` (
478 `ip` int(10) unsigned NOT NULL default '0',
479 `name` char(255) NOT NULL default '',
480 `reserved` enum('yes','no') default NULL,
481 PRIMARY KEY (`ip`)
482 ) ENGINE=InnoDB;
483
484 CREATE TABLE `IPv4Allocation` (
485 `object_id` int(10) unsigned NOT NULL default '0',
486 `ip` int(10) unsigned NOT NULL default '0',
487 `name` char(255) NOT NULL default '',
488 `type` enum('regular','shared','virtual','router') default NULL,
489 PRIMARY KEY (`object_id`,`ip`),
490 KEY `ip` (`ip`),
491 CONSTRAINT `IPv4Allocation-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`) ON DELETE CASCADE
492 ) ENGINE=InnoDB;
493
494 CREATE TABLE `IPv4LB` (
495 `object_id` int(10) unsigned default NULL,
496 `rspool_id` int(10) unsigned default NULL,
497 `vs_id` int(10) unsigned default NULL,
498 `prio` int(10) unsigned default NULL,
499 `vsconfig` text,
500 `rsconfig` text,
501 UNIQUE KEY `LB-VS` (`object_id`,`vs_id`),
502 KEY `IPv4LB-FK-rspool_id` (`rspool_id`),
503 KEY `IPv4LB-FK-vs_id` (`vs_id`),
504 CONSTRAINT `IPv4LB-FK-vs_id` FOREIGN KEY (`vs_id`) REFERENCES `IPv4VS` (`id`),
505 CONSTRAINT `IPv4LB-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`),
506 CONSTRAINT `IPv4LB-FK-rspool_id` FOREIGN KEY (`rspool_id`) REFERENCES `IPv4RSPool` (`id`)
507 ) ENGINE=InnoDB;
508
509 CREATE TABLE `IPv4NAT` (
510 `object_id` int(10) unsigned NOT NULL default '0',
511 `proto` enum('TCP','UDP') NOT NULL default 'TCP',
512 `localip` int(10) unsigned NOT NULL default '0',
513 `localport` smallint(5) unsigned NOT NULL default '0',
514 `remoteip` int(10) unsigned NOT NULL default '0',
515 `remoteport` smallint(5) unsigned NOT NULL default '0',
516 `description` char(255) default NULL,
517 PRIMARY KEY (`object_id`,`proto`,`localip`,`localport`,`remoteip`,`remoteport`),
518 KEY `localip` (`localip`),
519 KEY `remoteip` (`remoteip`),
520 KEY `object_id` (`object_id`),
521 CONSTRAINT `IPv4NAT-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`)
522 ) ENGINE=InnoDB;
523
524 CREATE TABLE `IPv4Network` (
525 `id` int(10) unsigned NOT NULL auto_increment,
526 `ip` int(10) unsigned NOT NULL default '0',
527 `mask` int(10) unsigned NOT NULL default '0',
528 `name` char(255) default NULL,
529 `comment` text,
530 PRIMARY KEY (`id`),
531 UNIQUE KEY `base-len` (`ip`,`mask`)
532 ) ENGINE=InnoDB;
533
534 CREATE TABLE `IPv4RS` (
535 `id` int(10) unsigned NOT NULL auto_increment,
536 `inservice` enum('yes','no') NOT NULL default 'no',
537 `rsip` int(10) unsigned default NULL,
538 `rsport` smallint(5) unsigned default NULL,
539 `rspool_id` int(10) unsigned default NULL,
540 `rsconfig` text,
541 PRIMARY KEY (`id`),
542 KEY `rsip` (`rsip`),
543 UNIQUE KEY `pool-endpoint` (`rspool_id`,`rsip`,`rsport`),
544 CONSTRAINT `IPv4RS-FK` FOREIGN KEY (`rspool_id`) REFERENCES `IPv4RSPool` (`id`) ON DELETE CASCADE
545 ) ENGINE=InnoDB;
546
547 CREATE TABLE `IPv4RSPool` (
548 `id` int(10) unsigned NOT NULL auto_increment,
549 `name` char(255) default NULL,
550 `vsconfig` text,
551 `rsconfig` text,
552 PRIMARY KEY (`id`)
553 ) ENGINE=InnoDB;
554
555 CREATE TABLE `IPv4VS` (
556 `id` int(10) unsigned NOT NULL auto_increment,
557 `vip` int(10) unsigned default NULL,
558 `vport` smallint(5) unsigned default NULL,
559 `proto` enum('TCP','UDP') NOT NULL default 'TCP',
560 `name` char(255) default NULL,
561 `vsconfig` text,
562 `rsconfig` text,
563 PRIMARY KEY (`id`),
564 KEY `vip` (`vip`)
565 ) ENGINE=InnoDB;
566
567 CREATE TABLE `IPv6Address` (
568 `ip` binary(16) NOT NULL,
569 `name` char(255) NOT NULL default '',
570 `reserved` enum('yes','no') default NULL,
571 PRIMARY KEY (`ip`)
572 ) ENGINE=InnoDB;
573
574 CREATE TABLE `IPv6Allocation` (
575 `object_id` int(10) unsigned NOT NULL default '0',
576 `ip` binary(16) NOT NULL,
577 `name` char(255) NOT NULL default '',
578 `type` enum('regular','shared','virtual','router') default NULL,
579 PRIMARY KEY (`object_id`,`ip`),
580 KEY `ip` (`ip`),
581 CONSTRAINT `IPv6Allocation-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`) ON DELETE CASCADE
582 ) ENGINE=InnoDB;
583
584 CREATE TABLE `IPv6Network` (
585 `id` int(10) unsigned NOT NULL auto_increment,
586 `ip` binary(16) NOT NULL,
587 `mask` int(10) unsigned NOT NULL,
588 `last_ip` binary(16) NOT NULL,
589 `name` char(255) default NULL,
590 `comment` text,
591 PRIMARY KEY (`id`),
592 UNIQUE KEY `ip` (`ip`,`mask`)
593 ) ENGINE=InnoDB;
594
595 CREATE TABLE `LDAPCache` (
596 `presented_username` char(64) NOT NULL,
597 `successful_hash` char(40) NOT NULL,
598 `first_success` timestamp NOT NULL default CURRENT_TIMESTAMP,
599 `last_retry` timestamp NOT NULL default '0000-00-00 00:00:00',
600 `displayed_name` char(128) default NULL,
601 `memberof` text,
602 UNIQUE KEY `presented_username` (`presented_username`),
603 KEY `scanidx` (`presented_username`,`successful_hash`)
604 ) ENGINE=InnoDB;
605
606 CREATE TABLE `Link` (
607 `porta` int(10) unsigned NOT NULL default '0',
608 `portb` int(10) unsigned NOT NULL default '0',
609 `cable` char(64) DEFAULT NULL,
610 PRIMARY KEY (`porta`,`portb`),
611 UNIQUE KEY `porta` (`porta`),
612 UNIQUE KEY `portb` (`portb`),
613 CONSTRAINT `Link-FK-a` FOREIGN KEY (`porta`) REFERENCES `Port` (`id`) ON DELETE CASCADE,
614 CONSTRAINT `Link-FK-b` FOREIGN KEY (`portb`) REFERENCES `Port` (`id`) ON DELETE CASCADE
615 ) ENGINE=InnoDB;
616
617 CREATE TABLE `Molecule` (
618 `id` int(10) unsigned NOT NULL auto_increment,
619 PRIMARY KEY (`id`)
620 ) ENGINE=InnoDB;
621
622 CREATE TABLE `MountOperation` (
623 `id` int(10) unsigned NOT NULL auto_increment,
624 `object_id` int(10) unsigned NOT NULL default '0',
625 `ctime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
626 `user_name` char(64) default NULL,
627 `old_molecule_id` int(10) unsigned default NULL,
628 `new_molecule_id` int(10) unsigned default NULL,
629 `comment` text,
630 PRIMARY KEY (`id`),
631 KEY `object_id` (`object_id`),
632 CONSTRAINT `MountOperation-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`) ON DELETE CASCADE
633 ) ENGINE=InnoDB;
634
635 CREATE TABLE `ObjectLog` (
636 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
637 `object_id` int(10) unsigned NOT NULL,
638 `user` char(64) NOT NULL,
639 `date` datetime NOT NULL,
640 `content` text NOT NULL,
641 PRIMARY KEY (`id`),
642 KEY `object_id` (`object_id`),
643 KEY `date` (`date`),
644 CONSTRAINT `ObjectLog-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`) ON DELETE CASCADE
645 ) ENGINE=InnoDB;
646
647 CREATE TABLE `ObjectParentCompat` (
648 `parent_objtype_id` int(10) unsigned NOT NULL,
649 `child_objtype_id` int(10) unsigned NOT NULL,
650 UNIQUE KEY `parent_child` (`parent_objtype_id`,`child_objtype_id`)
651 ) ENGINE=InnoDB;
652
653 CREATE TABLE `Port` (
654 `id` int(10) unsigned NOT NULL auto_increment,
655 `object_id` int(10) unsigned NOT NULL default '0',
656 `name` char(255) NOT NULL default '',
657 `iif_id` int(10) unsigned NOT NULL,
658 `type` int(10) unsigned NOT NULL default '0',
659 `l2address` char(64) default NULL,
660 `reservation_comment` char(255) default NULL,
661 `label` char(255) default NULL,
662 PRIMARY KEY (`id`),
663 UNIQUE KEY `object_iif_oif_name` (`object_id`,`iif_id`,`type`,`name`),
664 KEY `type` (`type`),
665 KEY `comment` (`reservation_comment`),
666 KEY `l2address` (`l2address`),
667 KEY `Port-FK-iif-oif` (`iif_id`,`type`),
668 CONSTRAINT `Port-FK-iif-oif` FOREIGN KEY (`iif_id`, `type`) REFERENCES `PortInterfaceCompat` (`iif_id`, `oif_id`),
669 CONSTRAINT `Port-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`) ON DELETE CASCADE
670 ) ENGINE=InnoDB;
671
672 CREATE TABLE `PortAllowedVLAN` (
673 `object_id` int(10) unsigned NOT NULL,
674 `port_name` char(255) NOT NULL,
675 `vlan_id` int(10) unsigned NOT NULL default '0',
676 PRIMARY KEY (`object_id`,`port_name`,`vlan_id`),
677 KEY `vlan_id` (`vlan_id`),
678 CONSTRAINT `PortAllowedVLAN-FK-object-port` FOREIGN KEY (`object_id`, `port_name`) REFERENCES `PortVLANMode` (`object_id`, `port_name`) ON DELETE CASCADE,
679 CONSTRAINT `PortAllowedVLAN-FK-vlan_id` FOREIGN KEY (`vlan_id`) REFERENCES `VLANValidID` (`vlan_id`)
680 ) ENGINE=InnoDB;
681
682 CREATE TABLE `PortCompat` (
683 `type1` int(10) unsigned NOT NULL default '0',
684 `type2` int(10) unsigned NOT NULL default '0',
685 UNIQUE KEY `type1_2` (`type1`,`type2`),
686 KEY `type2` (`type2`)
687 ) ENGINE=InnoDB;
688
689 CREATE TABLE `PortInnerInterface` (
690 `id` int(10) unsigned NOT NULL,
691 `iif_name` char(16) NOT NULL,
692 PRIMARY KEY (`id`),
693 UNIQUE KEY `iif_name` (`iif_name`)
694 ) ENGINE=InnoDB;
695
696 CREATE TABLE `PortInterfaceCompat` (
697 `iif_id` int(10) unsigned NOT NULL,
698 `oif_id` int(10) unsigned NOT NULL,
699 UNIQUE KEY `pair` (`iif_id`,`oif_id`),
700 CONSTRAINT `PortInterfaceCompat-FK-iif_id` FOREIGN KEY (`iif_id`) REFERENCES `PortInnerInterface` (`id`)
701 ) ENGINE=InnoDB;
702
703 CREATE TABLE `PortNativeVLAN` (
704 `object_id` int(10) unsigned NOT NULL,
705 `port_name` char(255) NOT NULL,
706 `vlan_id` int(10) unsigned NOT NULL default '0',
707 PRIMARY KEY (`object_id`,`port_name`,`vlan_id`),
708 UNIQUE KEY `port_id` (`object_id`,`port_name`),
709 CONSTRAINT `PortNativeVLAN-FK-compound` FOREIGN KEY (`object_id`, `port_name`, `vlan_id`) REFERENCES `PortAllowedVLAN` (`object_id`, `port_name`, `vlan_id`) ON DELETE CASCADE
710 ) ENGINE=InnoDB;
711
712 CREATE TABLE `PortVLANMode` (
713 `object_id` int(10) unsigned NOT NULL,
714 `port_name` char(255) NOT NULL,
715 `vlan_mode` enum('access','trunk') NOT NULL default 'access',
716 PRIMARY KEY (`object_id`,`port_name`),
717 CONSTRAINT `PortVLANMode-FK-object-port` FOREIGN KEY (`object_id`, `port_name`) REFERENCES `CachedPVM` (`object_id`, `port_name`)
718 ) ENGINE=InnoDB;
719
720 CREATE TABLE `Rack` (
721 `id` int(10) unsigned NOT NULL auto_increment,
722 `name` char(255) default NULL,
723 `row_id` int(10) unsigned NOT NULL default '1',
724 `height` tinyint(3) unsigned NOT NULL default '42',
725 `comment` text,
726 `thumb_data` blob,
727 PRIMARY KEY (`id`),
728 UNIQUE KEY `name_in_row` (`row_id`,`name`),
729 CONSTRAINT `Rack-FK-row_id` FOREIGN KEY (`row_id`) REFERENCES `RackRow` (`id`)
730 ) ENGINE=InnoDB;
731
732 CREATE TABLE `RackHistory` (
733 `id` int(10) unsigned default NULL,
734 `name` char(255) default NULL,
735 `row_id` int(10) unsigned default NULL,
736 `height` tinyint(3) unsigned default NULL,
737 `comment` text,
738 `thumb_data` blob,
739 `ctime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
740 `user_name` char(64) default NULL
741 ) ENGINE=InnoDB;
742
743 CREATE TABLE `RackObject` (
744 `id` int(10) unsigned NOT NULL auto_increment,
745 `name` char(255) default NULL,
746 `label` char(255) default NULL,
747 `objtype_id` int(10) unsigned NOT NULL default '1',
748 `asset_no` char(64) default NULL,
749 `has_problems` enum('yes','no') NOT NULL default 'no',
750 `comment` text,
751 PRIMARY KEY (`id`),
752 UNIQUE KEY `RackObject_asset_no` (`asset_no`),
753 UNIQUE KEY `name` (`name`)
754 ) ENGINE=InnoDB;
755
756 CREATE TABLE `RackObjectHistory` (
757 `id` int(10) unsigned default NULL,
758 `name` char(255) default NULL,
759 `label` char(255) default NULL,
760 `objtype_id` int(10) unsigned default NULL,
761 `asset_no` char(64) default NULL,
762 `has_problems` enum('yes','no') NOT NULL default 'no',
763 `comment` text,
764 `ctime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
765 `user_name` char(64) default NULL,
766 KEY `id` (`id`),
767 CONSTRAINT `RackObjectHistory-FK-object_id` FOREIGN KEY (`id`) REFERENCES `RackObject` (`id`) ON DELETE CASCADE
768 ) ENGINE=InnoDB;
769
770 CREATE TABLE `RackRow` (
771 `id` int(10) unsigned NOT NULL auto_increment,
772 `name` char(255) NOT NULL,
773 PRIMARY KEY (`id`),
774 UNIQUE KEY `name` (`name`)
775 ) ENGINE=InnoDB;
776
777 CREATE TABLE `RackSpace` (
778 `rack_id` int(10) unsigned NOT NULL default '0',
779 `unit_no` int(10) unsigned NOT NULL default '0',
780 `atom` enum('front','interior','rear') NOT NULL default 'interior',
781 `state` enum('A','U','T','W') NOT NULL default 'A',
782 `object_id` int(10) unsigned default NULL,
783 PRIMARY KEY (`rack_id`,`unit_no`,`atom`),
784 KEY `RackSpace_object_id` (`object_id`),
785 CONSTRAINT `RackSpace-FK-rack_id` FOREIGN KEY (`rack_id`) REFERENCES `Rack` (`id`),
786 CONSTRAINT `RackSpace-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`) ON DELETE CASCADE
787 ) ENGINE=InnoDB;
788
789 CREATE TABLE `Script` (
790 `script_name` char(64) NOT NULL,
791 `script_text` longtext,
792 PRIMARY KEY (`script_name`)
793 ) ENGINE=InnoDB;
794
795 CREATE TABLE `TagStorage` (
796 `entity_realm` enum('file','ipv4net','ipv4vs','ipv4rspool','object','rack','user','ipv6net') NOT NULL default 'object',
797 `entity_id` int(10) unsigned NOT NULL,
798 `tag_id` int(10) unsigned NOT NULL default '0',
799 UNIQUE KEY `entity_tag` (`entity_realm`,`entity_id`,`tag_id`),
800 KEY `entity_id` (`entity_id`),
801 KEY `TagStorage-FK-tag_id` (`tag_id`),
802 CONSTRAINT `TagStorage-FK-tag_id` FOREIGN KEY (`tag_id`) REFERENCES `TagTree` (`id`)
803 ) ENGINE=InnoDB;
804
805 CREATE TABLE `TagTree` (
806 `id` int(10) unsigned NOT NULL auto_increment,
807 `parent_id` int(10) unsigned default NULL,
808 `tag` char(255) default NULL,
809 PRIMARY KEY (`id`),
810 UNIQUE KEY `tag` (`tag`),
811 KEY `TagTree-K-parent_id` (`parent_id`),
812 CONSTRAINT `TagTree-K-parent_id` FOREIGN KEY (`parent_id`) REFERENCES `TagTree` (`id`)
813 ) ENGINE=InnoDB;
814
815 CREATE TABLE `UserAccount` (
816 `user_id` int(10) unsigned NOT NULL auto_increment,
817 `user_name` char(64) NOT NULL default '',
818 `user_password_hash` char(40) default NULL,
819 `user_realname` char(64) default NULL,
820 PRIMARY KEY (`user_id`),
821 UNIQUE KEY `user_name` (`user_name`)
822 ) ENGINE=MyISAM AUTO_INCREMENT=10000;
823
824 CREATE TABLE `UserConfig` (
825 `varname` char(32) NOT NULL,
826 `varvalue` text NOT NULL,
827 `user` char(64) NOT NULL,
828 UNIQUE KEY `user_varname` (`user`,`varname`)
829 ) ENGINE=InnoDB;
830
831 CREATE TABLE `VLANDescription` (
832 `domain_id` int(10) unsigned NOT NULL,
833 `vlan_id` int(10) unsigned NOT NULL default '0',
834 `vlan_type` enum('ondemand','compulsory','alien') NOT NULL default 'ondemand',
835 `vlan_descr` char(255) default NULL,
836 PRIMARY KEY (`domain_id`,`vlan_id`),
837 KEY `vlan_id` (`vlan_id`),
838 CONSTRAINT `VLANDescription-FK-domain_id` FOREIGN KEY (`domain_id`) REFERENCES `VLANDomain` (`id`) ON DELETE CASCADE,
839 CONSTRAINT `VLANDescription-FK-vlan_id` FOREIGN KEY (`vlan_id`) REFERENCES `VLANValidID` (`vlan_id`)
840 ) ENGINE=InnoDB;
841
842 CREATE TABLE `VLANDomain` (
843 `id` int(10) unsigned NOT NULL auto_increment,
844 `description` char(255) default NULL,
845 PRIMARY KEY (`id`),
846 UNIQUE KEY `description` (`description`)
847 ) ENGINE=InnoDB;
848
849 CREATE TABLE `VLANIPv4` (
850 `domain_id` int(10) unsigned NOT NULL,
851 `vlan_id` int(10) unsigned NOT NULL,
852 `ipv4net_id` int(10) unsigned NOT NULL,
853 UNIQUE KEY `network-domain` (`ipv4net_id`,`domain_id`),
854 KEY `VLANIPv4-FK-compound` (`domain_id`,`vlan_id`),
855 CONSTRAINT `VLANIPv4-FK-compound` FOREIGN KEY (`domain_id`, `vlan_id`) REFERENCES `VLANDescription` (`domain_id`, `vlan_id`) ON DELETE CASCADE,
856 CONSTRAINT `VLANIPv4-FK-ipv4net_id` FOREIGN KEY (`ipv4net_id`) REFERENCES `IPv4Network` (`id`) ON DELETE CASCADE
857 ) ENGINE=InnoDB;
858
859 CREATE TABLE `VLANIPv6` (
860 `domain_id` int(10) unsigned NOT NULL,
861 `vlan_id` int(10) unsigned NOT NULL,
862 `ipv6net_id` int(10) unsigned NOT NULL,
863 UNIQUE KEY `network-domain` (`ipv6net_id`,`domain_id`),
864 KEY `VLANIPv6-FK-compound` (`domain_id`,`vlan_id`),
865 CONSTRAINT `VLANIPv6-FK-compound` FOREIGN KEY (`domain_id`, `vlan_id`) REFERENCES `VLANDescription` (`domain_id`, `vlan_id`) ON DELETE CASCADE,
866 CONSTRAINT `VLANIPv6-FK-ipv6net_id` FOREIGN KEY (`ipv6net_id`) REFERENCES `IPv6Network` (`id`) ON DELETE CASCADE
867 ) ENGINE=InnoDB;
868
869 CREATE TABLE `VLANSTRule` (
870 `vst_id` int(10) unsigned NOT NULL,
871 `rule_no` int(10) unsigned NOT NULL,
872 `port_pcre` char(255) NOT NULL,
873 `port_role` enum('access','trunk','anymode','uplink','downlink','none') NOT NULL default 'none',
874 `wrt_vlans` char(255) default NULL,
875 `description` char(255) default NULL,
876 UNIQUE KEY `vst-rule` (`vst_id`,`rule_no`),
877 CONSTRAINT `VLANSTRule-FK-vst_id` FOREIGN KEY (`vst_id`) REFERENCES `VLANSwitchTemplate` (`id`) ON DELETE CASCADE
878 ) ENGINE=InnoDB;
879
880 CREATE TABLE `VLANSwitch` (
881 `object_id` int(10) unsigned NOT NULL,
882 `domain_id` int(10) unsigned NOT NULL,
883 `template_id` int(10) unsigned NOT NULL,
884 `mutex_rev` int(10) unsigned NOT NULL default '0',
885 `out_of_sync` enum('yes','no') NOT NULL default 'yes',
886 `last_errno` int(10) unsigned NOT NULL default '0',
887 `last_change` timestamp NOT NULL default '0000-00-00 00:00:00',
888 `last_push_started` timestamp NOT NULL default '0000-00-00 00:00:00',
889 `last_push_finished` timestamp NOT NULL default '0000-00-00 00:00:00',
890 `last_error_ts` timestamp NOT NULL default '0000-00-00 00:00:00',
891 UNIQUE KEY `object_id` (`object_id`),
892 KEY `domain_id` (`domain_id`),
893 KEY `template_id` (`template_id`),
894 KEY `out_of_sync` (`out_of_sync`),
895 KEY `last_errno` (`last_errno`),
896 CONSTRAINT `VLANSwitch-FK-domain_id` FOREIGN KEY (`domain_id`) REFERENCES `VLANDomain` (`id`),
897 CONSTRAINT `VLANSwitch-FK-object_id` FOREIGN KEY (`object_id`) REFERENCES `RackObject` (`id`),
898 CONSTRAINT `VLANSwitch-FK-template_id` FOREIGN KEY (`template_id`) REFERENCES `VLANSwitchTemplate` (`id`)
899 ) ENGINE=InnoDB;
900
901 CREATE TABLE `VLANSwitchTemplate` (
902 `id` int(10) unsigned NOT NULL auto_increment,
903 `mutex_rev` int(10) NOT NULL,
904 `description` char(255) default NULL,
905 `saved_by` char(64) NOT NULL,
906 PRIMARY KEY (`id`),
907 UNIQUE KEY `description` (`description`)
908 ) ENGINE=InnoDB;
909
910 CREATE TABLE `VLANValidID` (
911 `vlan_id` int(10) unsigned NOT NULL default '1',
912 PRIMARY KEY (`vlan_id`)
913 ) ENGINE=InnoDB;
914
915 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
916 END_OF_FILE;
917 ##########################################################################
918 case 'dictbase':
919 return <<<END_OF_FILE
920 INSERT INTO `Attribute` (`id`, `type`, `name`) VALUES
921 (1,'string','OEM S/N 1'),
922 (2,'dict','HW type'),
923 (3,'string','FQDN'),
924 (4,'dict','SW type'),
925 (5,'string','SW version'),
926 (6,'uint','number of ports'),
927 (7,'float','max. current, Ampers'),
928 (8,'float','power load, percents'),
929 (14,'string','contact person'),
930 (13,'float','max power, Watts'),
931 (16,'uint','flash memory, MB'),
932 (17,'uint','DRAM, MB'),
933 (18,'uint','CPU, MHz'),
934 (20,'string','OEM S/N 2'),
935 (21,'string','support contract expiration'),
936 (22,'string','HW warranty expiration'),
937 (24,'string','SW warranty expiration'),
938 (25,'string','UUID'),
939 (26,'dict','Hypervisor');
940
941 INSERT INTO `AttributeMap` (`objtype_id`, `attr_id`, `chapter_id`) VALUES
942 (2,1,NULL),
943 (2,2,27),
944 (2,3,NULL),
945 (2,5,NULL),
946 (4,1,NULL),
947 (4,2,11),
948 (4,3,NULL),
949 (4,4,13),
950 (4,14,NULL),
951 (4,21,NULL),
952 (4,22,NULL),
953 (4,24,NULL),
954 (4,25,NULL),
955 (4,26,29),
956 (5,1,NULL),
957 (5,2,18),
958 (6,1,NULL),
959 (6,2,19),
960 (6,20,NULL),
961 (7,1,NULL),
962 (7,2,17),
963 (7,3,NULL),
964 (7,4,16),
965 (7,5,NULL),
966 (7,14,NULL),
967 (7,16,NULL),
968 (7,17,NULL),
969 (7,18,NULL),
970 (7,21,NULL),
971 (7,22,NULL),
972 (7,24,NULL),
973 (8,1,NULL),
974 (8,2,12),
975 (8,3,NULL),
976 (8,4,14),
977 (8,5,NULL),
978 (8,14,NULL),
979 (8,16,NULL),
980 (8,17,NULL),
981 (8,18,NULL),
982 (8,20,NULL),
983 (8,21,NULL),
984 (8,22,NULL),
985 (8,24,NULL),
986 (9,6,NULL),
987 (12,1,NULL),
988 (12,3,NULL),
989 (12,7,NULL),
990 (12,8,NULL),
991 (12,13,NULL),
992 (12,20,NULL),
993 (445,1,NULL),
994 (445,2,21),
995 (445,3,NULL),
996 (445,5,NULL),
997 (445,14,NULL),
998 (445,22,NULL),
999 (447,1,NULL),
1000 (447,2,22),
1001 (447,3,NULL),
1002 (447,5,NULL),
1003 (447,14,NULL),
1004 (447,22,NULL),
1005 (15,2,23),
1006 (798,1,NULL),
1007 (798,2,24),
1008 (798,3,NULL),
1009 (798,5,NULL),
1010 (798,14,NULL),
1011 (798,16,NULL),
1012 (798,17,NULL),
1013 (798,18,NULL),
1014 (798,20,NULL),
1015 (798,21,NULL),
1016 (798,22,NULL),
1017 (798,24,NULL),
1018 (965,1,NULL),
1019 (965,3,NULL),
1020 (965,2,25),
1021 (1055,2,26),
1022 (1323,1,NULL),
1023 (1323,2,28),
1024 (1323,3,NULL),
1025 (1323,5,NULL),
1026 (1397,1,NULL),
1027 (1397,2,34),
1028 (1397,14,NULL),
1029 (1397,21,NULL),
1030 (1397,22,NULL),
1031 (1398,1,NULL),
1032 (1398,2,35),
1033 (1398,14,NULL),
1034 (1398,21,NULL),
1035 (1398,22,NULL),
1036 (1502,1,NULL),
1037 (1502,2,31),
1038 (1502,3,NULL),
1039 (1502,14,NULL),
1040 (1502,20,NULL),
1041 (1502,21,NULL),
1042 (1502,22,NULL),
1043 (1503,1,NULL),
1044 (1503,2,30),
1045 (1503,3,NULL),
1046 (1503,4,14),
1047 (1503,5,NULL),
1048 (1503,14,NULL),
1049 (1503,16,NULL),
1050 (1503,17,NULL),
1051 (1503,18,NULL),
1052 (1503,20,NULL),
1053 (1503,21,NULL),
1054 (1503,22,NULL),
1055 (1503,24,NULL),
1056 (1504,3,NULL),
1057 (1504,4,13),
1058 (1504,14,NULL),
1059 (1504,24,NULL),
1060 (1505,14,NULL),
1061 (1506,14,NULL),
1062 (1506,17,NULL),
1063 (1506,18,NULL),
1064 (1507,1,NULL),
1065 (1507,2,32),
1066 (1507,3,NULL),
1067 (1507,4,33),
1068 (1507,5,NULL),
1069 (1507,14,NULL),
1070 (1507,20,NULL),
1071 (1507,21,NULL),
1072 (1507,22,NULL);
1073
1074 INSERT INTO `Chapter` (`id`, `sticky`, `name`) VALUES
1075 (1,'yes','RackObjectType'),
1076 (2,'yes','PortOuterInterface'),
1077 (11,'no','server models'),
1078 (12,'no','network switch models'),
1079 (13,'no','server OS type'),
1080 (14,'no','switch OS type'),
1081 (16,'no','router OS type'),
1082 (17,'no','router models'),
1083 (18,'no','disk array models'),
1084 (19,'no','tape library models'),
1085 (21,'no','KVM switch models'),
1086 (22,'no','multiplexer models'),
1087 (23,'no','console models'),
1088 (24,'no','network security models'),
1089 (25,'no','wireless models'),
1090 (26,'no','fibre channel switch models'),
1091 (27,'no','PDU models'),
1092 (28,'no','Voice/video hardware'),
1093 (29,'no','Yes/No'),
1094 (30,'no','network chassis models'),
1095 (31,'no','server chassis models'),
1096 (32,'no','virtual switch models'),
1097 (33,'no','virtual switch OS type'),
1098 (34,'no','power supply chassis models'),
1099 (35,'no','power supply models');
1100
1101 INSERT INTO `PortInnerInterface` VALUES
1102 (1,'hardwired'),
1103 (2,'SFP-100'),
1104 (3,'GBIC'),
1105 (4,'SFP-1000'),
1106 (5,'XENPAK'),
1107 (6,'X2'),
1108 (7,'XPAK'),
1109 (8,'XFP'),
1110 (9,'SFP+');
1111
1112 INSERT INTO `ObjectParentCompat` VALUES
1113 (3,13),
1114 (4,1504),
1115 (4,1507),
1116 (1397,1398),
1117 (1502,4),
1118 (1503,8),
1119 (1505,4),
1120 (1505,1504),
1121 (1505,1506),
1122 (1505,1507),
1123 (1506,1504);
1124
1125 INSERT INTO `PortInterfaceCompat` VALUES
1126 (2,1208),(2,1195),(2,1196),(2,1197),(2,1198),(2,1199),(2,1200),(2,1201),
1127 (3,1078),(3,24),(3,34),(3,1202),(3,1203),(3,1204),(3,1205),(3,1206),(3,1207),
1128 (4,1077),(4,24),(4,34),(4,1202),(4,1203),(4,1204),(4,1205),(4,1206),(4,1207),
1129 (5,1079),(5,30),(5,35),(5,36),(5,37),(5,38),(5,39),(5,40),
1130 (6,1080),(6,30),(6,35),(6,36),(6,37),(6,38),(6,39),(6,40),
1131 (7,1081),(7,30),(7,35),(7,36),(7,37),(7,38),(7,39),(7,40),
1132 (8,1082),(8,30),(8,35),(8,36),(8,37),(8,38),(8,39),(8,40),
1133 (9,1084),(9,30),(9,35),(9,36),(9,37),(9,38),(9,39),(9,40),
1134 (1,16),(1,19),(1,24),(1,29),(1,31),(1,33),(1,446),(1,681),(1,682),(1,1322),(1,1399);
1135
1136 INSERT INTO `PortCompat` (`type1`, `type2`) VALUES
1137 (17,17),
1138 (18,18),
1139 (19,19),
1140 (20,20),
1141 (21,21),
1142 (21,1195),
1143 (22,22),
1144 (22,1196),
1145 (23,23),
1146 (23,1196),
1147 (24,24),
1148 (25,25),
1149 (26,26),
1150 (27,27),
1151 (28,28),
1152 (18,19),
1153 (19,18),
1154 (18,24),
1155 (24,18),
1156 (19,24),
1157 (24,19),
1158 (29,29),
1159 (20,21),
1160 (20,1083),
1161 (20,1195),
1162 (21,20),
1163 (21,1083),
1164 (22,23),
1165 (23,22),
1166 (25,26),
1167 (25,1202),
1168 (26,25),
1169 (26,1202),
1170 (27,28),
1171 (27,1204),
1172 (28,27),
1173 (28,1204),
1174 (30,30),
1175 (16,1322),
1176 (1322,16),
1177 (29,681),
1178 (29,682),
1179 (32,32),
1180 (33,446),
1181 (34,34),
1182 (35,35),
1183 (36,36),
1184 (37,37),
1185 (38,38),
1186 (39,39),
1187 (40,40),
1188 (41,41),
1189 (439,439),
1190 (446,33),
1191 (681,29),
1192 (681,681),
1193 (681,682),
1194 (682,29),
1195 (682,681),
1196 (682,682),
1197 (1077,1077),
1198 (1083,20),
1199 (1083,21),
1200 (1083,1083),
1201 (1083,1195),
1202 (1084,1084),
1203 (1087,1087),
1204 (1195,20),
1205 (1195,21),
1206 (1195,1083),
1207 (1195,1195),
1208 (1196,22),
1209 (1196,23),
1210 (1196,1196),
1211 (1197,1197),
1212 (1198,1199),
1213 (1199,1198),
1214 (1200,1200),
1215 (1201,1201),
1216 (1202,25),
1217 (1202,26),
1218 (1202,1202),
1219 (1203,1203),
1220 (1204,27),
1221 (1204,28),
1222 (1204,1204),
1223 (1205,1205),
1224 (1206,1207),
1225 (1207,1206),
1226 (1209,1209),
1227 (1210,1210),
1228 (1211,1211),
1229 (1212,1212),
1230 (1213,1213),
1231 (1214,1214),
1232 (1215,1215),
1233 (1216,1216),
1234 (1217,1217),
1235 (1218,1218),
1236 (1219,1219),
1237 (1220,1220),
1238 (1221,1221),
1239 (1222,1222),
1240 (1223,1223),
1241 (1224,1224),
1242 (1225,1225),
1243 (1226,1226),
1244 (1227,1227),
1245 (1228,1228),
1246 (1229,1229),
1247 (1230,1230),
1248 (1231,1231),
1249 (1232,1232),
1250 (1233,1233),
1251 (1234,1234),
1252 (1235,1235),
1253 (1236,1236),
1254 (1237,1237),
1255 (1238,1238),
1256 (1239,1239),
1257 (1240,1240),
1258 (1241,1241),
1259 (1242,1242),
1260 (1243,1243),
1261 (1244,1244),
1262 (1245,1245),
1263 (1246,1246),
1264 (1247,1247),
1265 (1248,1248),
1266 (1249,1249),
1267 (1250,1250),
1268 (1251,1251),
1269 (1252,1252),
1270 (1253,1253),
1271 (1254,1254),
1272 (1255,1255),
1273 (1256,1256),
1274 (1257,1257),
1275 (1258,1258),
1276 (1259,1259),
1277 (1260,1260),
1278 (1261,1261),
1279 (1262,1262),
1280 (1263,1263),
1281 (1264,1264),
1282 (1265,1265),
1283 (1266,1266),
1284 (1267,1267),
1285 (1268,1268),
1286 (1269,1269),
1287 (1270,1270),
1288 (1271,1271),
1289 (1272,1272),
1290 (1273,1273),
1291 (1274,1274),
1292 (1275,1275),
1293 (1276,1276),
1294 (1277,1277),
1295 (1278,1278),
1296 (1279,1279),
1297 (1280,1280),
1298 (1281,1281),
1299 (1282,1282),
1300 (1283,1283),
1301 (1284,1284),
1302 (1285,1285),
1303 (1286,1286),
1304 (1287,1287),
1305 (1288,1288),
1306 (1289,1289),
1307 (1290,1290),
1308 (1291,1291),
1309 (1292,1292),
1310 (1293,1293),
1311 (1294,1294),
1312 (1295,1295),
1313 (1296,1296),
1314 (1297,1297),
1315 (1298,1298),
1316 (1299,1299),
1317 (1300,1300),
1318 (1316,1316),
1319 (1399,1399);
1320
1321 INSERT INTO `Config` (varname, varvalue, vartype, emptyok, is_hidden, is_userdefined, description) VALUES
1322 ('color_F','8fbfbf','string','no','yes','no','HSV: 180-25-75. Free atoms, they are available for allocation to objects.'),
1323 ('color_A','bfbfbf','string','no','yes','no','HSV: 0-0-75. Absent atoms.'),
1324 ('color_U','bf8f8f','string','no','yes','no','HSV: 0-25-75. Unusable atoms. Some problems keep them from being free.'),
1325 ('color_T','408080','string','no','yes','no','HSV: 180-50-50. Taken atoms, object_id should be set for such.'),
1326 ('color_Th','80ffff','string','no','yes','no','HSV: 180-50-100. Taken atoms with highlight. They are not stored in the database and are only used for highlighting.'),
1327 ('color_Tw','804040','string','no','yes','no','HSV: 0-50-50. Taken atoms with object problem. This is detected at runtime.'),
1328 ('color_Thw','ff8080','string','no','yes','no','HSV: 0-50-100. An object can be both current and problematic. We run highlightObject() first and markupObjectProblems() second.'),
1329 ('MASSCOUNT','8','uint','no','no','yes','&quot;Fast&quot; form is this many records tall'),
1330 ('MAXSELSIZE','30','uint','no','no','yes','&lt;SELECT&gt; lists height'),
1331 ('enterprise','MyCompanyName','string','no','no','no','Organization name'),
1332 ('ROW_SCALE','2','uint','no','no','yes','Picture scale for rack row display'),
1333 ('PORTS_PER_ROW','12','uint','no','no','yes','Ports per row in VLANs tab'),
1334 ('IPV4_ADDRS_PER_PAGE','256','uint','no','no','yes','IPv4 addresses per page'),
1335 ('DEFAULT_RACK_HEIGHT','42','uint','yes','no','yes','Default rack height'),
1336 ('DEFAULT_SLB_VS_PORT','','uint','yes','no','yes','Default port of SLB virtual service'),
1337 ('DEFAULT_SLB_RS_PORT','','uint','yes','no','yes','Default port of SLB real server'),
1338 ('DETECT_URLS','no','string','yes','no','yes','Detect URLs in text fields'),
1339 ('RACK_PRESELECT_THRESHOLD','1','uint','no','no','yes','Rack pre-selection threshold'),
1340 ('DEFAULT_IPV4_RS_INSERVICE','no','string','no','no','yes','Inservice status for new SLB real servers'),
1341 ('AUTOPORTS_CONFIG','4 = 1*33*kvm + 2*24*eth%u;15 = 1*446*kvm','string','yes','no','no','AutoPorts configuration'),
1342 ('DEFAULT_OBJECT_TYPE','4','uint','yes','no','yes','Default object type for new objects'),
1343 ('SHOW_EXPLICIT_TAGS','yes','string','no','no','yes','Show explicit tags'),
1344 ('SHOW_IMPLICIT_TAGS','yes','string','no','no','yes','Show implicit tags'),
1345 ('SHOW_AUTOMATIC_TAGS','no','string','no','no','yes','Show automatic tags'),
1346 ('IPV4_AUTO_RELEASE','1','uint','no','no','yes','Auto-release IPv4 addresses on allocation'),
1347 ('SHOW_LAST_TAB','no','string','yes','no','yes','Remember last tab shown for each page'),
1348 ('EXT_IPV4_VIEW','yes','string','no','no','yes','Extended IPv4 view'),
1349 ('TREE_THRESHOLD','25','uint','yes','no','yes','Tree view auto-collapse threshold'),
1350 ('IPV4_JAYWALK','no','string','no','no','no','Enable IPv4 address allocations w/o covering network'),
1351 ('ADDNEW_AT_TOP','yes','string','no','no','yes','Render "add new" line at top of the list'),
1352 ('IPV4_TREE_SHOW_USAGE','yes','string','no','no','yes','Show address usage in IPv4 tree'),
1353 ('PREVIEW_TEXT_MAXCHARS','10240','uint','yes','no','yes','Max chars for text file preview'),
1354 ('PREVIEW_TEXT_ROWS','25','uint','yes','no','yes','Rows for text file preview'),
1355 ('PREVIEW_TEXT_COLS','80','uint','yes','no','yes','Columns for text file preview'),
1356 ('PREVIEW_IMAGE_MAXPXS','320','uint','yes','no','yes','Max pixels per axis for image file preview'),
1357 ('VENDOR_SIEVE','','string','yes','no','yes','Vendor sieve configuration'),
1358 ('IPV4LB_LISTSRC','{\$typeid_4}','string','yes','no','no','List source: IPv4 load balancers'),
1359 ('IPV4OBJ_LISTSRC','{\$typeid_4} or {\$typeid_7} or {\$typeid_8} or {\$typeid_12} or {\$typeid_445} or {\$typeid_447} or {\$typeid_798} or {\$typeid_1397} or {\$typeid_1502} or {\$typeid_1503} or {\$typeid_1504} or {\$typeid_1507}','string','yes','no','no','List source: IPv4-enabled objects'),
1360 ('IPV4NAT_LISTSRC','{\$typeid_4} or {\$typeid_7} or {\$typeid_8} or {\$typeid_798}','string','yes','no','no','List source: IPv4 NAT performers'),
1361 ('ASSETWARN_LISTSRC','{\$typeid_4} or {\$typeid_7} or {\$typeid_8}','string','yes','no','no','List source: object, for which asset tag should be set'),
1362 ('NAMEWARN_LISTSRC','{\$typeid_4} or {\$typeid_7} or {\$typeid_8}','string','yes','no','no','List source: object, for which common name should be set'),
1363 ('RACKS_PER_ROW','12','uint','yes','no','yes','Racks per row'),
1364 ('FILTER_PREDICATE_SIEVE','','string','yes','no','no','Predicate sieve regex(7)'),
1365 ('FILTER_DEFAULT_ANDOR','or','string','no','no','no','Default list filter boolean operation (or/and)'),
1366 ('FILTER_SUGGEST_ANDOR','yes','string','no','no','no','Suggest and/or selector in list filter'),
1367 ('FILTER_SUGGEST_TAGS','yes','string','no','no','no','Suggest tags in list filter'),
1368 ('FILTER_SUGGEST_PREDICATES','yes','string','no','no','no','Suggest predicates in list filter'),
1369 ('FILTER_SUGGEST_EXTRA','no','string','no','no','no','Suggest extra expression in list filter'),
1370 ('DEFAULT_SNMP_COMMUNITY','public','string','no','no','no','Default SNMP Community string'),
1371 ('IPV4_ENABLE_KNIGHT','yes','string','no','no','no','Enable IPv4 knight feature'),
1372 ('TAGS_TOPLIST_SIZE','50','uint','yes','no','no','Tags top list size'),
1373 ('TAGS_QUICKLIST_SIZE','20','uint','no','no','no','Tags quick list size'),
1374 ('TAGS_QUICKLIST_THRESHOLD','50','uint','yes','no','no','Tags quick list threshold'),
1375 ('ENABLE_MULTIPORT_FORM','no','string','no','no','no','Enable "Add/update multiple ports" form'),
1376 ('DEFAULT_PORT_IIF_ID','1','uint','no','no','no','Default port inner interface ID'),
1377 ('DEFAULT_PORT_OIF_IDS','1=24; 3=1078; 4=1077; 5=1079; 6=1080; 8=1082; 9=1084','string','no','no','no','Default port outer interface IDs'),
1378 ('IPV4_TREE_RTR_AS_CELL','yes','string','no','no','no','Show full router info for each network in IPv4 tree view'),
1379 ('PROXIMITY_RANGE','0','uint','yes','no','no','Proximity range (0 is current rack only)'),
1380 ('VLANSWITCH_LISTSRC', '', 'string', 'yes', 'no', 'yes', 'List of VLAN running switches'),
1381 ('VLANIPV4NET_LISTSRC', '', 'string', 'yes', 'no', 'yes', 'List of VLAN-based IPv4 networks'),
1382 ('IPV4_TREE_SHOW_VLAN','yes','string','no','no','yes','Show VLAN for each network in IPv4 tree'),
1383 ('DEFAULT_VDOM_ID','','uint','yes','no','yes','Default VLAN domain ID'),
1384 ('DEFAULT_VST_ID','','uint','yes','no','yes','Default VLAN switch template ID'),
1385 ('8021Q_DEPLOY_MINAGE','300','uint','no','no','no','802.1Q deploy minimum age'),
1386 ('8021Q_DEPLOY_MAXAGE','3600','uint','no','no','no','802.1Q deploy maximum age'),
1387 ('8021Q_DEPLOY_RETRY','10800','uint','no','no','no','802.1Q deploy retry timer'),
1388 ('8021Q_WRI_AFTER_CONFT_LISTSRC','false','string','no','no','no','802.1Q: save device configuration after deploy (RackCode)'),
1389 ('8021Q_INSTANT_DEPLOY','no','string','no','no','yes','802.1Q: instant deploy'),
1390 ('STATIC_FILTER','yes','string','no','no','yes','Enable Filter Caching'),
1391 ('ENABLE_BULKPORT_FORM','yes','string','no','no','yes','Enable "Bulk Port" form'),
1392 ('CDP_RUNNERS_LISTSRC', '', 'string', 'yes', 'no', 'no', 'List of devices running CDP'),
1393 ('LLDP_RUNNERS_LISTSRC', '', 'string', 'yes', 'no', 'no', 'List of devices running LLDP'),
1394 ('HNDP_RUNNERS_LISTSRC', '', 'string', 'yes', 'no', 'no', 'List of devices running HNDP (RackCode)'),
1395 ('SHRINK_TAG_TREE_ON_CLICK','yes','string','no','no','yes','Dynamically hide useless tags in tagtree'),
1396 ('MAX_UNFILTERED_ENTITIES','0','uint','no','no','yes','Max item count to display on unfiltered result page'),
1397 ('SYNCDOMAIN_MAX_PROCESSES','0','uint','yes','no', 'no', 'How many worker proceses syncdomain cron script should create'),
1398 ('PORT_EXCLUSION_LISTSRC','{\$typeid_3} or {\$typeid_10} or {\$typeid_11} or {\$typeid_1505} or {\$typeid_1506}','string','yes','no','no','List source: objects without ports'),
1399 ('FILTER_RACKLIST_BY_TAGS','yes','string','yes','no','yes','Rackspace: show only racks matching the current object\'s tags'),
1400 ('DB_VERSION','0.19.1','string','no','yes','no','Database version.');
1401
1402 INSERT INTO `Script` VALUES ('RackCode','allow {\$userid_1}');
1403
1404 INSERT INTO VLANValidID (vlan_id) VALUES
1405 (1),
1406 (2),
1407 (3),
1408 (4),
1409 (5),
1410 (6),
1411 (7),
1412 (8),
1413 (9),
1414 (10),
1415 (11),
1416 (12),
1417 (13),
1418 (14),
1419 (15),
1420 (16),
1421 (17),
1422 (18),
1423 (19),
1424 (20),
1425 (21),
1426 (22),
1427 (23),
1428 (24),
1429 (25),
1430 (26),
1431 (27),
1432 (28),
1433 (29),
1434 (30),
1435 (31),
1436 (32),
1437 (33),
1438 (34),
1439 (35),
1440 (36),
1441 (37),
1442 (38),
1443 (39),
1444 (40),
1445 (41),
1446 (42),
1447 (43),
1448 (44),
1449 (45),
1450 (46),
1451 (47),
1452 (48),
1453 (49),
1454 (50),
1455 (51),
1456 (52),
1457 (53),
1458 (54),
1459 (55),
1460 (56),
1461 (57),
1462 (58),
1463 (59),
1464 (60),
1465 (61),
1466 (62),
1467 (63),
1468 (64),
1469 (65),
1470 (66),
1471 (67),
1472 (68),
1473 (69),
1474 (70),
1475 (71),
1476 (72),
1477 (73),
1478 (74),
1479 (75),
1480 (76),
1481 (77),
1482 (78),
1483 (79),
1484 (80),
1485 (81),
1486 (82),
1487 (83),
1488 (84),
1489 (85),
1490 (86),
1491 (87),
1492 (88),
1493 (89),
1494 (90),
1495 (91),
1496 (92),
1497 (93),
1498 (94),
1499 (95),
1500 (96),
1501 (97),
1502 (98),
1503 (99),
1504 (100),
1505 (101),
1506 (102),
1507 (103),
1508 (104),
1509 (105),
1510 (106),
1511 (107),
1512 (108),
1513 (109),
1514 (110),
1515 (111),
1516 (112),
1517 (113),
1518 (114),
1519 (115),
1520 (116),
1521 (117),
1522 (118),
1523 (119),
1524 (120),
1525 (121),
1526 (122),
1527 (123),
1528 (124),
1529 (125),
1530 (126),
1531 (127),
1532 (128),
1533 (129),
1534 (130),
1535 (131),
1536 (132),
1537 (133),
1538 (134),
1539 (135),
1540 (136),
1541 (137),
1542 (138),
1543 (139),
1544 (140),
1545 (141),
1546 (142),
1547 (143),
1548 (144),
1549 (145),
1550 (146),
1551 (147),
1552 (148),
1553 (149),
1554 (150),
1555 (151),
1556 (152),
1557 (153),
1558 (154),
1559 (155),
1560 (156),
1561 (157),
1562 (158),
1563 (159),
1564 (160),
1565 (161),
1566 (162),
1567 (163),
1568 (164),
1569 (165),
1570 (166),
1571 (167),
1572 (168),
1573 (169),
1574 (170),
1575 (171),
1576 (172),
1577 (173),
1578 (174),
1579 (175),
1580 (176),
1581 (177),
1582 (178),
1583 (179),
1584 (180),
1585 (181),
1586 (182),
1587 (183),
1588 (184),
1589 (185),
1590 (186),
1591 (187),
1592 (188),
1593 (189),
1594 (190),
1595 (191),
1596 (192),
1597 (193),
1598 (194),
1599 (195),
1600 (196),
1601 (197),
1602 (198),
1603 (199),
1604 (200),
1605 (201),
1606 (202),
1607 (203),
1608 (204),
1609 (205),
1610 (206),
1611 (207),
1612 (208),
1613 (209),
1614 (210),
1615 (211),
1616 (212),
1617 (213),
1618 (214),
1619 (215),
1620 (216),
1621 (217),
1622 (218),
1623 (219),
1624 (220),
1625 (221),
1626 (222),
1627 (223),
1628 (224),
1629 (225),
1630 (226),
1631 (227),
1632 (228),
1633 (229),
1634 (230),
1635 (231),
1636 (232),
1637 (233),
1638 (234),
1639 (235),
1640 (236),
1641 (237),
1642 (238),
1643 (239),
1644 (240),
1645 (241),
1646 (242),
1647 (243),
1648 (244),
1649 (245),
1650 (246),
1651 (247),
1652 (248),
1653 (249),
1654 (250),
1655 (251),
1656 (252),
1657 (253),
1658 (254),
1659 (255),
1660 (256),
1661 (257),
1662 (258),
1663 (259),
1664 (260),
1665 (261),
1666 (262),
1667 (263),
1668 (264),
1669 (265),
1670 (266),
1671 (267),
1672 (268),
1673 (269),
1674 (270),
1675 (271),
1676 (272),
1677 (273),
1678 (274),
1679 (275),
1680 (276),
1681 (277),
1682 (278),
1683 (279),
1684 (280),
1685 (281),
1686 (282),
1687 (283),
1688 (284),
1689 (285),
1690 (286),
1691 (287),
1692 (288),
1693 (289),
1694 (290),
1695 (291),
1696 (292),
1697 (293),
1698 (294),
1699 (295),
1700 (296),
1701 (297),
1702 (298),
1703 (299),
1704 (300),
1705 (301),
1706 (302),
1707 (303),
1708 (304),
1709 (305),
1710 (306),
1711 (307),
1712 (308),
1713 (309),
1714 (310),
1715 (311),
1716 (312),
1717 (313),
1718 (314),
1719 (315),
1720 (316),
1721 (317),
1722 (318),
1723 (319),
1724 (320),
1725 (321),
1726 (322),
1727 (323),
1728 (324),
1729 (325),
1730 (326),
1731 (327),
1732 (328),
1733 (329),
1734 (330),
1735 (331),
1736 (332),
1737 (333),
1738 (334),
1739 (335),
1740 (336),
1741 (337),
1742 (338),
1743 (339),
1744 (340),
1745 (341),
1746 (342),
1747 (343),
1748 (344),
1749 (345),
1750 (346),
1751 (347),
1752 (348),
1753 (349),
1754 (350),
1755 (351),
1756 (352),
1757 (353),
1758 (354),
1759 (355),
1760 (356),
1761 (357),
1762 (358),
1763 (359),
1764 (360),
1765 (361),
1766 (362),
1767 (363),
1768 (364),
1769 (365),
1770 (366),
1771 (367),
1772 (368),
1773 (369),
1774 (370),
1775 (371),
1776 (372),
1777 (373),
1778 (374),
1779 (375),
1780 (376),
1781 (377),
1782 (378),
1783 (379),
1784 (380),
1785 (381),
1786 (382),
1787 (383),
1788 (384),
1789 (385),
1790 (386),
1791 (387),
1792 (388),
1793 (389),
1794 (390),
1795 (391),
1796 (392),
1797 (393),
1798 (394),
1799 (395),
1800 (396),
1801 (397),
1802 (398),
1803 (399),
1804 (400),
1805 (401),
1806 (402),
1807 (403),
1808 (404),
1809 (405),
1810 (406),
1811 (407),
1812 (408),
1813 (409),
1814 (410),
1815 (411),
1816 (412),
1817 (413),
1818 (414),
1819 (415),
1820 (416),
1821 (417),
1822 (418),
1823 (419),
1824 (420),
1825 (421),
1826 (422),
1827 (423),
1828 (424),
1829 (425),
1830 (426),
1831 (427),
1832 (428),
1833 (429),
1834 (430),
1835 (431),
1836 (432),
1837 (433),
1838 (434),
1839 (435),
1840 (436),
1841 (437),
1842 (438),
1843 (439),
1844 (440),
1845 (441),
1846 (442),
1847 (443),
1848 (444),
1849 (445),
1850 (446),
1851 (447),
1852 (448),
1853 (449),
1854 (450),
1855 (451),
1856 (452),
1857 (453),
1858 (454),
1859 (455),
1860 (456),
1861 (457),
1862 (458),
1863 (459),
1864 (460),
1865 (461),
1866 (462),
1867 (463),
1868 (464),
1869 (465),
1870 (466),
1871 (467),
1872 (468),
1873 (469),
1874 (470),
1875 (471),
1876 (472),
1877 (473),
1878 (474),
1879 (475),
1880 (476),
1881 (477),
1882 (478),
1883 (479),
1884 (480),
1885 (481),
1886 (482),
1887 (483),
1888 (484),
1889 (485),
1890 (486),
1891 (487),
1892 (488),
1893 (489),
1894 (490),
1895 (491),
1896 (492),
1897 (493),
1898 (494),
1899 (495),
1900 (496),
1901 (497),
1902 (498),
1903 (499),
1904 (500),
1905 (501),
1906 (502),
1907 (503),
1908 (504),
1909 (505),
1910 (506),
1911 (507),
1912 (508),
1913 (509),
1914 (510),
1915 (511),
1916 (512),
1917 (513),
1918 (514),
1919 (515),
1920 (516),
1921 (517),
1922 (518),
1923 (519),
1924 (520),
1925 (521),
1926 (522),
1927 (523),
1928 (524),
1929 (525),
1930 (526),
1931 (527),
1932 (528),
1933 (529),
1934 (530),
1935 (531),
1936 (532),
1937 (533),
1938 (534),
1939 (535),
1940 (536),
1941 (537),
1942 (538),
1943 (539),
1944 (540),
1945 (541),
1946 (542),
1947 (543),
1948 (544),
1949 (545),
1950 (546),
1951 (547),
1952 (548),
1953 (549),
1954 (550),
1955 (551),
1956 (552),
1957 (553),
1958 (554),
1959 (555),
1960 (556),
1961 (557),
1962 (558),
1963 (559),
1964 (560),
1965 (561),
1966 (562),
1967 (563),
1968 (564),
1969 (565),
1970 (566),
1971 (567),
1972 (568),
1973 (569),
1974 (570),
1975 (571),
1976 (572),
1977 (573),
1978 (574),
1979 (575),
1980 (576),
1981 (577),
1982 (578),
1983 (579),
1984 (580),
1985 (581),
1986 (582),
1987 (583),
1988 (584),
1989 (585),
1990 (586),
1991 (587),
1992 (588),
1993 (589),
1994 (590),
1995 (591),
1996 (592),
1997 (593),
1998 (594),
1999 (595),
2000 (596),
2001 (597),
2002 (598),
2003 (599),
2004 (600),
2005 (601),
2006 (602),
2007 (603),
2008 (604),
2009 (605),
2010 (606),
2011 (607),
2012 (608),
2013 (609),
2014 (610),
2015 (611),
2016 (612),
2017 (613),
2018 (614),
2019 (615),
2020 (616),
2021 (617),
2022 (618),
2023 (619),
2024 (620),
2025 (621),
2026 (622),
2027 (623),
2028 (624),
2029 (625),
2030 (626),
2031 (627),
2032 (628),
2033 (629),
2034 (630),
2035 (631),
2036 (632),
2037 (633),
2038 (634),
2039 (635),
2040 (636),
2041 (637),
2042 (638),
2043 (639),
2044 (640),
2045 (641),
2046 (642),
2047 (643),
2048 (644),
2049 (645),
2050 (646),
2051 (647),
2052 (648),
2053 (649),
2054 (650),
2055 (651),
2056 (652),
2057 (653),
2058 (654),
2059 (655),
2060 (656),
2061 (657),
2062 (658),
2063 (659),
2064 (660),
2065 (661),
2066 (662),
2067 (663),
2068 (664),
2069 (665),
2070 (666),
2071 (667),
2072 (668),
2073 (669),
2074 (670),
2075 (671),
2076 (672),
2077 (673),
2078 (674),
2079 (675),
2080 (676),
2081 (677),
2082 (678),
2083 (679),
2084 (680),
2085 (681),
2086 (682),
2087 (683),
2088 (684),
2089 (685),
2090 (686),
2091 (687),
2092 (688),
2093 (689),
2094 (690),
2095 (691),
2096 (692),
2097 (693),
2098 (694),
2099 (695),
2100 (696),
2101 (697),
2102 (698),
2103 (699),
2104 (700),
2105 (701),
2106 (702),
2107 (703),
2108 (704),
2109 (705),
2110 (706),
2111 (707),
2112 (708),
2113 (709),
2114 (710),
2115 (711),
2116 (712),
2117 (713),
2118 (714),
2119 (715),
2120 (716),
2121 (717),
2122 (718),
2123 (719),
2124 (720),
2125 (721),
2126 (722),
2127 (723),
2128 (724),
2129 (725),
2130 (726),
2131 (727),
2132 (728),
2133 (729),
2134 (730),
2135 (731),
2136 (732),
2137 (733),
2138 (734),
2139 (735),
2140 (736),
2141 (737),
2142 (738),
2143 (739),
2144 (740),
2145 (741),
2146 (742),
2147 (743),
2148 (744),
2149 (745),
2150 (746),
2151 (747),
2152 (748),
2153 (749),
2154 (750),
2155 (751),
2156 (752),
2157 (753),
2158 (754),
2159 (755),
2160 (756),
2161 (757),
2162 (758),
2163 (759),
2164 (760),
2165 (761),
2166 (762),
2167 (763),
2168 (764),
2169 (765),
2170 (766),
2171 (767),
2172 (768),
2173 (769),
2174 (770),
2175 (771),
2176 (772),
2177 (773),
2178 (774),
2179 (775),
2180 (776),
2181 (777),
2182 (778),
2183 (779),
2184 (780),
2185 (781),
2186 (782),
2187 (783),
2188 (784),
2189 (785),
2190 (786),
2191 (787),
2192 (788),
2193 (789),
2194 (790),
2195 (791),
2196 (792),
2197 (793),
2198 (794),
2199 (795),
2200 (796),
2201 (797),
2202 (798),
2203 (799),
2204 (800),
2205 (801),
2206 (802),
2207 (803),
2208 (804),
2209 (805),
2210 (806),
2211 (807),
2212 (808),
2213 (809),
2214 (810),
2215 (811),
2216 (812),
2217 (813),
2218 (814),
2219 (815),
2220 (816),
2221 (817),
2222 (818),
2223 (819),
2224 (820),
2225 (821),
2226 (822),
2227 (823),
2228 (824),
2229 (825),
2230 (826),
2231 (827),
2232 (828),
2233 (829),
2234 (830),
2235 (831),
2236 (832),
2237 (833),
2238 (834),
2239 (835),
2240 (836),
2241 (837),
2242 (838),
2243 (839),
2244 (840),
2245 (841),
2246 (842),
2247 (843),
2248 (844),
2249 (845),
2250 (846),
2251 (847),
2252 (848),
2253 (849),
2254 (850),
2255 (851),
2256 (852),
2257 (853),
2258 (854),
2259 (855),
2260 (856),
2261 (857),
2262 (858),
2263 (859),
2264 (860),
2265 (861),
2266 (862),
2267 (863),
2268 (864),
2269 (865),
2270 (866),
2271 (867),
2272 (868),
2273 (869),
2274 (870),
2275 (871),
2276 (872),
2277 (873),
2278 (874),
2279 (875),
2280 (876),
2281 (877),
2282 (878),
2283 (879),
2284 (880),
2285 (881),
2286 (882),
2287 (883),
2288 (884),
2289 (885),
2290 (886),
2291 (887),
2292 (888),
2293 (889),
2294 (890),
2295 (891),
2296 (892),
2297 (893),
2298 (894),
2299 (895),
2300 (896),
2301 (897),
2302 (898),
2303 (899),
2304 (900),
2305 (901),
2306 (902),
2307 (903),
2308 (904),
2309 (905),
2310 (906),
2311 (907),
2312 (908),
2313 (909),
2314 (910),
2315 (911),
2316 (912),
2317 (913),
2318 (914),
2319 (915),
2320 (916),
2321 (917),
2322 (918),
2323 (919),
2324 (920),
2325 (921),
2326 (922),
2327 (923),
2328 (924),
2329 (925),
2330 (926),
2331 (927),
2332 (928),
2333 (929),
2334 (930),
2335 (931),
2336 (932),
2337 (933),
2338 (934),
2339 (935),
2340 (936),
2341 (937),
2342 (938),
2343 (939),
2344 (940),
2345 (941),
2346 (942),
2347 (943),
2348 (944),
2349 (945),
2350 (946),
2351 (947),
2352 (948),
2353 (949),
2354 (950),
2355 (951),
2356 (952),
2357 (953),
2358 (954),
2359 (955),
2360 (956),
2361 (957),
2362 (958),
2363 (959),
2364 (960),
2365 (961),
2366 (962),
2367 (963),
2368 (964),
2369 (965),
2370 (966),
2371 (967),
2372 (968),
2373 (969),
2374 (970),
2375 (971),
2376 (972),
2377 (973),
2378 (974),
2379 (975),
2380 (976),
2381 (977),
2382 (978),
2383 (979),
2384 (980),
2385 (981),
2386 (982),
2387 (983),
2388 (984),
2389 (985),
2390 (986),
2391 (987),
2392 (988),
2393 (989),
2394 (990),
2395 (991),
2396 (992),
2397 (993),
2398 (994),
2399 (995),
2400 (996),
2401 (997),
2402 (998),
2403 (999),
2404 (1000),
2405 (1001),
2406 (1002),
2407 (1003),
2408 (1004),
2409 (1005),
2410 (1006),
2411 (1007),
2412 (1008),
2413 (1009),
2414 (1010),
2415 (1011),
2416 (1012),
2417 (1013),
2418 (1014),
2419 (1015),
2420 (1016),
2421 (1017),
2422 (1018),
2423 (1019),
2424 (1020),
2425 (1021),
2426 (1022),
2427 (1023),
2428 (1024),
2429 (1025),
2430 (1026),
2431 (1027),
2432 (1028),
2433 (1029),
2434 (1030),
2435 (1031),
2436 (1032),
2437 (1033),
2438 (1034),
2439 (1035),
2440 (1036),
2441 (1037),
2442 (1038),
2443 (1039),
2444 (1040),
2445 (1041),
2446 (1042),
2447 (1043),
2448 (1044),
2449 (1045),
2450 (1046),
2451 (1047),
2452 (1048),
2453 (1049),
2454 (1050),
2455 (1051),
2456 (1052),
2457 (1053),
2458 (1054),
2459 (1055),
2460 (1056),
2461 (1057),
2462 (1058),
2463 (1059),
2464 (1060),
2465 (1061),
2466 (1062),
2467 (1063),
2468 (1064),
2469 (1065),
2470 (1066),
2471 (1067),
2472 (1068),
2473 (1069),
2474 (1070),
2475 (1071),
2476 (1072),
2477 (1073),
2478 (1074),
2479 (1075),
2480 (1076),
2481 (1077),
2482 (1078),
2483 (1079),
2484 (1080),
2485 (1081),
2486 (1082),
2487 (1083),
2488 (1084),
2489 (1085),
2490 (1086),
2491 (1087),
2492 (1088),
2493 (1089),
2494 (1090),
2495 (1091),
2496 (1092),
2497 (1093),
2498 (1094),
2499 (1095),
2500 (1096),
2501 (1097),
2502 (1098),
2503 (1099),
2504 (1100),
2505 (1101),
2506 (1102),
2507 (1103),
2508 (1104),
2509 (1105),
2510 (1106),
2511 (1107),
2512 (1108),
2513 (1109),
2514 (1110),
2515 (1111),
2516 (1112),
2517 (1113),
2518 (1114),
2519 (1115),
2520 (1116),
2521 (1117),
2522 (1118),
2523 (1119),
2524 (1120),
2525 (1121),
2526 (1122),
2527 (1123),
2528 (1124),
2529 (1125),
2530 (1126),
2531 (1127),
2532 (1128),
2533 (1129),
2534 (1130),
2535 (1131),
2536 (1132),
2537 (1133),
2538 (1134),
2539 (1135),
2540 (1136),
2541 (1137),
2542 (1138),
2543 (1139),
2544 (1140),
2545 (1141),
2546 (1142),
2547 (1143),
2548 (1144),
2549 (1145),
2550 (1146),
2551 (1147),
2552 (1148),
2553 (1149),
2554 (1150),
2555 (1151),
2556 (1152),
2557 (1153),
2558 (1154),
2559 (1155),
2560 (1156),
2561 (1157),
2562 (1158),
2563 (1159),
2564 (1160),
2565 (1161),
2566 (1162),
2567 (1163),
2568 (1164),
2569 (1165),
2570 (1166),
2571 (1167),
2572 (1168),
2573 (1169),
2574 (1170),
2575 (1171),
2576 (1172),
2577 (1173),
2578 (1174),
2579 (1175),
2580 (1176),
2581 (1177),
2582 (1178),
2583 (1179),
2584 (1180),
2585 (1181),
2586 (1182),
2587 (1183),
2588 (1184),
2589 (1185),
2590 (1186),
2591 (1187),
2592 (1188),
2593 (1189),
2594 (1190),
2595 (1191),
2596 (1192),
2597 (1193),
2598 (1194),
2599 (1195),
2600 (1196),
2601 (1197),
2602 (1198),
2603 (1199),
2604 (1200),
2605 (1201),
2606 (1202),
2607 (1203),
2608 (1204),
2609 (1205),
2610 (1206),
2611 (1207),
2612 (1208),
2613 (1209),
2614 (1210),
2615 (1211),
2616 (1212),
2617 (1213),
2618 (1214),
2619 (1215),
2620 (1216),
2621 (1217),
2622 (1218),
2623 (1219),
2624 (1220),
2625 (1221),
2626 (1222),
2627 (1223),
2628 (1224),
2629 (1225),
2630 (1226),
2631 (1227),
2632 (1228),
2633 (1229),
2634 (1230),
2635 (1231),
2636 (1232),
2637 (1233),
2638 (1234),
2639 (1235),
2640 (1236),
2641 (1237),
2642 (1238),
2643 (1239),
2644 (1240),
2645 (1241),
2646 (1242),
2647 (1243),
2648 (1244),
2649 (1245),
2650 (1246),
2651 (1247),
2652 (1248),
2653 (1249),
2654 (1250),
2655 (1251),
2656 (1252),
2657 (1253),
2658 (1254),
2659 (1255),
2660 (1256),
2661 (1257),
2662 (1258),
2663 (1259),
2664 (1260),
2665 (1261),
2666 (1262),
2667 (1263),
2668 (1264),
2669 (1265),
2670 (1266),
2671 (1267),
2672 (1268),
2673 (1269),
2674 (1270),
2675 (1271),
2676 (1272),
2677 (1273),
2678 (1274),
2679 (1275),
2680 (1276),
2681 (1277),
2682 (1278),
2683 (1279),
2684 (1280),
2685 (1281),
2686 (1282),
2687 (1283),
2688 (1284),
2689 (1285),
2690 (1286),
2691 (1287),
2692 (1288),
2693 (1289),
2694 (1290),
2695 (1291),
2696 (1292),
2697 (1293),
2698 (1294),
2699 (1295),
2700 (1296),
2701 (1297),
2702 (1298),
2703 (1299),
2704 (1300),
2705 (1301),
2706 (1302),
2707 (1303),
2708 (1304),
2709 (1305),
2710 (1306),
2711 (1307),
2712 (1308),
2713 (1309),
2714 (1310),
2715 (1311),
2716 (1312),
2717 (1313),
2718 (1314),
2719 (1315),
2720 (1316),
2721 (1317),
2722 (1318),
2723 (1319),
2724 (1320),
2725 (1321),
2726 (1322),
2727 (1323),
2728 (1324),
2729 (1325),
2730 (1326),
2731 (1327),
2732 (1328),
2733 (1329),
2734 (1330),
2735 (1331),
2736 (1332),
2737 (1333),
2738 (1334),
2739 (1335),
2740 (1336),
2741 (1337),
2742 (1338),
2743 (1339),
2744 (1340),
2745 (1341),
2746 (1342),
2747 (1343),
2748 (1344),
2749 (1345),
2750 (1346),
2751 (1347),
2752 (1348),
2753 (1349),
2754 (1350),
2755 (1351),
2756 (1352),
2757 (1353),
2758 (1354),
2759 (1355),
2760 (1356),
2761 (1357),
2762 (1358),
2763 (1359),
2764 (1360),
2765 (1361),
2766 (1362),
2767 (1363),
2768 (1364),
2769 (1365),
2770 (1366),
2771 (1367),
2772 (1368),
2773 (1369),
2774 (1370),
2775 (1371),
2776 (1372),
2777 (1373),
2778 (1374),
2779 (1375),
2780 (1376),
2781 (1377),
2782 (1378),
2783 (1379),
2784 (1380),
2785 (1381),
2786 (1382),
2787 (1383),
2788 (1384),
2789 (1385),
2790 (1386),
2791 (1387),
2792 (1388),
2793 (1389),
2794 (1390),
2795 (1391),
2796 (1392),
2797 (1393),
2798 (1394),
2799 (1395),
2800 (1396),
2801 (1397),
2802 (1398),
2803 (1399),
2804 (1400),
2805 (1401),
2806 (1402),
2807 (1403),
2808 (1404),
2809 (1405),
2810 (1406),
2811 (1407),
2812 (1408),
2813 (1409),
2814 (1410),
2815 (1411),
2816 (1412),
2817 (1413),
2818 (1414),
2819 (1415),
2820 (1416),
2821 (1417),
2822 (1418),
2823 (1419),
2824 (1420),
2825 (1421),
2826 (1422),
2827 (1423),
2828 (1424),
2829 (1425),
2830 (1426),
2831 (1427),
2832 (1428),
2833 (1429),
2834 (1430),
2835 (1431),
2836 (1432),
2837 (1433),
2838 (1434),
2839 (1435),
2840 (1436),
2841 (1437),
2842 (1438),
2843 (1439),
2844 (1440),
2845 (1441),
2846 (1442),
2847 (1443),
2848 (1444),
2849 (1445),
2850 (1446),
2851 (1447),
2852 (1448),
2853 (1449),
2854 (1450),
2855 (1451),
2856 (1452),
2857 (1453),
2858 (1454),
2859 (1455),
2860 (1456),
2861 (1457),
2862 (1458),
2863 (1459),
2864 (1460),
2865 (1461),
2866 (1462),
2867 (1463),
2868 (1464),
2869 (1465),
2870 (1466),
2871 (1467),
2872 (1468),
2873 (1469),
2874 (1470),
2875 (1471),
2876 (1472),
2877 (1473),
2878 (1474),
2879 (1475),
2880 (1476),
2881 (1477),
2882 (1478),
2883 (1479),
2884 (1480),
2885 (1481),
2886 (1482),
2887 (1483),
2888 (1484),
2889 (1485),
2890 (1486),
2891 (1487),
2892 (1488),
2893 (1489),
2894 (1490),
2895 (1491),
2896 (1492),
2897 (1493),
2898 (1494),
2899 (1495),
2900 (1496),
2901 (1497),
2902 (1498),
2903 (1499),
2904 (1500),
2905 (1501),
2906 (1502),
2907 (1503),
2908 (1504),
2909 (1505),
2910 (1506),
2911 (1507),
2912 (1508),
2913 (1509),
2914 (1510),
2915 (1511),
2916 (1512),
2917 (1513),
2918 (1514),
2919 (1515),
2920 (1516),
2921 (1517),
2922 (1518),
2923 (1519),
2924 (1520),
2925 (1521),
2926 (1522),
2927 (1523),
2928 (1524),
2929 (1525),
2930 (1526),
2931 (1527),
2932 (1528),
2933 (1529),
2934 (1530),
2935 (1531),
2936 (1532),
2937 (1533),
2938 (1534),
2939 (1535),
2940 (1536),
2941 (1537),
2942 (1538),
2943 (1539),
2944 (1540),
2945 (1541),
2946 (1542),
2947 (1543),
2948 (1544),
2949 (1545),
2950 (1546),
2951 (1547),
2952 (1548),
2953 (1549),
2954 (1550),
2955 (1551),
2956 (1552),
2957 (1553),
2958 (1554),
2959 (1555),
2960 (1556),
2961 (1557),
2962 (1558),
2963 (1559),
2964 (1560),
2965 (1561),
2966 (1562),
2967 (1563),
2968 (1564),
2969 (1565),
2970 (1566),
2971 (1567),
2972 (1568),
2973 (1569),
2974 (1570),
2975 (1571),
2976 (1572),
2977 (1573),
2978 (1574),
2979 (1575),
2980 (1576),
2981 (1577),
2982 (1578),
2983 (1579),
2984 (1580),
2985 (1581),
2986 (1582),
2987 (1583),
2988 (1584),
2989 (1585),
2990 (1586),
2991 (1587),
2992 (1588),
2993 (1589),
2994 (1590),
2995 (1591),
2996 (1592),
2997 (1593),
2998 (1594),
2999 (1595),
3000 (1596),
3001 (1597),
3002 (1598),
3003 (1599),
3004 (1600),
3005 (1601),
3006 (1602),
3007 (1603),
3008 (1604),
3009 (1605),
3010 (1606),
3011 (1607),
3012 (1608),
3013 (1609),
3014 (1610),
3015 (1611),
3016 (1612),
3017 (1613),
3018 (1614),
3019 (1615),
3020 (1616),
3021 (1617),
3022 (1618),
3023 (1619),
3024 (1620),
3025 (1621),
3026 (1622),
3027 (1623),
3028 (1624),
3029 (1625),
3030 (1626),
3031 (1627),
3032 (1628),
3033 (1629),
3034 (1630),
3035 (1631),
3036 (1632),
3037 (1633),
3038 (1634),
3039 (1635),
3040 (1636),
3041 (1637),
3042 (1638),
3043 (1639),
3044 (1640),
3045 (1641),
3046 (1642),
3047 (1643),
3048 (1644),
3049 (1645),
3050 (1646),
3051 (1647),
3052 (1648),
3053 (1649),
3054 (1650),
3055 (1651),
3056 (1652),
3057 (1653),
3058 (1654),
3059 (1655),
3060 (1656),
3061 (1657),
3062 (1658),
3063 (1659),
3064 (1660),
3065 (1661),
3066 (1662),
3067 (1663),
3068 (1664),
3069 (1665),
3070 (1666),
3071 (1667),
3072 (1668),
3073 (1669),
3074 (1670),
3075 (1671),
3076 (1672),
3077 (1673),
3078 (1674),
3079 (1675),
3080 (1676),
3081 (1677),
3082 (1678),
3083 (1679),
3084 (1680),
3085 (1681),
3086 (1682),
3087 (1683),
3088 (1684),
3089 (1685),
3090 (1686),
3091 (1687),
3092 (1688),
3093 (1689),
3094 (1690),
3095 (1691),
3096 (1692),
3097 (1693),
3098 (1694),
3099 (1695),
3100 (1696),
3101 (1697),
3102 (1698),
3103 (1699),
3104 (1700),
3105 (1701),
3106 (1702),
3107 (1703),
3108 (1704),
3109 (1705),
3110 (1706),
3111 (1707),
3112 (1708),
3113 (1709),
3114 (1710),
3115 (1711),
3116 (1712),
3117 (1713),
3118 (1714),
3119 (1715),
3120 (1716),
3121 (1717),
3122 (1718),
3123 (1719),
3124 (1720),
3125 (1721),
3126 (1722),
3127 (1723),
3128 (1724),
3129 (1725),
3130 (1726),
3131 (1727),
3132 (1728),
3133 (1729),
3134 (1730),
3135 (1731),
3136 (1732),
3137 (1733),
3138 (1734),
3139 (1735),
3140 (1736),
3141 (1737),
3142 (1738),
3143 (1739),
3144 (1740),
3145 (1741),
3146 (1742),
3147 (1743),
3148 (1744),
3149 (1745),
3150 (1746),
3151 (1747),
3152 (1748),
3153 (1749),
3154 (1750),
3155 (1751),
3156 (1752),
3157 (1753),
3158 (1754),
3159 (1755),
3160 (1756),
3161 (1757),
3162 (1758),
3163 (1759),
3164 (1760),
3165 (1761),
3166 (1762),
3167 (1763),
3168 (1764),
3169 (1765),
3170 (1766),
3171 (1767),
3172 (1768),
3173 (1769),
3174 (1770),
3175 (1771),
3176 (1772),
3177 (1773),
3178 (1774),
3179 (1775),
3180 (1776),
3181 (1777),
3182 (1778),
3183 (1779),
3184 (1780),
3185 (1781),
3186 (1782),
3187 (1783),
3188 (1784),
3189 (1785),
3190 (1786),
3191 (1787),
3192 (1788),
3193 (1789),
3194 (1790),
3195 (1791),
3196 (1792),
3197 (1793),
3198 (1794),
3199 (1795),
3200 (1796),
3201 (1797),
3202 (1798),
3203 (1799),
3204 (1800),
3205 (1801),
3206 (1802),
3207 (1803),
3208 (1804),
3209 (1805),
3210 (1806),
3211 (1807),
3212 (1808),
3213 (1809),
3214 (1810),
3215 (1811),
3216 (1812),
3217 (1813),
3218 (1814),
3219 (1815),
3220 (1816),
3221 (1817),
3222 (1818),
3223 (1819),
3224 (1820),
3225 (1821),
3226 (1822),
3227 (1823),
3228 (1824),
3229 (1825),
3230 (1826),
3231 (1827),
3232 (1828),
3233 (1829),
3234 (1830),
3235 (1831),
3236 (1832),
3237 (1833),
3238 (1834),
3239 (1835),
3240 (1836),
3241 (1837),
3242 (1838),
3243 (1839),
3244 (1840),
3245 (1841),
3246 (1842),
3247 (1843),
3248 (1844),
3249 (1845),
3250 (1846),
3251 (1847),
3252 (1848),
3253 (1849),
3254 (1850),
3255 (1851),
3256 (1852),
3257 (1853),
3258 (1854),
3259 (1855),
3260 (1856),
3261 (1857),
3262 (1858),
3263 (1859),
3264 (1860),
3265 (1861),
3266 (1862),
3267 (1863),
3268 (1864),
3269 (1865),
3270 (1866),
3271 (1867),
3272 (1868),
3273 (1869),
3274 (1870),
3275 (1871),
3276 (1872),
3277 (1873),
3278 (1874),
3279 (1875),
3280 (1876),
3281 (1877),
3282 (1878),
3283 (1879),
3284 (1880),
3285 (1881),
3286 (1882),
3287 (1883),
3288 (1884),
3289 (1885),
3290 (1886),
3291 (1887),
3292 (1888),
3293 (1889),
3294 (1890),
3295 (1891),
3296 (1892),
3297 (1893),
3298 (1894),
3299 (1895),
3300 (1896),
3301 (1897),
3302 (1898),
3303 (1899),
3304 (1900),
3305 (1901),
3306 (1902),
3307 (1903),
3308 (1904),
3309 (1905),
3310 (1906),
3311 (1907),
3312 (1908),
3313 (1909),
3314 (1910),
3315 (1911),
3316 (1912),
3317 (1913),
3318 (1914),
3319 (1915),
3320 (1916),
3321 (1917),
3322 (1918),
3323 (1919),
3324 (1920),
3325 (1921),
3326 (1922),
3327 (1923),
3328 (1924),
3329 (1925),
3330 (1926),
3331 (1927),
3332 (1928),
3333 (1929),
3334 (1930),
3335 (1931),
3336 (1932),
3337 (1933),
3338 (1934),
3339 (1935),
3340 (1936),
3341 (1937),
3342 (1938),
3343 (1939),
3344 (1940),
3345 (1941),
3346 (1942),
3347 (1943),
3348 (1944),
3349 (1945),
3350 (1946),
3351 (1947),
3352 (1948),
3353 (1949),
3354 (1950),
3355 (1951),
3356 (1952),
3357 (1953),
3358 (1954),
3359 (1955),
3360 (1956),
3361 (1957),
3362 (1958),
3363 (1959),
3364 (1960),
3365 (1961),
3366 (1962),
3367 (1963),
3368 (1964),
3369 (1965),
3370 (1966),
3371 (1967),
3372 (1968),
3373 (1969),
3374 (1970),
3375 (1971),
3376 (1972),
3377 (1973),
3378 (1974),
3379 (1975),
3380 (1976),
3381 (1977),
3382 (1978),
3383 (1979),
3384 (1980),
3385 (1981),
3386 (1982),
3387 (1983),
3388 (1984),
3389 (1985),
3390 (1986),
3391 (1987),
3392 (1988),
3393 (1989),
3394 (1990),
3395 (1991),
3396 (1992),
3397 (1993),
3398 (1994),
3399 (1995),
3400 (1996),
3401 (1997),
3402 (1998),
3403 (1999),
3404 (2000),
3405 (2001),
3406 (2002),
3407 (2003),
3408 (2004),
3409 (2005),
3410 (2006),
3411 (2007),
3412 (2008),
3413 (2009),
3414 (2010),
3415 (2011),
3416 (2012),
3417 (2013),
3418 (2014),
3419 (2015),
3420 (2016),
3421 (2017),
3422 (2018),
3423 (2019),
3424 (2020),
3425 (2021),
3426 (2022),
3427 (2023),
3428 (2024),
3429 (2025),
3430 (2026),
3431 (2027),
3432 (2028),
3433 (2029),
3434 (2030),
3435 (2031),
3436 (2032),
3437 (2033),
3438 (2034),
3439 (2035),
3440 (2036),
3441 (2037),
3442 (2038),
3443 (2039),
3444 (2040),
3445 (2041),
3446 (2042),
3447 (2043),
3448 (2044),
3449 (2045),
3450 (2046),
3451 (2047),
3452 (2048),
3453 (2049),
3454 (2050),
3455 (2051),
3456 (2052),
3457 (2053),
3458 (2054),
3459 (2055),
3460 (2056),
3461 (2057),
3462 (2058),
3463 (2059),
3464 (2060),
3465 (2061),
3466 (2062),
3467 (2063),
3468 (2064),
3469 (2065),
3470 (2066),
3471 (2067),
3472 (2068),
3473 (2069),
3474 (2070),
3475 (2071),
3476 (2072),
3477 (2073),
3478 (2074),
3479 (2075),
3480 (2076),
3481 (2077),
3482 (2078),
3483 (2079),
3484 (2080),
3485 (2081),
3486 (2082),
3487 (2083),
3488 (2084),
3489 (2085),
3490 (2086),
3491 (2087),
3492 (2088),
3493 (2089),
3494 (2090),
3495 (2091),
3496 (2092),
3497 (2093),
3498 (2094),
3499 (2095),
3500 (2096),
3501 (2097),
3502 (2098),
3503 (2099),
3504 (2100),
3505 (2101),
3506 (2102),
3507 (2103),
3508 (2104),
3509 (2105),
3510 (2106),
3511 (2107),
3512 (2108),
3513 (2109),
3514 (2110),
3515 (2111),
3516 (2112),
3517 (2113),
3518 (2114),
3519 (2115),
3520 (2116),
3521 (2117),
3522 (2118),
3523 (2119),
3524 (2120),
3525 (2121),
3526 (2122),
3527 (2123),
3528 (2124),
3529 (2125),
3530 (2126),
3531 (2127),
3532 (2128),
3533 (2129),
3534 (2130),
3535 (2131),
3536 (2132),
3537 (2133),
3538 (2134),
3539 (2135),
3540 (2136),
3541 (2137),
3542 (2138),
3543 (2139),
3544 (2140),
3545 (2141),
3546 (2142),
3547 (2143),
3548 (2144),
3549 (2145),
3550 (2146),
3551 (2147),
3552 (2148),
3553 (2149),
3554 (2150),
3555 (2151),
3556 (2152),
3557 (2153),
3558 (2154),
3559 (2155),
3560 (2156),
3561 (2157),
3562 (2158),
3563 (2159),
3564 (2160),
3565 (2161),
3566 (2162),
3567 (2163),
3568 (2164),
3569 (2165),
3570 (2166),
3571 (2167),
3572 (2168),
3573 (2169),
3574 (2170),
3575 (2171),
3576 (2172),
3577 (2173),
3578 (2174),
3579 (2175),
3580 (2176),
3581 (2177),
3582 (2178),
3583 (2179),
3584 (2180),
3585 (2181),
3586 (2182),
3587 (2183),
3588 (2184),
3589 (2185),
3590 (2186),
3591 (2187),
3592 (2188),
3593 (2189),
3594 (2190),
3595 (2191),
3596 (2192),
3597 (2193),
3598 (2194),
3599 (2195),
3600 (2196),
3601 (2197),
3602 (2198),
3603 (2199),
3604 (2200),
3605 (2201),
3606 (2202),
3607 (2203),
3608 (2204),
3609 (2205),
3610 (2206),
3611 (2207),
3612 (2208),
3613 (2209),
3614 (2210),
3615 (2211),
3616 (2212),
3617 (2213),
3618 (2214),
3619 (2215),
3620 (2216),
3621 (2217),
3622 (2218),
3623 (2219),
3624 (2220),
3625 (2221),
3626 (2222),
3627 (2223),
3628 (2224),
3629 (2225),
3630 (2226),
3631 (2227),
3632 (2228),
3633 (2229),
3634 (2230),
3635 (2231),
3636 (2232),
3637 (2233),
3638 (2234),
3639 (2235),
3640 (2236),
3641 (2237),
3642 (2238),
3643 (2239),
3644 (2240),
3645 (2241),
3646 (2242),
3647 (2243),
3648 (2244),
3649 (2245),
3650 (2246),
3651 (2247),
3652 (2248),
3653 (2249),
3654 (2250),
3655 (2251),
3656 (2252),
3657 (2253),
3658 (2254),
3659 (2255),
3660 (2256),
3661 (2257),
3662 (2258),
3663 (2259),
3664 (2260),
3665 (2261),
3666 (2262),
3667 (2263),
3668 (2264),
3669 (2265),
3670 (2266),
3671 (2267),
3672 (2268),
3673 (2269),
3674 (2270),
3675 (2271),
3676 (2272),
3677 (2273),
3678 (2274),
3679 (2275),
3680 (2276),
3681 (2277),
3682 (2278),
3683 (2279),
3684 (2280),
3685 (2281),
3686 (2282),
3687 (2283),
3688 (2284),
3689 (2285),
3690 (2286),
3691 (2287),
3692 (2288),
3693 (2289),
3694 (2290),
3695 (2291),
3696 (2292),
3697 (2293),
3698 (2294),
3699 (2295),
3700 (2296),
3701 (2297),
3702 (2298),
3703 (2299),
3704 (2300),
3705 (2301),
3706 (2302),
3707 (2303),
3708 (2304),
3709 (2305),
3710 (2306),
3711 (2307),
3712 (2308),
3713 (2309),
3714 (2310),
3715 (2311),
3716 (2312),
3717 (2313),
3718 (2314),
3719 (2315),
3720 (2316),
3721 (2317),
3722 (2318),
3723 (2319),
3724 (2320),
3725 (2321),
3726 (2322),
3727 (2323),
3728 (2324),
3729 (2325),
3730 (2326),
3731 (2327),
3732 (2328),
3733 (2329),
3734 (2330),
3735 (2331),
3736 (2332),
3737 (2333),
3738 (2334),
3739 (2335),
3740 (2336),
3741 (2337),
3742 (2338),
3743 (2339),
3744 (2340),
3745 (2341),
3746 (2342),
3747 (2343),
3748 (2344),
3749 (2345),
3750 (2346),
3751 (2347),
3752 (2348),
3753 (2349),
3754 (2350),
3755 (2351),
3756 (2352),
3757 (2353),
3758 (2354),
3759 (2355),
3760 (2356),
3761 (2357),
3762 (2358),
3763 (2359),
3764 (2360),
3765 (2361),
3766 (2362),
3767 (2363),
3768 (2364),
3769 (2365),
3770 (2366),
3771 (2367),
3772 (2368),
3773 (2369),
3774 (2370),
3775 (2371),
3776 (2372),
3777 (2373),
3778 (2374),
3779 (2375),
3780 (2376),
3781 (2377),
3782 (2378),
3783 (2379),
3784 (2380),
3785 (2381),
3786 (2382),
3787 (2383),
3788 (2384),
3789 (2385),
3790 (2386),
3791 (2387),
3792 (2388),
3793 (2389),
3794 (2390),
3795 (2391),
3796 (2392),
3797 (2393),
3798 (2394),
3799 (2395),
3800 (2396),
3801 (2397),
3802 (2398),
3803 (2399),
3804 (2400),
3805 (2401),
3806 (2402),
3807 (2403),
3808 (2404),
3809 (2405),
3810 (2406),
3811 (2407),
3812 (2408),
3813 (2409),
3814 (2410),
3815 (2411),
3816 (2412),
3817 (2413),
3818 (2414),
3819 (2415),
3820 (2416),
3821 (2417),
3822 (2418),
3823 (2419),
3824 (2420),
3825 (2421),
3826 (2422),
3827 (2423),
3828 (2424),
3829 (2425),
3830 (2426),
3831 (2427),
3832 (2428),
3833 (2429),
3834 (2430),
3835 (2431),
3836 (2432),
3837 (2433),
3838 (2434),
3839 (2435),
3840 (2436),
3841 (2437),
3842 (2438),
3843 (2439),
3844 (2440),
3845 (2441),
3846 (2442),
3847 (2443),
3848 (2444),
3849 (2445),
3850 (2446),
3851 (2447),
3852 (2448),
3853 (2449),
3854 (2450),
3855 (2451),
3856 (2452),
3857 (2453),
3858 (2454),
3859 (2455),
3860 (2456),
3861 (2457),
3862 (2458),
3863 (2459),
3864 (2460),
3865 (2461),
3866 (2462),
3867 (2463),
3868 (2464),
3869 (2465),
3870 (2466),
3871 (2467),
3872 (2468),
3873 (2469),
3874 (2470),
3875 (2471),
3876 (2472),
3877 (2473),
3878 (2474),
3879 (2475),
3880 (2476),
3881 (2477),
3882 (2478),
3883 (2479),
3884 (2480),
3885 (2481),
3886 (2482),
3887 (2483),
3888 (2484),
3889 (2485),
3890 (2486),
3891 (2487),
3892 (2488),
3893 (2489),
3894 (2490),
3895 (2491),
3896 (2492),
3897 (2493),
3898 (2494),
3899 (2495),
3900 (2496),
3901 (2497),
3902 (2498),
3903 (2499),
3904 (2500),
3905 (2501),
3906 (2502),
3907 (2503),
3908 (2504),
3909 (2505),
3910 (2506),
3911 (2507),
3912 (2508),
3913 (2509),
3914 (2510),
3915 (2511),
3916 (2512),
3917 (2513),
3918 (2514),
3919 (2515),
3920 (2516),
3921 (2517),
3922 (2518),
3923 (2519),
3924 (2520),
3925 (2521),
3926 (2522),
3927 (2523),
3928 (2524),
3929 (2525),
3930 (2526),
3931 (2527),
3932 (2528),
3933 (2529),
3934 (2530),
3935 (2531),
3936 (2532),
3937 (2533),
3938 (2534),
3939 (2535),
3940 (2536),
3941 (2537),
3942 (2538),
3943 (2539),
3944 (2540),
3945 (2541),
3946 (2542),
3947 (2543),
3948 (2544),
3949 (2545),
3950 (2546),
3951 (2547),
3952 (2548),
3953 (2549),
3954 (2550),
3955 (2551),
3956 (2552),
3957 (2553),
3958 (2554),
3959 (2555),
3960 (2556),
3961 (2557),
3962 (2558),
3963 (2559),
3964 (2560),
3965 (2561),
3966 (2562),
3967 (2563),
3968 (2564),
3969 (2565),
3970 (2566),
3971 (2567),
3972 (2568),
3973 (2569),
3974 (2570),
3975 (2571),
3976 (2572),
3977 (2573),
3978 (2574),
3979 (2575),
3980 (2576),
3981 (2577),
3982 (2578),
3983 (2579),
3984 (2580),
3985 (2581),
3986 (2582),
3987 (2583),
3988 (2584),
3989 (2585),
3990 (2586),
3991 (2587),
3992 (2588),
3993 (2589),
3994 (2590),
3995 (2591),
3996 (2592),
3997 (2593),
3998 (2594),
3999 (2595),
4000 (2596),
4001 (2597),
4002 (2598),
4003 (2599),
4004 (2600),
4005 (2601),
4006 (2602),
4007 (2603),
4008 (2604),
4009 (2605),
4010 (2606),
4011 (2607),
4012 (2608),
4013 (2609),
4014 (2610),
4015 (2611),
4016 (2612),
4017 (2613),
4018 (2614),
4019 (2615),
4020 (2616),
4021 (2617),
4022 (2618),
4023 (2619),
4024 (2620),
4025 (2621),
4026 (2622),
4027 (2623),
4028 (2624),
4029 (2625),
4030 (2626),
4031 (2627),
4032 (2628),
4033 (2629),
4034 (2630),
4035 (2631),
4036 (2632),
4037 (2633),
4038 (2634),
4039 (2635),
4040 (2636),
4041 (2637),
4042 (2638),
4043 (2639),
4044 (2640),
4045 (2641),
4046 (2642),
4047 (2643),
4048 (2644),
4049 (2645),
4050 (2646),
4051 (2647),
4052 (2648),
4053 (2649),
4054 (2650),
4055 (2651),
4056 (2652),
4057 (2653),
4058 (2654),
4059 (2655),
4060 (2656),
4061 (2657),
4062 (2658),
4063 (2659),
4064 (2660),
4065 (2661),
4066 (2662),
4067 (2663),
4068 (2664),
4069 (2665),
4070 (2666),
4071 (2667),
4072 (2668),
4073 (2669),
4074 (2670),
4075 (2671),
4076 (2672),
4077 (2673),
4078 (2674),
4079 (2675),
4080 (2676),
4081 (2677),
4082 (2678),
4083 (2679),
4084 (2680),
4085 (2681),
4086 (2682),
4087 (2683),
4088 (2684),
4089 (2685),
4090 (2686),
4091 (2687),
4092 (2688),
4093 (2689),
4094 (2690),
4095 (2691),
4096 (2692),
4097 (2693),
4098 (2694),
4099 (2695),
4100 (2696),
4101 (2697),
4102 (2698),
4103 (2699),
4104 (2700),
4105 (2701),
4106 (2702),
4107 (2703),
4108 (2704),
4109 (2705),
4110 (2706),
4111 (2707),
4112 (2708),
4113 (2709),
4114 (2710),
4115 (2711),
4116 (2712),
4117 (2713),
4118 (2714),
4119 (2715),
4120 (2716),
4121 (2717),
4122 (2718),
4123 (2719),
4124 (2720),
4125 (2721),
4126 (2722),
4127 (2723),
4128 (2724),
4129 (2725),
4130 (2726),
4131 (2727),
4132 (2728),
4133 (2729),
4134 (2730),
4135 (2731),
4136 (2732),
4137 (2733),
4138 (2734),
4139 (2735),
4140 (2736),
4141 (2737),
4142 (2738),
4143 (2739),
4144 (2740),
4145 (2741),
4146 (2742),
4147 (2743),
4148 (2744),
4149 (2745),
4150 (2746),
4151 (2747),
4152 (2748),
4153 (2749),
4154 (2750),
4155 (2751),
4156 (2752),
4157 (2753),
4158 (2754),
4159 (2755),
4160 (2756),
4161 (2757),
4162 (2758),
4163 (2759),
4164 (2760),
4165 (2761),
4166 (2762),
4167 (2763),
4168 (2764),
4169 (2765),
4170 (2766),
4171 (2767),
4172 (2768),
4173 (2769),
4174 (2770),
4175 (2771),
4176 (2772),
4177 (2773),
4178 (2774),
4179 (2775),
4180 (2776),
4181 (2777),
4182 (2778),
4183 (2779),
4184 (2780),
4185 (2781),
4186 (2782),
4187 (2783),
4188 (2784),
4189 (2785),
4190 (2786),
4191 (2787),
4192 (2788),
4193 (2789),
4194 (2790),
4195 (2791),
4196 (2792),
4197 (2793),
4198 (2794),
4199 (2795),
4200 (2796),
4201 (2797),
4202 (2798),
4203 (2799),
4204 (2800),
4205 (2801),
4206 (2802),
4207 (2803),
4208 (2804),
4209 (2805),
4210 (2806),
4211 (2807),
4212 (2808),
4213 (2809),
4214 (2810),
4215 (2811),
4216 (2812),
4217 (2813),
4218 (2814),
4219 (2815),
4220 (2816),
4221 (2817),
4222 (2818),
4223 (2819),
4224 (2820),
4225 (2821),
4226 (2822),
4227 (2823),
4228 (2824),
4229 (2825),
4230 (2826),
4231 (2827),
4232 (2828),
4233 (2829),
4234 (2830),
4235 (2831),
4236 (2832),
4237 (2833),
4238 (2834),
4239 (2835),
4240 (2836),
4241 (2837),
4242 (2838),
4243 (2839),
4244 (2840),
4245 (2841),
4246 (2842),
4247 (2843),
4248 (2844),
4249 (2845),
4250 (2846),
4251 (2847),
4252 (2848),
4253 (2849),
4254 (2850),
4255 (2851),
4256 (2852),
4257 (2853),
4258 (2854),
4259 (2855),
4260 (2856),
4261 (2857),
4262 (2858),
4263 (2859),
4264 (2860),
4265 (2861),
4266 (2862),
4267 (2863),
4268 (2864),
4269 (2865),
4270 (2866),
4271 (2867),
4272 (2868),
4273 (2869),
4274 (2870),
4275 (2871),
4276 (2872),
4277 (2873),
4278 (2874),
4279 (2875),
4280 (2876),
4281 (2877),
4282 (2878),
4283 (2879),
4284 (2880),
4285 (2881),
4286 (2882),
4287 (2883),
4288 (2884),
4289 (2885),
4290 (2886),
4291 (2887),
4292 (2888),
4293 (2889),
4294 (2890),
4295 (2891),
4296 (2892),
4297 (2893),
4298 (2894),
4299 (2895),
4300 (2896),
4301 (2897),
4302 (2898),
4303 (2899),
4304 (2900),
4305 (2901),
4306 (2902),
4307 (2903),
4308 (2904),
4309 (2905),
4310 (2906),
4311 (2907),
4312 (2908),
4313 (2909),
4314 (2910),
4315 (2911),
4316 (2912),
4317 (2913),
4318 (2914),
4319 (2915),
4320 (2916),
4321 (2917),
4322 (2918),
4323 (2919),
4324 (2920),
4325 (2921),
4326 (2922),
4327 (2923),
4328 (2924),
4329 (2925),
4330 (2926),
4331 (2927),
4332 (2928),
4333 (2929),
4334 (2930),
4335 (2931),
4336 (2932),
4337 (2933),
4338 (2934),
4339 (2935),
4340 (2936),
4341 (2937),
4342 (2938),
4343 (2939),
4344 (2940),
4345 (2941),
4346 (2942),
4347 (2943),
4348 (2944),
4349 (2945),
4350 (2946),
4351 (2947),
4352 (2948),
4353 (2949),
4354 (2950),
4355 (2951),
4356 (2952),
4357 (2953),
4358 (2954),
4359 (2955),
4360 (2956),
4361 (2957),
4362 (2958),
4363 (2959),
4364 (2960),
4365 (2961),
4366 (2962),
4367 (2963),
4368 (2964),
4369 (2965),
4370 (2966),
4371 (2967),
4372 (2968),
4373 (2969),
4374 (2970),
4375 (2971),
4376 (2972),
4377 (2973),
4378 (2974),
4379 (2975),
4380 (2976),
4381 (2977),
4382 (2978),
4383 (2979),
4384 (2980),
4385 (2981),
4386 (2982),
4387 (2983),
4388 (2984),
4389 (2985),
4390 (2986),
4391 (2987),
4392 (2988),
4393 (2989),
4394 (2990),
4395 (2991),
4396 (2992),
4397 (2993),
4398 (2994),
4399 (2995),
4400 (2996),
4401 (2997),
4402 (2998),
4403 (2999),
4404 (3000),
4405 (3001),
4406 (3002),
4407 (3003),
4408 (3004),
4409 (3005),
4410 (3006),
4411 (3007),
4412 (3008),
4413 (3009),
4414 (3010),
4415 (3011),
4416 (3012),
4417 (3013),
4418 (3014),
4419 (3015),
4420 (3016),
4421 (3017),
4422 (3018),
4423 (3019),
4424 (3020),
4425 (3021),
4426 (3022),
4427 (3023),
4428 (3024),
4429 (3025),
4430 (3026),
4431 (3027),
4432 (3028),
4433 (3029),
4434 (3030),
4435 (3031),
4436 (3032),
4437 (3033),
4438 (3034),
4439 (3035),
4440 (3036),
4441 (3037),
4442 (3038),
4443 (3039),
4444 (3040),
4445 (3041),
4446 (3042),
4447 (3043),
4448 (3044),
4449 (3045),
4450 (3046),
4451 (3047),
4452 (3048),
4453 (3049),
4454 (3050),
4455 (3051),
4456 (3052),
4457 (3053),
4458 (3054),
4459 (3055),
4460 (3056),
4461 (3057),
4462 (3058),
4463 (3059),
4464 (3060),
4465 (3061),
4466 (3062),
4467 (3063),
4468 (3064),
4469 (3065),
4470 (3066),
4471 (3067),
4472 (3068),
4473 (3069),
4474 (3070),
4475 (3071),
4476 (3072),
4477 (3073),
4478 (3074),
4479 (3075),
4480 (3076),
4481 (3077),
4482 (3078),
4483 (3079),
4484 (3080),
4485 (3081),
4486 (3082),
4487 (3083),
4488 (3084),
4489 (3085),
4490 (3086),
4491 (3087),
4492 (3088),
4493 (3089),
4494 (3090),
4495 (3091),
4496 (3092),
4497 (3093),
4498 (3094),
4499 (3095),
4500 (3096),
4501 (3097),
4502 (3098),
4503 (3099),
4504 (3100),
4505 (3101),
4506 (3102),
4507 (3103),
4508 (3104),
4509 (3105),
4510 (3106),
4511 (3107),
4512 (3108),
4513 (3109),
4514 (3110),
4515 (3111),
4516 (3112),
4517 (3113),
4518 (3114),
4519 (3115),
4520 (3116),
4521 (3117),
4522 (3118),
4523 (3119),
4524 (3120),
4525 (3121),
4526 (3122),
4527 (3123),
4528 (3124),
4529 (3125),
4530 (3126),
4531 (3127),
4532 (3128),
4533 (3129),
4534 (3130),
4535 (3131),
4536 (3132),
4537 (3133),
4538 (3134),
4539 (3135),
4540 (3136),
4541 (3137),
4542 (3138),
4543 (3139),
4544 (3140),
4545 (3141),
4546 (3142),
4547 (3143),
4548 (3144),
4549 (3145),
4550 (3146),
4551 (3147),
4552 (3148),
4553 (3149),
4554 (3150),
4555 (3151),
4556 (3152),
4557 (3153),
4558 (3154),
4559 (3155),
4560 (3156),
4561 (3157),
4562 (3158),
4563 (3159),
4564 (3160),
4565 (3161),
4566 (3162),
4567 (3163),
4568 (3164),
4569 (3165),
4570 (3166),
4571 (3167),
4572 (3168),
4573 (3169),
4574 (3170),
4575 (3171),
4576 (3172),
4577 (3173),
4578 (3174),
4579 (3175),
4580 (3176),
4581 (3177),
4582 (3178),
4583 (3179),
4584 (3180),
4585 (3181),
4586 (3182),
4587 (3183),
4588 (3184),
4589 (3185),
4590 (3186),
4591 (3187),
4592 (3188),
4593 (3189),
4594 (3190),
4595 (3191),
4596 (3192),
4597 (3193),
4598 (3194),
4599 (3195),
4600 (3196),
4601 (3197),
4602 (3198),
4603 (3199),
4604 (3200),
4605 (3201),
4606 (3202),
4607 (3203),
4608 (3204),
4609 (3205),
4610 (3206),
4611 (3207),
4612 (3208),
4613 (3209),
4614 (3210),
4615 (3211),
4616 (3212),
4617 (3213),
4618 (3214),
4619 (3215),
4620 (3216),
4621 (3217),
4622 (3218),
4623 (3219),
4624 (3220),
4625 (3221),
4626 (3222),
4627 (3223),
4628 (3224),
4629 (3225),
4630 (3226),
4631 (3227),
4632 (3228),
4633 (3229),
4634 (3230),
4635 (3231),
4636 (3232),
4637 (3233),
4638 (3234),
4639 (3235),
4640 (3236),
4641 (3237),
4642 (3238),
4643 (3239),
4644 (3240),
4645 (3241),
4646 (3242),
4647 (3243),
4648 (3244),
4649 (3245),
4650 (3246),
4651 (3247),
4652 (3248),
4653 (3249),
4654 (3250),
4655 (3251),
4656 (3252),
4657 (3253),
4658 (3254),
4659 (3255),
4660 (3256),
4661 (3257),
4662 (3258),
4663 (3259),
4664 (3260),
4665 (3261),
4666 (3262),
4667 (3263),
4668 (3264),
4669 (3265),
4670 (3266),
4671 (3267),
4672 (3268),
4673 (3269),
4674 (3270),
4675 (3271),
4676 (3272),
4677 (3273),
4678 (3274),
4679 (3275),
4680 (3276),
4681 (3277),
4682 (3278),
4683 (3279),
4684 (3280),
4685 (3281),
4686 (3282),
4687 (3283),
4688 (3284),
4689 (3285),
4690 (3286),
4691 (3287),
4692 (3288),
4693 (3289),
4694 (3290),
4695 (3291),
4696 (3292),
4697 (3293),
4698 (3294),
4699 (3295),
4700 (3296),
4701 (3297),
4702 (3298),
4703 (3299),
4704 (3300),
4705 (3301),
4706 (3302),
4707 (3303),
4708 (3304),
4709 (3305),
4710 (3306),
4711 (3307),
4712 (3308),
4713 (3309),
4714 (3310),
4715 (3311),
4716 (3312),
4717 (3313),
4718 (3314),
4719 (3315),
4720 (3316),
4721 (3317),
4722 (3318),
4723 (3319),
4724 (3320),
4725 (3321),
4726 (3322),
4727 (3323),
4728 (3324),
4729 (3325),
4730 (3326),
4731 (3327),
4732 (3328),
4733 (3329),
4734 (3330),
4735 (3331),
4736 (3332),
4737 (3333),
4738 (3334),
4739 (3335),
4740 (3336),
4741 (3337),
4742 (3338),
4743 (3339),
4744 (3340),
4745 (3341),
4746 (3342),
4747 (3343),
4748 (3344),
4749 (3345),
4750 (3346),
4751 (3347),
4752 (3348),
4753 (3349),
4754 (3350),
4755 (3351),
4756 (3352),
4757 (3353),
4758 (3354),
4759 (3355),
4760 (3356),
4761 (3357),
4762 (3358),
4763 (3359),
4764 (3360),
4765 (3361),
4766 (3362),
4767 (3363),
4768 (3364),
4769 (3365),
4770 (3366),
4771 (3367),
4772 (3368),
4773 (3369),
4774 (3370),
4775 (3371),
4776 (3372),
4777 (3373),
4778 (3374),
4779 (3375),
4780 (3376),
4781 (3377),
4782 (3378),
4783 (3379),
4784 (3380),
4785 (3381),
4786 (3382),
4787 (3383),
4788 (3384),
4789 (3385),
4790 (3386),
4791 (3387),
4792 (3388),
4793 (3389),
4794 (3390),
4795 (3391),
4796 (3392),
4797 (3393),
4798 (3394),
4799 (3395),
4800 (3396),
4801 (3397),
4802 (3398),
4803 (3399),
4804 (3400),
4805 (3401),
4806 (3402),
4807 (3403),
4808 (3404),
4809 (3405),
4810 (3406),
4811 (3407),
4812 (3408),
4813 (3409),
4814 (3410),
4815 (3411),
4816 (3412),
4817 (3413),
4818 (3414),
4819 (3415),
4820 (3416),
4821 (3417),
4822 (3418),
4823 (3419),
4824 (3420),
4825 (3421),
4826 (3422),
4827 (3423),
4828 (3424),
4829 (3425),
4830 (3426),
4831 (3427),
4832 (3428),
4833 (3429),
4834 (3430),
4835 (3431),
4836 (3432),
4837 (3433),
4838 (3434),
4839 (3435),
4840 (3436),
4841 (3437),
4842 (3438),
4843 (3439),
4844 (3440),
4845 (3441),
4846 (3442),
4847 (3443),
4848 (3444),
4849 (3445),
4850 (3446),
4851 (3447),
4852 (3448),
4853 (3449),
4854 (3450),
4855 (3451),
4856 (3452),
4857 (3453),
4858 (3454),
4859 (3455),
4860 (3456),
4861 (3457),
4862 (3458),
4863 (3459),
4864 (3460),
4865 (3461),
4866 (3462),
4867 (3463),
4868 (3464),
4869 (3465),
4870 (3466),
4871 (3467),
4872 (3468),
4873 (3469),
4874 (3470),
4875 (3471),
4876 (3472),
4877 (3473),
4878 (3474),
4879 (3475),
4880 (3476),
4881 (3477),
4882 (3478),
4883 (3479),
4884 (3480),
4885 (3481),
4886 (3482),
4887 (3483),
4888 (3484),
4889 (3485),
4890 (3486),
4891 (3487),
4892 (3488),
4893 (3489),
4894 (3490),
4895 (3491),
4896 (3492),
4897 (3493),
4898 (3494),
4899 (3495),
4900 (3496),
4901 (3497),
4902 (3498),
4903 (3499),
4904 (3500),
4905 (3501),
4906 (3502),
4907 (3503),
4908 (3504),
4909 (3505),
4910 (3506),
4911 (3507),
4912 (3508),
4913 (3509),
4914 (3510),
4915 (3511),
4916 (3512),
4917 (3513),
4918 (3514),
4919 (3515),
4920 (3516),
4921 (3517),
4922 (3518),
4923 (3519),
4924 (3520),
4925 (3521),
4926 (3522),
4927 (3523),
4928 (3524),
4929 (3525),
4930 (3526),
4931 (3527),
4932 (3528),
4933 (3529),
4934 (3530),
4935 (3531),
4936 (3532),
4937 (3533),
4938 (3534),
4939 (3535),
4940 (3536),
4941 (3537),
4942 (3538),
4943 (3539),
4944 (3540),
4945 (3541),
4946 (3542),
4947 (3543),
4948 (3544),
4949 (3545),
4950 (3546),
4951 (3547),
4952 (3548),
4953 (3549),
4954 (3550),
4955 (3551),
4956 (3552),
4957 (3553),
4958 (3554),
4959 (3555),
4960 (3556),
4961 (3557),
4962 (3558),
4963 (3559),
4964 (3560),
4965 (3561),
4966 (3562),
4967 (3563),
4968 (3564),
4969 (3565),
4970 (3566),
4971 (3567),
4972 (3568),
4973 (3569),
4974 (3570),
4975 (3571),
4976 (3572),
4977 (3573),
4978 (3574),
4979 (3575),
4980 (3576),
4981 (3577),
4982 (3578),
4983 (3579),
4984 (3580),
4985 (3581),
4986 (3582),
4987 (3583),
4988 (3584),
4989 (3585),
4990 (3586),
4991 (3587),
4992 (3588),
4993 (3589),
4994 (3590),
4995 (3591),
4996 (3592),
4997 (3593),
4998 (3594),
4999 (3595),
5000 (3596),
5001 (3597),
5002 (3598),
5003 (3599),
5004 (3600),
5005 (3601),
5006 (3602),
5007 (3603),
5008 (3604),
5009 (3605),
5010 (3606),
5011 (3607),
5012 (3608),
5013 (3609),
5014 (3610),
5015 (3611),
5016 (3612),
5017 (3613),
5018 (3614),
5019 (3615),
5020 (3616),
5021 (3617),
5022 (3618),
5023 (3619),
5024 (3620),
5025 (3621),
5026 (3622),
5027 (3623),
5028 (3624),
5029 (3625),
5030 (3626),
5031 (3627),
5032 (3628),
5033 (3629),
5034 (3630),
5035 (3631),
5036 (3632),
5037 (3633),
5038 (3634),
5039 (3635),
5040 (3636),
5041 (3637),
5042 (3638),
5043 (3639),
5044 (3640),
5045 (3641),