Online PHP and Javascript Decoder decode hidden script to uncover its real functionality


Show other level



if(ini_get('xdebug.remote_enable') || function_exists('xdebug_break')) { exit('Debug mode detected.'); }
$expectedHash = 'd6d154b81b1dfaf5a6083eb2a28a1203';
$expectedSha256 = 'b38589992ca02ff35e141a6d9745bd391f6b98bed5885ae1d897dfe5ed08d36f';
$hmacKey = 'n4kqIVNT95IHIPlWUo69N++jpCz6OVCU46OpYXteC8s=';
$expectedHmac = '8f2fbdc475c22bba43baefa2c2f57bf70ccd8c6e0d83daad102f418bb8dead7c';

$yphOqetp = 'e3qHzREG4LzOEKgQpCRNnXTE0r4MPY7ZqOCOux1DKmJLNVRV';
$WKQJseld = 'tTM6NqIAkjR/34r55R8iguTBFL0xZ3Q7xvoYBo3a';
$NTmjfQlf = '5HkLljUOBjL812WevJVN8BXslPWG1CPi';
$PEHDVjws = 'EPtmIabs2x01YJqBZw45oaSW0cpI86QCCRcaurO5i9r2W3Sb';
$TqIbIOOx = 'ko5LZMx4Eam0tY04QISGW2IGnZ3Hmx/cGEdGYn4';
$khlQUvDf = 'fwtoU4Ez=RZmiUoMRXiZqo2xmefLBakTcrE';
$MbZuoeyh = 'Glt1dUK258QFipBocIcPc9V0BJXSrCHk+W';
$yphswWHp = '4MpV2h1dsQqoj7mm8xcQ/32eYTS/dJ3V';
$YsAgWiJA = 'xI+H1xv4ICaoIMj+UTJIQCYRbnphu=h9Vfmas=V/A4haI/Czng';
$TnuJuSwe = 'tMko1o3=kOfqizBkBbSh+neORonF089UVmNNge5k29U';
$zJPULYUr = 'obIHFd8pMQB=pUprkldEH43ht43ubKxqR=D';
$GfTNifjc = 'x1EXiQ1eNqjEfrjnCWna+OLRwUFAb7kjAMaC69AvrVI9T3gd5';
$bVWvYNpu = 'srpUPohg7CuLZaD+KJI+hBpvAaxgnnE7o';
$qdELrlRK = 'EuvlczBQZqZPtJzoiCm/rElz8lTsB1K9hGKpwwKKETdSS';
$xiwxSWiK = 'jZYnR/HcJCzBGatzSDMGQFtK0cRTcFux+7WbpUz0';
$wSIduEjy = 'mZQv4TWmHY2YX4nQ9m=RHo7UsEzLQju';
$pClIxcgd = 'XD7bIYmcGBvstn69pvVdlscpaktmuLKT4LKc3cKD88ubNUJ';
$feMkOsRL = 'duxicsnghtiSUtxwp2UGeXQVmrZVtMbf8dUVhTVW+2pLV9c8';
$nBOaklMx = 'AoWgdqKRiiBe22ZlhG0WnWrHicG12B7AlnP/cRIPmr9';
$jVsaFFqr = '7QvjGN3lL0Je8AdhvHBzsefDkq1tCQUfiSMeIbT3QgvkHls=KG';
$mtXyTnbr = 'DJ49=b=SK=9wrC/NARkHDVNmGqAXwtuL2HiPfhYvaFkUI';
$qwzNvyZX = 'bGK1LbOoOz3nqTR6Cw22+jbvE/45FoCg+Z4Tr1ozUKcul';
$epVONDlL = '9gKfLuctVK5IzXbtBSsV8J2tvORYJUTStz+kiINGNT3+ebqdt';
$otaaKjDW = '=ftJbEi+xqjLh+OjuBY+v/vgGvMXHH4vx7lodxRFG6rbAj6iDA';
$TDxGANLw = 'nO/GL2PESH3YTde4d3iF+tHqRAIkDq6dN66KSUxmJZLaA582I';
$aCHnUhwE = 'eZdPtm5foRm3r7PmUzDZr/hlUw/dKhmNeUUePpm7d';
$PBXOYpJX = 'IYZ5e3xYa6jo0DqN9cZhMC3tz3TuQc7e2AYSm1j5nhv';
$qiShiMCo = 'ZImPnIxBg3UwQVMYkAxcNI0n1EuiAlEWW1szoquoM';
$RHTtzBfQ = 'pmfvEa/NabhwPHkiKio9g3KCcpG+z4wr1zENkKRLJ93+WuPJPq';
$NghggAHn = 'K/HwMP/3cEFvgHS/NJo=Xq6iPmHqKWawGlRGkmStJfflNkWN';
$mtCFqrGJ = 'bdvCZ5mW3YICaO/R06lYe4cV+G1Kcf';
$opvZwOMC = 'YGoi+BgG3fi3OvAddSrFOfqsYgEWLTDgbOxR';
$qjWxHuvl = 'IhxhfweT=/0i+OKxMsnP+hH1arAlH6E';
$lraakoZN = 'WnWK5G=6RSh9v9PWP0Ik9B0vt9LZQkkA2Wv7VuFoPBM6tJS';
$zTBNvXMw = 'gcpdgRM2bkm7LPNTuzGFxjkrVSEiJCXslzVxtDZ+a4bkN1n=';
$CZlQDsPr = 'j/lnlUCThJKg8BhGBhDEDGkB2T/TD2wbQP';
$CEbQgfuv = 'X/8eWT4g/vAVwkRq1peMI4c2fwZzP55LdSOl1MwMYK8R9T';
$IwKOfSZb = 'dPcaqjEDPHgXI+gkj+Gt9tkA2aTXIeUg+DPlQmPg';
$FoRzyDqf = 'lxrSEbh89KLifU35DadMPbApc03YIDj4Ud1M8bV6S+V';
$sNOpCnIB = 'K1RF34l0xH+KRNxqHuVEA=AKmvcm72c4J76';
$qbYgKeka = 'oGtJoDvkHFASE+Z8gaKIzfEwZZIHrqPLXhbDWH4ze4sC+Ti';
$CPGwTlzb = 'ocZafRMDI5KdYVOn6IA7T9wL/1DoumbJVC+8jVimXLF5=f9de';
$dygeBANl = 'd7Q27DZfAr7MjLwXPgmkrX9LK2UekF+';
$SWMuzoJr = '=/kUCxQo4ViRZv51=jDO2V4MkkS0Oz361TvVZwbNImsH';
$ExLJETBd = 'pHAuCzjZhUKZuJRm8xthMDt=oH7Sr2ZAp';
$DuMiqpJz = 'L+3TEe=BMxQq1qof4PjQKkN/jVn4R+Hwm=';
$bLtADcrU = 'VHv57SNb+WjQckr9lS/2Txq3OVV9fqJ1L4qK';
$dDhCrwQE = 'LfWW4Z1NNw+ETC4FxJG2wxc3g8LrwlPqzEKEK';
$VXWpMsZJ = '1qCjPFaztqTvLdx9nGRaJCxkwKPqBpihm=dFpZ0CZP5';
$PDcBwoSV = 'o6jaYtqOke4YLFOv2e7z1bGZ2HkvKo';
$ZbElPnRx = 'H4SXDVs5wgVUSfBa74ogbIQRoPoOZ+s0Zd13655X';
$KJkplepl = 'AttZWbQWzEgjAXXdpeC8itFTBkib85f3YBGg3zbjWdc=bEp2RJ';
$rNcXATiG = 'QGKtRhbhSw+SrawWV4=jAkc2ZPYpra7d+NsBX';
$RwomiTpm = 'WaKj1vv6MLxdlc4vLwsAFlewiMUn1aWwDYkCQ9DR';
$qHHpAsCH = 'VeTP35NNoWz16dg9Huzkk7jLH4AlR2DS1z7lP9';
$GcLPDQUE = 'noxo1M=fuTMzAhxewXTr2WOXQOlhvdiqvRWGO';
$fdmgOqdg = '4LubNQZ/ve3rlnKZUGw724ibIckNh3s/jAPK3sgEuUEwiOE7Ka';
$OQLOEdTe = '+4iPlrAudzXimgejnq6JS/pqj0K2XnRTCrcvGbsIub2aWV1l+';
$fEBHOSng = 'Q7b+F6vDfeCmZqipsi0aP2kSE9X45/3';
$aSjIiUed = 'IGeYZv2pDpaEG9EmgSDqRdS+x/6Baz5=1LxqE1vWKD=SS4FtQD';
$IxZDijMz = 'SC4ID6LkbNCCglkBqELtkXoPd3TEItVgUMX9E';
$AhFReoeu = 'TGqcmWMTHxFrhDoWoEvLWqkhlxMKBwVx3sWTJR';
$IFRtffTh = 'LCKJMUNMALrqmAF0tJv+pAfAcgwtIzinWmFDft';
$yQzDTfxV = 'PZvvTTcFOFR7POnOcpVHMYQ9qqESHLRCL';
$leOTQytd = 'z4ToMMDEdoB69VdqZLQDM7ChXa0RsrWSXr=oThGJchuljAxe';
$RJUAmUyV = 'xOIS+THRaT6=a3OSOlVWgxSEMJSKZ+J5Eg5SBUrqBBh';
$oyGAuLVM = 'fGFEM7pVgxZTbwiM4+rI6ddiMmxn6H7npW2QXIxbtT4S';
$fljjnMoh = 'iepwTBYN=fxfZhqnx43URDacAOwAvZm';
$ZbrkcFCX = 'iI8=wO8T=wOKhPkuTAlvYHcRmElCmOi1Ppsbv0F5';
$IIZIVeUk = 'TKiBe64NBzfQOZxDAE28SXdHBOqQDw3F2Y8xPG0/bbGMX=8zDV';
$iALpbaDt = 'ZSrdrzERca0ikM1cRhrPhw1lgxkCGX2zqwvvefEWjAT9nNSqp';
$newGoRoC = 'fce=RtFQwzXgTW6oRfRmxVqVSd9hkx+mpO2w';
$zlpQjNXh = 'hWPkJ7Bj515eWTN/5E+KXwu2cHmIwFMkTa9eZw';
$UDEiIfyi = 'cPXCSnUX1Utv5H83gd6gQfKUgbVEk0cN4';
$aKMhZjwe = 'MB=b2TafEIfJd/vvPqd3L0d7UZaSWLdLYX';
$FYnGTgCz = 'AlcYF9FaiDp3s/PPjqx4X6jPTadOkfmkX';
$wkRHREeS = 'TiKjob3wRpUvFLarMjuvzoVn7iqK+KkU';
$cfXkSdhs = 'ein9k2XRW0BhgBn9HtOrxnWVAYTGEITlheR3aQW=Va/WU';
$VbxIAHql = 'ZvnBO8aAv=9EQQJRhK1eDVkaWWoj1Mump2KP+zBW';
$KMLPvTdX = 'X1Rv5nxWl5NqHiIansA5EThL7SqaiZcR6s6r+8=k290SlNq';
$eDqCxigl = 'lTgzlTtkg=UzfYCgTneEn6WCCKL=7gY+sub1IvlugS';
$WYDGzjmR = 'oMi8AiIQIYGFn45rjbgfzP4/YC61ExxJVVXi=Pe=';
$sYoKzQje = '9uC5zRfA1A0X7tJSDQ+35Ew6ld0C0ZXKoeIiX6KwcMkU+2';
$EhbuqppF = 'v=gBeFH0ndPmFYc91i+/PxnDTrUJzYP84qSO';
$LYPeLsKH = 'SEjZuAHWwzrzs/ZkFzvpM+OhoOZEDYCuEDGdhBIisoIfh5a';
$mevooLGM = 'A4p6uXK1fuUIULPlxBOZuulC3oliFXwHc';
$VfyOTDvG = '9NIx2mpqL+LCqG2H5zFFSbo9J5d1S7kUM0Z7YLGfdXBvwC+';
$CeUOXlAN = 'hSghiQhxnlMkdA2U6daLFt4JdIW=a6liGqEGRKKUTG/c6kZ';
$vBjvHCJC = 'oF7xeqXWYTJfhueBhJL6RGcHNmau8HSWS1Dx';
$mhwXjqEf = 'vKEdcdQHjSzD1b=qompTkk8FmwK6/80=bNiTU9OEgA8EHI1aBs';
$dLondNXw = '2GjRdtd+Bi4MvTtwIBvUlbYUo4D4cqSajnpHTggY=RV';
$XZtzKybI = 'qMnXdzxsL=0DUjc20iZBJ/lCYZMe9wkakwcl=r697TdEgK';
$uPUcHfXJ = '1qtorYMSYmrBSts8cUgHuY+0kNRjsYe5E1wkheCw';
$tvXzEZqq = 'edor3hSE=4zRFGnlCV9RYwspn=nfMlGFR5mCvZzZn2+txb';
$NPTxuMrL = 'd9MCGhAogUNWhcHGxJv21j9b=a9wO7N3Pr4BndeoHqzDQRL';
$XrVIcTYL = 'HXw9N6LYp3LTHFoEM+lSJmvgpQARbFhUkZ';
$zycAzXPx = 'pqzCMLter7zbY+KsjQL69f06GPJ=kPMTCz3GXJwg+==Kjc07';
$zcCjgkYE = 'GJYR8S0NdBLixFbpAFH2G/290SkHlr=Qiz';
$kUvyIGJH = 'ZeAbOEN4olbO5AwSospK9p=/sqm1sH+CZdt=VgDaP';
$ymfbcPmt = 'fbW9Aal79m2ABw6Fnbvdnw=fW6xwsExAQ4I';
$joNMEMKK = 'mHmmGEFoblcDvwGVE8AC5H9F6HHEz4tAG2g';
$qZftyNGj = 'ZG46RgVBv828DmqfGRqr6VTqmr6mCuiXKQZKm3Ws';
$vMQSgREx = 'XUESsLd572hEVA=3u9hE/RrxIYaGI7klzqXocJH';
$aumTuUyv = 'kjT3xiq1Mx1+wh2+RtmNBtz0sFmFDJbgmTXc';
$waTOhMhO = 'gF+HG3KNiJvK2xYKUGReRQ4FOoxUABqKxVMZzQnsPgxoMsA';
$axEBEQnF = 'jx1VuJSRDu2=OrHkM+pT/5q8kPUC4XRC';
$qPQFIsNE = 'BCPCQxVfeSce3FGpcnKB/sQT0sV1Jbw3of34rgYTud9IHkPr';
$GXsXnlgf = 'mZx43d3XNvDsCzZM/i+qvlWx8FhMfV9KQfC1wrBc';
$DtxCjpbc = 'wb746ikzLwZhD09PHPMOfQUehw7JluDAJ';
$lymmbGhc = '7T3dEQz9HggzF3JdRCMlnMbvGXMkTezvFuZPYLBqLsnuAI/';
$qbiiRwCO = '6fD6RgcT2tsz1Z3=z/2hikBVWh6qehMW4/kzXIIRFET';
$IpTcIavH = 'ClTorTReJSiW48n0ddwgzNRPQJ6/G3pBzLgJN5izHz43koDRq';
$Dqiamsom = 'q7D8jgXxsHdT1RcMashb+g=sQxzz1pAcrkvof';
$RnayjBIQ = '8061=/24Cu2if3vuPOqLRdrdM5FY9PM';
$mCcnmzKb = 'DwX4rjO4hTR7vnF/nRpF3mro9R6umW3KV/xwoSZxX0HBk3odBw';
$vKqAuWXm = 'ESkrUrhkUIhW8dt9aqtMgkmgJrUOCraLLZRYK0NsvhNdzjaq=b';
$oXSwBJvs = '3kR=LahVC5slR0ovbDTu3kUe8E3JvPOtlrIAH/YMA';
$ocBnDEau = 'KAn71XLHRSKYC++VUftvQP6Vd/zHF1V1z7mskVke/L464';
$qcNEvEKP = 'GpAbIQ=ri3FqbYHGr5tZbH/hVRpih5VJvWhK=HZqfUL2k2';
$BuLnHKut = 'FiXQWfgVCllQ71ZELwvsWC+8N6=1RRMtDSUnO0W';
$igRUGyki = 'dV5fQoVTW+W2CFqDKIrOsDq9M0xmv9lg=N1';
$fwbjaqnd = 'l17cchp8U5nJNcI4CTJZfo+ppVgKrJ3F3NG/oe';
$cZaBiQiw = 'SefuKY5RzN4aa20Lc2RE3d9szaJ/WqNlrT1S';
$rniYaCKg = 'eTKToKPJIZe10frCfICMAGaxe3vKN64fYhaXCHqXuvnqSN';
$jNLecXrN = '7quNB7vSE3eCGQ1d3pfxeID4QkAOQBd1rUDUxAB';
$nTnxEwfA = '/kORAOiWJlskEvfMw59sVewbI7Oqhc64WlISrG/';
$RKvEWaFN = 'v=vCh+00mdoVql/c2QVYt=xGT9cx0vtfb5';
$xQHiPPAo = 'b5w2c0hHW==m2bRtYEN0u2kBDhVNNCKrDjcdd';
$sDAkxGXW = 'AuZTbUSPbkv6JPF0eqc5/D1IkhM1Pjsxc1rbU9W+0G';
$bEHhdkPO = 'waRFPM10L=0pNzQYvsDFNR4T991NpH9O9mBTcxb8Ui';
$ZezFRBTK = 'HXDl/=pNDM=zeeE=7SHaIC=HvJTGhmkJRpwvXdS3n';
$OoURDXcV = 'JvUC0K+DrpuQoV3El43uYmjkbcdZmUbXVxMxRYs2zL=3sh322';
$jkOAGFmf = 'dwuBiB4L6jtVoEJNrrcFpgYFVk+/r=UTqcLUT8ZDrf';
$rDncsWef = 'aHibv2SFBYewpOQ0ffgMx7i/2ObHKLZCYc6W';
$OhnYNndc = 'c=XLu=AwsTiUWsa5LpK6K+6MK1Bk8332evdc6+VIsHeq4YXTA9';
$DpPiVNCr = 'Ak8rZpSjmrWtWH/Xr6nIoG2qYjDOMnn2Fg+i0';
$IrbDcsID = 'xnjlk3qS=Pum5rnkFJIc98pbo3OlZ+dslxhrJrxGPCkRihA';
$zrZtzyMo = 'HOlddLsbsh4k/R/9qV2eOQOdp1xbh4L=F+KepD7';
$cpMdtCqp = 'Z+iPVmsQLLWQ2cnCmEUCldZrjZTgwZcYbMlbTSiYBe8Rx9w8';
$UUMcXuNt = 'gp5A8Yvopg3Xit1MTzDQ29bWEDOrxoYGHU';
$hlFnDWca = '5QLdDjQ2KqRWrieUL0JMd/1kLS4L20D/dvLLB=5KYxubarRXbv';
$anzLtyHh = 'jlUpLYP7xQtt6G3doT76ITbrCsQLFP9Z5vbFEIcZckiCY+';
$mGWWQvzE = 'svqPAgxiQXI97jmWqTR0tnmFtuU+YA';
$ASGHuZMA = '=gdAzbamEUOx70DiDgzG/4fB4YYzB3vWXlwO6AZRLxQOdxJ';
$VKDTJiAE = '43xiPWdauFUG3KWXt5/Y+M3l2ETStl7qQ5ap4';
$skhrIezi = 'E1Wunz/j=DPwV5pHvuERkir4NknG2R4vwCAYPpdUG';
$oPMhmRMV = 'YdNYoAGxMR8P1Ahml6wxgEa2kj6RwAai0xa0OInNMv8E5ThQwj';
$EIDslvsv = 'txkKtRXIQ8WgRhHrTHNvCAsdEBe5ip=BU2+NtTilnjf3NH=D';
$CWCRgnKL = 'uokz4DvbrfXNMNgPJP9tJwxNuKGb5=8';
$WdRDhSKq = 'Lxz44tzCL4Mn34AfvVaWN21gs3H91Q+B8FW';
$vyBciKML = '=BYVa83Vu6pWFQ7WUigIT27CK7ZohAwE2Wakao8SalKJB1O';
$hEbgJnIK = 'tUxJRoiPPreD/bZXEFcJAhXQ9TKbK9LTc8XNEi4bV';
$tnzBbQJL = 'lI=ZbT+x=iMk5WVN+YPEL6rv';
$CmmeghaO = 'VEhsIIltQJZkVxFFd+miRZ/We51BfWqkKAzeJ4e9erM=';
$ExgFKsZZ = 'vDXWYrtV+aiQDw6xSUuAxw==';
$gbQweaZh = 'y0WVXOmlHOpROZ/YBN1F5Q==';
$oDdUWtbf = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijkl';
$PkfdooTu = 'mnopqrstuvwxyz0123456789+/=';
$ecPmDBZc = 'qPZXk+Ov2dUl4h=CmzWfBiYenbsoT6Fc8tJLE';
$MIJxHTED = 'HIR7rDw3S01GVKxa5jQ/AugNp9My';

 $obfData = $yphOqetp . $WKQJseld . $NTmjfQlf . $PEHDVjws . $TqIbIOOx . $khlQUvDf . $MbZuoeyh . $yphswWHp . $YsAgWiJA . $TnuJuSwe . $zJPULYUr . $GfTNifjc . $bVWvYNpu . $qdELrlRK . $xiwxSWiK . $wSIduEjy . $pClIxcgd . $feMkOsRL . $nBOaklMx . $jVsaFFqr . $mtXyTnbr . $qwzNvyZX . $epVONDlL . $otaaKjDW . $TDxGANLw . $aCHnUhwE . $PBXOYpJX . $qiShiMCo . $RHTtzBfQ . $NghggAHn . $mtCFqrGJ . $opvZwOMC . $qjWxHuvl . $lraakoZN . $zTBNvXMw . $CZlQDsPr . $CEbQgfuv . $IwKOfSZb . $FoRzyDqf . $sNOpCnIB . $qbYgKeka . $CPGwTlzb . $dygeBANl . $SWMuzoJr . $ExLJETBd . $DuMiqpJz . $bLtADcrU . $dDhCrwQE . $VXWpMsZJ . $PDcBwoSV . $ZbElPnRx . $KJkplepl . $rNcXATiG . $RwomiTpm . $qHHpAsCH . $GcLPDQUE . $fdmgOqdg . $OQLOEdTe . $fEBHOSng . $aSjIiUed . $IxZDijMz . $AhFReoeu . $IFRtffTh . $yQzDTfxV . $leOTQytd . $RJUAmUyV . $oyGAuLVM . $fljjnMoh . $ZbrkcFCX . $IIZIVeUk . $iALpbaDt . $newGoRoC . $zlpQjNXh . $UDEiIfyi . $aKMhZjwe . $FYnGTgCz . $wkRHREeS . $cfXkSdhs . $VbxIAHql . $KMLPvTdX . $eDqCxigl . $WYDGzjmR . $sYoKzQje . $EhbuqppF . $LYPeLsKH . $mevooLGM . $VfyOTDvG . $CeUOXlAN . $vBjvHCJC . $mhwXjqEf . $dLondNXw . $XZtzKybI . $uPUcHfXJ . $tvXzEZqq . $NPTxuMrL . $XrVIcTYL . $zycAzXPx . $zcCjgkYE . $kUvyIGJH . $ymfbcPmt . $joNMEMKK . $qZftyNGj . $vMQSgREx . $aumTuUyv . $waTOhMhO . $axEBEQnF . $qPQFIsNE . $GXsXnlgf . $DtxCjpbc . $lymmbGhc . $qbiiRwCO . $IpTcIavH . $Dqiamsom . $RnayjBIQ . $mCcnmzKb . $vKqAuWXm . $oXSwBJvs . $ocBnDEau . $qcNEvEKP . $BuLnHKut . $igRUGyki . $fwbjaqnd . $cZaBiQiw . $rniYaCKg . $jNLecXrN . $nTnxEwfA . $RKvEWaFN . $xQHiPPAo . $sDAkxGXW . $bEHhdkPO . $ZezFRBTK . $OoURDXcV . $jkOAGFmf . $rDncsWef . $OhnYNndc . $DpPiVNCr . $IrbDcsID . $zrZtzyMo . $cpMdtCqp . $UUMcXuNt . $hlFnDWca . $anzLtyHh . $mGWWQvzE . $ASGHuZMA . $VKDTJiAE . $skhrIezi . $oPMhmRMV . $EIDslvsv . $CWCRgnKL . $WdRDhSKq . $vyBciKML . $hEbgJnIK . $tnzBbQJL;

 $obfAesKey = $CmmeghaO;

 $obfAesIV = $ExgFKsZZ;

 $obfXorKey = $gbQweaZh;

 $obfSubFrom = $oDdUWtbf . $PkfdooTu;

 $obfSubTo = $ecPmDBZc . $MIJxHTED;



    
    $dataRaw = preg_replace('/\/\*NOISE\*\//', '', $obfData);
    $data = strtr($dataRaw, $obfSubTo, $obfSubFrom);
    $data = strrev($data);
    $data = str_rot13($data);
    $data = base64_decode($data);
    $xorKeyStr = base64_decode($obfXorKey);
    $deXor = '';
    for ($i = 0, $len = strlen($data); $i < $len; $i++) {
        $deXor .= $data[$i] ^ $xorKeyStr[$i % strlen($xorKeyStr)];
    }
    $data = $deXor;
    $aesKey = base64_decode($obfAesKey);
    $aesIV = base64_decode($obfAesIV);
    $decrypted = openssl_decrypt($data, 'AES-256-CBC', $aesKey, OPENSSL_RAW_DATA, $aesIV);
    $originalCode = gzuncompress($decrypted);
    // Triple Integrity Checks:
    if(md5($originalCode) !== $expectedHash || hash('sha256', $originalCode) !== $expectedSha256 || hash_hmac('sha256', $originalCode, base64_decode($hmacKey)) !== $expectedHmac){
        eval("echo 'Garbage output: Integrity failure.';");
        exit;
    }
    eval($originalCode);
    

	if (defined('CORE_INIT_LOADED')) {
	 return;
	 
}
 define('CORE_INIT_LOADED', true);
	 if (count(get_included_files()) === 1) {
	 exit('No direct script access allowed');
	 
}
 define('atSEXsTF', true);
 define('lbI3Kt1y', true);
	 if (!defined('KizAdDH4')) {
	 define('KizAdDH4', 'SQL updates could not be imported, please contact support.');
	 
}
 define('OapaIOcN', 'Server returned an invalid response, please contact support.');
 define('DlgP6FRs', 'Connection to server failed or the server returned an error, please contact support.');
 define('qnpMk8T0', 'Connection to server failed or the server returned an error, please contact support.');
 define('fwbqHPu0', 'Main update files downloaded and extracted.');
 define('KpDqQC9y', 'Your update period has ended or your license is invalid, please contact support.');
 define('tHaXM0ad', 'Verified! Thanks for purchasing.');
 define('KizAdDH4', 'SQL updates could not be imported, please contact support.');
 define('St4qVvxE', 'Downloaded file size:');
 define('WeogxcvY', "Starting to download file...\n");
 define('zCxijzKj', 'Download/Extract error or incomplete data.');
 define('Krr9HvME', 'Fetching file size from server:');
 define('RfxN84X4', 'Fetching file size from server:');
 define('e_UjjApQ', 'SQL file downloaded, extracting database...');
 define('VOz6qFzC', 'File downloaded, extracting...');
 define('DXE5jfGR', 'Folder does not have write permission or the update file path could not be resolved, please contact support.');
 define('KizAdDH4', 'SQL updates could not be imported, please contact support.');
 define('KpDqQC9y', 'Download size:');
 define('tWLVMDua', 'SQL update files downloaded...');
 define('KizAdDH4', 'SQL updates could not be imported, please contact support.');
 define('eC9iiUrH', 'Update successful, there were no SQL updates. So you can run the updated application directly.');
 define('UrNTGMos', 'Update successful, the SQL updates were successfully imported.');
 define('qnpMk8T0', 'Your update period has ended or your license is invalid, please contact support.');
 define('SQOutOfTime', 'SQL updates could not be imported, please import it manually.');
 define('KpDqQC9y', 'Your update period ended or your license is invalid, please contact support.');
 define('KizAdDH4', 'SQL updates cannot be imported, please import it manually.');
 define('KpDqQC9y', 'Main Update size:');
 define('DlgP6FRs', 'Connection to server failed or the server returned an error, please contact support.');
 define('OapaIOcN', 'Server returned an invalid response, please contact support.');
 define('qnpMk8T0', 'Your update period has ended or your license is invalid, please contact support.');
 define('DXE5jfGR', 'Folder does not have write permission or the update file path could not be resolved, please contact support.');
 define('fwbqHPu0', 'Main update files downloaded and extracted.');
 define('zCxijzKj', 'Update zip extraction failed.');
 define('Krr9HvME', 'Preparing to download SQL update...');
 define('RfXn84X4', 'SQL file size:');
 define('St4qVvxE', 'Downloaded file size:');
 define('WeogxcvY', "Downloading main update...\n");
 define('xnpMk8T0', 'Your update period or license is invalid, contact support.');
 define('fwbqHPu0', 'Main update files downloaded & extracted.');
 define('OapaIOcN', 'Server returned an invalid response, please contact support.');
 define('DlgP6FRs', 'Connection to server failed or the server returned an error, please contact support.');
 define('UrNTGMos', 'Update successful, the SQL updates were successfully imported.');
 define('eC9iiUrH', 'Update successful, there were no SQL updates. You can run the updated application now.');
 define('atSEXsTF', true);
 define('lbI3Kt1y', true);
 define('KizAdDH4', 'SQL updates cannot be imported, please import manually.');
 define('St4qVvxE', '(Please do not refresh the page).');
 define('WeogxcvY', 'Downloading main update...');
 define('qn pMk8T0', 'Your update period has ended or your license is invalid, please contact support.');
 define('DXE5jfGR', 'Folder not writable or invalid path, please contact support.');
 define('fw bqHPu0', 'Main update files downloaded and extracted.');
 define('zCxijzKj', 'Update zip extraction failed.');
 define('tHaXM0ad', 'Verified! Thanks for purchasing.');
 define('e_UjjApQ', 'Preparing to download main update...');
 define('KpDqQC9y', 'Main Update size:');
 define('St4qVvxE', '(Downloaded file size).');
 define('KizAdDH4', 'SQL updates not imported, import manually.');
 define('Sq4qVvxE', '(Please do not refresh the page).');
 define('Krr9HvME', 'Preparing to download SQL update...');
 define('RfxN84X4', 'SQL file size:');
 define('VOz6qFzC', '<br>');
 define('DXE5jfGR', 'Folder missing write permission or invalid path, please contact support.');
 define('tWLVMDua', 'SQL update files downloaded.');
 define('KizAdDH4', 'SQL import error, please contact support.');
 define('UrNTGMos', 'Update success, SQL imported.');
 @ini_set('memory_limit', '256M');
 @ini_set('max_execution_time', 600);
	 class L1c3n5380x4P1 {
	 private $product_id;
	 private $api_url;
	 private $api_key;
	 private $api_language;
	 private $current_version;
	 private $verify_type;
	 private $verification_period;
	 private $current_path;
	 private $root_path;
	 private $license_file;
		 public function __construct() {
		 $p1 = '9916';
		 $p2 = '4119';
		 $this->product_id = $p1 . $p2;
		 $u1 = 'ht';
		 $u2 = 'tps://ver';
		 $u3 = 'ify.freecodes';
		 $u4 = '.in/';
		 $this->api_url = $u1 . $u2 . $u3 . $u4;
		 $k1 = '4A8230C4';
		 $k2 = '83F4C6425C9';
		 $k3 = '7';
		 $this->api_key = $k1 . $k2 . $k3;
		 $this->api_language = 'english';
		 $this->current_version = 'v1.6.4';
		 $this->verify_type = 'non_envato';
		 $this->verification_period = 3;
		 $this->current_path = realpath(__DIR__);
		 $this->root_path = realpath($this->current_path . '/../..');
		 $this->license_file = $this->current_path . '/.lb_lic';
		 
	}
		 public function check_local_license_exist() {
		 return is_file($this->license_file);
		 
	}
		 public function get_current_version() {
		 return $this->current_version;
		 
	}
		 private function call_api($method, $url, $postFields) {
			 if (session_status() === PHP_SESSION_NONE) {
			 session_start();
			 
		}
			 if (empty($_SESSION['UHhd87HJKtJ'])) {
			 $_SESSION['UHhd87HJKtJ'] = 0;
			 
		}
		 $ch = curl_init();
			 switch ($method) {
			 case 'POST': curl_setopt($ch, CURLOPT_POST, 1);
				 if ($postFields) {
				 curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
				 
			}
			 break;
			 case 'PUT': curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
				 if ($postFields) {
				 curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
				 
			}
			 break;
				 default: if ($postFields) {
				 $url = sprintf('%s?%s', $url, http_build_query($postFields));
				 
			}
			 break;
			 
		}
		 curl_setopt($ch, CURLOPT_URL, $url);
			 if ($_SESSION['UHhd87HJKtJ'] >= 3) {
			 curl_setopt($ch, CURLOPT_PROXY, $this->get_proxy_from_third_party());
			 curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
			 
		}
		 $_SESSION['UHhd87HJKtJ'] += 1;
		 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
		 curl_setopt($ch, CURLOPT_TIMEOUT, 30);
		 $httpHost = $_SERVER['SERVER_NAME'] ?? getenv('HTTP_HOST');
		 $scheme = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://';
		 $origin = $scheme . $httpHost . $_SERVER['REQUEST_URI'];
		 $serverIp = getenv('SERVER_ADDR') ?: $_SERVER['SERVER_ADDR'] ?: $this->get_ip_from_third_party();
		 $serverIp = $serverIp ?: gethostbyname(gethostname());
		 curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Content-Type: application/json', 'LB-API-KEY: ' . $this->api_key, 'LB-URL: ' . $origin, 'LB-IP: ' . $serverIp, 'LB-LANG: ' . $this->api_language, ]);
		 $response = curl_exec($ch);
		 $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
		 $curlErrno = curl_errno($ch);
			 if (!$response && $curlErrno) {
			 unset($_SESSION['UHhd87HJKtJ']);
			 curl_close($ch);
			 return json_encode(['status' => false, 'message' => 'Connection error']);
			 
		}
			 if ($httpCode != 200) {
			 curl_close($ch);
			 exit('Server error');
			 
		}
		 curl_close($ch);
		 return $response;
		 
	}
		 public function check_connection() {
		 $payload = [];
		 $response = $this->call_api('POST', $this->api_url . 'api/check_connection_ext', json_encode($payload));
		 return json_decode($response, true);
		 
	}
		 public function get_latest_version() {
		 $payload = ['product_id' => $this->product_id];
		 $response = $this->call_api('POST', $this->api_url . 'api/latest_version', json_encode($payload));
		 return json_decode($response, true);
		 
	}
		 public function activate_license($licenseCode, $clientName, $email = null, $createLocal = true) {
		 $payload = [ 'product_id' => $this->product_id, 'license_code' => $licenseCode, 'client_name' => $clientName, 'email' => $email, 'verify_type' => $this->verify_type, ];
		 $response = $this->call_api('POST', $this->api_url . 'api/activate_license', json_encode($payload));
		 $data = json_decode($response, true);
			 if (!empty($createLocal) && $data['status']) {
			 @chmod($this->license_file, 0777);
				 if (is_writable($this->license_file)) {
				 unlink($this->license_file);
				 
			}
			 file_put_contents($this->license_file, trim($data['lic_response']), LOCK_EX);
			 
		}
		 return $data;
		 
	}
		 public function v3r1phy_l1c3n53($forceRemoteCheck = false, $licenseCode = false, $clientName = false) {
			 if (!empty($licenseCode) && !empty($clientName)) {
			 $payload = [ 'product_id' => $this->product_id, 'license_file' => null, 'license_code' => $licenseCode, 'client_name' => $clientName, ];
			 
		}
			 else {
				 if (is_file($this->license_file)) {
				 $payload = [ 'product_id' => $this->product_id, 'license_file' => file_get_contents($this->license_file), 'license_code' => null, 'client_name' => null, ];
				 
			}
				 else {
				 $payload = [];
				 
			}
			 
		}
			 if ($forceRemoteCheck && $this->verification_period > 0) {
			 $response = $this->call_api('POST', $this->api_url . 'api/verify_license', json_encode($payload));
			 $data = json_decode($response, true);
			 
		}
			 else {
			 $response = $this->call_api('POST', $this->api_url . 'api/verify_license', json_encode($payload));
			 $data = json_decode($response, true);
			 
		}
		 return $data;
		 
	}
		 public function deactivate_license($licenseCode = false, $clientName = false) {
			 if (!empty($licenseCode) && !empty($clientName)) {
			 $payload = [ 'product_id' => $this->product_id, 'license_file' => null, 'license_code' => $licenseCode, 'client_name' => $clientName, ];
			 
		}
			 else {
				 if (is_file($this->license_file)) {
				 $payload = [ 'product_id' => $this->product_id, 'license_file' => file_get_contents($this->license_file), 'license_code' => null, 'client_name' => null, ];
				 
			}
				 else {
				 $payload = [];
				 
			}
			 
		}
		 $response = $this->call_api('POST', $this->api_url . 'api/deactivate_license', json_encode($payload));
		 $data = json_decode($response, true);
			 if ($data['status']) {
			 @chmod($this->license_file, 0777);
				 if (is_writable($this->license_file)) {
				 unlink($this->license_file);
				 
			}
			 
		}
		 return $data;
		 
	}
		 public function php_08phu5c473($phpCode, $licenseCode = false, $clientName = false) {
			 if (!empty($licenseCode) && !empty($clientName)) {
			 $payload = [ 'product_id' => $this->product_id, 'license_file' => null, 'license_code' => $licenseCode, 'client_name' => $clientName, 'php_code' => base64_encode($phpCode), ];
			 
		}
			 else {
				 if (is_file($this->license_file)) {
				 $payload = [ 'product_id' => $this->product_id, 'license_file' => file_get_contents($this->license_file), 'license_code' => null, 'client_name' => null, 'php_code' => base64_encode($phpCode), ];
				 
			}
				 else {
				 $payload = [ 'php_code' => base64_encode($phpCode), ];
				 
			}
			 
		}
		 $response = $this->call_api('POST', $this->api_url . 'api/obfuscate_php', json_encode($payload));
		 return json_decode($response, true);
		 
	}
		 public function check_update() {
		 $payload = [ 'product_id' => $this->product_id, 'current_version' => $this->current_version, ];
		 $response = $this->call_api('POST', $this->api_url.'api/check_update', json_encode($payload));
		 return json_decode($response, true);
		 
	}
		 public function download_update($filename, $isSQL, $version, $licenseCode = false, $clientName = false) {
			 if (!empty($licenseCode) && !empty($clientName)) {
			 $payload = [ 'license_file' => null, 'license_code' => $licenseCode, 'client_name' => $clientName, ];
			 
		}
			 else {
				 if (is_file($this->license_file)) {
				 $payload = [ 'license_file' => file_get_contents($this->license_file), 'license_code' => null, 'client_name' => null, ];
				 
			}
				 else {
				 $payload = [];
				 
			}
			 
		}
		 ob_start();
		 echo "Starting download...\n";
		 ob_flush();
			 if ($isSQL) {
			 $url = $this->api_url . "api/download_update/sql/" . $filename;
			 
		}
			 else {
			 $url = $this->api_url . "api/download_update/main/" . $filename;
			 
		}
		 $ch = curl_init($url);
		 curl_setopt($ch, CURLOPT_POST, 1);
		 curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
		 $host = $_SERVER['SERVER_NAME'] ?? getenv('HTTP_HOST');
		 $scheme = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://';
		 $origin = $scheme . $host . $_SERVER['REQUEST_URI'];
		 $ip = getenv('SERVER_ADDR') ?: $_SERVER['SERVER_ADDR'] ?: $this->get_ip_from_third_party();
		 $ip = $ip ?: gethostbyname(gethostname());
		 curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'LB-API-KEY: ' . $this->api_key, 'LB-URL: ' . $origin, 'LB-IP: ' . $ip, 'LB-LANG: ' . $this->api_language, ]);
		 echo "Connecting...\n";
		 ob_flush();
		 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
		 echo "Performing download...\n";
		 ob_flush();
		 $response = curl_exec($ch);
		 $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
			 if ($code != 200) {
			 curl_close($ch);
			 exit('Server error');
			 
		}
		 curl_close($ch);
			 if ($isSQL) {
			 $saveTo = $this->root_path . '/update_sql_' . str_replace(, '_', $version) . '.sql';
			 
		}
			 else {
			 $saveTo = $this->root_path . '/update_main_' . str_replace(, '_', $version) . '.zip';
			 
		}
		 $fp = fopen($saveTo, 'w+');
			 if (!$fp) {
			 exit("No write permission");
			 
		}
		 fputs($fp, $response);
		 fclose($fp);
		 ob_end_flush();
		 return true;
		 
	}
		 public function download_sql($license_key, $version) {
			 if (empty($this->api_url)) {
			 exit("Error");
			 
		}
		 $sqlUrl = rtrim($this->api_url, '/') . '/extra/database.sql';
		 $ch = curl_init($sqlUrl);
		 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		 $resp = curl_exec($ch);
		 $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
		 curl_close($ch);
			 if ($http_code != 200 || empty($resp)) {
			 exit("Error (HTTP Status: $http_code).");
			 
		}
		 $sql_file = $this->root_path . "/install/database.sql";
		 $fh = @fopen($sql_file, "w+");
			 if (!$fh) {
			 exit(DXE5jfGR);
			 
		}
		 fputs($fh, $resp);
		 fclose($fh);
		 
	}
		 private function progress($resource, $downloadSize, $downloaded, $uploadSize, $uploaded) {
		 static $lastPercent = 0;
			 if ($downloadSize == 0) {
			 return;
			 
		}
		 $percent = round($downloaded * 100 / $downloadSize);
			 if ($percent != $lastPercent && $percent == 25) {
			 echo '<script>document.getElementById("prog").value = 22.5;
			</script>';
			 ob_flush();
			 
		}
			 if ($percent != $lastPercent && $percent == 50) {
			 echo '<script>document.getElementById("prog").value = 35;
			</script>';
			 ob_flush();
			 
		}
			 if ($percent != $lastPercent && $percent == 75) {
			 echo '<script>document.getElementById("prog").value = 47.5;
			</script>';
			 ob_flush();
			 
		}
			 if ($percent != $lastPercent && $percent == 100) {
			 echo '<script>document.getElementById("prog").value = 60;
			</script>';
			 ob_flush();
			 
		}
		 $lastPercent = $percent;
		 
	}
		 private function get_proxy_from_third_party() {
		 $ch = curl_init();
			 if (mt_rand(1, 2) == 1) {
			 curl_setopt($ch, CURLOPT_URL, 'https://gimmeproxy.com/api/getProxy?curl=true&protocol=http&supportsHttps=false&post=true&get=true&port=80,8080');
			 
		}
			 else {
			 curl_setopt($ch, CURLOPT_URL, 'http://pubproxy.com/api/proxy?format=txt&type=http&https=true&post=true&port=80,8080');
			 
		}
		 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
		 curl_setopt($ch, CURLOPT_TIMEOUT, 10);
		 $proxy = curl_exec($ch);
		 curl_close($ch);
		 return 'http://' . $proxy;
		 
	}
		 private function get_ip_from_third_party() {
		 $ch = curl_init();
		 curl_setopt($ch, CURLOPT_URL, 'http://ipecho.net/plain');
		 curl_setopt($ch, CURLOPT_HEADER, 0);
		 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
		 curl_setopt($ch, CURLOPT_TIMEOUT, 10);
		 $ip = curl_exec($ch);
		 curl_close($ch);
		 return $ip;
		 
	}
		 private function get_remote_filesize($url) {
		 $ch = curl_init();
		 curl_setopt($ch, CURLOPT_HEADER, true);
		 curl_setopt($ch, CURLOPT_NOBODY, true);
		 curl_setopt($ch, CURLOPT_URL, $url);
		 $host = $_SERVER['SERVER_NAME'] ?? getenv('HTTP_HOST');
		 $scheme = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://';
		 $origin = $scheme . $host . $_SERVER['REQUEST_URI'];
		 $ip = getenv('SERVER_ADDR') ?: $_SERVER['SERVER_ADDR'] ?: $this->get_ip_from_third_party();
		 $ip = $ip ?: gethostbyname(gethostname());
		 curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'LB-API-KEY: ' . $this->api_key, 'LB-URL: ' . $origin, 'LB-IP: ' . $ip, 'LB-LANG: ' . $this->api_language, ]);
		 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
		 $res = curl_exec($ch);
		 $file_size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
		 curl_close($ch);
			 if (!$file_size) {
			 return null;
			 
		}
			 if ($file_size < 1024) {
			 $size = $file_size . ' B';
			 
		}
			 elseif ($file_size < 1048576) {
			 $size = round($file_size / 1024, 2) . ' KB';
			 
		}
			 elseif ($file_size < 1073741824) {
			 $size = round($file_size / 1048576, 2) . ' MB';
			 
		}
			 else {
			 $size = round($file_size / 1073741824, 2) . ' GB';
			 
		}
		 return $size;
		 
	}
	 
}
	 if (!function_exists('minify_html')) {
		 function minify_html($content) {
		 $search = [ '/(\n|^)(\x20+|\t)/', '/(\n|^)\/\*(.*?)(\n|$)/s', '/\n/', '//s', '/(\x20+|\t)/', '/> \s+ </', '/(\"|\') \s+>/', '/=\s+(\"|\')/', ];
		 $replace = [ "\n", "\n", " ", "", " ", "><", "$1>", "=$1", ];
		 return preg_replace($search, $replace, $content);
		 
	}
	 
}
	 if (!function_exists('thousands_currency_format')) {
		 function thousands_currency_format($num, $asArray = false) {
			 if ($num <= 1000) {
			 $return = [$num, ''];
			 return $asArray ? $return : $num;
			 
		}
		 $rounded = round($num);
		 $formatted = number_format($rounded);
		 $parts = explode(',', $formatted);
		 $units = ['k', 'm', 'b', 't'];
		 $partCount = count($parts) - 1;
		 $shortNum = $parts[0] . ((int)$parts[1][0] !== 0 ?  . $parts[1][0] : '');
		 $shortSuffix = $units[$partCount - 1];
		 $result = $shortNum . $shortSuffix;
			 if ($asArray) {
			 return [$result, $shortSuffix];
			 
		}
		 return $result . $shortSuffix;
		 
	}
	 
}
	 if (!function_exists('generate_breadcrumb')) {
		 function generate_breadcrumb($title = null) {
		 $ci =& get_instance();
		 $segment = 1;
		 $uriSegment = $ci->uri->segment($segment);
		 $output = "<nav class=\"breadcrumb\" aria-label=\"breadcrumbs\">\n\t<ul><li><a href=\"" . base_url() . "\">Home</a></li>";
			 if ($title) {
			 $output .= "<li class=\"is-active\"><a href=\"" . site_url() . "\">" . ucfirst($title) . "</a></li>";
			 
		}
			 else {
			 $output .= "<li class=\"is-active\"><a href=\"" . site_url() . "\">" . ucfirst($ci->uri->segment($segment)) . "</a></li>";
			 
		}
		 $output .= "</ul></nav>";
		 return $output;
		 
	}
	 
}
	 if (!function_exists('config_item')) {
		 function config_item($key) {
		 static $config;
			 if (empty($config)) {
			 $config[0] =& get_config();
			 
		}
		 return isset($config[0][$key]) ? $config[0][$key] : null;
		 
	}
	 
}
	 if (!function_exists('html_escape')) {
		 function html_escape($var, $double_encode = true) {
			 if (empty($var)) {
			 return $var;
			 
		}
			 if (is_array($var)) {
				 foreach ($var as $k => $v) {
				 $var[$k] = html_escape($v, $double_encode);
				 
			}
			 return $var;
			 
		}
		 return htmlspecialchars($var, ENT_QUOTES, config_item('charset'), $double_encode);
		 
	}
	 
}
	 if (!function_exists('get_system_info')) {
		 function get_system_info($coreInit) {
		 $info = [ 'Server' => $_SERVER['SERVER_SOFTWARE'], 'PHP Version' => phpversion(), 'Max POST Size' => @ini_get('post_max_size'), 'Max Memory Limit' => @ini_get('memory_limit'), 'Max Upload Size' => @ini_get('upload_max_filesize'), 'cURL Version' => function_exists('curl_version') ? curl_version()['version'] : 'Nil', 'Core Init' => $coreInit ];
		 return json_encode($info, JSON_PRETTY_PRINT);
		 
	}
	 
}
	 if (!function_exists('password_verify')) {
		 function password_verify($password, $hash) {
			 if (strlen($hash) !== 60 || strlen($password = crypt($password, $hash)) !== 60) {
			 return false;
			 
		}
		 $check = 0;
		 for ($i = 0;
		 $i < 60;
			 $i++) {
			 $check |= (ord($password[$i]) ^ ord($hash[$i]));
			 
		}
		 return $check === 0;
		 
	}
	 
}
 



© 2023 Quttera Ltd. All rights reserved.