Blob Blame Raw
{
	name:
		(Two squares)
	a:
		(  ( ((0, 0), (200, 0), (200, 200), (0, 200)) )  )
	b:
		((((100, 100), (300, 100), (300, 300), (100, 300))))
	add:
		((((0, 0), (200, 0), (200, 100), (300, 100), (300, 300), (100, 300), (100, 200), (0, 200))))
	subtract:
		((((0, 0), (200, 0), (200, 100), (100, 100), (100, 200), (0, 200))))
	intersection:
		((((100, 100), (200, 100), (200, 200), (100, 200))))
	xor:
		( (((0, 0), (200, 0), (200, 100), (100, 100), (100, 200), (0, 200))),
	  	  (((200, 200), (200, 100), (300, 100), (300, 300), (100, 300), (100, 200))) )
}
{
	name:
		(Self touch)
	a:
		((( (100, 100), (200, 0), (400, 0), (400, 300), (0, 300), (0, 200),
		    (100, 100), (100, 200), (200, 200), (200, 100) )))
	b:
		( (( (100, 0), (200, 0), (200, 300), (100, 300) )),
		  (( (250, 100), (350, 100), (350, 200), (250, 200) )) )
	add:
		((( (100, 100), (100, 0), (400, 0), (400, 300), (0, 300), (0, 200) )))
	subtract:
		( ( ( (100, 100), (100, 300), (0, 300), (0, 200) ) ),
		  ( ( (200, 0), (400, 0), (400, 300), (200, 300) ),
		    ( (250, 100), (250, 200), (350, 200), (350, 100) ) ) )
	intersection:
		( (( (100, 100), (200, 0), (200, 100) )),
		  (( (100, 200), (200, 200), (200, 300), (100, 300) )),
		  (( (250, 100), (350, 100), (350, 200), (250, 200) )) )
	xor:
		( ( ( (100, 0), (200, 0), (100, 100) ) ),
		  ( ( (100, 100), (200, 100), (200, 0), (400, 0), (400, 300), (200, 300), (200, 200), (100, 200), (100, 300), (0, 300), (0, 200) ),
		    ( (250, 100), (250, 200), (350, 200), (350, 100) ) ) )
}