;
echo "";
$tout="";
function hsc($i){
global $tout;
$tout=htmlspecialchars($i, ENT_QUOTES, 'UTF-8');
echo $tout;
}
function jso(){
global $tout;
if(isset($tout)){
echo $tout;
}
}
//
?>
;
if($_SERVER['REQUEST_URI']!=="/"){
echo nl2br("\n");
$content=file_get_contents(__FILE__);
$dom=new DOMDocument();
@$dom->loadHTML($content);
$Temp=$b;
$scripts=$dom->getElementById('main_out_script_OS');
$script_text=$scripts->textContent;
$scripts=$dom->getElementById('main_out_script_browser');
$script_text.=$scripts->textContent;
$scripts=$dom->getElementById('main_out_script_hardware');
$script_text.=$scripts->textContent;
$script_text='if(b.indexOf("'.$b.'")!==-1){'."\n".$script_text."\n}";
$script_text=utf8_decode("\n".$script_text);
try{
$temp_value=$script_text;
$temp_value=explode("\n",$temp_value);
function doJSthing($thing,$js,$JSdepth=0){
global $debug;
global $runingJSout;
$JSdepth+=1;
if($JSdepth>100){
eval('throw("thou to fuckin deep");');
}
if(strpos($js,$thing)!==false){
$splitCode=[""];
$split=parseJS($js,$JSdepth,1);
foreach($split as $js0){
if(substr($js0,0,1)=='"'&&substr($js0,-1,1)=='"'){
$splitCode[count($splitCode)-1].=$js0;
}else{
$split2=explode($thing,$js0);
$splitCode[count($splitCode)-1].=array_shift($split2);
foreach($split2 as $js2){
$splitCode[].=$js2;
}
}
}
}
if(strpos($js,$thing)!==false&&isset($splitCode[1])!==false){
$out="";
if($thing=="."||isset($runingJSout)==false){
$runingJSout="";
}
if($thing=="=="||$thing=="!=="||$thing=="||"||$thing=="&&"){
$tvale=array_shift($splitCode);
if(gettype($tvale)=="string"){
$runingJSout=doJS($tvale,$JSdepth);
}else{
print_r($tvale);
}
}
foreach($splitCode as $item){
$prerunning=$runingJSout;
if($thing!=="."){
$tmpout=doJS($item,$JSdepth);
}
if($thing=="+"){
$out.=$tmpout;
}else if($thing=="."){
$runingJSout=doJS($item,$JSdepth,$runingJSout);
}else if($thing==">"){
$debug.="\n/*".$prerunning." > ".$tmpout."*/";
$runingJSout=($prerunning>$tmpout?"1":"0");
}else if($thing=="<"){
$debug.="\n/*".$prerunning." < ".$tmpout."*/";
$runingJSout=($prerunning<$tmpout?"1":"0");
}else if($thing=="=="){
$debug.="\n/*".$prerunning." == ".$tmpout."*/";
$runingJSout=($prerunning==$tmpout?"1":"0");
}else if($thing=="!=="){
$debug.="\n/*".$prerunning." !== ".$tmpout."*/";
$runingJSout=(("".$prerunning)!==("".$tmpout)?"1":"0");
}else if($thing=="||"){
$debug.="\n/*".$prerunning." || ".$tmpout."*/";
$runingJSout=($prerunning||$tmpout?"1":"0");
}else if($thing=="&&"){
$debug.="\n/*".$prerunning." && ".$tmpout."*/";
$runingJSout=($prerunning&&$tmpout?1:0);
}else{
$debug.="UNKOWN OPERATION RAN:".$thing." ";
$out.=doJS($item,$JSdepth,$runingJSout);
}
}
if($thing=="."||$out==""){
$out=$runingJSout;
}
return($out);
}else{
if($thing=="+"){
return(doJSthing("||",$js,$JSdepth));
}
if($thing=="||"){
return(doJSthing("&&",$js,$JSdepth));
}
if($thing=="&&"){
return(doJSthing("!==",$js,$JSdepth));
}
if($thing=="!=="){
return(doJSthing("==",$js,$JSdepth));
}
if($thing=="=="){
return(doJSthing(">",$js,$JSdepth));
}
if($thing==">"){
return(doJSthing("<",$js,$JSdepth));
}
if($thing=="<"){
return(doJSthing(".",$js,$JSdepth));
}
if($thing=="."){
return(doJSthing("?",$js,$JSdepth));
}
return($js);
}
}
function parseJS($js,$JSdepth=0,$option=0){
global $debug;
$code=str_split($js);
$parsedcode="";
$countparen=0;
$quoted=0;
$quoted2=0;
$last="";
$dolist=[];
foreach($code as $item){
if($option==1){
$parsedcode.=$item;
}
if($item=='"'&&$quoted==0&&$quoted2==0){
$quoted=1;
if($option==1){
$dolist[]=substr('"'.$parsedcode,1,-1);$parsedcode='"';
}
}else if($item=='"'&&$quoted==1&&$quoted2==0){
$quoted=0;
if($option==1){
$dolist[]=$parsedcode;$parsedcode="";
}
}
if($item=="'"&&$quoted2==0&&$quoted==0){
$quoted2=1;
if($option==1){
$dolist[]=substr("'".$parsedcode,1,-1);$parsedcode="'";
}
}else if($item=="'"&&$quoted2==1&&$quoted==0){
$quoted2=0;
if($option==1){
$dolist[]=$parsedcode;$parsedcode="";
}
}
if($option==0||$option==-1){
$dequoted=substr(" ".$parsedcode,1,-1);
if(($item=="("&&$option==0||($item!=='"'&&$last=='('&&$option==-1))&&$quoted==0&&$quoted2==0){
if($option==-1){
$tempvalue=parseJS($parsedcode,$JSdepth);
}
if($option==0||isset($tempvalue[1])==false){
$countparen+=1;
if($countparen<2){
if($option==-1){
$parsedcode=$dequoted;
}
$dolist[]=$parsedcode;
$parsedcode="";
}
}
}
$parsedcode.=$item;
if($item==")"&&($last!=='"'||$option==0)&&$quoted==0&&$quoted2==0){
if($option==-1){
$tempvalue=parseJS($parsedcode,$JSdepth);
}
if($option==0||isset($tempvalue[2])==false){
$countparen-=1;
if(($countparen<2&&$option==0)||($countparen<1&&$option==-1)){
if($option==-1){
$parsedcode=$dequoted;
}
if(substr($parsedcode,0,1)=="."&&$option==-1){
$dolist[count($dolist)-1].=$parsedcode;
}else{
$tmpout=$parsedcode;
if($countparen>=0){
$tmpout=doJS($tmpout,$JSdepth);
if($option==-1){
$dolist[count($dolist)-1].=$tmpout;
}
}
$dolist[]=$tmpout;
$parsedcode="";
}
}
}else{
if(isset($dolist[count($dolist)-1])==false){
$dolist[]="";
}
$dolist[count($dolist)-1].=$parsedcode;
}
}
$last=$item;
}
}
$debug.="\n".$option;
if(substr($parsedcode,0,1)=="."&&$option==-1){
if(count($dolist)>1){
$dolist[count($dolist)-1].=$parsedcode;
}
}
$dolist[]=$parsedcode;
foreach($dolist as $item){
$debug.=$item.", ";
}
return($dolist);
}
function doJS($js,$JSdepth=0,$context="*no*"){
$in=$js;
global $b;
global $d;
global $D;
global $B;
global $Temp;
global $debug;
$JSdepth+=1;
if($JSdepth>100){
eval('throw("thou to fuckin deep");');
}
if(strlen($js)>0&&substr($js,0,1)=="("&&substr($js,-1,1)==")"&&isset(parseJS($js,$JSdepth,1)[2])==false){
$js=substr($js,1,-1);
}
if(strlen($js)>0&&substr($js,0,1)=='"'&&substr($js,-1,1)=='"'&&(isset(parseJS($js,$JSdepth,1)[1])==false||$js=='""')){
$js=substr($js,1,-1);
return($js);
}
if($js=="d"){
if(isset($context)==false||$context==""){
if($d==""){
return(" ");
}
return($d);
}else{
return($d.$context);
}
}
if($js=="D"){
if(isset($context)==false||$context==""){
return($D);
}else{
return($D.$context);
}
}
if($js=="B"){
if(isset($context)==false||$context==""){
return($B);
}else{
return($B.$context);
}
}
if($js=="D"){
if(isset($context)==false||$context==""){
return($D);
}else{
return($D.$context);
}
}
if($js=="b"){
if(isset($context)==false||$context==""){
return($b);
}else{
return($b.$context);
}
}
if($js=="Temp"){
if(isset($context)==false||$context==""){
return($Temp);
}else{
return($Temp.$context);
}
}
if($js=="PUFFINVERSION"){
if(strpos($b,"Puffin/")!==false){
return(explode(" ",explode("Puffin/",$b)[1])[0]);
}else{
return("");
}
}
if($js=="webglInfo"){
return("");
}
$debug.=$js."\n";
if($context!=="*no*"){
if(strpos($js,"split")!==false){
if(strpos($js,'"')!==false){
if(isset(explode('"',$js)[1])==false){
return($js);
}
$list=explode('"',$js)[1];
if(isset($list)&&$list!==""&&gettype($context)=="string"){
$list=explode($list,$context);
if(strpos($js,'[')!==false){
$key=explode('[',$js)[1];
if(isset($key)==false){
return($js);
}
$key=explode(']',$key)[0];
if(isset($key)==false){
return($js);
}
try{
if(isset($list[$key])==false){
return($js);
}
$out=$list[$key];
return($out);
}catch(Exception $e){
$output.="!?";
return($js);
}
}else{
return($list);
}
}else{
return($list);
}
}
}
if(strpos($js,"replace")!==false&&false){
if(strpos($js,'"')!==false){
if(strpos($js,'[')!==false){
return(str_replace(doJS(explode('(',explode(')',$js)[0])[1]),$context)[explode(']',explode('[',$js)[1])[0]]);
}else{
return(str_replace(doJS(explode('(',explode(')',$js)[0])[1]),$context));
}
}
}
if(strpos($js,"length")!==false){
if(gettype($context)!=="array"){
return($context.'.'.$js);
}
$out=count($context);
return($out);
}
if(strpos($js,"at")!==false&&explode('(',$js)[0]=="at"){
if(strpos($js,'(')!==false){
$pos=explode('(',explode(')',$js)[0])[1];
if(gettype($context)!=="array"){
return($context.'.'.$js);
}
if($pos<0){
$pos=count($context)-$pos-2;
}
$out=$context[$pos];
if(isset(explode(')',$js)[1])){
return($out.explode(')',$js)[1]);
}
return($out);
}
}
if(strpos($js,"indexOf")!==false){
$debug.="indexOf";
if(strpos($js,'(')!==false){
if(gettype($context)!==gettype("string")){
$debug.=gettype($context).gettype("string").gettype($context)!==gettype("string");
return($context.'.'.$js);
}
$out=parseJS($js,parseJS($js,$JSdepth)[1],1)[1];
if(strlen($out)>0&&substr($out,0,1)=='"'&&substr($out,-1,1)=='"'){
$out=substr($out,1,-1);
}
$debug.=$out." in ";
$debug.=$context;
$out=strpos($context,$out);
$debug.=" ".$out;
if($out===false){
$out=-1;
}
return($out);
}else{
return([$context,"indexOf"]);
}
}
if(gettype($context)!=="string"){
return($js);
}
return($context.'.'.$js);
}
$tmpJS=preg_replace('/(\s*)/', "", $js);
if(isset(explode('"',$tmpJS)[2])==false||explode('"',$tmpJS)[2]==""){
$tmpJS=explode('"',$js);
if(isset($tmpJS[1])!==false&&$tmpJS[1]!==""){
return($tmpJS[1]);
}else{
if($in==$js&&is_numeric($js)==false&&$in!==""){
$debug.="\nWARNING! UNIMPLEMENTED OPERATION: '".$in."', at depth:".$JSdepth.".";
return("");
}
return($js);
}
}
$js2=parseJS($js,$JSdepth,-1);
$out="";
$context="";
$conditionlist=[];
foreach($js2 as $item){
//$debug.=$js2;
if(substr($item,-2,2)=="&&"||substr($item,-2,2)=="||"){
$context=($context?"1":"0");
}
$debug.=$item.$context;
$debug.=gettype($context);
$context=doJSthing("+",$item.$context,$JSdepth);
$out=$context;
}
if($in==$out){
$debug.="\nCAUTION, parser failed to parse: '".$in."', at depth:".$JSdepth.".";
return("");
}
return($out);
}
$debug="";
$output="";
$outputtemp="";
$preoutput="";
$skip=0;
$passed=-1;
$elsecheck="";
$conditionlist=[];
foreach($temp_value as $item){
$temp_item=$item;
if($skip>0){
$debug.="//";
if(strpos($item,"}")!==false){
$skip-=1;
$debug.="//".$skip." deep, checking:";
}
if($skip!==0){
if(strpos($item,"{")!==false){
$skip+=1;
$debug.="//".$skip." deep, skiping:";
}
}else{
$passed="?";
}
}else{
$skip=0;
}
if(strpos($item,"}")!==false){
$elsecheck=array_pop($conditionlist);
}
if(strpos($item,"function writeBaV")!==false||strpos($item,"function Bto_c")!==false){
$skip=1;
}
$temp_item=explode("if(",$temp_item);
$debug.=$temp_item[0].(isset($temp_item[1])?"if(":"");
if((isset($temp_item[1])||isset(explode("}else{",$item)[1]))&&$skip==0){
if(isset(explode("}else{",$item)[1])){
$passed=$elsecheck;
$debug.="//not ".$passed;
if($check!=="bad value"){
$check="bad value";
if($passed===1){
$passed=0;
}else if($passed===0){
$passed=1;
}else{
$passed="?";
}
}else{
$passed="?";
}
}else{
$temp_item=explode("){",$temp_item[1])[0];
$countparen=count(parseJS($temp_item,0,-1));
$debug.="\ncount: ".$countparen." ";
$check=explode("b.indexOf(",$temp_item);
$checkmulti=(isset($check[2])?$temp_item:"");
$check=(isset($check[1])?$check[1]:"");
$check=explode("||",$check)[0];
$check=explode("&&",$check)[0];
$check=explode("//",$check)[0];
$check=str_replace(')!==-1','',$check);
$check=str_replace('"','',$check);
try{
$debug.=$temp_item."\n";
$did=doJS($temp_item);
$debug.="\n".$temp_item."\n".$did."\n";
if((isset(explode(")",$check)[1])==false||preg_replace('/(\s*)/', "", (explode(")",$check)[1]))!=='')&&($checkmulti==""||(strpos($item,"d.indexOf(")==false||strpos($item,"&&")==false))||$countparen<2){
$check=explode(")",$check)[0];
//$debug.="UA contains?:'".$check."', ".$temp_item;
if(($did&&$countparen<2)||($countparen>=2&&$check!==""&&strpos($_SERVER['HTTP_USER_AGENT'],$check)!==false)){
if($outputtemp!==$output){
$preoutput="";
}else{
//$output.=$preoutput;
}
$outputtemp=$output;
$preoutput='"'.$check.'"'.($check!==''?', ':"");
$passed=1;
}else{
$passed=0;
}
$conditionlist[]=$passed;
if($checkmulti!==""){
$check.="//not fully implemented: ".$checkmulti;
}
}else{
$passed="?";
if($checkmulti!==""){
$check.="//not implemented: ".$checkmulti;
}
}
}catch(Exception $e){
$output.="!?";
print_r($e);
}
//$debug.=$check;
}
if($passed!==1){
if($passed=="?"){
$debug.="//unknown";
}else{
$debug.="//false";
}
if(strpos($item,"{")!==false){
$skip=1;
$debug.="//skiping";
}
}else{
$skip=0;
$debug.="//true";
}
$debug.="\n";
}else{
if($skip==0){
if(strpos($item,"c.innerHTML=")!==false){
$jsCode=explode("//",explode("c.innerHTML=",str_replace("c.innerHTML+","",$item))[1])[0];
$output.=doJS($jsCode);//.($jsCode!==''?', ':"");
}
if(strpos($item,"writeBaV(")){
$jsCode=explode("//",explode("writeBaV(",$item)[1])[0];
if(explode(")",explode(",",$jsCode)[1])[0]=="1"){
$preoutput="";
$jsCode=explode(",",$jsCode)[0];
$output.=str_replace('"','',$jsCode);
$jsCode=": ".explode(")",explode(";",explode(" ",explode(str_replace('"','',$jsCode)."/",$_SERVER['HTTP_USER_AGENT'])[1])[0])[0])[0];
$output.=$jsCode.($jsCode!==''?', ':"");
}else{
$output.=doJS($jsCode);//.($jsCode!==''?', ':"");
}
}
if(strpos($item,"Temp=")&&false){
$jsCode=explode("//",explode("Temp=",$item)[1])[0];
$unusedUAtext==doJS($jsCode);//.($jsCode!==''?', ':"");
}
}
}
$debug.="\n;";
}
$temp_value=$debug;
utf8_decode($output);
if($output==""||$output==" mobile: highly falsey"||str_replace("`","",str_replace("´","",str_replace(" ","",$output)))==""){
$output=",
whoops, sorry but the php based js interpreter isn't compleate";
}
print_r('
'.$output."");
echo nl2br("\n");
$browser=explode(",",explode("``",explode(" ´ ",$output)[0])[1])[0];
$engine=explode(",",explode("´ ",explode(" mobile:",explode("```",$output)[0])[0])[1])[0];
$OS=explode(",",explode("``",$output)[0])[0];
$device=explode(",",explode("```",$output)[1])[0];
print_r(($browser!==""?$browser:"").($engine!==""?($browser!==""?" using ":"").$engine:"").($OS!==""?" on ".$OS:"").($device!==""?" on a ".$device:""));
print_r($temp_value);
}catch(Exception $e){
print_r($e);
}
}
//
?>