var JSON=function(){var m={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},s={"boolean":function(x){return String(x)},number:function(x){return isFinite(x)?String(x):"null"},string:function(x){if(/["\\\x00-\x1f]/.test(x)){x=x.replace(/[\x00-\x1f\\"]/g,function(a){var c=m[a];if(c){return c}c=a.charCodeAt();return"\\u00"+Math.floor(c/16).toString(16)+(c%16).toString(16)})}return'"'+x+'"'},object:function(x){if(x){var a=[],b,f,i,l,v;if(x instanceof Array){a[0]="[";l=x.length;for(i=0;i<l;i+=1){v=x[i];f=s[typeof v];if(f){v=f(v);if(typeof v=="string"){if(b){a[a.length]=","}a[a.length]=v;b=true}}}a[a.length]="]"}else{if(x instanceof Date){function p(n){return n<10?"0"+n:n}var tz=x.getTimezoneOffset();if(tz!=0){var tzh=Math.floor(Math.abs(tz)/60);var tzm=Math.abs(tz)%60;tz=(tz<0?"+":"-")+p(tzh)+":"+p(tzm)}else{tz="Z"}return'"'+x.getFullYear()+"-"+p(x.getMonth()+1)+"-"+p(x.getDate())+"T"+p(x.getHours())+":"+p(x.getMinutes())+":"+p(x.getSeconds())+tz+'"'}else{if(x instanceof Object){a[0]="{";for(i in x){if(typeof i==="string"&&Object.prototype.hasOwnProperty.apply(x,[i])){v=x[i];f=s[typeof v];if(f){v=f(v);if(typeof v=="string"){if(b){a[a.length]=","}a.push(s.string(i),":",v);b=true}}}}a[a.length]="}"}else{return }}}return a.join("")}return"null"}};return{copyright:"(c)2005 JSON.org",license:"http://www.crockford.com/JSON/license.html",stringify:function(v){var f=s[typeof v];if(f){v=f(v);if(typeof v=="string"){return v}}return null},eval:function(text,filter){function walk(k,v){var i,n;if(v&&typeof v==="object"){for(i in v){if(Object.prototype.hasOwnProperty.apply(v,[i])){n=walk(i,v[i]);if(n!==undefined){v[i]=n}}}}return filter(k,v)}if(!/^[\],:{}\s]*$/.test(text.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(:?[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){throw new SyntaxError("eval")}var result=eval("("+text+")");if(typeof filter==="function"){result=walk("",result)}return result},parse:function(text){var at=0;var ch=" ";function error(m){var e=new SyntaxError(m);e.at=at-1;e.text=text;throw e}function next(){ch=text.charAt(at);at+=1;return ch}function white(){while(ch){if(ch<=" "){next()}else{if(ch=="/"){switch(next()){case"/":while(next()&&ch!="\n"&&ch!="\r"){}break;case"*":next();for(;;){if(ch){if(ch=="*"){if(next()=="/"){next();break}}else{next()}}else{error("Unterminated comment")}}break;default:error("Syntax error")}}else{break}}}}function string(){var i,s="",t,u;if(ch=='"'){outer:while(next()){if(ch=='"'){next();return s}else{if(ch=="\\"){switch(next()){case"b":s+="\b";break;case"f":s+="\f";break;case"n":s+="\n";break;case"r":s+="\r";break;case"t":s+="\t";break;case"u":u=0;for(i=0;i<4;i+=1){t=parseInt(next(),16);if(!isFinite(t)){break outer}u=u*16+t}s+=String.fromCharCode(u);break;default:s+=ch}}else{s+=ch}}}}error("Bad string")}function array(){var a=[];if(ch=="["){next();white();if(ch=="]"){next();return a}while(ch){a.push(value());white();if(ch=="]"){next();return a}else{if(ch!=","){break}}next();white()}}error("Bad array")}function object(){var k,o={};if(ch=="{"){next();white();if(ch=="}"){next();return o}while(ch){k=string();white();if(ch!=":"){break}next();o[k]=value();white();if(ch=="}"){next();return o}else{if(ch!=","){break}}next();white()}}error("Bad object")}function number(){var n="",v;if(ch=="-"){n="-";next()}while(ch>="0"&&ch<="9"){n+=ch;next()}if(ch=="."){n+=".";while(next()&&ch>="0"&&ch<="9"){n+=ch}}if(ch=="e"||ch=="E"){n+="e";next();if(ch=="-"||ch=="+"){n+=ch;next()}while(ch>="0"&&ch<="9"){n+=ch;next()}}v=+n;if(!isFinite(v)){}else{return v}}function word(){switch(ch){case"t":if(next()=="r"&&next()=="u"&&next()=="e"){next();return true}break;case"f":if(next()=="a"&&next()=="l"&&next()=="s"&&next()=="e"){next();return false}break;case"n":if(next()=="u"&&next()=="l"&&next()=="l"){next();return null}break}error("Syntax error")}function value(){white();switch(ch){case"{":return object();case"[":return array();case'"':return string();case"-":return number();default:return ch>="0"&&ch<="9"?number():word()}}return value()}}}();
