diff options
author | Ghaster <defscam@gmail.com> | 2018-10-17 11:16:56 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2018-12-30 19:51:36 +0100 |
commit | bf3ab6d9c4366dae1d34957813e3fbf40ac8532b (patch) | |
tree | 2f070f381fbf39e362a44561d8c0187fa79e4984 | |
parent | 3dbe80ee2e0d1848302bcf34b654693462942639 (diff) |
Core/Creatures: Port trainer changes from master
Closes #20493
32 files changed, 5541 insertions, 539 deletions
diff --git a/sql/base/auth_database.sql b/sql/base/auth_database.sql index b5cf5117002..38df7b4f252 100644 --- a/sql/base/auth_database.sql +++ b/sql/base/auth_database.sql @@ -1496,7 +1496,7 @@ INSERT INTO `rbac_permissions` VALUES (669,'Command: reload mail_loot_template'), (670,'Command: reload milling_loot_template'), (671,'Command: reload npc_spellclick_spells'), -(672,'Command: reload npc_trainer'), +(672,'Command: reload trainer'), (673,'Command: reload npc_vendor'), (674,'Command: reload page_text'), (675,'Command: reload pickpocketing_loot_template'), @@ -1773,7 +1773,8 @@ INSERT INTO `updates` VALUES ('2018_06_23_00_auth.sql','BE35312C386A127D047E5A7CE0D14DB41D905F8E','ARCHIVED','2018-06-23 00:00:00',0), ('2018_08_30_00_auth.sql','22F69864361D3E72F800379338310172C0576D1C','ARCHIVED','2018-08-30 00:00:00',0), ('2018_09_06_00_auth.sql','309D21E0DF82ED8921F77EAFDE741F38AC32BB13','ARCHIVED','2018-09-06 00:00:00',0), -('2018_09_17_00_auth.sql','4DB671F0A4FA1A93AF28FB6426AF13DE72C7DA3D','ARCHIVED','2018-09-17 00:00:00',0); +('2018_09_17_00_auth.sql','4DB671F0A4FA1A93AF28FB6426AF13DE72C7DA3D','ARCHIVED','2018-09-17 00:00:00',0), +('9999_99_99_99_auth.sql','0321AE9AEA00E1AC9C20DD8F5B55ECCF9D32B1B6','ARCHIVED','9999-99-99 00:00:00',0); /*!40000 ALTER TABLE `updates` ENABLE KEYS */; UNLOCK TABLES; diff --git a/sql/updates/auth/3.3.5/9999_99_99_99_auth.sql b/sql/updates/auth/3.3.5/9999_99_99_99_auth.sql new file mode 100644 index 00000000000..ba82aab6838 --- /dev/null +++ b/sql/updates/auth/3.3.5/9999_99_99_99_auth.sql @@ -0,0 +1,3 @@ +-- Port Trainer changes from master to 3.3.5 +DELETE FROM `rbac_permissions` WHERE `id`=672; +INSERT INTO `rbac_permissions` (`id`, `name`) VALUES (672, 'Command: reload trainer'); diff --git a/sql/updates/world/3.3.5/2018_12_30_00_world_335.sql b/sql/updates/world/3.3.5/2018_12_30_00_world_335.sql new file mode 100644 index 00000000000..05d7a4d6702 --- /dev/null +++ b/sql/updates/world/3.3.5/2018_12_30_00_world_335.sql @@ -0,0 +1,4745 @@ +-- Port Trainer changes from master to 3.3.5 + +-- Dumping structure for tabel world.trainer +DROP TABLE IF EXISTS `trainer`; +CREATE TABLE IF NOT EXISTS `trainer` ( + `Id` int(10) unsigned NOT NULL DEFAULT '0', + `Type` tinyint(2) unsigned NOT NULL DEFAULT '2', + `Requirement` mediumint(8) unsigned NOT NULL DEFAULT '0', + `Greeting` text, + `VerifiedBuild` smallint(5) DEFAULT '0', + PRIMARY KEY (`Id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- Dumping data for table world.trainer: 85 rows +INSERT INTO `trainer` (`Id`,`Type`,`Requirement`,`Greeting`,`VerifiedBuild`) VALUES +(200002,0,1,NULL,0), +(200001,0,1,NULL,0), +(200003,0,2,NULL,0), +(200004,0,2,NULL,0), +(200005,0,11,NULL,0), +(200006,0,11,NULL,0), +(200007,0,8,NULL,0), +(200008,0,8,NULL,0), +(200009,0,9,NULL,0), +(200010,0,9,NULL,0), +(200011,0,5,NULL,0), +(200012,0,5,NULL,0), +(200013,0,3,NULL,0), +(200014,0,3,NULL,0), +(200015,0,4,NULL,0), +(200016,0,4,NULL,0), +(200017,0,7,NULL,0), +(200018,0,7,NULL,0), +(200019,0,6,NULL,0), +(200020,0,2,NULL,0), +(200021,0,2,NULL,0), +(201001,2,0,NULL,0), +(201002,2,0,NULL,0), +(201003,2,0,NULL,0), +(201004,2,0,NULL,0), +(201005,2,0,NULL,0), +(201006,2,0,NULL,0), +(201007,2,9788,NULL,0), +(201008,2,9787,NULL,0), +(201009,2,0,NULL,0), +(201010,2,0,NULL,0), +(201011,2,0,NULL,0), +(201012,2,0,NULL,0), +(201013,2,0,NULL,0), +(201014,2,0,NULL,0), +(201015,2,0,NULL,0), +(201016,2,0,NULL,0), +(201017,2,0,NULL,0), +(201018,2,0,NULL,0), +(201019,2,0,NULL,0), +(201020,2,0,NULL,0), +(201021,2,0,NULL,0), +(201022,2,0,NULL,0), +(201023,2,0,NULL,0), +(201024,2,0,NULL,0), +(201025,2,0,NULL,0), +(201026,2,0,NULL,0), +(201027,2,0,NULL,0), +(201028,2,0,NULL,0), +(201029,2,0,NULL,0), +(201030,2,0,NULL,0), +(201031,2,0,NULL,0), +(201032,2,0,NULL,0), +(201033,2,0,NULL,0), +(201034,2,0,NULL,0), +(201035,2,0,NULL,0), +(201036,2,0,NULL,0), +(201037,2,0,NULL,0), +(201038,2,0,NULL,0), +(201039,2,0,NULL,0), +(201040,2,0,NULL,0), +(201041,2,0,NULL,0), +(201042,2,0,NULL,0), +(202001,2,0,NULL,0), +(202002,2,0,NULL,0), +(202003,2,0,NULL,0), +(202004,2,0,NULL,0), +(202005,2,0,NULL,0), +(202006,2,0,NULL,0), +(202007,2,0,NULL,0), +(202008,2,0,NULL,0), +(202009,2,0,NULL,0), +(202011,1,0,NULL,0), +(202012,1,0,NULL,0), +(202010,1,0,NULL,0), +(4732,1,1,NULL,0), +(4752,1,2,NULL,0), +(4772,1,3,NULL,0), +(4753,1,4,NULL,0), +(4773,1,5,NULL,0), +(3690,1,6,NULL,0), +(7954,1,7,NULL,0), +(7953,1,8,NULL,0), +(16280,1,10,NULL,0), +(20914,1,11,NULL,0), +(2485,0,8,NULL,0), +(2489,0,8,NULL,0), +(2492,0,8,NULL,0), +(4165,0,8,NULL,0), +(5957,0,8,NULL,0), +(5958,0,8,NULL,0), +(16654,0,8,NULL,0), +(16755,0,8,NULL,0), +(19340,0,8,NULL,0), +(20791,0,8,NULL,0), +(27703,0,8,NULL,0), +(27705,0,8,NULL,0), +(29156,0,8,NULL,0), +(2704,2,0,NULL,0), +(2818,2,0,NULL,0), +(10370,2,0,NULL,0), +(11865,2,0,NULL,0), +(11866,2,0,NULL,0), +(11867,2,0,NULL,0), +(11868,2,0,NULL,0), +(11869,2,0,NULL,0), +(11870,2,0,NULL,0), +(13084,2,0,NULL,0), +(16621,2,0,NULL,0), +(16773,2,0,NULL,0), +(17005,2,0,NULL,0), +(17215,2,0,NULL,0), +(17634,2,0,NULL,0), +(17637,2,0,NULL,0), +(18752,2,0,NULL,0), +(18775,2,0,NULL,0), +(19186,2,0,NULL,0), +(19576,2,0,NULL,0), +(21493,2,0,NULL,0), +(21494,2,0,NULL,0), +(29506,2,0,NULL,0), +(33677,2,0,NULL,0), +(33996,2,0,NULL,0), +(543,3,0,NULL,0), +(2878,3,0,NULL,0), +(2879,3,0,NULL,0), +(2880,3,0,NULL,0), +(3306,3,0,NULL,0), +(3545,3,0,NULL,0), +(3620,3,0,NULL,0), +(3622,3,0,NULL,0), +(3624,3,0,NULL,0), +(3698,3,0,NULL,0), +(4320,3,0,NULL,0), +(10086,3,0,NULL,0), +(10088,3,0,NULL,0), +(14401,0,0,NULL,0); + +-- Dumping structure for tabel world.trainer_locale +DROP TABLE IF EXISTS `trainer_locale`; +CREATE TABLE IF NOT EXISTS `trainer_locale` ( + `Id` int(10) unsigned NOT NULL DEFAULT '0', + `locale` varchar(4) NOT NULL, + `Greeting_lang` text, + `VerifiedBuild` smallint(5) DEFAULT '0', + PRIMARY KEY (`Id`,`locale`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- Dumping structure for tabel world.trainer_spell +DROP TABLE IF EXISTS `trainer_spell`; +CREATE TABLE IF NOT EXISTS `trainer_spell` ( + `TrainerId` int(10) unsigned NOT NULL DEFAULT '0', + `SpellId` int(10) unsigned NOT NULL DEFAULT '0', + `MoneyCost` int(10) unsigned NOT NULL DEFAULT '0', + `ReqSkillLine` int(10) unsigned NOT NULL DEFAULT '0', + `ReqSkillRank` int(10) unsigned NOT NULL DEFAULT '0', + `ReqAbility1` int(10) unsigned NOT NULL DEFAULT '0', + `ReqAbility2` int(10) unsigned NOT NULL DEFAULT '0', + `ReqAbility3` int(10) unsigned NOT NULL DEFAULT '0', + `ReqLevel` tinyint(3) unsigned NOT NULL DEFAULT '0', + `VerifiedBuild` smallint(5) DEFAULT '0', + PRIMARY KEY (`TrainerId`,`SpellId`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- Dumping data for table world.trainer_spell: 3.573 rows +INSERT INTO `trainer_spell` (`TrainerId`,`SpellId`,`MoneyCost`,`ReqSkillLine`,`ReqSkillRank`,`ReqAbility1`,`ReqAbility2`,`ReqAbility3`,`ReqLevel`,`VerifiedBuild`) VALUES +(200001,34428,100,0,0,0,0,0,6,0), +(200001,6343,100,0,0,0,0,0,6,0), +(200001,6673,10,0,0,0,0,0,1,0), +(200001,772,100,0,0,0,0,0,4,0), +(200001,100,100,0,0,0,0,0,4,0), +(200001,3127,100,0,0,0,0,0,6,0), +(200002,25269,65000,0,0,0,0,0,63,0), +(200002,46845,260000,0,0,0,0,0,71,0), +(200002,47519,260000,0,0,0,0,0,72,0), +(200002,25234,65000,0,0,0,0,0,65,0), +(200002,47439,100000,0,0,0,0,0,74,0), +(200002,11581,60000,0,0,0,0,0,58,0), +(200002,469,65000,0,0,0,0,0,68,0), +(200002,25208,65000,0,0,0,0,0,68,0), +(200002,12678,4000,0,0,0,0,0,20,0), +(200002,5246,6000,0,0,0,0,0,22,0), +(200002,6192,6000,0,0,0,0,0,22,0), +(200002,20252,12000,0,0,0,0,0,30,0), +(200002,6548,12000,0,0,0,0,0,30,0), +(200002,8204,11000,0,0,0,0,0,28,0), +(200002,25202,65000,0,0,0,0,0,62,0), +(200002,25241,65000,0,0,0,0,0,61,0), +(200002,6574,8000,0,0,0,0,0,24,0), +(200002,5308,8000,0,0,0,0,0,24,0), +(200002,6190,8000,0,0,0,0,0,24,0), +(200002,1680,18000,0,0,0,0,0,36,0), +(200002,47501,260000,0,0,0,0,0,73,0), +(200002,25203,71000,0,0,0,0,0,70,0), +(200002,47474,260000,0,0,0,0,0,74,0), +(200002,47465,260000,0,0,0,0,0,76,0), +(200002,20662,58000,0,0,0,0,0,56,0), +(200002,47485,13000,0,0,0,0,0,75,0), +(200002,2048,71000,0,0,0,0,0,69,0), +(200002,23920,65000,0,0,0,0,0,64,0), +(200002,47487,260000,0,0,0,0,0,75,0), +(200002,30324,100000,0,0,0,0,0,70,0), +(200002,20658,14000,0,0,0,0,0,32,0), +(200002,1464,12000,0,0,0,0,0,30,0), +(200002,7369,12000,0,0,0,0,0,30,0), +(200002,871,11000,0,0,0,0,0,28,0), +(200002,1161,10000,0,0,0,0,0,26,0), +(200002,6178,10000,0,0,0,0,0,26,0), +(200002,21553,3100,0,0,0,0,0,60,0), +(200002,30356,71000,0,0,0,0,0,70,0), +(200002,25231,65000,0,0,0,0,0,68,0), +(200002,11549,14000,0,0,0,0,0,32,0), +(200002,30016,3100,0,0,0,0,0,60,0), +(200002,11564,14000,0,0,0,0,0,32,0), +(200002,11567,58000,0,0,0,0,0,56,0), +(200002,11601,56000,0,0,0,0,0,54,0), +(200002,7379,16000,0,0,0,0,0,34,0), +(200002,47470,260000,0,0,0,0,0,73,0), +(200002,11605,56000,0,0,0,0,0,54,0), +(200002,8198,3000,0,0,0,0,0,18,0), +(200002,676,3000,0,0,0,0,0,18,0), +(200002,694,2000,0,0,0,0,0,16,0), +(200002,285,2000,0,0,0,0,0,16,0), +(200002,6572,1500,0,0,0,0,0,14,0), +(200002,1160,1500,0,0,0,0,0,14,0), +(200002,5242,1000,0,0,0,0,0,12,0), +(200002,7384,1000,0,0,0,0,0,12,0), +(200002,8820,20000,0,0,0,0,0,38,0), +(200002,25264,65000,0,0,0,0,0,67,0), +(200002,25258,65000,0,0,0,0,0,66,0), +(200002,25289,65000,0,0,0,0,0,60,0), +(200002,29707,65000,0,0,0,0,0,66,0), +(200002,25286,60000,0,0,0,0,0,60,0), +(200002,23925,62000,0,0,0,0,0,60,0), +(200002,25248,3250,0,0,0,0,0,66,0), +(200002,2565,2000,0,0,0,0,0,16,0), +(200002,11609,42000,0,0,0,0,0,50,0), +(200002,1719,42000,0,0,0,0,0,50,0), +(200002,20661,40000,0,0,0,0,0,48,0), +(200002,11578,36000,0,0,0,0,0,46,0), +(200002,11608,22000,0,0,0,0,0,40,0), +(200002,11572,22000,0,0,0,0,0,40,0), +(200002,20660,22000,0,0,0,0,0,40,0), +(200002,11565,22000,0,0,0,0,0,40,0), +(200002,11600,34000,0,0,0,0,0,44,0), +(200002,750,22000,0,0,0,0,0,40,0), +(200002,23922,22000,0,0,0,0,0,40,0), +(200002,11555,34000,0,0,0,0,0,44,0), +(200002,11550,32000,0,0,0,0,0,42,0), +(200002,6552,20000,0,0,0,0,0,38,0), +(200002,8205,20000,0,0,0,0,0,38,0), +(200002,674,4000,0,0,0,0,0,20,0), +(200002,845,4000,0,0,0,0,0,20,0), +(200002,6547,4000,0,0,0,0,0,20,0), +(200002,20230,4000,0,0,0,0,0,20,0), +(200002,23924,56000,0,0,0,0,0,54,0), +(200002,21552,2800,0,0,0,0,0,54,0), +(200002,11551,54000,0,0,0,0,0,52,0), +(200002,11566,40000,0,0,0,0,0,48,0), +(200002,23923,40000,0,0,0,0,0,48,0), +(200002,21551,2000,0,0,0,0,0,48,0), +(200002,11580,40000,0,0,0,0,0,48,0), +(200002,11573,42000,0,0,0,0,0,50,0), +(200002,47449,260000,0,0,0,0,0,72,0), +(200002,1715,200,0,0,0,0,0,8,0), +(200002,284,200,0,0,0,0,0,8,0), +(200002,47497,5000,0,0,0,0,0,75,0), +(200002,25288,60000,0,0,0,0,0,60,0), +(200002,3411,65000,0,0,0,0,0,70,0), +(200002,11556,56000,0,0,0,0,0,54,0), +(200002,11554,16000,0,0,0,0,0,34,0), +(200002,18499,14000,0,0,0,0,0,32,0), +(200002,30357,260000,0,0,0,0,0,70,0), +(200002,30022,3250,0,0,0,0,0,70,0), +(200002,47450,260000,0,0,0,0,0,76,0), +(200002,20569,62000,0,0,0,0,0,60,0), +(200002,11574,62000,0,0,0,0,0,60,0), +(200002,64382,260000,0,0,0,0,0,71,0), +(200002,6546,600,0,0,0,0,0,10,0), +(200002,72,1000,0,0,0,0,0,12,0), +(200002,2687,600,0,0,0,0,0,10,0), +(200002,25236,71000,0,0,0,0,0,70,0), +(200002,11604,36000,0,0,0,0,0,46,0), +(200002,30330,3500,0,0,0,0,0,70,0), +(200002,55694,100000,0,0,0,0,0,75,0), +(200002,1608,8000,0,0,0,0,0,24,0), +(200002,25242,71000,0,0,0,0,0,69,0), +(200002,47436,260000,0,0,0,0,0,78,0), +(200002,47502,26000,0,0,0,0,0,78,0), +(200002,47520,260000,0,0,0,0,0,77,0), +(200002,57755,100000,0,0,0,0,0,80,0), +(200002,47437,260000,0,0,0,0,0,79,0), +(200002,47471,260000,0,0,0,0,0,80,0), +(200002,47440,260000,0,0,0,0,0,80,0), +(200002,47498,5000,0,0,0,0,0,80,0), +(200002,47488,260000,0,0,0,0,0,80,0), +(200002,47475,260000,0,0,0,0,0,79,0), +(200002,47486,13000,0,0,0,0,0,80,0), +(200002,57823,260000,0,0,0,0,0,80,0), +(200003,465,10,0,0,0,0,0,1,0), +(200003,639,100,0,0,0,0,0,6,0), +(200003,498,100,0,0,0,0,0,6,0), +(200003,20271,100,0,0,0,0,0,4,0), +(200003,19740,100,0,0,0,0,0,4,0), +(200004,48932,200000,0,0,0,0,0,79,0), +(200004,48801,200000,0,0,0,0,0,79,0), +(200004,48785,200000,0,0,0,0,0,79,0), +(200004,48947,200000,0,0,0,0,0,78,0), +(200004,48817,200000,0,0,0,0,0,78,0), +(200004,48788,200000,0,0,0,0,0,78,0), +(200004,48945,200000,0,0,0,0,0,77,0), +(200004,33072,6500,0,0,0,0,0,70,0), +(200004,48938,200000,0,0,0,0,0,77,0), +(200004,48936,200000,0,0,0,0,0,77,0), +(200004,54043,200000,0,0,0,0,0,76,0), +(200004,48943,200000,0,0,0,0,0,76,0), +(200004,53600,200000,0,0,0,0,0,75,0), +(200004,48951,10000,0,0,0,0,0,75,0), +(200004,48826,10000,0,0,0,0,0,75,0), +(200004,48824,10000,0,0,0,0,0,75,0), +(200004,48818,200000,0,0,0,0,0,75,0), +(200004,48952,10000,0,0,0,0,0,80,0), +(200004,48827,10000,0,0,0,0,0,80,0), +(200004,48819,200000,0,0,0,0,0,80,0), +(200004,48806,200000,0,0,0,0,0,80,0), +(200004,48782,200000,0,0,0,0,0,80,0), +(200004,48950,200000,0,0,0,0,0,79,0), +(200004,48942,200000,0,0,0,0,0,79,0), +(200004,48781,200000,0,0,0,0,0,75,0), +(200004,48941,200000,0,0,0,0,0,74,0), +(200004,48805,200000,0,0,0,0,0,74,0), +(200004,48784,200000,0,0,0,0,0,74,0), +(200004,48933,200000,0,0,0,0,0,73,0), +(200004,48931,200000,0,0,0,0,0,73,0), +(200004,48800,200000,0,0,0,0,0,73,0), +(200004,48949,200000,0,0,0,0,0,72,0), +(200004,48935,200000,0,0,0,0,0,71,0), +(200004,48825,10000,0,0,0,0,0,80,0), +(200004,27179,6500,0,0,0,0,0,70,0), +(200004,31884,130000,0,0,0,0,0,70,0), +(200004,48937,200000,0,0,0,0,0,71,0), +(200004,48816,200000,0,0,0,0,0,72,0), +(200004,54428,100000,0,0,0,0,0,71,0), +(200004,27173,130000,0,0,0,0,0,70,0), +(200004,48934,200000,0,0,0,0,0,79,0), +(200004,53601,100000,0,0,0,0,0,80,0), +(200004,27153,130000,0,0,0,0,0,70,0), +(200004,61411,200000,0,0,0,0,0,80,0), +(200004,27149,130000,0,0,0,0,0,70,0), +(200004,27141,100000,0,0,0,0,0,70,0), +(200004,27140,200000,0,0,0,0,0,70,0), +(200004,27136,130000,0,0,0,0,0,70,0), +(200004,27154,110000,0,0,0,0,0,69,0), +(200004,27139,110000,0,0,0,0,0,69,0), +(200004,27180,100000,0,0,0,0,0,68,0), +(200004,27152,100000,0,0,0,0,0,68,0), +(200004,27138,100000,0,0,0,0,0,68,0), +(200004,27150,83000,0,0,0,0,0,66,0), +(200004,27137,83000,0,0,0,0,0,66,0), +(200004,27143,75000,0,0,0,0,0,65,0), +(200004,27142,75000,0,0,0,0,0,65,0), +(200004,27174,3348,0,0,0,0,0,64,0), +(200004,27151,61000,0,0,0,0,0,63,0), +(200004,32223,55000,0,0,0,0,0,62,0), +(200004,27135,55000,0,0,0,0,0,62,0), +(200004,32699,2300,0,0,0,0,0,60,0), +(200004,25918,46000,0,0,0,0,0,60,0), +(200004,25916,46000,0,0,0,0,0,60,0), +(200004,25899,2300,0,0,0,0,0,60,0), +(200004,25898,2300,0,0,0,0,0,60,0), +(200004,25292,46000,0,0,0,0,0,60,0), +(200004,25291,50000,0,0,0,0,0,60,0), +(200004,25290,50000,0,0,0,0,0,60,0), +(200004,24239,46000,0,0,0,0,0,60,0), +(200004,20928,2300,0,0,0,0,0,60,0), +(200004,20924,46000,0,0,0,0,0,60,0), +(200004,20773,46000,0,0,0,0,0,60,0), +(200004,19900,46000,0,0,0,0,0,60,0), +(200004,10318,46000,0,0,0,0,0,60,0), +(200004,10314,46000,0,0,0,0,0,60,0), +(200004,10293,46000,0,0,0,0,0,60,0), +(200004,19943,44000,0,0,0,0,0,58,0), +(200004,20930,2100,0,0,0,0,0,56,0), +(200004,19898,42000,0,0,0,0,0,56,0), +(200004,10301,42000,0,0,0,0,0,56,0), +(200004,25894,46000,0,0,0,0,0,54,0), +(200004,19854,40000,0,0,0,0,0,54,0), +(200004,10329,40000,0,0,0,0,0,54,0), +(200004,10308,40000,0,0,0,0,0,54,0), +(200004,25782,46000,0,0,0,0,0,52,0), +(200004,24274,34000,0,0,0,0,0,52,0), +(200004,19896,34000,0,0,0,0,0,52,0), +(200004,19838,34000,0,0,0,0,0,52,0), +(200004,10313,34000,0,0,0,0,0,52,0), +(200004,20927,1400,0,0,0,0,0,50,0), +(200004,20923,28000,0,0,0,0,0,50,0), +(200004,19942,28000,0,0,0,0,0,50,0), +(200004,10310,28000,0,0,0,0,0,50,0), +(200004,10292,28000,0,0,0,0,0,50,0), +(200004,2812,28000,0,0,0,0,0,50,0), +(200004,20929,1300,0,0,0,0,0,48,0), +(200004,20772,26000,0,0,0,0,0,48,0), +(200004,19899,26000,0,0,0,0,0,48,0), +(200004,10328,24000,0,0,0,0,0,46,0), +(200004,10300,24000,0,0,0,0,0,46,0), +(200004,6940,24000,0,0,0,0,0,46,0), +(200004,24275,22000,0,0,0,0,0,44,0), +(200004,19897,22000,0,0,0,0,0,44,0), +(200004,19853,22000,0,0,0,0,0,44,0), +(200004,10312,22000,0,0,0,0,0,44,0), +(200004,19941,21000,0,0,0,0,0,42,0), +(200004,19837,21000,0,0,0,0,0,42,0), +(200004,4987,21000,0,0,0,0,0,42,0), +(200004,20922,20000,0,0,0,0,0,40,0), +(200004,19895,20000,0,0,0,0,0,40,0), +(200004,5589,20000,0,0,0,0,0,40,0), +(200004,1032,20000,0,0,0,0,0,40,0), +(200004,750,20000,0,0,0,0,0,40,0), +(200004,20166,16000,0,0,0,0,0,38,0), +(200004,10278,16000,0,0,0,0,0,38,0), +(200004,3472,16000,0,0,0,0,0,38,0), +(200004,19891,14000,0,0,0,0,0,36,0), +(200004,10324,14000,0,0,0,0,0,36,0), +(200004,10299,14000,0,0,0,0,0,36,0), +(200004,5615,14000,0,0,0,0,0,36,0), +(200004,19940,13000,0,0,0,0,0,34,0), +(200004,19852,13000,0,0,0,0,0,34,0), +(200004,642,13000,0,0,0,0,0,34,0), +(200004,19888,12000,0,0,0,0,0,32,0), +(200004,19836,12000,0,0,0,0,0,32,0), +(200004,20165,11000,0,0,0,0,0,30,0), +(200004,20116,11000,0,0,0,0,0,30,0), +(200004,19752,11000,0,0,0,0,0,30,0), +(200004,10291,11000,0,0,0,0,0,30,0), +(200004,2800,11000,0,0,0,0,0,30,0), +(200004,1042,11000,0,0,0,0,0,30,0), +(200004,53407,9000,0,0,0,0,0,28,0), +(200004,19876,9000,0,0,0,0,0,28,0), +(200004,5614,9000,0,0,0,0,0,28,0), +(200004,19939,6000,0,0,0,0,0,26,0), +(200004,10298,6000,0,0,0,0,0,26,0), +(200004,1038,6000,0,0,0,0,0,26,0), +(200004,19850,5000,0,0,0,0,0,24,0), +(200004,10326,5000,0,0,0,0,0,24,0), +(200004,10322,5000,0,0,0,0,0,24,0), +(200004,5599,5000,0,0,0,0,0,24,0), +(200004,5588,5000,0,0,0,0,0,24,0), +(200004,20164,4000,0,0,0,0,0,22,0), +(200004,19835,4000,0,0,0,0,0,22,0), +(200004,19746,4000,0,0,0,0,0,22,0), +(200004,1026,4000,0,0,0,0,0,22,0), +(200004,26573,4000,0,0,0,0,0,20,0), +(200004,20217,4000,0,0,0,0,0,20,0), +(200004,19750,4000,0,0,0,0,0,20,0), +(200004,5502,4000,0,0,0,0,0,20,0), +(200004,879,4000,0,0,0,0,0,20,0), +(200004,643,4000,0,0,0,0,0,20,0), +(200004,1044,3500,0,0,0,0,0,18,0), +(200004,62124,3000,0,0,0,0,0,16,0), +(200004,25780,3000,0,0,0,0,0,16,0), +(200004,7294,3000,0,0,0,0,0,16,0), +(200004,31789,4000,0,0,0,0,0,14,0), +(200004,19742,2000,0,0,0,0,0,14,0), +(200004,647,2000,0,0,0,0,0,14,0), +(200004,53408,1000,0,0,0,0,0,12,0), +(200004,19834,1000,0,0,0,0,0,12,0), +(200004,10290,300,0,0,0,0,0,10,0), +(200004,1022,300,0,0,0,0,0,10,0), +(200004,633,300,0,0,0,0,0,10,0), +(200004,3127,100,0,0,0,0,0,8,0), +(200004,1152,100,0,0,0,0,0,8,0), +(200004,853,100,0,0,0,0,0,8,0), +(200004,32700,5000,0,0,0,0,0,70,0), +(200005,5177,100,0,0,0,0,0,6,0), +(200005,467,100,0,0,0,0,0,6,0), +(200005,8921,100,0,0,0,0,0,4,0), +(200005,774,100,0,0,0,0,0,4,0), +(200005,1126,10,0,0,0,0,0,1,0), +(200006,33983,1700,0,0,0,0,0,68,0), +(200006,33987,1900,0,0,0,0,0,68,0), +(200006,26979,90000,0,0,0,0,0,69,0), +(200006,26982,90000,0,0,0,0,0,69,0), +(200006,26985,90000,0,0,0,0,0,69,0), +(200006,50464,200000,0,0,0,0,0,80,0), +(200006,40120,200000,762,300,0,0,0,71,0), +(200006,48565,10000,0,0,0,0,0,75,0), +(200006,53226,10000,0,0,0,0,0,75,0), +(200006,48575,200000,0,0,0,0,0,76,0), +(200006,53199,10000,0,0,0,0,0,70,0), +(200006,48470,200000,0,0,0,0,0,80,0), +(200006,48462,200000,0,0,0,0,0,75,0), +(200006,48561,200000,0,0,0,0,0,72,0), +(200006,49800,200000,0,0,0,0,0,80,0), +(200006,48576,200000,0,0,0,0,0,72,0), +(200006,48562,200000,0,0,0,0,0,77,0), +(200006,52610,200000,0,0,0,0,0,75,0), +(200006,48573,200000,0,0,0,0,0,72,0), +(200006,48468,200000,0,0,0,0,0,80,0), +(200006,50763,200000,0,0,0,0,0,80,0), +(200006,53307,200000,0,0,0,0,0,74,0), +(200006,27012,100000,0,0,0,0,0,70,0), +(200006,53225,1700,0,0,0,0,0,70,0), +(200006,48572,200000,0,0,0,0,0,80,0), +(200006,27013,200000,0,0,0,0,0,70,0), +(200006,48571,200000,0,0,0,0,0,75,0), +(200006,26994,90000,0,0,0,0,0,69,0), +(200006,33786,100000,0,0,0,0,0,70,0), +(200006,53249,10000,0,0,0,0,0,75,0), +(200006,48566,10000,0,0,0,0,0,80,0), +(200006,48568,200000,0,0,0,0,0,80,0), +(200006,48467,200000,0,0,0,0,0,80,0), +(200006,27004,90000,0,0,0,0,0,69,0), +(200006,48451,200000,0,0,0,0,0,80,0), +(200006,48480,200000,0,0,0,0,0,79,0), +(200006,48563,10000,0,0,0,0,0,75,0), +(200006,53248,1700,0,0,0,0,0,70,0), +(200006,48447,200000,0,0,0,0,0,80,0), +(200006,48441,200000,0,0,0,0,0,80,0), +(200006,50213,200000,0,0,0,0,0,79,0), +(200006,48579,200000,0,0,0,0,0,79,0), +(200006,48570,200000,0,0,0,0,0,79,0), +(200006,48378,200000,0,0,0,0,0,79,0), +(200006,53312,200000,0,0,0,0,0,78,0), +(200006,53308,200000,0,0,0,0,0,78,0), +(200006,48577,200000,0,0,0,0,0,78,0), +(200006,48574,200000,0,0,0,0,0,78,0), +(200006,48465,200000,0,0,0,0,0,78,0), +(200006,49803,200000,0,0,0,0,0,77,0), +(200006,48477,200000,0,0,0,0,0,79,0), +(200006,48461,200000,0,0,0,0,0,79,0), +(200006,26991,100000,0,0,0,0,0,70,0), +(200006,48564,10000,0,0,0,0,0,80,0), +(200006,48443,200000,0,0,0,0,0,77,0), +(200006,48463,200000,0,0,0,0,0,80,0), +(200006,50764,90000,0,0,0,0,0,69,0), +(200006,26988,100000,0,0,0,0,0,70,0), +(200006,26990,100000,0,0,0,0,0,70,0), +(200006,26983,100000,0,0,0,0,0,70,0), +(200006,48446,200000,0,0,0,0,0,75,0), +(200006,48440,200000,0,0,0,0,0,75,0), +(200006,49802,200000,0,0,0,0,0,74,0), +(200006,48377,200000,0,0,0,0,0,74,0), +(200006,48578,200000,0,0,0,0,0,73,0), +(200006,48569,200000,0,0,0,0,0,73,0), +(200006,48479,200000,0,0,0,0,0,73,0), +(200006,48567,200000,0,0,0,0,0,73,0), +(200006,48559,200000,0,0,0,0,0,71,0), +(200006,49799,200000,0,0,0,0,0,71,0), +(200006,50212,200000,0,0,0,0,0,71,0), +(200006,48459,200000,0,0,0,0,0,74,0), +(200006,26995,100000,0,0,0,0,0,70,0), +(200006,61384,10000,0,0,0,0,0,80,0), +(200006,53251,10000,0,0,0,0,0,80,0), +(200006,53201,10000,0,0,0,0,0,80,0), +(200006,62078,200000,0,0,0,0,0,71,0), +(200006,48450,200000,0,0,0,0,0,72,0), +(200006,48464,200000,0,0,0,0,0,72,0), +(200006,48442,200000,0,0,0,0,0,71,0), +(200006,53200,10000,0,0,0,0,0,75,0), +(200006,48560,200000,0,0,0,0,0,77,0), +(200006,27002,100000,0,0,0,0,0,70,0), +(200006,48469,200000,0,0,0,0,0,80,0), +(200006,27005,66000,0,0,0,0,0,66,0), +(200006,33950,34000,0,0,33391,0,0,60,0), +(200006,27009,81000,0,0,0,0,0,68,0), +(200006,26989,81000,0,0,0,0,0,68,0), +(200006,27008,73000,0,0,0,0,0,67,0), +(200006,27000,73000,0,0,0,0,0,67,0), +(200006,26996,73000,0,0,0,0,0,67,0), +(200006,26986,73000,0,0,0,0,0,67,0), +(200006,33745,66000,0,0,0,0,0,66,0), +(200006,27006,66000,0,0,0,0,0,66,0), +(200006,33357,59000,0,0,0,0,0,65,0), +(200006,26980,59000,0,0,0,0,0,65,0), +(200006,33763,53000,0,0,0,0,0,64,0), +(200006,27003,53000,0,0,0,0,0,64,0), +(200006,26997,53000,0,0,0,0,0,64,0), +(200006,26992,53000,0,0,0,0,0,64,0), +(200006,26987,48000,0,0,0,0,0,63,0), +(200006,26981,48000,0,0,0,0,0,63,0), +(200006,24248,48000,0,0,0,0,0,63,0), +(200006,26998,43000,0,0,0,0,0,62,0), +(200006,26978,43000,0,0,0,0,0,62,0), +(200006,22570,43000,0,0,0,0,0,62,0), +(200006,27001,39000,0,0,0,0,0,61,0), +(200006,26984,39000,0,0,0,0,0,61,0), +(200006,53223,600,0,0,0,0,0,60,0), +(200006,50765,34000,0,0,0,0,0,60,0), +(200006,31709,34000,0,0,0,0,0,60,0), +(200006,31018,30000,0,0,0,0,0,60,0), +(200006,25299,34000,0,0,0,0,0,60,0), +(200006,25298,34000,0,0,0,0,0,60,0), +(200006,25297,34000,0,0,0,0,0,60,0), +(200006,24977,34000,0,0,0,0,0,60,0), +(200006,21850,34000,0,0,0,0,0,60,0), +(200006,20748,34000,0,0,0,0,0,60,0), +(200006,17402,34000,0,0,0,0,0,60,0), +(200006,9896,34000,0,0,0,0,0,60,0), +(200006,9885,34000,0,0,0,0,0,60,0), +(200006,9863,34000,0,0,0,0,0,60,0), +(200006,9858,34000,0,0,0,0,0,60,0), +(200006,9846,34000,0,0,0,0,0,60,0), +(200006,33986,1700,0,0,0,0,0,58,0), +(200006,33982,1700,0,0,0,0,0,58,0), +(200006,18658,32000,0,0,0,0,0,58,0), +(200006,17329,32000,0,0,0,0,0,58,0), +(200006,9881,32000,0,0,0,0,0,58,0), +(200006,9876,32000,0,0,0,0,0,58,0), +(200006,9867,32000,0,0,0,0,0,58,0), +(200006,9853,32000,0,0,0,0,0,58,0), +(200006,9850,32000,0,0,0,0,0,58,0), +(200006,9841,32000,0,0,0,0,0,58,0), +(200006,9835,32000,0,0,0,0,0,58,0), +(200006,22829,30000,0,0,0,0,0,56,0), +(200006,9889,30000,0,0,0,0,0,56,0), +(200006,9827,30000,0,0,0,0,0,56,0), +(200006,9912,28000,0,0,0,0,0,54,0), +(200006,9910,28000,0,0,0,0,0,54,0), +(200006,9908,28000,0,0,0,0,0,54,0), +(200006,9904,28000,0,0,0,0,0,54,0), +(200006,9901,28000,0,0,0,0,0,54,0), +(200006,9857,28000,0,0,0,0,0,54,0), +(200006,9830,28000,0,0,0,0,0,54,0), +(200006,9898,26000,0,0,0,0,0,52,0), +(200006,9894,26000,0,0,0,0,0,52,0), +(200006,9892,26000,0,0,0,0,0,52,0), +(200006,9840,26000,0,0,0,0,0,52,0), +(200006,9834,26000,0,0,0,0,0,52,0), +(200006,24976,12000,0,0,0,0,0,50,0), +(200006,21849,23000,0,0,0,0,0,50,0), +(200006,20747,23000,0,0,0,0,0,50,0), +(200006,17401,23000,0,0,0,0,0,50,0), +(200006,9888,23000,0,0,0,0,0,50,0), +(200006,9884,23000,0,0,0,0,0,50,0), +(200006,9880,23000,0,0,0,0,0,50,0), +(200006,9875,23000,0,0,0,0,0,50,0), +(200006,9866,23000,0,0,0,0,0,50,0), +(200006,9862,23000,0,0,0,0,0,50,0), +(200006,50766,22000,0,0,0,0,0,48,0), +(200006,22828,22000,0,0,0,0,0,48,0), +(200006,16813,22000,0,0,0,0,0,48,0), +(200006,9856,22000,0,0,0,0,0,48,0), +(200006,9852,22000,0,0,0,0,0,48,0), +(200006,9849,22000,0,0,0,0,0,48,0), +(200006,9845,22000,0,0,0,0,0,48,0), +(200006,9839,20000,0,0,0,0,0,46,0), +(200006,9833,20000,0,0,0,0,0,46,0), +(200006,9829,20000,0,0,0,0,0,46,0), +(200006,9823,20000,0,0,0,0,0,46,0), +(200006,9821,20000,0,0,0,0,0,46,0), +(200006,8983,20000,0,0,0,0,0,46,0), +(200006,8905,20000,0,0,0,0,0,46,0), +(200006,22812,18000,0,0,0,0,0,44,0), +(200006,9758,18000,0,0,0,0,0,44,0), +(200006,9756,18000,0,0,0,0,0,44,0), +(200006,9754,18000,0,0,0,0,0,44,0), +(200006,9752,18000,0,0,0,0,0,44,0), +(200006,1824,18000,0,0,0,0,0,44,0), +(200006,9750,16000,0,0,0,0,0,42,0), +(200006,9747,16000,0,0,0,0,0,42,0), +(200006,9745,16000,0,0,0,0,0,42,0), +(200006,8951,16000,0,0,0,0,0,42,0), +(200006,6787,16000,0,0,0,0,0,42,0), +(200006,62600,4500,0,0,0,0,0,40,0), +(200006,29166,14000,0,0,0,0,0,40,0), +(200006,24975,14000,0,0,0,0,0,40,0), +(200006,22827,14000,0,0,0,0,0,40,0), +(200006,20742,14000,0,0,0,0,0,40,0), +(200006,20719,14000,0,0,0,0,0,40,0), +(200006,16914,14000,0,0,0,0,0,40,0), +(200006,9634,14000,0,0,0,0,0,40,0), +(200006,9000,14000,0,0,0,0,0,40,0), +(200006,8929,14000,0,0,0,0,0,40,0), +(200006,8918,14000,0,0,0,0,0,40,0), +(200006,8910,14000,0,0,0,0,0,40,0), +(200006,8907,14000,0,0,0,0,0,40,0), +(200006,18657,12000,0,0,0,0,0,38,0), +(200006,16812,12000,0,0,0,0,0,38,0), +(200006,8992,12000,0,0,0,0,0,38,0), +(200006,8955,12000,0,0,0,0,0,38,0), +(200006,8903,12000,0,0,0,0,0,38,0), +(200006,6780,12000,0,0,0,0,0,38,0), +(200006,5201,12000,0,0,0,0,0,38,0), +(200006,5196,12000,0,0,0,0,0,38,0), +(200006,50767,11000,0,0,0,0,0,36,0), +(200006,22842,11000,0,0,0,0,0,36,0), +(200006,9493,11000,0,0,0,0,0,36,0), +(200006,9005,11000,0,0,0,0,0,36,0), +(200006,8941,11000,0,0,0,0,0,36,0), +(200006,6793,11000,0,0,0,0,0,36,0), +(200006,8972,10000,0,0,0,0,0,34,0), +(200006,8950,10000,0,0,0,0,0,34,0), +(200006,8928,10000,0,0,0,0,0,34,0), +(200006,8914,10000,0,0,0,0,0,34,0), +(200006,3627,10000,0,0,0,0,0,34,0), +(200006,1823,10000,0,0,0,0,0,34,0), +(200006,769,10000,0,0,0,0,0,34,0), +(200006,22568,8000,0,0,0,0,0,32,0), +(200006,9490,8000,0,0,0,0,0,32,0), +(200006,6785,8000,0,0,0,0,0,32,0), +(200006,6778,8000,0,0,0,0,0,32,0), +(200006,5225,8000,0,0,0,0,0,32,0), +(200006,24974,6000,0,0,0,0,0,30,0), +(200006,20739,6000,0,0,0,0,0,30,0), +(200006,8940,6000,0,0,0,0,0,30,0), +(200006,6800,6000,0,0,0,0,0,30,0), +(200006,6798,6000,0,0,0,0,0,30,0), +(200006,5234,6000,0,0,0,0,0,30,0), +(200006,5180,6000,0,0,0,0,0,30,0), +(200006,740,6000,0,0,0,0,0,30,0), +(200006,16811,5000,0,0,0,0,0,28,0), +(200006,9492,5000,0,0,0,0,0,28,0), +(200006,8998,5000,0,0,0,0,0,28,0), +(200006,8927,5000,0,0,0,0,0,28,0), +(200006,5209,5000,0,0,0,0,0,28,0), +(200006,5195,5000,0,0,0,0,0,28,0), +(200006,3029,5000,0,0,0,0,0,28,0), +(200006,2091,5000,0,0,0,0,0,28,0), +(200006,8949,4500,0,0,0,0,0,26,0), +(200006,6809,4500,0,0,0,0,0,26,0), +(200006,5189,4500,0,0,0,0,0,26,0), +(200006,2893,4500,0,0,0,0,0,26,0), +(200006,1850,4500,0,0,0,0,0,26,0), +(200006,50768,4000,0,0,0,0,0,24,0), +(200006,8939,4000,0,0,0,0,0,24,0), +(200006,5217,4000,0,0,0,0,0,24,0), +(200006,2782,4000,0,0,0,0,0,24,0), +(200006,1822,4000,0,0,0,0,0,24,0), +(200006,1075,4000,0,0,0,0,0,24,0), +(200006,780,4000,0,0,0,0,0,24,0), +(200006,8926,3000,0,0,0,0,0,22,0), +(200006,5221,3000,0,0,0,0,0,22,0), +(200006,5179,3000,0,0,0,0,0,22,0), +(200006,2908,3000,0,0,0,0,0,22,0), +(200006,2090,3000,0,0,0,0,0,22,0), +(200006,20484,2000,0,0,0,0,0,20,0), +(200006,6756,2000,0,0,0,0,0,20,0), +(200006,5215,2000,0,0,0,0,0,20,0), +(200006,5188,2000,0,0,0,0,0,20,0), +(200006,2912,2000,0,0,0,0,0,20,0), +(200006,1735,2000,0,0,0,0,0,20,0), +(200006,1082,2000,0,0,0,0,0,20,0), +(200006,1079,2000,0,0,0,0,0,20,0), +(200006,768,2000,0,0,0,0,0,20,0), +(200006,16857,1900,0,0,0,0,0,18,0), +(200006,16810,1900,0,0,0,0,0,18,0), +(200006,8938,1900,0,0,0,0,0,18,0), +(200006,6808,1900,0,0,0,0,0,18,0), +(200006,2637,1900,0,0,0,0,0,18,0), +(200006,1062,1900,0,0,0,0,0,18,0), +(200006,770,1900,0,0,0,0,0,18,0), +(200006,8925,1800,0,0,0,0,0,16,0), +(200006,1430,1800,0,0,0,0,0,16,0), +(200006,1066,900,0,0,0,0,0,16,0), +(200006,783,6000,0,0,0,0,0,16,0), +(200006,779,1800,0,0,0,0,0,16,0), +(200006,5211,900,0,0,0,0,0,14,0), +(200006,5187,900,0,0,0,0,0,14,0), +(200006,5178,900,0,0,0,0,0,14,0), +(200006,782,900,0,0,0,0,0,14,0), +(200006,50769,800,0,0,0,0,0,12,0), +(200006,8936,800,0,0,0,0,0,12,0), +(200006,5229,800,0,0,0,0,0,12,0), +(200006,16689,300,0,0,0,0,0,10,0), +(200006,8924,300,0,0,0,0,0,10,0), +(200006,5232,300,0,0,0,0,0,10,0), +(200006,1058,300,0,0,0,0,0,10,0), +(200006,99,300,0,0,0,0,0,10,0), +(200006,5186,200,0,0,0,0,0,8,0), +(200006,339,200,0,0,0,0,0,8,0), +(200007,5504,100,0,0,0,0,0,4,0), +(200007,2136,100,0,0,0,0,0,6,0), +(200007,116,100,0,0,0,0,0,4,0), +(200007,1459,10,0,0,0,0,0,1,0), +(200007,587,100,0,0,0,0,0,6,0), +(200007,143,100,0,0,0,0,0,6,0), +(200008,10157,38000,0,0,0,0,0,56,0), +(200008,27075,57000,0,0,0,0,0,63,0), +(200008,27071,57000,0,0,0,0,0,63,0), +(200008,27124,110000,0,0,0,0,0,69,0), +(200008,25306,42000,0,0,0,0,0,62,0), +(200008,27078,46000,0,0,0,0,0,61,0), +(200008,30449,120000,0,0,0,0,0,70,0), +(200008,42846,150000,0,0,0,0,0,79,0), +(200008,33717,150000,0,0,0,0,0,70,0), +(200008,42920,150000,0,0,0,0,0,76,0), +(200008,13020,1748,0,0,0,0,0,52,0), +(200008,42873,150000,0,0,0,0,0,80,0), +(200008,27079,120000,0,0,0,0,0,70,0), +(200008,27074,120000,0,0,0,0,0,70,0), +(200008,44781,15000,0,0,0,0,0,80,0), +(200008,27072,110000,0,0,0,0,0,69,0), +(200008,18809,2100,0,0,0,0,0,60,0), +(200008,42832,150000,0,0,0,0,0,74,0), +(200008,43002,150000,0,0,0,0,0,80,0), +(200008,66,96000,0,0,0,0,0,68,0), +(200008,33405,6000,0,0,0,0,0,70,0), +(200008,44780,10000,0,0,0,0,0,70,0), +(200008,33043,2500,0,0,0,0,0,70,0), +(200008,43987,120000,0,0,0,0,0,70,0), +(200008,1008,1800,0,0,0,0,0,18,0), +(200008,33946,110000,0,0,0,0,0,69,0), +(200008,8461,10000,0,0,0,0,0,32,0), +(200008,33933,6000,0,0,0,0,0,70,0), +(200008,8492,12000,0,0,0,0,0,34,0), +(200008,8427,13000,0,0,0,0,0,36,0), +(200008,8402,13000,0,0,0,0,0,36,0), +(200008,8407,10000,0,0,0,0,0,32,0), +(200008,8416,10000,0,0,0,0,0,32,0), +(200008,8422,10000,0,0,0,0,0,32,0), +(200008,10160,32000,0,0,0,0,0,50,0), +(200008,10173,28000,0,0,0,0,0,48,0), +(200008,10053,28000,0,0,0,0,0,48,0), +(200008,10156,18000,0,0,0,0,0,42,0), +(200008,10185,23000,0,0,0,0,0,44,0), +(200008,10211,28000,0,0,0,0,0,48,0), +(200008,22782,1400,0,0,0,0,0,46,0), +(200008,13031,1700,0,0,0,0,0,46,0), +(200008,10205,26000,0,0,0,0,0,46,0), +(200008,10201,26000,0,0,0,0,0,46,0), +(200008,10148,18000,0,0,0,0,0,42,0), +(200008,13018,400,0,0,0,0,0,36,0), +(200008,8495,13000,0,0,0,0,0,36,0), +(200008,3552,14000,0,0,0,0,0,38,0), +(200008,8451,13000,0,0,0,0,0,36,0), +(200008,12824,2000,0,0,0,0,0,20,0), +(200008,12051,2000,0,0,0,0,0,20,0), +(200008,7322,2000,0,0,0,0,0,20,0), +(200008,8400,4000,0,0,0,0,0,24,0), +(200008,6129,10000,0,0,0,0,0,32,0), +(200008,2948,3000,0,0,0,0,0,22,0), +(200008,2138,3000,0,0,0,0,0,22,0), +(200008,1461,7000,0,0,0,0,0,28,0), +(200008,6143,3000,0,0,0,0,0,22,0), +(200008,205,200,0,0,0,0,0,8,0), +(200008,2120,1500,0,0,0,0,0,16,0), +(200008,2137,900,0,0,0,0,0,14,0), +(200008,604,600,0,0,0,0,0,12,0), +(200008,5143,200,0,0,0,0,0,8,0), +(200008,10150,36000,0,0,0,0,0,54,0), +(200008,145,600,0,0,0,0,0,12,0), +(200008,5505,400,0,0,0,0,0,10,0), +(200008,23028,38000,0,0,0,0,0,56,0), +(200008,10,2000,0,0,0,0,0,20,0), +(200008,543,2000,0,0,0,0,0,20,0), +(200008,42914,150000,0,0,0,0,0,78,0), +(200008,130,600,0,0,0,0,0,12,0), +(200008,12825,15000,0,0,0,0,0,40,0), +(200008,27101,96000,0,0,0,0,0,68,0), +(200008,42858,150000,0,0,0,0,0,73,0), +(200008,42945,7500,0,0,0,0,0,80,0), +(200008,42950,7500,0,0,0,0,0,80,0), +(200008,8406,5000,0,0,0,0,0,26,0), +(200008,38692,150000,0,0,0,0,0,70,0), +(200008,43039,7500,0,0,0,0,0,80,0), +(200008,42956,150000,0,0,0,0,0,80,0), +(200008,6117,13000,0,0,0,0,0,34,0), +(200008,8457,8000,0,0,0,0,0,30,0), +(200008,8445,12000,0,0,0,0,0,34,0), +(200008,865,5000,0,0,0,0,0,26,0), +(200008,27134,2500,0,0,0,0,0,64,0), +(200008,28609,42000,0,0,0,0,0,60,0), +(200008,25345,42000,0,0,0,0,0,60,0), +(200008,25304,42000,0,0,0,0,0,60,0), +(200008,10139,32000,0,0,0,0,0,50,0), +(200008,43017,150000,0,0,0,0,0,77,0), +(200008,10230,36000,0,0,0,0,0,54,0), +(200008,10202,36000,0,0,0,0,0,54,0), +(200008,10186,35000,0,0,0,0,0,52,0), +(200008,10199,36000,0,0,0,0,0,54,0), +(200008,8458,15000,0,0,0,0,0,40,0), +(200008,55359,5000,0,0,0,0,0,70,0), +(200008,8437,3000,0,0,0,0,0,22,0), +(200008,10212,38000,0,0,0,0,0,56,0), +(200008,10181,38000,0,0,0,0,0,56,0), +(200008,10206,35000,0,0,0,0,0,52,0), +(200008,1460,900,0,0,0,0,0,14,0), +(200008,1449,900,0,0,0,0,0,14,0), +(200008,43010,150000,0,0,0,0,0,78,0), +(200008,27131,96000,0,0,0,0,0,68,0), +(200008,597,600,0,0,0,0,0,12,0), +(200008,837,900,0,0,0,0,0,14,0), +(200008,6127,8000,0,0,0,0,0,30,0), +(200008,42940,150000,0,0,0,0,0,80,0), +(200008,10216,38000,0,0,0,0,0,56,0), +(200008,42843,150000,0,0,0,0,0,75,0), +(200008,42917,150000,0,0,0,0,0,75,0), +(200008,43023,150000,0,0,0,0,0,71,0), +(200008,55342,150000,0,0,0,0,0,80,0), +(200008,43038,7500,0,0,0,0,0,75,0), +(200008,3140,1800,0,0,0,0,0,18,0), +(200008,7300,400,0,0,0,0,0,10,0), +(200008,27133,3500,0,0,0,0,0,65,0), +(200008,27087,70000,0,0,0,0,0,65,0), +(200008,27073,70000,0,0,0,0,0,65,0), +(200008,33042,2200,0,0,0,0,0,64,0), +(200008,30451,63000,0,0,0,0,0,64,0), +(200008,32796,120000,0,0,0,0,0,70,0), +(200008,38704,100000,0,0,0,0,0,70,0), +(200008,27132,3900,0,0,0,0,0,66,0), +(200008,27070,78000,0,0,0,0,0,66,0), +(200008,42841,150000,0,0,0,0,0,75,0), +(200008,12525,1400,0,0,0,0,0,48,0), +(200008,42931,150000,0,0,0,0,0,79,0), +(200008,13021,2100,0,0,0,0,0,60,0), +(200008,12826,42000,0,0,0,0,0,60,0), +(200008,10225,42000,0,0,0,0,0,60,0), +(200008,10220,42000,0,0,0,0,0,60,0), +(200008,10193,42000,0,0,0,0,0,60,0), +(200008,10187,42000,0,0,0,0,0,60,0), +(200008,10174,42000,0,0,0,0,0,60,0), +(200008,10151,42000,0,0,0,0,0,60,0), +(200008,10140,42000,0,0,0,0,0,60,0), +(200008,42913,150000,0,0,0,0,0,72,0), +(200008,10192,35000,0,0,0,0,0,52,0), +(200008,42842,150000,0,0,0,0,0,79,0), +(200008,43045,150000,0,0,0,0,0,71,0), +(200008,33938,7500,0,0,0,0,0,70,0), +(200008,38697,150000,0,0,0,0,0,70,0), +(200008,42896,150000,0,0,0,0,0,76,0), +(200008,10215,28000,0,0,0,0,0,48,0), +(200008,42926,150000,0,0,0,0,0,79,0), +(200008,8450,4000,0,0,0,0,0,24,0), +(200008,10159,18000,0,0,0,0,0,42,0), +(200008,33944,100000,0,0,0,0,0,67,0), +(200008,42995,150000,0,0,0,0,0,80,0), +(200008,42949,7500,0,0,0,0,0,75,0), +(200008,45438,8000,0,0,0,0,0,30,0), +(200008,42944,7500,0,0,0,0,0,75,0), +(200008,42955,150000,0,0,0,0,0,75,0), +(200008,6141,7000,0,0,0,0,0,28,0), +(200008,118,200,0,0,0,0,0,8,0), +(200008,759,7000,0,0,0,0,0,28,0), +(200008,1463,2000,0,0,0,0,0,20,0), +(200008,122,400,0,0,0,0,0,10,0), +(200008,8438,8000,0,0,0,0,0,30,0), +(200008,8444,7000,0,0,0,0,0,28,0), +(200008,8401,8000,0,0,0,0,0,30,0), +(200008,7302,8000,0,0,0,0,0,30,0), +(200008,8412,8000,0,0,0,0,0,30,0), +(200008,12522,400,0,0,0,0,0,30,0), +(200008,120,5000,0,0,0,0,0,26,0), +(200008,12505,100,0,0,0,0,0,24,0), +(200008,10145,35000,0,0,0,0,0,52,0), +(200008,42891,7500,0,0,0,0,0,77,0), +(200008,43020,150000,0,0,0,0,0,79,0), +(200008,42921,150000,0,0,0,0,0,80,0), +(200008,42897,150000,0,0,0,0,0,80,0), +(200008,27127,100000,0,0,0,0,0,70,0), +(200008,43008,150000,0,0,0,0,0,79,0), +(200008,58659,150000,0,0,0,0,0,80,0), +(200008,38699,87000,0,0,0,0,0,69,0), +(200008,10161,40000,0,0,0,0,0,58,0), +(200008,10054,40000,0,0,0,0,0,58,0), +(200008,33041,1900,0,0,0,0,0,56,0), +(200008,28612,42000,0,0,0,0,0,60,0), +(200008,27128,110000,0,0,0,0,0,69,0), +(200008,27125,110000,0,0,0,0,0,69,0), +(200008,13019,1148,0,0,0,0,0,44,0), +(200008,10170,36000,0,0,0,0,0,54,0), +(200008,10177,35000,0,0,0,0,0,52,0), +(200008,55360,7500,0,0,0,0,0,80,0), +(200008,12526,1800,0,0,0,0,0,54,0), +(200008,42894,150000,0,0,0,0,0,71,0), +(200008,10219,32000,0,0,0,0,0,50,0), +(200008,10223,32000,0,0,0,0,0,50,0), +(200008,42939,150000,0,0,0,0,0,74,0), +(200008,42872,150000,0,0,0,0,0,74,0), +(200008,43019,150000,0,0,0,0,0,73,0), +(200008,10180,32000,0,0,0,0,0,50,0), +(200008,42985,150000,0,0,0,0,0,77,0), +(200008,42859,150000,0,0,0,0,0,78,0), +(200008,42833,150000,0,0,0,0,0,78,0), +(200008,22783,40000,0,0,0,0,0,58,0), +(200008,13033,2000,0,0,0,0,0,58,0), +(200008,10207,40000,0,0,0,0,0,58,0), +(200008,30482,51000,0,0,0,0,0,62,0), +(200008,27080,51000,0,0,0,0,0,62,0), +(200008,43024,150000,0,0,0,0,0,79,0), +(200008,12524,900,0,0,0,0,0,42,0), +(200008,8408,14000,0,0,0,0,0,38,0), +(200008,8417,15000,0,0,0,0,0,40,0), +(200008,30455,78000,0,0,0,0,0,66,0), +(200008,10144,18000,0,0,0,0,0,42,0), +(200008,10138,15000,0,0,0,0,0,40,0), +(200008,8462,18000,0,0,0,0,0,42,0), +(200008,8446,15000,0,0,0,0,0,40,0), +(200008,8413,14000,0,0,0,0,0,38,0), +(200008,8423,15000,0,0,0,0,0,40,0), +(200008,10191,23000,0,0,0,0,0,44,0), +(200008,12523,650,0,0,0,0,0,36,0), +(200008,8439,14000,0,0,0,0,0,38,0), +(200008,8455,8000,0,0,0,0,0,30,0), +(200008,27086,63000,0,0,0,0,0,64,0), +(200008,27130,57000,0,0,0,0,0,63,0), +(200008,6131,15000,0,0,0,0,0,40,0), +(200008,990,3000,0,0,0,0,0,22,0), +(200008,475,1800,0,0,0,0,0,18,0), +(200008,5144,1500,0,0,0,0,0,16,0), +(200008,8494,7000,0,0,0,0,0,28,0), +(200008,2139,4000,0,0,0,0,0,24,0), +(200008,2121,4000,0,0,0,0,0,24,0), +(200008,27126,120000,0,0,0,0,0,70,0), +(200008,27090,150000,0,0,0,0,0,70,0), +(200008,27082,120000,0,0,0,0,0,70,0), +(200008,47610,150000,0,0,0,0,0,80,0), +(200008,27085,96000,0,0,0,0,0,68,0), +(200008,13032,1748,0,0,0,0,0,52,0), +(200008,44614,150000,0,0,0,0,0,75,0), +(200008,37420,70000,0,0,0,0,0,65,0), +(200008,27088,87000,0,0,0,0,0,67,0), +(200008,7301,2000,0,0,0,0,0,20,0), +(200008,5506,2000,0,0,0,0,0,20,0), +(200008,1953,2000,0,0,0,0,0,20,0), +(200008,10149,28000,0,0,0,0,0,48,0), +(200008,10197,26000,0,0,0,0,0,46,0), +(200008,7320,15000,0,0,0,0,0,40,0), +(200008,5145,4000,0,0,0,0,0,24,0), +(200008,10179,23000,0,0,0,0,0,44,0), +(200008,10169,18000,0,0,0,0,0,42,0), +(200008,42925,150000,0,0,0,0,0,72,0), +(200008,42890,7500,0,0,0,0,0,73,0), +(200008,43015,150000,0,0,0,0,0,76,0), +(200008,43012,150000,0,0,0,0,0,79,0), +(200008,43046,150000,0,0,0,0,0,79,0), +(200008,42930,150000,0,0,0,0,0,72,0), +(200009,1454,100,0,0,0,0,0,6,0), +(200009,695,100,0,0,0,0,0,6,0), +(200009,702,100,0,0,0,0,0,4,0), +(200009,172,100,0,0,0,0,0,4,0), +(200009,348,10,0,0,0,0,0,3,0), +(200009,688,100,0,0,0,0,0,1,0), +(200010,47859,160000,0,0,0,0,0,73,0), +(200010,47864,160000,0,0,0,0,0,79,0), +(200010,47892,160000,0,0,0,0,0,74,0), +(200010,47837,100000,0,0,0,0,0,74,0), +(200010,47814,160000,0,0,0,0,0,74,0), +(200010,47847,8000,0,0,0,0,0,80,0), +(200010,47871,160000,0,0,0,0,0,73,0), +(200010,47863,160000,0,0,0,0,0,73,0), +(200010,61191,70000,0,0,0,0,0,72,0), +(200010,47890,160000,0,0,0,0,0,72,0), +(200010,47888,160000,0,0,0,0,0,78,0), +(200010,47865,160000,0,0,0,0,0,78,0), +(200010,61290,10000,0,0,0,0,0,80,0), +(200010,47811,160000,0,0,0,0,0,80,0), +(200010,47893,160000,0,0,0,0,0,79,0), +(200010,47878,160000,0,0,0,0,0,79,0), +(200010,48018,160000,0,0,0,0,0,80,0), +(200010,47812,160000,0,0,0,0,0,71,0), +(200010,27238,78000,0,0,0,0,0,70,0), +(200010,60220,160000,0,0,0,0,0,80,0), +(200010,59172,8000,0,0,0,0,0,80,0), +(200010,47808,160000,0,0,0,0,0,74,0), +(200010,47815,160000,0,0,0,0,0,79,0), +(200010,47809,160000,0,0,0,0,0,79,0), +(200010,47891,160000,0,0,0,0,0,78,0), +(200010,59161,2500,0,0,0,0,0,70,0), +(200010,30910,78000,0,0,0,0,0,70,0), +(200010,30546,3900,0,0,0,0,0,70,0), +(200010,30545,78000,0,0,0,0,0,70,0), +(200010,32231,78000,0,0,0,0,0,70,0), +(200010,30459,78000,0,0,0,0,0,70,0), +(200010,30414,2500,0,0,0,0,0,70,0), +(200010,30405,2500,0,0,0,0,0,70,0), +(200010,27265,1300,0,0,0,0,0,70,0), +(200010,27260,78000,0,0,0,0,0,70,0), +(200010,50511,160000,0,0,0,0,0,71,0), +(200010,47886,160000,0,0,0,0,0,72,0), +(200010,47819,160000,0,0,0,0,0,72,0), +(200010,47846,8000,0,0,0,0,0,75,0), +(200010,60219,160000,0,0,0,0,0,74,0), +(200010,47884,160000,0,0,0,0,0,76,0), +(200010,47856,160000,0,0,0,0,0,76,0), +(200010,59163,8000,0,0,0,0,0,75,0), +(200010,47897,10000,0,0,0,0,0,75,0), +(200010,47836,160000,0,0,0,0,0,80,0), +(200010,47825,160000,0,0,0,0,0,80,0), +(200010,47889,160000,0,0,0,0,0,80,0), +(200010,47867,160000,0,0,0,0,0,80,0), +(200010,47827,8000,0,0,0,0,0,80,0), +(200010,27243,78000,0,0,0,0,0,70,0), +(200010,47843,8000,0,0,0,0,0,80,0), +(200010,47838,100000,0,0,0,0,0,80,0), +(200010,47820,160000,0,0,0,0,0,79,0), +(200010,47793,160000,0,0,0,0,0,76,0), +(200010,59171,8000,0,0,0,0,0,75,0), +(200010,47824,160000,0,0,0,0,0,75,0), +(200010,47810,160000,0,0,0,0,0,75,0), +(200010,47860,160000,0,0,0,0,0,78,0), +(200010,47857,160000,0,0,0,0,0,78,0), +(200010,47823,160000,0,0,0,0,0,78,0), +(200010,47855,160000,0,0,0,0,0,77,0), +(200010,47813,160000,0,0,0,0,0,77,0), +(200010,47841,8000,0,0,0,0,0,75,0), +(200010,47835,160000,0,0,0,0,0,75,0), +(200010,47826,8000,0,0,0,0,0,75,0), +(200010,59164,8000,0,0,0,0,0,80,0), +(200010,59092,160000,0,0,0,0,0,80,0), +(200010,48020,160000,0,0,0,0,0,80,0), +(200010,57946,160000,0,0,0,0,0,80,0), +(200010,59170,2500,0,0,0,0,0,70,0), +(200010,58887,160000,0,0,0,0,0,80,0), +(200010,30909,70000,0,0,0,0,0,69,0), +(200010,28189,70000,0,0,0,0,0,69,0), +(200010,27228,70000,0,0,0,0,0,69,0), +(200010,27220,70000,0,0,0,0,0,69,0), +(200010,27215,70000,0,0,0,0,0,69,0), +(200010,27212,70000,0,0,0,0,0,69,0), +(200010,27209,70000,0,0,0,0,0,69,0), +(200010,29893,63000,0,0,0,0,0,68,0), +(200010,27230,63000,0,0,0,0,0,68,0), +(200010,27223,63000,0,0,0,0,0,68,0), +(200010,27222,56700,0,0,0,0,0,68,0), +(200010,27213,63000,0,0,0,0,0,68,0), +(200010,27259,57000,0,0,0,0,0,67,0), +(200010,27218,57000,0,0,0,0,0,67,0), +(200010,27217,57000,0,0,0,0,0,67,0), +(200010,29858,51000,0,0,0,0,0,66,0), +(200010,28172,51000,0,0,0,0,0,66,0), +(200010,27250,51000,0,0,0,0,0,66,0), +(200010,27216,46000,0,0,0,0,0,65,0), +(200010,27210,46000,0,0,0,0,0,65,0), +(200010,29722,42000,0,0,0,0,0,64,0), +(200010,27211,42000,0,0,0,0,0,64,0), +(200010,27263,1300,0,0,0,0,0,63,0), +(200010,28176,34000,0,0,0,0,0,62,0), +(200010,27219,30000,0,0,0,0,0,62,0), +(200010,25307,26000,0,0,0,0,0,62,0), +(200010,27224,30000,0,0,0,0,0,61,0), +(200010,30413,2500,0,0,0,0,0,60,0), +(200010,30404,2500,0,0,0,0,0,60,0), +(200010,28610,34000,0,0,0,0,0,60,0), +(200010,25311,26000,0,0,0,0,0,60,0), +(200010,25309,26000,0,0,0,0,0,60,0), +(200010,20757,26000,0,0,0,0,0,60,0), +(200010,18938,1300,0,0,0,0,0,60,0), +(200010,17728,26000,0,0,0,0,0,60,0), +(200010,11735,26000,0,0,0,0,0,60,0), +(200010,11722,26000,0,0,0,0,0,60,0), +(200010,11695,26000,0,0,0,0,0,60,0), +(200010,11668,26000,0,0,0,0,0,60,0), +(200010,11661,26000,0,0,0,0,0,60,0), +(200010,603,26000,0,0,0,0,0,60,0), +(200010,17926,24000,0,0,0,0,0,58,0), +(200010,17923,24000,0,0,0,0,0,58,0), +(200010,11730,24000,0,0,0,0,0,58,0), +(200010,11726,24000,0,0,0,0,0,58,0), +(200010,11713,24000,0,0,0,0,0,58,0), +(200010,11678,24000,0,0,0,0,0,58,0), +(200010,18871,1100,0,0,0,0,0,56,0), +(200010,17953,22000,0,0,0,0,0,56,0), +(200010,17924,22000,0,0,0,0,0,56,0), +(200010,11689,19800,0,0,0,0,0,56,0), +(200010,6215,22000,0,0,0,0,0,56,0), +(200010,17928,20000,0,0,0,0,0,54,0), +(200010,11700,20000,0,0,0,0,0,54,0), +(200010,11684,20000,0,0,0,0,0,54,0), +(200010,11672,20000,0,0,0,0,0,54,0), +(200010,11740,18000,0,0,0,0,0,52,0), +(200010,11708,18000,0,0,0,0,0,52,0), +(200010,11694,18000,0,0,0,0,0,52,0), +(200010,11675,18000,0,0,0,0,0,52,0), +(200010,11660,18000,0,0,0,0,0,52,0), +(200010,20756,15000,0,0,0,0,0,50,0), +(200010,18937,748,0,0,0,0,0,50,0), +(200010,17925,15000,0,0,0,0,0,50,0), +(200010,17922,15000,0,0,0,0,0,50,0), +(200010,11734,15000,0,0,0,0,0,50,0), +(200010,11719,15000,0,0,0,0,0,50,0), +(200010,11667,15000,0,0,0,0,0,50,0), +(200010,18870,700,0,0,0,0,0,48,0), +(200010,18647,14000,0,0,0,0,0,48,0), +(200010,17727,14000,0,0,0,0,0,48,0), +(200010,11712,14000,0,0,0,0,0,48,0), +(200010,6353,14000,0,0,0,0,0,48,0), +(200010,17952,13000,0,0,0,0,0,46,0), +(200010,11729,13000,0,0,0,0,0,46,0), +(200010,11721,13000,0,0,0,0,0,46,0), +(200010,11699,13000,0,0,0,0,0,46,0), +(200010,11688,11700,0,0,0,0,0,46,0), +(200010,11677,13000,0,0,0,0,0,46,0), +(200010,11725,12000,0,0,0,0,0,44,0), +(200010,11693,12000,0,0,0,0,0,44,0), +(200010,11671,12000,0,0,0,0,0,44,0), +(200010,11659,12000,0,0,0,0,0,44,0), +(200010,17921,11000,0,0,0,0,0,42,0), +(200010,11739,11000,0,0,0,0,0,42,0), +(200010,11707,11000,0,0,0,0,0,42,0), +(200010,11683,11000,0,0,0,0,0,42,0), +(200010,6789,11000,0,0,0,0,0,42,0), +(200010,23161,100000,0,0,0,0,0,40,0), +(200010,20755,11000,0,0,0,0,0,40,0), +(200010,18869,548,0,0,0,0,0,40,0), +(200010,11733,11000,0,0,0,0,0,40,0), +(200010,11665,11000,0,0,0,0,0,40,0), +(200010,5484,11000,0,0,0,0,0,40,0), +(200010,11711,10000,0,0,0,0,0,38,0), +(200010,8289,10000,0,0,0,0,0,38,0), +(200010,7651,10000,0,0,0,0,0,38,0), +(200010,17951,9000,0,0,0,0,0,36,0), +(200010,11687,8100,0,0,0,0,0,36,0), +(200010,7641,9000,0,0,0,0,0,36,0), +(200010,3700,9000,0,0,0,0,0,36,0), +(200010,2362,9000,0,0,0,0,0,36,0), +(200010,17920,8000,0,0,0,0,0,34,0), +(200010,7648,8000,0,0,0,0,0,34,0), +(200010,6219,8000,0,0,0,0,0,34,0), +(200010,5699,8000,0,0,0,0,0,34,0), +(200010,18868,348,0,0,0,0,0,32,0), +(200010,7646,7000,0,0,0,0,0,32,0), +(200010,6229,7000,0,0,0,0,0,32,0), +(200010,6213,7000,0,0,0,0,0,32,0), +(200010,1490,7000,0,0,0,0,0,32,0), +(200010,20752,6000,0,0,0,0,0,30,0), +(200010,2941,6000,0,0,0,0,0,30,0), +(200010,1949,6000,0,0,0,0,0,30,0), +(200010,1098,6000,0,0,0,0,0,30,0), +(200010,1086,6000,0,0,0,0,0,30,0), +(200010,709,6000,0,0,0,0,0,30,0), +(200010,6366,5000,0,0,0,0,0,28,0), +(200010,6217,5000,0,0,0,0,0,28,0), +(200010,3699,5000,0,0,0,0,0,28,0), +(200010,1106,5000,0,0,0,0,0,28,0), +(200010,710,5000,0,0,0,0,0,28,0), +(200010,17919,4000,0,0,0,0,0,26,0), +(200010,1714,4000,0,0,0,0,0,26,0), +(200010,1456,3600,0,0,0,0,0,26,0), +(200010,132,4000,0,0,0,0,0,26,0), +(200010,18867,148,0,0,0,0,0,24,0), +(200010,8288,3000,0,0,0,0,0,24,0), +(200010,6223,3000,0,0,0,0,0,24,0), +(200010,5500,3000,0,0,0,0,0,24,0), +(200010,5138,3000,0,0,0,0,0,24,0), +(200010,6205,2500,0,0,0,0,0,22,0), +(200010,6202,2500,0,0,0,0,0,22,0), +(200010,699,2500,0,0,0,0,0,22,0), +(200010,126,2500,0,0,0,0,0,22,0), +(200010,5740,2000,0,0,0,0,0,20,0), +(200010,3698,2000,0,0,0,0,0,20,0), +(200010,1710,10000,0,0,0,0,0,20,0), +(200010,1094,2000,0,0,0,0,0,20,0), +(200010,1088,2000,0,0,0,0,0,20,0), +(200010,706,2000,0,0,0,0,0,20,0), +(200010,698,2000,0,0,0,0,0,20,0), +(200010,5676,1500,0,0,0,0,0,18,0), +(200010,1014,1500,0,0,0,0,0,18,0), +(200010,693,1500,0,0,0,0,0,18,0), +(200010,5697,1200,0,0,0,0,0,16,0), +(200010,1455,1080,0,0,0,0,0,16,0), +(200010,6222,900,0,0,0,0,0,14,0), +(200010,689,900,0,0,0,0,0,14,0), +(200010,1108,600,0,0,0,0,0,12,0), +(200010,755,600,0,0,0,0,0,12,0), +(200010,705,600,0,0,0,0,0,12,0), +(200010,6201,300,0,0,0,0,0,10,0), +(200010,1120,300,0,0,0,0,0,10,0), +(200010,707,300,0,0,0,0,0,10,0), +(200010,696,300,0,0,0,0,0,10,0), +(200010,5782,200,0,0,0,0,0,8,0), +(200010,980,200,0,0,0,0,0,8,0), +(200011,591,100,0,0,0,0,0,6,0), +(200011,17,100,0,0,0,0,0,6,0), +(200011,2052,100,0,0,0,0,0,4,0), +(200011,589,100,0,0,0,0,0,4,0), +(200011,1243,10,0,0,0,0,0,1,0), +(200012,64901,65000,0,0,0,0,0,80,0), +(200012,64843,180000,0,0,0,0,0,80,0), +(200012,53023,100000,0,0,0,0,0,80,0), +(200012,53007,9000,0,0,0,0,0,80,0), +(200012,48173,9000,0,0,0,0,0,80,0), +(200012,48162,180000,0,0,0,0,0,80,0), +(200012,48161,180000,0,0,0,0,0,80,0), +(200012,48160,9000,0,0,0,0,0,80,0), +(200012,48158,180000,0,0,0,0,0,80,0), +(200012,48156,9000,0,0,0,0,0,80,0), +(200012,48125,180000,0,0,0,0,0,80,0), +(200012,48089,9000,0,0,0,0,0,80,0), +(200012,48087,9000,0,0,0,0,0,80,0), +(200012,48078,180000,0,0,0,0,0,80,0), +(200012,48074,9000,0,0,0,0,0,80,0), +(200012,48073,9000,0,0,0,0,0,80,0), +(200012,48068,180000,0,0,0,0,0,80,0), +(200012,48066,180000,0,0,0,0,0,80,0), +(200012,48300,180000,0,0,0,0,0,79,0), +(200012,48127,180000,0,0,0,0,0,79,0), +(200012,48123,180000,0,0,0,0,0,79,0), +(200012,48113,180000,0,0,0,0,0,79,0), +(200012,48071,180000,0,0,0,0,0,79,0), +(200012,48171,180000,0,0,0,0,0,78,0), +(200012,48135,180000,0,0,0,0,0,78,0), +(200012,48120,180000,0,0,0,0,0,78,0), +(200012,48063,180000,0,0,0,0,0,78,0), +(200012,48170,180000,0,0,0,0,0,77,0), +(200012,48168,180000,0,0,0,0,0,77,0), +(200012,48169,180000,0,0,0,0,0,76,0), +(200012,48072,180000,0,0,0,0,0,76,0), +(200012,53006,9000,0,0,0,0,0,75,0), +(200012,48159,9000,0,0,0,0,0,75,0), +(200012,48157,180000,0,0,0,0,0,75,0), +(200012,48124,180000,0,0,0,0,0,75,0), +(200012,48088,9000,0,0,0,0,0,75,0), +(200012,48086,9000,0,0,0,0,0,75,0), +(200012,48077,180000,0,0,0,0,0,75,0), +(200012,48067,180000,0,0,0,0,0,75,0), +(200012,48065,180000,0,0,0,0,0,75,0), +(200012,48045,10000,0,0,0,0,0,75,0), +(200012,48155,9000,0,0,0,0,0,74,0), +(200012,48126,180000,0,0,0,0,0,74,0), +(200012,48122,180000,0,0,0,0,0,74,0), +(200012,48112,100000,0,0,0,0,0,74,0), +(200012,48299,180000,0,0,0,0,0,73,0), +(200012,48172,3250,0,0,0,0,0,73,0), +(200012,48070,180000,0,0,0,0,0,73,0), +(200012,48062,180000,0,0,0,0,0,73,0), +(200012,48134,180000,0,0,0,0,0,72,0), +(200012,48119,180000,0,0,0,0,0,72,0), +(200012,48040,180000,0,0,0,0,0,71,0), +(200012,53005,5000,0,0,0,0,0,70,0), +(200012,39374,100000,0,0,0,0,0,70,0), +(200012,34917,2300,0,0,0,0,0,70,0), +(200012,34866,7000,0,0,0,0,0,70,0), +(200012,32999,3400,0,0,0,0,0,70,0), +(200012,32996,110000,0,0,0,0,0,70,0), +(200012,32375,110000,0,0,0,0,0,70,0), +(200012,28275,1500,0,0,0,0,0,70,0), +(200012,25392,100000,0,0,0,0,0,70,0), +(200012,25389,65000,0,0,0,0,0,70,0), +(200012,25368,140000,0,0,0,0,0,70,0), +(200012,25312,2300,0,0,0,0,0,70,0), +(200012,25222,140000,0,0,0,0,0,70,0), +(200012,25218,140000,0,0,0,0,0,70,0), +(200012,25431,65000,0,0,0,0,0,69,0), +(200012,25375,65000,0,0,0,0,0,69,0), +(200012,25364,65000,0,0,0,0,0,69,0), +(200012,33076,110000,0,0,0,0,0,68,0), +(200012,25467,110000,0,0,0,0,0,68,0), +(200012,25435,110000,0,0,0,0,0,68,0), +(200012,25433,110000,0,0,0,0,0,68,0), +(200012,25387,6500,0,0,0,0,0,68,0), +(200012,25331,110000,0,0,0,0,0,68,0), +(200012,25308,110000,0,0,0,0,0,68,0), +(200012,25213,110000,0,0,0,0,0,68,0), +(200012,25235,99000,0,0,0,0,0,67,0), +(200012,34433,89000,0,0,0,0,0,66,0), +(200012,25437,2200,0,0,0,0,0,66,0), +(200012,25384,65000,0,0,0,0,0,66,0), +(200012,34865,4000,0,0,0,0,0,65,0), +(200012,25367,80000,0,0,0,0,0,65,0), +(200012,25221,80000,0,0,0,0,0,65,0), +(200012,25217,80000,0,0,0,0,0,65,0), +(200012,32546,72000,0,0,0,0,0,64,0), +(200012,25372,65000,0,0,0,0,0,63,0), +(200012,25210,65000,0,0,0,0,0,63,0), +(200012,32379,59000,0,0,0,0,0,62,0), +(200012,25363,53000,0,0,0,0,0,61,0), +(200012,25233,53000,0,0,0,0,0,61,0), +(200012,34916,2300,0,0,0,0,0,60,0), +(200012,34864,2300,0,0,0,0,0,60,0), +(200012,27871,1500,0,0,0,0,0,60,0), +(200012,27841,2300,0,0,0,0,0,60,0), +(200012,27801,46000,0,0,0,0,0,60,0), +(200012,27681,2300,0,0,0,0,0,60,0), +(200012,25316,6500,0,0,0,0,0,60,0), +(200012,25315,6500,0,0,0,0,0,60,0), +(200012,25314,65000,0,0,0,0,0,60,0), +(200012,21564,46000,0,0,0,0,0,60,0), +(200012,19280,46000,0,0,0,0,0,60,0), +(200012,18807,2300,0,0,0,0,0,60,0), +(200012,15261,46000,0,0,0,0,0,60,0), +(200012,10961,46000,0,0,0,0,0,60,0), +(200012,10955,46000,0,0,0,0,0,60,0), +(200012,10952,46000,0,0,0,0,0,60,0), +(200012,10938,46000,0,0,0,0,0,60,0), +(200012,10901,46000,0,0,0,0,0,60,0), +(200012,20770,44000,0,0,0,0,0,58,0), +(200012,19243,1500,0,0,0,0,0,58,0), +(200012,10965,44000,0,0,0,0,0,58,0), +(200012,10947,44000,0,0,0,0,0,58,0), +(200012,10894,44000,0,0,0,0,0,58,0), +(200012,34863,2100,0,0,0,0,0,56,0), +(200012,27683,42000,0,0,0,0,0,56,0), +(200012,10958,42000,0,0,0,0,0,56,0), +(200012,10929,42000,0,0,0,0,0,56,0), +(200012,10917,42000,0,0,0,0,0,56,0), +(200012,10890,42000,0,0,0,0,0,56,0), +(200012,15267,40000,0,0,0,0,0,54,0), +(200012,10934,40000,0,0,0,0,0,54,0), +(200012,10900,40000,0,0,0,0,0,54,0), +(200012,27800,38000,0,0,0,0,0,52,0), +(200012,19279,38000,0,0,0,0,0,52,0), +(200012,17314,1900,0,0,0,0,0,52,0), +(200012,10964,38000,0,0,0,0,0,52,0), +(200012,10946,38000,0,0,0,0,0,52,0), +(200012,27870,1200,0,0,0,0,0,50,0), +(200012,19242,1100,0,0,0,0,0,50,0), +(200012,14819,1500,0,0,0,0,0,50,0), +(200012,10960,30000,0,0,0,0,0,50,0), +(200012,10951,30000,0,0,0,0,0,50,0), +(200012,10928,30000,0,0,0,0,0,50,0), +(200012,10916,30000,0,0,0,0,0,50,0), +(200012,10893,30000,0,0,0,0,0,50,0), +(200012,21562,28000,0,0,0,0,0,48,0), +(200012,15266,28000,0,0,0,0,0,48,0), +(200012,10937,28000,0,0,0,0,0,48,0), +(200012,10899,28000,0,0,0,0,0,48,0), +(200012,10963,26000,0,0,0,0,0,46,0), +(200012,10945,26000,0,0,0,0,0,46,0), +(200012,10933,26000,0,0,0,0,0,46,0), +(200012,10881,26000,0,0,0,0,0,46,0), +(200012,27799,24000,0,0,0,0,0,44,0), +(200012,19278,24000,0,0,0,0,0,44,0), +(200012,17313,1200,0,0,0,0,0,44,0), +(200012,10927,24000,0,0,0,0,0,44,0), +(200012,10915,24000,0,0,0,0,0,44,0), +(200012,10909,24000,0,0,0,0,0,44,0), +(200012,19241,600,0,0,0,0,0,42,0), +(200012,15265,22000,0,0,0,0,0,42,0), +(200012,10957,22000,0,0,0,0,0,42,0), +(200012,10898,22000,0,0,0,0,0,42,0), +(200012,10892,22000,0,0,0,0,0,42,0), +(200012,10888,22000,0,0,0,0,0,42,0), +(200012,14818,900,0,0,0,0,0,40,0), +(200012,9485,18000,0,0,0,0,0,40,0), +(200012,8106,18000,0,0,0,0,0,40,0), +(200012,2060,18000,0,0,0,0,0,40,0), +(200012,1006,18000,0,0,0,0,0,40,0), +(200012,996,18000,0,0,0,0,0,40,0), +(200012,9474,16000,0,0,0,0,0,38,0), +(200012,6078,16000,0,0,0,0,0,38,0), +(200012,6060,16000,0,0,0,0,0,38,0), +(200012,19277,14000,0,0,0,0,0,36,0), +(200012,17312,700,0,0,0,0,0,36,0), +(200012,15431,14000,0,0,0,0,0,36,0), +(200012,15264,14000,0,0,0,0,0,36,0), +(200012,6066,14000,0,0,0,0,0,36,0), +(200012,2791,14000,0,0,0,0,0,36,0), +(200012,988,14000,0,0,0,0,0,36,0), +(200012,19240,300,0,0,0,0,0,34,0), +(200012,10880,12000,0,0,0,0,0,34,0), +(200012,8105,12000,0,0,0,0,0,34,0), +(200012,6064,12000,0,0,0,0,0,34,0), +(200012,2767,12000,0,0,0,0,0,34,0), +(200012,1706,12000,0,0,0,0,0,34,0), +(200012,9473,11000,0,0,0,0,0,32,0), +(200012,6077,11000,0,0,0,0,0,32,0), +(200012,552,11000,0,0,0,0,0,32,0), +(200012,15263,10000,0,0,0,0,0,30,0), +(200012,14752,600,0,0,0,0,0,30,0), +(200012,6065,10000,0,0,0,0,0,30,0), +(200012,1004,10000,0,0,0,0,0,30,0), +(200012,976,10000,0,0,0,0,0,30,0), +(200012,605,10000,0,0,0,0,0,30,0), +(200012,602,10000,0,0,0,0,0,30,0), +(200012,596,10000,0,0,0,0,0,30,0), +(200012,19276,8000,0,0,0,0,0,28,0), +(200012,17311,400,0,0,0,0,0,28,0), +(200012,15430,8000,0,0,0,0,0,28,0), +(200012,8124,8000,0,0,0,0,0,28,0), +(200012,8104,8000,0,0,0,0,0,28,0), +(200012,6063,8000,0,0,0,0,0,28,0), +(200012,19238,60,0,0,0,0,0,26,0), +(200012,9472,6000,0,0,0,0,0,26,0), +(200012,6076,6000,0,0,0,0,0,26,0), +(200012,992,6000,0,0,0,0,0,26,0), +(200012,15262,5000,0,0,0,0,0,24,0), +(200012,8129,5000,0,0,0,0,0,24,0), +(200012,3747,5000,0,0,0,0,0,24,0), +(200012,1245,5000,0,0,0,0,0,24,0), +(200012,8103,4000,0,0,0,0,0,22,0), +(200012,2096,4000,0,0,0,0,0,22,0), +(200012,2055,4000,0,0,0,0,0,22,0), +(200012,2010,4000,0,0,0,0,0,22,0), +(200012,984,4000,0,0,0,0,0,22,0), +(200012,15237,3000,0,0,0,0,0,20,0), +(200012,14914,3000,0,0,0,0,0,20,0), +(200012,9484,3000,0,0,0,0,0,20,0), +(200012,7128,3000,0,0,0,0,0,20,0), +(200012,6346,800,0,0,0,0,0,20,0), +(200012,6075,3000,0,0,0,0,0,20,0), +(200012,2944,3000,0,0,0,0,0,20,0), +(200012,2061,3000,0,0,0,0,0,20,0), +(200012,453,3000,0,0,0,0,0,20,0), +(200012,970,2000,0,0,0,0,0,18,0), +(200012,600,2000,0,0,0,0,0,18,0), +(200012,527,2000,0,0,0,0,0,18,0), +(200012,8102,1600,0,0,0,0,0,16,0), +(200012,2054,1600,0,0,0,0,0,16,0), +(200012,8122,1200,0,0,0,0,0,14,0), +(200012,6074,1200,0,0,0,0,0,14,0), +(200012,598,1200,0,0,0,0,0,14,0), +(200012,528,1200,0,0,0,0,0,14,0), +(200012,1244,800,0,0,0,0,0,12,0), +(200012,592,800,0,0,0,0,0,12,0), +(200012,588,800,0,0,0,0,0,12,0), +(200012,8092,300,0,0,0,0,0,10,0), +(200012,2053,300,0,0,0,0,0,10,0), +(200012,2006,300,0,0,0,0,0,10,0), +(200012,594,300,0,0,0,0,0,10,0), +(200012,586,200,0,0,0,0,0,8,0), +(200012,139,200,0,0,0,0,0,8,0), +(200013,3044,100,0,0,0,0,0,6,0), +(200013,1130,100,0,0,0,0,0,6,0), +(200013,13163,100,0,0,0,0,0,4,0), +(200013,1978,100,0,0,0,0,0,4,0), +(200013,1494,10,0,0,0,0,0,2,0), +(200014,49047,300000,0,0,0,0,0,74,0), +(200014,49011,100000,0,0,0,0,0,75,0), +(200014,61846,300000,0,0,0,0,0,74,0), +(200014,48989,300000,0,0,0,0,0,74,0), +(200014,49044,300000,0,0,0,0,0,73,0), +(200014,53351,300000,0,0,0,0,0,71,0), +(200014,53271,10000,0,0,0,0,0,75,0), +(200014,48998,15000,0,0,0,0,0,72,0), +(200014,49055,300000,0,0,0,0,0,72,0), +(200014,49000,300000,0,0,0,0,0,73,0), +(200014,49051,300000,0,0,0,0,0,71,0), +(200014,49066,300000,0,0,0,0,0,71,0), +(200014,60192,100000,0,0,0,0,0,80,0), +(200014,61006,300000,0,0,0,0,0,80,0), +(200014,60051,400,0,0,0,0,0,70,0), +(200014,48995,300000,0,0,0,0,0,71,0), +(200014,60052,400,0,0,0,0,0,75,0), +(200014,61005,300000,0,0,0,0,0,75,0), +(200014,49071,300000,0,0,0,0,0,76,0), +(200014,53338,10000,0,0,0,0,0,76,0), +(200014,48996,300000,0,0,0,0,0,77,0), +(200014,49052,300000,0,0,0,0,0,77,0), +(200014,49067,300000,0,0,0,0,0,77,0), +(200014,48999,15000,0,0,0,0,0,78,0), +(200014,49056,300000,0,0,0,0,0,78,0), +(200014,49001,300000,0,0,0,0,0,79,0), +(200014,49045,300000,0,0,0,0,0,79,0), +(200014,48990,300000,0,0,0,0,0,80,0), +(200014,58431,300000,0,0,0,0,0,74,0), +(200014,49049,10000,0,0,0,0,0,75,0), +(200014,61847,300000,0,0,0,0,0,80,0), +(200014,62757,300000,0,0,0,0,0,80,0), +(200014,49012,100000,0,0,0,0,0,80,0), +(200014,49048,300000,0,0,0,0,0,80,0), +(200014,49050,10000,0,0,0,0,0,80,0), +(200014,53339,300000,0,0,0,0,0,80,0), +(200014,60053,100000,0,0,0,0,0,80,0), +(200014,58434,300000,0,0,0,0,0,80,0), +(200014,36916,300000,0,0,0,0,0,70,0), +(200014,34477,190000,0,0,0,0,0,70,0), +(200014,27068,5000,0,0,0,0,0,70,0), +(200014,27065,10000,0,0,0,0,0,70,0), +(200014,27019,170000,0,0,0,0,0,69,0), +(200014,34600,150000,0,0,0,0,0,68,0), +(200014,27046,150000,0,0,0,0,0,68,0), +(200014,27045,150000,0,0,0,0,0,68,0), +(200014,27044,150000,0,0,0,0,0,68,0), +(200014,27022,140000,0,0,0,0,0,67,0), +(200014,27021,140000,0,0,0,0,0,67,0), +(200014,27016,140000,0,0,0,0,0,67,0), +(200014,34026,120000,0,0,0,0,0,66,0), +(200014,27067,2500,0,0,0,0,0,66,0), +(200014,27023,110000,0,0,0,0,0,65,0), +(200014,27014,87000,0,0,0,0,0,63,0), +(200014,34120,70000,0,0,0,0,0,62,0), +(200014,27025,68000,0,0,0,0,0,61,0), +(200014,25296,50000,0,0,0,0,0,60,0), +(200014,25295,50000,0,0,0,0,0,60,0), +(200014,25294,50000,0,0,0,0,0,60,0), +(200014,24133,2500,0,0,0,0,0,60,0), +(200014,20904,2500,0,0,0,0,0,60,0), +(200014,19801,50000,0,0,0,0,0,60,0), +(200014,19263,2200,0,0,0,0,0,60,0), +(200014,14311,50000,0,0,0,0,0,60,0), +(200014,14287,50000,0,0,0,0,0,60,0), +(200014,13544,50000,0,0,0,0,0,60,0), +(200014,14325,48000,0,0,0,0,0,58,0), +(200014,14322,48000,0,0,0,0,0,58,0), +(200014,14295,48000,0,0,0,0,0,58,0), +(200014,14271,48000,0,0,0,0,0,58,0), +(200014,13555,48000,0,0,0,0,0,58,0), +(200014,20190,46000,0,0,0,0,0,56,0), +(200014,14305,46000,0,0,0,0,0,56,0), +(200014,14266,46000,0,0,0,0,0,56,0), +(200014,20910,2100,0,0,0,0,0,54,0), +(200014,14317,42000,0,0,0,0,0,54,0), +(200014,14290,42000,0,0,0,0,0,54,0), +(200014,20903,2000,0,0,0,0,0,52,0), +(200014,14286,40000,0,0,0,0,0,52,0), +(200014,13543,40000,0,0,0,0,0,52,0), +(200014,56641,36000,0,0,0,0,0,50,0), +(200014,24132,1800,0,0,0,0,0,50,0), +(200014,19879,36000,0,0,0,0,0,50,0), +(200014,14294,36000,0,0,0,0,0,50,0), +(200014,13554,36000,0,0,0,0,0,50,0), +(200014,14321,32000,0,0,0,0,0,48,0), +(200014,14265,32000,0,0,0,0,0,48,0), +(200014,20043,28000,0,0,0,0,0,46,0), +(200014,14327,28000,0,0,0,0,0,46,0), +(200014,14304,28000,0,0,0,0,0,46,0), +(200014,20902,1300,0,0,0,0,0,44,0), +(200014,14316,26000,0,0,0,0,0,44,0), +(200014,14285,26000,0,0,0,0,0,44,0), +(200014,14270,26000,0,0,0,0,0,44,0), +(200014,13542,26000,0,0,0,0,0,44,0), +(200014,20909,1200,0,0,0,0,0,42,0), +(200014,14289,24000,0,0,0,0,0,42,0), +(200014,13553,24000,0,0,0,0,0,42,0), +(200014,19882,18000,0,0,0,0,0,40,0), +(200014,14324,18000,0,0,0,0,0,40,0), +(200014,14310,18000,0,0,0,0,0,40,0), +(200014,14264,18000,0,0,0,0,0,40,0), +(200014,13159,18000,0,0,0,0,0,40,0), +(200014,8737,18000,0,0,0,0,0,40,0), +(200014,1510,18000,0,0,0,0,0,40,0), +(200014,14320,16000,0,0,0,0,0,38,0), +(200014,20901,700,0,0,0,0,0,36,0), +(200014,14303,14000,0,0,0,0,0,36,0), +(200014,14284,14000,0,0,0,0,0,36,0), +(200014,3662,14000,0,0,0,0,0,36,0), +(200014,3034,14000,0,0,0,0,0,36,0), +(200014,13813,12000,0,0,0,0,0,34,0), +(200014,13552,12000,0,0,0,0,0,34,0), +(200014,19878,10000,0,0,0,0,0,32,0), +(200014,14263,10000,0,0,0,0,0,32,0), +(200014,1543,10000,0,0,0,0,0,32,0), +(200014,14326,8000,0,0,0,0,0,30,0), +(200014,14288,8000,0,0,0,0,0,30,0), +(200014,14269,8000,0,0,0,0,0,30,0), +(200014,13161,8000,0,0,0,0,0,30,0), +(200014,5384,8000,0,0,0,0,0,30,0), +(200014,20900,400,0,0,0,0,0,28,0), +(200014,14319,8000,0,0,0,0,0,28,0), +(200014,14283,8000,0,0,0,0,0,28,0), +(200014,13809,8000,0,0,0,0,0,28,0), +(200014,3661,8000,0,0,0,0,0,28,0), +(200014,19880,7000,0,0,0,0,0,26,0), +(200014,14302,7000,0,0,0,0,0,26,0), +(200014,13551,7000,0,0,0,0,0,26,0), +(200014,3045,7000,0,0,0,0,0,26,0), +(200014,19885,7000,0,0,0,0,0,24,0), +(200014,14262,7000,0,0,0,0,0,24,0), +(200014,1462,7000,0,0,0,0,0,24,0), +(200014,14323,6000,0,0,0,0,0,22,0), +(200014,3043,6000,0,0,0,0,0,22,0), +(200014,34074,2200,0,0,0,0,0,20,0), +(200014,14282,2200,0,0,0,0,0,20,0), +(200014,3111,2200,0,0,0,0,0,20,0), +(200014,1499,2200,0,0,0,0,0,20,0), +(200014,781,2200,0,0,0,0,0,20,0), +(200014,674,2200,0,0,0,0,0,20,0), +(200014,19884,2000,0,0,0,0,0,18,0), +(200014,14318,2000,0,0,0,0,0,18,0), +(200014,13550,2000,0,0,0,0,0,18,0), +(200014,2643,2000,0,0,0,0,0,18,0), +(200014,14261,1800,0,0,0,0,0,16,0), +(200014,13795,1800,0,0,0,0,0,16,0), +(200014,5118,2200,0,0,0,0,0,16,0), +(200014,1495,1800,0,0,0,0,0,16,0), +(200014,6197,1200,0,0,0,0,0,14,0), +(200014,1513,1200,0,0,0,0,0,14,0), +(200014,1002,1200,0,0,0,0,0,14,0), +(200014,20736,600,0,0,0,0,0,12,0), +(200014,14281,600,0,0,0,0,0,12,0), +(200014,2974,600,0,0,0,0,0,12,0), +(200014,136,600,0,0,0,0,0,12,0), +(200014,19883,400,0,0,0,0,0,10,0), +(200014,13549,400,0,0,0,0,0,10,0), +(200014,13165,400,0,0,0,0,0,10,0), +(200014,14260,200,0,0,0,0,0,8,0), +(200014,5116,200,0,0,0,0,0,8,0), +(200014,3127,200,0,0,0,0,0,8,0), +(200014,63668,1800,0,0,0,0,0,57,0), +(200014,63669,7000,0,0,0,0,0,63,0), +(200014,63670,10000,0,0,0,0,0,69,0), +(200014,63671,10000,0,0,0,0,0,75,0), +(200014,63672,10000,0,0,0,0,0,80,0), +(200015,921,100,0,0,0,0,0,4,0), +(200015,1776,100,0,0,0,0,0,6,0), +(200015,53,100,0,0,0,0,0,4,0), +(200015,1784,10,0,0,0,0,0,1,0), +(200015,1757,100,0,0,0,0,0,6,0), +(200016,2070,8000,0,0,0,0,0,28,0), +(200016,1842,10000,0,0,0,0,0,30,0), +(200016,11274,46000,0,0,0,0,0,52,0), +(200016,51722,3000,0,0,0,0,0,20,0), +(200016,1760,10000,0,0,0,0,0,30,0), +(200016,408,10000,0,0,0,0,0,30,0), +(200016,8696,14000,0,0,0,0,0,34,0), +(200016,48667,300000,0,0,0,0,0,73,0), +(200016,1856,4000,0,0,0,0,0,22,0), +(200016,48660,15000,0,0,0,0,0,80,0), +(200016,17348,650,0,0,0,0,0,58,0), +(200016,26839,50000,0,0,0,0,0,61,0), +(200016,11279,29000,0,0,0,0,0,44,0), +(200016,11294,48000,0,0,0,0,0,54,0), +(200016,1833,6000,0,0,0,0,0,26,0), +(200016,2094,14000,0,0,0,0,0,34,0), +(200016,8623,12000,0,0,0,0,0,32,0), +(200016,34413,7500,0,0,0,0,0,70,0), +(200016,26867,120000,0,0,0,0,0,68,0), +(200016,25302,50000,0,0,0,0,0,60,0), +(200016,48690,300000,0,0,0,0,0,75,0), +(200016,26889,59000,0,0,0,0,0,62,0), +(200016,26861,50000,0,0,0,0,0,62,0), +(200016,8724,6000,0,0,0,0,0,26,0), +(200016,32684,100000,0,0,0,0,0,69,0), +(200016,8633,18000,0,0,0,0,0,38,0), +(200016,48663,15000,0,0,0,0,0,75,0), +(200016,2836,5000,0,0,0,0,0,24,0), +(200016,48637,300000,0,0,0,0,0,76,0), +(200016,48671,300000,0,0,0,0,0,74,0), +(200016,26863,110000,0,0,0,0,0,68,0), +(200016,25300,72000,0,0,0,0,0,60,0), +(200016,34412,6500,0,0,0,0,0,60,0), +(200016,48668,300000,0,0,0,0,0,79,0), +(200016,32645,59000,0,0,0,0,0,62,0), +(200016,57993,300000,0,0,0,0,0,80,0), +(200016,48675,300000,0,0,0,0,0,75,0), +(200016,11273,29000,0,0,0,0,0,44,0), +(200016,11267,27000,0,0,0,0,0,42,0), +(200016,1857,27000,0,0,0,0,0,42,0), +(200016,8637,20000,0,0,0,0,0,40,0), +(200016,11305,52000,0,0,0,0,0,58,0), +(200016,8624,20000,0,0,0,0,0,40,0), +(200016,48674,300000,0,0,0,0,0,76,0), +(200016,5938,100000,0,0,0,0,0,70,0), +(200016,8643,35000,0,0,0,0,0,50,0), +(200016,11299,33000,0,0,0,0,0,48,0), +(200016,11297,33000,0,0,0,0,0,48,0), +(200016,8640,16000,0,0,0,0,0,36,0), +(200016,1725,4000,0,0,0,0,0,22,0), +(200016,1759,4000,0,0,0,0,0,22,0), +(200016,11281,54000,0,0,0,0,0,60,0), +(200016,2590,3000,0,0,0,0,0,20,0), +(200016,1943,3000,0,0,0,0,0,20,0), +(200016,8725,14000,0,0,0,0,0,34,0), +(200016,703,1200,0,0,0,0,0,14,0), +(200016,3127,800,0,0,0,0,0,12,0), +(200016,2589,800,0,0,0,0,0,12,0), +(200016,1766,800,0,0,0,0,0,12,0), +(200016,6770,300,0,0,0,0,0,10,0), +(200016,5171,300,0,0,0,0,0,10,0), +(200016,2983,300,0,0,0,0,0,10,0), +(200016,674,300,0,0,0,0,0,10,0), +(200016,6760,200,0,0,0,0,0,8,0), +(200016,11290,48000,0,0,0,0,0,54,0), +(200016,11300,50000,0,0,0,0,0,56,0), +(200016,11303,46000,0,0,0,0,0,52,0), +(200016,11280,46000,0,0,0,0,0,52,0), +(200016,48659,300000,0,0,0,0,0,78,0), +(200016,48689,140000,0,0,0,0,0,70,0), +(200016,51723,300000,0,0,0,0,0,80,0), +(200016,51724,300000,0,0,0,0,0,71,0), +(200016,48676,300000,0,0,0,0,0,80,0), +(200016,26862,100000,0,0,0,0,0,70,0), +(200016,31016,65000,0,0,0,0,0,60,0), +(200016,5277,200,0,0,0,0,0,8,0), +(200016,48666,15000,0,0,0,0,0,80,0), +(200016,1860,20000,0,0,0,0,0,40,0), +(200016,6762,5000,0,0,0,0,0,24,0), +(200016,8631,4000,0,0,0,0,0,22,0), +(200016,48658,300000,0,0,0,0,0,72,0), +(200016,48657,300000,0,0,0,0,0,80,0), +(200016,11275,54000,0,0,0,0,0,60,0), +(200016,57934,300000,0,0,0,0,0,75,0), +(200016,48673,100000,0,0,0,0,0,70,0), +(200016,26864,2700,0,0,0,0,0,70,0), +(200016,48672,300000,0,0,0,0,0,79,0), +(200016,48638,300000,0,0,0,0,0,80,0), +(200016,8639,8000,0,0,0,0,0,28,0), +(200016,2591,8000,0,0,0,0,0,28,0), +(200016,6768,8000,0,0,0,0,0,28,0), +(200016,48656,300000,0,0,0,0,0,74,0), +(200016,31224,89000,0,0,0,0,0,66,0), +(200016,57992,300000,0,0,0,0,0,74,0), +(200016,27441,80000,0,0,0,0,0,66,0), +(200016,27448,72000,0,0,0,0,0,64,0), +(200016,26865,140000,0,0,0,0,0,64,0), +(200016,26679,72000,0,0,0,0,0,64,0), +(200016,34411,5500,0,0,0,0,0,50,0), +(200016,26669,35000,0,0,0,0,0,50,0), +(200016,26884,100000,0,0,0,0,0,70,0), +(200016,11268,35000,0,0,0,0,0,50,0), +(200016,6774,27000,0,0,0,0,0,42,0), +(200016,17347,384,0,0,0,0,0,46,0), +(200016,11293,31000,0,0,0,0,0,46,0), +(200016,11289,31000,0,0,0,0,0,46,0), +(200016,8676,2900,0,0,0,0,0,18,0), +(200016,1966,1800,0,0,0,0,0,16,0), +(200016,6761,1800,0,0,0,0,0,16,0), +(200016,8721,16000,0,0,0,0,0,36,0), +(200016,8621,18000,0,0,0,0,0,38,0), +(200016,8632,10000,0,0,0,0,0,30,0), +(200016,11269,52000,0,0,0,0,0,58,0), +(200016,48691,300000,0,0,0,0,0,80,0), +(200016,1804,1800,0,0,0,0,0,16,0), +(200016,8647,1200,0,0,0,0,0,14,0), +(200016,1758,1200,0,0,0,0,0,14,0), +(200017,2484,100,0,0,0,0,0,6,0), +(200017,332,100,0,0,0,0,0,6,0), +(200017,8042,100,0,0,0,0,0,4,0), +(200017,8017,10,0,0,0,0,0,1,0), +(200018,58652,180000,0,0,0,0,0,75,0), +(200018,58794,180000,0,0,0,0,0,71,0), +(200018,58785,180000,0,0,0,0,0,71,0), +(200018,58771,180000,0,0,0,0,0,71,0), +(200018,25547,88000,0,0,0,0,0,70,0), +(200018,25509,88000,0,0,0,0,0,70,0), +(200018,57721,5200,0,0,0,0,0,70,0), +(200018,58643,180000,0,0,0,0,0,80,0), +(200018,25396,88000,0,0,0,0,0,70,0), +(200018,58741,180000,0,0,0,0,0,75,0), +(200018,58737,180000,0,0,0,0,0,75,0), +(200018,58703,180000,0,0,0,0,0,75,0), +(200018,49283,9000,0,0,0,0,0,75,0), +(200018,49280,180000,0,0,0,0,0,75,0), +(200018,25590,79000,0,0,0,0,0,69,0), +(200018,25457,88000,0,0,0,0,0,70,0), +(200018,25442,88000,0,0,0,0,0,70,0), +(200018,51993,71000,0,0,0,0,0,70,0), +(200018,32594,5000,0,0,0,0,0,70,0), +(200018,58581,180000,0,0,0,0,0,75,0), +(200018,57622,180000,0,0,0,0,0,75,0), +(200018,51505,180000,0,0,0,0,0,75,0), +(200018,58751,180000,0,0,0,0,0,73,0), +(200018,58731,180000,0,0,0,0,0,73,0), +(200018,49237,180000,0,0,0,0,0,73,0), +(200018,58755,180000,0,0,0,0,0,71,0), +(200018,58699,180000,0,0,0,0,0,71,0), +(200018,58649,180000,0,0,0,0,0,71,0), +(200018,49235,180000,0,0,0,0,0,73,0), +(200018,49275,180000,0,0,0,0,0,72,0), +(200018,58801,180000,0,0,0,0,0,71,0), +(200018,58746,180000,0,0,0,0,0,75,0), +(200018,58790,180000,0,0,0,0,0,80,0), +(200018,58774,180000,0,0,0,0,0,80,0), +(200018,58757,180000,0,0,0,0,0,80,0), +(200018,59159,180000,0,0,0,0,0,80,0), +(200018,58804,180000,0,0,0,0,0,80,0), +(200018,58796,180000,0,0,0,0,0,80,0), +(200018,58753,180000,0,0,0,0,0,78,0), +(200018,61301,9000,0,0,0,0,0,80,0), +(200018,60043,180000,0,0,0,0,0,80,0), +(200018,49232,180000,0,0,0,0,0,75,0), +(200018,55458,180000,0,0,0,0,0,74,0), +(200018,49270,180000,0,0,0,0,0,74,0), +(200018,49230,180000,0,0,0,0,0,74,0), +(200018,32182,88000,0,0,0,0,0,70,0), +(200018,49233,180000,0,0,0,0,0,80,0), +(200018,49273,180000,0,0,0,0,0,80,0), +(200018,49238,180000,0,0,0,0,0,79,0), +(200018,49231,180000,0,0,0,0,0,79,0), +(200018,57722,10000,0,0,0,0,0,80,0), +(200018,33736,79000,0,0,0,0,0,69,0), +(200018,58773,180000,0,0,0,0,0,76,0), +(200018,57960,180000,0,0,0,0,0,76,0), +(200018,61649,180000,0,0,0,0,0,75,0), +(200018,58789,180000,0,0,0,0,0,76,0), +(200018,61300,9000,0,0,0,0,0,75,0), +(200018,58580,180000,0,0,0,0,0,71,0), +(200018,61299,9000,0,0,0,0,0,70,0), +(200018,59156,88000,0,0,0,0,0,70,0), +(200018,25472,88000,0,0,0,0,0,70,0), +(200018,58756,180000,0,0,0,0,0,76,0), +(200018,49281,180000,0,0,0,0,0,80,0), +(200018,61657,180000,0,0,0,0,0,80,0), +(200018,55459,180000,0,0,0,0,0,80,0), +(200018,51994,180000,0,0,0,0,0,80,0), +(200018,51514,180000,0,0,0,0,0,80,0), +(200018,49284,9000,0,0,0,0,0,80,0), +(200018,25567,79000,0,0,0,0,0,69,0), +(200018,25533,79000,0,0,0,0,0,69,0), +(200018,25574,79000,0,0,0,0,0,69,0), +(200018,49271,180000,0,0,0,0,0,80,0), +(200018,58734,180000,0,0,0,0,0,78,0), +(200018,59158,180000,0,0,0,0,0,75,0), +(200018,58582,180000,0,0,0,0,0,78,0), +(200018,49236,180000,0,0,0,0,0,78,0), +(200018,49276,180000,0,0,0,0,0,77,0), +(200018,58803,180000,0,0,0,0,0,76,0), +(200018,58795,180000,0,0,0,0,0,76,0), +(200018,49272,180000,0,0,0,0,0,75,0), +(200018,58749,180000,0,0,0,0,0,80,0), +(200018,58745,180000,0,0,0,0,0,80,0), +(200018,58656,180000,0,0,0,0,0,80,0), +(200018,58739,180000,0,0,0,0,0,80,0), +(200018,58704,180000,0,0,0,0,0,80,0), +(200018,49277,180000,0,0,0,0,0,80,0), +(200018,25563,71000,0,0,0,0,0,68,0), +(200018,25464,71000,0,0,0,0,0,68,0), +(200018,25423,71000,0,0,0,0,0,68,0), +(200018,2894,71000,0,0,0,0,0,68,0), +(200018,25560,64000,0,0,0,0,0,67,0), +(200018,25557,64000,0,0,0,0,0,67,0), +(200018,25525,64000,0,0,0,0,0,67,0), +(200018,25449,64000,0,0,0,0,0,67,0), +(200018,25500,58000,0,0,0,0,0,66,0), +(200018,25420,58000,0,0,0,0,0,66,0), +(200018,2062,58000,0,0,0,0,0,66,0), +(200018,25570,52000,0,0,0,0,0,65,0), +(200018,25552,52000,0,0,0,0,0,65,0), +(200018,25528,52000,0,0,0,0,0,65,0), +(200018,25489,47000,0,0,0,0,0,64,0), +(200018,3738,47000,0,0,0,0,0,64,0), +(200018,25508,42000,0,0,0,0,0,63,0), +(200018,25469,42000,0,0,0,0,0,63,0), +(200018,25439,42000,0,0,0,0,0,63,0), +(200018,25391,42000,0,0,0,0,0,63,0), +(200018,25448,38000,0,0,0,0,0,62,0), +(200018,24398,38000,0,0,0,0,0,62,0), +(200018,25546,34000,0,0,0,0,0,61,0), +(200018,25422,34000,0,0,0,0,0,61,0), +(200018,57720,3400,0,0,0,0,0,60,0), +(200018,51992,34000,0,0,0,0,0,60,0), +(200018,32593,1700,0,0,0,0,0,60,0), +(200018,29228,65000,0,0,0,0,0,60,0), +(200018,25361,34000,0,0,0,0,0,60,0), +(200018,25357,6500,0,0,0,0,0,60,0), +(200018,20777,34000,0,0,0,0,0,60,0), +(200018,16362,34000,0,0,0,0,0,60,0), +(200018,10601,34000,0,0,0,0,0,60,0), +(200018,10468,34000,0,0,0,0,0,60,0), +(200018,10463,34000,0,0,0,0,0,60,0), +(200018,10438,34000,0,0,0,0,0,60,0), +(200018,10414,34000,0,0,0,0,0,60,0), +(200018,16387,32000,0,0,0,0,0,58,0), +(200018,16356,32000,0,0,0,0,0,58,0), +(200018,10538,32000,0,0,0,0,0,58,0), +(200018,10473,32000,0,0,0,0,0,58,0), +(200018,10428,32000,0,0,0,0,0,58,0), +(200018,16342,30000,0,0,0,0,0,56,0), +(200018,15208,30000,0,0,0,0,0,56,0), +(200018,10605,30000,0,0,0,0,0,56,0), +(200018,10587,30000,0,0,0,0,0,56,0), +(200018,10497,30000,0,0,0,0,0,56,0), +(200018,10432,30000,0,0,0,0,0,56,0), +(200018,10396,30000,0,0,0,0,0,56,0), +(200018,52138,29000,0,0,0,0,0,55,0), +(200018,10623,29000,0,0,0,0,0,54,0), +(200018,10479,29000,0,0,0,0,0,54,0), +(200018,10408,29000,0,0,0,0,0,54,0), +(200018,11315,27000,0,0,0,0,0,52,0), +(200018,10467,27000,0,0,0,0,0,52,0), +(200018,10448,27000,0,0,0,0,0,52,0), +(200018,10442,27000,0,0,0,0,0,52,0), +(200018,66844,700,0,0,0,0,0,50,0), +(200018,51991,24000,0,0,0,0,0,50,0), +(200018,15207,24000,0,0,0,0,0,50,0), +(200018,10486,24000,0,0,0,0,0,50,0), +(200018,10462,24000,0,0,0,0,0,50,0), +(200018,10437,24000,0,0,0,0,0,50,0), +(200018,52136,22000,0,0,0,0,0,48,0), +(200018,20776,22000,0,0,0,0,0,48,0), +(200018,16355,22000,0,0,0,0,0,48,0), +(200018,10526,22000,0,0,0,0,0,48,0), +(200018,10431,22000,0,0,0,0,0,48,0), +(200018,10427,22000,0,0,0,0,0,48,0), +(200018,10413,22000,0,0,0,0,0,48,0), +(200018,10395,22000,0,0,0,0,0,48,0), +(200018,2860,22000,0,0,0,0,0,48,0), +(200018,16341,20000,0,0,0,0,0,46,0), +(200018,10622,20000,0,0,0,0,0,46,0), +(200018,10586,20000,0,0,0,0,0,46,0), +(200018,10496,20000,0,0,0,0,0,46,0), +(200018,10472,20000,0,0,0,0,0,46,0), +(200018,10600,18000,0,0,0,0,0,44,0), +(200018,10466,18000,0,0,0,0,0,44,0), +(200018,10407,18000,0,0,0,0,0,44,0), +(200018,10392,18000,0,0,0,0,0,44,0), +(200018,11314,16000,0,0,0,0,0,42,0), +(200018,10537,16000,0,0,0,0,0,42,0), +(200018,52134,12000,0,0,0,0,0,41,0), +(200018,66843,700,0,0,0,0,0,40,0), +(200018,51988,12000,0,0,0,0,0,40,0), +(200018,10447,12000,0,0,0,0,0,40,0), +(200018,8737,12000,0,0,0,0,0,40,0), +(200018,8235,12000,0,0,0,0,0,40,0), +(200018,8134,12000,0,0,0,0,0,40,0), +(200018,8005,12000,0,0,0,0,0,40,0), +(200018,6377,12000,0,0,0,0,0,40,0), +(200018,6365,12000,0,0,0,0,0,40,0), +(200018,1064,12000,0,0,0,0,0,40,0), +(200018,930,12000,0,0,0,0,0,40,0), +(200018,10478,11000,0,0,0,0,0,38,0), +(200018,10456,11000,0,0,0,0,0,38,0), +(200018,10391,11000,0,0,0,0,0,38,0), +(200018,8249,11000,0,0,0,0,0,38,0), +(200018,8170,11000,0,0,0,0,0,38,0), +(200018,8161,11000,0,0,0,0,0,38,0), +(200018,6392,11000,0,0,0,0,0,38,0), +(200018,20610,10000,0,0,0,0,0,36,0), +(200018,16339,10000,0,0,0,0,0,36,0), +(200018,10585,10000,0,0,0,0,0,36,0), +(200018,10495,10000,0,0,0,0,0,36,0), +(200018,10412,10000,0,0,0,0,0,36,0), +(200018,8010,10000,0,0,0,0,0,36,0), +(200018,52131,9000,0,0,0,0,0,34,0), +(200018,10406,9000,0,0,0,0,0,34,0), +(200018,8058,9000,0,0,0,0,0,34,0), +(200018,6495,9000,0,0,0,0,0,34,0), +(200018,8512,8000,0,0,0,0,0,32,0), +(200018,8499,8000,0,0,0,0,0,32,0), +(200018,8012,8000,0,0,0,0,0,32,0), +(200018,6041,8000,0,0,0,0,0,32,0), +(200018,959,8000,0,0,0,0,0,32,0), +(200018,945,8000,0,0,0,0,0,32,0), +(200018,421,8000,0,0,0,0,0,32,0), +(200018,66842,700,0,0,0,0,0,30,0), +(200018,51730,7000,0,0,0,0,0,30,0), +(200018,36936,7000,0,0,0,0,0,30,0), +(200018,20608,7000,0,0,0,0,0,30,0), +(200018,10595,7000,0,0,0,0,0,30,0), +(200018,8232,7000,0,0,0,0,0,30,0), +(200018,8177,7000,0,0,0,0,0,30,0), +(200018,6375,7000,0,0,0,0,0,30,0), +(200018,6364,7000,0,0,0,0,0,30,0), +(200018,556,7000,0,0,0,0,0,30,0), +(200018,52129,6000,0,0,0,0,0,28,0), +(200018,8227,6000,0,0,0,0,0,28,0), +(200018,8184,6000,0,0,0,0,0,28,0), +(200018,8053,6000,0,0,0,0,0,28,0), +(200018,8038,6000,0,0,0,0,0,28,0), +(200018,8008,6000,0,0,0,0,0,28,0), +(200018,6391,6000,0,0,0,0,0,28,0), +(200018,546,6000,0,0,0,0,0,28,0), +(200018,8190,4000,0,0,0,0,0,26,0), +(200018,8030,4000,0,0,0,0,0,26,0), +(200018,6196,4000,0,0,0,0,0,26,0), +(200018,5675,4000,0,0,0,0,0,26,0), +(200018,943,4000,0,0,0,0,0,26,0), +(200018,20609,3500,0,0,0,0,0,24,0), +(200018,10399,3500,0,0,0,0,0,24,0), +(200018,8181,3500,0,0,0,0,0,24,0), +(200018,8160,3500,0,0,0,0,0,24,0), +(200018,8155,3500,0,0,0,0,0,24,0), +(200018,8046,3500,0,0,0,0,0,24,0), +(200018,939,3500,0,0,0,0,0,24,0), +(200018,905,3500,0,0,0,0,0,24,0), +(200018,8498,3000,0,0,0,0,0,22,0), +(200018,131,3000,0,0,0,0,0,22,0), +(200018,52127,2200,0,0,0,0,0,20,0), +(200018,8056,2200,0,0,0,0,0,20,0), +(200018,8033,2200,0,0,0,0,0,20,0), +(200018,8004,2200,0,0,0,0,0,20,0), +(200018,6363,2200,0,0,0,0,0,20,0), +(200018,915,2200,0,0,0,0,0,20,0), +(200018,8143,2000,0,0,0,0,0,18,0), +(200018,8052,2000,0,0,0,0,0,18,0), +(200018,8027,2000,0,0,0,0,0,18,0), +(200018,6390,2000,0,0,0,0,0,18,0), +(200018,913,2000,0,0,0,0,0,18,0), +(200018,57994,2500,0,0,0,0,0,16,0), +(200018,8019,1800,0,0,0,0,0,16,0), +(200018,2645,2200,0,0,0,0,0,16,0), +(200018,526,1800,0,0,0,0,0,16,0), +(200018,325,1800,0,0,0,0,0,16,0), +(200018,8154,900,0,0,0,0,0,14,0), +(200018,8045,900,0,0,0,0,0,14,0), +(200018,548,900,0,0,0,0,0,14,0), +(200018,2008,800,0,0,0,0,0,12,0), +(200018,1535,800,0,0,0,0,0,12,0), +(200018,547,800,0,0,0,0,0,12,0), +(200018,370,800,0,0,0,0,0,12,0), +(200018,8075,400,0,0,0,0,0,10,0), +(200018,8050,400,0,0,0,0,0,10,0), +(200018,8024,400,0,0,0,0,0,10,0), +(200018,8044,100,0,0,0,0,0,8,0), +(200018,8018,100,0,0,0,0,0,8,0), +(200018,5730,100,0,0,0,0,0,8,0), +(200018,529,100,0,0,0,0,0,8,0), +(200018,324,100,0,0,0,0,0,8,0), +(200018,25454,79000,0,0,0,0,0,69,0), +(200018,25505,71000,0,0,0,0,0,68,0), +(200018,2825,88000,0,0,0,0,0,70,0), +(200019,48265,360000,0,0,0,0,0,70,0), +(200019,47476,5900,0,0,0,0,0,59,0), +(200019,55271,18000,0,0,0,0,0,79,0), +(200019,55270,18000,0,0,0,0,0,73,0), +(200019,55265,18000,0,0,0,0,0,67,0), +(200019,56815,67000,0,0,0,0,0,67,0), +(200019,62158,360000,0,0,0,0,0,72,0), +(200019,70164,360000,0,0,0,0,0,72,0), +(200019,53344,360000,0,0,0,0,0,70,0), +(200019,53323,63000,0,0,0,0,0,63,0), +(200019,54446,68000,0,0,0,0,0,63,0), +(200019,53342,5700,0,0,0,0,0,57,0), +(200019,54447,5700,0,0,0,0,0,57,0), +(200019,53343,55000,0,0,0,0,0,55,0), +(200019,53331,6000,0,0,0,0,0,60,0), +(200019,53341,55000,0,0,0,0,0,55,0), +(200019,46584,5600,0,0,0,0,0,56,0), +(200019,61999,360000,0,0,0,0,0,72,0), +(200019,49921,360000,0,0,0,0,0,80,0), +(200019,49920,360000,0,0,0,0,0,75,0), +(200019,49919,360000,0,0,0,0,0,70,0), +(200019,49918,65000,0,0,0,0,0,65,0), +(200019,49917,5800,0,0,0,0,0,60,0), +(200019,50842,5600,0,0,0,0,0,56,0), +(200019,3714,61000,0,0,0,0,0,61,0), +(200019,51425,360000,0,0,0,0,0,79,0), +(200019,51424,360000,0,0,0,0,0,73,0), +(200019,51423,67000,0,0,0,0,0,67,0), +(200019,49020,61000,0,0,0,0,0,61,0), +(200019,47528,5700,0,0,0,0,0,57,0), +(200019,49909,360000,0,0,0,0,0,78,0), +(200019,49904,360000,0,0,0,0,0,73,0), +(200019,49903,67000,0,0,0,0,0,67,0), +(200019,49896,61000,0,0,0,0,0,61,0), +(200019,48792,62000,0,0,0,0,0,62,0), +(200019,51411,10000,0,0,0,0,0,80,0), +(200019,51410,10000,0,0,0,0,0,75,0), +(200019,51409,6500,0,0,0,0,0,70,0), +(200019,57623,360000,0,0,0,0,0,75,0), +(200019,57330,65000,0,0,0,0,0,65,0), +(200019,55262,18000,0,0,0,0,0,80,0), +(200019,55261,18000,0,0,0,0,0,74,0), +(200019,55260,3450,0,0,0,0,0,69,0), +(200019,55259,3200,0,0,0,0,0,64,0), +(200019,55258,5900,0,0,0,0,0,59,0), +(200019,55268,18000,0,0,0,0,0,80,0), +(200019,51419,18000,0,0,0,0,0,75,0), +(200019,51418,18000,0,0,0,0,0,70,0), +(200019,51417,3250,0,0,0,0,0,65,0), +(200019,51416,6200,0,0,0,0,0,60,0), +(200019,48263,5700,0,0,0,0,0,57,0), +(200019,47568,360000,0,0,0,0,0,75,0), +(200019,49999,65000,0,0,0,0,0,63,0), +(200019,49998,5600,0,0,0,0,0,56,0), +(200019,49924,360000,0,0,0,0,0,80,0), +(200019,49923,360000,0,0,0,0,0,75,0), +(200019,45463,63000,0,0,0,0,0,70,0), +(200019,48743,66000,0,0,0,0,0,66,0), +(200019,49895,360000,0,0,0,0,0,80,0), +(200019,49894,360000,0,0,0,0,0,76,0), +(200019,49893,68000,0,0,0,0,0,68,0), +(200019,49892,59000,0,0,0,0,0,62,0), +(200019,49938,360000,0,0,0,0,0,80,0), +(200019,49937,360000,0,0,0,0,0,73,0), +(200019,49936,68000,0,0,0,0,0,67,0), +(200019,43265,6000,0,0,0,0,0,60,0), +(200019,56222,65000,0,0,0,0,0,65,0), +(200019,51328,18000,0,0,0,0,0,80,0), +(200019,51327,18000,0,0,0,0,0,75,0), +(200019,51326,18000,0,0,0,0,0,70,0), +(200019,51325,300,0,0,0,0,0,60,0), +(200019,45524,5800,0,0,0,0,0,58,0), +(200019,45529,64000,0,0,0,0,0,64,0), +(200019,49930,360000,0,0,0,0,0,80,0), +(200019,49929,360000,0,0,0,0,0,74,0), +(200019,49928,69000,0,0,0,0,0,69,0), +(200019,49927,64000,0,0,0,0,0,64,0), +(200019,49926,5900,0,0,0,0,0,59,0), +(200019,49941,360000,0,0,0,0,0,78,0), +(200019,49940,360000,0,0,0,0,0,72,0), +(200019,49939,66000,0,0,0,0,0,66,0), +(200019,48721,5800,0,0,0,0,0,58,0), +(200019,42650,360000,0,0,0,0,0,80,0), +(200019,48707,68000,0,0,0,0,0,68,0), +(200020,31801,67000,0,0,0,0,0,64,0), +(200020,23214,3500,0,0,0,0,0,40,0), +(200020,13820,3500,0,0,0,0,0,20,0), +(200021,34768,3500,0,0,0,0,0,20,0), +(200021,34767,3500,0,0,0,0,0,40,0), +(200021,53736,100000,0,0,0,0,0,66,0), +(201001,17573,20000,171,285,0,0,0,0,0), +(201001,17572,20000,171,285,0,0,0,0,0), +(201001,17557,20000,171,275,0,0,0,0,0), +(201001,17556,20000,171,275,0,0,0,0,0), +(201001,17555,15000,171,270,0,0,0,0,0), +(201001,17553,15000,171,260,0,0,0,0,0), +(201001,17552,15000,171,255,0,0,0,0,0), +(201001,17551,15000,171,250,0,0,0,0,0), +(201001,11478,14000,171,250,0,0,0,0,0), +(201001,11467,12000,171,240,0,0,0,0,0), +(201001,11465,12000,171,235,0,0,0,0,0), +(201001,11461,10000,171,235,0,0,0,0,0), +(201001,15833,10000,171,230,0,0,0,0,0), +(201001,11460,5000,171,230,0,0,0,0,0), +(201001,22808,10000,171,215,0,0,0,0,0), +(201001,11457,10000,171,215,0,0,0,0,0), +(201001,11451,8000,171,205,0,0,0,0,0), +(201001,11448,9000,171,205,0,0,0,0,0), +(201001,12609,8000,171,200,0,0,0,0,0), +(201001,11612,50000,171,200,3464,0,0,35,0), +(201001,11450,7500,171,195,0,0,0,0,0), +(201001,11449,6500,171,185,0,0,0,0,0), +(201001,3450,6000,171,175,0,0,0,0,0), +(201001,3448,5000,171,165,0,0,0,0,0), +(201001,3452,5000,171,160,0,0,0,0,0), +(201001,7181,5000,171,155,0,0,0,0,0), +(201001,7845,3000,171,140,0,0,0,0,0), +(201001,63732,2000,171,135,0,0,0,0,0), +(201001,7837,1000,171,130,0,0,0,0,0), +(201001,3177,2000,171,130,0,0,0,0,0), +(201001,3465,5000,171,125,3101,0,0,20,0), +(201001,3176,1500,171,125,0,0,0,0,0), +(201001,3173,1500,171,120,0,0,0,0,0), +(201001,3447,4000,171,110,0,0,0,0,0), +(201001,7841,1000,171,100,0,0,0,0,0), +(201001,7179,450,171,90,0,0,0,0,0), +(201001,3171,500,171,90,0,0,0,0,0), +(201001,7836,250,171,80,0,0,0,0,0), +(201001,2337,1000,171,55,0,0,0,0,0), +(201001,53042,10000,171,50,0,0,0,0,0), +(201001,2334,250,171,50,0,0,0,0,0), +(201001,2280,500,171,50,2259,0,0,10,0), +(201001,2332,150,171,40,0,0,0,0,0), +(201001,2331,100,171,25,0,0,0,0,0), +(201001,3170,50,171,15,0,0,0,0,0), +(201001,2275,10,0,0,0,0,0,5,0), +(201002,38070,20000,171,325,0,0,0,0,0), +(201002,45061,30000,171,325,0,0,0,0,0), +(201002,28551,50000,171,325,0,0,0,0,0), +(201002,39638,30000,171,320,0,0,0,0,0), +(201002,33741,30000,171,315,0,0,0,0,0), +(201002,39636,25000,171,310,0,0,0,0,0), +(201002,33733,25000,171,310,0,0,0,0,0), +(201002,28545,25000,171,310,0,0,0,0,0), +(201002,28544,25000,171,305,0,0,0,0,0), +(201002,33740,20000,171,300,0,0,0,0,0), +(201002,33738,20000,171,300,0,0,0,0,0), +(201002,33732,20000,171,300,0,0,0,0,0), +(201002,28597,100000,171,275,11611,0,0,50,0), +(201003,62213,120000,171,385,0,0,0,0,0), +(201003,66664,150000,171,450,0,0,0,0,0), +(201003,51303,350000,171,350,28596,0,0,65,0), +(201003,53841,40000,171,355,0,0,0,0,0), +(201003,53042,10000,171,50,0,0,0,0,0), +(201003,53839,40000,171,360,0,0,0,0,0), +(201003,53838,40000,171,350,0,0,0,0,0), +(201003,53898,120000,171,390,0,0,0,0,0), +(201003,53899,60000,171,375,0,0,0,0,0), +(201003,53900,120000,171,380,0,0,0,0,0), +(201003,53848,60000,171,375,0,0,0,0,0), +(201003,53840,120000,171,395,0,0,0,0,0), +(201003,53905,120000,171,395,0,0,0,0,0), +(201003,54218,120000,171,385,0,0,0,0,0), +(201003,53901,180000,171,435,0,0,0,0,0), +(201003,58868,150000,171,410,0,0,0,0,0), +(201003,60350,150000,171,395,0,0,0,0,0), +(201003,53847,65000,171,385,0,0,0,0,0), +(201003,67025,100000,171,425,0,0,0,0,0), +(201003,53842,40000,171,365,0,0,0,0,0), +(201003,60403,200000,171,400,0,0,0,0,0), +(201003,60367,120000,171,395,0,0,0,0,0), +(201003,60405,200000,171,400,0,0,0,0,0), +(201003,60893,200000,171,400,0,0,0,0,0), +(201003,58871,150000,171,410,0,0,0,0,0), +(201003,53902,150000,171,435,0,0,0,0,0), +(201003,60396,200000,171,400,0,0,0,0,0), +(201003,62409,60000,171,375,0,0,0,0,0), +(201003,53837,150000,171,410,0,0,0,0,0), +(201003,53836,150000,171,405,0,0,0,0,0), +(201003,66660,150000,171,450,0,0,0,0,0), +(201003,53903,180000,171,435,0,0,0,0,0), +(201003,66658,150000,171,450,0,0,0,0,0), +(201003,54213,150000,171,435,0,0,0,0,0), +(201003,57427,150000,171,425,0,0,0,0,0), +(201003,57425,150000,171,430,0,0,0,0,0), +(201003,66663,150000,171,450,0,0,0,0,0), +(201003,66662,150000,171,450,0,0,0,0,0), +(201003,53812,60000,171,375,0,0,0,0,0), +(201004,34982,10000,164,300,0,0,0,0,0), +(201004,16662,12000,164,300,0,0,0,0,0), +(201004,16971,15000,164,280,0,0,0,0,0), +(201004,16653,10000,164,280,0,0,0,0,0), +(201004,16652,10000,164,280,0,0,0,0,0), +(201004,20201,10000,164,275,0,0,0,0,0), +(201004,19669,10000,164,275,0,0,0,0,0), +(201004,16969,15000,164,275,0,0,0,0,0), +(201004,16644,10000,164,255,0,0,0,0,0), +(201004,16643,10000,164,250,0,0,0,0,0), +(201004,16642,10000,164,250,0,0,0,0,0), +(201004,16641,10000,164,250,0,0,0,0,0), +(201004,16640,10000,164,250,0,0,0,0,0), +(201004,16639,10000,164,250,0,0,0,0,0), +(201004,9968,20000,164,235,0,0,0,0,0), +(201004,10001,15000,164,230,0,0,0,0,0), +(201004,9961,15000,164,230,0,0,0,0,0), +(201004,9959,15000,164,230,0,0,0,0,0), +(201004,9935,5000,164,215,0,0,0,0,0), +(201004,9993,10000,164,210,0,0,0,0,0), +(201004,9931,5000,164,210,0,0,0,0,0), +(201004,9928,5000,164,205,0,0,0,0,0), +(201004,9926,5000,164,205,0,0,0,0,0), +(201004,34981,7500,164,200,0,0,0,0,0), +(201004,19668,2500,164,200,0,0,0,0,0), +(201004,14380,2500,164,200,0,0,0,0,0), +(201004,9921,2500,164,200,0,0,0,0,0), +(201004,9920,2500,164,200,0,0,0,0,0), +(201004,9918,2500,164,200,0,0,0,0,0), +(201004,9916,2500,164,200,0,0,0,0,0), +(201004,9786,50000,164,200,3538,0,0,35,0), +(201004,7223,1000,164,185,0,0,0,0,0), +(201004,15972,7500,164,180,0,0,0,0,0), +(201004,3508,7500,164,180,0,0,0,0,0), +(201004,3502,1250,164,170,0,0,0,0,0), +(201004,3501,1000,164,165,0,0,0,0,0), +(201004,3506,5000,164,155,0,0,0,0,0), +(201004,19667,250,164,150,0,0,0,0,0), +(201004,14379,250,164,150,0,0,0,0,0), +(201004,8768,250,164,150,0,0,0,0,0), +(201004,2675,1000,164,145,0,0,0,0,0), +(201004,9987,500,164,135,0,0,0,0,0), +(201004,3333,1000,164,135,0,0,0,0,0), +(201004,9986,500,164,130,0,0,0,0,0), +(201004,3331,500,164,130,0,0,0,0,0), +(201004,3296,1000,164,130,0,0,0,0,0), +(201004,9985,250,164,125,0,0,0,0,0), +(201004,3539,5000,164,125,3100,0,0,20,0), +(201004,3337,1000,164,125,0,0,0,0,0), +(201004,3117,1000,164,125,0,0,0,0,0), +(201004,2674,1000,164,125,0,0,0,0,0), +(201004,2742,200,164,120,0,0,0,0,0), +(201004,2672,500,164,120,0,0,0,0,0), +(201004,2741,200,164,115,0,0,0,0,0), +(201004,6517,800,164,110,0,0,0,0,0), +(201004,3328,500,164,110,0,0,0,0,0), +(201004,2740,200,164,110,0,0,0,0,0), +(201004,3491,600,164,105,0,0,0,0,0), +(201004,2670,500,164,105,0,0,0,0,0), +(201004,2668,300,164,105,0,0,0,0,0), +(201004,34979,600,164,100,0,0,0,0,0), +(201004,19666,100,164,100,0,0,0,0,0), +(201004,7818,100,164,100,0,0,0,0,0), +(201004,7817,200,164,95,0,0,0,0,0), +(201004,3292,500,164,95,0,0,0,0,0), +(201004,2664,500,164,90,0,0,0,0,0), +(201004,3326,250,164,75,0,0,0,0,0), +(201004,3294,500,164,70,0,0,0,0,0), +(201004,2666,200,164,70,0,0,0,0,0), +(201004,7408,300,164,65,0,0,0,0,0), +(201004,3116,100,164,65,0,0,0,0,0), +(201004,2665,100,164,65,0,0,0,0,0), +(201004,2021,500,164,50,2018,0,0,10,0), +(201004,3324,200,164,45,0,0,0,0,0), +(201004,3323,100,164,40,0,0,0,0,0), +(201004,3293,250,164,35,0,0,0,0,0), +(201004,2661,100,164,35,0,0,0,0,0), +(201004,9983,100,164,30,0,0,0,0,0), +(201004,8880,100,164,30,0,0,0,0,0), +(201004,3320,100,164,25,0,0,0,0,0), +(201004,2739,50,164,25,0,0,0,0,0), +(201004,3319,50,164,20,0,0,0,0,0), +(201004,2738,50,164,20,0,0,0,0,0), +(201004,2737,50,164,15,0,0,0,0,0), +(201004,2662,50,164,1,0,0,0,0,0), +(201004,2020,10,0,0,0,0,0,5,0), +(201005,34983,50000,164,350,0,0,0,0,0), +(201005,32284,25000,164,325,0,0,0,0,0), +(201005,29550,25000,164,325,0,0,0,0,0), +(201005,29565,22000,164,320,0,0,0,0,0), +(201005,29556,22000,164,320,0,0,0,0,0), +(201005,29558,20000,164,315,0,0,0,0,0), +(201005,29553,20000,164,315,0,0,0,0,0), +(201005,29549,20000,164,315,0,0,0,0,0), +(201005,29548,20000,164,315,0,0,0,0,0), +(201005,29557,18000,164,310,0,0,0,0,0), +(201005,29552,18000,164,310,0,0,0,0,0), +(201005,29547,15000,164,305,0,0,0,0,0), +(201005,34607,15000,164,300,0,0,0,0,0), +(201005,32655,10000,164,300,0,0,0,0,0), +(201005,29654,15000,164,300,0,0,0,0,0), +(201005,29551,15000,164,300,0,0,0,0,0), +(201005,29545,15000,164,300,0,0,0,0,0), +(201005,29845,100000,164,275,9785,0,0,50,0), +(201006,63182,150000,164,440,0,0,0,0,0), +(201006,56400,150000,164,440,0,0,0,0,0), +(201006,56234,150000,164,440,0,0,0,0,0), +(201006,55377,120000,164,440,0,0,0,0,0), +(201006,55376,120000,164,440,0,0,0,0,0), +(201006,55375,120000,164,440,0,0,0,0,0), +(201006,55374,120000,164,440,0,0,0,0,0), +(201006,55373,120000,164,440,0,0,0,0,0), +(201006,55372,120000,164,440,0,0,0,0,0), +(201006,55371,150000,164,440,0,0,0,0,0), +(201006,55370,150000,164,440,0,0,0,0,0), +(201006,55369,180000,164,440,0,0,0,0,0), +(201006,59406,45000,164,430,0,0,0,0,0), +(201006,61008,120000,164,425,0,0,0,0,0), +(201006,56556,45000,164,425,0,0,0,0,0), +(201006,56555,45000,164,425,0,0,0,0,0), +(201006,56554,45000,164,425,0,0,0,0,0), +(201006,55312,45000,164,425,0,0,0,0,0), +(201006,55311,45000,164,425,0,0,0,0,0), +(201006,55310,45000,164,425,0,0,0,0,0), +(201006,55304,45000,164,425,0,0,0,0,0), +(201006,55303,45000,164,425,0,0,0,0,0), +(201006,55302,45000,164,425,0,0,0,0,0), +(201006,61010,120000,164,420,0,0,0,0,0), +(201006,61009,120000,164,420,0,0,0,0,0), +(201006,56553,45000,164,420,0,0,0,0,0), +(201006,56552,45000,164,420,0,0,0,0,0), +(201006,56551,45000,164,420,0,0,0,0,0), +(201006,56550,45000,164,420,0,0,0,0,0), +(201006,56549,45000,164,420,0,0,0,0,0), +(201006,56357,42000,164,420,0,0,0,0,0), +(201006,55839,42000,164,420,0,0,0,0,0), +(201006,55732,42000,164,420,0,0,0,0,0), +(201006,55309,45000,164,420,0,0,0,0,0), +(201006,55308,45000,164,420,0,0,0,0,0), +(201006,55307,45000,164,420,0,0,0,0,0), +(201006,55306,45000,164,420,0,0,0,0,0), +(201006,55305,45000,164,420,0,0,0,0,0), +(201006,55301,45000,164,420,0,0,0,0,0), +(201006,55300,45000,164,420,0,0,0,0,0), +(201006,55298,45000,164,420,0,0,0,0,0), +(201006,59441,45000,164,415,0,0,0,0,0), +(201006,55656,50000,164,415,0,0,0,0,0), +(201006,55058,45000,164,415,0,0,0,0,0), +(201006,55015,40000,164,415,0,0,0,0,0), +(201006,59442,40000,164,410,0,0,0,0,0), +(201006,56280,40000,164,410,0,0,0,0,0), +(201006,55182,40000,164,410,0,0,0,0,0), +(201006,55017,40000,164,410,0,0,0,0,0), +(201006,55014,35000,164,410,0,0,0,0,0), +(201006,59440,40000,164,405,0,0,0,0,0), +(201006,55206,40000,164,405,0,0,0,0,0), +(201006,55181,50000,164,405,0,0,0,0,0), +(201006,55057,40000,164,405,0,0,0,0,0), +(201006,54556,40000,164,405,0,0,0,0,0), +(201006,54555,40000,164,405,0,0,0,0,0), +(201006,59438,40000,164,400,0,0,0,0,0), +(201006,55641,45000,164,400,0,0,0,0,0), +(201006,55628,45000,164,400,0,0,0,0,0), +(201006,55179,50000,164,400,0,0,0,0,0), +(201006,55056,40000,164,400,0,0,0,0,0), +(201006,54949,30000,164,400,0,0,0,0,0), +(201006,54948,30000,164,400,0,0,0,0,0), +(201006,54553,40000,164,400,0,0,0,0,0), +(201006,54552,40000,164,400,0,0,0,0,0), +(201006,59436,40000,164,395,0,0,0,0,0), +(201006,55177,50000,164,395,0,0,0,0,0), +(201006,55055,40000,164,395,0,0,0,0,0), +(201006,54947,35000,164,395,0,0,0,0,0), +(201006,54946,30000,164,395,0,0,0,0,0), +(201006,54554,40000,164,395,0,0,0,0,0), +(201006,54551,40000,164,395,0,0,0,0,0), +(201006,55204,35000,164,390,0,0,0,0,0), +(201006,55174,50000,164,390,0,0,0,0,0), +(201006,55013,40000,164,390,0,0,0,0,0), +(201006,54945,35000,164,390,0,0,0,0,0), +(201006,54557,40000,164,390,0,0,0,0,0), +(201006,55203,35000,164,385,0,0,0,0,0), +(201006,55202,35000,164,385,0,0,0,0,0), +(201006,54944,30000,164,385,0,0,0,0,0), +(201006,54941,30000,164,385,0,0,0,0,0), +(201006,55201,35000,164,380,0,0,0,0,0), +(201006,55200,35000,164,380,0,0,0,0,0), +(201006,54918,30000,164,380,0,0,0,0,0), +(201006,54917,30000,164,375,0,0,0,0,0), +(201006,52570,30000,164,375,0,0,0,0,0), +(201006,55835,30000,164,370,0,0,0,0,0), +(201006,52571,30000,164,370,0,0,0,0,0), +(201006,52567,30000,164,370,0,0,0,0,0), +(201006,55834,30000,164,360,0,0,0,0,0), +(201006,54550,30000,164,360,0,0,0,0,0), +(201006,52572,30000,164,360,0,0,0,0,0), +(201006,59405,30000,164,350,0,0,0,0,0), +(201006,52569,30000,164,350,0,0,0,0,0), +(201006,52568,30000,164,350,0,0,0,0,0), +(201006,51298,350000,164,350,29844,0,0,60,0), +(201007,34534,250000,164,375,0,0,0,0,0), +(201007,36257,500000,164,375,0,0,0,0,0), +(201007,36256,500000,164,375,0,0,0,0,0), +(201007,34530,250000,164,375,0,0,0,0,0), +(201007,55186,50000,164,415,0,0,0,0,0), +(201007,55187,50000,164,415,0,0,0,0,0), +(201007,34529,100000,164,350,0,0,0,0,0), +(201007,34533,100000,164,350,0,0,0,0,0), +(201007,36130,40000,164,330,0,0,0,0,0), +(201007,36129,40000,164,330,0,0,0,0,0), +(201007,36124,10000,164,260,0,0,0,0,0), +(201007,36122,10000,164,260,0,0,0,0,0), +(201007,9954,8000,164,245,0,0,0,0,0), +(201007,9974,1000,164,245,0,0,0,0,0), +(201008,10003,15000,164,235,0,0,0,0,0), +(201008,10007,15000,164,245,0,0,0,0,0), +(201008,10011,15000,164,250,0,0,0,0,0), +(201008,36125,10000,164,260,0,0,0,0,0), +(201008,36128,10000,164,260,0,0,0,0,0), +(201008,36126,10000,164,260,0,0,0,0,0), +(201008,10015,15000,164,260,0,0,0,0,0), +(201008,36137,40000,164,330,0,0,0,0,0), +(201008,36136,40000,164,330,0,0,0,0,0), +(201008,36135,40000,164,330,0,0,0,0,0), +(201008,36133,40000,164,330,0,0,0,0,0), +(201008,36134,40000,164,330,0,0,0,0,0), +(201008,36131,40000,164,330,0,0,0,0,0), +(201008,34545,100000,164,350,0,0,0,0,0), +(201008,34535,100000,164,350,0,0,0,0,0), +(201008,34538,100000,164,350,0,0,0,0,0), +(201008,34543,100000,164,350,0,0,0,0,0), +(201008,34541,100000,164,350,0,0,0,0,0), +(201008,34547,500000,164,350,0,0,0,0,0), +(201008,34542,250000,164,375,0,0,0,0,0), +(201008,36258,500000,164,375,0,0,0,0,0), +(201008,34537,250000,164,375,0,0,0,0,0), +(201008,36261,500000,164,375,0,0,0,0,0), +(201008,34548,250000,164,375,0,0,0,0,0), +(201008,34546,250000,164,375,0,0,0,0,0), +(201008,36262,500000,164,375,0,0,0,0,0), +(201008,34540,250000,164,375,0,0,0,0,0), +(201008,36259,500000,164,375,0,0,0,0,0), +(201008,34544,250000,164,375,0,0,0,0,0), +(201008,36263,500000,164,375,0,0,0,0,0), +(201008,36260,500000,164,375,0,0,0,0,0), +(201008,55183,50000,164,415,0,0,0,0,0), +(201008,55184,50000,164,415,0,0,0,0,0), +(201008,55185,50000,164,415,0,0,0,0,0), +(201009,20023,20000,333,295,0,0,0,0,0), +(201009,20013,20000,333,295,0,0,0,0,0), +(201009,20028,15000,333,290,0,0,0,0,0), +(201009,20016,15000,333,280,0,0,0,0,0), +(201009,20012,10000,333,270,0,0,0,0,0), +(201009,20014,10000,333,265,0,0,0,0,0), +(201009,20008,10000,333,255,0,0,0,0,0), +(201009,17181,10000,333,250,0,0,0,0,0), +(201009,17180,10000,333,250,0,0,0,0,0), +(201009,13948,6500,333,250,0,0,0,0,0), +(201009,13943,6200,333,245,0,0,0,0,0), +(201009,13941,6200,333,245,0,0,0,0,0), +(201009,13939,6200,333,240,0,0,0,0,0), +(201009,13937,6200,333,240,0,0,0,0,0), +(201009,13935,5800,333,235,0,0,0,0,0), +(201009,13917,5400,333,230,0,0,0,0,0), +(201009,13905,5400,333,230,0,0,0,0,0), +(201009,13890,5000,333,225,0,0,0,0,0), +(201009,13887,5000,333,225,0,0,0,0,0), +(201009,13858,4800,333,220,0,0,0,0,0), +(201009,13836,4600,333,215,0,0,0,0,0), +(201009,13822,4400,333,210,0,0,0,0,0), +(201009,13815,4400,333,210,0,0,0,0,0), +(201009,13794,4200,333,205,0,0,0,0,0), +(201009,13746,4200,333,205,0,0,0,0,0), +(201009,13921,50000,333,200,7413,0,0,35,0), +(201009,13702,4000,333,200,0,0,0,0,0), +(201009,13700,4000,333,200,0,0,0,0,0), +(201009,13695,4000,333,200,0,0,0,0,0), +(201009,13693,4000,333,195,0,0,0,0,0), +(201009,13663,3800,333,185,0,0,0,0,0), +(201009,13661,3600,333,180,0,0,0,0,0), +(201009,13659,3200,333,180,0,0,0,0,0), +(201009,14810,3000,333,175,0,0,0,0,0), +(201009,13657,3000,333,175,0,0,0,0,0), +(201009,13648,2800,333,170,0,0,0,0,0), +(201009,13644,2800,333,170,0,0,0,0,0), +(201009,13642,2800,333,165,0,0,0,0,0), +(201009,13640,2700,333,160,0,0,0,0,0), +(201009,13637,2800,333,160,0,0,0,0,0), +(201009,14809,2600,333,155,0,0,0,0,0), +(201009,13635,2600,333,155,0,0,0,0,0), +(201009,13631,2600,333,155,0,0,0,0,0), +(201009,13628,2500,333,150,0,0,0,0,0), +(201009,13626,2500,333,150,0,0,0,0,0), +(201009,13622,2500,333,150,0,0,0,0,0), +(201009,13607,2400,333,145,0,0,0,0,0), +(201009,13529,2400,333,145,0,0,0,0,0), +(201009,13538,2500,333,140,0,0,0,0,0), +(201009,13503,2000,333,140,0,0,0,0,0), +(201009,13501,1500,333,130,0,0,0,0,0), +(201009,13485,1500,333,130,0,0,0,0,0), +(201009,7863,1400,333,125,0,0,0,0,0), +(201009,7861,1250,333,125,0,0,0,0,0), +(201009,7416,5000,333,125,7412,0,0,20,0), +(201009,7857,1000,333,120,0,0,0,0,0), +(201009,13421,800,333,115,0,0,0,0,0), +(201009,13378,600,333,105,0,0,0,0,0), +(201009,7795,1000,333,100,0,0,0,0,0), +(201009,7745,500,333,100,0,0,0,0,0), +(201009,7788,500,333,90,0,0,0,0,0), +(201009,7779,400,333,80,0,0,0,0,0), +(201009,14807,200,333,70,0,0,0,0,0), +(201009,7771,200,333,70,0,0,0,0,0), +(201009,7748,250,333,60,0,0,0,0,0), +(201009,7457,250,333,50,0,0,0,0,0), +(201009,7415,500,333,50,7411,0,0,10,0), +(201009,7454,100,333,45,0,0,0,0,0), +(201009,7426,100,333,40,0,0,0,0,0), +(201009,7428,100,333,20,0,0,0,0,0), +(201009,7420,50,333,15,0,0,0,0,0), +(201009,14293,50,333,10,0,0,0,0,0), +(201009,7414,10,0,0,0,0,0,5,0), +(201009,63746,5000,333,225,0,0,0,0,0), +(201010,28028,80000,333,350,0,0,0,0,0), +(201010,33995,25000,333,340,0,0,0,0,0), +(201010,42615,40000,333,335,0,0,0,0,0), +(201010,44383,30000,333,330,0,0,0,0,0), +(201010,28027,40000,333,325,0,0,0,0,0), +(201010,33990,20000,333,320,0,0,0,0,0), +(201010,27957,17500,333,315,0,0,0,0,0), +(201010,27905,15000,333,315,0,0,0,0,0), +(201010,27944,15000,333,310,0,0,0,0,0), +(201010,33996,15000,333,310,0,0,0,0,0), +(201010,27961,15000,333,310,0,0,0,0,0), +(201010,34004,15000,333,310,0,0,0,0,0), +(201010,33993,15000,333,305,0,0,0,0,0), +(201010,34001,15000,333,305,0,0,0,0,0), +(201010,27899,15000,333,305,0,0,0,0,0), +(201010,32664,10000,333,300,0,0,0,0,0), +(201010,42613,1000,333,300,0,0,0,0,0), +(201010,33991,12500,333,300,0,0,0,0,0), +(201010,34002,15000,333,300,0,0,0,0,0), +(201010,28030,100000,333,275,13920,0,0,50,0), +(201011,60619,150000,333,425,0,0,0,0,0), +(201011,60668,150000,333,425,0,0,0,60,0), +(201011,47900,150000,333,425,0,0,0,60,0), +(201011,44489,150000,333,420,0,0,0,60,0), +(201011,60663,150000,333,420,0,0,0,60,0), +(201011,44509,150000,333,420,0,0,0,60,0), +(201011,44593,150000,333,420,0,0,0,60,0), +(201011,44529,150000,333,415,0,0,0,60,0), +(201011,44598,150000,333,415,0,0,0,60,0), +(201011,44589,150000,333,415,0,0,0,60,0), +(201011,44510,150000,333,410,0,0,0,60,0), +(201011,44633,150000,333,410,0,0,0,60,0), +(201011,44488,150000,333,410,0,0,0,60,0), +(201011,44508,150000,333,410,0,0,0,60,0), +(201011,44484,150000,333,405,0,0,0,60,0), +(201011,44584,150000,333,405,0,0,0,60,0), +(201011,59636,100000,333,400,0,0,0,60,0), +(201011,44636,100000,333,400,0,0,0,60,0), +(201011,44645,100000,333,400,0,0,0,60,0), +(201011,47766,100000,333,400,0,0,0,60,0), +(201011,44616,100000,333,400,0,0,0,60,0), +(201011,44629,100000,333,395,0,0,0,60,0), +(201011,60653,100000,333,395,0,0,0,60,0), +(201011,44513,100000,333,395,0,0,0,60,0), +(201011,44500,100000,333,395,0,0,0,60,0), +(201011,44582,100000,333,395,0,0,0,60,0), +(201011,44492,100000,333,395,0,0,0,60,0), +(201011,44635,100000,333,395,0,0,0,60,0), +(201011,44630,80000,333,390,0,0,0,60,0), +(201011,62959,90000,333,385,0,0,0,60,0), +(201011,60623,90000,333,385,0,0,0,60,0), +(201011,44528,90000,333,385,0,0,0,60,0), +(201011,60621,80000,333,380,0,0,0,60,0), +(201011,32667,50000,333,375,0,0,0,35,0), +(201011,44506,50000,333,375,0,0,0,60,0), +(201011,44555,50000,333,375,0,0,0,60,0), +(201011,60606,50000,333,375,0,0,0,60,0), +(201011,44623,50000,333,370,0,0,0,60,0), +(201011,44592,50000,333,360,0,0,0,60,0), +(201011,60616,50000,333,360,0,0,0,60,0), +(201011,51312,350000,333,350,28029,0,0,65,0), +(201011,60609,50000,333,350,0,0,0,60,0), +(201011,27958,50000,333,350,0,0,0,60,0), +(201011,69412,150000,333,445,0,0,0,60,0), +(201012,19795,10000,202,275,0,0,0,0,0), +(201012,19788,4000,202,250,0,0,0,0,0), +(201012,19794,20000,202,270,0,0,0,0,0), +(201012,19800,10000,202,285,0,0,0,0,0), +(201012,19792,10000,202,260,0,0,0,0,0), +(201012,19567,4000,202,250,0,0,0,0,0), +(201012,23070,5000,202,250,0,0,0,0,0), +(201012,23071,5000,202,260,0,0,0,0,0), +(201012,19790,10000,202,260,0,0,0,0,0), +(201012,19791,5000,202,260,0,0,0,0,0), +(201012,19825,20000,202,290,0,0,0,0,0), +(201012,3922,115,202,30,0,0,0,0,0), +(201012,3923,130,202,30,0,0,0,0,0), +(201012,3924,150,202,50,0,0,0,0,0), +(201012,3925,150,202,50,0,0,0,0,0), +(201012,4040,500,202,50,4036,0,0,10,0), +(201012,7430,150,202,50,0,0,0,0,0), +(201012,3977,200,202,60,0,0,0,0,0), +(201012,3926,225,202,65,0,0,0,0,0), +(201012,3929,250,202,75,0,0,0,0,0), +(201012,3930,250,202,75,0,0,0,0,0), +(201012,3931,250,202,75,0,0,0,0,0), +(201012,3973,300,202,90,0,0,0,0,0), +(201012,6458,400,202,135,0,0,0,0,0), +(201012,3950,600,202,140,0,0,0,0,0), +(201012,3955,750,202,150,0,0,0,0,0), +(201012,3932,300,202,85,0,0,0,0,0), +(201012,3953,600,202,145,0,0,0,0,0), +(201012,3934,400,202,100,0,0,0,0,0), +(201012,8334,300,202,100,0,0,0,0,0), +(201012,3956,450,202,150,0,0,0,0,0), +(201012,9271,500,202,150,0,0,0,0,0), +(201012,3958,800,202,160,0,0,0,0,0), +(201012,12584,1000,202,150,0,0,0,0,0), +(201012,3936,420,202,105,0,0,0,0,0), +(201012,3937,450,202,105,0,0,0,0,0), +(201012,3961,900,202,170,0,0,0,0,0), +(201012,3962,1000,202,175,0,0,0,0,0), +(201012,3941,500,202,120,0,0,0,0,0), +(201012,3963,1000,202,175,0,0,0,0,0), +(201012,3965,1200,202,185,0,0,0,0,0), +(201012,12586,1000,202,175,0,0,0,0,0), +(201012,12590,1000,202,175,0,0,0,0,0), +(201012,12585,1000,202,175,0,0,0,0,0), +(201012,3967,1400,202,190,0,0,0,0,0), +(201012,3947,300,202,125,0,0,0,0,0), +(201012,12657,50000,202,200,4038,0,0,35,0), +(201012,12591,1500,202,200,0,0,0,0,0), +(201012,12589,1300,202,195,0,0,0,0,0), +(201012,15255,1500,202,200,0,0,0,0,0), +(201012,3938,450,202,105,0,0,0,0,0), +(201012,3949,550,202,130,0,0,0,0,0), +(201012,12594,1600,202,205,0,0,0,0,0), +(201012,12595,1600,202,205,0,0,0,0,0), +(201012,12596,1700,202,210,0,0,0,0,0), +(201012,12599,1800,202,215,0,0,0,0,0), +(201012,12603,1800,202,215,0,0,0,0,0), +(201012,4041,5000,202,125,4037,0,0,20,0), +(201012,12618,2200,202,230,0,0,0,0,0), +(201012,12615,2500,202,225,0,0,0,0,0), +(201012,3978,475,202,110,0,0,0,0,0), +(201012,12619,2400,202,235,0,0,0,0,0), +(201012,12621,2800,202,245,0,0,0,0,0), +(201012,4039,10,0,0,0,0,0,5,0), +(201012,3942,500,202,125,0,0,0,0,0), +(201012,3945,500,202,125,0,0,0,0,0), +(201012,3946,500,202,125,0,0,0,0,0), +(201012,12622,2800,202,245,0,0,0,0,0), +(201012,63750,5000,202,250,0,0,0,0,0), +(201013,30304,10000,202,300,0,0,0,0,0), +(201013,30351,100000,202,275,12656,0,0,50,0), +(201013,30303,10000,202,300,0,0,0,0,0), +(201013,44155,50000,202,300,0,0,0,60,0), +(201013,30346,15000,202,310,0,0,0,0,0), +(201013,30312,20000,202,320,0,0,0,0,0), +(201013,30306,20000,202,325,0,0,0,0,0), +(201013,39971,20000,202,335,0,0,0,0,0), +(201013,30307,50000,202,340,0,0,0,0,0), +(201013,30311,25000,202,325,0,0,0,0,0), +(201013,30305,10000,202,300,0,0,0,0,0), +(201013,30309,50000,202,340,0,0,0,0,0), +(201013,30310,15000,202,300,0,0,0,0,0), +(201013,30308,50000,202,340,0,0,0,0,0), +(201013,41307,50000,202,375,0,0,0,0,0), +(201014,61483,125000,202,420,0,0,0,0,0), +(201014,61482,125000,202,420,0,0,0,0,0), +(201014,41311,50000,202,350,0,0,0,0,0), +(201014,41312,50000,202,350,0,0,0,0,0), +(201014,41314,50000,202,350,0,0,0,0,0), +(201014,41315,50000,202,350,0,0,0,0,0), +(201014,41316,50000,202,350,0,0,0,0,0), +(201014,41317,50000,202,350,0,0,0,0,0), +(201014,41318,50000,202,350,0,0,0,0,0), +(201014,41319,50000,202,350,0,0,0,0,0), +(201014,41320,50000,202,350,0,0,0,0,0), +(201014,41321,50000,202,350,0,0,0,0,0), +(201014,53281,50000,202,350,0,0,0,0,0), +(201014,56460,50000,202,350,0,0,0,0,0), +(201014,54999,125000,202,400,0,0,0,0,0), +(201014,63770,125000,202,400,0,0,0,0,0), +(201014,56468,125000,202,405,0,0,0,0,0), +(201014,56349,50000,202,350,0,0,0,0,0), +(201014,55016,125000,202,405,0,0,0,0,0), +(201014,61464,350000,202,350,30350,0,0,65,0), +(201014,56459,100000,202,375,0,0,0,0,0), +(201014,56474,125000,202,410,0,0,0,0,0), +(201014,56476,125000,202,410,0,0,0,0,0), +(201014,67839,100000,202,410,0,0,0,0,0), +(201014,67326,100000,202,410,0,0,0,0,0), +(201014,56461,50000,202,375,0,0,0,0,0), +(201014,56463,100000,202,375,0,0,0,0,0), +(201014,56475,125000,202,415,0,0,0,0,0), +(201014,56477,125000,202,415,0,0,0,0,0), +(201014,55002,100000,202,380,0,0,0,0,0), +(201014,56466,125000,202,420,0,0,0,0,0), +(201014,56469,150000,202,425,0,0,0,0,0), +(201014,61481,125000,202,420,0,0,0,0,0), +(201014,56465,125000,202,420,0,0,0,0,0), +(201014,56467,125000,202,420,0,0,0,0,0), +(201014,56470,150000,202,425,0,0,0,0,0), +(201014,61471,100000,202,390,0,0,0,0,0), +(201014,56462,150000,202,435,0,0,0,0,0), +(201014,56478,200000,202,430,0,0,0,0,0), +(201014,56472,150000,202,425,0,0,0,0,0), +(201014,67920,150000,202,435,0,0,0,0,0), +(201014,56464,100000,202,375,0,0,0,0,0), +(201014,54998,125000,202,400,0,0,0,0,0), +(201014,56480,150000,202,440,0,0,0,0,0), +(201014,56481,150000,202,440,0,0,0,0,0), +(201014,56483,150000,202,440,0,0,0,0,0), +(201014,56484,150000,202,440,0,0,0,0,0), +(201014,56486,150000,202,440,0,0,0,0,0), +(201014,54353,125000,202,400,0,0,0,0,0), +(201014,56574,150000,202,440,0,0,0,0,0), +(201014,56487,150000,202,440,0,0,0,0,0), +(201014,54793,100000,202,380,0,0,0,0,0), +(201014,62271,150000,202,440,0,0,0,0,0), +(201014,56479,200000,202,450,0,0,0,0,0), +(201014,40274,50000,202,350,0,0,0,0,0), +(201014,63765,100000,202,380,0,0,0,0,0), +(201014,54736,100000,202,390,0,0,0,0,0), +(201014,56471,100000,202,390,0,0,0,0,0), +(201014,60874,200000,202,450,0,0,0,0,0), +(201015,12908,2800,202,240,0,0,0,0,0), +(201015,30560,35000,202,340,0,0,0,0,0), +(201015,12758,2600,202,245,0,0,0,0,0), +(201015,56514,150000,202,425,0,0,0,70,0), +(201015,30563,50000,202,350,0,0,0,70,0), +(201015,12755,2400,202,230,0,0,0,0,0), +(201015,30566,100000,202,375,0,0,0,70,0), +(201015,30565,100000,202,375,0,0,0,70,0), +(201015,8895,2200,202,225,0,0,0,0,0), +(201015,12718,1500,202,205,0,0,0,0,0), +(201015,12760,1500,202,205,0,0,0,0,0), +(201015,12717,1500,202,205,0,0,0,0,0), +(201015,30558,25000,202,325,0,0,0,65,0), +(201015,12715,1500,202,205,0,0,0,0,0), +(201015,12754,2250,202,235,0,0,0,0,0), +(201016,12895,1500,202,200,0,0,0,0,0), +(201016,12897,1500,202,210,0,0,0,0,0), +(201016,12899,1500,202,205,0,0,0,0,0), +(201016,12905,2200,202,225,0,0,0,0,0), +(201016,12906,2400,202,230,0,0,0,0,0), +(201016,12907,2600,202,235,0,0,0,0,0), +(201016,12759,2800,202,240,0,0,0,0,0), +(201016,30569,35000,202,340,0,0,0,0,0), +(201016,30570,50000,202,350,0,0,0,0,0), +(201016,30568,25000,202,325,0,0,0,0,0), +(201016,12902,1800,202,210,0,0,0,0,0), +(201016,30575,100000,202,375,0,0,0,0,0), +(201016,12903,2000,202,215,0,0,0,0,0), +(201016,30574,100000,202,375,0,0,0,0,0), +(201016,56473,150000,202,425,0,0,0,0,0), +(201017,44155,60000,202,300,0,0,0,60,0), +(201017,44157,180000,202,375,0,0,0,70,0), +(201018,2372,10,0,0,0,0,0,5,0), +(201018,2373,500,182,50,2366,0,0,10,0), +(201018,3571,5000,182,125,2368,0,0,10,0), +(201018,11994,50000,182,200,3570,0,0,25,0), +(201019,28696,100000,182,275,11993,0,0,50,0), +(201020,50301,350000,182,350,28695,0,0,55,0), +(201021,64261,10000,773,250,0,0,0,0,0), +(201021,67600,400,773,100,0,0,0,0,0), +(201021,56991,20000,773,315,0,0,0,0,0), +(201021,64267,10000,773,280,0,0,0,0,0), +(201021,64262,10000,773,255,0,0,0,0,0), +(201021,64266,10000,773,275,0,0,0,0,0), +(201021,64259,10000,773,255,0,0,0,0,0), +(201021,64258,10000,773,250,0,0,0,0,0), +(201021,50602,19000,773,310,0,0,0,0,0), +(201021,58481,19000,773,310,0,0,0,0,0), +(201021,58489,19000,773,305,0,0,0,0,0), +(201021,50609,19000,773,295,0,0,0,0,0), +(201021,50618,19000,773,290,0,0,0,0,0), +(201021,57713,19000,773,290,0,0,0,0,0), +(201021,57133,14250,773,285,0,0,0,0,0), +(201021,57156,14250,773,285,0,0,0,0,0), +(201021,57213,14250,773,285,0,0,0,0,0), +(201021,56985,9500,773,280,0,0,0,0,0), +(201021,57219,9500,773,280,0,0,0,0,0), +(201021,59493,9500,773,275,0,0,0,0,0), +(201021,59494,9500,773,275,0,0,0,0,0), +(201021,57712,9500,773,275,0,0,0,0,0), +(201021,57251,9500,773,275,0,0,0,0,0), +(201021,57272,9500,773,275,0,0,0,0,0), +(201021,59502,9500,773,275,0,0,0,0,0), +(201021,58480,9500,773,270,0,0,0,0,0), +(201021,57216,9500,773,270,0,0,0,0,0), +(201021,57185,9500,773,270,0,0,0,0,0), +(201021,58488,9500,773,265,0,0,0,0,0), +(201021,57025,9500,773,265,0,0,0,0,0), +(201021,57210,9500,773,265,0,0,0,0,0), +(201021,50601,9500,773,260,0,0,0,0,0), +(201021,56957,9500,773,260,0,0,0,0,0), +(201021,57002,9500,773,260,0,0,0,0,0), +(201021,50608,9500,773,255,0,0,0,0,0), +(201021,57711,9500,773,250,0,0,0,0,0), +(201021,50617,9500,773,250,0,0,0,0,0), +(201021,57274,7125,773,240,0,0,0,0,0), +(201021,57154,7125,773,240,0,0,0,0,0), +(201021,59488,5700,773,235,0,0,0,0,0), +(201021,57132,5700,773,235,0,0,0,0,0), +(201021,57244,5700,773,235,0,0,0,0,0), +(201021,57183,5700,773,230,0,0,0,0,0), +(201021,57024,5700,773,230,0,0,0,0,0), +(201021,59491,5700,773,225,0,0,0,0,0), +(201021,58478,4275,773,225,0,0,0,0,0), +(201021,56979,5700,773,225,0,0,0,0,0), +(201021,57001,5700,773,225,0,0,0,0,0), +(201021,59489,5700,773,225,0,0,0,0,0), +(201021,57710,5700,773,225,0,0,0,0,0), +(201021,59490,5700,773,225,0,0,0,0,0), +(201021,58487,4275,773,220,0,0,0,0,0), +(201021,56959,4275,773,220,0,0,0,0,0), +(201021,57151,4275,773,220,0,0,0,0,0), +(201021,50600,4275,773,215,0,0,0,0,0), +(201021,57270,4275,773,215,0,0,0,0,0), +(201021,57242,4275,773,215,0,0,0,0,0), +(201021,50607,4275,773,210,0,0,0,0,0), +(201021,57201,4275,773,210,0,0,0,0,0), +(201021,57131,4275,773,210,0,0,0,0,0), +(201021,50616,4275,773,205,0,0,0,0,0), +(201021,56982,4275,773,205,0,0,0,0,0), +(201021,57023,4275,773,205,0,0,0,0,0), +(201021,60336,2850,773,200,0,0,0,0,0), +(201021,56956,2850,773,200,0,0,0,0,0), +(201021,57000,2850,773,200,0,0,0,0,0), +(201021,59387,2850,773,200,0,0,0,0,0), +(201021,57709,2850,773,200,0,0,0,0,0), +(201021,45378,47500,773,200,45359,0,0,35,0), +(201021,59499,2850,773,200,0,0,0,0,0), +(201021,57277,2850,773,190,0,0,0,0,0), +(201021,57165,2850,773,190,0,0,0,0,0), +(201021,57129,2850,773,185,0,0,0,0,0), +(201021,57241,2850,773,185,0,0,0,0,0), +(201021,57200,950,773,180,0,0,0,0,0), +(201021,57020,950,773,180,0,0,0,0,0), +(201021,59484,712,773,175,0,0,0,0,0), +(201021,58476,712,773,175,0,0,0,0,0), +(201021,57708,712,773,175,0,0,0,0,0), +(201021,59486,712,773,175,0,0,0,0,0), +(201021,56981,950,773,175,0,0,0,0,0), +(201021,56994,950,773,175,0,0,0,0,0), +(201021,59487,712,773,175,0,0,0,0,0), +(201021,58486,712,773,170,0,0,0,0,0), +(201021,56953,950,773,170,0,0,0,0,0), +(201021,57161,950,773,170,0,0,0,0,0), +(201021,50599,712,773,165,0,0,0,0,0), +(201021,57271,712,773,165,0,0,0,0,0), +(201021,57249,712,773,165,0,0,0,0,0), +(201021,50606,712,773,160,0,0,0,0,0), +(201021,57197,712,773,160,0,0,0,0,0), +(201021,57125,712,773,160,0,0,0,0,0), +(201021,50614,712,773,155,0,0,0,0,0), +(201021,57032,712,773,155,0,0,0,0,0), +(201021,56974,712,773,155,0,0,0,0,0), +(201021,57707,712,773,150,0,0,0,0,0), +(201021,57007,712,773,150,0,0,0,0,0), +(201021,56948,712,773,150,0,0,0,0,0), +(201021,57167,712,773,140,0,0,0,0,0), +(201021,57245,712,773,140,0,0,0,0,0), +(201021,57269,712,773,140,0,0,0,0,0), +(201021,57188,712,773,135,0,0,0,0,0), +(201021,57123,712,773,135,0,0,0,0,0), +(201021,57031,712,773,135,0,0,0,0,0), +(201021,56951,712,773,130,0,0,0,0,0), +(201021,57005,712,773,130,0,0,0,0,0), +(201021,56973,712,773,130,0,0,0,0,0), +(201021,59475,712,773,125,0,0,0,0,0), +(201021,59480,712,773,125,0,0,0,0,0), +(201021,57157,712,773,125,0,0,0,0,0), +(201021,57240,712,773,125,0,0,0,0,0), +(201021,57262,712,773,125,0,0,0,0,0), +(201021,45377,4750,773,125,45358,0,0,20,0), +(201021,57706,712,773,125,0,0,0,0,0), +(201021,59478,712,773,125,0,0,0,0,0), +(201021,57030,475,773,120,0,0,0,0,0), +(201021,57186,475,773,120,0,0,0,0,0), +(201021,57121,475,773,120,0,0,0,0,0), +(201021,56997,475,773,115,0,0,0,0,0), +(201021,56945,475,773,115,0,0,0,0,0), +(201021,56971,475,773,115,0,0,0,0,0), +(201021,58565,475,773,110,0,0,0,0,0), +(201021,48247,475,773,110,0,0,0,0,0), +(201021,57163,475,773,110,0,0,0,0,0), +(201021,57265,475,773,110,0,0,0,0,0), +(201021,57238,475,773,110,0,0,0,0,0), +(201021,57029,475,773,105,0,0,0,0,0), +(201021,57184,475,773,105,0,0,0,0,0), +(201021,57120,475,773,105,0,0,0,0,0), +(201021,57704,380,773,100,0,0,0,0,0), +(201021,48121,380,773,100,0,0,0,0,0), +(201021,56995,380,773,100,0,0,0,0,0), +(201021,56968,380,773,100,0,0,0,0,0), +(201021,57196,380,773,95,0,0,0,0,0), +(201021,57246,380,773,95,0,0,0,0,0), +(201021,57158,380,773,95,0,0,0,0,0), +(201021,57266,380,773,95,0,0,0,0,0), +(201021,57119,380,773,95,0,0,0,0,0), +(201021,57009,380,773,90,0,0,0,0,0), +(201021,56961,380,773,90,0,0,0,0,0), +(201021,56978,380,773,90,0,0,0,0,0), +(201021,57027,380,773,90,0,0,0,0,0), +(201021,58473,380,773,85,0,0,0,0,0), +(201021,57703,380,773,85,0,0,0,0,0), +(201021,56963,285,773,85,0,0,0,0,0), +(201021,57162,285,773,85,0,0,0,0,0), +(201021,57239,285,773,85,0,0,0,0,0), +(201021,57259,285,773,85,0,0,0,0,0), +(201021,58485,380,773,80,0,0,0,0,0), +(201021,57022,285,773,80,0,0,0,0,0), +(201021,56955,285,773,80,0,0,0,0,0), +(201021,57194,285,773,80,0,0,0,0,0), +(201021,57004,285,773,80,0,0,0,0,0), +(201021,56976,285,773,80,0,0,0,0,0), +(201021,57114,285,773,80,0,0,0,0,0), +(201021,52840,380,773,75,0,0,0,0,0), +(201021,50612,380,773,75,0,0,0,0,0), +(201021,50605,380,773,75,0,0,0,0,0), +(201021,50598,380,773,75,0,0,0,0,0), +(201021,61288,950,773,75,0,0,0,0,0), +(201021,53462,285,773,75,0,0,0,0,0), +(201021,45376,950,773,50,45357,0,0,10,0), +(201021,48248,47,773,35,0,0,0,0,0), +(201021,52843,47,773,35,0,0,0,0,0), +(201021,52739,142,773,35,0,0,0,0,0), +(201021,58484,47,773,15,0,0,0,0,0), +(201021,58472,47,773,15,0,0,0,0,0), +(201021,45375,10,0,0,0,0,0,5,0), +(201021,64260,10000,773,255,0,0,0,0,0), +(201022,57257,30000,773,350,0,0,0,0,0), +(201022,57222,30000,773,350,0,0,0,0,0), +(201022,57192,30000,773,350,0,0,0,0,0), +(201022,57003,30000,773,350,0,0,0,0,0), +(201022,56943,30000,773,350,0,0,0,0,0), +(201022,57227,30000,773,345,0,0,0,0,0), +(201022,57172,30000,773,345,0,0,0,0,0), +(201022,59340,30000,773,340,0,0,0,0,0), +(201022,57113,30000,773,340,0,0,0,0,0), +(201022,57033,30000,773,335,0,0,0,0,0), +(201022,56972,30000,773,335,0,0,0,0,0), +(201022,57252,30000,773,330,0,0,0,0,0), +(201022,57224,30000,773,330,0,0,0,0,0), +(201022,59503,20000,773,325,0,0,0,0,0), +(201022,59496,20000,773,325,0,0,0,0,0), +(201022,59495,20000,773,325,0,0,0,0,0), +(201022,57714,20000,773,325,0,0,0,0,0), +(201022,57275,30000,773,325,0,0,0,0,0), +(201022,56984,30000,773,325,0,0,0,0,0), +(201022,59339,20000,773,320,0,0,0,0,0), +(201022,57168,20000,773,320,0,0,0,0,0), +(201022,57187,20000,773,315,0,0,0,0,0), +(201022,57008,20000,773,315,0,0,0,0,0), +(201022,59338,20000,773,310,0,0,0,0,0), +(201022,56952,20000,773,310,0,0,0,0,0), +(201022,57226,20000,773,305,0,0,0,0,0), +(201022,57122,20000,773,305,0,0,0,0,0), +(201022,57236,20000,773,300,0,0,0,0,0), +(201022,57221,20000,773,300,0,0,0,0,0), +(201022,57026,20000,773,300,0,0,0,0,0), +(201022,45379,100000,773,275,45360,0,0,50,0), +(201023,69385,200000,773,440,0,0,0,0,0), +(201023,58483,60000,773,420,0,0,0,0,0), +(201023,58491,60000,773,415,0,0,0,0,0), +(201023,50604,60000,773,410,0,0,0,0,0), +(201023,50611,60000,773,405,0,0,0,0,0), +(201023,61120,75000,773,400,0,0,0,35,0), +(201023,61119,75000,773,400,0,0,0,35,0), +(201023,61118,75000,773,400,0,0,0,35,0), +(201023,61117,75000,773,400,0,0,0,35,0), +(201023,59504,50000,773,400,0,0,0,0,0), +(201023,59501,100000,773,400,0,0,0,0,0), +(201023,59498,50000,773,400,0,0,0,0,0), +(201023,59497,50000,773,400,0,0,0,0,0), +(201023,56987,125000,773,400,0,0,0,0,0), +(201023,50620,60000,773,400,0,0,0,0,0), +(201023,61177,100000,773,385,0,0,0,0,0), +(201023,57716,50000,773,375,0,0,0,0,0), +(201023,57248,50000,773,375,0,0,0,0,0), +(201023,57225,50000,773,375,0,0,0,0,0), +(201023,57198,50000,773,375,0,0,0,0,0), +(201023,57036,50000,773,375,0,0,0,0,0), +(201023,57006,50000,773,375,0,0,0,0,0), +(201023,56980,50000,773,375,0,0,0,0,0), +(201023,58482,50000,773,370,0,0,0,0,0), +(201023,58490,50000,773,365,0,0,0,0,0), +(201023,50603,50000,773,360,0,0,0,0,0), +(201023,50610,50000,773,355,0,0,0,0,0), +(201023,64053,50000,773,350,0,0,0,0,0), +(201023,60337,50000,773,350,0,0,0,0,0), +(201023,59500,50000,773,350,0,0,0,0,0), +(201023,57715,50000,773,350,0,0,0,0,0), +(201023,50619,50000,773,350,0,0,0,0,0), +(201023,45380,350000,773,350,45361,0,0,65,0), +(201023,62162,50000,773,375,0,0,0,0,0), +(201024,34961,10000,755,290,0,0,0,0,0), +(201024,26911,15000,755,290,0,0,0,0,0), +(201024,34960,10000,755,280,0,0,0,0,0), +(201024,26908,12000,755,280,0,0,0,0,0), +(201024,26907,10000,755,280,0,0,0,0,0), +(201024,26903,10000,755,275,0,0,0,0,0), +(201024,36526,10000,755,265,0,0,0,0,0), +(201024,26902,10000,755,260,0,0,0,0,0), +(201024,26885,5000,755,240,0,0,0,0,0), +(201024,26883,4000,755,235,0,0,0,0,0), +(201024,36525,4000,755,230,0,0,0,0,0), +(201024,32809,3500,755,225,0,0,0,0,0), +(201024,26880,3500,755,225,0,0,0,0,0), +(201024,26876,3000,755,220,0,0,0,0,0), +(201024,26874,5000,755,210,0,0,0,0,0), +(201024,63743,3000,755,200,0,0,0,0,0), +(201024,34959,3000,755,200,0,0,0,0,0), +(201024,28899,50000,755,200,28894,0,0,35,0), +(201024,26872,2500,755,200,0,0,0,0,0), +(201024,34955,2500,755,180,0,0,0,0,0), +(201024,25621,2000,755,180,0,0,0,0,0), +(201024,32808,2000,755,175,0,0,0,0,0), +(201024,25620,2000,755,170,0,0,0,0,0), +(201024,25615,1500,755,150,0,0,0,0,0), +(201024,25613,1200,755,135,0,0,0,0,0), +(201024,28896,5000,755,125,25230,0,0,20,0), +(201024,25321,1500,755,120,0,0,0,0,0), +(201024,32807,600,755,110,0,0,0,0,0), +(201024,25498,600,755,110,0,0,0,0,0), +(201024,36524,800,755,105,0,0,0,0,0), +(201024,25318,800,755,100,0,0,0,0,0), +(201024,25305,1000,755,90,0,0,0,0,0), +(201024,38175,650,755,80,0,0,0,0,0), +(201024,25317,600,755,80,0,0,0,0,0), +(201024,36523,600,755,75,0,0,0,0,0), +(201024,25287,400,755,70,0,0,0,0,0), +(201024,37818,500,755,65,0,0,0,0,0), +(201024,25284,400,755,60,0,0,0,0,0), +(201024,32801,200,755,50,0,0,0,0,0), +(201024,26927,300,755,50,0,0,0,0,0), +(201024,25490,300,755,50,0,0,0,0,0), +(201024,25280,200,755,50,0,0,0,0,0), +(201024,25278,200,755,50,0,0,0,0,0), +(201024,25246,500,755,50,25229,0,0,10,0), +(201024,26928,100,755,30,0,0,0,0,0), +(201024,25283,100,755,30,0,0,0,0,0), +(201024,32179,100,755,20,0,0,0,0,0), +(201024,32178,100,755,20,0,0,0,0,0), +(201024,31252,100,755,20,0,0,0,5,0), +(201024,26926,50,755,5,0,0,0,0,0), +(201024,25245,10,0,0,0,0,0,5,0), +(201025,31048,20000,755,310,0,0,0,0,0), +(201025,26916,20000,755,310,0,0,0,0,0), +(201025,34590,10000,755,305,0,0,0,0,0), +(201025,28953,10000,755,305,0,0,0,0,0), +(201025,28917,10000,755,305,0,0,0,0,0), +(201025,28905,10000,755,305,0,0,0,0,0), +(201025,62941,10000,755,300,0,0,0,0,0), +(201025,28950,10000,755,300,0,0,0,0,0), +(201025,28938,10000,755,300,0,0,0,0,0), +(201025,28925,10000,755,300,0,0,0,0,0), +(201025,28916,10000,755,300,0,0,0,0,0), +(201025,28910,10000,755,300,0,0,0,0,0), +(201025,28903,10000,755,300,0,0,0,0,0), +(201025,28901,100000,755,275,28895,0,0,50,0), +(201025,41418,30000,755,365,0,0,0,0,0), +(201025,47280,30000,755,350,0,0,0,0,0), +(201025,41429,10000,755,350,0,0,0,0,0), +(201025,40514,8500,755,340,0,0,0,0,0), +(201025,31052,30000,755,335,0,0,0,0,0), +(201025,31051,30000,755,335,0,0,0,0,0), +(201025,41415,10000,755,330,0,0,0,0,0), +(201025,41420,8500,755,325,0,0,0,0,0), +(201025,41414,10000,755,325,0,0,0,0,0), +(201025,38068,20000,755,325,0,0,0,0,0), +(201025,34069,10000,755,325,0,0,0,0,0), +(201025,28948,10000,755,325,0,0,0,0,0), +(201025,28936,10000,755,325,0,0,0,0,0), +(201025,31050,25000,755,320,0,0,0,0,0), +(201025,28914,10000,755,315,0,0,0,0,0), +(201025,31049,20000,755,310,0,0,0,0,0), +(201026,58143,30000,755,370,0,0,0,0,0), +(201026,56195,120000,755,380,0,0,0,0,0), +(201026,56208,20000,755,370,0,0,0,0,0), +(201026,58144,30000,755,370,0,0,0,0,0), +(201026,56530,20000,755,360,0,0,0,0,0), +(201026,56206,20000,755,360,0,0,0,0,0), +(201026,53891,10000,755,360,0,0,0,0,0), +(201026,53868,10000,755,360,0,0,0,0,0), +(201026,53843,10000,755,360,0,0,0,0,0), +(201026,58142,30000,755,350,0,0,0,0,0), +(201026,58141,30000,755,350,0,0,0,0,0), +(201026,56205,10000,755,350,0,0,0,0,0), +(201026,56194,30000,755,350,0,0,0,0,0), +(201026,56193,30000,755,350,0,0,0,0,0), +(201026,54017,10000,755,350,0,0,0,0,0), +(201026,53941,10000,755,350,0,0,0,0,0), +(201026,53940,10000,755,350,0,0,0,0,0), +(201026,53934,10000,755,350,0,0,0,0,0), +(201026,53931,10000,755,350,0,0,0,0,0), +(201026,53930,10000,755,350,0,0,0,0,0), +(201026,53928,10000,755,350,0,0,0,0,0), +(201026,53927,10000,755,350,0,0,0,0,0), +(201026,53926,10000,755,350,0,0,0,0,0), +(201026,53925,10000,755,350,0,0,0,0,0), +(201026,53923,10000,755,350,0,0,0,0,0), +(201026,53922,10000,755,350,0,0,0,0,0), +(201026,53920,10000,755,350,0,0,0,0,0), +(201026,53918,10000,755,350,0,0,0,0,0), +(201026,53916,10000,755,350,0,0,0,0,0), +(201026,53894,10000,755,350,0,0,0,0,0), +(201026,53893,10000,755,350,0,0,0,0,0), +(201026,53892,10000,755,350,0,0,0,0,0), +(201026,53890,10000,755,350,0,0,0,0,0), +(201026,53889,10000,755,350,0,0,0,0,0), +(201026,53887,10000,755,350,0,0,0,0,0), +(201026,53886,10000,755,350,0,0,0,0,0), +(201026,53883,10000,755,350,0,0,0,0,0), +(201026,53882,10000,755,350,0,0,0,0,0), +(201026,53881,10000,755,350,0,0,0,0,0), +(201026,53880,10000,755,350,0,0,0,0,0), +(201026,53878,10000,755,350,0,0,0,0,0), +(201026,53876,10000,755,350,0,0,0,0,0), +(201026,53874,10000,755,350,0,0,0,0,0), +(201026,53873,10000,755,350,0,0,0,0,0), +(201026,53872,10000,755,350,0,0,0,0,0), +(201026,53871,10000,755,350,0,0,0,0,0), +(201026,53870,10000,755,350,0,0,0,0,0), +(201026,53867,10000,755,350,0,0,0,0,0), +(201026,53866,10000,755,350,0,0,0,0,0), +(201026,53864,10000,755,350,0,0,0,0,0), +(201026,53863,10000,755,350,0,0,0,0,0), +(201026,53862,10000,755,350,0,0,0,0,0), +(201026,53861,10000,755,350,0,0,0,0,0), +(201026,53860,10000,755,350,0,0,0,0,0), +(201026,53859,10000,755,350,0,0,0,0,0), +(201026,53856,10000,755,350,0,0,0,0,0), +(201026,53855,10000,755,350,0,0,0,0,0), +(201026,53854,10000,755,350,0,0,0,0,0), +(201026,53853,10000,755,350,0,0,0,0,0), +(201026,53852,10000,755,350,0,0,0,0,0), +(201026,53845,10000,755,350,0,0,0,0,0), +(201026,53844,10000,755,350,0,0,0,0,0), +(201026,53835,10000,755,350,0,0,0,0,0), +(201026,53834,10000,755,350,0,0,0,0,0), +(201026,53832,10000,755,350,0,0,0,0,0), +(201026,53831,10000,755,350,0,0,0,0,0), +(201026,51310,350000,755,350,28897,0,0,60,0), +(201026,62242,150000,755,425,0,0,0,0,0), +(201026,64728,100000,755,420,0,0,0,0,0), +(201026,64727,100000,755,420,0,0,0,0,0), +(201026,64726,100000,755,420,0,0,0,0,0), +(201026,64725,100000,755,420,0,0,0,0,0), +(201026,56197,100000,755,420,0,0,0,0,0), +(201026,55402,120000,755,420,0,0,0,0,0), +(201026,55399,120000,755,420,0,0,0,0,0), +(201026,55394,120000,755,420,0,0,0,0,0), +(201026,55386,120000,755,420,0,0,0,0,0), +(201026,59759,150000,755,400,0,0,0,0,0), +(201026,56203,150000,755,400,0,0,0,0,0), +(201026,56202,150000,755,400,0,0,0,0,0), +(201026,56201,150000,755,400,0,0,0,0,0), +(201026,56199,150000,755,400,0,0,0,0,0), +(201026,58146,50000,755,390,0,0,0,0,0), +(201026,58145,50000,755,390,0,0,0,0,0), +(201026,56531,100000,755,390,0,0,0,0,0), +(201026,54007,100000,755,390,0,0,0,0,0), +(201026,53989,100000,755,390,0,0,0,0,0), +(201026,53969,100000,755,390,0,0,0,0,0), +(201026,53956,100000,755,390,0,0,0,0,0), +(201026,53947,100000,755,390,0,0,0,0,0), +(201026,56196,80000,755,380,0,0,0,0,0), +(201026,53953,100000,755,390,0,0,0,0,0), +(201027,19103,15000,165,300,0,0,0,0,0), +(201027,19102,15000,165,300,0,0,0,0,0), +(201027,19098,15000,165,300,0,0,0,0,0), +(201027,19092,15000,165,300,0,0,0,0,0), +(201027,19091,15000,165,300,0,0,0,0,0), +(201027,19083,15000,165,290,0,0,0,0,0), +(201027,19082,15000,165,290,0,0,0,0,0), +(201027,19072,10000,165,280,0,0,0,0,0), +(201027,19071,10000,165,280,0,0,0,0,0), +(201027,19065,10000,165,275,0,0,0,0,0), +(201027,19055,10000,165,270,0,0,0,0,0), +(201027,19052,10000,165,265,0,0,0,0,0), +(201027,22331,5000,165,250,0,0,0,0,0), +(201027,19058,5000,165,250,0,0,0,0,0), +(201027,19047,5000,165,250,0,0,0,0,0), +(201027,10558,4500,165,235,0,0,0,0,0), +(201027,10556,4500,165,235,0,0,0,0,0), +(201027,10552,4000,165,230,0,0,0,0,0), +(201027,10548,4000,165,230,0,0,0,0,0), +(201027,14932,4000,165,225,0,0,0,0,0), +(201027,14930,4000,165,225,0,0,0,0,0), +(201027,10518,3500,165,210,0,0,0,0,0), +(201027,10511,3000,165,210,0,0,0,0,0), +(201027,10507,3000,165,205,0,0,0,0,0), +(201027,10499,3000,165,205,0,0,0,0,0), +(201027,20650,4000,165,200,0,0,0,0,0), +(201027,10663,50000,165,200,3811,0,0,35,0), +(201027,10487,2000,165,200,0,0,0,0,0), +(201027,10482,2000,165,200,0,0,0,0,0), +(201027,9206,2500,165,195,0,0,0,0,0), +(201027,7156,2400,165,190,0,0,0,0,0), +(201027,6661,2000,165,190,0,0,0,0,0), +(201027,9201,2000,165,185,0,0,0,0,0), +(201027,9198,2000,165,180,0,0,0,0,0), +(201027,3776,1200,165,180,0,0,0,0,0), +(201027,9196,1500,165,175,0,0,0,0,0), +(201027,7151,1200,165,175,0,0,0,0,0), +(201027,7147,1000,165,160,0,0,0,0,0), +(201027,3774,1000,165,160,0,0,0,0,0), +(201027,20649,1000,165,150,0,0,0,0,0), +(201027,9194,500,165,150,0,0,0,0,0), +(201027,9193,500,165,150,0,0,0,0,0), +(201027,3818,500,165,150,0,0,0,0,0), +(201027,3780,750,165,150,0,0,0,0,0), +(201027,3760,600,165,150,0,0,0,0,0), +(201027,3764,500,165,145,0,0,0,0,0), +(201027,3770,500,165,135,0,0,0,0,0), +(201027,3768,500,165,130,0,0,0,0,0), +(201027,9145,500,165,125,0,0,0,0,0), +(201027,3812,5000,165,125,3104,0,0,20,0), +(201027,3766,400,165,125,0,0,0,0,0), +(201027,9074,500,165,120,0,0,0,0,0), +(201027,2166,450,165,120,0,0,0,0,0), +(201027,7135,400,165,115,0,0,0,0,0), +(201027,2168,350,165,110,0,0,0,0,0), +(201027,20648,500,165,100,0,0,0,0,0), +(201027,3817,200,165,100,0,0,0,0,0), +(201027,2167,350,165,100,0,0,0,0,0), +(201027,2165,250,165,100,0,0,0,0,0), +(201027,9068,400,165,95,0,0,0,0,0), +(201027,3761,350,165,85,0,0,0,0,0), +(201027,2159,250,165,85,0,0,0,0,0), +(201027,3763,300,165,80,0,0,0,0,0), +(201027,3759,200,165,75,0,0,0,0,0), +(201027,9065,150,165,70,0,0,0,0,0), +(201027,2162,100,165,60,0,0,0,0,0), +(201027,3756,150,165,55,0,0,0,0,0), +(201027,2161,100,165,55,0,0,0,0,0), +(201027,2154,500,165,50,2108,0,0,10,0), +(201027,2160,100,165,40,0,0,0,0,0), +(201027,3816,50,165,35,0,0,0,0,0), +(201027,9062,100,165,30,0,0,0,0,0), +(201027,9060,100,165,30,0,0,0,0,0), +(201027,3753,75,165,25,0,0,0,0,0), +(201027,2153,50,165,15,0,0,0,0,0), +(201027,2155,10,0,0,0,0,0,5,0), +(201028,44970,50000,165,350,0,0,0,0,0), +(201028,44770,50000,165,350,0,0,0,0,0), +(201028,35540,20000,165,340,0,0,0,0,0), +(201028,32469,25000,165,335,0,0,0,0,0), +(201028,32465,25000,165,335,0,0,0,0,0), +(201028,32481,25000,165,330,0,0,0,0,0), +(201028,32473,25000,165,330,0,0,0,0,0), +(201028,32455,20000,165,325,0,0,0,0,0), +(201028,32468,20000,165,325,0,0,0,0,0), +(201028,32480,20000,165,320,0,0,0,0,0), +(201028,32472,20000,165,320,0,0,0,0,0), +(201028,32464,20000,165,320,0,0,0,0,0), +(201028,44344,18000,165,315,0,0,0,0,0), +(201028,44343,18000,165,315,0,0,0,0,0), +(201028,32471,20000,165,315,0,0,0,0,0), +(201028,32479,20000,165,310,0,0,0,0,0), +(201028,32467,20000,165,310,0,0,0,0,0), +(201028,32463,20000,165,310,0,0,0,0,0), +(201028,45100,15000,165,300,0,0,0,0,0), +(201028,32478,15000,165,300,0,0,0,0,0), +(201028,32470,15000,165,300,0,0,0,0,0), +(201028,32466,15000,165,300,0,0,0,0,0), +(201028,32462,15000,165,300,0,0,0,0,0), +(201028,32456,15000,165,300,0,0,0,0,0), +(201028,32454,10000,165,300,0,0,0,0,0), +(201028,32550,100000,165,275,10662,0,0,50,0), +(201029,69388,200000,165,450,0,0,0,0,0), +(201029,69386,200000,165,450,0,0,0,0,0), +(201029,60640,200000,165,440,0,0,0,0,0), +(201029,60637,200000,165,440,0,0,0,0,0), +(201029,62448,80000,165,425,0,0,0,0,0), +(201029,60669,100000,165,425,0,0,0,0,0), +(201029,60660,100000,165,425,0,0,0,0,0), +(201029,60655,200000,165,425,0,0,0,0,0), +(201029,60649,100000,165,425,0,0,0,0,0), +(201029,50967,80000,165,425,0,0,0,0,0), +(201029,50965,80000,165,425,0,0,0,0,0), +(201029,60671,100000,165,420,0,0,0,0,0), +(201029,60666,80000,165,420,0,0,0,0,0), +(201029,60665,100000,165,420,0,0,0,0,0), +(201029,60658,200000,165,420,0,0,0,0,0), +(201029,60652,100000,165,420,0,0,0,0,0), +(201029,60651,100000,165,420,0,0,0,0,0), +(201029,60643,50000,165,415,0,0,0,0,0), +(201029,60583,50000,165,405,0,0,0,0,0), +(201029,50964,50000,165,405,0,0,0,0,0), +(201029,60630,80000,165,400,0,0,0,0,0), +(201029,60620,100000,165,400,0,0,0,0,0), +(201029,60605,100000,165,400,0,0,0,0,0), +(201029,60584,50000,165,400,0,0,0,0,0), +(201029,57691,70000,165,400,0,0,0,0,0), +(201029,57690,70000,165,400,0,0,0,0,0), +(201029,57683,70000,165,400,0,0,0,0,0), +(201029,51568,100000,165,400,0,0,0,0,0), +(201029,50966,50000,165,400,0,0,0,0,0), +(201029,60629,80000,165,395,0,0,0,0,0), +(201029,60627,80000,165,395,0,0,0,0,0), +(201029,60613,80000,165,395,0,0,0,0,0), +(201029,60611,80000,165,395,0,0,0,0,0), +(201029,60604,80000,165,395,0,0,0,0,0), +(201029,60601,80000,165,395,0,0,0,0,0), +(201029,55199,80000,165,395,0,0,0,0,0), +(201029,51570,80000,165,395,0,0,0,0,0), +(201029,51569,80000,165,395,0,0,0,0,0), +(201029,50963,80000,165,395,0,0,0,0,0), +(201029,50936,80000,165,390,0,0,0,0,0), +(201029,60624,30000,165,385,0,0,0,0,0), +(201029,60622,30000,165,385,0,0,0,0,0), +(201029,60608,30000,165,385,0,0,0,0,0), +(201029,60607,30000,165,385,0,0,0,0,0), +(201029,60600,30000,165,385,0,0,0,0,0), +(201029,60599,30000,165,385,0,0,0,0,0), +(201029,51572,30000,165,385,0,0,0,0,0), +(201029,51571,30000,165,385,0,0,0,0,0), +(201029,60631,80000,165,380,0,0,0,0,0), +(201029,50960,30000,165,380,0,0,0,0,0), +(201029,50958,30000,165,380,0,0,0,0,0), +(201029,50954,30000,165,380,0,0,0,0,0), +(201029,50953,30000,165,380,0,0,0,0,0), +(201029,50949,30000,165,380,0,0,0,0,0), +(201029,50946,30000,165,380,0,0,0,0,0), +(201029,50943,30000,165,380,0,0,0,0,0), +(201029,50940,30000,165,380,0,0,0,0,0), +(201029,50961,30000,165,375,0,0,0,0,0), +(201029,50956,30000,165,375,0,0,0,0,0), +(201029,50952,30000,165,375,0,0,0,0,0), +(201029,50950,30000,165,375,0,0,0,0,0), +(201029,50947,30000,165,375,0,0,0,0,0), +(201029,50945,30000,165,375,0,0,0,0,0), +(201029,50942,30000,165,375,0,0,0,0,0), +(201029,50938,30000,165,375,0,0,0,0,0), +(201029,50959,30000,165,370,0,0,0,0,0), +(201029,50957,30000,165,370,0,0,0,0,0), +(201029,50955,30000,165,370,0,0,0,0,0), +(201029,50951,30000,165,370,0,0,0,0,0), +(201029,50948,30000,165,370,0,0,0,0,0), +(201029,50944,30000,165,370,0,0,0,0,0), +(201029,50941,30000,165,370,0,0,0,0,0), +(201029,50939,30000,165,370,0,0,0,0,0), +(201029,51301,350000,165,350,32549,0,0,65,0), +(201029,50962,50000,165,350,0,0,0,0,0), +(201029,64661,50000,165,350,0,0,0,0,0), +(201029,32550,100000,165,275,10662,0,0,50,0), +(201029,10663,50000,165,200,3811,0,0,35,0), +(201029,3812,5000,165,125,3104,0,0,20,0), +(201029,2154,500,165,50,2108,0,0,10,0), +(201029,2155,10,0,0,0,0,0,5,0), +(201030,35588,100000,165,375,0,0,0,0,0), +(201030,35587,100000,165,375,0,0,0,0,0), +(201030,35585,100000,165,375,0,0,0,0,0), +(201030,36078,20000,165,330,0,0,0,0,0), +(201030,36075,10000,165,260,0,0,0,0,0), +(201030,10647,10000,165,250,0,0,0,0,0), +(201030,10621,10000,165,225,0,0,0,0,0), +(201031,35584,100000,165,375,0,0,0,0,0), +(201031,35582,100000,165,375,0,0,0,0,0), +(201031,35580,100000,165,375,0,0,0,0,0), +(201031,35577,100000,165,375,0,0,0,0,0), +(201031,35576,100000,165,375,0,0,0,0,0), +(201031,35575,100000,165,375,0,0,0,0,0), +(201031,36079,40000,165,330,0,0,0,0,0), +(201031,24654,50000,165,300,0,0,0,0,0), +(201031,24655,30000,165,280,0,0,0,0,0), +(201031,36076,10000,165,260,0,0,0,0,0), +(201031,10650,10000,165,255,0,0,0,0,0), +(201031,10619,10000,165,225,0,0,0,0,0), +(201032,35591,100000,165,375,0,0,0,0,0), +(201032,35590,100000,165,375,0,0,0,0,0), +(201032,35589,100000,165,375,0,0,0,0,0), +(201032,36077,20000,165,330,0,0,0,0,0), +(201032,36074,10000,165,260,0,0,0,0,0), +(201032,10632,10000,165,250,0,0,0,0,0), +(201032,10630,10000,165,230,0,0,0,0,0), +(201033,2581,10,186,0,0,0,0,5,0), +(201033,2582,500,186,50,2575,0,0,10,0), +(201033,2659,200,186,65,0,0,0,0,0), +(201033,2658,200,186,75,0,0,0,0,0), +(201033,3304,50,186,65,0,0,0,0,0), +(201033,3307,500,186,125,0,0,0,0,0), +(201033,3568,5000,186,125,2576,0,0,10,0), +(201033,3308,2500,186,155,0,0,0,0,0), +(201033,3569,2500,186,165,0,0,0,0,0), +(201033,10249,50000,186,200,3564,0,0,25,0), +(201033,10097,5000,186,175,0,0,0,0,0), +(201033,10098,10000,186,230,0,0,0,0,0), +(201033,16153,20000,186,250,0,0,0,0,0), +(201033,70524,10000,186,250,0,0,0,0,0), +(201034,29361,100000,186,350,0,0,0,0,0), +(201034,29360,40000,186,350,0,0,0,0,0), +(201034,29359,40000,186,350,0,0,0,0,0), +(201034,29358,40000,186,325,0,0,0,0,0), +(201034,35751,10000,186,300,0,0,0,0,0), +(201034,35750,10000,186,300,0,0,0,0,0), +(201034,29356,40000,186,300,0,0,0,0,0), +(201034,29355,100000,186,275,10248,0,0,0,0), +(201034,29686,100000,186,375,0,0,0,0,0), +(201035,55211,200000,186,450,0,0,0,0,0), +(201035,55208,200000,186,450,0,0,0,0,0), +(201035,49258,150000,186,400,0,0,0,0,0), +(201035,50309,350000,186,350,29354,0,0,0,0), +(201035,49252,100000,186,350,0,0,0,0,0), +(201036,10769,50000,393,200,8618,0,0,25,0), +(201036,8620,5000,393,125,8617,0,0,10,0), +(201036,8619,500,393,50,8613,0,0,0,0), +(201036,8615,10,0,0,0,0,0,0,0), +(201037,32679,100000,393,275,10768,0,0,40,0), +(201038,50307,350000,393,350,32678,0,0,55,0), +(201039,18453,15000,197,300,0,0,0,0,0), +(201039,18451,15000,197,300,0,0,0,0,0), +(201039,18450,15000,197,300,0,0,0,0,0), +(201039,18449,15000,197,300,0,0,0,0,0), +(201039,18446,15000,197,300,0,0,0,0,0), +(201039,18444,15000,197,295,0,0,0,0,0), +(201039,18442,15000,197,290,0,0,0,0,0), +(201039,18441,15000,197,290,0,0,0,0,0), +(201039,18438,15000,197,285,0,0,0,0,0), +(201039,18437,15000,197,285,0,0,0,0,0), +(201039,18424,15000,197,280,0,0,0,0,0), +(201039,18423,15000,197,280,0,0,0,0,0), +(201039,18421,12500,197,275,0,0,0,0,0), +(201039,18420,12500,197,275,0,0,0,0,0), +(201039,18417,12500,197,275,0,0,0,0,0), +(201039,18416,12500,197,275,0,0,0,0,0), +(201039,18415,10000,197,270,0,0,0,0,0), +(201039,18414,10000,197,270,0,0,0,0,0), +(201039,18413,10000,197,270,0,0,0,0,0), +(201039,18411,10000,197,265,0,0,0,0,0), +(201039,18410,10000,197,265,0,0,0,0,0), +(201039,18409,10000,197,265,0,0,0,0,0), +(201039,18407,10000,197,260,0,0,0,0,0), +(201039,18406,10000,197,260,0,0,0,0,0), +(201039,18403,10000,197,255,0,0,0,0,0), +(201039,18402,10000,197,255,0,0,0,0,0), +(201039,18401,10000,197,250,0,0,0,0,0), +(201039,12092,7500,197,250,0,0,0,0,0), +(201039,12088,7500,197,245,0,0,0,0,0), +(201039,12079,6500,197,235,0,0,0,0,0), +(201039,12077,5000,197,235,0,0,0,0,0), +(201039,12074,6000,197,230,0,0,0,0,0), +(201039,12073,6000,197,230,0,0,0,0,0), +(201039,12072,6000,197,230,0,0,0,0,0), +(201039,12070,5000,197,225,0,0,0,0,0), +(201039,12069,5000,197,225,0,0,0,0,0), +(201039,12067,5000,197,225,0,0,0,0,0), +(201039,12065,5000,197,225,0,0,0,0,0), +(201039,12061,2500,197,215,0,0,0,0,0), +(201039,12053,5000,197,215,0,0,0,0,0), +(201039,12050,4000,197,210,0,0,0,0,0), +(201039,8804,5000,197,210,0,0,0,0,0), +(201039,12049,4000,197,205,0,0,0,0,0), +(201039,12048,4000,197,205,0,0,0,0,0), +(201039,12181,50000,197,200,3910,0,0,35,0), +(201039,8799,3000,197,195,0,0,0,0,0), +(201039,8770,1000,197,190,0,0,0,0,0), +(201039,8791,2500,197,185,0,0,0,0,0), +(201039,3861,1000,197,185,0,0,0,0,0), +(201039,8774,1000,197,180,0,0,0,0,0), +(201039,8772,1000,197,175,0,0,0,0,0), +(201039,8766,1000,197,175,0,0,0,0,0), +(201039,8489,750,197,175,0,0,0,0,0), +(201039,3865,1000,197,175,0,0,0,0,0), +(201039,8764,900,197,170,0,0,0,0,0), +(201039,3871,500,197,170,0,0,0,0,0), +(201039,8762,750,197,160,0,0,0,0,0), +(201039,8483,500,197,160,0,0,0,0,0), +(201039,3859,750,197,150,0,0,0,0,0), +(201039,3813,800,197,150,0,0,0,0,0), +(201039,8760,600,197,145,0,0,0,0,0), +(201039,8758,600,197,140,0,0,0,0,0), +(201039,6690,1000,197,135,0,0,0,0,0), +(201039,3852,750,197,130,0,0,0,0,0), +(201039,63742,750,197,125,0,0,0,0,0), +(201039,3913,5000,197,125,3909,0,0,20,0), +(201039,3855,750,197,125,0,0,0,0,0), +(201039,3839,500,197,125,0,0,0,0,0), +(201039,8467,250,197,110,0,0,0,0,0), +(201039,3866,250,197,110,0,0,0,0,0), +(201039,3850,500,197,110,0,0,0,0,0), +(201039,3848,500,197,110,0,0,0,0,0), +(201039,2406,200,197,100,0,0,0,0,0), +(201039,2401,300,197,95,0,0,0,0,0), +(201039,6521,400,197,90,0,0,0,0,0), +(201039,3843,400,197,85,0,0,0,0,0), +(201039,2399,300,197,85,0,0,0,0,0), +(201039,3845,300,197,80,0,0,0,0,0), +(201039,3757,200,197,80,0,0,0,0,0), +(201039,12046,300,197,75,0,0,0,0,0), +(201039,2964,100,197,75,0,0,0,0,0), +(201039,2402,250,197,75,0,0,0,0,0), +(201039,3842,300,197,70,0,0,0,0,0), +(201039,2396,200,197,70,0,0,0,0,0), +(201039,2395,300,197,70,0,0,0,0,0), +(201039,2386,200,197,65,0,0,0,0,0), +(201039,3841,200,197,60,0,0,0,0,0), +(201039,2397,200,197,60,0,0,0,0,0), +(201039,3912,500,197,50,3908,0,0,10,0), +(201039,3755,100,197,45,0,0,0,0,0), +(201039,8465,50,197,40,0,0,0,0,0), +(201039,2394,50,197,40,0,0,0,0,0), +(201039,2392,50,197,40,0,0,0,0,0), +(201039,3840,100,197,35,0,0,0,0,0), +(201039,7624,50,197,30,0,0,0,0,0), +(201039,7623,50,197,30,0,0,0,0,0), +(201039,3914,50,197,30,0,0,0,0,0), +(201039,12045,50,197,20,0,0,0,0,0), +(201039,8776,50,197,15,0,0,0,0,0), +(201039,2385,50,197,10,0,0,0,0,0), +(201039,3915,25,197,1,0,0,0,0,0), +(201039,2393,25,197,1,0,0,0,0,0), +(201039,3911,10,0,0,0,0,0,5,0), +(201040,26772,20000,197,335,0,0,0,0,0), +(201040,26771,20000,197,325,0,0,0,0,0), +(201040,26770,20000,197,320,0,0,0,0,0), +(201040,26746,15000,197,315,0,0,0,0,0), +(201040,26765,15000,197,310,0,0,0,0,0), +(201040,26764,15000,197,310,0,0,0,0,0), +(201040,31460,20000,197,300,0,0,0,0,0), +(201040,26745,20000,197,300,0,0,0,0,0), +(201040,26791,100000,197,275,12180,0,0,50,0), +(201041,64729,100000,197,400,0,0,0,0,0), +(201041,56028,200000,197,440,0,0,0,0,0), +(201041,56026,200000,197,440,0,0,0,0,0), +(201041,56024,200000,197,440,0,0,0,0,0), +(201041,56029,200000,197,435,0,0,0,0,0), +(201041,56027,200000,197,435,0,0,0,0,0), +(201041,56025,200000,197,435,0,0,0,0,0), +(201041,60993,180000,197,425,0,0,0,0,0), +(201041,60971,150000,197,425,0,0,0,0,0), +(201041,56021,100000,197,425,0,0,0,0,0), +(201041,56018,100000,197,425,0,0,0,0,0), +(201041,60994,180000,197,420,0,0,0,0,0), +(201041,60990,180000,197,420,0,0,0,0,0), +(201041,59589,120000,197,420,0,0,0,0,0), +(201041,59588,120000,197,420,0,0,0,0,0), +(201041,59587,100000,197,420,0,0,0,0,0), +(201041,59586,100000,197,420,0,0,0,0,0), +(201041,59585,100000,197,420,0,0,0,0,0), +(201041,59584,100000,197,420,0,0,0,0,0), +(201041,56023,100000,197,420,0,0,0,0,0), +(201041,56022,100000,197,420,0,0,0,0,0), +(201041,56020,100000,197,420,0,0,0,0,0), +(201041,56019,100000,197,420,0,0,0,0,0), +(201041,55941,125000,197,420,0,0,0,0,0), +(201041,55777,125000,197,420,0,0,0,0,0), +(201041,55769,125000,197,420,0,0,0,0,0), +(201041,55642,125000,197,420,0,0,0,0,0), +(201041,59583,100000,197,415,0,0,0,0,0), +(201041,59582,100000,197,415,0,0,0,0,0), +(201041,56003,100000,197,415,0,0,0,0,0), +(201041,56002,100000,197,415,0,0,0,0,0), +(201041,56001,100000,197,415,0,0,0,0,0), +(201041,55943,125000,197,415,0,0,0,0,0), +(201041,55925,125000,197,415,0,0,0,0,0), +(201041,60969,105000,197,300,0,0,0,0,0), +(201041,56007,80000,197,410,0,0,0,0,0), +(201041,55924,125000,197,410,0,0,0,0,0), +(201041,55923,100000,197,410,0,0,0,0,0), +(201041,64730,100000,197,405,0,0,0,0,0), +(201041,56039,100000,197,405,0,0,0,0,0), +(201041,56034,100000,197,405,0,0,0,0,0), +(201041,55922,100000,197,405,0,0,0,0,0), +(201041,55921,100000,197,405,0,0,0,0,0), +(201041,56010,100000,197,400,0,0,0,0,0), +(201041,56008,100000,197,400,0,0,0,0,0), +(201041,56000,50000,197,400,0,0,0,0,0), +(201041,55995,50000,197,400,0,0,0,0,0), +(201041,55920,50000,197,400,0,0,0,0,0), +(201041,55900,125000,197,400,0,0,0,0,0), +(201041,56015,100000,197,395,0,0,0,0,0), +(201041,55919,100000,197,395,0,0,0,0,0), +(201041,55914,50000,197,395,0,0,0,0,0), +(201041,55901,50000,197,395,0,0,0,0,0), +(201041,56014,100000,197,390,0,0,0,0,0), +(201041,55911,80000,197,390,0,0,0,0,0), +(201041,55913,80000,197,385,0,0,0,0,0), +(201041,55910,80000,197,385,0,0,0,0,0), +(201041,56030,50000,197,380,0,0,0,0,0), +(201041,55907,50000,197,380,0,0,0,0,0), +(201041,55906,50000,197,375,0,0,0,0,0), +(201041,55908,50000,197,370,0,0,0,0,0), +(201041,55904,50000,197,360,0,0,0,0,0), +(201041,55903,50000,197,360,0,0,0,0,0), +(201041,55898,50000,197,360,0,0,0,0,0), +(201041,56031,50000,197,350,0,0,0,0,0), +(201041,55902,50000,197,350,0,0,0,0,0), +(201041,55899,50000,197,350,0,0,0,0,0), +(201041,51308,350000,197,350,26790,0,0,65,0), +(201042,12082,7000,197,240,0,0,0,0,0), +(201042,12076,6500,197,235,0,0,0,0,0), +(201042,12071,6000,197,225,0,0,0,0,0), +(201042,12055,5500,197,215,0,0,0,0,0), +(201042,12052,5000,197,210,0,0,0,0,0), +(202001,18249,25000,356,200,7732,0,0,10,0), +(202001,54083,10000,356,125,7731,0,0,10,0), +(202001,7733,100,0,0,0,0,0,5,0), +(202001,7734,500,356,50,7620,0,0,10,0), +(202002,54084,100000,356,275,18248,0,0,10,0), +(202003,51293,350000,356,350,33095,0,0,10,0), +(202004,21175,4000,185,200,0,0,0,0,0), +(202004,6500,300,185,125,0,0,0,0,0), +(202004,2546,150,185,80,0,0,0,0,0), +(202004,2544,200,185,75,0,0,0,0,0), +(202004,6499,100,185,50,0,0,0,0,0), +(202004,2541,100,185,50,0,0,0,0,0), +(202004,2539,50,185,10,0,0,0,0,0), +(202004,37836,10,185,1,0,0,0,0,0), +(202004,18261,25000,185,200,3413,0,0,0,0), +(202004,54257,1000,185,125,3102,0,0,0,0), +(202004,3412,500,185,50,2550,0,0,0,0), +(202004,2551,100,0,0,0,0,0,0,0), +(202005,54256,100000,185,275,18260,0,0,0,0), +(202006,64358,50000,185,400,0,0,0,0,0), +(202006,45554,50000,185,375,0,0,0,0,0), +(202006,45569,20000,185,350,0,0,0,0,0), +(202006,45566,20000,185,350,0,0,0,0,0), +(202006,45565,20000,185,350,0,0,0,0,0), +(202006,45564,20000,185,350,0,0,0,0,0), +(202006,45563,20000,185,350,0,0,0,0,0), +(202006,45562,10000,185,350,0,0,0,0,0), +(202006,45561,10000,185,350,0,0,0,0,0), +(202006,45560,10000,185,350,0,0,0,0,0), +(202006,45553,20000,185,350,0,0,0,0,0), +(202006,45552,20000,185,350,0,0,0,0,0), +(202006,45551,20000,185,350,0,0,0,0,0), +(202006,45550,20000,185,350,0,0,0,0,0), +(202006,45549,20000,185,350,0,0,0,0,0), +(202006,51295,350000,185,350,33359,0,0,0,0), +(202006,58065,20000,185,350,0,0,0,0,0), +(202007,18630,20000,129,290,0,0,0,0,0), +(202007,10841,10000,129,240,0,0,0,0,0), +(202007,18629,20000,129,260,0,0,0,0,0), +(202007,7934,250,129,80,0,0,0,0,0), +(202007,10840,10000,129,210,0,0,0,0,0), +(202007,7929,5000,129,180,0,0,0,0,0), +(202007,7928,5000,129,150,0,0,0,0,0), +(202007,3278,1000,129,115,0,0,0,0,0), +(202007,3277,250,129,80,0,0,0,0,0), +(202007,54254,1000,129,125,3274,0,0,0,0), +(202007,3276,100,129,40,0,0,0,0,0), +(202007,10847,25000,129,200,7924,0,0,35,0), +(202007,3280,500,129,50,3273,0,0,0,0), +(202007,3279,100,0,0,0,0,0,0,0), +(202008,27033,20000,129,330,0,0,0,0,0), +(202008,27032,20000,129,300,0,0,0,0,0), +(202008,54255,20000,129,275,10846,0,0,0,0), +(202009,45545,40000,129,350,0,0,0,0,0), +(202009,50299,350000,129,350,27028,0,0,0,0), +(202010,33391,500000,762,75,0,0,0,40,0), +(202010,33388,40000,762,0,0,0,0,20,0), +(202011,34091,50000000,762,225,0,0,0,70,0), +(202011,34090,2500000,762,150,0,0,0,60,0), +(202012,54197,10000000,762,225,0,0,0,77,0), +(3690,33388,40000,762,0,0,0,0,20,0), +(3690,33391,500000,762,75,0,0,0,40,0), +(4732,33388,40000,762,0,0,0,0,20,0), +(4732,33391,500000,762,75,0,0,0,40,0), +(4752,33388,40000,762,0,0,0,0,20,0), +(4752,33391,500000,762,75,0,0,0,40,0), +(4772,33388,40000,762,0,0,0,0,20,0), +(4772,33391,500000,762,75,0,0,0,40,0), +(4773,33388,40000,762,0,0,0,0,20,0), +(4773,33391,500000,762,75,0,0,0,40,0), +(7953,33388,40000,762,0,0,0,0,20,0), +(7953,33391,500000,762,75,0,0,0,40,0), +(7954,33388,40000,762,0,0,0,0,20,0), +(7954,33391,500000,762,75,0,0,0,40,0), +(16280,33388,40000,762,0,0,0,0,20,0), +(16280,33391,500000,762,75,0,0,0,40,0), +(20914,33388,40000,762,0,0,0,0,20,0), +(20914,33391,500000,762,75,0,0,0,40,0), +(543,530,4000,0,0,0,0,0,20,0), +(2485,10059,15000,0,0,0,0,0,40,0), +(2485,3561,2000,0,0,0,0,0,20,0), +(2489,3562,2000,0,0,0,0,0,20,0), +(2489,11416,15000,0,0,0,0,0,40,0), +(2492,11418,15000,0,0,0,0,0,40,0), +(2492,3563,2000,0,0,0,0,0,20,0), +(2704,2567,1000,0,0,0,0,0,0,0), +(2704,264,1000,0,0,0,0,0,0,0), +(2704,197,1000,0,0,0,0,0,0,0), +(2704,227,1000,0,0,0,0,0,0,0), +(2704,196,1000,0,0,0,0,0,0,0), +(2818,4094,500,185,175,0,0,0,25,0), +(2878,530,4000,0,0,0,0,0,20,0), +(2879,530,4000,0,0,0,0,0,20,0), +(2880,2795,240,185,25,0,0,0,0,0), +(3306,530,4000,0,0,0,0,0,20,0), +(3545,530,4000,0,0,0,0,0,20,0), +(3620,530,4000,0,0,0,0,0,20,0), +(3622,530,4000,0,0,0,0,0,20,0), +(3624,530,4000,0,0,0,0,0,20,0), +(3698,530,4000,0,0,0,0,0,20,0), +(4165,3565,8000,0,0,0,0,0,20,0), +(4165,11419,32000,0,0,0,0,0,40,0), +(4320,530,4000,0,0,0,0,0,20,0), +(5957,11420,32000,0,0,0,0,0,40,0), +(5957,3566,8000,0,0,0,0,0,20,0), +(5958,3567,2000,0,0,0,0,0,20,0), +(5958,11417,15000,0,0,0,0,0,40,0), +(10086,530,4000,0,0,0,0,0,20,0), +(10088,530,4000,0,0,0,0,0,20,0), +(10370,197,1000,0,0,0,0,0,0,0), +(11865,266,1000,0,0,0,0,0,0,0), +(11865,199,1000,0,0,0,0,0,0,0), +(11865,15590,1000,0,0,0,0,0,0,0), +(11865,198,1000,0,0,0,0,0,0,0), +(11865,197,1000,0,0,0,0,0,0,0), +(11865,196,1000,0,0,0,0,0,0,0), +(11866,15590,1000,0,0,0,0,0,0,0), +(11866,1180,1000,0,0,0,0,0,0,0), +(11866,2567,1000,0,0,0,0,0,0,0), +(11866,264,1000,0,0,0,0,0,0,0), +(11866,227,1000,0,0,0,0,0,0,0), +(11867,5011,1000,0,0,0,0,0,0,0), +(11867,1180,1000,0,0,0,0,0,0,0), +(11867,202,1000,0,0,0,0,0,0,0), +(11867,227,1000,0,0,0,0,0,0,0), +(11867,200,10000,0,0,0,0,0,0,0), +(11867,201,1000,0,0,0,0,0,0,0), +(11868,15590,1000,0,0,0,0,0,0,0), +(11868,2567,1000,0,0,0,0,0,0,0), +(11868,264,1000,0,0,0,0,0,0,0), +(11868,196,1000,0,0,0,0,0,0,0), +(11868,197,1000,0,0,0,0,0,0,0), +(11868,1180,1000,0,0,0,0,0,0,0), +(11869,227,1000,0,0,0,0,0,0,0), +(11869,198,1000,0,0,0,0,0,0,0), +(11869,266,1000,0,0,0,0,0,0,0), +(11869,199,1000,0,0,0,0,0,0,0), +(11870,5011,1000,0,0,0,0,0,0,0), +(11870,1180,1000,0,0,0,0,0,0,0), +(11870,201,1000,0,0,0,0,0,0,0), +(11870,202,1000,0,0,0,0,0,0,0), +(11870,200,10000,0,0,0,0,0,20,0), +(13084,2567,1000,0,0,0,0,0,0,0), +(13084,5011,1000,0,0,0,0,0,0,0), +(13084,1180,1000,0,0,0,0,0,0,0), +(14401,22968,1000,186,300,0,0,0,60,0), +(16621,2567,1000,0,0,0,0,0,0,0), +(16621,264,1000,0,0,0,0,0,0,0), +(16621,1180,1000,0,0,0,0,0,0,0), +(16621,200,10000,0,0,0,0,0,20,0), +(16621,202,1000,0,0,0,0,0,0,0), +(16621,201,1000,0,0,0,0,0,0,0), +(16654,32272,2000,0,0,0,0,0,20,0), +(16654,32267,15000,0,0,0,0,0,40,0), +(16755,32271,2000,0,0,0,0,0,20,0), +(16755,32266,15000,0,0,0,0,0,40,0), +(16773,1180,1000,0,0,0,0,0,0,0), +(16773,202,1000,0,0,0,0,0,0,0), +(16773,201,1000,0,0,0,0,0,0,0), +(16773,199,1000,0,0,0,0,0,0,0), +(16773,198,1000,0,0,0,0,0,0,0), +(16773,5011,1000,0,0,0,0,0,0,0), +(17005,200,10000,0,0,0,0,0,20,0), +(17005,201,1000,0,0,0,0,0,0,0), +(17005,202,1000,0,0,0,0,0,0,0), +(17005,264,1000,0,0,0,0,0,0,0), +(17005,1180,1000,0,0,0,0,0,0,0), +(17005,2567,1000,0,0,0,0,0,0,0), +(17215,2337,1000,171,55,0,0,0,0,0), +(17215,53042,10000,171,50,0,0,0,0,0), +(17215,2334,250,171,50,0,0,0,0,0), +(17215,2332,150,171,40,0,0,0,0,0), +(17215,2331,100,171,25,0,0,0,0,0), +(17215,3170,50,171,15,0,0,0,0,0), +(17215,2275,10,0,0,0,0,0,5,0), +(17634,41311,50000,202,350,0,0,0,0,0), +(17634,41316,50000,202,350,0,0,0,0,0), +(17634,41312,50000,202,350,0,0,0,0,0), +(17634,41314,50000,202,350,0,0,0,0,0), +(17634,41320,50000,202,350,0,0,0,0,0), +(17634,41315,50000,202,350,0,0,0,0,0), +(17634,40274,50000,202,350,0,0,0,0,0), +(17634,41317,50000,202,350,0,0,0,0,0), +(17634,41319,50000,202,350,0,0,0,0,0), +(17634,41318,50000,202,350,0,0,0,0,0), +(17634,39973,50000,202,335,0,0,0,0,0), +(17637,39973,50000,202,335,0,0,0,0,0), +(17637,41320,50000,202,350,0,0,0,0,0), +(17637,41317,50000,202,350,0,0,0,0,0), +(18752,40274,50000,202,350,0,0,0,0,0), +(18752,39973,50000,202,335,0,0,0,0,0), +(18752,41316,50000,202,350,0,0,0,0,0), +(18752,41320,50000,202,350,0,0,0,0,0), +(18752,41317,50000,202,350,0,0,0,0,0), +(18752,41315,50000,202,350,0,0,0,0,0), +(18752,41314,50000,202,350,0,0,0,0,0), +(18752,41312,50000,202,350,0,0,0,0,0), +(18752,41311,50000,202,350,0,0,0,0,0), +(18775,41312,50000,202,350,0,0,0,0,0), +(18775,41311,50000,202,350,0,0,0,0,0), +(18775,41320,50000,202,350,0,0,0,0,0), +(18775,41317,50000,202,350,0,0,0,0,0), +(18775,41314,50000,202,350,0,0,0,0,0), +(18775,39973,50000,202,335,0,0,0,0,0), +(18775,40274,50000,202,350,0,0,0,0,0), +(19186,42296,42000,185,320,0,0,0,0,0), +(19186,42302,60000,185,350,0,0,0,0,0), +(19186,42305,60000,185,350,0,0,0,0,0), +(19340,35717,150000,0,0,0,0,0,65,0), +(19340,35715,20000,0,0,0,0,0,60,0), +(19576,41320,50000,202,350,0,0,0,0,0), +(19576,41317,50000,202,350,0,0,0,0,0), +(19576,41314,50000,202,350,0,0,0,0,0), +(19576,41312,50000,202,350,0,0,0,0,0), +(19576,40274,50000,202,350,0,0,0,0,0), +(19576,39973,50000,202,335,0,0,0,0,0), +(20791,35717,150000,0,0,0,0,0,65,0), +(20791,33691,150000,0,0,0,0,0,65,0), +(20791,35715,20000,0,0,0,0,0,60,0), +(20791,33690,20000,0,0,0,0,0,60,0), +(21493,36954,1050,202,350,0,0,0,0,0), +(21494,36955,1050,202,350,0,0,0,0,0), +(27703,49359,2000,0,0,0,0,0,20,0), +(27703,49360,15000,0,0,0,0,0,40,0), +(27705,49358,2000,0,0,0,0,0,20,0), +(27705,49361,15000,0,0,0,0,0,40,0), +(29156,53140,100000,0,0,0,0,0,71,0), +(29156,53142,100000,0,0,0,0,0,74,0), +(29506,34533,100000,164,350,0,0,0,0,0), +(29506,34534,250000,164,375,0,0,0,0,0), +(29506,36257,500000,164,375,0,0,0,0,0), +(29506,36256,500000,164,375,0,0,0,0,0), +(29506,34529,100000,164,350,0,0,0,0,0), +(29506,34530,250000,164,375,0,0,0,0,0), +(29506,55186,50000,164,415,0,0,0,0,0), +(29506,36122,10000,164,260,0,0,0,0,0), +(29506,36129,40000,164,330,0,0,0,0,0), +(29506,55187,50000,164,415,0,0,0,0,0), +(29506,36130,40000,164,330,0,0,0,0,0), +(29506,9974,10000,164,245,0,0,0,0,0), +(29506,9954,10000,164,225,0,0,0,0,0), +(29506,36124,10000,164,260,0,0,0,0,0), +(33677,41312,50000,202,350,0,0,0,0,0), +(33677,40274,50000,202,350,0,0,0,0,0), +(33996,2373,500,182,50,2366,0,0,0,0), +(33996,3571,5000,182,125,2368,0,0,10,0), +(33996,11994,50000,182,200,3570,0,0,25,0), +(33996,2372,10,0,0,0,0,0,0,0); + +-- Dumping structure for tabel world.creature_default_trainer +DROP TABLE IF EXISTS `creature_default_trainer`; +CREATE TABLE IF NOT EXISTS `creature_default_trainer` ( + `CreatureId` int(11) unsigned NOT NULL, + `TrainerId` int(11) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`CreatureId`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- Dumping data for table world.creature_default_trainer: 750 rows +INSERT INTO `creature_default_trainer` (`CreatureId`,`TrainerId`) VALUES +(925,200003), +(26332,200002), +(17504,200002), +(17480,200002), +(17120,200002), +(16771,200002), +(16503,200001), +(8141,200002), +(7315,200002), +(5480,200002), +(5479,200002), +(5114,200002), +(5113,200002), +(4595,200002), +(4594,200002), +(4593,200002), +(4089,200002), +(4087,200002), +(3598,200002), +(3593,200001), +(3408,200002), +(3354,200002), +(3353,200002), +(3169,200002), +(3153,200001), +(3063,200002), +(3059,200001), +(3043,200002), +(3042,200002), +(3041,200002), +(2131,200002), +(2119,200001), +(1901,200002), +(1229,200002), +(985,200002), +(914,200002), +(913,200002), +(912,200001), +(911,200001), +(926,200003), +(927,200020), +(928,200020), +(1232,200020), +(5147,200020), +(5148,200020), +(5149,200020), +(5491,200020), +(5492,200020), +(8140,200020), +(15280,200003), +(16275,200021), +(16501,200003), +(16679,200021), +(16680,200021), +(16681,200021), +(16761,200020), +(17121,200020), +(17483,200020), +(17509,200020), +(17844,200020), +(20406,200021), +(23128,200021), +(26327,200004), +(35281,200020), +(3033,200006), +(3034,200006), +(3036,200006), +(3060,200005), +(3064,200006), +(3597,200005), +(3602,200006), +(4217,200006), +(4218,200006), +(4219,200006), +(5504,200006), +(5505,200006), +(5506,200006), +(8142,200006), +(9465,200006), +(12042,200006), +(16655,200006), +(16721,200006), +(26324,200006), +(198,200007), +(328,200008), +(331,200008), +(944,200007), +(1228,200008), +(2124,200007), +(2128,200008), +(3047,200008), +(3048,200008), +(3049,200008), +(4566,200008), +(4567,200008), +(4568,200008), +(5144,200008), +(5145,200008), +(5146,200008), +(5497,200008), +(5498,200008), +(5880,200008), +(5882,200008), +(5883,200008), +(5884,200008), +(5885,200008), +(7311,200008), +(7312,200008), +(15279,200007), +(16269,200008), +(16500,200007), +(16651,200008), +(16652,200008), +(16653,200008), +(16749,200008), +(17105,200008), +(17481,200008), +(17513,200008), +(17514,200008), +(23103,200008), +(26326,200008), +(27704,200008), +(28956,200008), +(28958,200008), +(459,200009), +(460,200009), +(461,200010), +(906,200010), +(988,200010), +(2126,200009), +(2127,200010), +(3156,200009), +(3172,200010), +(3324,200010), +(3325,200010), +(3326,200010), +(4563,200010), +(4564,200010), +(4565,200010), +(5171,200010), +(5172,200010), +(5173,200010), +(5495,200010), +(5496,200010), +(5612,200010), +(15283,200009), +(16266,200010), +(16646,200010), +(16647,200010), +(16648,200010), +(23534,200010), +(26331,200010), +(375,200011), +(376,200012), +(377,200012), +(837,200011), +(1226,200012), +(2123,200011), +(2129,200012), +(3044,200012), +(3045,200012), +(3046,200012), +(3595,200012), +(3600,200012), +(3706,200012), +(3707,200011), +(4090,200012), +(4091,200012), +(4092,200012), +(4606,200012), +(4607,200012), +(4608,200012), +(5141,200012), +(5142,200012), +(5143,200012), +(5484,200012), +(5489,200012), +(5994,200012), +(6014,200012), +(6018,200012), +(11397,200012), +(11401,200012), +(11406,200012), +(15284,200011), +(16276,200012), +(16502,200011), +(16658,200012), +(16659,200012), +(16660,200012), +(16756,200012), +(17482,200011), +(17510,200012), +(17511,200012), +(26328,200012), +(895,200013), +(987,200014), +(1231,200014), +(1404,200014), +(3038,200014), +(3039,200014), +(3040,200014), +(3061,200013), +(3065,200014), +(3154,200013), +(3171,200014), +(3352,200014), +(3406,200014), +(3407,200014), +(3596,200013), +(3601,200014), +(3963,200014), +(4138,200014), +(4146,200014), +(4205,200014), +(5115,200014), +(5116,200014), +(5117,200014), +(5501,200014), +(5515,200014), +(5516,200014), +(5517,200014), +(8308,200014), +(10930,200014), +(15513,200013), +(16270,200014), +(16499,200013), +(16672,200014), +(16673,200014), +(16674,200014), +(16738,200014), +(17110,200014), +(17122,200014), +(17505,200014), +(26325,200014), +(915,200015), +(916,200015), +(917,200016), +(918,200016), +(1234,200016), +(1411,200016), +(2122,200015), +(2130,200016), +(3155,200015), +(3170,200016), +(3327,200016), +(3328,200016), +(3401,200016), +(3594,200015), +(3599,200016), +(4163,200016), +(4214,200016), +(4215,200016), +(4582,200016), +(4583,200016), +(4584,200016), +(5165,200016), +(5166,200016), +(5167,200016), +(6707,200016), +(13283,200016), +(15285,200015), +(16279,200016), +(16684,200016), +(16685,200016), +(16686,200016), +(26329,200016), +(986,200018), +(3030,200018), +(3031,200018), +(3032,200018), +(3062,200017), +(3066,200018), +(3157,200017), +(3173,200018), +(3344,200018), +(3403,200018), +(13417,200018), +(17089,200017), +(17204,200018), +(17212,200018), +(17219,200018), +(17519,200018), +(17520,200018), +(20407,200018), +(23127,200018), +(26330,200018), +(28471,200019), +(28472,200019), +(28474,200019), +(29194,200019), +(29195,200019), +(29196,200019), +(31084,200019), +(1215,201001), +(1386,201001), +(1470,201001), +(2132,201001), +(2391,201001), +(2837,201001), +(3009,201001), +(3184,201001), +(3347,201001), +(3603,201001), +(3964,201001), +(4160,201001), +(4611,201001), +(4900,201001), +(5177,201001), +(5499,201001), +(7948,201001), +(16161,201001), +(16588,201002), +(16642,201001), +(16723,201001), +(18802,201002), +(19052,201002), +(27023,201002), +(27029,201002), +(33608,201003), +(33630,201002), +(33674,201002), +(26903,201003), +(26951,201003), +(26975,201003), +(26987,201003), +(28703,201003), +(33588,201003), +(514,201004), +(1241,201004), +(2836,201004), +(2998,201004), +(3136,201004), +(3174,201004), +(3355,201004), +(3478,201004), +(3557,201004), +(4258,201004), +(4596,201004), +(5511,201004), +(6299,201004), +(15400,201004), +(16583,201005), +(16669,201004), +(16724,201004), +(16823,201005), +(17245,201004), +(19341,201005), +(21209,201004), +(26564,201006), +(26904,201006), +(26952,201006), +(26981,201006), +(26988,201006), +(27034,201006), +(28694,201006), +(29924,201006), +(33591,201006), +(33609,201006), +(33631,201005), +(33675,201005), +(5164,201007), +(7230,201007), +(11177,201007), +(20125,201007), +(7231,201008), +(7232,201008), +(11146,201008), +(11178,201008), +(20124,201008), +(29505,201008), +(1317,201009), +(3011,201009), +(3345,201009), +(3606,201009), +(4213,201009), +(4616,201009), +(5157,201009), +(5695,201009), +(7949,201009), +(11072,201009), +(11073,201009), +(11074,201009), +(16160,201009), +(16633,201009), +(16725,201009), +(18753,201010), +(18773,201010), +(19251,201010), +(19252,201010), +(19540,201010), +(33610,201011), +(33633,201010), +(33676,201010), +(26906,201011), +(26954,201011), +(26980,201011), +(26990,201011), +(28693,201011), +(33583,201011), +(1676,201012), +(1702,201012), +(3290,201012), +(3494,201012), +(5174,201012), +(5518,201012), +(8736,201012), +(10993,201012), +(11017,201012), +(11025,201012), +(11031,201012), +(11037,201012), +(16667,201012), +(16726,201012), +(17222,201012), +(17634,17634), +(17637,17637), +(18752,18752), +(18775,18775), +(19576,19576), +(25277,201014), +(26907,201014), +(26955,201014), +(26991,201014), +(28697,201014), +(33586,201014), +(33611,201014), +(33634,201013), +(33677,33677), +(8126,201015), +(8738,201015), +(29513,201015), +(7406,201016), +(7944,201016), +(29514,201016), +(24868,201017), +(25099,201017), +(812,201018), +(908,201018), +(1218,201018), +(1458,201018), +(1473,201018), +(2114,201018), +(2390,201018), +(2856,201018), +(3013,201018), +(3185,201018), +(3404,201018), +(3604,201018), +(3965,201018), +(4204,201018), +(4614,201018), +(4898,201018), +(5137,201018), +(5502,201018), +(5566,201018), +(8146,201018), +(12025,201018), +(16367,201018), +(16644,201018), +(16736,201018), +(17434,201018), +(17983,201018), +(18748,201019), +(18776,201019), +(26910,201020), +(26958,201020), +(26974,201020), +(26994,201020), +(28704,201020), +(33616,201020), +(33639,201019), +(33678,201019), +(26916,201023), +(26959,201023), +(26977,201023), +(26995,201023), +(28702,201023), +(30706,201021), +(30709,201021), +(30710,201021), +(30711,201021), +(30713,201021), +(30715,201021), +(30716,201021), +(30717,201021), +(30721,201022), +(30722,201022), +(33603,201023), +(33615,201023), +(33638,201022), +(33679,201022), +(15501,201024), +(18751,201025), +(18774,201025), +(19063,201026), +(19539,201025), +(19775,201024), +(19778,201024), +(26915,201026), +(26960,201026), +(26982,201026), +(26997,201026), +(28701,201026), +(33590,201026), +(33614,201026), +(33637,201025), +(33680,201025), +(1385,201027), +(1632,201027), +(3007,201027), +(3069,201027), +(3365,201027), +(3549,201027), +(3605,201027), +(3703,201027), +(3967,201027), +(4212,201027), +(4588,201027), +(5127,201027), +(5564,201027), +(5784,201027), +(8153,201027), +(11097,201027), +(11098,201027), +(16278,201027), +(16688,201027), +(16728,201027), +(17442,201027), +(18754,201028), +(18771,201028), +(19187,201028), +(21087,201028), +(26996,201029), +(33612,201029), +(33635,201028), +(33681,201028), +(26911,201029), +(26961,201029), +(26998,201029), +(28700,201029), +(33581,201029), +(7870,201030), +(7871,201030), +(29509,201030), +(7866,201031), +(7867,201031), +(29508,201031), +(7868,201032), +(7869,201032), +(29507,201032), +(1681,201033), +(1701,201033), +(3001,201033), +(3137,201033), +(3175,201033), +(3357,201033), +(3555,201033), +(4254,201033), +(4598,201033), +(5392,201033), +(5513,201033), +(6297,201033), +(8128,201033), +(16663,201033), +(16752,201033), +(17488,201033), +(18747,201034), +(18779,201034), +(18804,201033), +(26912,201035), +(26962,201035), +(26976,201035), +(26999,201035), +(28698,201035), +(33617,201035), +(33640,201034), +(33682,201034), +(1292,201036), +(6287,201036), +(6288,201036), +(6289,201036), +(6290,201036), +(6291,201036), +(6292,201036), +(6295,201036), +(6306,201036), +(6387,201036), +(7087,201036), +(7088,201036), +(7089,201036), +(8144,201036), +(12030,201036), +(16273,201036), +(16692,201036), +(16763,201036), +(17441,201036), +(18755,201037), +(18777,201037), +(19180,201037), +(26913,201038), +(26963,201038), +(26986,201038), +(27000,201038), +(28696,201038), +(33618,201038), +(33641,201037), +(33683,201037), +(1103,201039), +(1346,201039), +(2399,201039), +(2627,201039), +(3004,201039), +(3363,201039), +(3484,201039), +(3523,201039), +(3704,201039), +(4159,201039), +(4193,201039), +(4576,201039), +(5153,201039), +(11052,201039), +(11557,201039), +(16366,201039), +(16640,201039), +(16729,201039), +(17487,201039), +(18749,201040), +(18772,201040), +(26914,201041), +(26964,201041), +(26969,201041), +(27001,201041), +(28699,201041), +(33580,201041), +(33613,201041), +(33636,201040), +(33684,201040), +(4578,201042), +(9584,201042), +(1651,202001), +(1680,202001), +(1683,202001), +(1700,202001), +(2367,202001), +(2834,202001), +(3028,202001), +(3179,202001), +(3332,202001), +(3607,202001), +(4156,202001), +(4573,202001), +(5161,202001), +(5493,202001), +(5690,202001), +(5938,202001), +(5941,202001), +(7946,202001), +(12032,202001), +(12961,202001), +(14740,202001), +(16774,202001), +(16780,202001), +(17101,202001), +(18018,202001), +(18911,202002), +(26909,202003), +(26957,202003), +(26993,202003), +(28742,202003), +(32474,202003), +(33623,202003), +(1355,202004), +(1382,202004), +(1430,202004), +(1699,202004), +(3026,202004), +(3067,202004), +(3087,202004), +(3399,202004), +(4210,202004), +(4552,202004), +(5159,202004), +(5482,202004), +(6286,202004), +(8306,202004), +(16253,202004), +(16277,202004), +(16676,202004), +(16719,202004), +(17246,202004), +(18987,202005), +(18988,202005), +(18993,202005), +(19185,202004), +(19369,202004), +(26905,202006), +(26953,202006), +(26972,202006), +(26989,202006), +(28705,202006), +(29631,202006), +(33587,202006), +(33619,202006), +(34708,202004), +(34710,202004), +(34711,202004), +(34712,202004), +(34713,202004), +(34714,202004), +(34785,202004), +(34786,202004), +(2326,202007), +(2327,202007), +(2329,202007), +(2798,202007), +(3181,202007), +(3373,202007), +(4211,202007), +(4591,202007), +(5150,202007), +(5759,202007), +(5939,202007), +(5943,202007), +(6094,202007), +(16272,202007), +(16662,202007), +(16731,202007), +(17214,202007), +(17424,202007), +(18990,202008), +(18991,202008), +(19184,202007), +(19478,202007), +(22477,202007), +(23734,202009), +(26956,202009), +(26992,202009), +(28706,202009), +(29233,202009), +(33589,202009), +(33621,202009), +(5957,5957), +(27703,27703), +(20791,20791), +(16654,16654), +(16755,16755), +(5958,5958), +(2492,2492), +(4165,4165), +(2489,2489), +(20500,202011), +(20511,202011), +(2485,2485), +(28746,202012), +(31238,202012), +(31247,202012), +(35093,202011), +(35100,202011), +(35133,202011), +(35135,202011), +(27705,27705), +(29156,29156), +(19340,19340), +(14401,14401), +(543,543), +(2704,2704), +(2818,2818), +(2878,2878), +(2879,2879), +(2880,2880), +(3306,3306), +(3545,3545), +(3620,3620), +(3622,3622), +(3624,3624), +(3698,3698), +(4320,4320), +(10086,10086), +(10088,10088), +(10370,10370), +(11865,11865), +(11866,11866), +(11867,11867), +(11868,11868), +(11869,11869), +(11870,11870), +(13084,13084), +(16621,16621), +(16773,16773), +(17005,17005), +(17215,17215), +(19186,19186), +(21493,21493), +(21494,21494), +(29506,29506), +(33996,33996); + +DELETE FROM `command` WHERE `permission`=672; +INSERT INTO `command` (`name`,`permission`,`help`) VALUES ('reload trainer',672,'Syntax: .reload trainer\nReloads trainer,trainer_locale,trainer_spell and creature_default_trainer tables.'); + +-- Drop unused table +-- DROP TABLE IF EXISTS `npc_trainer`; + +-- Drop removed columns +/* ALTER TABLE `creature_template` + DROP `trainer_type`, + DROP `trainer_spell`, + DROP `trainer_class`, + DROP `trainer_race`; +*/ diff --git a/src/server/database/Database/Implementation/WorldDatabase.cpp b/src/server/database/Database/Implementation/WorldDatabase.cpp index 085b2a5f283..5cc0c92d7aa 100644 --- a/src/server/database/Database/Implementation/WorldDatabase.cpp +++ b/src/server/database/Database/Implementation/WorldDatabase.cpp @@ -78,7 +78,7 @@ void WorldDatabaseConnection::DoPrepareStatements() PrepareStatement(WORLD_SEL_WAYPOINT_SCRIPT_ID_BY_GUID, "SELECT id FROM waypoint_scripts WHERE guid = ?", CONNECTION_SYNCH); PrepareStatement(WORLD_DEL_CREATURE, "DELETE FROM creature WHERE guid = ?", CONNECTION_ASYNC); PrepareStatement(WORLD_SEL_COMMANDS, "SELECT name, permission, help FROM command", CONNECTION_SYNCH); - PrepareStatement(WORLD_SEL_CREATURE_TEMPLATE, "SELECT entry, difficulty_entry_1, difficulty_entry_2, difficulty_entry_3, KillCredit1, KillCredit2, modelid1, modelid2, modelid3, modelid4, name, subname, IconName, gossip_menu_id, minlevel, maxlevel, exp, faction, npcflag, speed_walk, speed_run, scale, `rank`, dmgschool, BaseAttackTime, RangeAttackTime, BaseVariance, RangeVariance, unit_class, unit_flags, unit_flags2, dynamicflags, family, trainer_type, trainer_spell, trainer_class, trainer_race, type, type_flags, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8, PetSpellDataId, VehicleId, mingold, maxgold, AIName, MovementType, ctm.Ground, ctm.Swim, ctm.Flight, ctm.Rooted, HoverHeight, HealthModifier, ManaModifier, ArmorModifier, DamageModifier, ExperienceModifier, RacialLeader, movementId, RegenHealth, mechanic_immune_mask, spell_school_immune_mask, flags_extra, ScriptName FROM creature_template ct LEFT JOIN creature_template_movement ctm ON ct.entry = ctm.CreatureId WHERE entry = ?", CONNECTION_SYNCH); + PrepareStatement(WORLD_SEL_CREATURE_TEMPLATE, "SELECT entry, difficulty_entry_1, difficulty_entry_2, difficulty_entry_3, KillCredit1, KillCredit2, modelid1, modelid2, modelid3, modelid4, name, subname, IconName, gossip_menu_id, minlevel, maxlevel, exp, faction, npcflag, speed_walk, speed_run, scale, `rank`, dmgschool, BaseAttackTime, RangeAttackTime, BaseVariance, RangeVariance, unit_class, unit_flags, unit_flags2, dynamicflags, family, type, type_flags, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8, PetSpellDataId, VehicleId, mingold, maxgold, AIName, MovementType, ctm.Ground, ctm.Swim, ctm.Flight, ctm.Rooted, HoverHeight, HealthModifier, ManaModifier, ArmorModifier, DamageModifier, ExperienceModifier, RacialLeader, movementId, RegenHealth, mechanic_immune_mask, spell_school_immune_mask, flags_extra, ScriptName FROM creature_template ct LEFT JOIN creature_template_movement ctm ON ct.entry = ctm.CreatureId WHERE entry = ?", CONNECTION_SYNCH); PrepareStatement(WORLD_SEL_WAYPOINT_SCRIPT_BY_ID, "SELECT guid, delay, command, datalong, datalong2, dataint, x, y, z, o FROM waypoint_scripts WHERE id = ?", CONNECTION_SYNCH); PrepareStatement(WORLD_SEL_ITEM_TEMPLATE_BY_NAME, "SELECT entry FROM item_template WHERE name = ?", CONNECTION_SYNCH); PrepareStatement(WORLD_SEL_CREATURE_BY_ID, "SELECT guid FROM creature WHERE id = ?", CONNECTION_SYNCH); diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h index cbf0dec3f64..c9dfc573e1e 100644 --- a/src/server/game/Accounts/RBAC.h +++ b/src/server/game/Accounts/RBAC.h @@ -569,7 +569,7 @@ enum RBACPermissions RBAC_PERM_COMMAND_RELOAD_MAIL_LOOT_TEMPLATE = 669, RBAC_PERM_COMMAND_RELOAD_MILLING_LOOT_TEMPLATE = 670, RBAC_PERM_COMMAND_RELOAD_NPC_SPELLCLICK_SPELLS = 671, - RBAC_PERM_COMMAND_RELOAD_NPC_TRAINER = 672, + RBAC_PERM_COMMAND_RELOAD_TRAINER = 672, RBAC_PERM_COMMAND_RELOAD_NPC_VENDOR = 673, RBAC_PERM_COMMAND_RELOAD_PAGE_TEXT = 674, RBAC_PERM_COMMAND_RELOAD_PICKPOCKETING_LOOT_TEMPLATE = 675, diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index cf0cb59a91a..da4bc617fea 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -72,15 +72,6 @@ std::string CreatureMovementData::ToString() const VendorItemCount::VendorItemCount(uint32 _item, uint32 _count) : itemId(_item), count(_count), lastIncrementTime(GameTime::GetGameTime()) { } -TrainerSpell const* TrainerSpellData::Find(uint32 spell_id) const -{ - TrainerSpellMap::const_iterator itr = spellList.find(spell_id); - if (itr != spellList.end()) - return &itr->second; - - return nullptr; -} - bool VendorItem::IsGoldRequired(ItemTemplate const* pProto) const { return (pProto->Flags2 & ITEM_FLAG2_DONT_IGNORE_BUY_PRICE) || !ExtendedCost; @@ -1191,11 +1182,13 @@ bool Creature::isCanInteractWithBattleMaster(Player* player, bool msg) const return true; } -bool Creature::isCanTrainingAndResetTalentsOf(Player* player) const +bool Creature::CanResetTalents(Player* player) const { - return player->getLevel() >= 10 - && GetCreatureTemplate()->trainer_type == TRAINER_TYPE_CLASS - && player->getClass() == GetCreatureTemplate()->trainer_class; + Trainer::Trainer const* trainer = sObjectMgr->GetTrainer(GetEntry()); + if (!trainer) + return false; + + return player->getLevel() >= 10 && trainer->IsTrainerValidForPlayer(player); } Player* Creature::GetLootRecipient() const @@ -2706,11 +2699,6 @@ uint32 Creature::UpdateVendorItemCurrentCount(VendorItem const* vItem, uint32 us return vCount->count; } -TrainerSpellData const* Creature::GetTrainerSpells() const -{ - return sObjectMgr->GetNpcTrainerSpells(GetEntry()); -} - // overwrite WorldObject function for proper name localization std::string const & Creature::GetNameForLocaleIdx(LocaleConstant loc_idx) const { diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h index 05e2e32c6ef..48d3a89012d 100644 --- a/src/server/game/Entities/Creature/Creature.h +++ b/src/server/game/Entities/Creature/Creature.h @@ -118,7 +118,7 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma /// @todo Rename these properly bool isCanInteractWithBattleMaster(Player* player, bool msg) const; - bool isCanTrainingAndResetTalentsOf(Player* player) const; + bool CanResetTalents(Player* player) const; bool CanCreatureAttack(Unit const* victim, bool force = true) const; void LoadTemplateImmunities(); bool IsImmunedToSpell(SpellInfo const* spellInfo, WorldObject const* caster) const override; @@ -177,8 +177,6 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma uint32 GetVendorItemCurrentCount(VendorItem const* vItem); uint32 UpdateVendorItemCurrentCount(VendorItem const* vItem, uint32 used_count); - TrainerSpellData const* GetTrainerSpells() const; - CreatureTemplate const* GetCreatureTemplate() const { return m_creatureInfo; } CreatureData const* GetCreatureData() const { return m_creatureData; } CreatureAddon const* GetCreatureAddon() const; diff --git a/src/server/game/Entities/Creature/CreatureData.h b/src/server/game/Entities/Creature/CreatureData.h index 29100324590..86f8f211d32 100644 --- a/src/server/game/Entities/Creature/CreatureData.h +++ b/src/server/game/Entities/Creature/CreatureData.h @@ -151,10 +151,6 @@ struct TC_GAME_API CreatureTemplate uint32 unit_flags2; // enum UnitFlags2 mask values uint32 dynamicflags; CreatureFamily family; // enum CreatureFamily values (optional) - uint32 trainer_type; - uint32 trainer_spell; - uint32 trainer_class; - uint32 trainer_race; uint32 type; // enum CreatureType values uint32 type_flags; // enum CreatureTypeFlags mask values uint32 lootid; @@ -358,36 +354,4 @@ struct VendorItemData } }; -struct TrainerSpell -{ - TrainerSpell() : SpellID(0), MoneyCost(0), ReqSkillLine(0), ReqSkillRank(0), ReqLevel(0) - { - for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) - ReqAbility[i] = 0; - } - - uint32 SpellID; - uint32 MoneyCost; - uint32 ReqSkillLine; - uint32 ReqSkillRank; - uint32 ReqLevel; - uint32 ReqAbility[3]; - - // helpers - bool IsCastable() const { return ReqAbility[0] != SpellID; } -}; - -typedef std::unordered_map<uint32 /*spellid*/, TrainerSpell> TrainerSpellMap; - -struct TC_GAME_API TrainerSpellData -{ - TrainerSpellData() : trainerType(0) { } - ~TrainerSpellData() { spellList.clear(); } - - TrainerSpellMap spellList; - uint32 trainerType; // trainer type based at trainer spells, can be different from creature_template value. - // req. for correct show non-prof. trainers like weaponmaster, allowed values 0 and 2. - TrainerSpell const* Find(uint32 spell_id) const; -}; - #endif // CreatureData_h__ diff --git a/src/server/game/Entities/Creature/Trainer.cpp b/src/server/game/Entities/Creature/Trainer.cpp new file mode 100644 index 00000000000..79e496ce3bc --- /dev/null +++ b/src/server/game/Entities/Creature/Trainer.cpp @@ -0,0 +1,243 @@ +/* + * Copyright (C) 2008-2018 TrinityCore <https://www.trinitycore.org/> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "Trainer.h" +#include "Creature.h" +#include "NPCPackets.h" +#include "Player.h" +#include "SpellInfo.h" +#include "SpellMgr.h" + +namespace Trainer +{ + bool Spell::IsCastable() const + { + return sSpellMgr->AssertSpellInfo(SpellId)->HasEffect(SPELL_EFFECT_LEARN_SPELL); + } + + Trainer::Trainer(uint32 trainerId, Type type, uint32 requirement, std::string greeting, std::vector<Spell> spells) : _trainerId(trainerId), _type(type), _requirement(requirement), _spells(std::move(spells)) + { + _greeting[DEFAULT_LOCALE] = std::move(greeting); + } + + void Trainer::SendSpells(Creature const* npc, Player const* player, LocaleConstant locale) const + { + float reputationDiscount = player->GetReputationPriceDiscount(npc); + + WorldPackets::NPC::TrainerList trainerList; + trainerList.TrainerGUID = npc->GetGUID(); + trainerList.TrainerType = AsUnderlyingType(_type); + trainerList.Greeting = GetGreeting(locale); + trainerList.Spells.reserve(_spells.size()); + for (Spell const& trainerSpell : _spells) + { + if (!player->IsSpellFitByClassAndRace(trainerSpell.SpellId)) + continue; + + bool primaryProfessionFirstRank = false; + for (int32 reqAbility : trainerSpell.ReqAbility) + { + SpellInfo const* learnedSpellInfo = sSpellMgr->GetSpellInfo(reqAbility); + if (learnedSpellInfo && learnedSpellInfo->IsPrimaryProfessionFirstRank()) + primaryProfessionFirstRank = true; + } + + trainerList.Spells.emplace_back(); + WorldPackets::NPC::TrainerListSpell& trainerListSpell = trainerList.Spells.back(); + trainerListSpell.SpellID = trainerSpell.SpellId; + trainerListSpell.Usable = AsUnderlyingType(GetSpellState(player, &trainerSpell)); + trainerListSpell.MoneyCost = int32(trainerSpell.MoneyCost * reputationDiscount); + trainerListSpell.ProfessionDialog = (primaryProfessionFirstRank && (player->GetFreePrimaryProfessionPoints() > 0) ? 1 : 0); + trainerListSpell.ProfessionButton = (primaryProfessionFirstRank ? 1 : 0); + trainerListSpell.ReqLevel = trainerSpell.ReqLevel; + trainerListSpell.ReqSkillLine = trainerSpell.ReqSkillLine; + trainerListSpell.ReqSkillRank = trainerSpell.ReqSkillRank; + std::copy(trainerSpell.ReqAbility.begin(), trainerSpell.ReqAbility.end(), trainerListSpell.ReqAbility.begin()); + } + + player->SendDirectMessage(trainerList.Write()); + } + + void Trainer::TeachSpell(Creature const* npc, Player* player, uint32 spellId) const + { + if (!IsTrainerValidForPlayer(player)) + return; + + Spell const* trainerSpell = GetSpell(spellId); + if (!trainerSpell) + { + SendTeachFailure(npc, player, spellId, FailReason::Unavailable); + return; + } + + if (!CanTeachSpell(player, trainerSpell)) + { + SendTeachFailure(npc, player, spellId, FailReason::NotEnoughSkill); + return; + } + + float reputationDiscount = player->GetReputationPriceDiscount(npc); + int32 moneyCost = int32(trainerSpell->MoneyCost * reputationDiscount); + if (!player->HasEnoughMoney(moneyCost)) + { + SendTeachFailure(npc, player, spellId, FailReason::NotEnoughMoney); + return; + } + + player->ModifyMoney(-moneyCost); + + npc->SendPlaySpellVisual(179); + npc->SendPlaySpellImpact(player->GetGUID(), 362); + + // learn explicitly or cast explicitly + if (trainerSpell->IsCastable()) + player->CastSpell(player, trainerSpell->SpellId, true); + else + player->LearnSpell(trainerSpell->SpellId, false); + + SendTeachSucceeded(npc, player, spellId); + } + + Spell const* Trainer::GetSpell(uint32 spellId) const + { + auto itr = std::find_if(_spells.begin(), _spells.end(), [spellId](Spell const& trainerSpell) + { + return trainerSpell.SpellId == spellId; + }); + + if (itr != _spells.end()) + return &(*itr); + + return nullptr; + } + + bool Trainer::CanTeachSpell(Player const* player, Spell const* trainerSpell) const + { + SpellState state = GetSpellState(player, trainerSpell); + if (state != SpellState::Available) + return false; + + SpellInfo const* trainerSpellInfo = sSpellMgr->AssertSpellInfo(trainerSpell->SpellId); + if (trainerSpellInfo->IsPrimaryProfessionFirstRank() && !player->GetFreePrimaryProfessionPoints()) + return false; + + return true; + } + + SpellState Trainer::GetSpellState(Player const* player, Spell const* trainerSpell) const + { + if (player->HasSpell(trainerSpell->SpellId)) + return SpellState::Known; + + // check race/class requirement + if (!player->IsSpellFitByClassAndRace(trainerSpell->SpellId)) + return SpellState::Unavailable; + + // check skill requirement + if (trainerSpell->ReqSkillLine && player->GetBaseSkillValue(trainerSpell->ReqSkillLine) < trainerSpell->ReqSkillRank) + return SpellState::Unavailable; + + for (int32 reqAbility : trainerSpell->ReqAbility) + if (reqAbility && !player->HasSpell(reqAbility)) + return SpellState::Unavailable; + + // check level requirement + if (player->getLevel() < trainerSpell->ReqLevel) + return SpellState::Unavailable; + + // check ranks + bool hasLearnSpellEffect = false; + bool knowsAllLearnedSpells = true; + for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) + { + SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(trainerSpell->SpellId); + if (!spellInfo || spellInfo->Effects[i].Effect != SPELL_EFFECT_LEARN_SPELL) + continue; + + hasLearnSpellEffect = true; + if (!player->HasSpell(spellInfo->Effects[i].TriggerSpell)) + knowsAllLearnedSpells = false; + + if (uint32 previousRankSpellId = sSpellMgr->GetPrevSpellInChain(spellInfo->Effects[i].TriggerSpell)) + if (!player->HasSpell(previousRankSpellId)) + return SpellState::Unavailable; + } + + if (!hasLearnSpellEffect) + { + if (uint32 previousRankSpellId = sSpellMgr->GetPrevSpellInChain(trainerSpell->SpellId)) + if (!player->HasSpell(previousRankSpellId)) + return SpellState::Unavailable; + } + else if (knowsAllLearnedSpells) + return SpellState::Known; + + // check additional spell requirement + for (auto const& requirePair : sSpellMgr->GetSpellsRequiredForSpellBounds(trainerSpell->SpellId)) + if (!player->HasSpell(requirePair.second)) + return SpellState::Unavailable; + + return SpellState::Available; + } + + bool Trainer::IsTrainerValidForPlayer(Player const* player) const + { + // check class for class trainers + if (player->getClass() != GetTrainerRequirement() && (GetTrainerType() == Type::Class || GetTrainerType() == Type::Pet)) + return false; + + // check race for mount trainers + if (player->getRace() != GetTrainerRequirement() && GetTrainerType() == Type::Mount) + return false; + + // check spell for profession trainers + if (!player->HasSpell(GetTrainerRequirement()) && GetTrainerRequirement() != 0 && GetTrainerType() == Type::Tradeskill) + return false; + + return true; + } + + void Trainer::SendTeachFailure(Creature const* npc, Player const* player, uint32 spellId, FailReason reason) const + { + WorldPackets::NPC::TrainerBuyFailed trainerBuyFailed; + trainerBuyFailed.TrainerGUID = npc->GetGUID(); + trainerBuyFailed.SpellID = spellId; + trainerBuyFailed.TrainerFailedReason = AsUnderlyingType(reason); + player->SendDirectMessage(trainerBuyFailed.Write()); + } + + void Trainer::SendTeachSucceeded(Creature const* npc, Player const* player, uint32 spellId) const + { + WorldPackets::NPC::TrainerBuySucceeded trainerBuySucceeded; + trainerBuySucceeded.TrainerGUID = npc->GetGUID(); + trainerBuySucceeded.SpellID = spellId; + player->SendDirectMessage(trainerBuySucceeded.Write()); + } + + std::string const& Trainer::GetGreeting(LocaleConstant locale) const + { + if (_greeting[locale].empty()) + return _greeting[DEFAULT_LOCALE]; + + return _greeting[locale]; + } + + void Trainer::AddGreetingLocale(LocaleConstant locale, std::string greeting) + { + _greeting[locale] = std::move(greeting); + } +} diff --git a/src/server/game/Entities/Creature/Trainer.h b/src/server/game/Entities/Creature/Trainer.h new file mode 100644 index 00000000000..852b3e613be --- /dev/null +++ b/src/server/game/Entities/Creature/Trainer.h @@ -0,0 +1,96 @@ +/* + * Copyright (C) 2008-2018 TrinityCore <https://www.trinitycore.org/> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef Trainer_h__ +#define Trainer_h__ + +#include "Common.h" +#include <array> +#include <vector> + +class Creature; +class ObjectMgr; +class Player; + +namespace Trainer +{ + enum class Type : uint32 + { + Class = 0, + Mount = 1, + Tradeskill = 2, + Pet = 3 + }; + + enum class SpellState : uint8 + { + Available = 0, + Unavailable = 1, + Known = 2 + }; + + enum class FailReason : uint32 + { + Unavailable = 0, + NotEnoughMoney = 1, + NotEnoughSkill = 2 + }; + + struct Spell + { + uint32 SpellId = 0; + uint32 MoneyCost = 0; + uint32 ReqSkillLine = 0; + uint32 ReqSkillRank = 0; + std::array<uint32, 3> ReqAbility = { }; + uint8 ReqLevel = 0; + + bool IsCastable() const; + }; + + class Trainer + { + public: + Trainer(uint32 trainerId, Type type, uint32 requirement, std::string greeting, std::vector<Spell> spells); + + void SendSpells(Creature const* npc, Player const* player, LocaleConstant locale) const; + void TeachSpell(Creature const* npc, Player* player, uint32 spellId) const; + + Type GetTrainerType() const { return _type; } + uint32 GetTrainerRequirement() const { return _requirement; } + bool IsTrainerValidForPlayer(Player const* player) const; + + private: + Spell const* GetSpell(uint32 spellId) const; + bool CanTeachSpell(Player const* player, Spell const* trainerSpell) const; + SpellState GetSpellState(Player const* player, Spell const* trainerSpell) const; + void SendTeachFailure(Creature const* npc, Player const* player, uint32 spellId, FailReason reason) const; + void SendTeachSucceeded(Creature const* npc, Player const* player, uint32 spellId) const; + std::string const& GetGreeting(LocaleConstant locale) const; + + friend ObjectMgr; + void AddGreetingLocale(LocaleConstant locale, std::string greeting); + + uint32 _trainerId; + Type _type; + uint32 _requirement; + std::vector<Spell> _spells; + std::array<std::string, TOTAL_LOCALES> _greeting; + }; +} + +#endif // Trainer_h__ diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index a9a9c78c0bb..3e6a080ac5b 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -1741,19 +1741,19 @@ void Unit::BuildHeartBeatMsg(WorldPacket* data) const BuildMovementPacket(data); } -void WorldObject::SendMessageToSet(WorldPacket const* data, bool self) +void WorldObject::SendMessageToSet(WorldPacket const* data, bool self) const { if (IsInWorld()) SendMessageToSetInRange(data, GetVisibilityRange(), self); } -void WorldObject::SendMessageToSetInRange(WorldPacket const* data, float dist, bool /*self*/) +void WorldObject::SendMessageToSetInRange(WorldPacket const* data, float dist, bool /*self*/) const { Trinity::MessageDistDeliverer notifier(this, data, dist); Cell::VisitWorldObjects(this, notifier, dist); } -void WorldObject::SendMessageToSet(WorldPacket const* data, Player const* skipped_rcvr) +void WorldObject::SendMessageToSet(WorldPacket const* data, Player const* skipped_rcvr) const { Trinity::MessageDistDeliverer notifier(this, data, GetVisibilityRange(), false, skipped_rcvr); Cell::VisitWorldObjects(this, notifier, GetVisibilityRange()); diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index 76824c2719e..a40765d1f0d 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -344,9 +344,9 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation virtual void CleanupsBeforeDelete(bool finalCleanup = true); // used in destructor or explicitly before mass creature delete to remove cross-references to already deleted units - virtual void SendMessageToSet(WorldPacket const* data, bool self); - virtual void SendMessageToSetInRange(WorldPacket const* data, float dist, bool self); - virtual void SendMessageToSet(WorldPacket const* data, Player const* skipped_rcvr); + virtual void SendMessageToSet(WorldPacket const* data, bool self) const; + virtual void SendMessageToSetInRange(WorldPacket const* data, float dist, bool self) const; + virtual void SendMessageToSet(WorldPacket const* data, Player const* skipped_rcvr) const; virtual uint8 getLevelForTarget(WorldObject const* /*target*/) const { return 1; } diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 7de2017eb4b..3068b969bbd 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -85,6 +85,7 @@ #include "SpellMgr.h" #include "TicketMgr.h" #include "TradeData.h" +#include "Trainer.h" #include "Transport.h" #include "UpdateData.h" #include "UpdateFieldFlags.h" @@ -3962,74 +3963,6 @@ bool Player::HasActiveSpell(uint32 spell) const itr->second->active && !itr->second->disabled); } -TrainerSpellState Player::GetTrainerSpellState(TrainerSpell const* trainer_spell) const -{ - if (!trainer_spell) - return TRAINER_SPELL_RED; - - bool hasSpell = true; - for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) - { - if (!trainer_spell->ReqAbility[i]) - continue; - - if (!HasSpell(trainer_spell->ReqAbility[i])) - { - hasSpell = false; - break; - } - } - // known spell - if (hasSpell) - return TRAINER_SPELL_GRAY; - - // check skill requirement - if (trainer_spell->ReqSkillLine && GetBaseSkillValue(trainer_spell->ReqSkillLine) < trainer_spell->ReqSkillRank) - return TRAINER_SPELL_RED; - - // check level requirement - if (getLevel() < trainer_spell->ReqLevel) - return TRAINER_SPELL_RED; - - for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) - { - if (!trainer_spell->ReqAbility[i]) - continue; - - // check race/class requirement - if (!IsSpellFitByClassAndRace(trainer_spell->ReqAbility[i])) - return TRAINER_SPELL_RED; - - if (uint32 prevSpell = sSpellMgr->GetPrevSpellInChain(trainer_spell->ReqAbility[i])) - { - // check prev.rank requirement - if (!HasSpell(prevSpell)) - return TRAINER_SPELL_RED; - } - - SpellsRequiringSpellMapBounds spellsRequired = sSpellMgr->GetSpellsRequiredForSpellBounds(trainer_spell->ReqAbility[i]); - for (SpellsRequiringSpellMap::const_iterator itr = spellsRequired.first; itr != spellsRequired.second; ++itr) - { - // check additional spell requirement - if (!HasSpell(itr->second)) - return TRAINER_SPELL_RED; - } - } - - // check primary prof. limit - // first rank of primary profession spell when there are no professions available is disabled - for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) - { - if (!trainer_spell->ReqAbility[i]) - continue; - SpellInfo const* learnedSpellInfo = sSpellMgr->GetSpellInfo(trainer_spell->ReqAbility[i]); - if (learnedSpellInfo && learnedSpellInfo->IsPrimaryProfessionFirstRank() && (GetFreePrimaryProfessionPoints() == 0)) - return TRAINER_SPELL_GREEN_DISABLED; - } - - return TRAINER_SPELL_GREEN; -} - /** * Deletes a character from the database * @@ -6331,7 +6264,7 @@ bool Player::UpdatePosition(float x, float y, float z, float orientation, bool t return true; } -void Player::SendMessageToSetInRange(WorldPacket const* data, float dist, bool self) +void Player::SendMessageToSetInRange(WorldPacket const* data, float dist, bool self) const { if (self) SendDirectMessage(data); @@ -6340,7 +6273,7 @@ void Player::SendMessageToSetInRange(WorldPacket const* data, float dist, bool s Cell::VisitWorldObjects(this, notifier, dist); } -void Player::SendMessageToSetInRange(WorldPacket const* data, float dist, bool self, bool own_team_only) +void Player::SendMessageToSetInRange(WorldPacket const* data, float dist, bool self, bool own_team_only) const { if (self) SendDirectMessage(data); @@ -6349,7 +6282,7 @@ void Player::SendMessageToSetInRange(WorldPacket const* data, float dist, bool s Cell::VisitWorldObjects(this, notifier, dist); } -void Player::SendMessageToSet(WorldPacket const* data, Player const* skipped_rcvr) +void Player::SendMessageToSet(WorldPacket const* data, Player const* skipped_rcvr) const { if (skipped_rcvr != this) SendDirectMessage(data); @@ -14116,15 +14049,15 @@ void Player::PrepareGossipMenu(WorldObject* source, uint32 menuId /*= 0*/, bool } case GOSSIP_OPTION_LEARNDUALSPEC: case GOSSIP_OPTION_DUALSPEC_INFO: - if (!(GetSpecsCount() == 1 && creature->isCanTrainingAndResetTalentsOf(this) && !(getLevel() < sWorld->getIntConfig(CONFIG_MIN_DUALSPEC_LEVEL)))) + if (!(GetSpecsCount() == 1 && creature->CanResetTalents(this) && !(getLevel() < sWorld->getIntConfig(CONFIG_MIN_DUALSPEC_LEVEL)))) canTalk = false; break; case GOSSIP_OPTION_UNLEARNTALENTS: - if (!creature->isCanTrainingAndResetTalentsOf(this)) + if (!creature->CanResetTalents(this)) canTalk = false; break; case GOSSIP_OPTION_UNLEARNPETTALENTS: - if (!GetPet() || GetPet()->getPetType() != HUNTER_PET || GetPet()->m_spells.size() <= 1 || creature->GetCreatureTemplate()->trainer_type != TRAINER_TYPE_PETS || creature->GetCreatureTemplate()->trainer_class != CLASS_HUNTER) + if (!GetPet() || GetPet()->getPetType() != HUNTER_PET || GetPet()->m_spells.size() <= 1 || !creature->CanResetTalents(this)) canTalk = false; break; case GOSSIP_OPTION_TAXIVENDOR: @@ -14143,13 +14076,16 @@ void Player::PrepareGossipMenu(WorldObject* source, uint32 menuId /*= 0*/, bool canTalk = false; break; case GOSSIP_OPTION_TRAINER: - if (getClass() != creature->GetCreatureTemplate()->trainer_class && creature->GetCreatureTemplate()->trainer_type == TRAINER_TYPE_CLASS) + { + Trainer::Trainer const* trainer = sObjectMgr->GetTrainer(creature->GetEntry()); + if (!trainer || !trainer->IsTrainerValidForPlayer(this)) { - TC_LOG_ERROR("sql.sql", "GOSSIP_OPTION_TRAINER:: Player %s (GUID: %u) requested wrong gossip menu: %u with wrong class: %u at Creature: %s (Entry: %u, Trainer Class: %u)", - GetName().c_str(), GetGUID().GetCounter(), menu->GetGossipMenu().GetMenuId(), getClass(), creature->GetName().c_str(), creature->GetEntry(), creature->GetCreatureTemplate()->trainer_class); + TC_LOG_ERROR("sql.sql", "GOSSIP_OPTION_TRAINER:: Player %s (GUID: %u) requested wrong gossip menu: %u at Creature: %s (Entry: %u)", + GetName().c_str(), GetGUID().GetCounter(), menu->GetGossipMenu().GetMenuId(), creature->GetName().c_str(), creature->GetEntry()); canTalk = false; } // no break; + } case GOSSIP_OPTION_GOSSIP: case GOSSIP_OPTION_SPIRITGUIDE: case GOSSIP_OPTION_INNKEEPER: @@ -14329,7 +14265,7 @@ void Player::OnGossipSelect(WorldObject* source, uint32 gossipListId, uint32 men GetSession()->SendStablePet(guid); break; case GOSSIP_OPTION_TRAINER: - GetSession()->SendTrainerList(guid); + GetSession()->SendTrainerList(source->ToCreature()); break; case GOSSIP_OPTION_LEARNDUALSPEC: if (GetSpecsCount() == 1 && getLevel() >= sWorld->getIntConfig(CONFIG_MIN_DUALSPEC_LEVEL)) diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 3577eea21e4..fc5db7a3726 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -155,14 +155,6 @@ typedef std::unordered_set<SpellModifier*> SpellModContainer; typedef std::unordered_map<uint32 /*instanceId*/, time_t/*releaseTime*/> InstanceTimeMap; -enum TrainerSpellState -{ - TRAINER_SPELL_GREEN = 0, - TRAINER_SPELL_RED = 1, - TRAINER_SPELL_GRAY = 2, - TRAINER_SPELL_GREEN_DISABLED = 10 // custom value, not send to client: formally green but learn not allowed -}; - enum ActionButtonUpdateState { ACTIONBUTTON_UNCHANGED = 0, @@ -1401,7 +1393,6 @@ class TC_GAME_API Player : public Unit, public GridObject<Player> void SendRemoveControlBar() const; bool HasSpell(uint32 spell) const override; bool HasActiveSpell(uint32 spell) const; // show in spellbook - TrainerSpellState GetTrainerSpellState(TrainerSpell const* trainer_spell) const; bool IsSpellFitByClassAndRace(uint32 spell_id) const; bool HandlePassiveSpellLearn(SpellInfo const* spellInfo); @@ -1661,10 +1652,10 @@ class TC_GAME_API Player : public Unit, public GridObject<Player> void ProcessTerrainStatusUpdate(ZLiquidStatus status, Optional<LiquidData> const& liquidData) override; void AtExitCombat() override; - void SendMessageToSet(WorldPacket const* data, bool self) override { SendMessageToSetInRange(data, GetVisibilityRange(), self); } - void SendMessageToSetInRange(WorldPacket const* data, float dist, bool self) override; - void SendMessageToSetInRange(WorldPacket const* data, float dist, bool self, bool own_team_only); - void SendMessageToSet(WorldPacket const* data, Player const* skipped_rcvr) override; + void SendMessageToSet(WorldPacket const* data, bool self) const override { SendMessageToSetInRange(data, GetVisibilityRange(), self); } + void SendMessageToSetInRange(WorldPacket const* data, float dist, bool self) const override; + void SendMessageToSetInRange(WorldPacket const* data, float dist, bool self, bool own_team_only) const; + void SendMessageToSet(WorldPacket const* data, Player const* skipped_rcvr) const override; Corpse* GetCorpse() const; void SpawnCorpseBones(bool triggerSave = true); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 0acd39162c8..d02bc63073d 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -11785,7 +11785,7 @@ void Unit::SetAuraStack(uint32 spellId, Unit* target, uint32 stack) aura->SetStackAmount(stack); } -void Unit::SendPlaySpellVisual(uint32 id) +void Unit::SendPlaySpellVisual(uint32 id) const { WorldPacket data(SMSG_PLAY_SPELL_VISUAL, 8 + 4); data << uint64(GetGUID()); @@ -11793,7 +11793,7 @@ void Unit::SendPlaySpellVisual(uint32 id) SendMessageToSet(&data, true); } -void Unit::SendPlaySpellImpact(ObjectGuid guid, uint32 id) +void Unit::SendPlaySpellImpact(ObjectGuid guid, uint32 id) const { WorldPacket data(SMSG_PLAY_SPELL_IMPACT, 8 + 4); data << uint64(guid); // target diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index c588ef426f5..0a4445d5fb7 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1081,8 +1081,8 @@ class TC_GAME_API Unit : public WorldObject Aura* AddAura(uint32 spellId, Unit* target); Aura* AddAura(SpellInfo const* spellInfo, uint8 effMask, Unit* target); void SetAuraStack(uint32 spellId, Unit* target, uint32 stack); - void SendPlaySpellVisual(uint32 id); - void SendPlaySpellImpact(ObjectGuid guid, uint32 id); + void SendPlaySpellVisual(uint32 id) const; + void SendPlaySpellImpact(ObjectGuid guid, uint32 id) const; void DeMorph(); diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 80f823f9beb..ff0bc2938c0 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -367,15 +367,13 @@ void ObjectMgr::LoadCreatureTemplates() "modelid4, name, subname, IconName, gossip_menu_id, minlevel, maxlevel, exp, faction, npcflag, speed_walk, speed_run, " // 21 22 23 24 25 26 27 28 29 30 "scale, `rank`, dmgschool, BaseAttackTime, RangeAttackTime, BaseVariance, RangeVariance, unit_class, unit_flags, unit_flags2, " - // 31 32 33 34 35 36 37 - "dynamicflags, family, trainer_type, trainer_spell, trainer_class, trainer_race, type, " - // 38 39 40 41 42 43 44 45 46 47 48 - "type_flags, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, spell1, " - // 49 50 51 52 53 54 55 56 57 58 59 60 61 - "spell2, spell3, spell4, spell5, spell6, spell7, spell8, PetSpellDataId, VehicleId, mingold, maxgold, AIName, MovementType, " - // 62 63 64 65 66 67 68 69 70 + // 31 32 33 34 35 36 37 38 39 40 41 42 43 + "dynamicflags, family, type, type_flags, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, " + // 44 45 46 47 48 49 50 51 52 53 54 55 56 57 + "spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8, PetSpellDataId, VehicleId, mingold, maxgold, AIName, MovementType, " + // 58 59 60 61 62 63 64 65 66 "ctm.Ground, ctm.Swim, ctm.Flight, ctm.Rooted, HoverHeight, HealthModifier, ManaModifier, ArmorModifier, DamageModifier, " - // 71 72 73 74 75 76 77 78 + // 67 68 69 70 71 72 73 74 "ExperienceModifier, RacialLeader, movementId, RegenHealth, mechanic_immune_mask, spell_school_immune_mask, flags_extra, ScriptName " "FROM creature_template ct LEFT JOIN creature_template_movement ctm ON ct.entry = ctm.CreatureId"); @@ -439,54 +437,50 @@ void ObjectMgr::LoadCreatureTemplate(Field* fields) creatureTemplate.unit_flags2 = fields[30].GetUInt32(); creatureTemplate.dynamicflags = fields[31].GetUInt32(); creatureTemplate.family = CreatureFamily(fields[32].GetUInt8()); - creatureTemplate.trainer_type = fields[33].GetUInt8(); - creatureTemplate.trainer_spell = fields[34].GetUInt32(); - creatureTemplate.trainer_class = fields[35].GetUInt8(); - creatureTemplate.trainer_race = fields[36].GetUInt8(); - creatureTemplate.type = fields[37].GetUInt8(); - creatureTemplate.type_flags = fields[38].GetUInt32(); - creatureTemplate.lootid = fields[39].GetUInt32(); - creatureTemplate.pickpocketLootId = fields[40].GetUInt32(); - creatureTemplate.SkinLootId = fields[41].GetUInt32(); + creatureTemplate.type = fields[33].GetUInt8(); + creatureTemplate.type_flags = fields[34].GetUInt32(); + creatureTemplate.lootid = fields[35].GetUInt32(); + creatureTemplate.pickpocketLootId = fields[36].GetUInt32(); + creatureTemplate.SkinLootId = fields[37].GetUInt32(); for (uint8 i = SPELL_SCHOOL_HOLY; i < MAX_SPELL_SCHOOL; ++i) - creatureTemplate.resistance[i] = fields[42 + i - 1].GetInt16(); + creatureTemplate.resistance[i] = fields[38 + i - 1].GetInt16(); for (uint8 i = 0; i < MAX_CREATURE_SPELLS; ++i) - creatureTemplate.spells[i] = fields[48 + i].GetUInt32(); - - creatureTemplate.PetSpellDataId = fields[56].GetUInt32(); - creatureTemplate.VehicleId = fields[57].GetUInt32(); - creatureTemplate.mingold = fields[58].GetUInt32(); - creatureTemplate.maxgold = fields[59].GetUInt32(); - creatureTemplate.AIName = fields[60].GetString(); - creatureTemplate.MovementType = fields[61].GetUInt8(); - if (!fields[62].IsNull()) - creatureTemplate.Movement.Ground = static_cast<CreatureGroundMovementType>(fields[62].GetUInt8()); - - if (!fields[63].IsNull()) - creatureTemplate.Movement.Swim = fields[63].GetBool(); - - if (!fields[64].IsNull()) - creatureTemplate.Movement.Flight = static_cast<CreatureFlightMovementType>(fields[64].GetUInt8()); - - if (!fields[65].IsNull()) - creatureTemplate.Movement.Rooted = fields[65].GetBool(); - - creatureTemplate.HoverHeight = fields[66].GetFloat(); - creatureTemplate.ModHealth = fields[67].GetFloat(); - creatureTemplate.ModMana = fields[68].GetFloat(); - creatureTemplate.ModArmor = fields[69].GetFloat(); - creatureTemplate.ModDamage = fields[70].GetFloat(); - creatureTemplate.ModExperience = fields[71].GetFloat(); - creatureTemplate.RacialLeader = fields[72].GetBool(); - - creatureTemplate.movementId = fields[73].GetUInt32(); - creatureTemplate.RegenHealth = fields[74].GetBool(); - creatureTemplate.MechanicImmuneMask = fields[75].GetUInt32(); - creatureTemplate.SpellSchoolImmuneMask = fields[76].GetUInt32(); - creatureTemplate.flags_extra = fields[77].GetUInt32(); - creatureTemplate.ScriptID = GetScriptId(fields[78].GetString()); + creatureTemplate.spells[i] = fields[44 + i].GetUInt32(); + + creatureTemplate.PetSpellDataId = fields[52].GetUInt32(); + creatureTemplate.VehicleId = fields[53].GetUInt32(); + creatureTemplate.mingold = fields[54].GetUInt32(); + creatureTemplate.maxgold = fields[55].GetUInt32(); + creatureTemplate.AIName = fields[56].GetString(); + creatureTemplate.MovementType = fields[57].GetUInt8(); + if (!fields[58].IsNull()) + creatureTemplate.Movement.Ground = static_cast<CreatureGroundMovementType>(fields[58].GetUInt8()); + + if (!fields[59].IsNull()) + creatureTemplate.Movement.Swim = fields[59].GetBool(); + + if (!fields[60].IsNull()) + creatureTemplate.Movement.Flight = static_cast<CreatureFlightMovementType>(fields[60].GetUInt8()); + + if (!fields[61].IsNull()) + creatureTemplate.Movement.Rooted = fields[61].GetBool(); + + creatureTemplate.HoverHeight = fields[62].GetFloat(); + creatureTemplate.ModHealth = fields[63].GetFloat(); + creatureTemplate.ModMana = fields[64].GetFloat(); + creatureTemplate.ModArmor = fields[65].GetFloat(); + creatureTemplate.ModDamage = fields[66].GetFloat(); + creatureTemplate.ModExperience = fields[67].GetFloat(); + creatureTemplate.RacialLeader = fields[68].GetBool(); + + creatureTemplate.movementId = fields[69].GetUInt32(); + creatureTemplate.RegenHealth = fields[70].GetBool(); + creatureTemplate.MechanicImmuneMask = fields[71].GetUInt32(); + creatureTemplate.SpellSchoolImmuneMask = fields[72].GetUInt32(); + creatureTemplate.flags_extra = fields[73].GetUInt32(); + creatureTemplate.ScriptID = GetScriptId(fields[74].GetString()); } void ObjectMgr::LoadCreatureTemplateAddons() @@ -687,39 +681,6 @@ void ObjectMgr::CheckCreatureTemplate(CreatureTemplate const* cInfo) cInfo->family, cInfo->DifficultyEntry[diff]); } - if (cInfo->trainer_class != difficultyInfo->trainer_class) - { - TC_LOG_ERROR("sql.sql", "Creature (Entry: %u, trainer_class: %u) has different `trainer_class` in difficulty %u mode (Entry: %u, trainer_class: %u).", - cInfo->Entry, cInfo->trainer_class, diff + 1, cInfo->DifficultyEntry[diff], difficultyInfo->trainer_class); - TC_LOG_ERROR("sql.sql", "Possible FIX: UPDATE `creature_template` SET `trainer_class`=%u WHERE `entry`=%u;", - cInfo->trainer_class, cInfo->DifficultyEntry[diff]); - continue; - } - - if (cInfo->trainer_race != difficultyInfo->trainer_race) - { - TC_LOG_ERROR("sql.sql", "Creature (Entry: %u, trainer_race: %u) has different `trainer_race` in difficulty %u mode (Entry: %u, trainer_race: %u).", - cInfo->Entry, cInfo->trainer_race, diff + 1, cInfo->DifficultyEntry[diff], difficultyInfo->trainer_race); - TC_LOG_ERROR("sql.sql", "Possible FIX: UPDATE `creature_template` SET `trainer_race`=%u WHERE `entry`=%u;", - cInfo->trainer_race, cInfo->DifficultyEntry[diff]); - continue; - } - - if (cInfo->trainer_type != difficultyInfo->trainer_type) - { - TC_LOG_ERROR("sql.sql", "Creature (Entry: %u, trainer_type: %u) has different `trainer_type` in difficulty %u mode (Entry: %u, trainer_type: %u).", - cInfo->Entry, cInfo->trainer_type, diff + 1, cInfo->DifficultyEntry[diff], difficultyInfo->trainer_type); - TC_LOG_ERROR("sql.sql", "Possible FIX: UPDATE `creature_template` SET `trainer_type`=%u WHERE `entry`=%u;", - cInfo->trainer_type, cInfo->DifficultyEntry[diff]); - continue; - } - - if (cInfo->trainer_spell != difficultyInfo->trainer_spell) - { - TC_LOG_ERROR("sql.sql", "Creature (Entry: %u) has different `trainer_spell` in difficulty %u mode (Entry: %u).", cInfo->Entry, diff + 1, cInfo->DifficultyEntry[diff]); - continue; - } - if (cInfo->type != difficultyInfo->type) { TC_LOG_ERROR("sql.sql", "Creature (Entry: %u, type: %u) has different `type` in difficulty %u mode (Entry: %u, type: %u).", @@ -912,9 +873,6 @@ void ObjectMgr::CheckCreatureTemplate(CreatureTemplate const* cInfo) if (cInfo->RangeAttackTime == 0) const_cast<CreatureTemplate*>(cInfo)->RangeAttackTime = BASE_ATTACK_TIME; - if ((cInfo->npcflag & UNIT_NPC_FLAG_TRAINER) && cInfo->trainer_type >= MAX_TRAINER_TYPE) - TC_LOG_ERROR("sql.sql", "Creature (Entry: %u) has wrong trainer type %u.", cInfo->Entry, cInfo->trainer_type); - if (cInfo->speed_walk == 0.0f) { TC_LOG_ERROR("sql.sql", "Creature (Entry: %u) has wrong value (%f) in speed_walk, set to 1.", cInfo->Entry, cInfo->speed_walk); @@ -8702,122 +8660,149 @@ void ObjectMgr::LoadMailLevelRewards() TC_LOG_INFO("server.loading", ">> Loaded %u level dependent mail rewards in %u ms", count, GetMSTimeDiffToNow(oldMSTime)); } -void ObjectMgr::AddSpellToTrainer(uint32 ID, uint32 SpellID, uint32 MoneyCost, uint32 ReqSkillLine, uint32 ReqSkillRank, uint32 ReqLevel) +void ObjectMgr::LoadTrainers() { - if (ID >= TRINITY_TRAINER_START_REF) - return; + uint32 oldMSTime = getMSTime(); - CreatureTemplate const* cInfo = GetCreatureTemplate(ID); - if (!cInfo) - { - TC_LOG_ERROR("sql.sql", "Table `npc_trainer` contains entries for a non-existing creature template (ID: %u), ignoring", ID); - return; - } + // For reload case + _trainers.clear(); - if (!(cInfo->npcflag & UNIT_NPC_FLAG_TRAINER)) + std::unordered_map<int32, std::vector<Trainer::Spell>> spellsByTrainer; + if (QueryResult trainerSpellsResult = WorldDatabase.Query("SELECT TrainerId, SpellId, MoneyCost, ReqSkillLine, ReqSkillRank, ReqAbility1, ReqAbility2, ReqAbility3, ReqLevel FROM trainer_spell")) { - TC_LOG_ERROR("sql.sql", "Table `npc_trainer` contains entries for a creature template (ID: %u) without trainer flag, ignoring", ID); - return; - } + do + { + Field* fields = trainerSpellsResult->Fetch(); - SpellInfo const* spellinfo = sSpellMgr->GetSpellInfo(SpellID); - if (!spellinfo) - { - TC_LOG_ERROR("sql.sql", "Table `npc_trainer` contains an ID (%u) for a non-existing SpellID (%u), ignoring", ID, SpellID); - return; - } + Trainer::Spell spell; + uint32 trainerId = fields[0].GetUInt32(); + spell.SpellId = fields[1].GetUInt32(); + spell.MoneyCost = fields[2].GetUInt32(); + spell.ReqSkillLine = fields[3].GetUInt32(); + spell.ReqSkillRank = fields[4].GetUInt32(); + spell.ReqAbility[0] = fields[5].GetUInt32(); + spell.ReqAbility[1] = fields[6].GetUInt32(); + spell.ReqAbility[2] = fields[7].GetUInt32(); + spell.ReqLevel = fields[8].GetUInt8(); - if (!SpellMgr::IsSpellValid(spellinfo)) - { - TC_LOG_ERROR("sql.sql", "Table `npc_trainer` contains an ID (%u) for a broken SpellID (%u), ignoring", ID, SpellID); - return; - } + SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spell.SpellId); + if (!spellInfo) + { + TC_LOG_ERROR("sql.sql", "Table `trainer_spell` references non-existing spell (SpellId: %u) for TrainerId %u, ignoring", spell.SpellId, trainerId); + continue; + } - if (GetTalentSpellCost(SpellID)) - { - TC_LOG_ERROR("sql.sql", "Table `npc_trainer` contains an ID (%u) for a non-existing SpellID (%u) which is a talent, ignoring", ID, SpellID); - return; - } + if (GetTalentSpellCost(spell.SpellId)) + { + TC_LOG_ERROR("sql.sql", "Table `trainer_spell` references non-existing spell (SpellId: %u) which is a talent, for TrainerId %u, ignoring", spell.SpellId, trainerId); + continue; + } - TrainerSpellData& data = _cacheTrainerSpellStore[ID]; + if (spell.ReqSkillLine && !sSkillLineStore.LookupEntry(spell.ReqSkillLine)) + { + TC_LOG_ERROR("sql.sql", "Table `trainer_spell` references non-existing skill (ReqSkillLine: %u) for TrainerId %u and SpellId %u, ignoring", + spell.ReqSkillLine, spell.SpellId, trainerId); + continue; + } - TrainerSpell& trainerSpell = data.spellList[SpellID]; - trainerSpell.SpellID = SpellID; - trainerSpell.MoneyCost = MoneyCost; - trainerSpell.ReqSkillLine = ReqSkillLine; - trainerSpell.ReqSkillRank = ReqSkillRank; - trainerSpell.ReqLevel = ReqLevel; + bool allReqValid = true; + for (std::size_t i = 0; i < spell.ReqAbility.size(); ++i) + { + uint32 requiredSpell = spell.ReqAbility[i]; + if (requiredSpell && !sSpellMgr->GetSpellInfo(requiredSpell)) + { + TC_LOG_ERROR("sql.sql", "Table `trainer_spell` references non-existing spell (ReqAbility" SZFMTD ": %u) for TrainerId %u and SpellId %u, ignoring", + i + 1, requiredSpell, trainerId, spell.SpellId); + allReqValid = false; + } + } + + if (!allReqValid) + continue; - if (!trainerSpell.ReqLevel) - trainerSpell.ReqLevel = spellinfo->SpellLevel; + spellsByTrainer[trainerId].push_back(spell); + } while (trainerSpellsResult->NextRow()); + } - // calculate learned spell for profession case when stored cast-spell - trainerSpell.ReqAbility[0] = SpellID; - for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) + if (QueryResult trainersResult = WorldDatabase.Query("SELECT Id, Type, Requirement, Greeting FROM trainer")) { - if (spellinfo->Effects[i].Effect != SPELL_EFFECT_LEARN_SPELL) - continue; - if (trainerSpell.ReqAbility[0] == SpellID) - trainerSpell.ReqAbility[0] = 0; - // player must be able to cast spell on himself - if (spellinfo->Effects[i].TargetA.GetTarget() != 0 && spellinfo->Effects[i].TargetA.GetTarget() != TARGET_UNIT_TARGET_ALLY - && spellinfo->Effects[i].TargetA.GetTarget() != TARGET_UNIT_TARGET_ANY && spellinfo->Effects[i].TargetA.GetTarget() != TARGET_UNIT_CASTER) + do { - TC_LOG_ERROR("sql.sql", "Table `npc_trainer` has spell %u for trainer entry %u with learn effect which has incorrect target type, ignoring learn effect!", SpellID, ID); - continue; - } + Field* fields = trainersResult->Fetch(); + + uint32 trainerId = fields[0].GetUInt32(); + Trainer::Type trainerType = Trainer::Type(fields[1].GetUInt8()); + uint32 requirement = fields[2].GetUInt32(); + std::string greeting = fields[3].GetString(); + std::vector<Trainer::Spell> spells; + auto spellsItr = spellsByTrainer.find(trainerId); + if (spellsItr != spellsByTrainer.end()) + { + spells = std::move(spellsItr->second); + spellsByTrainer.erase(spellsItr); + } - trainerSpell.ReqAbility[i] = spellinfo->Effects[i].TriggerSpell; + _trainers.emplace(std::piecewise_construct, std::forward_as_tuple(trainerId), std::forward_as_tuple(trainerId, trainerType, requirement, std::move(greeting), std::move(spells))); + } while (trainersResult->NextRow()); + } - if (trainerSpell.ReqAbility[i]) + for (auto const& unusedSpells : spellsByTrainer) + { + for (Trainer::Spell const& unusedSpell : unusedSpells.second) { - SpellInfo const* learnedSpellInfo = sSpellMgr->GetSpellInfo(trainerSpell.ReqAbility[i]); - if (learnedSpellInfo && learnedSpellInfo->IsProfession()) - data.trainerType = 2; + TC_LOG_ERROR("sql.sql", "Table `trainer_spell` references non-existing trainer (TrainerId: %u) for SpellId %u, ignoring", unusedSpells.first, unusedSpell.SpellId); } } - return; -} - -void ObjectMgr::LoadTrainerSpell() -{ - uint32 oldMSTime = getMSTime(); + if (QueryResult trainerLocalesResult = WorldDatabase.Query("SELECT Id, locale, Greeting_lang FROM trainer_locale")) + { + do + { + Field* fields = trainerLocalesResult->Fetch(); + uint32 trainerId = fields[0].GetUInt32(); + std::string localeName = fields[1].GetString(); - // For reload case - _cacheTrainerSpellStore.clear(); + LocaleConstant locale = GetLocaleByName(localeName); + if (locale == LOCALE_enUS) + continue; - QueryResult result = WorldDatabase.Query("SELECT b.ID, a.SpellID, a.MoneyCost, a.ReqSkillLine, a.ReqSkillRank, a.ReqLevel FROM npc_trainer AS a " - "INNER JOIN npc_trainer AS b ON a.ID = -(b.SpellID) " - "UNION SELECT * FROM npc_trainer WHERE SpellID > 0"); + if (Trainer::Trainer* trainer = Trinity::Containers::MapGetValuePtr(_trainers, trainerId)) + trainer->AddGreetingLocale(locale, fields[2].GetString()); + else + TC_LOG_ERROR("sql.sql", "Table `trainer_locale` references non-existing trainer (TrainerId: %u) for locale %s, ignoring", + trainerId, localeName.c_str()); + } while (trainerLocalesResult->NextRow()); + } - if (!result) - { - TC_LOG_ERROR("sql.sql", ">> Loaded 0 Trainers. DB table `npc_trainer` is empty!"); + TC_LOG_INFO("server.loading", ">> Loaded " SZFMTD " Trainers in %u ms", _trainers.size(), GetMSTimeDiffToNow(oldMSTime)); +} - return; - } +void ObjectMgr::LoadCreatureDefaultTrainers() +{ + uint32 oldMSTime = getMSTime(); - uint32 count = 0; + _creatureDefaultTrainers.clear(); - do + if (QueryResult result = WorldDatabase.Query("SELECT CreatureId, TrainerId FROM creature_default_trainer")) { - Field* fields = result->Fetch(); + do + { + Field* fields = result->Fetch(); + uint32 creatureId = fields[0].GetUInt32(); + uint32 trainerId = fields[1].GetUInt32(); - uint32 ID = fields[0].GetUInt32(); - uint32 SpellID = fields[1].GetUInt32(); - uint32 MoneyCost = fields[2].GetUInt32(); - uint32 ReqSkillLine = fields[3].GetUInt16(); - uint32 ReqSkillRank = fields[4].GetUInt16(); - uint32 ReqLevel = fields[5].GetUInt8(); + if (!GetCreatureTemplate(creatureId)) + { + TC_LOG_ERROR("sql.sql", "Table `creature_default_trainer` references non-existing creature template (CreatureId: %u), ignoring", creatureId); + continue; + } - AddSpellToTrainer(ID, SpellID, MoneyCost, ReqSkillLine, ReqSkillRank, ReqLevel); + _creatureDefaultTrainers[creatureId] = trainerId; - ++count; + } while (result->NextRow()); } - while (result->NextRow()); - TC_LOG_INFO("server.loading", ">> Loaded %d Trainers in %u ms", count, GetMSTimeDiffToNow(oldMSTime)); + TC_LOG_INFO("server.loading", ">> Loaded " SZFMTD " default trainers in %u ms", _creatureDefaultTrainers.size(), GetMSTimeDiffToNow(oldMSTime)); } uint32 ObjectMgr::LoadReferenceVendor(int32 vendor, int32 item, std::set<uint32>* skip_vendors) @@ -9022,6 +9007,15 @@ void ObjectMgr::LoadGossipMenuItems() TC_LOG_INFO("server.loading", ">> Loaded %u gossip_menu_option entries in %u ms", uint32(_gossipMenuItemsStore.size()), GetMSTimeDiffToNow(oldMSTime)); } +Trainer::Trainer const* ObjectMgr::GetTrainer(uint32 creatureId) const +{ + auto itr = _creatureDefaultTrainers.find(creatureId); + if (itr != _creatureDefaultTrainers.end()) + return Trinity::Containers::MapGetValuePtr(_trainers, itr->second); + + return nullptr; +} + void ObjectMgr::AddVendorItem(uint32 entry, uint32 item, int32 maxcount, uint32 incrtime, uint32 extendedCost, bool persist /*= true*/) { VendorItemData& vList = _cacheVendorItemStore[entry]; diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index 7c5fa315d3d..8568e72a601 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -33,6 +33,7 @@ #include "Position.h" #include "QuestDef.h" #include "SharedDefines.h" +#include "Trainer.h" #include "VehicleDefines.h" #include <map> #include <unordered_map> @@ -828,7 +829,6 @@ typedef std::pair<GraveyardContainer::const_iterator, GraveyardContainer::const_ typedef std::pair<GraveyardContainer::iterator, GraveyardContainer::iterator> GraveyardMapBoundsNonConst; typedef std::unordered_map<uint32, VendorItemData> CacheVendorItemContainer; -typedef std::unordered_map<uint32, TrainerSpellData> CacheTrainerSpellContainer; enum SkillRangeType { @@ -1215,8 +1215,8 @@ class TC_GAME_API ObjectMgr void LoadGossipMenuItems(); void LoadVendors(); - void LoadTrainerSpell(); - void AddSpellToTrainer(uint32 ID, uint32 SpellID, uint32 MoneyCost, uint32 ReqSkillLine, uint32 ReqSkillRank, uint32 ReqLevel); + void LoadTrainers(); + void LoadCreatureDefaultTrainers(); void InitializeQueriesData(QueryDataGroup mask); @@ -1456,14 +1456,7 @@ class TC_GAME_API ObjectMgr bool AddGameTele(GameTele& data); bool DeleteGameTele(std::string const& name); - TrainerSpellData const* GetNpcTrainerSpells(uint32 entry) const - { - CacheTrainerSpellContainer::const_iterator iter = _cacheTrainerSpellStore.find(entry); - if (iter == _cacheTrainerSpellStore.end()) - return nullptr; - - return &iter->second; - } + Trainer::Trainer const* GetTrainer(uint32 creatureId) const; VendorItemData const* GetNpcVendorItemList(uint32 entry) const { @@ -1685,7 +1678,8 @@ class TC_GAME_API ObjectMgr TrinityStringContainer _trinityStringStore; CacheVendorItemContainer _cacheVendorItemStore; - CacheTrainerSpellContainer _cacheTrainerSpellStore; + std::unordered_map<uint32, Trainer::Trainer> _trainers; + std::unordered_map<uint32, uint32> _creatureDefaultTrainers; std::set<uint32> _difficultyEntries[MAX_DIFFICULTY - 1]; // already loaded difficulty 1 value in creatures, used in CheckCreatureTemplate std::set<uint32> _hasDifficultyEntries[MAX_DIFFICULTY - 1]; // already loaded creatures with difficulty 1 values, used in CheckCreatureTemplate diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h index 5297d21b104..5e606e67ef1 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiers.h +++ b/src/server/game/Grids/Notifiers/GridNotifiers.h @@ -116,19 +116,19 @@ namespace Trinity struct TC_GAME_API MessageDistDeliverer { - WorldObject* i_source; + WorldObject const* i_source; WorldPacket const* i_message; uint32 i_phaseMask; float i_distSq; uint32 team; Player const* skipped_receiver; - MessageDistDeliverer(WorldObject* src, WorldPacket const* msg, float dist, bool own_team_only = false, Player const* skipped = nullptr) + MessageDistDeliverer(WorldObject const* src, WorldPacket const* msg, float dist, bool own_team_only = false, Player const* skipped = nullptr) : i_source(src), i_message(msg), i_phaseMask(src->GetPhaseMask()), i_distSq(dist * dist) , team(0) , skipped_receiver(skipped) { if (own_team_only) - if (Player* player = src->ToPlayer()) + if (Player const* player = src->ToPlayer()) team = player->GetTeam(); } diff --git a/src/server/game/Handlers/NPCHandler.cpp b/src/server/game/Handlers/NPCHandler.cpp index 5b50075d2fd..dbbf3b6fe03 100644 --- a/src/server/game/Handlers/NPCHandler.cpp +++ b/src/server/game/Handlers/NPCHandler.cpp @@ -29,6 +29,7 @@ #include "Language.h" #include "Log.h" #include "Map.h" +#include "NPCPackets.h" #include "Opcodes.h" #include "ObjectMgr.h" #include "Pet.h" @@ -38,6 +39,7 @@ #include "ScriptMgr.h" #include "SpellInfo.h" #include "SpellMgr.h" +#include "Trainer.h" #include "World.h" #include "WorldPacket.h" @@ -114,135 +116,45 @@ void WorldSession::SendShowMailBox(ObjectGuid guid) SendPacket(&data); } -void WorldSession::HandleTrainerListOpcode(WorldPacket& recvData) +void WorldSession::HandleTrainerListOpcode(WorldPackets::NPC::Hello& packet) { - ObjectGuid guid; - - recvData >> guid; - SendTrainerList(guid); -} - -void WorldSession::SendTrainerList(ObjectGuid guid) -{ - std::string str = GetTrinityString(LANG_NPC_TAINER_HELLO); - SendTrainerList(guid, str); -} - -void WorldSession::SendTrainerList(ObjectGuid guid, const std::string& strTitle) -{ - Creature* unit = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_TRAINER); - if (!unit) + Creature* npc = GetPlayer()->GetNPCIfCanInteractWith(packet.Unit, UNIT_NPC_FLAG_TRAINER); + if (!npc) { - TC_LOG_DEBUG("network", "WORLD: SendTrainerList - %s not found or you can not interact with him.", guid.ToString().c_str()); + TC_LOG_DEBUG("network", "WorldSession: SendTrainerList - %s not found or you can not interact with him.", packet.Unit.ToString().c_str()); return; } + if (sObjectMgr->GetTrainer(npc->GetEntry())) + SendTrainerList(npc); + else + TC_LOG_DEBUG("network", "WorldSession::SendTrainerList - Creature id %u has no trainer data.", npc->GetEntry()); +} + +void WorldSession::SendTrainerList(Creature* npc) +{ // remove fake death if (GetPlayer()->HasUnitState(UNIT_STATE_DIED)) GetPlayer()->RemoveAurasByType(SPELL_AURA_FEIGN_DEATH); - TrainerSpellData const* trainer_spells = unit->GetTrainerSpells(); - if (!trainer_spells) + Trainer::Trainer const* trainer = sObjectMgr->GetTrainer(npc->GetEntry()); + if (!trainer) { - TC_LOG_DEBUG("network", "WORLD: SendTrainerList - Training spells not found for %s", guid.ToString().c_str()); + TC_LOG_DEBUG("network", "WorldSession: SendTrainerList - trainer spells not found for %s", npc->GetGUID().ToString().c_str()); return; } - WorldPacket data(SMSG_TRAINER_LIST, 8+4+4+trainer_spells->spellList.size()*38 + strTitle.size()+1); - data << guid; - data << uint32(trainer_spells->trainerType); - - size_t count_pos = data.wpos(); - data << uint32(trainer_spells->spellList.size()); - - // reputation discount - float fDiscountMod = _player->GetReputationPriceDiscount(unit); - bool can_learn_primary_prof = GetPlayer()->GetFreePrimaryProfessionPoints() > 0; - - uint32 count = 0; - for (TrainerSpellMap::const_iterator itr = trainer_spells->spellList.begin(); itr != trainer_spells->spellList.end(); ++itr) - { - TrainerSpell const* tSpell = &itr->second; - - bool valid = true; - bool primary_prof_first_rank = false; - for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) - { - if (!tSpell->ReqAbility[i]) - continue; - if (!_player->IsSpellFitByClassAndRace(tSpell->ReqAbility[i])) - { - valid = false; - break; - } - SpellInfo const* learnedSpellInfo = sSpellMgr->GetSpellInfo(tSpell->ReqAbility[i]); - if (learnedSpellInfo && learnedSpellInfo->IsPrimaryProfessionFirstRank()) - primary_prof_first_rank = true; - } - if (!valid) - continue; - - TrainerSpellState state = _player->GetTrainerSpellState(tSpell); - - data << uint32(tSpell->SpellID); // learned spell (or cast-spell in profession case) - data << uint8(state == TRAINER_SPELL_GREEN_DISABLED ? TRAINER_SPELL_GREEN : state); - data << uint32(floor(tSpell->MoneyCost * fDiscountMod)); - - data << uint32(primary_prof_first_rank && can_learn_primary_prof ? 1 : 0); - // primary prof. learn confirmation dialog - data << uint32(primary_prof_first_rank ? 1 : 0); // must be equal prev. field to have learn button in enabled state - data << uint8(tSpell->ReqLevel); - data << uint32(tSpell->ReqSkillLine); - data << uint32(tSpell->ReqSkillRank); - //prev + req or req + 0 - uint8 maxReq = 0; - for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) - { - if (!tSpell->ReqAbility[i]) - continue; - if (uint32 prevSpellId = sSpellMgr->GetPrevSpellInChain(tSpell->ReqAbility[i])) - { - data << uint32(prevSpellId); - ++maxReq; - } - if (maxReq == 3) - break; - SpellsRequiringSpellMapBounds spellsRequired = sSpellMgr->GetSpellsRequiredForSpellBounds(tSpell->ReqAbility[i]); - for (SpellsRequiringSpellMap::const_iterator itr2 = spellsRequired.first; itr2 != spellsRequired.second && maxReq < 3; ++itr2) - { - data << uint32(itr2->second); - ++maxReq; - } - if (maxReq == 3) - break; - } - while (maxReq < 3) - { - data << uint32(0); - ++maxReq; - } - - ++count; - } - - data << strTitle; - - data.put<uint32>(count_pos, count); - SendPacket(&data); + trainer->SendSpells(npc, _player, GetSessionDbLocaleIndex()); } -void WorldSession::HandleTrainerBuySpellOpcode(WorldPacket& recvData) +void WorldSession::HandleTrainerBuySpellOpcode(WorldPackets::NPC::TrainerBuySpell& packet) { - ObjectGuid guid; - uint32 spellId = 0; + TC_LOG_DEBUG("network", "WORLD: Received CMSG_TRAINER_BUY_SPELL %s, learn spell id is: %u", packet.TrainerGUID.ToString().c_str(), packet.SpellID); - recvData >> guid >> spellId; - TC_LOG_DEBUG("network", "WORLD: Received CMSG_TRAINER_BUY_SPELL %s, learn spell id is: %u", guid.ToString().c_str(), spellId); - - Creature* trainer = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_TRAINER); - if (!trainer) + Creature* npc = GetPlayer()->GetNPCIfCanInteractWith(packet.TrainerGUID, UNIT_NPC_FLAG_TRAINER); + if (!npc) { - TC_LOG_DEBUG("network", "WORLD: HandleTrainerBuySpellOpcode - %s not found or you can not interact with him.", guid.ToString().c_str()); + TC_LOG_DEBUG("network", "WORLD: HandleTrainerBuySpellOpcode - %s not found or you can not interact with him.", packet.TrainerGUID.ToString().c_str()); return; } @@ -250,54 +162,11 @@ void WorldSession::HandleTrainerBuySpellOpcode(WorldPacket& recvData) if (GetPlayer()->HasUnitState(UNIT_STATE_DIED)) GetPlayer()->RemoveAurasByType(SPELL_AURA_FEIGN_DEATH); - // check race for mount trainers - if (trainer->GetCreatureTemplate()->trainer_type == TRAINER_TYPE_MOUNTS) - { - if (uint32 trainerRace = trainer->GetCreatureTemplate()->trainer_race) - if (_player->getRace() != trainerRace) - return; - } - - // check class for class trainers - if (_player->getClass() != trainer->GetCreatureTemplate()->trainer_class && trainer->GetCreatureTemplate()->trainer_type == TRAINER_TYPE_CLASS) - return; - - // check present spell in trainer spell list - TrainerSpellData const* trainer_spells = trainer->GetTrainerSpells(); - if (!trainer_spells) - return; - - // not found, cheat? - TrainerSpell const* trainer_spell = trainer_spells->Find(spellId); - if (!trainer_spell) - return; - - // can't be learn, cheat? Or double learn with lags... - if (_player->GetTrainerSpellState(trainer_spell) != TRAINER_SPELL_GREEN) - return; - - // apply reputation discount - uint32 nSpellCost = uint32(floor(trainer_spell->MoneyCost * _player->GetReputationPriceDiscount(trainer))); - - // check money requirement - if (!_player->HasEnoughMoney(nSpellCost)) + Trainer::Trainer const* trainer = sObjectMgr->GetTrainer(npc->GetEntry()); + if (!trainer) return; - _player->ModifyMoney(-int32(nSpellCost)); - - trainer->SendPlaySpellVisual(179); // 53 SpellCastDirected - trainer->SendPlaySpellImpact(_player->GetGUID(), 362); // 113 EmoteSalute - - // learn explicitly or cast explicitly - if (trainer_spell->IsCastable()) - _player->CastSpell(_player, trainer_spell->SpellID, true); - else - _player->LearnSpell(spellId, false); - - WorldPacket data(SMSG_TRAINER_BUY_SUCCEEDED, 12); - data << uint64(guid); - data << uint32(spellId); // should be same as in packet from client - SendPacket(&data); + trainer->TeachSpell(npc, _player, packet.SpellID); } void WorldSession::HandleGossipHelloOpcode(WorldPacket& recvData) diff --git a/src/server/game/Handlers/SkillHandler.cpp b/src/server/game/Handlers/SkillHandler.cpp index 0e9d45e1aca..b254b891a4a 100644 --- a/src/server/game/Handlers/SkillHandler.cpp +++ b/src/server/game/Handlers/SkillHandler.cpp @@ -71,7 +71,7 @@ void WorldSession::HandleTalentWipeConfirmOpcode(WorldPacket& recvData) return; } - if (!unit->isCanTrainingAndResetTalentsOf(_player)) + if (!unit->CanResetTalents(_player)) return; // remove fake death diff --git a/src/server/game/Server/Packets/AllPackets.h b/src/server/game/Server/Packets/AllPackets.h index 63cd9c0ca4c..17bcce8f09a 100644 --- a/src/server/game/Server/Packets/AllPackets.h +++ b/src/server/game/Server/Packets/AllPackets.h @@ -18,6 +18,7 @@ #ifndef AllPackets_h__ #define AllPackets_h__ +#include "NPCPackets.h" #include "QueryPackets.h" #include "QuestPackets.h" #include "SpellPackets.h" diff --git a/src/server/game/Server/Packets/NPCPackets.cpp b/src/server/game/Server/Packets/NPCPackets.cpp new file mode 100644 index 00000000000..bef58fabd02 --- /dev/null +++ b/src/server/game/Server/Packets/NPCPackets.cpp @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2008-2018 TrinityCore <https://www.trinitycore.org/> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "NPCPackets.h" + +void WorldPackets::NPC::Hello::Read() +{ + _worldPacket >> Unit; +} + +WorldPacket const* WorldPackets::NPC::TrainerList::Write() +{ + _worldPacket << TrainerGUID; + _worldPacket << int32(TrainerType); + + _worldPacket << int32(Spells.size()); + for (TrainerListSpell const& spell : Spells) + { + _worldPacket << int32(spell.SpellID); + _worldPacket << uint8(spell.Usable); + _worldPacket << int32(spell.MoneyCost); + _worldPacket << int32(spell.ProfessionDialog); + _worldPacket << int32(spell.ProfessionButton); + _worldPacket << uint8(spell.ReqLevel); + _worldPacket << int32(spell.ReqSkillLine); + _worldPacket << int32(spell.ReqSkillRank); + _worldPacket.append(spell.ReqAbility.data(), spell.ReqAbility.size()); + } + + _worldPacket << Greeting; + + return &_worldPacket; +} + +void WorldPackets::NPC::TrainerBuySpell::Read() +{ + _worldPacket >> TrainerGUID; + _worldPacket >> SpellID; +} + +WorldPacket const* WorldPackets::NPC::TrainerBuyFailed::Write() +{ + _worldPacket << TrainerGUID; + _worldPacket << int32(SpellID); + _worldPacket << int32(TrainerFailedReason); + + return &_worldPacket; +} + +WorldPacket const* WorldPackets::NPC::TrainerBuySucceeded::Write() +{ + _worldPacket << TrainerGUID; + _worldPacket << int32(SpellID); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/NPCPackets.h b/src/server/game/Server/Packets/NPCPackets.h new file mode 100644 index 00000000000..cdbf7072a8a --- /dev/null +++ b/src/server/game/Server/Packets/NPCPackets.h @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2008-2018 TrinityCore <https://www.trinitycore.org/> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef NPCPackets_h__ +#define NPCPackets_h__ + +#include "Packet.h" +#include "ObjectGuid.h" +#include <array> + +namespace WorldPackets +{ + namespace NPC + { + // CMSG_BANKER_ACTIVATE + // CMSG_BATTLEMASTER_HELLO + // CMSG_BINDER_ACTIVATE + // CMSG_GOSSIP_HELLO + // CMSG_LIST_INVENTORY + // CMSG_TRAINER_LIST + class Hello final : public ClientPacket + { + public: + Hello(WorldPacket&& packet) : ClientPacket(std::move(packet)) { } + + void Read() override; + + ObjectGuid Unit; + }; + + struct TrainerListSpell + { + int32 SpellID = 0; + uint8 Usable = 0; + int32 MoneyCost = 0; + int32 ProfessionDialog = 0; + int32 ProfessionButton = 0; + uint8 ReqLevel = 0; + int32 ReqSkillLine = 0; + int32 ReqSkillRank = 0; + std::array<int32, 3> ReqAbility = { }; + }; + + class TrainerList final : public ServerPacket + { + public: + TrainerList() : ServerPacket(SMSG_TRAINER_LIST) { } + + WorldPacket const* Write() override; + + ObjectGuid TrainerGUID; + int32 TrainerType = 0; + std::vector<TrainerListSpell> Spells; + std::string Greeting; + }; + + class TrainerBuySpell final : public ClientPacket + { + public: + TrainerBuySpell(WorldPacket&& packet) : ClientPacket(CMSG_TRAINER_BUY_SPELL, std::move(packet)) { } + + void Read() override; + + ObjectGuid TrainerGUID; + int32 SpellID = 0; + }; + + class TrainerBuyFailed final : public ServerPacket + { + public: + TrainerBuyFailed() : ServerPacket(SMSG_TRAINER_BUY_FAILED, 8 + 4 + 4) { } + + WorldPacket const* Write() override; + + ObjectGuid TrainerGUID; + int32 SpellID = 0; + int32 TrainerFailedReason = 0; + }; + + class TrainerBuySucceeded final : public ServerPacket + { + public: + TrainerBuySucceeded() : ServerPacket(SMSG_TRAINER_BUY_SUCCEEDED, 8 + 4) { } + + WorldPacket const* Write() override; + + ObjectGuid TrainerGUID; + int32 SpellID = 0; + }; + } +} + +#endif // NPCPackets_h__ diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 540bc239128..2891b486201 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -74,6 +74,11 @@ class RBACData; namespace WorldPackets { + namespace NPC + { + class Hello; + class TrainerBuySpell; + } namespace Query { class QueryCreature; @@ -348,8 +353,7 @@ class TC_GAME_API WorldSession void SendNameQueryOpcode(ObjectGuid guid); - void SendTrainerList(ObjectGuid guid); - void SendTrainerList(ObjectGuid guid, std::string const& strTitle); + void SendTrainerList(Creature* npc); void SendListInventory(ObjectGuid guid); void SendShowBank(ObjectGuid guid); bool CanOpenMailBox(ObjectGuid guid); @@ -652,8 +656,8 @@ class TC_GAME_API WorldSession void HandleTabardVendorActivateOpcode(WorldPacket& recvPacket); void HandleBankerActivateOpcode(WorldPacket& recvPacket); void HandleBuyBankSlotOpcode(WorldPacket& recvPacket); - void HandleTrainerListOpcode(WorldPacket& recvPacket); - void HandleTrainerBuySpellOpcode(WorldPacket& recvPacket); + void HandleTrainerListOpcode(WorldPackets::NPC::Hello& packet); + void HandleTrainerBuySpellOpcode(WorldPackets::NPC::TrainerBuySpell& packet); void HandlePetitionShowListOpcode(WorldPacket& recvPacket); void HandleGossipHelloOpcode(WorldPacket& recvPacket); void HandleGossipSelectOptionOpcode(WorldPacket& recvPacket); diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index a5a9f4d33e4..9fe210e493b 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -297,9 +297,9 @@ uint32 SpellMgr::GetSpellWithRank(uint32 spell_id, uint32 rank, bool strict) con return spell_id; } -SpellRequiredMapBounds SpellMgr::GetSpellsRequiredForSpellBounds(uint32 spell_id) const +Trinity::IteratorPair<SpellRequiredMap::const_iterator> SpellMgr::GetSpellsRequiredForSpellBounds(uint32 spell_id) const { - return mSpellReq.equal_range(spell_id); + return Trinity::Containers::MapEqualRange(mSpellReq, spell_id); } SpellsRequiringSpellMapBounds SpellMgr::GetSpellsRequiringSpellBounds(uint32 spell_id) const diff --git a/src/server/game/Spells/SpellMgr.h b/src/server/game/Spells/SpellMgr.h index 5dddc5f13e8..595e186b6cd 100644 --- a/src/server/game/Spells/SpellMgr.h +++ b/src/server/game/Spells/SpellMgr.h @@ -23,6 +23,7 @@ #include "Define.h" #include "Duration.h" +#include "IteratorPair.h" #include "SharedDefines.h" #include "Util.h" @@ -607,7 +608,7 @@ class TC_GAME_API SpellMgr uint32 GetSpellWithRank(uint32 spell_id, uint32 rank, bool strict = false) const; // Spell Required table - SpellRequiredMapBounds GetSpellsRequiredForSpellBounds(uint32 spell_id) const; + Trinity::IteratorPair<SpellRequiredMap::const_iterator> GetSpellsRequiredForSpellBounds(uint32 spell_id) const; SpellsRequiringSpellMapBounds GetSpellsRequiringSpellBounds(uint32 spell_id) const; bool IsSpellRequiringSpell(uint32 spellid, uint32 req_spellid) const; diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 13c3b7b161c..4c3498c98b0 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1927,18 +1927,21 @@ void World::SetInitialWorldSettings() TC_LOG_INFO("server.loading", "Loading GameTeleports..."); sObjectMgr->LoadGameTele(); + TC_LOG_INFO("server.loading", "Loading Trainers..."); // must be after LoadCreatureTemplates + sObjectMgr->LoadTrainers(); + + TC_LOG_INFO("server.loading", "Loading Creature default trainers..."); + sObjectMgr->LoadCreatureDefaultTrainers(); + TC_LOG_INFO("server.loading", "Loading Gossip menu..."); sObjectMgr->LoadGossipMenu(); TC_LOG_INFO("server.loading", "Loading Gossip menu options..."); - sObjectMgr->LoadGossipMenuItems(); + sObjectMgr->LoadGossipMenuItems(); // must be after LoadTrainers TC_LOG_INFO("server.loading", "Loading Vendors..."); sObjectMgr->LoadVendors(); // must be after load CreatureTemplate and ItemTemplate - TC_LOG_INFO("server.loading", "Loading Trainers..."); - sObjectMgr->LoadTrainerSpell(); // must be after load CreatureTemplate - TC_LOG_INFO("server.loading", "Loading Waypoints..."); sWaypointMgr->Load(); diff --git a/src/server/scripts/Commands/cs_reload.cpp b/src/server/scripts/Commands/cs_reload.cpp index eae194b1044..e5732634b56 100644 --- a/src/server/scripts/Commands/cs_reload.cpp +++ b/src/server/scripts/Commands/cs_reload.cpp @@ -124,7 +124,6 @@ public: { "mail_loot_template", rbac::RBAC_PERM_COMMAND_RELOAD_MAIL_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesMailCommand, "" }, { "milling_loot_template", rbac::RBAC_PERM_COMMAND_RELOAD_MILLING_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesMillingCommand, "" }, { "npc_spellclick_spells", rbac::RBAC_PERM_COMMAND_RELOAD_NPC_SPELLCLICK_SPELLS, true, &HandleReloadSpellClickSpellsCommand, "" }, - { "npc_trainer", rbac::RBAC_PERM_COMMAND_RELOAD_NPC_TRAINER, true, &HandleReloadNpcTrainerCommand, "" }, { "npc_vendor", rbac::RBAC_PERM_COMMAND_RELOAD_NPC_VENDOR, true, &HandleReloadNpcVendorCommand, "" }, { "page_text", rbac::RBAC_PERM_COMMAND_RELOAD_PAGE_TEXT, true, &HandleReloadPageTextsCommand, "" }, { "pickpocketing_loot_template", rbac::RBAC_PERM_COMMAND_RELOAD_PICKPOCKETING_LOOT_TEMPLATE, true, &HandleReloadLootTemplatesPickpocketingCommand, "" }, @@ -157,6 +156,7 @@ public: { "spell_target_position", rbac::RBAC_PERM_COMMAND_RELOAD_SPELL_TARGET_POSITION, true, &HandleReloadSpellTargetPositionCommand, "" }, { "spell_threats", rbac::RBAC_PERM_COMMAND_RELOAD_SPELL_THREATS, true, &HandleReloadSpellThreatsCommand, "" }, { "spell_group_stack_rules", rbac::RBAC_PERM_COMMAND_RELOAD_SPELL_GROUP_STACK_RULES, true, &HandleReloadSpellGroupStackRulesCommand, "" }, + { "trainer", rbac::RBAC_PERM_COMMAND_RELOAD_TRAINER, true, &HandleReloadTrainerCommand, "" }, { "trinity_string", rbac::RBAC_PERM_COMMAND_RELOAD_TRINITY_STRING, true, &HandleReloadTrinityStringCommand, "" }, { "warden_action", rbac::RBAC_PERM_COMMAND_RELOAD_WARDEN_ACTION, true, &HandleReloadWardenactionCommand, "" }, { "waypoint_scripts", rbac::RBAC_PERM_COMMAND_RELOAD_WAYPOINT_SCRIPTS, true, &HandleReloadWpScriptsCommand, "" }, @@ -238,7 +238,7 @@ public: static bool HandleReloadAllNpcCommand(ChatHandler* handler, char const* args) { if (*args != 'a') // will be reloaded from all_gossips - HandleReloadNpcTrainerCommand(handler, "a"); + HandleReloadTrainerCommand(handler, "a"); HandleReloadNpcVendorCommand(handler, "a"); HandleReloadPointsOfInterestCommand(handler, "a"); HandleReloadSpellClickSpellsCommand(handler, "a"); @@ -711,11 +711,15 @@ public: return true; } - static bool HandleReloadNpcTrainerCommand(ChatHandler* handler, char const* /*args*/) + static bool HandleReloadTrainerCommand(ChatHandler* handler, char const* /*args*/) { - TC_LOG_INFO("misc", "Re-Loading `npc_trainer` Table!"); - sObjectMgr->LoadTrainerSpell(); - handler->SendGlobalGMSysMessage("DB table `npc_trainer` reloaded."); + TC_LOG_INFO("misc", "Re-Loading `trainer` Table!"); + sObjectMgr->LoadTrainers(); + sObjectMgr->LoadCreatureDefaultTrainers(); + handler->SendGlobalGMSysMessage("DB table `trainer` reloaded."); + handler->SendGlobalGMSysMessage("DB table `trainer_locale` reloaded."); + handler->SendGlobalGMSysMessage("DB table `trainer_spell` reloaded."); + handler->SendGlobalGMSysMessage("DB table `creature_default_trainer` reloaded."); return true; } diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp index e0b27a40642..1ab3815c9c0 100644 --- a/src/server/scripts/Northrend/zone_storm_peaks.cpp +++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp @@ -157,7 +157,7 @@ public: switch (action) { case GOSSIP_ACTION_TRAIN: - player->GetSession()->SendTrainerList(me->GetGUID()); + player->GetSession()->SendTrainerList(me); break; case GOSSIP_ACTION_TRADE: player->GetSession()->SendListInventory(me->GetGUID()); diff --git a/src/server/scripts/World/npc_professions.cpp b/src/server/scripts/World/npc_professions.cpp index a31fc1ee1f6..9601ae2d583 100644 --- a/src/server/scripts/World/npc_professions.cpp +++ b/src/server/scripts/World/npc_professions.cpp @@ -495,7 +495,7 @@ public: player->GetSession()->SendListInventory(me->GetGUID()); break; case GOSSIP_ACTION_TRAIN: - player->GetSession()->SendTrainerList(me->GetGUID()); + player->GetSession()->SendTrainerList(me); break; //Learn Armor/Weapon case GOSSIP_ACTION_INFO_DEF + 1: @@ -899,7 +899,7 @@ public: player->GetSession()->SendListInventory(me->GetGUID()); break; case GOSSIP_ACTION_TRAIN: - player->GetSession()->SendTrainerList(me->GetGUID()); + player->GetSession()->SendTrainerList(me); break; //Unlearn Leather case GOSSIP_ACTION_INFO_DEF + 1: @@ -1041,7 +1041,7 @@ public: player->GetSession()->SendListInventory(me->GetGUID()); break; case GOSSIP_ACTION_TRAIN: - player->GetSession()->SendTrainerList(me->GetGUID()); + player->GetSession()->SendTrainerList(me); break; //Learn Tailor case GOSSIP_ACTION_INFO_DEF + 1: diff --git a/src/server/shared/SharedDefines.h b/src/server/shared/SharedDefines.h index b27f2f108d9..5a7be809ea8 100644 --- a/src/server/shared/SharedDefines.h +++ b/src/server/shared/SharedDefines.h @@ -2621,16 +2621,6 @@ enum LockType LOCKTYPE_OPEN_FROM_VEHICLE = 21 }; -enum TrainerType // this is important type for npcs! -{ - TRAINER_TYPE_CLASS = 0, - TRAINER_TYPE_MOUNTS = 1, // on blizz it's 2 - TRAINER_TYPE_TRADESKILLS = 2, - TRAINER_TYPE_PETS = 3 -}; - -#define MAX_TRAINER_TYPE 4 - // CreatureType.dbc enum CreatureType { |