-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpicodiver.p8
executable file
·642 lines (592 loc) · 34 KB
/
picodiver.p8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
pico-8 cartridge // http://www.pico-8.com
version 16
__lua__
-- pico-diver
-- a demake of the secret "booty" easter-egg game
-- originally created by john f. cain
-- for the zx spectrum in 1984
-- recreated by nate taylor for the pico-8, 2018
-- init
function _init() -- move to gameinit?
titleinit() -- menu
end
function gameinit()
mode = 1
end
function titleinit()
cab = {} -- cabin boy
cab.sp = 4
cab.ini = 5
cab.img = 5
cab.ani = 2
cab.x = 48
cab.y = 48
cab.w = 2
cab.h = 1
cab.dr = true
cab.mov = false
cab.score = 0 -- cheat: 20 to win / 1000 in hard mode
cab.life = 3
cab.oxy = 10
creat = {{1,48,65,65,66,2,1,1,false}, -- 1 fish
{1,48,80,80,85,3,2,1,false}, -- 2 eel
{1,48,96,96,104,3,3,2,false}, -- 3 dolphin/shark
{1,48,105,105,108,2,2,2,true}, -- 4 piranah
{1,48,73,73,76,2,2,2,false}} -- 5 big fish
-- x, y, sprstr, sprcur, sprend, ani, wid, hi, face
-- 1, 2, 3, 4, 5, 6, 7, 8, 9
oct = {}
oct.x = 1
oct.t = 11
oct[1] = 1
oct[2] = 32
oct[7] = 1
oct[8] = 2
obj = {}
newobj(1) -- start with a fish
backx = 1
sx = 1
hard = false
mode = 0
frame = 1
level = 1 -- cheat: change up to 10
easy = false -- cheat: infinite lives / no fish stolen
octspeed = 5
bubblelimit = 10
fishnum = 45
end
function _update() -- menu
if (mode == 0) then --title screen mode
titleupdate()
elseif (mode == 9) then
deathupdate()
elseif (mode == 6) then
winupdate()
elseif (mode == 3) then
hardupdate()
else
gameupdate()
end
end
function titleupdate() -- menu
end
function deathupdate()
end
function hardupdate()
end
function winupdate()
end
function _draw() -- menu
if (mode == 0) then --title screen mode
titledraw()
elseif (mode == 9) then
deathdraw()
elseif (mode == 6) then
windraw()
elseif (mode == 3) then
harddraw()
else
gamedraw()
end
end
function back()
cls()
map(0,4,0,32,16,12)
shipshow()
end
function titledraw()
back()
color(7)
centre_print ("pico-diver",2)
color(10)
centre_print ("catch 20 goldfish to win",36)
centre_print ("but don't run out of air",52)
centre_print ("or collide with the big fish",68)
color(8)
centre_print ("press x for easy mode",84)
if (btn(5)) then
gameinit()
end
centre_print ("press z for arcade mode",92)
if (btnp(4)) then
mode = 3
harddraw()
end
color(7)
centre_print ("nct 2018 / jfc 1984",108)
end
function wait(a) for i = 1,a do flip() end end -- fixme - replace
function harddraw()
back()
color(7)
centre_print ("arcade mode",2)
color(10)
centre_print ("10 levels - each one faster",36)
centre_print ("grey sharks kill",52)
centre_print ("oxygen is reduced over time",68)
centre_print ("try for a perfect score",84)
color(8)
centre_print ("press x to begin",108)
color(7)
hard = true
if (btnp(5)) then
gameinit()
end
end
function gamedraw()
back()
-- score
color(0)
print("fish "..cab.score,1,121)
if hard == true then
if level < 10 then
print("level "..level,100,121)
else print("level "..level,96,121)
end
end
for l=1,cab.oxy do -- oxygen
spr(51,0+(l*8)-8,0)
end
for l=1,cab.life do -- lives
spr(32,128-(l*8),0) -- was 96+
end
octshow()
fishshow()
cabshow()
-- fish and creatures appear randomly
if frame % fishnum == 0 then -- was 45
newobj(1) -- small fish
end
if frame % 60 == 0 then
newobj(2+flr(rnd(4))) -- big fish
end
-- if hard mode turn dolphin to shark
if hard == true then
pal(12,6)
end
end
function windraw()
back()
color(7)
centre_print ("you win",2)
color(10)
centre_print ("a perfect score!",40)
if level == 11 then centre_print ("1000 points, 200 fish",60)
else centre_print ("100 points, 20 fish",60)
end
color(8)
centre_print ("press x to restart",88)
if (btnp(5)) then
titleinit()
end
centre_print ("press z for hard mode",96)
if (btnp(4)) then
mode = 3
harddraw()
end
color(7)
hard = false
end
function deathdraw()
back()
color(7)
centre_print ("game over",2)
color(10)
centre_print ("your score was "..(cab.score*5),36)
centre_print ("you collected "..cab.score.." fish",52)
centre_print ("you lost "..(3-cab.life).." lives",68)
if hard == true then
centre_print ("you reached level "..level,84)
end
color(8)
centre_print ("press x to begin",92)
if (btnp(5)) then
titleinit()
end
centre_print ("press z for hard mode",104)
if (btnp(4)) then
mode = 3
harddraw()
end
color(7)
hard = false
end
function centre_print(strtxt,py) print(strtxt,64-(#strtxt*2),py) end
function gameupdate()
cab.mov = false
if btn(0) then -- left
cab.dr = false
cab.x -= 1
if (cab.x < 8) cab.x = 8 -- if try to go too far left stop
cabmove()
end
if btn(1) then -- right
cab.dr = true
cab.x += 1
if (cab.x > 108) cab.x = 108 -- if try to go too far right stop
cabmove()
end
if btn(2) then -- up
cab.y -= 1
if (cab.y < 32) cab.y = 32 -- if try to go too far left stop
cabmove()
end
if btn(3) then -- down
cab.y += 1
if (cab.y > 108) cab.y = 108 -- if try to go too far right stop
cabmove()
end
-- collision with squid
if collider(cab,oct) then
if frame % 20 == 0 then
if cab.score > 0 and easy == false then
cab.score -= 1
sfx(0)
end
end
end
-- collision with fish/creature
for thing in all (obj) do
if collider(cab,thing) then
-- score - if hits fish
if thing[3] <= 66 then
cab.score += 1
sfx(2)
end
-- if hits creature
if thing[3] >= 67 then
if cab.score >= 1 and easy == false then
cab.score -= 1
sfx(0)
end
-- if a shark it kills!
if hard == true and (thing[3] < 105 and thing[3] > 95) and easy == false then
cab.life -= 1
sfx(1)
end
end
del(obj,thing)
end
-- remove from table if leaves screen
if thing[1] >= 128 then
del(obj,thing)
end
-- remove any overlapping
for l=1,#obj do
if not (thing[4] == obj[l][4]) then
if thing[1] == obj[l][1] then
del(obj.thing)
end
end
end
end
-- creature animation
if frame % 10 == 0 then
for n=1,#obj do
obj[n][4] += (obj[n][7]) -- what does this do?
-- obj[n][4] += 1
if obj[n][4] > obj[n][5] then -- current sprite > end sprite
obj[n][4] = obj[n][3] -- current sprite = start sprite
end
end
end
if frame % octspeed == 0 then
octmove()
end
-- hard level variable changes
if level >= 9 then
octspeed = 1
bubblelimit = 6
fishnum = 65
elseif level >=7 then
octspeed = 2
bubblelimit = 7
fishnum = 60
elseif level >=5 then
octspeed = 3
bubblelimit = 8
fishnum = 55
elseif level >= 3 then
octspeed = 4
bubblelimit = 9
fishnum = 50
elseif level >= 1 then
octspeed = 5
bubblelimit = 10
fishnum = 45
end
-- win / lose
if cab.life == 0 then mode = 9 end
-- win with 20 fishes or reach next level if hard mode
if cab.score == 20 then
if hard == false then mode = 6 end
-- advance to next level (hard mode)
if hard == true then
if level < 11 then
level += 1
cab.score = 0
end
-- complete hard mode
if level == 11 then
mode = 6
end
end
end
-- oxygen
if cab.y == 32 then
if cab.oxy < bubblelimit then
if frame % 20 == 1 then cab.oxy += 1 end
end
end
if cab.y > 32 then
if frame % 30 == 1 then cab.oxy -= 1 end
if cab.oxy == 0 and cab.life > 0 and easy == false then
cab.oxy = bubblelimit -- was 10
cab.life -= 1
sfx(1)
end
end
frame +=1
end
function cabmove()
cab.mov = true
cab.img += 1
if cab.img > cab.ini+cab.ani then
cab.img = cab.ini
end
end
function newobj(type)
local thing = {}
thing[1] = 1 -- x
thing[2] = 48+flr(rnd(56)) -- y
for l=3,9 do
thing[l] = creat[type][l]
end
add(obj,thing)
end
function cabshow()
-- cabin boy
spr(cab.img,cab.x,cab.y,1,cab.h,cab.dr)
-- if facing left
if cab.dr == true then
spr(cab.sp,cab.x+8,cab.y,1,cab.h,cab.dr)
else -- facing right
spr(cab.sp,cab.x-8,cab.y,1,cab.h,cab.dr)
end
end
function fishshow()
for n=1,#obj do
objmove(n)
spr(obj[n][4],obj[n][1],obj[n][2],obj[n][7],obj[n][8],obj[n][9])
end
end
function objmove(n)
-- make objects move around the screen
obj[n][1] +=1 -- x += 1 (right)
-- add detection for going off screen and removing
end
function octshow()
spr(11,oct.x,32)
spr(oct.t,oct.x,32+8)
end
function octmove()
if oct.x < 128 then
oct.x += 1
else oct.x = 1
end
if oct.t == 14 then
oct.t = 12
else oct.t += 1
end
oct[1] = oct.x
end
function shipshow()
pal(2,12) -- don't ask ;-)
map(0,0,sx,0,16,4)
if frame % 30 == 1 then
sx +=1
end
if sx >= 128 then
sx = 1
end
map(0,0,sx-128,0,16,4)
end
function collider(obj1, obj2) -- cabin boy, creature
-- object collision check
if (obj1.x < (obj2[1]+(obj2[7]*8))) -- 1x < 2x + 2w (2w*8)
and (obj1.x+(obj1.w*8) > obj2[1]) -- was obj1.x+8
and (obj1.y < (obj2[2]+(obj2[8]*8))) -- 1y < 2y + 2h (2h*8)
and (obj1.y+(obj1.h*8) > obj2[2]) then -- was obj1.y+8
return true
else
return false
end
end
__gfx__
0000000022222222222222222222222211116111111111111111111111111111000000002222222200000000111bb1111b1b1b111b1b1b111b1b1b1100000000
000000002222222222222222222222221144611111111111111111d1111111d1000cc000222222220000000011bbbb111b1b1b111b1b1b11b1b1b1b100000000
007007002222222222222222222222221a4461878787111187871d0d22871ddd00c60c0022222222000000001bbbbbb11b1b1b111b1b1b11b1b1b1b100000000
00077000222222222222222222222222a0a467822287dddd8787d00d87a7dddd0c0000c022222222000000001bb0bbb11b1b1b11b11b11b1b1b1b1b100000000
000770002222222288222222222222221aa6608787a7000d228700dd878700dd0c0000c022222222000000001bbbbbb11b1b1b11b11b11b1b1b1b1b100000000
007007002222222224222222222222221166a0878787dd0d87a7dddd8787d00d00c00c0022222222000000001bbbbbb11b1b1b11b11b11b1b1b1b1b100000000
0000000022222222742222222222222211111787878111dd87811ddd87811d0d000cc00022222222000000001bbbbbb11b1b1b11b11b11b1b1b1b1b100000000
000000002222222274222288222222221111111111111111111111dd111111dd0000000022222222000000001bbbbb111b1b1b11b11b11b1b1b1b1b100000000
000000002222222774222274222222221111111111111111111111111111111106000000aaaaaaaa000000000000000000000000000000000000000000000000
000660002222227724222774222222221111111111111111111111111111111160600000aaaaaaaa000000000000000000000000000000000000000000000000
006716002222222274222224222222221111111111111111111111111111111106000600aaaaaaaa000000000000000000000000000000000000000000000000
061111602222227774222774222882221111111111111111111111111111111100006060aaaaaaaa000000000000000000000000000000000000000000000000
061111602222276764227774222242221111111111111111111111111111111100000600aaaaaaaa000000000000000000000000000000000000000000000000
006116002222277674277774222742221111111111111111111111111111111100600000aaaaaaaa000000000000000000000000000000000000000000000000
000660002222776764777774227742221111111111111111111111111111111106060000aaaaaaaa000000000000000000000000000000000000000000000000
000000002227777774222224222242221111111111111111111111111111111100600000aaaaaaaa000000000000000000000000000000000000000000000000
00000000222222222422222422222222111111110660006666000660111111110000000011111111000000000000000000000000000000000000000000000000
00077000244442222222222222444444111111116060666666660606111111110000000011111111000000000000000000000000000000000000000000000000
00077000244444444444444444444444111111116606666666666066111111110000060011111111000000000000000000000000000000000000000000000000
00000000244444444444444444444422111111110066666666666600111111110000606011111111000000000000000000000000000000000000000000000000
0077770024444a4a44a4a44a4a444222111111110066000000006600111111110000060011111111000000000000000000000000000000000000000000000000
070770702244444444444444444422221111111100660006600066001111111100600000111a1111000000000000000000000000000000000000000000000000
0007700022444444444444444444222211111111006600066000660011111111060600001aaaa111000000000000000000000000000000000000000000000000
007007002222222222222222222222221111111100666666666666001111111100600000aaaaaa1a000000000000000000000000000000000000000000000000
00666000111111111111111100000000111111110006666006666000111111110000000000000000000000000000000000000000000000000000000000000000
06666600111a11111111111100666000111111110006666006666000111111110000000000000000000000000000000000000000000000000000000000000000
606660601aaaa1111111111106000600111111110006666666666000111111110000000000000000000000000000000000000000000000000000000000000000
60060060aaaaaa1a1111111160600060111111110006660660666000111111110000000000000000000000000000000000000000000000000000000000000000
66666660aaaaaaaa1111111160000060111111110066000000006600111111110000000000000000000000000000000000000000000000000000000000000000
66606660aaaaaaaa1111111160000060111111116606660660666066111111110060000000000000000000000000000000000000000000000000000000000000
06666600aaaaaaaa1111111106000600111111116060066666600606111111110606000000000000000000000000000000000000000000000000000000000000
06060600aaaaaaaa1111111100666000111111110660006666000660111111110060000000000000000000000000000000000000000000000000000000000000
111111111111111111111111111111111999999119999111111111111111111111111111111111eee1111111111111eee111111111111111111bb11100000000
111111111aa1aaa11aa1aaa11111111111111119111119991999999999999911111111111111111e0e1111111111111e0e1111111111111111bbbb1100000000
1111111111aaa0aa1aaaa0aa1111111119999991111111111111111199999991111111111e11111e00e111111e11111e00e11111111111111bbbbbb100000000
1111111111aaaaaa11aaaaaa1111111111111119199999991999999999990999111111111ee111eeeee111111ee111eeeee11111111111111bb0bbb100000000
1111111111aaaaaa1aaaaaaa1111111119999991111111111111111199999999111111111eee1eeeeeeee1111eee1eeeeeeee111111111111bbbbbb100000000
111111111aa1aaa11aa1aaa111111111111111191111199919999999999999911111111111eeeeeeee0eeee111eeeeeeee0eeee1111111111bbbbbb100000000
11111111111111111111111111111111199999911999911111111111199999111111111111eeeeeeeeeeeeee11eeeeeeeeeeeeee111111111bbbbbb100000000
1111111111111111111111111111111111111111111111111111111111111111111111111eeeeeeeeeeeeee11eeeeeeeeeeeeee1111111111bbbbb1100000000
1111111111111111111111111111111111111111111111111111111111111111111111111ee11eeeeeeee1111ee11eeeeeeee111111111111b1b1b1100000000
1111111111118811188111111111111111111111111111111111111111111111111111111e1111eeeee111111e1111eeeee11111111111111b1b1b1100000000
1111111111188881188111111118811111188111111118811111111111111111111111111111111e00e111111111111e00e11111111111111b1b1b1100000000
1111111111881188188811111188881111888811111188811111111111111111111111111111111e0e1111111111111e0e111111111111111b1b1b1100000000
881111111881118811888111188118811888188111188111111111111111111111111111111111eee1111111111111eee1111111111111111b1b1b1100000000
88881118881111111111881188111881881111888188111111111111111111111111111111111111111111111111111111111111111111111b1b1b1100000000
11888188811111111111188881111111881111188881111111111111111111111111111111111111111111111111111111111111111111111b1b1b1100000000
11118881111111111111118811111111111111118811111111111111111111111111111111111111111111111111111111111111111111111b1b1b1100000000
11c1111111111111111111111111111111111111111111111111111111111111111111111111111ee11111111111111ee1111111111111111b1b1b1100000000
1cc1111111c11111111111111111111111c11111111111111111111111c11111111111111111111ee11111111111111ee1111111111111111b1b1b1100000000
1cc1111111cc1111111111111111111111cc1111111111111111111111cc11111111111111111199ee11111911111199ee111199111111111b1b1b1100000000
ccccc111111cc111cccc111111c11111111cc111cccc111111111111111cc111cccc1111111199999e111199111199999e11119911111111b11b11b100000000
ccccccc111cccccccc0cc1111cc1111111cccccccc0cc1111111111111cccccccc0cc1111119990999911199111999099991199111111111b11b11b100000000
cc1cccccccccccccccccc1111ccc11ccccccccccccccc11111111111ccccccccccccc1111199907099911991119990709991199111111111b11b11b100000000
c111cccccccccccccccc11111ccccccccccccccccccc11111111111ccccccccccccc111111eee9009999199111eee9009999999111111111b11b11b100000000
11111cccccccccccccc1111111ccccccccccccccccc11111111111ccccccccccccc11111eeeeee9999999991eeeeee999999991111111111b11b11b100000000
1111111ccccccccc111111111ccc11cccccccccc11111111c111cccccccccccc111111111eeee999999999111eeee99999999911111111111b1b1b1100000000
111111111111cc11111111111cc111111111cc1111111111cc1cccccc111cc111111111117700e999999999117700e999999991111111111b1b1b1b100000000
11111111111cc1111111111111c11111111cc11111111111ccccccc1111cc111111111111700ee99999919911700ee999999999111111111b1b1b1b100000000
1111111111111111111111111111111111111111111111111cccc111111111111111111117eee9999991199117eee9999991199111111111b1b1b1b100000000
1111111111111111111111111111111111111111111111111cc11111111111111111111111111999e111119911111999e111199111111111b1b1b1b100000000
1111111111111111111111111111111111111111111111111cc11111111111111111111111111199e111119911111199e111119911111111b1b1b1b100000000
11111111111111111111111111111111111111111111111111c1111111111111111111111111119911111119111111991111119911111111b1b1b1b100000000
1111111111111111111111111111111111111111111111111111111111111111111111111111111911111111111111191111111111111111b1b1b1b100000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00102000000000200000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
10112131000011213100101121310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
10122232001012223200101222320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
07070707070707070707070707070707000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
07070702070707070107078007070707000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
07070707070707070707078207070707000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
07070707070707406007070707070707000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
07070707070707070707070707070707000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
07070793a30707070707070707074151000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
07070707070707070707070707074252000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
07070707070707070707070707070707000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
07070707070707070707070707070707000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
07070707070707070707070707070707000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
14141414141414141414141414141414000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__gff__
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__map__
0909090909090909090909090909090950505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050
0901020909090902090909090209090946504751515146504751515146505047465047515151465047515151465050474650475151514650475151514650504746504751515146504751515146505047465047515151465047515151465050474650475151514650475151514650504746504751515146504751515146505047
0911121309091112130909111213090970707070707070437070707070465070707070707070704370707070704650707070707070707043707070707046507070707070707070437070707070465070707070707070704370707070704650707070707070707043707070707046507070707070707070437070707070465070
0921222309092122230909212223090970707070707070707070707070704770707070707070707070707070707047707070707070707070707070707070477070707070707070707070707070704770707070707070707070707070707047707070707070707070707070707070477070707070707070707070707070704770
3232323232323232323232323232323270707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070
3232323232323232323232323232323270707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070
3232323232323232323232323232323270707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070
3232323232323232323232323232323270707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070
3232323232323232323232323232323270707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070
3232323232323232323232323232323270707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070707070
3232323232323232323232323232323270707070707070707070417070707070707070707070707070704170707070707070707070707070707041707070707070707070707070707070417070707070707070707070707070704170707070707070707070707070707041707070707070707070707070707070417070707070
3232323232323232323232323232323270707070707070707070504570707070707070707070707070705045707070707070707070707070707050457070707070707070707070707070504570707070707070707070707070705045707070707070707070707070707050457070707070707070707070707070504570707070
3232323232323232323232323232323270707070707070707070505045707070707070707070707070705050457070707070707070707070707050504570707070707070707070707070505045707070707070707070707070705050457070707070707070707070707053504570707070707070707070707070505045707070
3232323232323232323232323232323270707070707070707044504770707070707070707070707070445047707070707070707070707070704450507070707070707070707070707044504770707070707070707070707070445047707070707070707070707070704450477070707070707070707070707044504770707070
2929292929292929292929292929292952524152525252524450505252525252525241525252525244505052525252525252415252525252445050525252525252524152525252524450505252525252525241525252525244505052525252525252415252525252445050525252525252524152525252524450505252525252
1919191919191919191919191919191950505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050
3939393939393939000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000717171000000000000717171717100000000000000
3939393939393939000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
3939390039393939000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
3939393939393939000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
3939393939393939000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
3939393939393939000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
7171717171717171000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
7171717171717171000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000007100710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
4848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__sfx__
00010000121502415003700037000170001700037000370003700027000270001700257002a7002f60026700257002e6002770021700277001d7001b700187000e7000a700077000270001700017000270001700
000f0000236001c05026600120501f600090500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000002a5202d5202b5200150001500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000