mod bytecode;
mod data;
mod encoding;
mod heap;
use std::io::Read;
fn main() {
let mut buf = Vec::new();
std::io::stdin().lock().read_to_end(&mut buf).unwrap();
let prog = encoding::decode(&buf).unwrap();
let exit_code = bytecode::eval(&prog).unwrap();
std::process::exit(i32::from(exit_code));
}