json_parse=function(){var k,a,o={'"':'"',"\\":"\\","/":"/",b:"\u0008",f:"\u000c",n:"\n",r:"\r",t:"\t"},m,f=function(b){throw{name:"SyntaxError",message:b,at:k,text:m};},c=function(b){b&&b!==a&&f("Expected '"+b+"' instead of '"+a+"'");a=m.charAt(k);k+=1;return a},p=function(){var b;b="";if(a==="-"){b="-";c("-")}for(;a>="0"&&a<="9";){b+=a;c()}if(a===".")for(b+=".";c()&&a>="0"&&a<="9";)b+=a;if(a==="e"||a==="E"){b+=a;c();if(a==="-"||a==="+"){b+=a;c()}for(;a>="0"&&a<="9";){b+=a;c()}}b=+b;if(isNaN(b))f("Bad number");
else return b},q=function(){var b,d,i="",h;if(a==='"')for(;c();)if(a==='"'){c();return i}else if(a==="\\"){c();if(a==="u"){for(d=h=0;d<4;d+=1){b=parseInt(c(),16);if(!isFinite(b))break;h=h*16+b}i+=String.fromCharCode(h)}else if(typeof o[a]==="string")i+=o[a];else break}else i+=a;f("Bad string")},e=function(){for(;a&&a<=" ";)c()},s=function(){switch(a){case "t":c("t");c("r");c("u");c("e");return true;case "f":c("f");c("a");c("l");c("s");c("e");return false;case "n":c("n");c("u");c("l");c("l");return null}f("Unexpected '"+
a+"'")},l,t=function(){var b=[];if(a==="["){c("[");e();if(a==="]"){c("]");return b}for(;a;){b.push(l());e();if(a==="]"){c("]");return b}c(",");e()}}f("Bad array")},u=function(){var b,d={};if(a==="{"){c("{");e();if(a==="}"){c("}");return d}for(;a;){b=q();e();c(":");Object.hasOwnProperty.call(d,b)&&f('Duplicate key "'+b+'"');d[b]=l();e();if(a==="}"){c("}");return d}c(",");e()}}f("Bad object")};l=function(){e();switch(a){case "{":return u();case "[":return t();case '"':return q();case "-":return p();
default:return a>="0"&&a<="9"?p():s()}};return function(b,d){m=b;k=0;a=" ";b=l();e();a&&f("Syntax error");return typeof d==="function"?function i(h,r){var j,n,g=h[r];if(g&&typeof g==="object")for(j in g)if(Object.hasOwnProperty.call(g,j)){n=i(g,j);if(n!==undefined)g[j]=n;else delete g[j]}return d.call(h,r,g)}({"":b},""):b}}();
