#!/usr/bin/env python
#[SQUEEZE] this is an embedded package
import imp
s="requires python 2.3.4 or bytecode compatible"
if imp.get_magic()!=';\xf2\r\n':raise RuntimeError,s
try:import zlib
except:raise RuntimeError,"requires zlib"
import base64,marshal
s=base64.decodestring("""
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
""")
exec marshal.loads(zlib.decompress(s[:909]))
boot("foo",s,11572,909)
import lvltool
lvltool.main()
