/// <summary> /// Adds the contents of another <see cref='SpawnerList'/> to the end of the collection. /// </summary> /// <param name='val'> /// A <see cref='SpawnerList'/> containing the objects to add to the collection. /// </param> /// <seealso cref='SpawnerList.Add'/> public void AddRange(SpawnerList val) { dirty = true; for (int i = 0; i < val.Count; i++) { this.Add(val[i]); } }
/* public class ZoneTimer : WowTimer { int zoneId; public ZoneTimer( int zone ) : base( WowTimer.Priorities.Second30 , 30000 ) { zoneId = zone; } public override void OnTick() { foreach( Character ch in World.allConnectedChars ) { if ( ch.QuickDistance( } base.OnTick (); } }*/ public static void AdjustSpawnersNew() { int completed = 0; SpawnerList nsp = new SpawnerList(); foreach( BaseSpawner bs in allSpawners ) { if ( bs.MapId > 1 ) Console.WriteLine("Invalid spawner at {0} {1} {2} continent {3}", bs.X, bs.Y, bs.Z, bs.MapId ); else { bs.ZoneId = World.mapZones.NearestZoneId( bs.MapId, bs.X, bs.Y ); if ( bs.ZoneId == -1 ) Console.WriteLine("Invalid spawner at {0} {1} {2} continent {3}", bs.X, bs.Y, bs.Z, bs.MapId ); else { if ( bs is MobileSpawner ) { MapPoint mp = World.mapZones.NearestPoint( bs.ZoneHash, bs.MapId, bs.ZoneId, bs.X, bs.Y ); ( bs as MobileSpawner ).RealX = mp.x; ( bs as MobileSpawner ).RealY = mp.y; ( bs as MobileSpawner ).RealZ = mp.z; } nsp.Add( bs ); } } completed++; if ( completed % 500 == 0 ) Console.WriteLine("Completed {0} %", ( (float)completed / (float)allSpawners.Count ) * 100f); } allSpawners = nsp; }
public World() { #region Standard server if ( !RealmServer ) { #region Zone Ids map[ 324 ] = 0; zones[ 324 ] = 45; zoneIds[ 324 ] = 56; map[ 327 ] = 0; zones[ 327 ] = 45; zoneIds[ 327 ] = 59; map[ 330 ] = 0; zones[ 330 ] = 330; zoneIds[ 330 ] = 60; map[ 332 ] = 1; zones[ 332 ] = 332; zoneIds[ 332 ] = 62; map[ 335 ] = 0; zones[ 335 ] = 45; zoneIds[ 335 ] = 65; map[ 341 ] = 0; zones[ 341 ] = 3; zoneIds[ 341 ] = 69; map[ 342 ] = 0; zones[ 342 ] = 3; zoneIds[ 342 ] = 70; map[ 343 ] = 0; zones[ 343 ] = 3; zoneIds[ 343 ] = 71; map[ 345 ] = 0; zones[ 345 ] = 3; zoneIds[ 345 ] = 73; map[ 346 ] = 0; zones[ 346 ] = 3; zoneIds[ 346 ] = 74; map[ 349 ] = 0; zones[ 349 ] = 47; zoneIds[ 349 ] = 77; map[ 351 ] = 0; zones[ 351 ] = 47; zoneIds[ 351 ] = 79; map[ 352 ] = 0; zones[ 352 ] = 47; zoneIds[ 352 ] = 80; map[ 353 ] = 0; zones[ 353 ] = 47; zoneIds[ 353 ] = 81; map[ 356 ] = 0; zones[ 356 ] = 47; zoneIds[ 356 ] = 82; map[ 359 ] = 1; zones[ 359 ] = 17; zoneIds[ 359 ] = 85; map[ 360 ] = 1; zones[ 360 ] = 215; zoneIds[ 360 ] = 86; map[ 361 ] = 1; zones[ 361 ] = 361; zoneIds[ 361 ] = 87; map[ 363 ] = 1; zones[ 363 ] = 14; zoneIds[ 363 ] = 89; map[ 367 ] = 1; zones[ 367 ] = 14; zoneIds[ 367 ] = 93; map[ 369 ] = 1; zones[ 369 ] = 14; zoneIds[ 369 ] = 95; map[ 372 ] = 1; zones[ 372 ] = 14; zoneIds[ 372 ] = 97; map[ 374 ] = 1; zones[ 374 ] = 14; zoneIds[ 374 ] = 99; map[ 375 ] = 1; zones[ 375 ] = 14; zoneIds[ 375 ] = 100; map[ 378 ] = 1; zones[ 378 ] = 17; zoneIds[ 378 ] = 102; map[ 380 ] = 1; zones[ 380 ] = 17; zoneIds[ 380 ] = 104; map[ 384 ] = 1; zones[ 384 ] = 17; zoneIds[ 384 ] = 107; map[ 385 ] = 1; zones[ 385 ] = 17; zoneIds[ 385 ] = 108; map[ 386 ] = 1; zones[ 386 ] = 17; zoneIds[ 386 ] = 109; map[ 388 ] = 1; zones[ 388 ] = 17; zoneIds[ 388 ] = 110; map[ 391 ] = 1; zones[ 391 ] = 17; zoneIds[ 391 ] = 112; map[ 394 ] = 0; zones[ 394 ] = 394; zoneIds[ 394 ] = 115; map[ 397 ] = 1; zones[ 397 ] = 215; zoneIds[ 397 ] = 118; map[ 1 ] = 0; zones[ 1 ] = 1; zoneIds[ 1 ] = 119; map[ 4 ] = 0; zones[ 4 ] = 4; zoneIds[ 4 ] = 122; map[ 8 ] = 0; zones[ 8 ] = 8; zoneIds[ 8 ] = 124; map[ 15 ] = 1; zones[ 15 ] = 15; zoneIds[ 15 ] = 128; map[ 18 ] = 0; zones[ 18 ] = 12; zoneIds[ 18 ] = 131; map[ 20 ] = 0; zones[ 20 ] = 40; zoneIds[ 20 ] = 132; map[ 21 ] = 0; zones[ 21 ] = 21; zoneIds[ 21 ] = 133; map[ 30 ] = 0; zones[ 30 ] = 30; zoneIds[ 30 ] = 138; map[ 32 ] = 0; zones[ 32 ] = 10; zoneIds[ 32 ] = 139; map[ 33 ] = 0; zones[ 33 ] = 33; zoneIds[ 33 ] = 140; map[ 35 ] = 0; zones[ 35 ] = 33; zoneIds[ 35 ] = 142; map[ 37 ] = 0; zones[ 37 ] = 33; zoneIds[ 37 ] = 144; map[ 38 ] = 0; zones[ 38 ] = 38; zoneIds[ 38 ] = 145; map[ 40 ] = 0; zones[ 40 ] = 40; zoneIds[ 40 ] = 146; map[ 42 ] = 0; zones[ 42 ] = 10; zoneIds[ 42 ] = 147; map[ 43 ] = 0; zones[ 43 ] = 33; zoneIds[ 43 ] = 148; map[ 47 ] = 0; zones[ 47 ] = 47; zoneIds[ 47 ] = 152; map[ 49 ] = 0; zones[ 49 ] = 22; zoneIds[ 49 ] = 153; map[ 51 ] = 0; zones[ 51 ] = 51; zoneIds[ 51 ] = 154; map[ 53 ] = 0; zones[ 53 ] = 12; zoneIds[ 53 ] = 155; map[ 55 ] = 0; zones[ 55 ] = 12; zoneIds[ 55 ] = 156; map[ 56 ] = 0; zones[ 56 ] = 12; zoneIds[ 56 ] = 157; map[ 61 ] = 0; zones[ 61 ] = 12; zoneIds[ 61 ] = 160; map[ 63 ] = 0; zones[ 63 ] = 12; zoneIds[ 63 ] = 162; map[ 66 ] = 1; zones[ 66 ] = 66; zoneIds[ 66 ] = 165; map[ 69 ] = 0; zones[ 69 ] = 44; zoneIds[ 69 ] = 167; map[ 70 ] = 0; zones[ 70 ] = 44; zoneIds[ 70 ] = 168; map[ 74 ] = 0; zones[ 74 ] = 8; zoneIds[ 74 ] = 171; map[ 76 ] = 0; zones[ 76 ] = 8; zoneIds[ 76 ] = 173; map[ 80 ] = 0; zones[ 80 ] = 12; zoneIds[ 80 ] = 175; map[ 82 ] = 451; zones[ 82 ] = 22; zoneIds[ 82 ] = 176; map[ 85 ] = 0; zones[ 85 ] = 85; zoneIds[ 85 ] = 179; map[ 86 ] = 0; zones[ 86 ] = 12; zoneIds[ 86 ] = 180; map[ 88 ] = 0; zones[ 88 ] = 12; zoneIds[ 88 ] = 181; map[ 89 ] = 0; zones[ 89 ] = 12; zoneIds[ 89 ] = 182; map[ 94 ] = 0; zones[ 94 ] = 10; zoneIds[ 94 ] = 184; map[ 96 ] = 0; zones[ 96 ] = 44; zoneIds[ 96 ] = 186; map[ 97 ] = 0; zones[ 97 ] = 44; zoneIds[ 97 ] = 187; map[ 101 ] = 0; zones[ 101 ] = 33; zoneIds[ 101 ] = 190; map[ 103 ] = 0; zones[ 103 ] = 33; zoneIds[ 103 ] = 191; map[ 106 ] = 0; zones[ 106 ] = 33; zoneIds[ 106 ] = 194; map[ 107 ] = 0; zones[ 107 ] = 40; zoneIds[ 107 ] = 195; map[ 115 ] = 0; zones[ 115 ] = 40; zoneIds[ 115 ] = 199; map[ 116 ] = 0; zones[ 116 ] = 8; zoneIds[ 116 ] = 200; map[ 118 ] = 0; zones[ 118 ] = 11; zoneIds[ 118 ] = 201; map[ 123 ] = 0; zones[ 123 ] = 33; zoneIds[ 123 ] = 204; map[ 126 ] = 0; zones[ 126 ] = 33; zoneIds[ 126 ] = 206; map[ 127 ] = 0; zones[ 127 ] = 33; zoneIds[ 127 ] = 207; map[ 128 ] = 0; zones[ 128 ] = 33; zoneIds[ 128 ] = 208; map[ 129 ] = 0; zones[ 129 ] = 33; zoneIds[ 129 ] = 209; map[ 132 ] = 0; zones[ 132 ] = 1; zoneIds[ 132 ] = 212; map[ 133 ] = 0; zones[ 133 ] = 1; zoneIds[ 133 ] = 213; map[ 135 ] = 0; zones[ 135 ] = 1; zoneIds[ 135 ] = 215; map[ 137 ] = 0; zones[ 137 ] = 1; zoneIds[ 137 ] = 217; map[ 142 ] = 0; zones[ 142 ] = 38; zoneIds[ 142 ] = 221; map[ 143 ] = 0; zones[ 143 ] = 38; zoneIds[ 143 ] = 222; map[ 144 ] = 0; zones[ 144 ] = 38; zoneIds[ 144 ] = 223; map[ 145 ] = 0; zones[ 145 ] = 38; zoneIds[ 145 ] = 224; map[ 147 ] = 0; zones[ 147 ] = 38; zoneIds[ 147 ] = 226; map[ 154 ] = 0; zones[ 154 ] = 85; zoneIds[ 154 ] = 231; map[ 155 ] = 0; zones[ 155 ] = 85; zoneIds[ 155 ] = 232; map[ 158 ] = 0; zones[ 158 ] = 85; zoneIds[ 158 ] = 235; map[ 160 ] = 0; zones[ 160 ] = 85; zoneIds[ 160 ] = 237; map[ 161 ] = 0; zones[ 161 ] = 85; zoneIds[ 161 ] = 238; map[ 168 ] = 0; zones[ 168 ] = 85; zoneIds[ 168 ] = 245; map[ 170 ] = 0; zones[ 170 ] = 170; zoneIds[ 170 ] = 246; map[ 172 ] = 0; zones[ 172 ] = 130; zoneIds[ 172 ] = 247; map[ 189 ] = 0; zones[ 189 ] = 1; zoneIds[ 189 ] = 249; map[ 190 ] = 0; zones[ 190 ] = 28; zoneIds[ 190 ] = 250; map[ 198 ] = 0; zones[ 198 ] = 28; zoneIds[ 198 ] = 255; map[ 199 ] = 0; zones[ 199 ] = 28; zoneIds[ 199 ] = 256; map[ 200 ] = 0; zones[ 200 ] = 28; zoneIds[ 200 ] = 257; map[ 202 ] = 0; zones[ 202 ] = 28; zoneIds[ 202 ] = 259; map[ 203 ] = 0; zones[ 203 ] = 28; zoneIds[ 203 ] = 260; map[ 207 ] = 36; zones[ 207 ] = 207; zoneIds[ 207 ] = 264; map[ 208 ] = 36; zones[ 208 ] = 208; zoneIds[ 208 ] = 265; map[ 210 ] = 36; zones[ 210 ] = 210; zoneIds[ 210 ] = 267; map[ 213 ] = 0; zones[ 213 ] = 130; zoneIds[ 213 ] = 270; map[ 214 ] = 0; zones[ 214 ] = 214; zoneIds[ 214 ] = 271; map[ 215 ] = 1; zones[ 215 ] = 215; zoneIds[ 215 ] = 272; map[ 222 ] = 1; zones[ 222 ] = 215; zoneIds[ 222 ] = 275; map[ 251 ] = 0; zones[ 251 ] = 46; zoneIds[ 251 ] = 2; map[ 252 ] = 0; zones[ 252 ] = 46; zoneIds[ 252 ] = 3; map[ 256 ] = 1; zones[ 256 ] = 141; zoneIds[ 256 ] = 6; map[ 258 ] = 1; zones[ 258 ] = 141; zoneIds[ 258 ] = 8; map[ 259 ] = 1; zones[ 259 ] = 141; zoneIds[ 259 ] = 9; map[ 260 ] = 1; zones[ 260 ] = 141; zoneIds[ 260 ] = 10; map[ 262 ] = 1; zones[ 262 ] = 141; zoneIds[ 262 ] = 12; map[ 266 ] = 1; zones[ 266 ] = 141; zoneIds[ 266 ] = 16; map[ 267 ] = 0; zones[ 267 ] = 267; zoneIds[ 267 ] = 17; map[ 269 ] = 0; zones[ 269 ] = 269; zoneIds[ 269 ] = 18; map[ 275 ] = 0; zones[ 275 ] = 267; zoneIds[ 275 ] = 20; map[ 279 ] = 0; zones[ 279 ] = 36; zoneIds[ 279 ] = 23; map[ 281 ] = 0; zones[ 281 ] = 36; zoneIds[ 281 ] = 25; map[ 283 ] = 0; zones[ 283 ] = 36; zoneIds[ 283 ] = 27; map[ 285 ] = 0; zones[ 285 ] = 267; zoneIds[ 285 ] = 29; map[ 286 ] = 0; zones[ 286 ] = 267; zoneIds[ 286 ] = 30; map[ 287 ] = 0; zones[ 287 ] = 267; zoneIds[ 287 ] = 31; map[ 288 ] = 0; zones[ 288 ] = 267; zoneIds[ 288 ] = 32; map[ 290 ] = 0; zones[ 290 ] = 267; zoneIds[ 290 ] = 34; map[ 297 ] = 0; zones[ 297 ] = 33; zoneIds[ 297 ] = 38; map[ 299 ] = 0; zones[ 299 ] = 11; zoneIds[ 299 ] = 40; map[ 300 ] = 0; zones[ 300 ] = 8; zoneIds[ 300 ] = 41; map[ 301 ] = 0; zones[ 301 ] = 33; zoneIds[ 301 ] = 42; map[ 303 ] = 0; zones[ 303 ] = 33; zoneIds[ 303 ] = 43; map[ 312 ] = 0; zones[ 312 ] = 33; zoneIds[ 312 ] = 49; map[ 314 ] = 0; zones[ 314 ] = 45; zoneIds[ 314 ] = 50; map[ 316 ] = 0; zones[ 316 ] = 45; zoneIds[ 316 ] = 51; map[ 318 ] = 0; zones[ 318 ] = 45; zoneIds[ 318 ] = 52; map[ 320 ] = 0; zones[ 320 ] = 45; zoneIds[ 320 ] = 53; map[ 139 ] = 0; zones[ 139 ] = 139; zoneIds[ 139 ] = 219; map[ 148 ] = 1; zones[ 148 ] = 148; zoneIds[ 148 ] = 227; map[ 211 ] = 0; zones[ 211 ] = 1; zoneIds[ 211 ] = 268; map[ 232 ] = 0; zones[ 232 ] = 130; zoneIds[ 232 ] = 284; map[ 244 ] = 0; zones[ 244 ] = 10; zoneIds[ 244 ] = 292; map[ 25 ] = 0; zones[ 25 ] = 25; zoneIds[ 25 ] = 136; map[ 28 ] = 0; zones[ 28 ] = 28; zoneIds[ 28 ] = 137; map[ 84 ] = 451; zones[ 84 ] = 22; zoneIds[ 84 ] = 178; map[ 997 ] = 0; zones[ 997 ] = 44; zoneIds[ 997 ] = 409; map[ 998 ] = 0; zones[ 998 ] = 44; zoneIds[ 998 ] = 410; map[ 999 ] = 0; zones[ 999 ] = 44; zoneIds[ 999 ] = 411; map[ 1000 ] = 0; zones[ 1000 ] = 44; zoneIds[ 1000 ] = 412; map[ 1120 ] = 1; zones[ 1120 ] = 357; zoneIds[ 1120 ] = 413; map[ 1221 ] = 1; zones[ 1221 ] = 16; zoneIds[ 1221 ] = 416; map[ 1224 ] = 1; zones[ 1224 ] = 16; zoneIds[ 1224 ] = 419; map[ 1226 ] = 1; zones[ 1226 ] = 16; zoneIds[ 1226 ] = 421; map[ 1227 ] = 1; zones[ 1227 ] = 16; zoneIds[ 1227 ] = 422; map[ 1229 ] = 1; zones[ 1229 ] = 16; zoneIds[ 1229 ] = 424; map[ 1231 ] = 1; zones[ 1231 ] = 16; zoneIds[ 1231 ] = 426; map[ 1233 ] = 1; zones[ 1233 ] = 16; zoneIds[ 1233 ] = 428; map[ 1235 ] = 1; zones[ 1235 ] = 16; zoneIds[ 1235 ] = 430; map[ 1237 ] = 1; zones[ 1237 ] = 16; zoneIds[ 1237 ] = 432; map[ 1256 ] = 1; zones[ 1256 ] = 16; zoneIds[ 1256 ] = 433; map[ 1277 ] = 1; zones[ 1277 ] = 406; zoneIds[ 1277 ] = 435; map[ 1337 ] = 70; zones[ 1337 ] = 1337; zoneIds[ 1337 ] = 437; map[ 1338 ] = 0; zones[ 1338 ] = 130; zoneIds[ 1338 ] = 438; map[ 98 ] = 0; zones[ 98 ] = 44; zoneIds[ 98 ] = 188; map[ 131 ] = 0; zones[ 131 ] = 1; zoneIds[ 131 ] = 211; map[ 138 ] = 0; zones[ 138 ] = 1; zoneIds[ 138 ] = 218; map[ 699 ] = 1; zones[ 699 ] = 141; zoneIds[ 699 ] = 301; map[ 436 ] = 1; zones[ 436 ] = 331; zoneIds[ 436 ] = 469; map[ 449 ] = 1; zones[ 449 ] = 148; zoneIds[ 449 ] = 481; map[ 468 ] = 1; zones[ 468 ] = 406; zoneIds[ 468 ] = 494; map[ 480 ] = 1; zones[ 480 ] = 400; zoneIds[ 480 ] = 505; map[ 398 ] = 1; zones[ 398 ] = 215; zoneIds[ 398 ] = 441; map[ 401 ] = 1; zones[ 401 ] = 17; zoneIds[ 401 ] = 443; map[ 404 ] = 1; zones[ 404 ] = 215; zoneIds[ 404 ] = 444; map[ 405 ] = 1; zones[ 405 ] = 405; zoneIds[ 405 ] = 445; map[ 410 ] = 1; zones[ 410 ] = 14; zoneIds[ 410 ] = 450; map[ 414 ] = 1; zones[ 414 ] = 331; zoneIds[ 414 ] = 453; map[ 415 ] = 1; zones[ 415 ] = 331; zoneIds[ 415 ] = 454; map[ 416 ] = 1; zones[ 416 ] = 331; zoneIds[ 416 ] = 455; map[ 417 ] = 1; zones[ 417 ] = 331; zoneIds[ 417 ] = 456; map[ 419 ] = 1; zones[ 419 ] = 331; zoneIds[ 419 ] = 458; map[ 421 ] = 1; zones[ 421 ] = 331; zoneIds[ 421 ] = 460; map[ 422 ] = 1; zones[ 422 ] = 331; zoneIds[ 422 ] = 461; map[ 427 ] = 1; zones[ 427 ] = 331; zoneIds[ 427 ] = 464; map[ 430 ] = 1; zones[ 430 ] = 331; zoneIds[ 430 ] = 465; map[ 433 ] = 1; zones[ 433 ] = 331; zoneIds[ 433 ] = 467; map[ 438 ] = 1; zones[ 438 ] = 331; zoneIds[ 438 ] = 470; map[ 440 ] = 1; zones[ 440 ] = 440; zoneIds[ 440 ] = 472; map[ 442 ] = 1; zones[ 442 ] = 148; zoneIds[ 442 ] = 474; map[ 443 ] = 1; zones[ 443 ] = 148; zoneIds[ 443 ] = 475; map[ 446 ] = 1; zones[ 446 ] = 148; zoneIds[ 446 ] = 478; map[ 452 ] = 1; zones[ 452 ] = 148; zoneIds[ 452 ] = 483; map[ 454 ] = 1; zones[ 454 ] = 148; zoneIds[ 454 ] = 484; map[ 456 ] = 1; zones[ 456 ] = 148; zoneIds[ 456 ] = 486; map[ 458 ] = 1; zones[ 458 ] = 17; zoneIds[ 458 ] = 487; map[ 460 ] = 1; zones[ 460 ] = 406; zoneIds[ 460 ] = 488; map[ 461 ] = 1; zones[ 461 ] = 406; zoneIds[ 461 ] = 489; map[ 465 ] = 1; zones[ 465 ] = 406; zoneIds[ 465 ] = 492; map[ 469 ] = 1; zones[ 469 ] = 406; zoneIds[ 469 ] = 495; map[ 470 ] = 1; zones[ 470 ] = 215; zoneIds[ 470 ] = 496; map[ 471 ] = 1; zones[ 471 ] = 215; zoneIds[ 471 ] = 497; map[ 472 ] = 1; zones[ 472 ] = 215; zoneIds[ 472 ] = 498; map[ 474 ] = 1; zones[ 474 ] = 215; zoneIds[ 474 ] = 499; map[ 476 ] = 1; zones[ 476 ] = 215; zoneIds[ 476 ] = 501; map[ 478 ] = 1; zones[ 478 ] = 141; zoneIds[ 478 ] = 503; map[ 479 ] = 1; zones[ 479 ] = 400; zoneIds[ 479 ] = 504; map[ 482 ] = 1; zones[ 482 ] = 400; zoneIds[ 482 ] = 506; map[ 485 ] = 1; zones[ 485 ] = 400; zoneIds[ 485 ] = 509; map[ 486 ] = 1; zones[ 486 ] = 400; zoneIds[ 486 ] = 510; map[ 487 ] = 1; zones[ 487 ] = 400; zoneIds[ 487 ] = 511; map[ 490 ] = 1; zones[ 490 ] = 490; zoneIds[ 490 ] = 514; map[ 492 ] = 0; zones[ 492 ] = 10; zoneIds[ 492 ] = 516; map[ 493 ] = 1; zones[ 493 ] = 493; zoneIds[ 493 ] = 517; map[ 495 ] = 0; zones[ 495 ] = 495; zoneIds[ 495 ] = 519; map[ 504 ] = 1; zones[ 504 ] = 15; zoneIds[ 504 ] = 523; map[ 505 ] = 1; zones[ 505 ] = 15; zoneIds[ 505 ] = 524; map[ 507 ] = 1; zones[ 507 ] = 15; zoneIds[ 507 ] = 526; map[ 508 ] = 1; zones[ 508 ] = 15; zoneIds[ 508 ] = 527; map[ 512 ] = 1; zones[ 512 ] = 15; zoneIds[ 512 ] = 530; map[ 513 ] = 1; zones[ 513 ] = 15; zoneIds[ 513 ] = 531; map[ 514 ] = 1; zones[ 514 ] = 15; zoneIds[ 514 ] = 532; map[ 517 ] = 1; zones[ 517 ] = 15; zoneIds[ 517 ] = 535; map[ 537 ] = 1; zones[ 537 ] = 490; zoneIds[ 537 ] = 538; map[ 539 ] = 1; zones[ 539 ] = 490; zoneIds[ 539 ] = 540; map[ 541 ] = 1; zones[ 541 ] = 490; zoneIds[ 541 ] = 542; map[ 542 ] = 1; zones[ 542 ] = 490; zoneIds[ 542 ] = 543; map[ 556 ] = 0; zones[ 556 ] = 38; zoneIds[ 556 ] = 545; map[ 87 ] = 0; zones[ 87 ] = 12; zoneIds[ 87 ] = 548; map[ 425 ] = 1; zones[ 425 ] = 331; zoneIds[ 425 ] = 549; map[ 226 ] = 0; zones[ 226 ] = 130; zoneIds[ 226 ] = 551; map[ 473 ] = 1; zones[ 473 ] = 215; zoneIds[ 473 ] = 554; map[ 41 ] = 0; zones[ 41 ] = 41; zoneIds[ 41 ] = 556; map[ 151 ] = 451; zones[ 151 ] = 151; zoneIds[ 151 ] = 560; map[ 188 ] = 1; zones[ 188 ] = 141; zoneIds[ 188 ] = 561; map[ 220 ] = 1; zones[ 220 ] = 215; zoneIds[ 220 ] = 562; map[ 276 ] = 0; zones[ 276 ] = 276; zoneIds[ 276 ] = 564; map[ 302 ] = 0; zones[ 302 ] = 33; zoneIds[ 302 ] = 565; map[ 403 ] = 1; zones[ 403 ] = 15; zoneIds[ 403 ] = 568; map[ 434 ] = 1; zones[ 434 ] = 331; zoneIds[ 434 ] = 570; map[ 481 ] = 1; zones[ 481 ] = 400; zoneIds[ 481 ] = 572; map[ 113 ] = 0; zones[ 113 ] = 40; zoneIds[ 113 ] = 576; map[ 169 ] = 0; zones[ 169 ] = 85; zoneIds[ 169 ] = 577; map[ 268 ] = 37; zones[ 268 ] = 268; zoneIds[ 268 ] = 580; map[ 387 ] = 1; zones[ 387 ] = 17; zoneIds[ 387 ] = 582; map[ 453 ] = 1; zones[ 453 ] = 148; zoneIds[ 453 ] = 583; map[ 238 ] = 0; zones[ 238 ] = 130; zoneIds[ 238 ] = 587; map[ 239 ] = 0; zones[ 239 ] = 130; zoneIds[ 239 ] = 588; map[ 311 ] = 0; zones[ 311 ] = 33; zoneIds[ 311 ] = 589; map[ 315 ] = 0; zones[ 315 ] = 45; zoneIds[ 315 ] = 590; map[ 354 ] = 0; zones[ 354 ] = 47; zoneIds[ 354 ] = 591; map[ 597 ] = 1; zones[ 597 ] = 405; zoneIds[ 597 ] = 594; map[ 609 ] = 1; zones[ 609 ] = 405; zoneIds[ 609 ] = 598; map[ 603 ] = 1; zones[ 603 ] = 405; zoneIds[ 603 ] = 600; map[ 604 ] = 1; zones[ 604 ] = 405; zoneIds[ 604 ] = 601; map[ 26 ] = 0; zones[ 26 ] = 40; zoneIds[ 26 ] = 602; map[ 60 ] = 0; zones[ 60 ] = 12; zoneIds[ 60 ] = 606; map[ 235 ] = 0; zones[ 235 ] = 130; zoneIds[ 235 ] = 608; map[ 317 ] = 0; zones[ 317 ] = 45; zoneIds[ 317 ] = 609; map[ 429 ] = 1; zones[ 429 ] = 331; zoneIds[ 429 ] = 611; map[ 437 ] = 1; zones[ 437 ] = 331; zoneIds[ 437 ] = 612; map[ 467 ] = 1; zones[ 467 ] = 406; zoneIds[ 467 ] = 613; map[ 10 ] = 0; zones[ 10 ] = 10; zoneIds[ 10 ] = 617; map[ 11 ] = 0; zones[ 11 ] = 11; zoneIds[ 11 ] = 618; map[ 616 ] = 1; zones[ 616 ] = 616; zoneIds[ 616 ] = 619; map[ 502 ] = 1; zones[ 502 ] = 15; zoneIds[ 502 ] = 624; map[ 412 ] = 1; zones[ 412 ] = 331; zoneIds[ 412 ] = 625; map[ 636 ] = 1; zones[ 636 ] = 406; zoneIds[ 636 ] = 626; map[ 71 ] = 0; zones[ 71 ] = 44; zoneIds[ 71 ] = 627; map[ 308 ] = 0; zones[ 308 ] = 308; zoneIds[ 308 ] = 631; map[ 338 ] = 0; zones[ 338 ] = 3; zoneIds[ 338 ] = 633; map[ 637 ] = 1; zones[ 637 ] = 215; zoneIds[ 637 ] = 635; map[ 638 ] = 1; zones[ 638 ] = 14; zoneIds[ 638 ] = 636; map[ 639 ] = 1; zones[ 639 ] = 14; zoneIds[ 639 ] = 637; map[ 716 ] = 0; zones[ 716 ] = 1; zoneIds[ 716 ] = 639; map[ 717 ] = 34; zones[ 717 ] = 717; zoneIds[ 717 ] = 640; map[ 720 ] = 1; zones[ 720 ] = 17; zoneIds[ 720 ] = 643; map[ 722 ] = 129; zones[ 722 ] = 722; zoneIds[ 722 ] = 644; map[ 796 ] = 189; zones[ 796 ] = 796; zoneIds[ 796 ] = 646; map[ 797 ] = 0; zones[ 797 ] = 12; zoneIds[ 797 ] = 647; map[ 798 ] = 0; zones[ 798 ] = 12; zoneIds[ 798 ] = 648; map[ 227 ] = 0; zones[ 227 ] = 130; zoneIds[ 227 ] = 279; map[ 228 ] = 0; zones[ 228 ] = 130; zoneIds[ 228 ] = 280; map[ 229 ] = 0; zones[ 229 ] = 130; zoneIds[ 229 ] = 281; map[ 230 ] = 0; zones[ 230 ] = 130; zoneIds[ 230 ] = 282; map[ 231 ] = 0; zones[ 231 ] = 130; zoneIds[ 231 ] = 283; map[ 240 ] = 0; zones[ 240 ] = 130; zoneIds[ 240 ] = 288; map[ 241 ] = 0; zones[ 241 ] = 10; zoneIds[ 241 ] = 289; map[ 242 ] = 0; zones[ 242 ] = 10; zoneIds[ 242 ] = 290; map[ 243 ] = 0; zones[ 243 ] = 10; zoneIds[ 243 ] = 291; map[ 247 ] = 0; zones[ 247 ] = 51; zoneIds[ 247 ] = 294; map[ 697 ] = 1; zones[ 697 ] = 141; zoneIds[ 697 ] = 299; map[ 698 ] = 1; zones[ 698 ] = 141; zoneIds[ 698 ] = 300; map[ 721 ] = 90; zones[ 721 ] = 721; zoneIds[ 721 ] = 305; map[ 838 ] = 0; zones[ 838 ] = 38; zoneIds[ 838 ] = 306; map[ 839 ] = 0; zones[ 839 ] = 38; zoneIds[ 839 ] = 307; map[ 922 ] = 0; zones[ 922 ] = 40; zoneIds[ 922 ] = 311; map[ 936 ] = 0; zones[ 936 ] = 38; zoneIds[ 936 ] = 318; map[ 956 ] = 169; zones[ 956 ] = 956; zoneIds[ 956 ] = 319; map[ 978 ] = 1; zones[ 978 ] = 440; zoneIds[ 978 ] = 321; map[ 980 ] = 1; zones[ 980 ] = 440; zoneIds[ 980 ] = 323; map[ 983 ] = 1; zones[ 983 ] = 440; zoneIds[ 983 ] = 326; map[ 985 ] = 1; zones[ 985 ] = 440; zoneIds[ 985 ] = 328; map[ 988 ] = 1; zones[ 988 ] = 440; zoneIds[ 988 ] = 331; map[ 989 ] = 1; zones[ 989 ] = 440; zoneIds[ 989 ] = 332; map[ 992 ] = 1; zones[ 992 ] = 440; zoneIds[ 992 ] = 335; map[ 1001 ] = 0; zones[ 1001 ] = 44; zoneIds[ 1001 ] = 336; map[ 1018 ] = 0; zones[ 1018 ] = 11; zoneIds[ 1018 ] = 340; map[ 1020 ] = 0; zones[ 1020 ] = 11; zoneIds[ 1020 ] = 342; map[ 1022 ] = 0; zones[ 1022 ] = 11; zoneIds[ 1022 ] = 344; map[ 1023 ] = 0; zones[ 1023 ] = 11; zoneIds[ 1023 ] = 345; map[ 1057 ] = 0; zones[ 1057 ] = 267; zoneIds[ 1057 ] = 349; map[ 1098 ] = 0; zones[ 1098 ] = 10; zoneIds[ 1098 ] = 352; map[ 1099 ] = 1; zones[ 1099 ] = 357; zoneIds[ 1099 ] = 353; map[ 1105 ] = 1; zones[ 1105 ] = 357; zoneIds[ 1105 ] = 354; map[ 1115 ] = 1; zones[ 1115 ] = 357; zoneIds[ 1115 ] = 357; map[ 1156 ] = 1; zones[ 1156 ] = 17; zoneIds[ 1156 ] = 362; map[ 1216 ] = 1; zones[ 1216 ] = 16; zoneIds[ 1216 ] = 364; map[ 1217 ] = 1; zones[ 1217 ] = 16; zoneIds[ 1217 ] = 365; map[ 1218 ] = 1; zones[ 1218 ] = 16; zoneIds[ 1218 ] = 366; map[ 1219 ] = 1; zones[ 1219 ] = 16; zoneIds[ 1219 ] = 367; map[ 1119 ] = 1; zones[ 1119 ] = 357; zoneIds[ 1119 ] = 369; map[ 1137 ] = 1; zones[ 1137 ] = 357; zoneIds[ 1137 ] = 370; map[ 1296 ] = 1; zones[ 1296 ] = 14; zoneIds[ 1296 ] = 372; map[ 1336 ] = 1; zones[ 1336 ] = 440; zoneIds[ 1336 ] = 373; map[ 1377 ] = 1; zones[ 1377 ] = 1377; zoneIds[ 1377 ] = 374; map[ 1397 ] = 169; zones[ 1397 ] = 1397; zoneIds[ 1397 ] = 376; map[ 1438 ] = 0; zones[ 1438 ] = 4; zoneIds[ 1438 ] = 379; map[ 1441 ] = 0; zones[ 1441 ] = 4; zoneIds[ 1441 ] = 382; map[ 1442 ] = 0; zones[ 1442 ] = 51; zoneIds[ 1442 ] = 383; map[ 1443 ] = 0; zones[ 1443 ] = 51; zoneIds[ 1443 ] = 384; map[ 1444 ] = 0; zones[ 1444 ] = 51; zoneIds[ 1444 ] = 385; map[ 1517 ] = 0; zones[ 1517 ] = 3; zoneIds[ 1517 ] = 686; map[ 1537 ] = 0; zones[ 1537 ] = 1537; zoneIds[ 1537 ] = 689; map[ 1579 ] = 0; zones[ 1579 ] = 1579; zoneIds[ 1579 ] = 693; map[ 1581 ] = 36; zones[ 1581 ] = 1581; zoneIds[ 1581 ] = 695; map[ 516 ] = 1; zones[ 516 ] = 15; zoneIds[ 516 ] = 534; map[ 540 ] = 1; zones[ 540 ] = 490; zoneIds[ 540 ] = 541; map[ 54 ] = 0; zones[ 54 ] = 12; zoneIds[ 54 ] = 550; map[ 599 ] = 1; zones[ 599 ] = 405; zoneIds[ 599 ] = 596; map[ 153 ] = 0; zones[ 153 ] = 85; zoneIds[ 153 ] = 607; map[ 295 ] = 0; zones[ 295 ] = 267; zoneIds[ 295 ] = 616; map[ 806 ] = 0; zones[ 806 ] = 1; zoneIds[ 806 ] = 656; map[ 815 ] = 1; zones[ 815 ] = 17; zoneIds[ 815 ] = 665; map[ 837 ] = 0; zones[ 837 ] = 38; zoneIds[ 837 ] = 673; map[ 249 ] = 0; zones[ 249 ] = 46; zoneIds[ 249 ] = 1; map[ 289 ] = 0; zones[ 289 ] = 267; zoneIds[ 289 ] = 33; map[ 323 ] = 0; zones[ 323 ] = 45; zoneIds[ 323 ] = 55; map[ 331 ] = 1; zones[ 331 ] = 331; zoneIds[ 331 ] = 61; map[ 336 ] = 0; zones[ 336 ] = 45; zoneIds[ 336 ] = 66; map[ 977 ] = 1; zones[ 977 ] = 440; zoneIds[ 977 ] = 390; map[ 1036 ] = 0; zones[ 1036 ] = 11; zoneIds[ 1036 ] = 391; map[ 1037 ] = 0; zones[ 1037 ] = 11; zoneIds[ 1037 ] = 392; map[ 1038 ] = 0; zones[ 1038 ] = 11; zoneIds[ 1038 ] = 393; map[ 1039 ] = 0; zones[ 1039 ] = 11; zoneIds[ 1039 ] = 394; map[ 1101 ] = 1; zones[ 1101 ] = 357; zoneIds[ 1101 ] = 396; map[ 1106 ] = 1; zones[ 1106 ] = 357; zoneIds[ 1106 ] = 399; map[ 1107 ] = 1; zones[ 1107 ] = 357; zoneIds[ 1107 ] = 400; map[ 1109 ] = 1; zones[ 1109 ] = 357; zoneIds[ 1109 ] = 401; map[ 1110 ] = 1; zones[ 1110 ] = 357; zoneIds[ 1110 ] = 402; map[ 1111 ] = 1; zones[ 1111 ] = 357; zoneIds[ 1111 ] = 403; map[ 1113 ] = 1; zones[ 1113 ] = 357; zoneIds[ 1113 ] = 405; map[ 1157 ] = 1; zones[ 1157 ] = 17; zoneIds[ 1157 ] = 406; map[ 1518 ] = 0; zones[ 1518 ] = 40; zoneIds[ 1518 ] = 687; map[ 1519 ] = 0; zones[ 1519 ] = 1519; zoneIds[ 1519 ] = 688; map[ 307 ] = 0; zones[ 307 ] = 47; zoneIds[ 307 ] = 46; map[ 77 ] = 0; zones[ 77 ] = 1; zoneIds[ 77 ] = 174; map[ 2102 ] = 0; zones[ 2102 ] = 1; zoneIds[ 2102 ] = 806; map[ 2103 ] = 0; zones[ 2103 ] = 11; zoneIds[ 2103 ] = 807; map[ 2104 ] = 0; zones[ 2104 ] = 11; zoneIds[ 2104 ] = 808; map[ 2157 ] = 1; zones[ 2157 ] = 17; zoneIds[ 2157 ] = 814; map[ 488 ] = 1; zones[ 488 ] = 400; zoneIds[ 488 ] = 512; map[ 810 ] = 0; zones[ 810 ] = 85; zoneIds[ 810 ] = 660; map[ 1118 ] = 1; zones[ 1118 ] = 357; zoneIds[ 1118 ] = 360; map[ 1228 ] = 1; zones[ 1228 ] = 16; zoneIds[ 1228 ] = 423; map[ 2240 ] = 1; zones[ 2240 ] = 400; zoneIds[ 2240 ] = 826; map[ 2243 ] = 1; zones[ 2243 ] = 618; zoneIds[ 2243 ] = 829; map[ 2245 ] = 1; zones[ 2245 ] = 618; zoneIds[ 2245 ] = 831; map[ 2247 ] = 1; zones[ 2247 ] = 618; zoneIds[ 2247 ] = 833; map[ 491 ] = 47; zones[ 491 ] = 491; zoneIds[ 491 ] = 515; map[ 506 ] = 1; zones[ 506 ] = 15; zoneIds[ 506 ] = 525; map[ 1769 ] = 1; zones[ 1769 ] = 361; zoneIds[ 1769 ] = 754; map[ 328 ] = 0; zones[ 328 ] = 45; zoneIds[ 328 ] = 566; map[ 355 ] = 0; zones[ 355 ] = 47; zoneIds[ 355 ] = 592; map[ 1658 ] = 1; zones[ 1658 ] = 1657; zoneIds[ 1658 ] = 713; map[ 1998 ] = 1; zones[ 1998 ] = 361; zoneIds[ 1998 ] = 794; map[ 2249 ] = 1; zones[ 2249 ] = 618; zoneIds[ 2249 ] = 835; map[ 2251 ] = 1; zones[ 2251 ] = 618; zoneIds[ 2251 ] = 837; map[ 2254 ] = 1; zones[ 2254 ] = 618; zoneIds[ 2254 ] = 840; map[ 2260 ] = 0; zones[ 2260 ] = 139; zoneIds[ 2260 ] = 846; map[ 2262 ] = 0; zones[ 2262 ] = 139; zoneIds[ 2262 ] = 848; map[ 2263 ] = 0; zones[ 2263 ] = 139; zoneIds[ 2263 ] = 849; map[ 2264 ] = 0; zones[ 2264 ] = 139; zoneIds[ 2264 ] = 850; map[ 2266 ] = 0; zones[ 2266 ] = 139; zoneIds[ 2266 ] = 852; map[ 2270 ] = 0; zones[ 2270 ] = 139; zoneIds[ 2270 ] = 856; map[ 800 ] = 0; zones[ 800 ] = 1; zoneIds[ 800 ] = 650; map[ 805 ] = 0; zones[ 805 ] = 1; zoneIds[ 805 ] = 655; map[ 807 ] = 0; zones[ 807 ] = 1; zoneIds[ 807 ] = 657; map[ 808 ] = 0; zones[ 808 ] = 1; zoneIds[ 808 ] = 658; map[ 811 ] = 0; zones[ 811 ] = 85; zoneIds[ 811 ] = 661; map[ 812 ] = 0; zones[ 812 ] = 85; zoneIds[ 812 ] = 662; map[ 814 ] = 1; zones[ 814 ] = 14; zoneIds[ 814 ] = 664; map[ 817 ] = 1; zones[ 817 ] = 14; zoneIds[ 817 ] = 667; map[ 819 ] = 1; zones[ 819 ] = 215; zoneIds[ 819 ] = 669; map[ 836 ] = 0; zones[ 836 ] = 11; zoneIds[ 836 ] = 672; map[ 856 ] = 0; zones[ 856 ] = 10; zoneIds[ 856 ] = 674; map[ 876 ] = 1; zones[ 876 ] = 876; zoneIds[ 876 ] = 675; map[ 877 ] = 1; zones[ 877 ] = 17; zoneIds[ 877 ] = 676; map[ 879 ] = 1; zones[ 879 ] = 331; zoneIds[ 879 ] = 678; map[ 917 ] = 0; zones[ 917 ] = 40; zoneIds[ 917 ] = 682; map[ 1858 ] = 0; zones[ 1858 ] = 45; zoneIds[ 1858 ] = 766; map[ 2259 ] = 0; zones[ 2259 ] = 139; zoneIds[ 2259 ] = 845; map[ 2303 ] = 1; zones[ 2303 ] = 400; zoneIds[ 2303 ] = 873; map[ 2319 ] = 1; zones[ 2319 ] = 17; zoneIds[ 2319 ] = 876; map[ 2320 ] = 1; zones[ 2320 ] = 14; zoneIds[ 2320 ] = 877; map[ 2323 ] = 1; zones[ 2323 ] = 357; zoneIds[ 2323 ] = 880; map[ 2326 ] = 1; zones[ 2326 ] = 148; zoneIds[ 2326 ] = 883; map[ 395 ] = 0; zones[ 395 ] = 394; zoneIds[ 395 ] = 116; map[ 2362 ] = 1; zones[ 2362 ] = 493; zoneIds[ 2362 ] = 892; map[ 2364 ] = 0; zones[ 2364 ] = 40; zoneIds[ 2364 ] = 894; map[ 2368 ] = 269; zones[ 2368 ] = 2367; zoneIds[ 2368 ] = 898; map[ 2369 ] = 269; zones[ 2369 ] = 2367; zoneIds[ 2369 ] = 899; map[ 2370 ] = 269; zones[ 2370 ] = 2367; zoneIds[ 2370 ] = 900; map[ 2371 ] = 269; zones[ 2371 ] = 2367; zoneIds[ 2371 ] = 901; map[ 2376 ] = 269; zones[ 2376 ] = 2367; zoneIds[ 2376 ] = 906; map[ 2397 ] = 0; zones[ 2397 ] = 267; zoneIds[ 2397 ] = 910; map[ 2398 ] = 0; zones[ 2398 ] = 130; zoneIds[ 2398 ] = 911; map[ 2399 ] = 0; zones[ 2399 ] = 85; zoneIds[ 2399 ] = 912; map[ 2402 ] = 0; zones[ 2402 ] = 11; zoneIds[ 2402 ] = 915; map[ 2403 ] = 0; zones[ 2403 ] = 8; zoneIds[ 2403 ] = 916; map[ 2408 ] = 1; zones[ 2408 ] = 405; zoneIds[ 2408 ] = 921; map[ 2417 ] = 0; zones[ 2417 ] = 46; zoneIds[ 2417 ] = 922; map[ 2421 ] = 0; zones[ 2421 ] = 46; zoneIds[ 2421 ] = 926; map[ 2437 ] = 389; zones[ 2437 ] = 2437; zoneIds[ 2437 ] = 927; map[ 2457 ] = 1; zones[ 2457 ] = 331; zoneIds[ 2457 ] = 928; map[ 2497 ] = 1; zones[ 2497 ] = 16; zoneIds[ 2497 ] = 934; map[ 2517 ] = 0; zones[ 2517 ] = 4; zoneIds[ 2517 ] = 935; map[ 2519 ] = 1; zones[ 2519 ] = 357; zoneIds[ 2519 ] = 937; map[ 2520 ] = 1; zones[ 2520 ] = 357; zoneIds[ 2520 ] = 938; map[ 2538 ] = 1; zones[ 2538 ] = 406; zoneIds[ 2538 ] = 942; map[ 2539 ] = 1; zones[ 2539 ] = 406; zoneIds[ 2539 ] = 943; map[ 2541 ] = 1; zones[ 2541 ] = 406; zoneIds[ 2541 ] = 945; map[ 2557 ] = 429; zones[ 2557 ] = 2557; zoneIds[ 2557 ] = 946; map[ 2559 ] = 0; zones[ 2559 ] = 41; zoneIds[ 2559 ] = 948; map[ 2562 ] = 0; zones[ 2562 ] = 41; zoneIds[ 2562 ] = 951; map[ 2563 ] = 0; zones[ 2563 ] = 41; zoneIds[ 2563 ] = 952; map[ 2617 ] = 1; zones[ 2617 ] = 405; zoneIds[ 2617 ] = 955; map[ 2620 ] = 0; zones[ 2620 ] = 28; zoneIds[ 2620 ] = 958; map[ 2621 ] = 0; zones[ 2621 ] = 139; zoneIds[ 2621 ] = 959; map[ 2623 ] = 0; zones[ 2623 ] = 139; zoneIds[ 2623 ] = 961; map[ 2624 ] = 0; zones[ 2624 ] = 139; zoneIds[ 2624 ] = 962; map[ 2625 ] = 0; zones[ 2625 ] = 139; zoneIds[ 2625 ] = 963; map[ 2637 ] = 1; zones[ 2637 ] = 331; zoneIds[ 2637 ] = 966; map[ 1497 ] = 0; zones[ 1497 ] = 1497; zoneIds[ 1497 ] = 685; map[ 1577 ] = 0; zones[ 1577 ] = 33; zoneIds[ 1577 ] = 691; map[ 2697 ] = 0; zones[ 2697 ] = 41; zoneIds[ 2697 ] = 969; map[ 2717 ] = 409; zones[ 2717 ] = 2717; zoneIds[ 2717 ] = 970; map[ 2738 ] = 1; zones[ 2738 ] = 1377; zoneIds[ 2738 ] = 972; map[ 2742 ] = 1; zones[ 2742 ] = 1377; zoneIds[ 2742 ] = 976; map[ 2744 ] = 1; zones[ 2744 ] = 1377; zoneIds[ 2744 ] = 978; map[ 1957 ] = 0; zones[ 1957 ] = 51; zoneIds[ 1957 ] = 788; map[ 2119 ] = 0; zones[ 2119 ] = 85; zoneIds[ 2119 ] = 811; map[ 2757 ] = 1; zones[ 2757 ] = 17; zoneIds[ 2757 ] = 979; map[ 1882 ] = 0; zones[ 1882 ] = 47; zoneIds[ 1882 ] = 772; map[ 2099 ] = 0; zones[ 2099 ] = 44; zoneIds[ 2099 ] = 803; map[ 1938 ] = 1; zones[ 1938 ] = 440; zoneIds[ 1938 ] = 782; map[ 2777 ] = 0; zones[ 2777 ] = 267; zoneIds[ 2777 ] = 980; map[ 2817 ] = 30; zones[ 2817 ] = 2817; zoneIds[ 2817 ] = 0; map[ 2137 ] = 1; zones[ 2137 ] = 215; zoneIds[ 2137 ] = 812; map[ 1597 ] = 1; zones[ 1597 ] = 17; zoneIds[ 1597 ] = 699; map[ 1599 ] = 1; zones[ 1599 ] = 17; zoneIds[ 1599 ] = 701; map[ 1600 ] = 1; zones[ 1600 ] = 17; zoneIds[ 1600 ] = 702; map[ 1601 ] = 1; zones[ 1601 ] = 17; zoneIds[ 1601 ] = 703; map[ 1602 ] = 1; zones[ 1602 ] = 17; zoneIds[ 1602 ] = 704; map[ 1641 ] = 1; zones[ 1641 ] = 1638; zoneIds[ 1641 ] = 711; map[ 1657 ] = 1; zones[ 1657 ] = 1657; zoneIds[ 1657 ] = 712; map[ 700 ] = 1; zones[ 700 ] = 141; zoneIds[ 700 ] = 302; map[ 1660 ] = 1; zones[ 1660 ] = 1657; zoneIds[ 1660 ] = 715; map[ 1661 ] = 1; zones[ 1661 ] = 1657; zoneIds[ 1661 ] = 716; map[ 1662 ] = 1; zones[ 1662 ] = 1657; zoneIds[ 1662 ] = 717; map[ 1680 ] = 0; zones[ 1680 ] = 36; zoneIds[ 1680 ] = 721; map[ 1681 ] = 0; zones[ 1681 ] = 36; zoneIds[ 1681 ] = 722; map[ 187 ] = 1; zones[ 187 ] = 141; zoneIds[ 187 ] = 248; map[ 984 ] = 1; zones[ 984 ] = 440; zoneIds[ 984 ] = 327; map[ 1717 ] = 1; zones[ 1717 ] = 17; zoneIds[ 1717 ] = 734; map[ 1740 ] = 0; zones[ 1740 ] = 33; zoneIds[ 1740 ] = 739; map[ 1883 ] = 0; zones[ 1883 ] = 47; zoneIds[ 1883 ] = 773; map[ 1885 ] = 0; zones[ 1885 ] = 47; zoneIds[ 1885 ] = 775; map[ 1897 ] = 0; zones[ 1897 ] = 3; zoneIds[ 1897 ] = 778; map[ 1917 ] = 0; zones[ 1917 ] = 47; zoneIds[ 1917 ] = 780; map[ 1959 ] = 0; zones[ 1959 ] = 51; zoneIds[ 1959 ] = 790; map[ 2078 ] = 1; zones[ 2078 ] = 148; zoneIds[ 2078 ] = 799; map[ 2079 ] = 1; zones[ 2079 ] = 15; zoneIds[ 2079 ] = 800; map[ 2117 ] = 0; zones[ 2117 ] = 85; zoneIds[ 2117 ] = 809; map[ 2160 ] = 1; zones[ 2160 ] = 406; zoneIds[ 2160 ] = 817; map[ 2339 ] = 0; zones[ 2339 ] = 33; zoneIds[ 2339 ] = 886; map[ 2358 ] = 1; zones[ 2358 ] = 331; zoneIds[ 2358 ] = 888; map[ 2359 ] = 1; zones[ 2359 ] = 331; zoneIds[ 2359 ] = 889; map[ 2375 ] = 269; zones[ 2375 ] = 2367; zoneIds[ 2375 ] = 905; map[ 1617 ] = 0; zones[ 1617 ] = 1519; zoneIds[ 1617 ] = 706; map[ 1637 ] = 1; zones[ 1637 ] = 1637; zoneIds[ 1637 ] = 707; map[ 1638 ] = 1; zones[ 1638 ] = 1638; zoneIds[ 1638 ] = 708; map[ 1640 ] = 1; zones[ 1640 ] = 1638; zoneIds[ 1640 ] = 710; map[ 280 ] = 0; zones[ 280 ] = 36; zoneIds[ 280 ] = 24; map[ 111 ] = 0; zones[ 111 ] = 40; zoneIds[ 111 ] = 198; map[ 167 ] = 0; zones[ 167 ] = 85; zoneIds[ 167 ] = 244; map[ 1002 ] = 0; zones[ 1002 ] = 44; zoneIds[ 1002 ] = 337; map[ 411 ] = 1; zones[ 411 ] = 331; zoneIds[ 411 ] = 451; map[ 431 ] = 1; zones[ 431 ] = 331; zoneIds[ 431 ] = 553; map[ 100 ] = 0; zones[ 100 ] = 33; zoneIds[ 100 ] = 585; map[ 296 ] = 0; zones[ 296 ] = 296; zoneIds[ 296 ] = 37; map[ 408 ] = 0; zones[ 408 ] = 408; zoneIds[ 408 ] = 448; map[ 1757 ] = 0; zones[ 1757 ] = 33; zoneIds[ 1757 ] = 742; map[ 1758 ] = 0; zones[ 1758 ] = 33; zoneIds[ 1758 ] = 743; map[ 1761 ] = 1; zones[ 1761 ] = 361; zoneIds[ 1761 ] = 746; map[ 1762 ] = 1; zones[ 1762 ] = 361; zoneIds[ 1762 ] = 747; map[ 1766 ] = 1; zones[ 1766 ] = 361; zoneIds[ 1766 ] = 751; map[ 1767 ] = 1; zones[ 1767 ] = 361; zoneIds[ 1767 ] = 752; map[ 1770 ] = 1; zones[ 1770 ] = 361; zoneIds[ 1770 ] = 755; map[ 1779 ] = 0; zones[ 1779 ] = 8; zoneIds[ 1779 ] = 759; map[ 1220 ] = 1; zones[ 1220 ] = 16; zoneIds[ 1220 ] = 415; map[ 1230 ] = 1; zones[ 1230 ] = 16; zoneIds[ 1230 ] = 425; map[ 1887 ] = 0; zones[ 1887 ] = 47; zoneIds[ 1887 ] = 777; map[ 1937 ] = 1; zones[ 1937 ] = 440; zoneIds[ 1937 ] = 781; map[ 701 ] = 1; zones[ 701 ] = 141; zoneIds[ 701 ] = 303; map[ 1683 ] = 0; zones[ 1683 ] = 36; zoneIds[ 1683 ] = 724; map[ 1697 ] = 1; zones[ 1697 ] = 17; zoneIds[ 1697 ] = 726; map[ 1698 ] = 1; zones[ 1698 ] = 17; zoneIds[ 1698 ] = 727; map[ 1699 ] = 1; zones[ 1699 ] = 17; zoneIds[ 1699 ] = 728; map[ 1700 ] = 1; zones[ 1700 ] = 17; zoneIds[ 1700 ] = 729; map[ 1702 ] = 1; zones[ 1702 ] = 17; zoneIds[ 1702 ] = 731; map[ 1739 ] = 0; zones[ 1739 ] = 33; zoneIds[ 1739 ] = 738; map[ 1741 ] = 0; zones[ 1741 ] = 33; zoneIds[ 1741 ] = 740; map[ 1759 ] = 0; zones[ 1759 ] = 33; zoneIds[ 1759 ] = 744; map[ 1777 ] = 0; zones[ 1777 ] = 8; zoneIds[ 1777 ] = 757; map[ 1797 ] = 0; zones[ 1797 ] = 8; zoneIds[ 1797 ] = 761; map[ 990 ] = 1; zones[ 990 ] = 440; zoneIds[ 990 ] = 333; map[ 1021 ] = 0; zones[ 1021 ] = 11; zoneIds[ 1021 ] = 343; map[ 1097 ] = 0; zones[ 1097 ] = 10; zoneIds[ 1097 ] = 351; map[ 1136 ] = 1; zones[ 1136 ] = 357; zoneIds[ 1136 ] = 361; map[ 1417 ] = 109; zones[ 1417 ] = 1417; zoneIds[ 1417 ] = 377; map[ 918 ] = 0; zones[ 918 ] = 40; zoneIds[ 918 ] = 683; map[ 976 ] = 1; zones[ 976 ] = 440; zoneIds[ 976 ] = 320; map[ 475 ] = 1; zones[ 475 ] = 215; zoneIds[ 475 ] = 500; map[ 1886 ] = 0; zones[ 1886 ] = 47; zoneIds[ 1886 ] = 776; map[ 1941 ] = 1; zones[ 1941 ] = 1941; zoneIds[ 1941 ] = 785; map[ 676 ] = 150; zones[ 676 ] = 676; zoneIds[ 676 ] = 297; map[ 696 ] = 1; zones[ 696 ] = 141; zoneIds[ 696 ] = 298; map[ 466 ] = 1; zones[ 466 ] = 406; zoneIds[ 466 ] = 493; map[ 381 ] = 1; zones[ 381 ] = 17; zoneIds[ 381 ] = 105; map[ 333 ] = 0; zones[ 333 ] = 45; zoneIds[ 333 ] = 63; map[ 923 ] = 0; zones[ 923 ] = 38; zoneIds[ 923 ] = 312; map[ 991 ] = 1; zones[ 991 ] = 440; zoneIds[ 991 ] = 334; map[ 1056 ] = 0; zones[ 1056 ] = 267; zoneIds[ 1056 ] = 348; map[ 1108 ] = 1; zones[ 1108 ] = 357; zoneIds[ 1108 ] = 355; map[ 896 ] = 0; zones[ 896 ] = 267; zoneIds[ 896 ] = 308; map[ 986 ] = 1; zones[ 986 ] = 440; zoneIds[ 986 ] = 329; map[ 1437 ] = 0; zones[ 1437 ] = 4; zoneIds[ 1437 ] = 378; map[ 1103 ] = 1; zones[ 1103 ] = 357; zoneIds[ 1103 ] = 397; map[ 396 ] = 1; zones[ 396 ] = 215; zoneIds[ 396 ] = 117; map[ 7 ] = 0; zones[ 7 ] = 33; zoneIds[ 7 ] = 123; map[ 2017 ] = 329; zones[ 2017 ] = 2017; zoneIds[ 2017 ] = 795; map[ 2037 ] = 0; zones[ 2037 ] = 2037; zoneIds[ 2037 ] = 796; map[ 305 ] = 0; zones[ 305 ] = 130; zoneIds[ 305 ] = 44; map[ 2077 ] = 1; zones[ 2077 ] = 148; zoneIds[ 2077 ] = 798; map[ 2101 ] = 0; zones[ 2101 ] = 38; zoneIds[ 2101 ] = 805; map[ 134 ] = 0; zones[ 134 ] = 1; zoneIds[ 134 ] = 214; map[ 1225 ] = 1; zones[ 1225 ] = 16; zoneIds[ 1225 ] = 420; map[ 3417 ] = 529; zones[ 3417 ] = 3358; zoneIds[ 3417 ] = 1055; map[ 2857 ] = 1; zones[ 2857 ] = 440; zoneIds[ 2857 ] = 985; map[ 2374 ] = 269; zones[ 2374 ] = 2367; zoneIds[ 2374 ] = 904; map[ 2979 ] = 1; zones[ 2979 ] = 14; zoneIds[ 2979 ] = 1002; map[ 146 ] = 0; zones[ 146 ] = 38; zoneIds[ 146 ] = 225; map[ 159 ] = 0; zones[ 159 ] = 85; zoneIds[ 159 ] = 236; map[ 3418 ] = 529; zones[ 3418 ] = 3358; zoneIds[ 3418 ] = 1056; map[ 197 ] = 0; zones[ 197 ] = 28; zoneIds[ 197 ] = 254; map[ 205 ] = 0; zones[ 205 ] = 11; zoneIds[ 205 ] = 262; map[ 212 ] = 0; zones[ 212 ] = 1; zoneIds[ 212 ] = 269; map[ 225 ] = 1; zones[ 225 ] = 215; zoneIds[ 225 ] = 278; map[ 237 ] = 0; zones[ 237 ] = 130; zoneIds[ 237 ] = 287; map[ 3419 ] = 309; zones[ 3419 ] = 1977; zoneIds[ 3419 ] = 1057; map[ 1016 ] = 0; zones[ 1016 ] = 11; zoneIds[ 1016 ] = 338; map[ 1025 ] = 0; zones[ 1025 ] = 11; zoneIds[ 1025 ] = 347; map[ 1116 ] = 1; zones[ 1116 ] = 357; zoneIds[ 1116 ] = 358; map[ 1076 ] = 1; zones[ 1076 ] = 406; zoneIds[ 1076 ] = 368; map[ 1583 ] = 0; zones[ 1583 ] = 1583; zoneIds[ 1583 ] = 697; map[ 277 ] = 0; zones[ 277 ] = 36; zoneIds[ 277 ] = 21; map[ 1222 ] = 1; zones[ 1222 ] = 16; zoneIds[ 1222 ] = 417; map[ 1234 ] = 1; zones[ 1234 ] = 16; zoneIds[ 1234 ] = 429; map[ 1316 ] = 1; zones[ 1316 ] = 17; zoneIds[ 1316 ] = 436; map[ 424 ] = 1; zones[ 424 ] = 331; zoneIds[ 424 ] = 462; map[ 409 ] = 0; zones[ 409 ] = 409; zoneIds[ 409 ] = 449; map[ 600 ] = 1; zones[ 600 ] = 405; zoneIds[ 600 ] = 597; map[ 987 ] = 1; zones[ 987 ] = 440; zoneIds[ 987 ] = 330; map[ 1580 ] = 36; zones[ 1580 ] = 1579; zoneIds[ 1580 ] = 694; map[ 1677 ] = 0; zones[ 1677 ] = 36; zoneIds[ 1677 ] = 718; map[ 1742 ] = 0; zones[ 1742 ] = 33; zoneIds[ 1742 ] = 741; map[ 1881 ] = 0; zones[ 1881 ] = 47; zoneIds[ 1881 ] = 771; map[ 2420 ] = 0; zones[ 2420 ] = 46; zoneIds[ 2420 ] = 925; map[ 2518 ] = 1; zones[ 2518 ] = 357; zoneIds[ 2518 ] = 936; map[ 448 ] = 1; zones[ 448 ] = 148; zoneIds[ 448 ] = 480; map[ 464 ] = 1; zones[ 464 ] = 406; zoneIds[ 464 ] = 491; map[ 477 ] = 0; zones[ 477 ] = 33; zoneIds[ 477 ] = 502; map[ 489 ] = 1; zones[ 489 ] = 357; zoneIds[ 489 ] = 513; map[ 497 ] = 1; zones[ 497 ] = 15; zoneIds[ 497 ] = 520; map[ 536 ] = 0; zones[ 536 ] = 10; zoneIds[ 536 ] = 537; map[ 92 ] = 0; zones[ 92 ] = 12; zoneIds[ 92 ] = 558; map[ 371 ] = 1; zones[ 371 ] = 14; zoneIds[ 371 ] = 567; map[ 19 ] = 0; zones[ 19 ] = 33; zoneIds[ 19 ] = 574; map[ 596 ] = 1; zones[ 596 ] = 405; zoneIds[ 596 ] = 593; map[ 607 ] = 1; zones[ 607 ] = 405; zoneIds[ 607 ] = 604; map[ 501 ] = 1; zones[ 501 ] = 15; zoneIds[ 501 ] = 614; map[ 500 ] = 1; zones[ 500 ] = 15; zoneIds[ 500 ] = 623; map[ 254 ] = 0; zones[ 254 ] = 46; zoneIds[ 254 ] = 630; map[ 718 ] = 43; zones[ 718 ] = 718; zoneIds[ 718 ] = 641; map[ 799 ] = 0; zones[ 799 ] = 10; zoneIds[ 799 ] = 649; map[ 809 ] = 0; zones[ 809 ] = 1; zoneIds[ 809 ] = 659; map[ 919 ] = 0; zones[ 919 ] = 40; zoneIds[ 919 ] = 684; map[ 2302 ] = 1; zones[ 2302 ] = 15; zoneIds[ 2302 ] = 872; map[ 2324 ] = 1; zones[ 2324 ] = 405; zoneIds[ 2324 ] = 881; map[ 2366 ] = 269; zones[ 2366 ] = 2366; zoneIds[ 2366 ] = 896; map[ 2373 ] = 269; zones[ 2373 ] = 2367; zoneIds[ 2373 ] = 903; map[ 2401 ] = 0; zones[ 2401 ] = 45; zoneIds[ 2401 ] = 914; map[ 1768 ] = 1; zones[ 1768 ] = 361; zoneIds[ 1768 ] = 753; map[ 2743 ] = 1; zones[ 2743 ] = 1377; zoneIds[ 2743 ] = 977; map[ 2797 ] = 1; zones[ 2797 ] = 331; zoneIds[ 2797 ] = 981; map[ 1598 ] = 1; zones[ 1598 ] = 17; zoneIds[ 1598 ] = 700; map[ 1659 ] = 1; zones[ 1659 ] = 1657; zoneIds[ 1659 ] = 714; map[ 1684 ] = 0; zones[ 1684 ] = 36; zoneIds[ 1684 ] = 725; map[ 1837 ] = 0; zones[ 1837 ] = 45; zoneIds[ 1837 ] = 764; map[ 1958 ] = 0; zones[ 1958 ] = 51; zoneIds[ 1958 ] = 789; map[ 2161 ] = 0; zones[ 2161 ] = 10; zoneIds[ 2161 ] = 818; map[ 67 ] = 17; zones[ 67 ] = 67; zoneIds[ 67 ] = 166; map[ 880 ] = 0; zones[ 880 ] = 45; zoneIds[ 880 ] = 679; map[ 1763 ] = 1; zones[ 1763 ] = 361; zoneIds[ 1763 ] = 748; map[ 1019 ] = 0; zones[ 1019 ] = 139; zoneIds[ 1019 ] = 341; map[ 1939 ] = 1; zones[ 1939 ] = 440; zoneIds[ 1939 ] = 783; map[ 981 ] = 1; zones[ 981 ] = 440; zoneIds[ 981 ] = 324; map[ 1276 ] = 1; zones[ 1276 ] = 331; zoneIds[ 1276 ] = 434; map[ 1943 ] = 1; zones[ 1943 ] = 490; zoneIds[ 1943 ] = 787; map[ 365 ] = 1; zones[ 365 ] = 14; zoneIds[ 365 ] = 91; map[ 1678 ] = 0; zones[ 1678 ] = 36; zoneIds[ 1678 ] = 719; map[ 608 ] = 1; zones[ 608 ] = 405; zoneIds[ 608 ] = 605; map[ 1978 ] = 0; zones[ 1978 ] = 8; zoneIds[ 1978 ] = 792; map[ 2097 ] = 1; zones[ 2097 ] = 400; zoneIds[ 2097 ] = 801; map[ 2138 ] = 1; zones[ 2138 ] = 17; zoneIds[ 2138 ] = 813; map[ 2237 ] = 1; zones[ 2237 ] = 400; zoneIds[ 2237 ] = 823; map[ 2246 ] = 1; zones[ 2246 ] = 618; zoneIds[ 2246 ] = 832; map[ 515 ] = 1; zones[ 515 ] = 15; zoneIds[ 515 ] = 533; map[ 271 ] = 0; zones[ 271 ] = 267; zoneIds[ 271 ] = 615; map[ 1771 ] = 1; zones[ 1771 ] = 361; zoneIds[ 1771 ] = 756; map[ 2257 ] = 369; zones[ 2257 ] = 2257; zoneIds[ 2257 ] = 843; map[ 2269 ] = 0; zones[ 2269 ] = 139; zoneIds[ 2269 ] = 855; map[ 2275 ] = 0; zones[ 2275 ] = 139; zoneIds[ 2275 ] = 861; map[ 2301 ] = 1; zones[ 2301 ] = 331; zoneIds[ 2301 ] = 871; map[ 455 ] = 1; zones[ 455 ] = 148; zoneIds[ 455 ] = 485; map[ 278 ] = 0; zones[ 278 ] = 36; zoneIds[ 278 ] = 22; map[ 344 ] = 0; zones[ 344 ] = 3; zoneIds[ 344 ] = 72; map[ 373 ] = 1; zones[ 373 ] = 14; zoneIds[ 373 ] = 98; map[ 14 ] = 1; zones[ 14 ] = 14; zoneIds[ 14 ] = 127; map[ 44 ] = 0; zones[ 44 ] = 44; zoneIds[ 44 ] = 149; map[ 141 ] = 1; zones[ 141 ] = 141; zoneIds[ 141 ] = 220; map[ 164 ] = 0; zones[ 164 ] = 85; zoneIds[ 164 ] = 241; map[ 921 ] = 0; zones[ 921 ] = 40; zoneIds[ 921 ] = 310; map[ 1024 ] = 0; zones[ 1024 ] = 11; zoneIds[ 1024 ] = 346; map[ 1440 ] = 0; zones[ 1440 ] = 4; zoneIds[ 1440 ] = 381; map[ 881 ] = 0; zones[ 881 ] = 11; zoneIds[ 881 ] = 680; map[ 1121 ] = 1; zones[ 1121 ] = 357; zoneIds[ 1121 ] = 414; map[ 236 ] = 0; zones[ 236 ] = 130; zoneIds[ 236 ] = 286; map[ 428 ] = 1; zones[ 428 ] = 331; zoneIds[ 428 ] = 569; map[ 602 ] = 1; zones[ 602 ] = 405; zoneIds[ 602 ] = 599; map[ 2378 ] = 269; zones[ 2378 ] = 2367; zoneIds[ 2378 ] = 908; map[ 2537 ] = 1; zones[ 2537 ] = 406; zoneIds[ 2537 ] = 941; map[ 2577 ] = 1; zones[ 2577 ] = 357; zoneIds[ 2577 ] = 953; map[ 1114 ] = 1; zones[ 1114 ] = 357; zoneIds[ 1114 ] = 356; map[ 2057 ] = 289; zones[ 2057 ] = 2057; zoneIds[ 2057 ] = 797; map[ 2248 ] = 1; zones[ 2248 ] = 618; zoneIds[ 2248 ] = 834; map[ 2256 ] = 1; zones[ 2256 ] = 618; zoneIds[ 2256 ] = 842; map[ 2521 ] = 1; zones[ 2521 ] = 357; zoneIds[ 2521 ] = 939; map[ 2267 ] = 0; zones[ 2267 ] = 139; zoneIds[ 2267 ] = 853; map[ 2677 ] = 469; zones[ 2677 ] = 2677; zoneIds[ 2677 ] = 968; map[ 818 ] = 1; zones[ 818 ] = 215; zoneIds[ 818 ] = 668; map[ 2978 ] = 30; zones[ 2978 ] = 2597; zoneIds[ 2978 ] = 1001; map[ 2958 ] = 30; zones[ 2958 ] = 2597; zoneIds[ 2958 ] = 993; map[ 2938 ] = 0; zones[ 2938 ] = 41; zoneIds[ 2938 ] = 991; map[ 3017 ] = 30; zones[ 3017 ] = 2597; zoneIds[ 3017 ] = 1003; map[ 3037 ] = 1; zones[ 3037 ] = 400; zoneIds[ 3037 ] = 1004; map[ 3038 ] = 1; zones[ 3038 ] = 400; zoneIds[ 3038 ] = 1005; map[ 3039 ] = 1; zones[ 3039 ] = 400; zoneIds[ 3039 ] = 1006; map[ 3058 ] = 30; zones[ 3058 ] = 2597; zoneIds[ 3058 ] = 1008; map[ 3097 ] = 1; zones[ 3097 ] = 1377; zoneIds[ 3097 ] = 1010; map[ 3098 ] = 1; zones[ 3098 ] = 1377; zoneIds[ 3098 ] = 1011; map[ 3099 ] = 1; zones[ 3099 ] = 1377; zoneIds[ 3099 ] = 1012; map[ 3100 ] = 1; zones[ 3100 ] = 1377; zoneIds[ 3100 ] = 1013; map[ 3117 ] = 1; zones[ 3117 ] = 357; zoneIds[ 3117 ] = 1014; map[ 2407 ] = 1; zones[ 2407 ] = 405; zoneIds[ 2407 ] = 920; map[ 2300 ] = 1; zones[ 2300 ] = 440; zoneIds[ 2300 ] = 870; map[ 2367 ] = 269; zones[ 2367 ] = 2367; zoneIds[ 2367 ] = 897; map[ 2242 ] = 1; zones[ 2242 ] = 618; zoneIds[ 2242 ] = 828; map[ 2478 ] = 1; zones[ 2478 ] = 361; zoneIds[ 2478 ] = 930; map[ 2252 ] = 1; zones[ 2252 ] = 618; zoneIds[ 2252 ] = 838; map[ 2839 ] = 0; zones[ 2839 ] = 36; zoneIds[ 2839 ] = 984; map[ 2961 ] = 30; zones[ 2961 ] = 2597; zoneIds[ 2961 ] = 996; map[ 272 ] = 0; zones[ 272 ] = 267; zoneIds[ 272 ] = 19; map[ 358 ] = 1; zones[ 358 ] = 215; zoneIds[ 358 ] = 84; map[ 59 ] = 0; zones[ 59 ] = 12; zoneIds[ 59 ] = 159; map[ 166 ] = 0; zones[ 166 ] = 85; zoneIds[ 166 ] = 243; map[ 926 ] = 0; zones[ 926 ] = 130; zoneIds[ 926 ] = 315; map[ 2272 ] = 0; zones[ 2272 ] = 139; zoneIds[ 2272 ] = 858; map[ 2273 ] = 0; zones[ 2273 ] = 139; zoneIds[ 2273 ] = 859; map[ 2274 ] = 0; zones[ 2274 ] = 139; zoneIds[ 2274 ] = 860; map[ 2277 ] = 0; zones[ 2277 ] = 139; zoneIds[ 2277 ] = 863; map[ 2278 ] = 0; zones[ 2278 ] = 139; zoneIds[ 2278 ] = 864; map[ 2280 ] = 0; zones[ 2280 ] = 2280; zoneIds[ 2280 ] = 866; map[ 2298 ] = 0; zones[ 2298 ] = 28; zoneIds[ 2298 ] = 868; map[ 2299 ] = 0; zones[ 2299 ] = 139; zoneIds[ 2299 ] = 869; map[ 3137 ] = 1; zones[ 3137 ] = 16; zoneIds[ 3137 ] = 1015; map[ 3138 ] = 1; zones[ 3138 ] = 16; zoneIds[ 3138 ] = 1016; map[ 3140 ] = 1; zones[ 3140 ] = 16; zoneIds[ 3140 ] = 1018; map[ 3177 ] = 1; zones[ 3177 ] = 331; zoneIds[ 3177 ] = 1020; map[ 1582 ] = 36; zones[ 1582 ] = 1581; zoneIds[ 1582 ] = 696; map[ 3197 ] = 0; zones[ 3197 ] = 28; zoneIds[ 3197 ] = 1021; map[ 1704 ] = 1; zones[ 1704 ] = 17; zoneIds[ 1704 ] = 733; map[ 2238 ] = 1; zones[ 2238 ] = 400; zoneIds[ 2238 ] = 824; map[ 2404 ] = 1; zones[ 2404 ] = 405; zoneIds[ 2404 ] = 917; map[ 2837 ] = 1; zones[ 2837 ] = 41; zoneIds[ 2837 ] = 982; map[ 2937 ] = 0; zones[ 2937 ] = 41; zoneIds[ 2937 ] = 990; map[ 3217 ] = 1; zones[ 3217 ] = 2557; zoneIds[ 3217 ] = 1022; map[ 1339 ] = 0; zones[ 1339 ] = 36; zoneIds[ 1339 ] = 439; map[ 264 ] = 1; zones[ 264 ] = 141; zoneIds[ 264 ] = 14; map[ 362 ] = 1; zones[ 362 ] = 14; zoneIds[ 362 ] = 88; map[ 122 ] = 0; zones[ 122 ] = 33; zoneIds[ 122 ] = 203; map[ 657 ] = 0; zones[ 657 ] = 8; zoneIds[ 657 ] = 296; map[ 1446 ] = 0; zones[ 1446 ] = 51; zoneIds[ 1446 ] = 387; map[ 130 ] = 0; zones[ 130 ] = 130; zoneIds[ 130 ] = 210; map[ 445 ] = 1; zones[ 445 ] = 148; zoneIds[ 445 ] = 477; map[ 576 ] = 0; zones[ 576 ] = 10; zoneIds[ 576 ] = 546; map[ 250 ] = 0; zones[ 250 ] = 46; zoneIds[ 250 ] = 579; map[ 2737 ] = 1; zones[ 2737 ] = 1377; zoneIds[ 2737 ] = 971; map[ 2338 ] = 0; zones[ 2338 ] = 33; zoneIds[ 2338 ] = 885; map[ 1357 ] = 0; zones[ 1357 ] = 36; zoneIds[ 1357 ] = 440; map[ 2118 ] = 0; zones[ 2118 ] = 85; zoneIds[ 2118 ] = 810; map[ 2177 ] = 0; zones[ 2177 ] = 33; zoneIds[ 2177 ] = 819; map[ 2255 ] = 1; zones[ 2255 ] = 618; zoneIds[ 2255 ] = 841; map[ 2897 ] = 1; zones[ 2897 ] = 331; zoneIds[ 2897 ] = 987; map[ 2917 ] = 1; zones[ 2917 ] = 2917; zoneIds[ 2917 ] = 988; map[ 2977 ] = 30; zones[ 2977 ] = 2597; zoneIds[ 2977 ] = 1000; map[ 12 ] = 0; zones[ 12 ] = 12; zoneIds[ 12 ] = 126; map[ 2321 ] = 1; zones[ 2321 ] = 16; zoneIds[ 2321 ] = 878; map[ 2361 ] = 1; zones[ 2361 ] = 493; zoneIds[ 2361 ] = 891; map[ 2400 ] = 0; zones[ 2400 ] = 47; zoneIds[ 2400 ] = 913; map[ 2418 ] = 0; zones[ 2418 ] = 46; zoneIds[ 2418 ] = 923; map[ 2480 ] = 1; zones[ 2480 ] = 361; zoneIds[ 2480 ] = 932; map[ 2522 ] = 1; zones[ 2522 ] = 357; zoneIds[ 2522 ] = 940; map[ 2657 ] = 1; zones[ 2657 ] = 405; zoneIds[ 2657 ] = 967; map[ 2740 ] = 1; zones[ 2740 ] = 1377; zoneIds[ 2740 ] = 974; map[ 2322 ] = 1; zones[ 2322 ] = 141; zoneIds[ 2322 ] = 879; map[ 1765 ] = 1; zones[ 1765 ] = 361; zoneIds[ 1765 ] = 750; map[ 2261 ] = 0; zones[ 2261 ] = 139; zoneIds[ 2261 ] = 847; map[ 2279 ] = 0; zones[ 2279 ] = 139; zoneIds[ 2279 ] = 865; map[ 2318 ] = 1; zones[ 2318 ] = 15; zoneIds[ 2318 ] = 875; map[ 2363 ] = 1; zones[ 2363 ] = 493; zoneIds[ 2363 ] = 893; map[ 2377 ] = 269; zones[ 2377 ] = 2367; zoneIds[ 2377 ] = 907; map[ 2406 ] = 1; zones[ 2406 ] = 405; zoneIds[ 2406 ] = 919; map[ 2558 ] = 0; zones[ 2558 ] = 41; zoneIds[ 2558 ] = 947; map[ 2618 ] = 1; zones[ 2618 ] = 361; zoneIds[ 2618 ] = 956; map[ 2739 ] = 1; zones[ 2739 ] = 1377; zoneIds[ 2739 ] = 973; map[ 2337 ] = 1; zones[ 2337 ] = 14; zoneIds[ 2337 ] = 884; map[ 2239 ] = 1; zones[ 2239 ] = 400; zoneIds[ 2239 ] = 825; map[ 2265 ] = 0; zones[ 2265 ] = 139; zoneIds[ 2265 ] = 851; map[ 2838 ] = 0; zones[ 2838 ] = 51; zoneIds[ 2838 ] = 983; map[ 2253 ] = 1; zones[ 2253 ] = 618; zoneIds[ 2253 ] = 839; map[ 2877 ] = 451; zones[ 2877 ] = 22; zoneIds[ 2877 ] = 986; map[ 418 ] = 1; zones[ 418 ] = 331; zoneIds[ 418 ] = 457; map[ 2957 ] = 30; zones[ 2957 ] = 2597; zoneIds[ 2957 ] = 992; map[ 2959 ] = 30; zones[ 2959 ] = 2597; zoneIds[ 2959 ] = 994; map[ 2960 ] = 30; zones[ 2960 ] = 2597; zoneIds[ 2960 ] = 995; map[ 2962 ] = 30; zones[ 2962 ] = 2597; zoneIds[ 2962 ] = 997; map[ 2963 ] = 30; zones[ 2963 ] = 2597; zoneIds[ 2963 ] = 998; map[ 2964 ] = 30; zones[ 2964 ] = 2597; zoneIds[ 2964 ] = 999; map[ 2276 ] = 0; zones[ 2276 ] = 139; zoneIds[ 2276 ] = 862; map[ 253 ] = 0; zones[ 253 ] = 46; zoneIds[ 253 ] = 4; map[ 263 ] = 1; zones[ 263 ] = 141; zoneIds[ 263 ] = 13; map[ 284 ] = 0; zones[ 284 ] = 36; zoneIds[ 284 ] = 28; map[ 293 ] = 0; zones[ 293 ] = 293; zoneIds[ 293 ] = 35; map[ 309 ] = 0; zones[ 309 ] = 11; zoneIds[ 309 ] = 47; map[ 377 ] = 1; zones[ 377 ] = 377; zoneIds[ 377 ] = 101; map[ 390 ] = 1; zones[ 390 ] = 17; zoneIds[ 390 ] = 111; map[ 9 ] = 0; zones[ 9 ] = 12; zoneIds[ 9 ] = 125; map[ 23 ] = 0; zones[ 23 ] = 12; zoneIds[ 23 ] = 134; map[ 46 ] = 0; zones[ 46 ] = 46; zoneIds[ 46 ] = 151; map[ 75 ] = 0; zones[ 75 ] = 8; zoneIds[ 75 ] = 172; map[ 99 ] = 0; zones[ 99 ] = 33; zoneIds[ 99 ] = 189; map[ 108 ] = 0; zones[ 108 ] = 40; zoneIds[ 108 ] = 196; map[ 125 ] = 0; zones[ 125 ] = 33; zoneIds[ 125 ] = 205; map[ 2159 ] = 1; zones[ 2159 ] = 2159; zoneIds[ 2159 ] = 816; map[ 2244 ] = 1; zones[ 2244 ] = 618; zoneIds[ 2244 ] = 830; map[ 68 ] = 0; zones[ 68 ] = 44; zoneIds[ 68 ] = 557; map[ 640 ] = 1; zones[ 640 ] = 14; zoneIds[ 640 ] = 638; map[ 2258 ] = 0; zones[ 2258 ] = 139; zoneIds[ 2258 ] = 844; map[ 2271 ] = 0; zones[ 2271 ] = 139; zoneIds[ 2271 ] = 857; map[ 2297 ] = 0; zones[ 2297 ] = 28; zoneIds[ 2297 ] = 867; map[ 24 ] = 0; zones[ 24 ] = 12; zoneIds[ 24 ] = 135; map[ 152 ] = 0; zones[ 152 ] = 85; zoneIds[ 152 ] = 230; map[ 156 ] = 0; zones[ 156 ] = 85; zoneIds[ 156 ] = 233; map[ 157 ] = 0; zones[ 157 ] = 85; zoneIds[ 157 ] = 234; map[ 163 ] = 0; zones[ 163 ] = 85; zoneIds[ 163 ] = 240; map[ 1718 ] = 1; zones[ 1718 ] = 17; zoneIds[ 1718 ] = 735; map[ 1760 ] = 0; zones[ 1760 ] = 33; zoneIds[ 1760 ] = 745; map[ 1780 ] = 0; zones[ 1780 ] = 8; zoneIds[ 1780 ] = 760; map[ 186 ] = 1; zones[ 186 ] = 141; zoneIds[ 186 ] = 622; map[ 1877 ] = 0; zones[ 1877 ] = 3; zoneIds[ 1877 ] = 767; map[ 1878 ] = 0; zones[ 1878 ] = 3; zoneIds[ 1878 ] = 768; map[ 1879 ] = 0; zones[ 1879 ] = 3; zoneIds[ 1879 ] = 769; map[ 1884 ] = 0; zones[ 1884 ] = 47; zoneIds[ 1884 ] = 774; map[ 195 ] = 0; zones[ 195 ] = 28; zoneIds[ 195 ] = 253; map[ 196 ] = 0; zones[ 196 ] = 28; zoneIds[ 196 ] = 578; map[ 201 ] = 0; zones[ 201 ] = 28; zoneIds[ 201 ] = 258; map[ 204 ] = 0; zones[ 204 ] = 130; zoneIds[ 204 ] = 261; map[ 209 ] = 33; zones[ 209 ] = 209; zoneIds[ 209 ] = 266; map[ 2098 ] = 0; zones[ 2098 ] = 10; zoneIds[ 2098 ] = 802; map[ 2197 ] = 1; zones[ 2197 ] = 1638; zoneIds[ 2197 ] = 820; map[ 1457 ] = 0; zones[ 1457 ] = 4; zoneIds[ 1457 ] = 388; map[ 149 ] = 0; zones[ 149 ] = 38; zoneIds[ 149 ] = 228; map[ 928 ] = 0; zones[ 928 ] = 130; zoneIds[ 928 ] = 317; map[ 2250 ] = 1; zones[ 2250 ] = 618; zoneIds[ 2250 ] = 836; map[ 511 ] = 1; zones[ 511 ] = 15; zoneIds[ 511 ] = 529; map[ 322 ] = 0; zones[ 322 ] = 45; zoneIds[ 322 ] = 581; map[ 820 ] = 1; zones[ 820 ] = 215; zoneIds[ 820 ] = 670; map[ 2561 ] = 0; zones[ 2561 ] = 41; zoneIds[ 2561 ] = 950; map[ 1857 ] = 0; zones[ 1857 ] = 45; zoneIds[ 1857 ] = 765; map[ 2379 ] = 269; zones[ 2379 ] = 2367; zoneIds[ 2379 ] = 909; map[ 1703 ] = 1; zones[ 1703 ] = 17; zoneIds[ 1703 ] = 732; map[ 2626 ] = 0; zones[ 2626 ] = 139; zoneIds[ 2626 ] = 964; map[ 95 ] = 0; zones[ 95 ] = 44; zoneIds[ 95 ] = 185; map[ 392 ] = 1; zones[ 392 ] = 17; zoneIds[ 392 ] = 113; map[ 498 ] = 1; zones[ 498 ] = 15; zoneIds[ 498 ] = 521; map[ 2741 ] = 1; zones[ 2741 ] = 1377; zoneIds[ 2741 ] = 975; map[ 2198 ] = 1; zones[ 2198 ] = 405; zoneIds[ 2198 ] = 821; map[ 2918 ] = 449; zones[ 2918 ] = 2918; zoneIds[ 2918 ] = 989; map[ 3077 ] = 1; zones[ 3077 ] = 1377; zoneIds[ 3077 ] = 1009; map[ 3157 ] = 1; zones[ 3157 ] = 406; zoneIds[ 3157 ] = 1019; map[ 165 ] = 0; zones[ 165 ] = 85; zoneIds[ 165 ] = 242; map[ 306 ] = 0; zones[ 306 ] = 130; zoneIds[ 306 ] = 45; map[ 432 ] = 1; zones[ 432 ] = 331; zoneIds[ 432 ] = 466; map[ 2365 ] = 0; zones[ 2365 ] = 11; zoneIds[ 2365 ] = 895; map[ 736 ] = 1; zones[ 736 ] = 141; zoneIds[ 736 ] = 645; map[ 406 ] = 1; zones[ 406 ] = 406; zoneIds[ 406 ] = 446; map[ 16 ] = 1; zones[ 16 ] = 16; zoneIds[ 16 ] = 129; map[ 925 ] = 0; zones[ 925 ] = 38; zoneIds[ 925 ] = 314; map[ 927 ] = 0; zones[ 927 ] = 130; zoneIds[ 927 ] = 316; map[ 2597 ] = 30; zones[ 2597 ] = 2597; zoneIds[ 2597 ] = 954; map[ 1232 ] = 1; zones[ 1232 ] = 16; zoneIds[ 1232 ] = 427; map[ 1682 ] = 0; zones[ 1682 ] = 36; zoneIds[ 1682 ] = 723; map[ 1738 ] = 0; zones[ 1738 ] = 33; zoneIds[ 1738 ] = 737; map[ 1778 ] = 0; zones[ 1778 ] = 8; zoneIds[ 1778 ] = 758; map[ 1940 ] = 1; zones[ 1940 ] = 440; zoneIds[ 1940 ] = 784; map[ 3139 ] = 1; zones[ 3139 ] = 618; zoneIds[ 3139 ] = 1017; map[ 337 ] = 0; zones[ 337 ] = 3; zoneIds[ 337 ] = 67; map[ 3257 ] = 1; zones[ 3257 ] = 1377; zoneIds[ 3257 ] = 1024; map[ 400 ] = 1; zones[ 400 ] = 400; zoneIds[ 400 ] = 442; map[ 3277 ] = 489; zones[ 3277 ] = 3277; zoneIds[ 3277 ] = 1025; map[ 821 ] = 1; zones[ 821 ] = 215; zoneIds[ 821 ] = 671; map[ 3057 ] = 30; zones[ 3057 ] = 2597; zoneIds[ 3057 ] = 1007; map[ 3237 ] = 1; zones[ 3237 ] = 2557; zoneIds[ 3237 ] = 1023; map[ 3297 ] = 30; zones[ 3297 ] = 2597; zoneIds[ 3297 ] = 1026; map[ 3298 ] = 30; zones[ 3298 ] = 2597; zoneIds[ 3298 ] = 1027; map[ 3299 ] = 30; zones[ 3299 ] = 2597; zoneIds[ 3299 ] = 1028; map[ 3300 ] = 30; zones[ 3300 ] = 2597; zoneIds[ 3300 ] = 1029; map[ 3301 ] = 30; zones[ 3301 ] = 2597; zoneIds[ 3301 ] = 1030; map[ 3302 ] = 30; zones[ 3302 ] = 2597; zoneIds[ 3302 ] = 1031; map[ 3303 ] = 30; zones[ 3303 ] = 2597; zoneIds[ 3303 ] = 1032; map[ 3304 ] = 30; zones[ 3304 ] = 2597; zoneIds[ 3304 ] = 1033; map[ 3305 ] = 30; zones[ 3305 ] = 2597; zoneIds[ 3305 ] = 1034; map[ 3306 ] = 30; zones[ 3306 ] = 2597; zoneIds[ 3306 ] = 1035; map[ 3317 ] = 0; zones[ 3317 ] = 47; zoneIds[ 3317 ] = 1036; map[ 3318 ] = 30; zones[ 3318 ] = 2597; zoneIds[ 3318 ] = 1037; map[ 3319 ] = 1; zones[ 3319 ] = 331; zoneIds[ 3319 ] = 1038; map[ 3320 ] = 489; zones[ 3320 ] = 3277; zoneIds[ 3320 ] = 1039; map[ 3321 ] = 489; zones[ 3321 ] = 3277; zoneIds[ 3321 ] = 1040; map[ 518 ] = 1; zones[ 518 ] = 15; zoneIds[ 518 ] = 536; map[ 3337 ] = 30; zones[ 3337 ] = 2597; zoneIds[ 3337 ] = 1041; map[ 3338 ] = 30; zones[ 3338 ] = 2597; zoneIds[ 3338 ] = 1042; map[ 1997 ] = 1; zones[ 1997 ] = 361; zoneIds[ 1997 ] = 793; map[ 105 ] = 0; zones[ 105 ] = 33; zoneIds[ 105 ] = 193; map[ 1104 ] = 1; zones[ 1104 ] = 357; zoneIds[ 1104 ] = 398; map[ 1117 ] = 1; zones[ 1117 ] = 357; zoneIds[ 1117 ] = 359; map[ 13 ] = 0; zones[ 13 ] = 10; zoneIds[ 13 ] = 555; map[ 1445 ] = 0; zones[ 1445 ] = 51; zoneIds[ 1445 ] = 386; map[ 1477 ] = 0; zones[ 1477 ] = 1477; zoneIds[ 1477 ] = 389; map[ 255 ] = 0; zones[ 255 ] = 46; zoneIds[ 255 ] = 5; map[ 265 ] = 1; zones[ 265 ] = 141; zoneIds[ 265 ] = 15; map[ 282 ] = 0; zones[ 282 ] = 36; zoneIds[ 282 ] = 26; map[ 294 ] = 0; zones[ 294 ] = 267; zoneIds[ 294 ] = 36; map[ 310 ] = 0; zones[ 310 ] = 33; zoneIds[ 310 ] = 48; map[ 326 ] = 0; zones[ 326 ] = 45; zoneIds[ 326 ] = 58; map[ 334 ] = 0; zones[ 334 ] = 45; zoneIds[ 334 ] = 64; map[ 348 ] = 0; zones[ 348 ] = 47; zoneIds[ 348 ] = 76; map[ 357 ] = 1; zones[ 357 ] = 357; zoneIds[ 357 ] = 83; map[ 366 ] = 1; zones[ 366 ] = 14; zoneIds[ 366 ] = 92; map[ 379 ] = 1; zones[ 379 ] = 17; zoneIds[ 379 ] = 103; map[ 393 ] = 1; zones[ 393 ] = 14; zoneIds[ 393 ] = 114; map[ 2 ] = 0; zones[ 2 ] = 40; zoneIds[ 2 ] = 120; map[ 17 ] = 1; zones[ 17 ] = 17; zoneIds[ 17 ] = 130; map[ 34 ] = 0; zones[ 34 ] = 12; zoneIds[ 34 ] = 141; map[ 45 ] = 0; zones[ 45 ] = 45; zoneIds[ 45 ] = 150; map[ 57 ] = 0; zones[ 57 ] = 12; zoneIds[ 57 ] = 158; map[ 72 ] = 0; zones[ 72 ] = 4; zoneIds[ 72 ] = 169; map[ 91 ] = 0; zones[ 91 ] = 12; zoneIds[ 91 ] = 183; map[ 104 ] = 0; zones[ 104 ] = 33; zoneIds[ 104 ] = 192; map[ 121 ] = 0; zones[ 121 ] = 10; zoneIds[ 121 ] = 202; map[ 136 ] = 0; zones[ 136 ] = 1; zoneIds[ 136 ] = 216; map[ 150 ] = 0; zones[ 150 ] = 11; zoneIds[ 150 ] = 229; map[ 162 ] = 0; zones[ 162 ] = 85; zoneIds[ 162 ] = 239; map[ 193 ] = 0; zones[ 193 ] = 28; zoneIds[ 193 ] = 252; map[ 206 ] = 36; zones[ 206 ] = 206; zoneIds[ 206 ] = 263; map[ 219 ] = 0; zones[ 219 ] = 40; zoneIds[ 219 ] = 273; map[ 233 ] = 0; zones[ 233 ] = 130; zoneIds[ 233 ] = 285; map[ 656 ] = 1; zones[ 656 ] = 493; zoneIds[ 656 ] = 295; map[ 924 ] = 0; zones[ 924 ] = 38; zoneIds[ 924 ] = 313; map[ 979 ] = 1; zones[ 979 ] = 440; zoneIds[ 979 ] = 322; map[ 1017 ] = 0; zones[ 1017 ] = 11; zoneIds[ 1017 ] = 339; map[ 1102 ] = 1; zones[ 1102 ] = 357; zoneIds[ 1102 ] = 350; map[ 1196 ] = 1; zones[ 1196 ] = 1196; zoneIds[ 1196 ] = 363; map[ 1176 ] = 209; zones[ 1176 ] = 1176; zoneIds[ 1176 ] = 371; map[ 1439 ] = 0; zones[ 1439 ] = 4; zoneIds[ 1439 ] = 380; map[ 1557 ] = 1; zones[ 1557 ] = 400; zoneIds[ 1557 ] = 690; map[ 120 ] = 0; zones[ 120 ] = 12; zoneIds[ 120 ] = 559; map[ 261 ] = 1; zones[ 261 ] = 141; zoneIds[ 261 ] = 11; map[ 1100 ] = 1; zones[ 1100 ] = 357; zoneIds[ 1100 ] = 395; map[ 1112 ] = 1; zones[ 1112 ] = 357; zoneIds[ 1112 ] = 404; map[ 321 ] = 0; zones[ 321 ] = 45; zoneIds[ 321 ] = 54; map[ 223 ] = 1; zones[ 223 ] = 215; zoneIds[ 223 ] = 276; map[ 83 ] = 451; zones[ 83 ] = 22; zoneIds[ 83 ] = 177; map[ 996 ] = 0; zones[ 996 ] = 44; zoneIds[ 996 ] = 408; map[ 1223 ] = 1; zones[ 1223 ] = 16; zoneIds[ 1223 ] = 418; map[ 1236 ] = 1; zones[ 1236 ] = 16; zoneIds[ 1236 ] = 431; map[ 109 ] = 0; zones[ 109 ] = 40; zoneIds[ 109 ] = 197; map[ 413 ] = 1; zones[ 413 ] = 331; zoneIds[ 413 ] = 452; map[ 407 ] = 1; zones[ 407 ] = 14; zoneIds[ 407 ] = 447; map[ 420 ] = 1; zones[ 420 ] = 331; zoneIds[ 420 ] = 459; map[ 435 ] = 1; zones[ 435 ] = 331; zoneIds[ 435 ] = 468; map[ 447 ] = 1; zones[ 447 ] = 148; zoneIds[ 447 ] = 479; map[ 463 ] = 1; zones[ 463 ] = 406; zoneIds[ 463 ] = 490; map[ 483 ] = 1; zones[ 483 ] = 400; zoneIds[ 483 ] = 507; map[ 496 ] = 1; zones[ 496 ] = 15; zoneIds[ 496 ] = 518; map[ 509 ] = 1; zones[ 509 ] = 15; zoneIds[ 509 ] = 528; map[ 538 ] = 1; zones[ 538 ] = 490; zoneIds[ 538 ] = 539; map[ 382 ] = 1; zones[ 382 ] = 17; zoneIds[ 382 ] = 552; map[ 245 ] = 0; zones[ 245 ] = 10; zoneIds[ 245 ] = 563; map[ 503 ] = 1; zones[ 503 ] = 15; zoneIds[ 503 ] = 573; map[ 102 ] = 0; zones[ 102 ] = 33; zoneIds[ 102 ] = 586; map[ 598 ] = 1; zones[ 598 ] = 405; zoneIds[ 598 ] = 595; map[ 399 ] = 1; zones[ 399 ] = 215; zoneIds[ 399 ] = 610; map[ 173 ] = 0; zones[ 173 ] = 85; zoneIds[ 173 ] = 620; map[ 618 ] = 1; zones[ 618 ] = 618; zoneIds[ 618 ] = 621; map[ 117 ] = 0; zones[ 117 ] = 33; zoneIds[ 117 ] = 629; map[ 719 ] = 48; zones[ 719 ] = 719; zoneIds[ 719 ] = 642; map[ 804 ] = 0; zones[ 804 ] = 1; zoneIds[ 804 ] = 654; map[ 816 ] = 1; zones[ 816 ] = 14; zoneIds[ 816 ] = 666; map[ 878 ] = 1; zones[ 878 ] = 16; zoneIds[ 878 ] = 677; map[ 2317 ] = 1; zones[ 2317 ] = 440; zoneIds[ 2317 ] = 874; map[ 2360 ] = 1; zones[ 2360 ] = 331; zoneIds[ 2360 ] = 890; map[ 2372 ] = 269; zones[ 2372 ] = 2367; zoneIds[ 2372 ] = 902; map[ 2405 ] = 1; zones[ 2405 ] = 405; zoneIds[ 2405 ] = 918; map[ 2479 ] = 1; zones[ 2479 ] = 361; zoneIds[ 2479 ] = 931; map[ 2560 ] = 0; zones[ 2560 ] = 41; zoneIds[ 2560 ] = 949; map[ 2622 ] = 0; zones[ 2622 ] = 139; zoneIds[ 2622 ] = 960; map[ 1584 ] = 0; zones[ 1584 ] = 1584; zoneIds[ 1584 ] = 698; map[ 1880 ] = 0; zones[ 1880 ] = 47; zoneIds[ 1880 ] = 770; map[ 2158 ] = 1; zones[ 2158 ] = 15; zoneIds[ 2158 ] = 815; map[ 1603 ] = 1; zones[ 1603 ] = 17; zoneIds[ 1603 ] = 705; map[ 1679 ] = 0; zones[ 1679 ] = 36; zoneIds[ 1679 ] = 720; map[ 1737 ] = 0; zones[ 1737 ] = 33; zoneIds[ 1737 ] = 736; map[ 916 ] = 0; zones[ 916 ] = 40; zoneIds[ 916 ] = 681; map[ 2357 ] = 1; zones[ 2357 ] = 331; zoneIds[ 2357 ] = 887; map[ 370 ] = 1; zones[ 370 ] = 14; zoneIds[ 370 ] = 96; map[ 339 ] = 0; zones[ 339 ] = 3; zoneIds[ 339 ] = 634; map[ 1764 ] = 1; zones[ 1764 ] = 361; zoneIds[ 1764 ] = 749; map[ 1817 ] = 0; zones[ 1817 ] = 8; zoneIds[ 1817 ] = 763; map[ 1898 ] = 0; zones[ 1898 ] = 3; zoneIds[ 1898 ] = 779; map[ 1639 ] = 1; zones[ 1639 ] = 1638; zoneIds[ 1639 ] = 709; map[ 1701 ] = 1; zones[ 1701 ] = 17; zoneIds[ 1701 ] = 730; map[ 1798 ] = 0; zones[ 1798 ] = 8; zoneIds[ 1798 ] = 762; map[ 1297 ] = 1; zones[ 1297 ] = 14; zoneIds[ 1297 ] = 407; map[ 1942 ] = 1; zones[ 1942 ] = 490; zoneIds[ 1942 ] = 786; map[ 350 ] = 0; zones[ 350 ] = 47; zoneIds[ 350 ] = 78; map[ 313 ] = 0; zones[ 313 ] = 45; zoneIds[ 313 ] = 632; map[ 1977 ] = 309; zones[ 1977 ] = 1977; zoneIds[ 1977 ] = 791; map[ 2100 ] = 349; zones[ 2100 ] = 2100; zoneIds[ 2100 ] = 804; map[ 3424 ] = 529; zones[ 3424 ] = 3358; zoneIds[ 3424 ] = 1062; map[ 3420 ] = 529; zones[ 3420 ] = 3358; zoneIds[ 3420 ] = 1058; map[ 3421 ] = 529; zones[ 3421 ] = 3358; zoneIds[ 3421 ] = 1059; map[ 3422 ] = 529; zones[ 3422 ] = 3358; zoneIds[ 3422 ] = 1060; map[ 3423 ] = 529; zones[ 3423 ] = 3358; zoneIds[ 3423 ] = 1061; map[ 22 ] = 451; zones[ 22 ] = 22; zoneIds[ 22 ] = 547; map[ 221 ] = 1; zones[ 221 ] = 215; zoneIds[ 221 ] = 274; map[ 2217 ] = 1; zones[ 2217 ] = 405; zoneIds[ 2217 ] = 822; map[ 224 ] = 1; zones[ 224 ] = 215; zoneIds[ 224 ] = 277; map[ 2241 ] = 1; zones[ 2241 ] = 618; zoneIds[ 2241 ] = 827; map[ 2268 ] = 0; zones[ 2268 ] = 139; zoneIds[ 2268 ] = 854; map[ 2325 ] = 1; zones[ 2325 ] = 331; zoneIds[ 2325 ] = 882; map[ 2419 ] = 0; zones[ 2419 ] = 46; zoneIds[ 2419 ] = 924; map[ 246 ] = 0; zones[ 246 ] = 51; zoneIds[ 246 ] = 293; map[ 2477 ] = 1; zones[ 2477 ] = 1377; zoneIds[ 2477 ] = 929; map[ 2481 ] = 1; zones[ 2481 ] = 361; zoneIds[ 2481 ] = 933; map[ 2540 ] = 1; zones[ 2540 ] = 406; zoneIds[ 2540 ] = 944; map[ 257 ] = 1; zones[ 257 ] = 141; zoneIds[ 257 ] = 7; map[ 2619 ] = 0; zones[ 2619 ] = 139; zoneIds[ 2619 ] = 957; map[ 2627 ] = 0; zones[ 2627 ] = 139; zoneIds[ 2627 ] = 965; map[ 298 ] = 0; zones[ 298 ] = 11; zoneIds[ 298 ] = 39; map[ 3 ] = 0; zones[ 3 ] = 3; zoneIds[ 3 ] = 121; map[ 325 ] = 0; zones[ 325 ] = 45; zoneIds[ 325 ] = 57; map[ 340 ] = 0; zones[ 340 ] = 3; zoneIds[ 340 ] = 68; map[ 347 ] = 0; zones[ 347 ] = 3; zoneIds[ 347 ] = 75; map[ 36 ] = 0; zones[ 36 ] = 36; zoneIds[ 36 ] = 143; map[ 364 ] = 1; zones[ 364 ] = 14; zoneIds[ 364 ] = 90; map[ 368 ] = 1; zones[ 368 ] = 14; zoneIds[ 368 ] = 94; map[ 383 ] = 1; zones[ 383 ] = 17; zoneIds[ 383 ] = 106; map[ 426 ] = 1; zones[ 426 ] = 331; zoneIds[ 426 ] = 463; map[ 439 ] = 1; zones[ 439 ] = 400; zoneIds[ 439 ] = 471; map[ 441 ] = 1; zones[ 441 ] = 331; zoneIds[ 441 ] = 473; map[ 444 ] = 1; zones[ 444 ] = 148; zoneIds[ 444 ] = 476; map[ 450 ] = 1; zones[ 450 ] = 148; zoneIds[ 450 ] = 482; map[ 457 ] = 1; zones[ 457 ] = 457; zoneIds[ 457 ] = 571; map[ 459 ] = 0; zones[ 459 ] = 85; zoneIds[ 459 ] = 375; map[ 484 ] = 1; zones[ 484 ] = 400; zoneIds[ 484 ] = 508; map[ 499 ] = 1; zones[ 499 ] = 15; zoneIds[ 499 ] = 522; map[ 510 ] = 1; zones[ 510 ] = 15; zoneIds[ 510 ] = 584; map[ 543 ] = 1; zones[ 543 ] = 490; zoneIds[ 543 ] = 544; map[ 606 ] = 1; zones[ 606 ] = 405; zoneIds[ 606 ] = 603; map[ 62 ] = 0; zones[ 62 ] = 12; zoneIds[ 62 ] = 161; map[ 64 ] = 0; zones[ 64 ] = 12; zoneIds[ 64 ] = 163; map[ 65 ] = 0; zones[ 65 ] = 65; zoneIds[ 65 ] = 164; map[ 702 ] = 1; zones[ 702 ] = 141; zoneIds[ 702 ] = 304; map[ 73 ] = 0; zones[ 73 ] = 4; zoneIds[ 73 ] = 170; map[ 801 ] = 0; zones[ 801 ] = 1; zoneIds[ 801 ] = 651; map[ 802 ] = 0; zones[ 802 ] = 1; zoneIds[ 802 ] = 652; map[ 803 ] = 0; zones[ 803 ] = 1; zoneIds[ 803 ] = 653; map[ 81 ] = 451; zones[ 81 ] = 22; zoneIds[ 81 ] = 575; map[ 813 ] = 0; zones[ 813 ] = 28; zoneIds[ 813 ] = 663; map[ 920 ] = 0; zones[ 920 ] = 40; zoneIds[ 920 ] = 309; map[ 93 ] = 0; zones[ 93 ] = 10; zoneIds[ 93 ] = 628; map[ 982 ] = 1; zones[ 982 ] = 440; zoneIds[ 982 ] = 325; map[ 3357 ] = 0; zones[ 3357 ] = 33; zoneIds[ 3357 ] = 1043; map[ 3358 ] = 529; zones[ 3358 ] = 3358; zoneIds[ 3358 ] = 1044; map[ 3377 ] = 309; zones[ 3377 ] = 1977; zoneIds[ 3377 ] = 1045; map[ 3378 ] = 309; zones[ 3378 ] = 1977; zoneIds[ 3378 ] = 1046; map[ 3379 ] = 309; zones[ 3379 ] = 1977; zoneIds[ 3379 ] = 1047; map[ 3380 ] = 309; zones[ 3380 ] = 1977; zoneIds[ 3380 ] = 1048; map[ 3381 ] = 309; zones[ 3381 ] = 1977; zoneIds[ 3381 ] = 1049; map[ 3382 ] = 309; zones[ 3382 ] = 1977; zoneIds[ 3382 ] = 1050; map[ 3383 ] = 309; zones[ 3383 ] = 1977; zoneIds[ 3383 ] = 1051; map[ 1578 ] = 0; zones[ 1578 ] = 33; zoneIds[ 1578 ] = 692; map[ 192 ] = 0; zones[ 192 ] = 28; zoneIds[ 192 ] = 251; map[ 3384 ] = 309; zones[ 3384 ] = 1977; zoneIds[ 3384 ] = 1052; map[ 3397 ] = 309; zones[ 3397 ] = 1977; zoneIds[ 3397 ] = 1053; map[ 3398 ] = 309; zones[ 3398 ] = 1977; zoneIds[ 3398 ] = 1054; #endregion #region Herb association World.GameObjectsAssociated[ 1618 ] = typeof( BaseHerb );// Peacebloom ); World.GameObjectsAssociated[ 3725 ] = typeof( BaseHerb );// Silverleaf ); World.GameObjectsAssociated[ 3726 ] = typeof( BaseHerb );// Earthroot ); World.GameObjectsAssociated[ 3727 ] = typeof( BaseHerb );// Mageroyal ); World.GameObjectsAssociated[ 3729 ] = typeof( BaseHerb );// Briarthorn ); World.GameObjectsAssociated[ 2045 ] = typeof( BaseHerb );// Stranglekelp ); World.GameObjectsAssociated[ 3730 ] = typeof( BaseHerb );// Bruiseweed ); World.GameObjectsAssociated[ 1623 ] = typeof( BaseHerb );// WildSteelbloom ); World.GameObjectsAssociated[ 1628 ] = typeof( BaseHerb );// GraveMoss ); World.GameObjectsAssociated[ 1624 ] = typeof( BaseHerb );// Kingsblood ); World.GameObjectsAssociated[ 2041 ] = typeof( BaseHerb );// Liferoot ); World.GameObjectsAssociated[ 2042 ] = typeof( BaseHerb );// Fadeleaf ); World.GameObjectsAssociated[ 2046 ] = typeof( BaseHerb );// Goldthorn ); World.GameObjectsAssociated[ 2043 ] = typeof( BaseHerb );// KhadgarsWhisker ); World.GameObjectsAssociated[ 2044 ] = typeof( BaseHerb );// Wintersbite ); World.GameObjectsAssociated[ 2866 ] = typeof( BaseHerb );// Firebloom ); World.GameObjectsAssociated[ 142140 ] = typeof( BaseHerb );// PurpleLotus ); World.GameObjectsAssociated[ 142141 ] = typeof( BaseHerb );// ArthasTears ); World.GameObjectsAssociated[ 142142 ] = typeof( BaseHerb );// Sungrass ); World.GameObjectsAssociated[ 142143 ] = typeof( BaseHerb );// Blindweed ); World.GameObjectsAssociated[ 142144 ] = typeof( BaseHerb );// GhostMushroom ); World.GameObjectsAssociated[ 142145 ] = typeof( BaseHerb );// Gromsblood ); World.GameObjectsAssociated[ 176583 ] = typeof( BaseHerb );// GoldenSansam ); World.GameObjectsAssociated[ 176584 ] = typeof( BaseHerb );// Dreamfoil ); World.GameObjectsAssociated[ 176586 ] = typeof( BaseHerb );// MountainSilversage ); World.GameObjectsAssociated[ 176587 ] = typeof( BaseHerb );// Plaguebloom ); World.GameObjectsAssociated[ 176588 ] = typeof( BaseHerb );// Icecap ); World.GameObjectsAssociated[ 176589 ] = typeof( BaseHerb );// BlackLotus ); #endregion #region Vein list World.GameObjectsAssociated[ 1731 ] = typeof( BaseMine );// Copper Vein World.GameObjectsAssociated[ 1732 ] = typeof( BaseMine );// Tin Vein World.GameObjectsAssociated[ 1733 ] = typeof( BaseMine );// Silver Vein World.GameObjectsAssociated[ 1735 ] = typeof( BaseMine );// Iron Deposit World.GameObjectsAssociated[ 1734 ] = typeof( BaseMine );// Gold Vein World.GameObjectsAssociated[ 2040 ] = typeof( BaseMine );// Mithril Deposit World.GameObjectsAssociated[ 147516 ] = typeof( BaseMine );// Dark Iron World.GameObjectsAssociated[ 2047 ] = typeof( BaseMine );// Truesilver Deposit World.GameObjectsAssociated[ 324 ] = typeof( BaseMine );// Small Thorium Vein World.GameObjectsAssociated[ 175404 ] = typeof( BaseMine );// Rich Thorium Vein #endregion for(int t = 0;t < timers.Length;t++ ) { timers[ t ] = new Queue(); lastCall[ t ] = DateTime.Now.Ticks; } CustomSpellHandlers initSpellHandlersValues = new CustomSpellHandlers(); Type []types = Utility.externAsm[ "Items" ].GetTypes(); Hashtable files = new Hashtable(); TextReader trItems = new StreamReader( World.Path + "items.txt" ); while( true ) { string name = trItems.ReadLine(); if ( name == null ) break; int id = Convert.ToInt32( trItems.ReadLine() ); itemsHash[ name ] = id; } foreach( Type t in types ) { if ( t.IsSubclassOf( typeof( Item ) ) ) { AddItem( t ); #region Automatic treasure list /* float a = 1; string cat = ""; if ( i.BuyPrice < 51 ) { cat = "Beginners"; a = (float)i.BuyPrice / 51f; } else if ( i .BuyPrice < 500 ) { cat = "Low"; a = (float)i.BuyPrice / 500f; } else if ( i .BuyPrice < 5000 ) { cat = "Medium"; a = (float)i.BuyPrice / 5000f; } else if ( i .BuyPrice < 10000 ) { cat = "Advanced"; a = (float)i.BuyPrice / 10000f; } else if ( i .BuyPrice < 50000 ) { cat = "High"; a = (float)i.BuyPrice / 50000f; } else if ( i .BuyPrice < 100000 ) { cat = "Amazing"; a = (float)i.BuyPrice / 100000f; } else { // if ( i .BuyPrice < 500000 ) cat = "Incredible"; a = (float)i.BuyPrice / 500000f; } // else // cat = 7; string typ = "NoCategory"; if ( i.ObjectClass == 4 ) { if ( i.SubClass == 0 ) typ = "RingsAndJewels"; else if ( i.SubClass == 1 ) typ = "Cloths"; else if ( i.SubClass == 2 ) typ = "LeatherArmors"; else if ( i.SubClass == 3 ) typ = "MailArmors"; else if ( i.SubClass == 4 ) typ = "PlateArmors"; else if ( i.SubClass == 6 ) typ = "Shields"; } else if ( i.ObjectClass == 6 ) typ = "Ammos"; else if ( i.ObjectClass == 11 || i.ObjectClass == 1 ) typ = "Containers"; else if ( i.ObjectClass == 0 ) typ = "Consumable"; else if ( i.ObjectClass == 7 ) { if ( i.SubClass == 3 ) typ = "FinalMaterials"; else if ( i.SubClass == 0 ) typ = "PrimMaterials"; else if ( i.SubClass == 1 ) typ = "SecondMaterials"; else if ( i.SubClass == 2 ) typ = "ThirdMaterials"; } else if ( i.ObjectClass == 15 ) typ = "MiscelenaousItems"; else if ( i.ObjectClass == 9 ) typ = "PlansAndRecipes"; else if ( i.ObjectClass == 2 ) { if ( i.SubClass == 0 ) typ = "Axes"; else if ( i.SubClass == 2 || i.SubClass == 18 ) typ = "BowsAndCrossbows"; else if ( i.SubClass == 13 ) typ = "Claws"; else if ( i.SubClass == 15 || i.SubClass == 7 ) typ = "SwordsAndDaggers"; else if ( i.SubClass == 4 ) typ = "MacesAndHammers"; else if ( i.SubClass == 3 ) typ = "Muskets"; else if ( i.SubClass == 6 ) typ = "Spears"; else if ( i.SubClass == 10 || i.SubClass == 19 ) typ = "StavesAndWands"; else if ( i.SubClass == 14 || i.SubClass == 20 ) typ = "Tools"; else if ( i.SubClass == 16 ) typ = "ThrowingWeapons"; else if ( i.SubClass == 1 || i.SubClass == 5 || i.SubClass == 8 ) typ = "TwoHandedWeapons"; } a = 1 - a; a *= 100f; if ( a < 0f ) a = 0.0001f; if ( a > 95f ) a = 95.000f; if ( files[ cat+typ ] == null ) { TextWriter ntw = new StreamWriter( cat+typ+".cs" ); files[ cat+typ ] = ntw; ntw.WriteLine( "//////////////////////////////////////////////////////////" ); ntw.WriteLine( "// DrNexus " + cat + " " + typ + " Treasure list" ); ntw.WriteLine( "//////////////////////////////////////////////////////////" ); ntw.WriteLine( "using Server;" ); ntw.WriteLine( "namespace Server.Items" ); ntw.WriteLine( "{" ); ntw.WriteLine( "\tpublic class " + cat + typ + "Drops" ); ntw.WriteLine( "\t{" ); ntw.WriteLine( "\t\tpublic static Loot[]" + cat + typ + " = new Loot[]" ); ntw.WriteLine( "\t\t{" ); ntw.WriteLine( "\t\t\tnew Loot( typeof( " + Utility.ClassName( i ) + " ), " + a.ToString() + "f )" ); // ntw.WriteLine( i.Id.ToString() + ";" + Utility.ClassName( i ) ); } else { TextWriter ntw = (TextWriter)files[ cat+typ ]; ntw.WriteLine( "\t\t\t\t, new Loot( typeof( " + Utility.ClassName( i ) + " ), " + a.ToString() + "f )" ); //ntw.WriteLine( i.Id.ToString() + ";" + Utility.ClassName( i ) ); }*/ #endregion } } itemsHash.Clear(); /* TextWriter tw = new StreamWriter( "./items.txt" ); foreach( Item ite in allItems ) { tw.WriteLine( ite.GetType().ToString() ); tw.WriteLine( ite.Id.ToString() ); } tw.Close();*/ types = null; GC.Collect(); // TextWriter tw = new StreamWriter( "mob.txt" ); types = Utility.externAsm[ "Creatures" ].GetTypes(); foreach( Type t in types ) { if ( t.IsSubclassOf( typeof( BaseCreature ) ) ) { try { ConstructorInfo []cts = t.GetConstructors(); BaseCreature bc = (BaseCreature)cts[ 0 ].Invoke( null ); int id = bc.Id; mobilePool[ id ] = cts[ 0 ]; // tw.WriteLine("{0}\t{1}\t{2}", bc.Name, bc.Id, bc.Level ); allMobs.Add( bc ); } catch( Exception ) { Console.WriteLine( "Error in the constructor of {0}", t.ToString() ); } } } poolsReady = true; types = Utility.externAsm[ "Quests" ].GetTypes(); foreach( Type t in types ) { Type type = null; try { ConstructorInfo []ci = t.GetConstructors(); BaseQuest i = (BaseQuest)ci[ 0 ].Invoke( null ); questPool[ i.Id ] = i; questPoolType[ t ] = i; } catch( Exception e ) { Console.WriteLine("Error in the quest constructor of {0}", type.ToString() ); Console.WriteLine("{0}", e.Message.ToString() ); Console.WriteLine("{0}", e.StackTrace.ToString() ); } } GC.Collect(); // tw.Close(); //ConstructorInfo ct; = Utility.FindConstructor( "Spawner", Utility.externAsm ); //Mobile tempSpawner = (Mobile)ct.Invoke( null ); //mobilePool[ tempSpawner.Id ] = ct; // ct = Utility.FindConstructor( "GameObjectSpawner", Utility.externAsm ); // tempSpawner = (Mobile)ct.Invoke( null ); // mobilePool[ tempSpawner.Id ] = ct; TalentList initTalentSystem = new TalentList(); GenericReader gr; DateTime ta = DateTime.Now; allSpawners = new SpawnerList( gr = new GenericReader( World.Path + "spawnpoints.bin" ) ); TimeSpan ts = DateTime.Now.Subtract( ta ); allGameObjects = new GameObjects( new GenericReader( World.Path + "objects.bin" ) ); allMobiles = new MobileList( new GenericReader( World.Path + "savegame.bin" ) ); } else allMobiles = new MobileList( new GenericReader( World.Path + "savegame.bin" ) ); #endregion allAccounts = new Accounts( World.Path + "accounts.xml" ); #region Initialize standard server part 2 if ( !RealmServer ) { ConstructorInfo ct; trajets = new Trajets( new GenericReader( World.Path + "coord.bin" ) ); ct = Utility.FindConstructor( "GameObjectList", Utility.externAsm[ "Game Objects" ] ); ct.Invoke( null ); #region SKILL ASSOCIATION Item.skillIdAssoc[ 4 * 100 + 1 ] = ClothSkill.SkillId; Item.skillIdAssoc[ 4 * 100 + 2 ] = LeatherSkill.SkillId; Item.skillIdAssoc[ 4 * 100 + 3 ] = MailSkill.SkillId; Item.skillIdAssoc[ 4 * 100 + 4 ] = PlateMailSkill.SkillId; Item.skillIdAssoc[ 4 * 100 + 6 ] = ShieldSkill.SkillId; Item.skillIdAssoc[ 2 * 100 + 0 ] = AxeSkill.SkillId; Item.skillIdAssoc[ 2 * 100 + 2 ] = BowsSkill.SkillId; //skillAssoc[ 2 * 100 + 18 ] = CrossbowSkill.SkillId; Item.skillIdAssoc[ 2 * 100 + 15 ] = DaggerSkill.SkillId; Item.skillIdAssoc[ 2 * 100 + 4 ] = MacesSkill.SkillId; Item.skillIdAssoc[ 2 * 100 + 3 ] = GunSkill.SkillId; // skillAssoc[ 2 * 100 + 6 ] = SpearSkill.SkillId; Item.skillIdAssoc[ 2 * 100 + 10 ] = StavesSkill.SkillId; Item.skillIdAssoc[ 2 * 100 + 7 ] = SwordSkill.SkillId; Item.skillIdAssoc[ 2 * 100 + 16 ] = ThrowsSkill.SkillId; Item.skillIdAssoc[ 2 * 100 + 1 ] = TwoHandedAxeSkill.SkillId; Item.skillIdAssoc[ 2 * 100 + 5 ] = TwoHandedMaceSkill.SkillId; Item.skillIdAssoc[ 2 * 100 + 8 ] = TwoHandedSwordSkill.SkillId; Item.skillIdAssoc[ 2 * 100 + 19 ] = WandsSkill.SkillId; #endregion #region Faction Association factionsAssociated[ Factions.GnomereganExiles ] = 18; factionsAssociated[ Factions.Stormwind ] = 19; factionsAssociated[ Factions.IronForge ] = 20; factionsAssociated[ Factions.Darnasus ] = 21; factionsAssociated[ Factions.Ogrimmar ] = 14; factionsAssociated[ Factions.Undercity ] = 17; factionsAssociated[ Factions.ThunderBluff ] = 16; factionsAssociated[ Factions.DarkspearTrolls ] = 15; factionsAssociated[ Factions.Horde ] = 48; factionsAssociated[ Factions.Alliance ] = 47; #endregion #region Friend races list FriendRaces[ Races.Human ] = new ArrayList(); FriendRaces[ Races.Orc ] = new ArrayList(); FriendRaces[ Races.Gnome ] = new ArrayList(); FriendRaces[ Races.Dwarf ] = new ArrayList(); FriendRaces[ Races.Troll ] = new ArrayList(); FriendRaces[ Races.Tauren ] = new ArrayList(); FriendRaces[ Races.Undead ] = new ArrayList(); FriendRaces[ Races.NightElf ] = new ArrayList(); ( FriendRaces[ Races.Human ] as ArrayList ).Add( Factions.Stormwind ); ( FriendRaces[ Races.Human ] as ArrayList ).Add( Factions.GnomereganExiles ); ( FriendRaces[ Races.Human ] as ArrayList ).Add( Factions.Alliance ); ( FriendRaces[ Races.Human ] as ArrayList ).Add( Factions.Darnasus ); ( FriendRaces[ Races.Human ] as ArrayList ).Add( Factions.IronForge ); ( FriendRaces[ Races.Dwarf ] as ArrayList ).Add( Factions.Stormwind ); ( FriendRaces[ Races.Dwarf ] as ArrayList ).Add( Factions.GnomereganExiles ); ( FriendRaces[ Races.Dwarf ] as ArrayList ).Add( Factions.Alliance ); ( FriendRaces[ Races.Dwarf ] as ArrayList ).Add( Factions.Darnasus ); ( FriendRaces[ Races.Dwarf ] as ArrayList ).Add( Factions.IronForge ); ( FriendRaces[ Races.NightElf ] as ArrayList ).Add( Factions.Stormwind ); ( FriendRaces[ Races.NightElf ] as ArrayList ).Add( Factions.GnomereganExiles ); ( FriendRaces[ Races.NightElf ] as ArrayList ).Add( Factions.Alliance ); ( FriendRaces[ Races.NightElf ] as ArrayList ).Add( Factions.Darnasus ); ( FriendRaces[ Races.NightElf ] as ArrayList ).Add( Factions.IronForge ); ( FriendRaces[ Races.Gnome ] as ArrayList ).Add( Factions.Stormwind ); ( FriendRaces[ Races.Gnome ] as ArrayList ).Add( Factions.GnomereganExiles ); ( FriendRaces[ Races.Gnome ] as ArrayList ).Add( Factions.Alliance ); ( FriendRaces[ Races.Gnome ] as ArrayList ).Add( Factions.Darnasus ); ( FriendRaces[ Races.Gnome ] as ArrayList ).Add( Factions.IronForge ); ( FriendRaces[ Races.Orc ] as ArrayList ).Add( Factions.Ogrimmar ); ( FriendRaces[ Races.Orc ] as ArrayList ).Add( Factions.ThunderBluff ); ( FriendRaces[ Races.Orc ] as ArrayList ).Add( Factions.DarkspearTrolls ); ( FriendRaces[ Races.Orc ] as ArrayList ).Add( Factions.Undercity ); ( FriendRaces[ Races.Orc ] as ArrayList ).Add( Factions.Horde ); ( FriendRaces[ Races.Undead ] as ArrayList ).Add( Factions.Ogrimmar ); ( FriendRaces[ Races.Undead ] as ArrayList ).Add( Factions.ThunderBluff ); ( FriendRaces[ Races.Undead ] as ArrayList ).Add( Factions.DarkspearTrolls ); ( FriendRaces[ Races.Undead ] as ArrayList ).Add( Factions.Undercity ); ( FriendRaces[ Races.Undead ] as ArrayList ).Add( Factions.Horde ); ( FriendRaces[ Races.Tauren ] as ArrayList ).Add( Factions.Ogrimmar ); ( FriendRaces[ Races.Tauren ] as ArrayList ).Add( Factions.ThunderBluff ); ( FriendRaces[ Races.Tauren ] as ArrayList ).Add( Factions.DarkspearTrolls ); ( FriendRaces[ Races.Tauren ] as ArrayList ).Add( Factions.Undercity ); ( FriendRaces[ Races.Tauren ] as ArrayList ).Add( Factions.Horde ); ( FriendRaces[ Races.Troll ] as ArrayList ).Add( Factions.Ogrimmar ); ( FriendRaces[ Races.Troll ] as ArrayList ).Add( Factions.ThunderBluff ); ( FriendRaces[ Races.Troll ] as ArrayList ).Add( Factions.DarkspearTrolls ); ( FriendRaces[ Races.Troll ] as ArrayList ).Add( Factions.Undercity ); ( FriendRaces[ Races.Troll ] as ArrayList ).Add( Factions.Horde ); #endregion SpellTemplate.SpellEffects[ 7266 ] = new SingleTargetSpellEffect( Character.OnCastInvisibility ); SpellTemplate.SpellEffects[ 0xA14 ] = new OnSelfSpellEffect( Profession.OnFindMineral ); SpellTemplate.SpellEffects[ 6478 ] = new GameObjectTargetSpellEffect( GameObject.OnUseHandler ); Assembly ass = Assembly.GetAssembly( typeof( Utility ) ); Type []types = ass.GetTypes(); for (int i=0; i< types.Length;i++) { if ( types[ i ].GetInterface("IInitialize",true) != null ) { System.Reflection.MethodInfo info = ((Type)types[i]).GetMethod("Initialize", BindingFlags.Static | BindingFlags.Public); if (info!=null) { info.Invoke( null, null ); // Console.WriteLine("Found object {0}", info.Name); } } } ConstructorInfo glob = Utility.FindConstructor( "Globals", Utility.externAsm[ "globals" ] ); glob.Invoke( null ); // force le chargement de la base de sort int ider = Abilities.abilities[ 4 ].Id; worldSaveTimer = new WorldSave( WorldSavingTimer ); float TILESIZE =(533.33333f); float CHUNKSIZE =((TILESIZE) / 16.0f); float UNITSIZE =(CHUNKSIZE / 8.0f); int pas = 0; int op = 0; for (int j=0; j<17; j++) { int n = 8; if ( j % 2 == 0 ) n = 9; for (int k=0; k<n; k++) { pas++; //if ( pas % 4 != 0 ) // continue; float x,z; x = (float)k * UNITSIZE; z = (float)j * 0.5f * UNITSIZE; if (j%2 == 1) { x += UNITSIZE*0.5f; } Zone.quickX[ op ] = x; Zone.quickY[ op++ ] = z; } } // Load Map Console.Write( "Loading maps..." ); mapZones = new MapZones(); //World.mapZones.RawLoadAll(); Console.WriteLine( "[Done]" ); } #endregion int nAccount = 0; int nCharacter = 0; foreach( Account acc in World.allAccounts ) { nAccount++; foreach( Character ch in acc.characteres ) { nCharacter++; if ( ch.Friends == null ) continue; ArrayList final = new ArrayList(); for(int t = 0;t < ch.Friends.Count;t+=2 ) { UInt64 guid = (UInt64)ch.Friends[ t ]; string user = (string)ch.Friends[ t + 1 ]; Account into = null; foreach( Account acc2 in World.allAccounts ) { if ( user == acc2.Username ) { into = acc2; break; } } if ( into != null ) foreach( Character ch2 in into.characteres ) { if ( ch2.Guid == guid ) { final.Add( ch2 ); break; } } } ch.Friends = final; } } #region Region timers /* IDictionaryEnumerator enumZones = zones.GetEnumerator(); while (enumZones.MoveNext()) { new ZoneTimer( enumZones.Value ); }*/ #endregion Console.WriteLine("{0} accounts, {1} characters", nAccount, nCharacter ); loading = false; #region Standard region final if ( !RealmServer ) { NPCQuests.Init(); allMobs.Clear(); Console.WriteLine( "Standard server mode" ); } #endregion else Console.WriteLine( "Realm list server mode" ); }
/// <summary> /// Initializes a new instance of <see cref='BaseSpawnerEnumerator'/>. /// </summary> public BaseSpawnerEnumerator(SpawnerList mappings) { this.temp = ((IEnumerable)(mappings)); this.baseEnumerator = temp.GetEnumerator(); }
/// <summary> /// Initializes a new instance of <see cref='SpawnerList'/> based on another <see cref='SpawnerList'/>. /// </summary> /// <param name='val'> /// A <see cref='SpawnerList'/> from which the contents are copied /// </param> public SpawnerList(SpawnerList val) { dirty = true; this.AddRange(val); }