This repository has been archived by the owner on Aug 26, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
chicken.p8
685 lines (640 loc) · 41.2 KB
/
chicken.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
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
pico-8 cartridge // http://www.pico-8.com
version 18
__lua__
-- chicken catcher simulator 3000
-- by cpiod and wickedwormwodd
function reinit()
s=0
tmsg=0
sounddone=false -- for game over sfx
score=0
chick={}
for i=1,nbchick do
vx=rnd(.1)+.5
vy=rnd(vx/2)
if(rnd()<.5) vx=-vx
if(rnd()<.5) vy=-vy
add(chick,{x=m+rnd(sizex-2*m-16),y=m+rnd(sizey-2*m-16),vx=vx,vy=vy,s=1+flr(rnd(3)),t=rnd(3),t0=rnd(),c=rnd_state(ccolor),l=2})
end
hand_x=0
hand_y=0
hand_xo=0
hand_yo=0
camx=sizex/2-64
camy=sizey/2-64
end
function _init()
-- state: 0=menu
-- 1=game
-- 2=capturing
-- 3=captured
-- chicken status:
-- 1=move
-- 2=peck
-- 3=stop
-- 4=run
-- 5=flee
nbchick=20
sizex=128*3 -- pen size
sizey=128*3
sounds={"","","","coo coo",""} -- line 1
sounds2={"cot cot","tock tock","kokkokko","motherfucker","cluck cluck"} -- line 2
-- sprites for each chicken state
animation={{8,6,40},{10,12},{6},{36,8},{42,44}}
-- animation speed per state
speed={4,5,1,7,5}
ccolor={1,1,1,1,1,2,3,4,5,5,5}
plants={}
insects={}
ins_spr={2,18,38,54}
ins_speed={0,.1,.2,.1}
m=50 -- bounce margin
next_state={{2,2,4,3},{1,1,3},{1,3},{1,1,2,3},{1,1,2,3}}
len_state={2,4,2,1,3}
for i=1,10 do --4x4
add(plants,{x=rnd(sizex-32),y=rnd(sizey-32),s=rnd_state({64,68}),m=rnd()<.5,l=4})
end
for i=1,100 do --2x2
add(plants,{x=rnd(sizex-16),y=rnd(sizey-16),s=rnd_state({72,74,76,78,104,106,108,110,201,203,205}),m=rnd()<.5,l=2})
end
for i=1,500 do --1x1
add(plants,{x=rnd(sizex-8),y=rnd(sizey-8),s=rnd_state({233,234,235,236,237}),m=rnd()<.5,l=1})
end
sort_by_y(plants)
for i=1,100 do
add(insects,{x=rnd(sizex),y=rnd(sizey),s=1+flr(rnd(4)),m=rnd()<.5,t0=rnd(),v=.5+rnd(1),l=1})
end
sort_by_y(insects)
reinit()
end
-- sort by their y value
function sort_by_y(t)
for i=#t,2,-1 do
done=true
for j=1,i-1 do
if t[j+1].y+t[j+1].l*8<t[j].y+t[j].l*8 then
t[j+1],t[j]=t[j],t[j+1]
done=false
end
end
if(done) return
end
end
function _update60()
if s==0 then
-- title
if btnp(🅾️) then
t0=t()
t1=nil
s=1
tmsg=t()+5
end
elseif s==1 then
-- capture
if btnp(🅾️) then
-- reset the game
if #chick==0 then
reinit()
return
elseif hand_x==0 and hand_y==0 then
-- update hand position and make run
hand_xo=20 hand_yo=-20 s=2 make_run()
end
end
elseif s==3 and t()>ts then
-- end of capturing animation
hand_xo=0
hand_yo=0
s=1
end
-- update hand position
if(hand_x<hand_xo) hand_x+=2
if(hand_y>hand_yo) hand_y-=4
if(hand_x>hand_xo) hand_x-=1
if(hand_y<hand_yo) hand_y+=1
if s==1 or s==2 then
-- controls
if(btn(⬆️)) camy-=5
if(btn(⬇️)) camy+=5
if(btn(⬅️)) camx-=5
if(btn(➡️)) camx+=5
-- move camera
if(camx<0) camx=0
if(camx>sizex-128) camx=sizex-128
if(camy<0) camy=0
if(camy>sizey-128) camy=sizey-128
end
-- hand are ready to capture
if s==2 and hand_x==hand_xo and hand_y==hand_yo then
c=chk_capture()
if c!=nil then
-- a chicken is captured!
del(chick,c)
captured=c
score+=1
s=3
ts=t()+1
sfx(0)
if(#chick==0) t1=t()
else
-- no chicken :(
hand_xo=0
hand_yo=0
s=1
end
end
for i in all(insects) do
-- update insects position
local mult=i.m and 1 or -1
i.x+=mult*ins_speed[i.s]*i.v
-- bounce
if(i.x<2) i.m=true
if(i.x>sizex-10) i.m=false
end
for c in all(chick) do
-- change chicken state
if c.t<t() then
c.s=rnd_state(next_state[c.s])
c.t=t()+len_state[c.s]+rnd(1)
end
-- chicken moving
if c.s==1 then -- walk
c.x+=c.vx
c.y+=c.vy
elseif c.s==4 then -- run
c.x+=3*c.vx
c.y+=3*c.vy
elseif c.s==5 then -- fly
c.x+=5*c.vx
c.y+=8*c.vy
end
-- bounce
if c.x<m then
c.vx=abs(c.vx)
elseif c.x>sizex-m-16 then
c.vx=-abs(c.vx)
end
if c.y<m then
c.vy=abs(c.vy)
elseif c.y>sizey-m-16 then
c.vy=-abs(c.vy)
end
end
end
-- get a random value of a table
function rnd_state(t)
return t[ceil(rnd(#t))]
end
function _draw()
cls(5) -- background
-- peck sfx
if(#chick>0 and rnd()>1-#chick*0.001) sfx(rnd_state({1,2}))
-- share if cupturing
if s==3 then
camera(camx+rnd(6)-3,camy+rnd(6)-3)
else
camera(camx,camy)
end
for e in all(plants) do
if(is_on_screen(e.x,e.y,e.l)) spr(e.s,e.x,e.y,e.l,e.l,e.m)
end
-- insects
for i in all(insects) do
if(is_on_screen(i.x,i.y,i.l)) spr(ins_spr[i.s]+flr((3*t()+i.t0)%2),i.x,i.y,1,1,i.m)
end
-- chickens
sort_by_y(chick)
for c in all(chick) do
set_color(c.c)
if(is_on_screen(c.x,c.y,c.l)) spr(anim(c.s,c.t0),c.x,c.y,2,2,c.vx>0)
if c.s==3 then
niceprint(sounds[c.c],nil,c.y-16,9,0,c.x+8)
niceprint(sounds2[c.c],nil,c.y-8,9,0,c.x+8)
end
end
pal()
-- shake if capturing
if s==3 then
camera(rnd(6)-3,rnd(6)-3)
else
camera()
end
if s==1 then
spr(16,60,60,2,2) -- target
end
if s==1 or s==2 then -- hands
sspr(88,64,32,32,-20+hand_x,hand_y+70+abs(5*sin(.05*t())),64,64)
sspr(88,64,32,32,127-43-hand_x,hand_y+70+abs(5*sin(.05*t())),64,64,true)
end
if s==3 then -- hands with chicken
sspr(16,64,72,32,0,hand_y+70+abs(5*sin(.05*t())),128,64)
set_color(captured.c)
sspr(0,96,72,32,0,hand_y+70+abs(5*sin(.05*t())),128,64)
niceprint("+1",nil,40,8,0)
pal()
end
-- score
if s==1 or s==2 or s==3 then
niceprint("chickens: "..score.."/"..nbchick,5,5,7,0)
local d=((t1 and t1 or t())-t0)
d=flr(d*10)/10
if d%1==0 then
d=tostr(d)..".0"
else
d=tostr(d)
end
local s="time: "..d.."s"
niceprint(lpad(s,12),76,5,7,0)
end
-- game over message
if #chick==0 and s!=3 then
if(not sounddone) sfx(3) sounddone=true
niceprint("well done.",nil,30,8,0)
niceprint("there are no more chickens",nil,37,8,0)
niceprint("on earth...",nil,44,8,0)
niceprint("press 🅾️/z to restart",nil,58,8,0)
end
-- controls message
if s!=0 and t()<tmsg then
niceprint("move with arrows, catch with z",nil,110,7,0)
end
if s==0 then -- title
local space=10
niceprint("chicken",15+sin(t())*5,30,7,0)
niceprint("catcher",15+sin(t()+.2)*5,30+space,7,0)
niceprint("simulator",15+sin(t()+.4)*5,30+2*space,7,0)
niceprint("3000",15+sin(t()+.6)*5,30+3*space,7,0)
niceprint("press 🅾️/z to start",nil,90,t()%1>.5 and 7 or 8,0)
niceprint("by cpiod (code) and",nil,113,7,0)
niceprint("wickedwormwood (pixels)",nil,121,7,0)
end
-- camera()
-- print(stat(0).."kib "..(100*stat(1)).."% "..stat(7).."fps",1,23,8)
end
function lpad(s,l)
if(#s<l) return lpad(" "..s,l)
return s
end
-- check whether something is on screen
function is_on_screen(x,y,l)
return x+8*l>camx and x<camx+128
and y+8*l>camy and y<camy+128
end
-- set the color of a chicken
function set_color(c)
if c==1 then
-- orange
pal()
elseif c==2 then
-- albinos
pal()
pal(9,7)
pal(4,6)
pal(12,8)
pal(8,14)
pal(10,15)
elseif c==3 then
-- glas (green)
pal()
pal(9,11)
pal(4,3)
pal(12,1)
pal(8,12)
pal(2,1)
pal(10,3)
elseif c==4 then
-- black
pal()
pal(9,0)
pal(4,2)
pal(12,8)
pal(8,1)
pal(2,0)
pal(10,2)
pal(0,7)
elseif c==5 then
-- grey
pal()
pal(9,6)
pal(4,13)
pal(12,11)
pal(8,9)
pal(2,4)
pal(10,10)
end
end
-- print with shadow
function niceprint(s,x,y,c1,c2,center)
center=center or 64
x=x or center-#s*2
for i=-1,1 do
for j=-1,1 do
print(s,x+i,j+y,c2)
end
end
print(s,x,y,c1)
end
-- manhattan distance
function dist(x,y)
return abs(x-(camx+64))+abs(y-(camy+64))
end
-- check if a chicken is captured
function chk_capture()
local distmax=30
local distbest=1000
local best=nil
for c in all(chick) do
local d=dist(c.x,c.y)
if d<distmax and d<distbest then
best=c
distbest=d
end
end
return best
end
-- make the chickens close to (x,y) run
function make_run(x,y)
local distmax=50
for c in all(chick) do
if dist(c.x,c.y)<distmax then
c.s=5
c.t=t()+len_state[c.s]+rnd(1)
end
end
end
-- get the animation sprite number
function anim(s,t0)
local n=((t0+t())*speed[s])
local l=#animation[s]
return animation[s][1+ceil(n)%l]
end
__gfx__
000000000aaa0000000000000000000a000080000000000000008000000000000000800000000000000000000000000000000000000000000000000000000000
000000008aca0000000aaa0a000aaa0a000088800000000000008880000000000000888000000000000000000000000000000000000000000000000000000000
007007000aaaaaaa0aaaaaaa00aaaaaa000999880000000000099988000000000009998800000000000000000000000900000000000000090000000000000000
0007700000a9aaa0aaa9aa9a0aa9aa9a0aacc998800000090aacc998800000090aacc99880000009000000000000000900000000000000090000000000000000
0007700000aa9aa0acaa99aaaaaa99a0aa99999000000009aa99999000000009aa99999000000009000000000000000900000000009999090000000000000000
007007000009aa00aaaaaaa0acaaaaa0000989999000009900098999900000990009899990000099008000099444440900000009944444990000000000000000
000000000009040008009040aaa09040000089999944444900008999994444490000899999444449088800999999994900000099999999490000000000000000
00000000009944000009944008099440000089999999999400008999999999940000899999999994889999999999999400800999999999940000000000000000
88888800088888800aaa00000aaa0000000009999499994900000999949999490000099994999949899999994499994908889999449999490000000000000000
80000000000000808aca00008aca000000000999994994990000099999499499000009999949949989c999999949949988999999994994990000000000000000
80000000000000800aaaaaaa0aaaaaaa00000999999449900000099999944990000009999994499009c999999994499089999999999449900000000000000000
800000000000008000a9aaa000a9aaa00000009999998990000000999999999000000099999999900a9988999999999089c99999999999900000000000000000
800000000000008000aa9aa000aa9aa00000009999988890000000999988999000000099999899900aa009999988999009c99899998890000000000000000000
8000000800000080000aaa00000aaa4000000022999998800000000029989000000000009998800000a00000299890000a998000299800000000000000000000
0000000800000000040409009090000400020220000000800000000002080000000002022000080000000000020800000aa00000020800000000000000000000
00000888880000000040990009000040000022000000880000000002288880000000002200088800000000022888800000a00002288880000000000000000000
00000008000000000000000000000000000080000000000000000000000040000000800000000000000088000000044000008800000000000000000000000000
800000080000008000000000000000000000888000000000000b4000000b00000000888000000000000088800000499400cc8880000000000000000000000000
80000000000000800000000000000000000999880000000004b1104000b114000009998800000000000c98890004999400cc9889000000000000000000000000
800000000000008000000000000000000aacc9988000000900011104040111400aacc99880000009000999800049994000099980004000000000000000000000
80000000000000800000000000000000aa999990000000090040111000041110aa9999900000000940aa99994499994000aa9999449400000000000000000000
80000000000000800000000000000000000989999000009900040110000001100009899990000099994444999949940000004499994940000000000000000000
88888800088888800000000000000000000089999944444900000000000040000000899999444449499999999994400000049999999440000000000000000000
00000000000000000000000000000000000089999999999400000000000000000000899999999994044999999999440000499999999944000000000000000000
000000000000000000000000000000000000099994999949e0000000000000000000099994999949008444499994940000499999999494000000000000000000
0000000000000000000000000000000000000999994994990e000000e00000000000099999499499088899999949940004999999994994000000000000000000
0000000000000000000000000000000000000999999449900e000000e000ee000000099999944990000889999999940049994999999994000000000000000000
0000000000000000000000000000000000000098899999900e0ee0000e0e00e00000009999999990000008999999900049940889999990000000000000000000
0000000000000000000000000000000000000088999999900ee00e0000ee00e00000009989999990000000009992200044400088999000000000000000000000
00000000000000000000000000000000000008809999902200000e000000000e0000000889999220000000000000220200000008808000000000000000000000
000000000000000000000000000000000080880000000002000000ee0000000e0000808800000020000000000000002000000000880000000000000000000000
00000000000000000000000000000000000880000000022000000000000000000000088000002220000000000000020200000008088000000000000000000000
00000000000000033b000000000000000000000000000000000000000000000000000000000000000000000abbb00000000000000000000000000000c0000000
0000000000000033bba00000000000000000000000000000000000000000000000000000000b00000000000ab00b00000000000000000000000000bcac000000
00000000000000033b00000000000000000000000000000000000000000000000000000000bbb0000000000ab300b00000000000000000000000000bc0000000
000000000000003a3bb000000000000000000000000000000000000000000000000000000bb3b000000000003300b000000000000000b00000bb000bb0060000
00000000000003b3bbb00000000000000000000000000000000000000000000000000000ba3bb0000000000000003000000000000003bb000000bb00b0dd6000
000000000000033bbba0000000000000000008000000000000000000000000000000000bbb3bb0010000abbb000b00003000000000033b3000000bd6bdddd600
0000000000000133bbb0000000000000000002800000000000000000000000000000001ab3bb0113000ab00b000b00000303bbb000bb330300000dddd661d600
0000000000000133bbb000000000000000002828000000000000000000000000bab3b01b3ba11b33000b00ab00b3000000bb333bbaa3b0000000d1dddddd1d60
000000000000a113abbb0000000000000002288200000000000000000000000011bb3b1b3b1b33bb000b00b30a30000000000bbbbbb00000000d11ddddd61d60
00000000000003b3bbbb00000000000000022b88a00008888800000000000000001ab313b1b33bb0000ab0000b000000003bb3ba3bbbbb00000d111ddddd6160
0000000a000003b3bb3b00000000000000003bbbbb00228899880000000000000001ba3b1b3bbba00000ab00a30000003b33b333b33b3b00000d1111ddddd600
00000003ba0003b3bb3ba0000000000000013bbbba022228899880220000000000001b3313babb0000000a00b00000003303b033bbb333000000d1111dddd600
00000003b00003b3bb3b000000000000000133bbbaa000222889822220000000000001b13bbbb000000000b03000000033b000b3300bb03000000d111111d000
00000003bb0003b3ba3b00000000000000011bb3bb11133b2289982299000000000000133abb0000000000ab300000000b30000bbb00bb33000000dddddd0000
00000013ab0001a3bb3b000000000000000113bb11113bb8888a98299880000000000003bb0000000000000b000000000b000b00b00b00000000000000000000
00000013bbb001b3bb3a00000000000000001131131b222888aaa9a988000000000000333bb000000000003ab0000000000333bb000000000000000000000000
0000001b3bba01b3bb3b000000000000000000111132228999999a9a2213b00000aa0000000000a000000000c0ca000000000000000000000000000000000000
00000a3b3bb00133bb3b0000000000000000011133322899888a999929913bb00000aa0000000a00000000000b0c000000000000000000000000000000000000
0000003b3bb0013abb3b000a00000000000001113b328998b8822a9a289833b0000000a000000a000000000c0c00000000000000000000000000000000000000
0000003babb0a13bbb3a00bb00000000000011313b22888bbb228898229913bb0000000a0000a0000000000acbc0000000000000000000000000000000000000
0000000b33bb0133bb3b00abb000000000001113bb22883bbb228898b228913b0000000aa000a000000000c0b00c00000000000000000000000000000b000000
00000003b3bb013bbb3b0b3bb000000000001113b2288bbbbb228988bb2283bb00000000a000a00000000c0bca00000000000000000000000000000000b00000
0000000133ba013bbbbb0b3bba0000000000111332228bbbbb22998bbba283bb000000000a0aa00a0000000c0b00000000000dddddddd00000b0000080009000
000000013b3bb133babb03bab000000000001113b23bbb3bb32898bbbba113b0000000000a0a00a000000bcbc0000000000ddd6666666dd00b0000089809a900
000000003b3bb13bbbbb03bbb00000000000111b3b3b3bbbbb2898bbbba113000000000000aa00a00000003b0c00000000ddddddddddd6d00000900b80009b00
0000000a13b3bb33bbbb13bbb000000000001111b3b3bb3bb2899bbbbaa000000000000000aa0a000000ac3c000000000d1ddddddddddd600009a9000b800000
0000000003b3bb33bbbb3babb000000000001111b33bb3bbb288bbbbba00000000000000009a0a000000c030c00000000d11ddddddddd00000009b00089b0000
0000000003a33bb3abb33bbb000000000000011313bbbbbbbbbbbbbbaa00000000000000009aa0000000bb3ca00000000d111111ddd000000000000b00800000
00000000013b3b33bb3babbb00000000000001111b33b3bb3bbbb3bba000000000000000000aa000000000bb0c0000000dd11ddd0000000008b0b0b000000000
000000000033bb3bbbbbbbba0000000000000011111bbbb3bbb33bbb00000000000000000009a00000000c0b0b00000000ddd000000000008a80a00000000000
000000000003bbb33bbabbb0000000000000000113113b33b33bbbb000000000000000000009a00000000003b000000000000000000000000809a9000bb00000
00000000000033bb3bbbb000000000000000000001111311313b300000000000000000000009a00000000003b000000000000000000000000000900000000000
00000000000000000000000000000000000299994440000000000000000000000000000000000000000000000000000000000000000000999400000000000000
00000000000000000000000000000000002999449944000000000000000000444999900000000000000000000000000000000000000999944999000000000000
00000000000000000000000000000000002994499499400000000000000004499449990000000000000000000000000000000000009994499444400000000000
00000000000000000000000000000000029999994999400000000000000049949944999000000000000000000000000000000000099944944999999000000000
00000000000000000000000000000000299999994999400000000000000049994999999000000000000000000000000000000000099999449994499900000000
00000000000000000000000000000000299999949994000000000000000049994999999900000000000000000000000000000000999994999944444900000000
00000000000000000000000000000002999999999994000000000000000004999499999900000000000000000000000000000000999999999444400000000000
00000000000000000000000000000002999999999940000000000000000004999999999990000000000000000000000000000009999999999440000000000000
00000000000000000000000000000002999999999944400000000000000000499999999990000000000000000000000000000009999999994400000000000000
00000000000000000000000000000029999999999949940000000000000044499999999990000000000000000000000000000009999999994400999900000000
00000000000000000000000000000029999999999999940000000000000499499999999999000000000000000000000000000099999999994499999900000000
00000000000000000000000000000029999999999999440000000000000499999999999999000000000000000000000000000099999999944999944900000000
00000000000000000000000000000299999999999499400000000000000449999999999999000000000000000000000000000099999999944994440000000000
00000000000000000000000000000299999999994494400000000000000049949999999999900000000000000000000000000999999999444444000000000000
00000000000000000000000000002999999999944944000000000000000004944999999999900000000000000000000000000999999944444944000000000000
00000000000000000000000000029999999999944440000000000000000004494499999999990000000000000000000000009999999444449440000000000000
00000000000000000000000000099999999999440000000000000000000000444499999999999000000000000000000000099999999444444400000000000000
00000000000000000000000000999999999994400000000000000000000000000449999999999900000000000000000000999999994444400000000000000000
00000000000000000000000009999999999944000000000000000000000000000044999999999990000000000000000009999999994444000000000000000000
00000000000000000000000099999999999440000000000000000000000000000004499999999999000000000000000099999999944440000000000000000000
00000000000000000000000999999999499440000000000000000000000000000000449999999999900000000000000999999999444400000000000000000000
00000000000000000000109999999994994400000000000000000000000000000000449949999999990000000000009999999994444400000000000000000000
00000000000000000001599999999949944000000000000000000000000000000000044994999999999010000001099999999944444000000000000000000000
00000000000000000015199999999449944000000000000000000000000000000000004499499999999951000015999999999444440000000000000000000000
00000000000000000151199999994499440000000000000000000000000000000000004499449999999915100151999999994444440000000000000000000000
00000000000000000511119999944999440000000000000000000000000000000000000449944999999911511511999999944444400000000000000000000000
00000000000000000111119999444994400000000000000000000000000000000000000449994499999111155111199999444444400000000000000000000000
00000000000000000011511114449944400000000000000000000000000000000000000044994449999111111111119994444444000000000000000000000000
00000000000000000011551111449444000000000000000000000000000000000000000044499444111151100115111144444444000000000000000000000000
00000000000000000001155111111444100000000000000000000000000000000000000004449441111551100115511114444440000000000000000000000000
00000000000000000000005551111111100000000000000000000000000000000000000014441111115511000011551111114441000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000011111111555000000000055511111111000000000000000000000000
00000000000000000000000000000099088888888000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000009990000000000000000998888889999999000000000000000000000000000000000000000000000000000000000040000000000000000000000000
00000000009999999900000000000999888999994999900000000000000000000000000000000000000000000000040000000000009904000000000000000000
000000000002999990000000000002949999999499990000000000000000000000000000440000009000000000000000000a0000a00000000000000000000000
000000000002299900000000000002294999994c9999000000000000000000000000000000000000090000000000090000000000000000000900000000000000
00000000000022990000000000002229c499999cc992000000000000200000000000000000a00004000000000000009000000000009000000000000000000000
0000000000000020000000000000222c99999999992220000000000029000000000000000000004000000000000000000000a000000000000000000000000000
0000000000099990000000000002222999aa99999992200000000000029000000000000000000000000000000000000000000000000000000000000000000000
000000099999929000000000000002299aaa999999992200000000000299000000000000000000000a000000000000400000000000000900a000000a00000000
00000099999229000000000000000092aa999999999900000000000002299900000000000000a00000000000a000000000000090000000000000000000000000
00000000222229000000000000000099929988999990000000000000002299990000000000000099000040090000000000040090000000000000900000000000
0000000000000900000000000000009999298889999000000000000000222999990000000000000000004090000900a000000000000000000900000000000000
00000000000090000000000000000999999998889990000000000000002900299900000000a0000a000000000090000000000000000000a00900000000000000
00000000000990000000000000000999999999999992000000000000000290000000000000000000000000000000900000000000000000000000000000000000
00000000002200000000000000002999999999999992200000000000000229000000000000000000000a00000004000000000000000400000000000000000000
00000000000000000000000000022299999999999992200000000000000022999900000000000000000000000000000000000000000000000000040000000000
00000000000000000000000022222999998999999922200000000000000002299000000000b00c00030000000009000000a0000b000000000000000000000000
00000000000000000000000092229999998899988200000000000000000000000000000000b0cac00030000000a9a000000a00b0330000000000000000000000
000000000000000000000000099998899998898822000000000000000000000000000000000b0c0b0033000309929900000a00b0030003000000000000000000
000000000000000000000000000998889998888222000000000000000000000000000000b00b00b00003003000a9a0330000ab00003030000000000000000000
0000000000000000000000000000098899998822200000000000000000000000000000000bb0bb003003e300000933330b00ab00003300330000000000000000
00000000000000000000000000000088899988888800000000000000000000000000000000b0bb00030e9e000bb0333000b0ab00000303000000000000000000
00000000000000000000000000000008880880222000000000000000000000000000000000bbb0000033e000bbbbb300000bb000000330000000000000000000
000000000000000000000000000000008888002220000000000000000000000000000000000bb0000003300000bbb0000000b000000300000000000000000000
00000000000000000000000000000000088800020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000008000220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000220222200000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000022220000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000020022000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000022002000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__label__
53b335555555555355555555555555555555555555555555555acb5c555555555555555555555555555595555555555555555555555555555555555555555555
3533bb555bbb3535555555555555555555555555555bbba5555b5c55555555555555555555555555555595555555555555555555555555555555555555555555
555b3aabb333bb5555555555555555555555555555855ba55555cbcb5555555555555555555554b5555595999955555555555555555555555555555555555555
55555bbbbbb555555555b555555555555555555588853ba5555c5b3555555555555555555554511b455599444449955555555555555555555555555555555555
55bbbbb3ab3bb355555bbb5555555555555555588999335555555c3ca55555555555555555451115555594999999995555555555555555555555555555555555
55b3b33b333b33b3555b3bb5555555595555558899ccaa555555c535c55555555555555555511154555549999999999558555555555555555555555555555555
55333bbb335b3533555bb3ab555555595555555b99999aabba55ac3bb55555555555555555511545555594999944999988855555555555555555555555555555
535bb5533b555b33155bb3bbb555555995555599998955b55bac5bb5555555555555555555555555555599499499999999885555555555555555555555555555
33bb55bbb55553b53115bb3ba155555944444999998b55ba55bb5b5c555555555555555555555555555559944999999999985555555555555555555555555555
5555b55b55b555b533b11ab3b15b3ba4999999999983a53b55b5b35555555555555555555555555555555999999999999c985555555555555555555555555555
55555555bb333555bb33b1b3b1b3bb19499994999951b5555ba5b35555555555555555555555555555555559889999899c955555555555555555555555555555
555555500000000000033b10000000000009499999133a55ba555555555555555555555555555555555555558992555899a55555555555555555555555555555
5555550099009909990bb300990099099904999999335b55a555555555555555555555555555555555555555852555555aa55555555555555555555555555555
5555550900090900900bab09000909009009999993bb535b5555555555555555555555555555555555555558888225555a555555555555555555555555555555
5555550905090900905bbb090b090900909999899bb553ba55555555555555555555555555555555555b55555855595555555555555555555555555555555555
55555509000909009055bb090009090090999988bba555b55555555555555555555555555555555555b5555589859a9555555555555555555555555555555555
55555500990990009055550099099000903313b88b855ba35555555555555555555555555555555555555955b85559b555555555555555555555555555555555
555555500000005000555bb00000005000213bbb885555555555555555555555555555555555555555559a9555b8555555555555555555555555555555555555
5555555555555555555555555555555555133abb5555555555555555555555555555555555555555555559b55589b55555555555555555555555555555555555
555555555555555555555555555555555553bb55555555555555555555555555555555555555555555555555b558555555555555555555555555555555555555
5555555555555555855555555555555555333bb55555555555555555555555555555555555555555558b5b5b5555555555555555555555555555555555555555
5555555555555555888555555555555555555555555555555555555555555555555555555555555558a85a555555555555555555555555555555555555555555
5555555555555559998855555555555555555555555555555555555555555555555555555555555555859a9555bb555555555555555555555555555555555555
5555555555555aacc998855555595555555555555555555555555555555555555555555555555555555559555555555555555555555555555555555555555555
555555555555aa999995555555595555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
5555555555555559899995555599555555555555555555555555555555555555555555555555555b555555555555555555555555555555555555555555555555
555555555555555589999944444955555555555555555555555555555555555555555555555555bbb55555555555555555555555555555555555555555555555
555555555555555589999999999455555555555555555555555555555555555555555555555555b3bb5555555555555555555555555555555555555555555555
55555555555a5aaa59999499994955555555555555555555555555555555555555555555555555bb3ab555555555555555555555555bbba55555555555555555
55555555555aaaaaa9990000000000000000000000000005555555555555555555555555555155bb3bbb5555555555555555555555b55ba55555555555555555
55555555555a9aa9a99007707070777007707070777077005555555555555555555555555553115bb3ba155555555555555555555b553ba55555555555555555
55555555555aa99aac90700070700700700070707000707055555555555555555555555555533b11ab3b15b3bab55555555555555b5533555555555555555555
555555555554aaaaaa907080777007007050770077007070555555555555555555555555555bb33b1b3b1b3bb115555555555555535555555555555555555555
5555555555b54595585070007070070070007070700070705555555855555555555555555555bb33b1b313ba155555555555555555b555bbba55555555555555
555555555b114499555007707070777007707070777070705555555285555555555555555555abbb3b1b3ab1555555555555555555b555b55ba5555555555555
55555555451114555552000000000000000000000000000055555528285555555555555555555bbab3133b155555555555555555553b55ba55b5555555555555
555555555541115555555555555555555555555555555555555552288255555555555555555555bbbb31b15555555555555555555553a53b55b5555555555555
5555555555551155555555555555555555555555555555555555522b88a55558888855555555555bba33155555555555555555555555b5555ba5555555555555
5555555555545555555555555555555555555555555555555555553bbbbb552288998855555555555bb35555555555555555555555553a55ba55555555555555
5555550000000000000000000000000000000000000055555555513bbbba52222889988522555555bb333555555555555555555555555b55a555555555555555
55555009900990900770777077700770707077707770555555555133bbbaa55522288982222555555555555555555555555555555555535b5555555555555555
5555b09000909000700070700700700070707000707055555555511bb3bb11133b22899822995555555555555555555555555555555553ba5555555555555555
555ba090509090007050777007007000777077007700555555555113bb11113bb8888a9829988555555555555555555555555555555555b55555555555555555
55bbb09000909000700070700700700070707000707055555555551131131b222888aaa9a988555555555555555555555555555555555ba35555555555555555
51ab30099099000007707070070007707070777070705555555b5555111132228999999a9a2213b5555555555555555555555555555555555555555555555555
51b3ba00000005000000000000000000000000000000555555bbb5511133322899888a999929913bb55555555555555555555555555555555555555555555555
b1b3b1b33bb555555555555555555555555555555555555555b3bb51113b328998b8822a9a289833b55555555555555555555555555555555555555555555555
313b1b33bb5555555555555555555555555555555555555555bb3a11313b22888bbb228898229913bb5555555555555555555555555555555555555555555555
a3b1b3bbba5555585555555555555555555555555555555155bb3b1113bb22883bbb228898b228913b5555555555555555555555555555555555555555555555
b3313babb500000000000000000050000000000000000053115bb31113b2288bbbbb228988bb2283bb5555555555555555555555555555555555555555555555
1b13bbbb50077077707770707070507770777007707770533b11ab111332228bbbbb22998bbba283bb5555555555555555555555555555555555555555555555
5133abb5507000070077707070705070700700707070705bb33b1b1113b23bbb3bb32898bbbba113b55555555555555555555555555555555555555555555555
553bb5553077700700707070707050777007007070770055bb33b1111b3b3b3bbbbb2898bbbba113555555555555555555555555555555555555555555555555
5333bb553000700700707070707000707007007070707055abbb3b1111b3b3bb3bb2899bbbbaa555555555555555555555555555555555555555555555555555
3bbb555bb0770077707070077077707070070077007070555bbab31111b33bb3bbb288bbbbba5555555555555555555555555555555555555555555555555555
b333bbaa300000000000000000000000000000000000005555bbbb311313bbbbbbbbbbbbbbaa5555555555555555555555555555555555555555555555555555
55bbbbbb5555555599994999949555555555555555555555555bba31111b33b3bb3bbbb3bba55555555555555555555555555555555555555555555555555555
bb3ba3bbbbb555559999949949955555555555555555555555555bb311111bbbb3bbb33bbb555555555555555555555555555555555555555555555555555555
3b333b33b3b55555999999449955555555555555555555555555bb333113113b33b33bbbb5555555555555555555555555555555555555555555555555555555
3b533bbb3000000000000000005555555555555555555555555555555551111311313b3555555555555555555555555555555555555555555555555555555555
555b3355d07770777077707770555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
5555bbdd600070707070707070555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
55b55bd6dd0770707070707070555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
333bb56dd00070707070707070555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
55555555d077707770777077705555dddddddd555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
5555555550000000000000000055dd6666666ddd5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
5555555555555ddd11dd55555555d6ddddddddddd555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
5555555555555555ddd5555555556ddddddddddd1d55555555555555555555555555555555555555555555555555555555555555555555555555555555555555
55555555aa5555555555a555555555ddddddddd11d55555555555555555555555555555555555555555555555555555555555555555555555555555555555555
5555555555aa5555555a555555555555ddd111111d55555555555555555555555555555555555555555555555555555555555555555555555555555555555555
555555555555a555555a555555555555555ddd11dd55555555555555555555555555555555555555555555555555555555555555555555555555555555555555
5555555555555a5555a5555555555555555555ddd555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
5555555555555aa555a5555555555555555555555555555555555555555555555555555550000000000005555000000000000555555555555555555555555555
55555555555555a555a5555555555555555555555555555555555555555555555555555500660066066605550066006606660555555555555555555555555555
555555555555555a5aa55a5555555555555555555555555555555555555555555555555506000606006005550600060600600555555555555555555555555555
555555555555555a5a55a55555555555555555555555555555555555555555555555555506050606006055550605060600605555555555555555555555aaa555
5555555555555555aa55a55555555555555555555555555555555555555555555555555506000606006055550600060600605555555555555555555558aca555
5555555555555555aa5a555555555555555555555555555555555555555555555555555500660660006055550066066000605555555555555555555555aaaaaa
55555555555555559a5a55555555555555555555555555555555555abbb5555555555555500000005000555550000000100055555555555555555555555a9aaa
55555555555555559aa555555555555555555555555555555555555ab55b555555555555555555555555555555555555115555555555555555555555555aa9aa
55555555555555555aa555555555555555555555555555555555555ab355b5555555555555555555555555555555555455555555555555555550555555559aa4
555555555555555559a55555555555555555555555555555555555553355b5555555555555555555559555555555555555555555000000000000555500000000
555555555555555559a5555555555555555555555555555555555555555535555555555555555555559995555555555555555550066006606660555006600660
555555555555555559a555555555555555555555555555555555abbb555b55555555555555555555566699555555555555555550600060600600522222006060
77777777775aaa5555555555555555555555555555555555555ab55b555b5555555555555555555aabb669955555565555555550605060600600200000000061
07700700078aca5555555555555555555555555555555555555b55ab55b3555555555555555555aa666665555555565555555550600060600602000000000000
77070770775aaaaaaa555555555555555555555555555555555b55b35a3555555555555555555555569666655555665555555550066066000600200002200000
570707707555a9aaa5555555555555555555555555555555555ab5555b555555555555555555555555966666ddddd655555a5555000000050000020020000000
770707707555aa9aa55555555555555555555555555555555555ab55a355555555555555555555555596666666666d5aaa5a5555555555555555002200000000
07007770755559aa4555555555500000000000000000000055550000000550000000555000000000555600000000000000000000555555555555000000000110
7777757775959555545555555550777077707770077007705550077777000070777055507770077055500770777077707770777055555555555500011000003b
55555555555955554555555555a0707070707000700070005550770007700700007055500700707055b07000070070707070070055555555555555010003bb3b
5555555555555555555555aaa5a077707700770077707770555077070770070007005555070070705b5077700700777077000705555555555555599160b3bb3b
555555555555555555555aaaaaa0700070707000007000705550770007700700700055550700707055500070070070707070070555555655555599111100bb3b
55555555555555555555aa9aa9a07050707077707700770055500777770070007770abbb070077005550770007007070707007055555565555555566666aab3b
5555555555555555555aaaa99a5000c0000000000000000555550000000000500000b55b00000005555000040000000000000005555556655555666696b3bb3a
5505555555555555555acaaaaa5c5b5555555555555555555555555555555555555b55ab5cb3b5c5555554499995555555555555555556ddddd6666695a3bb3b
5505555555555555555aaa5954555c5c55555555555555555555555555555555555b55b35a3acb5c58b5b5b5555555555555555555555d666666666695b3bb3b
5005555555555555555585994455cbca55555555555555555555555555555555555ab5555b5b5c558a85a5555555555555555555555556d6666d666655b3bb33
220555555555555555555555555c55b5c55555555555555555555555555555555555ab55a355cbcb5859a9555bb55555555555555555566d66d6666655b3bba3
00255555555555555555555555555acb5c55555555555555555555555555555555555a55b55c5b3555559555555555555555555555555566dd66666655a3bbb3
02055555555555555555555555555b5c55555555555555555555555555555555555555b535555c3ca55555555555555555555555555555666666666a55b3bb33
200555555555555555555555555555cbcb555555555555555555555555555555555555ab3555c535c555555555555555555555555555556669966663b5b3bbb3
00555555555555555555555555555c5b355555555555559555555555555555555555555b5555ac3bb555555555555555555555555555555569664bb3b5bbbbb3
0055555555555555555555555555555c3ca555555555999555555555555555555555553ab55c5bb55555555555555b33555555555555555559545bab35bbab33
005555555555555555555555555555c535c5555555599666555555555555555555555555555b5b5c555555555555abb33555555555555555999944bb35bbbbb3
555555555555555555555555555555ac3bb65555559966bbaa55555555555555555555555555b3555555555555555b33555555555555555555555bbb31bbbb33
55555555555555555555555555555c5bb5565555555566666aa5555555555555555555555555b355555555555555bb3a355555555555555555555bbab3bbbb33
55555555555555555555555555555b5b5c5665555566669655555555555555555555555555555555555555555555bbb3b355555555555555555555bbb33bba3b
555555555555555555555555555555b35556ddddd666669555555555555555555555555555555555555a55555555abbb3355555555555555555555bbbab3bb33
bba555555555555555555555555555b3555d6666666666955555555555555555555555555555555aaa5a55555555bbb33155555555555555555555abbbbbbbb3
5ba555555555555555555555555555555556d6666d666655555555555555555555555555555555aaaaaa55555555bbb331555555555555555555555bbbabb33b
3ba5555555555555555555555000000000566d00000000000000000005555500050000000000000000000555500000000000055555555555555555555bbbb3bb
33555555555555555555555550777070705560077077707770077077005550070007700770770077700700555077707700770055555555555555555555555555
5555555555555555555555555070707070556070007070070070707070555070007000707070707000007055507070707070705a555555555555555555555555
55bbba555555555555555555507700777055607060777007007070707055507050705070707070770540705550777070707070b3555555555555555555555555
55b55ba55555555555555555507070007055407000700007007070707055507000700070707070700000705550707070707070b35555555555aaa0a555555555
55ba55b55555555555555555507770777055400770709077707700777055500700077077007770777007005550707070707770b355555555aaaaa0a555555555
a53b55b55555555555555555500000000055440000009000000000000055550005000000000000000000055550000000000000a31555555aaa9aa0a000055555
b5555ba55555555555555555555555555555555555555555555b555555555555555555555555555555555555555a3bb3b155bbb31555555acaa9900222220055
3a55ba5555555555500000000000000000000000000000000000000000000000000000000555950000000000000000000000bb000000055aaaaaa02000000005
5b55a55555555555507070777007707070777077007070077077707770707007700770770055900700777077707070777070b007700700558559520000000000
535b555555555555507070070070007070700070707070707070707770707070707070707095907000707007007070700070b070000070555599402000022000
53ba555555555555507070070070a07700770070707070707077007070707070707070707049907050777007000700770070b077705070555555500200200000
55b55555555555555077700700700070707000707077707070707070707770707070707070949070007000070070707000700000700070555555550022000000
5ba35555555555555077707770077070707770777077707700707070707770770077007770994007007050777070707770777077000700555555550000000000
555555555555555550000000000000000000000000000000000000000000000000000000009495000000500000000000000000000b0005555555555501100001
555555555555555555555555555aa9aa55555555555555555555555555555889999999949949955555955bbab394bab391bb3b31b55555555555555551000555
__sfx__
010400001e0502305028050300503405035050360503605037050370503805038050380503805037050370503d000380003000033000390003d000370002e000330003f0003c0003600031000380003f0003b000
000d00000e720067000e73007700057000e7500270002700027000270002700027000270002700017000070001700027000270000700007000070000700007000070000700007000070000700007000070000700
000f00001572006700157500770005700157300270002700027002070002700017000070001700027000270000700007000070000700007000070000700007000070000700007000070000700000000000000000
000a00000c53210532135321753218532105421354217542185421c542185521c5521f55223552245520050224502245520000024552245522455224552000000000000000000000000000000000000000000000
001b00181bc3213c3213c320bc3213c3213c320cc3213c3213c320bc3213c3211c320cc3213c3213c320bc3213c3213c320cc3213c3213c320bc3213c3211c320cc0213c0213c020bc0213c0213c0216c0218c02
001b0018185521f5021a55218552115021a5521c55217502065021f5521e5521c5521e5521c552005022455224552215522355223552235522355200502005022250200502005021450200502000000000000000
001b0018185521f5021a55218552115021a5521c55217502065021f5521e5521c5521e5521c552005022455224552215522355223552215522155200502005022250200502005021450200502000000000000000
__music__
01 04464344
00 04054344
00 04424344
02 04064344