Fork me on GitHub
-- title:   Overlap
-- author:  congusbongus
-- desc:    Sprite (AABB) overlap
-- license: CC0
-- script:  moon
-- tags:    overlap sprite physics AABB

t=0
W=32
H=32
WIDTH=240
HEIGHT=136
SPEED=2

class Sprite
    new:(x,y,dx,dy)=>
        @x=x
        @y=y
        @dx=dx
        @dy=dy
        @w=W
        @h=H
        @frame=0

    update:=>
        -- Bounce off the edges of the screen
        @x+=@dx
        if (@dx>0 and @x+@w>WIDTH) or (@dx<0 and @x<0)
            @dx=-@dx
        @y+=@dy
        if (@dy>0 and @y+@h>HEIGHT) or (@dy<0 and @y<0)
            @dy=-@dy

    overlaps:(other)=>
        -- Check if two AABBs overlap
        return @x+@w>other.x and other.x+other.w>@x and @y+@h>other.y and other.y+other.h>@y

    draw:=>
        spr 1+@frame*2,@x,@y,14,2,0,0,2,2

class SpriteOverlapper
    new:(nsprites)=>
        @sprites={}
        for i=1,nsprites
            dx=math.random!*SPEED
            dy=(SPEED-math.abs(dx))*(math.random(0,1)*2-1)
            table.insert(@sprites,Sprite(math.random(0,WIDTH-W),math.random(0,HEIGHT-H),dx,dy))
    
    calcoverlaps:=>
        -- Check pairwise sprites for overlaps
        overlaps=[false for s in *@sprites]
        for i=1,#@sprites-1
            s1=@sprites[i]
            for j=i+1,#@sprites
                s2=@sprites[j]
                if s1\overlaps(s2)
                    overlaps[i]=true
                    overlaps[j]=true
        return overlaps

    update:=>
        for sprite in *@sprites
            sprite\update!
        overlaps=self\calcoverlaps!
        -- Change sprite frame depending on whether they overlap
        for i, overlap in ipairs overlaps
            if overlap
                @sprites[i].frame=1
            else
                @sprites[i].frame=0

    draw:=>
        for sprite in *@sprites
            sprite\draw!

overlapper=SpriteOverlapper(5)

export TIC=->
	cls 13
    overlapper\update!
    overlapper\draw!
	t+=1

-- <TILES>
-- 001:eccccccccc888888caaaaaaaca888888cacccccccacc0ccccacc0ccccacc0ccc
-- 002:ccccceee8888cceeaaaa0cee888a0ceeccca0ccc0cca0c0c0cca0c0c0cca0c0c
-- 003:eccccccccc111111c2222222c2111111c2ccccccc2cc0cccc2cc0cccc2cc0ccc
-- 004:ccccceee1111ccee22220cee11120ceeccc20ccc0cc20c0c0cc20c0c0cc20c0c
-- 017:cacccccccaaaaaaacaaacaaacaaaaccccaaaaaaac8888888cc000cccecccccec
-- 018:ccca00ccaaaa0ccecaaa0ceeaaaa0ceeaaaa0cee8888ccee000cceeecccceeee
-- 019:c2ccccccc2222222c222ccccc222ccccc2222cccc1111111cc000cccecccccec
-- 020:ccc200cc22220ccec2220ceec2220cee22220cee1111ccee000cceeecccceeee
-- </TILES>

-- <SCREEN>
-- 000:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 001:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 002:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 003:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 004:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 005:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 006:ddddddddddddddddddddddddddddddddddddddddddddccccccccccccccccccccccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 007:ddddddddddddddddddddddddddddddddddddddddddddccccccccccccccccccccccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 008:ddddddddddddddddddddddddddddddddddddddddddcccc88888888888888888888ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 009:ddddddddddddddddddddddddddddddddddddddddddcccc88888888888888888888ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 010:ddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaaaaaaaaaaaaaaa00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddd
-- 011:ddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaaaaaaaaaaaaaaa00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddd
-- 012:ddddddddddddddddddddddddddddddddddddddddddccaa888888888888888888aa00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc88888888888888888888ccccddddddddddddddddddddddddddddddddddddddd
-- 013:ddddddddddddddddddddddddddddddddddddddddddccaa888888888888888888aa00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc88888888888888888888ccccddddddddddddddddddddddddddddddddddddddd
-- 014:ddddddddddddddddddddddddddddddddddddddddddccaaccccccccccccccccccaa00ccccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaaaaaaaaaaaaaaa00ccddddddddddddddddddddddddddddddddddddddd
-- 015:ddddddddddddddddddddddddddddddddddddddddddccaaccccccccccccccccccaa00ccccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaaaaaaaaaaaaaaa00ccddddddddddddddddddddddddddddddddddddddd
-- 016:ddddddddddddddddddddddddddddddddddddddddddccaacccc00cccccc00ccccaa00cc00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaa888888888888888888aa00ccddddddddddddddddddddddddddddddddddddddd
-- 017:ddddddddddddddddddddddddddddddddddddddddddccaacccc00cccccc00ccccaa00cc00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaa888888888888888888aa00ccddddddddddddddddddddddddddddddddddddddd
-- 018:ddddddddddddddddddddddddddddddddddddddddddccaacccc00cccccc00ccccaa00cc00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaccccccccccccccccccaa00ccccccddddddddddddddddddddddddddddddddddd
-- 019:ddddddddddddddddddddddddddddddddddddddddddccaacccc00cccccc00ccccaa00cc00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaccccccccccccccccccaa00ccccccddddddddddddddddddddddddddddddddddd
-- 020:ddddddddddddddddddddddddddddddddddddddddddccaacccc00cccccc00ccccaa00cc00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaacccc00cccccc00ccccaa00cc00ccddddddddddddddddddddddddddddddddddd
-- 021:ddddddddddddddddddddddddddddddddddddddddddccaacccc00cccccc00ccccaa00cc00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaacccc00cccccc00ccccaa00cc00ccddddddddddddddddddddddddddddddddddd
-- 022:ddddddddddddddddddddddddddddddddddddddddddccaaccccccccccccccccccaa0000ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaacccc00cccccc00ccccaa00cc00ccddddddddddddddddddddddddddddddddddd
-- 023:ddddddddddddddddddddddddddddddddddddddddddccaaccccccccccccccccccaa0000ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaacccc00cccccc00ccccaa00cc00ccddddddddddddddddddddddddddddddddddd
-- 024:ddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaaaaaaaaaaaaaaa00ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaacccc00cccccc00ccccaa00cc00ccddddddddddddddddddddddddddddddddddd
-- 025:ddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaaaaaaaaaaaaaaa00ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaacccc00cccccc00ccccaa00cc00ccddddddddddddddddddddddddddddddddddd
-- 026:ddddddddddddddddddddddddddddddddddddddddddccaaaaaaccaaaaaaccaaaaaa00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaccccccccccccccccccaa0000ccccddddddddddddddddddddddddddddddddddd
-- 027:ddddddddddddddddddddddddddddddddddddddddddccaaaaaaccaaaaaaccaaaaaa00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaccccccccccccccccccaa0000ccccddddddddddddddddddddddddddddddddddd
-- 028:ddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaccccccaaaaaaaa00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaaaaaaaaaaaaaaa00ccccddddddddddddddddddddddddddddddddddddd
-- 029:ddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaccccccaaaaaaaa00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaaaaaaaaaaaaaaa00ccccddddddddddddddddddddddddddddddddddddd
-- 030:ddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaaaaaaaaaaaaaaa00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaccaaaaaaccaaaaaa00ccddddddddddddddddddddddddddddddddddddddd
-- 031:ddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaaaaaaaaaaaaaaa00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaccaaaaaaccaaaaaa00ccddddddddddddddddddddddddddddddddddddddd
-- 032:ddddddddddddddddddddddddddddddddddddddddddcc8888888888888888888888ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaccccccaaaaaaaa00ccddddddddddddddddddddddddddddddddddddddd
-- 033:ddddddddddddddddddddddddddddddddddddddddddcc8888888888888888888888ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaccccccaaaaaaaa00ccddddddddddddddddddddddddddddddddddddddd
-- 034:ddddddddddddddddddddddddddddddddddddddddddcccc000000cccccc000000ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaaaaaaaaaaaaaaa00ccddddddddddddddddddddddddddddddddddddddd
-- 035:ddddddddddddddddddddddddddddddddddddddddddcccc000000cccccc000000ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaaaaaaaaaaaaaaa00ccddddddddddddddddddddddddddddddddddddddd
-- 036:ddddddddddddddddddddddddddddddddddddddddddddccccccccccddccccccccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc8888888888888888888888ccccddddddddddddddddddddddddddddddddddddddd
-- 037:ddddddddddddddddddddddddddddddddddddddddddddccccccccccddccccccccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc8888888888888888888888ccccddddddddddddddddddddddddddddddddddddddd
-- 038:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc000000cccccc000000ccccddddddddddddddddddddddddddddddddddddddddd
-- 039:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc000000cccccc000000ccccddddddddddddddddddddddddddddddddddddddddd
-- 040:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccccccccccddccccccccccddddddddddddddddddddddddddddddddddddddddddd
-- 041:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccccccccccddccccccccccddddddddddddddddddddddddddddddddddddddddddd
-- 042:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 043:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 044:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 045:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 046:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 047:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 048:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 049:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 050:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 051:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 052:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccccccccccccccccccccccccccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 053:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccccccccccccccccccccccccccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 054:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc1cccc11111111111111111111ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 055:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc1cccc11111111111111111111ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 056:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc222cc222222222222222222222200ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 057:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc222cc222222222222222222222200ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 058:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc221cc221111111111111111112200ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 059:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc221cc221111111111111111112200ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 060:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc22ccc22cccccccccccccccccc2200ccccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 061:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc22ccc22cccccccccccccccccc2200ccccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 062:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc22ccc22cccc00cccccc00cccc2200cc00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 063:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc22ccc22cccc00cccccc00cccc2200cc00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 064:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc22ccc22cccc00cccccc00cccc2200cc00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 065:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc22ccc22cccc00cccccc00cccc2200cc00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 066:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc22ccc22cccc00cccccc00cccc2200cc00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 067:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc22ccc22cccc00cccccc00cccc2200cc00ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 068:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc22ccc22cccccccccccccccccc220000ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 069:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc22ccc22cccccccccccccccccc220000ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 070:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc222cc222222222222222222222200ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 071:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc222cc222222222222222222222200ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 072:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc222cc222222cccccccccc22222200ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 073:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc222cc222222cccccccccc22222200ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 074:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc222cc222222cccccccccc22222200ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 075:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc222cc222222cccccccccc22222200ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 076:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc222cc22222222cccccc2222222200ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 077:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc222cc22222222cccccc2222222200ccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 078:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc111cc1111111111111111111111ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 079:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc111cc1111111111111111111111ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 080:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc0cccc000000cccccc000000ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 081:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc0cccc000000cccccc000000ccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 082:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccccccccccccccccccccccccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 083:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccccccccccccccccccccccccccdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 084:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 085:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 086:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 087:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 088:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 089:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 090:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 091:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 092:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 093:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 094:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 095:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 096:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 097:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 098:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 099:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 100:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 101:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 102:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 103:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccccccccccccccccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 104:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc88888888888888888888ccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 105:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc88888888888888888888ccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 106:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaaaaaaaaaaaaaaa00ccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 107:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaaaaaaaaaaaaaaa00ccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 108:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaa888888888888888888aa00ccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 109:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaa888888888888888888aa00ccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 110:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaccccccccccccccccccaa00ccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 111:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaccccccccccccccccccaa00ccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 112:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaacccc00cccccc00ccccaa00cc00ccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 113:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaacccc00cccccc00ccccaa00cc00ccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 114:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaacccc00cccccc00ccccaa00cc00ccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 115:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaacccc00cccccc00ccccaa00cc00ccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 116:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaacccc00cccccc00ccccaa00cc00ccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 117:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaacccc00cccccc00ccccaa00cc00ccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 118:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaccccccccccccccccccaa0000ccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 119:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaccccccccccccccccccaa0000ccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 120:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaaaaaaaaaaaaaaa00ccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 121:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaaaaaaaaaaaaaaa00ccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 122:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaccaaaaaaccaaaaaa00ccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 123:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaccaaaaaaccaaaaaa00ccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 124:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaccccccaaaaaaaa00ccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 125:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaccccccaaaaaaaa00ccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 126:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaaaaaaaaaaaaaaa00ccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 127:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccaaaaaaaaaaaaaaaaaaaaaa00ccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 128:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc8888888888888888888888ccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 129:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcc8888888888888888888888ccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 130:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc000000cccccc000000ccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 131:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddcccc000000cccccc000000ccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 132:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccccccccccddccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 133:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddccccccccccddccccccccccddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 134:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- 135:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
-- </SCREEN>

-- <PALETTE>
-- 000:1a1c2c5d275db13e53ef7d57ffcd75a7f07038b76425717929366f3b5dc941a6f673eff7f4f4f494b0c2566c86333c57
-- </PALETTE>