function pack(varr) {
	var packed = '';
	var name, value;
	for (var i=0; i<varr.length; i++) {
		if (packed.length) packed+=';';
		name = varr[i];
		value = eval(name);
		packed += name+'='+value;
	}
	return packed;
}

function initunpack(varr, initval) {
	var name;
	for (var i=0; i<varr.length; i++) {
		name = varr[i];
		eval(name+"="+initval);
	}
}

function unpack(list, applyfn) {
	if (list.length) {
		var alist = list.split(';');
		var expr;
		for (var i=0; i<alist.length; i++) {
			expr = alist[i].replace(/undefined/, '');
			eval(expr.replace(/=/, '='+applyfn+'("')+'")');
		}
	}
}
