-
Notifications
You must be signed in to change notification settings - Fork 1
/
muon.php
617 lines (611 loc) · 96.6 KB
/
muon.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
<?php set_time_limit(0);
/*********************************************
* MUON FILE MANAGER *
* Website: http://infoein.github.io/muon *
* Released under the MIT License *
**********************************************/
/* Login */
define( "mu_username", "admin" );//required
define( "mu_password", "5f4dcc3b5aa765d61d8327deb882cf99" ); //required, md5-encrypted
define( "mu_cookie", "my_site" ); //default: "cookie"
/* Visualisation */
define( "mu_title", "Muon" ); //default: "Muon"
define( "mu_title_html", "Muon" ); //default: "Muon"
define( "mu_browse_title", "~ %% | ".mu_title );
define( "mu_editor_title", "%% | ".mu_title );
define( "mu_home_link", "https://www.example.com/" ); //default: "/"
/* Other settings */
define( "mu_guest_session", false ); //default: false
define( "mu_guest_can_read", false ); //default: false
define( "mu_root_dir" , "./" ); //relative path, by default "./"
/*************************************************/
/*End of Muon settings*/ define("mu_version","3.4");define("mu_website","https://infoein.github.io/muon/");if(!defined("mu_title"))define("mu_title","Muon");if(!defined("mu_title_html"))define("mu_title","Muon");if(!defined("mu_cookie"))define("mu_cookie","cookie");if(!defined("mu_guest_session"))define("mu_guest_session",false);if(!defined("mu_guest_can_read"))define("mu_guest_can_read",false);define("mu_index","./".basename($_SERVER["SCRIPT_FILENAME"]));define("mu_cookie_user","muon_".mu_cookie."_user");define("mu_cookie_pass","muon_".mu_cookie."_pass");$mu_session_status="";$mu_session_data="";$mu_session_title=mu_title;$mu_wd_script=getcwd();$mu_wd_browse=$mu_wd_script;$mu_wd_relative_prefix="";if(defined('mu_root_dir')& mu_root_dir!="" & mu_root_dir!="." & mu_root_dir!="./"){chdir(mu_root_dir);$mu_wd_browse=getcwd();chdir($mu_wd_script);if($mu_wd_script!=$mu_wd_browse)$mu_wd_relative_prefix=rtrim(mu_root_dir,"/")."/";}function validateUser($u,$p){if(!defined("mu_username")||!defined("mu_password"))return false;return $u==mu_username&&$p==mu_password;}function loggedIn(){if(!isset($_COOKIE[mu_cookie_user])||!isset($_COOKIE[mu_cookie_pass]))return false;return validateUser($_COOKIE[mu_cookie_user],$_COOKIE[mu_cookie_pass]);}function titleEditor($f){if(defined("mu_editor_title"))return str_replace("%%",$f,mu_editor_title);return mu_title;}function titleBrowse($f){if(defined("mu_browse_title")&&$f!=".")return str_replace("%%",$f,mu_browse_title);return mu_title;}function zipEnabled(){return extension_loaded("zip");}function muonInterface($optn){global $mu_session_status;return $mu_session_status==$optn;}function mainPage(){return mu_index;}function browsePage($path="/"){return mainPage()."?browse=".$path;}function editorPage($path="/"){return mainPage()."?edit=".$path;}function licensePage(){return mainPage()."?license";}function getPrevQuery($mode="_get",$pre="?",$fallback=""){if($mode=="_decode"&&isset($_GET["prev_query"]))return $pre.urldecode(str_replace("/","%",$_GET["prev_query"]));if(($mode=="_get"||$mode=="_both")&&isset($_GET["prev_query"]))return $pre."prev_query=".$_GET["prev_query"];if(($mode=="_srv"||$mode=="_both")&&!empty($_SERVER["QUERY_STRING"]))return $pre."prev_query=".str_replace("%","/",urlencode($_SERVER["QUERY_STRING"]));return $fallback;}function redirAndDie($query=""){if(!empty($query))$query="?".$query;header("location: ".mainPage().$query);die("");}function param($id){if(isset($_POST[$id])&&$_POST[$id]!="")return $_POST[$id];return false;}function respDie($resp){$feedback="plain";if(isset($_GET["feedback"]))$feedback=$_GET["feedback"];die($resp);}function getSelected($type="any",$pre=""){if($type=="any")return array_merge(getSelected("folder",$pre),getSelected("file",$pre));$arr=[];$count=0;$max=param("count_".$type."s");for($i=0;$i<$max;$i++){$q=param($type."_".$i);if($q){$arr[$count]=$pre.substr($q,1);$count++;}}return $arr;}function validFilename($string){$fname=preg_replace("/[^a-zA-Z0-9_., )(-]/","",$string);return(!empty($fname)&&$fname!="."&&$fname!=".."&&$string==$fname);}function getPasteDest($destPath,$name){$dest=$destPath.$name;if(file_exists($dest)){$explName=explode(".",$name);$ext="";if(count($explName)==1)$name=$explName[0];else{$ext=".".$explName[count($explName)-1];$explName[count($explName)-1]="";$name=implode(".",$explName);$name=substr($name,0,-1);}$i=1;while(file_exists($destPath.$name."_".$i.$ext))$i++;$dest=$destPath.$name."_".$i.$ext;}return $dest;}function deletePath($path){if(is_dir($path)){$subitems=scandir($path);foreach($subitems as $sub)if($sub!="."&&$sub!="..")deletePath($path."/".$sub);return rmdir($path);}return unlink($path);}function copyPath($source,$dest,$mustBeFile=false){if(!file_exists($source)||$mustBeFile&&is_dir($source))return false;if(is_dir($source)){$r=true;$items=scandir($source);@mkdir($dest);foreach($items as $f)if($f!="."&&$f!="..")$r=$r&©Path($source."/".$f,$dest."/".$f);return $r;}return copy($source,$dest);}if(isset($_POST["logout"])){setcookie(mu_cookie_user,false,time()-3600);setcookie(mu_cookie_pass,false,time()-3600);redirAndDie();}if(isset($_POST["login"])&&isset($_POST["pass"])){$u=$_POST["login"];$p=md5($_POST["pass"]);if(validateUser($u,$p)){setcookie(mu_cookie_user,$u,time()+86400*14);setcookie(mu_cookie_pass,$p,time()+86400*14);redirAndDie(getPrevQuery("_decode"));}redirAndDie("login=error".getPrevQuery("_get","&"));}class MuonFile{public $name;public $perms;public $size;public $path;public $browseId;public $isDir;function __construct($name,$path,$browseId=false,$getSize=true){$this->name=$name;$this->size=0;$this->isDir=is_dir($path.$name);$permissions=fileperms($path.$name);$permissions=sprintf("%o",$permissions);$this->perms=substr($permissions,-4);$this->path=$path;if($getSize)$this->size=$this->getFileSize();$this->browseId=$browseId;}function getFileSize($sub=""){$path=$this->getFullPath(false).$sub;if($this->isDir)return 0;return filesize($path);}function sizeWithUnit(){if($this->isDir)return "";$fileSize=$this->size;$byteOMs=array("B","kB","MB","GB","TB");for($i=0;$fileSize>=1024&&$i<count($byteOMs)-1;$i++)$fileSize/=1024;$fileSize=round($fileSize,2)." ".$byteOMs[$i];return $fileSize;}function getPath($trimDot=true){$fp=$this->path;if($trimDot)$fp=ltrim($fp,".");return $fp;}function getFullPath($trimDot=true){$fp=$this->path.$this->name;if($trimDot)$fp=ltrim($fp,".");return $fp;}function explodePath(){$split=trim($this->getFullPath(),"/");if($split)return explode("/",$split);else return false;}}class MuonEdit extends MuonFile{public $content;function __construct($name,$path){parent::__construct($name,$path);$this->content=file_get_contents($this->getFullPath(false));}function getFolderPath(){return rtrim($this->getPath(),"/");}function printContent(){echo htmlspecialchars($this->content);}}class MuonBrowse extends MuonFile{public $folders;public $countFolders;public $files;public $countFiles;function __construct($name=".",$path=""){parent::__construct($name,$path,false,false);$fullPath=$this->getFullPath(false);if(!file_exists($fullPath)||!is_dir($fullPath)){$this->name=false;return 0;}$fullPath=$fullPath."/";$this->folders=array();$this->countFolders=0;$this->files=array();$this->countFiles=0;$subItems=scandir($fullPath);foreach($subItems as $item)if($item!="."&&$item!=".."){if(is_dir($fullPath.$item)){$this->folders[$this->countFolders]=new MuonFile($item,$fullPath,$this->countFolders);$this->countFolders++;}else{$this->files[$this->countFiles]=new MuonFile($item,$fullPath,$this->countFiles);$this->size+=$this->files[$this->countFiles]->size;$this->countFiles++;}}}function getFolderPath(){return $this->getFullPath();}}class MuonTree{public $name;public $locBrw;public $locPath;public $fullPath;public $browsingThis;public $browsingInsideThis;public $browseLink;public $countFolders;public $folders;public $treeId;public $loaded;function __construct($browsing=false,$name=".",$path="",$treeId=0,$force=true,$force_recursive=false){$this->name=$name;$this->treeId=$treeId;$this->locBrw=$browsing;$this->locPath=$path;$this->browsingThis=false;$this->browsingInsideThis=false;if(!empty($path))$path.="/";$this->fullPath=ltrim($path.$this->name,".");if($browsing==$this->fullPath)$this->browsingThis=true;if(substr($browsing,0,strlen($this->fullPath))===$this->fullPath)$this->browsingInsideThis=true;$this->browseLink=browsePage("/".ltrim($this->fullPath,"/"));$this->folders=[];$this->countFolders=0;$folders=scandir(".".$this->fullPath);$this->loaded=true;if($this->browsingInsideThis||$force){foreach($folders as $item)if($item!="."&&$item!=".."&&is_dir(".".$this->fullPath."/".$item)){$this->folders[$this->countFolders]=new MuonTree($browsing,$item,".".$this->fullPath,0,$force_recursive,$force_recursive);$this->countFolders++;}}else{$this->countFolders=0;foreach($folders as $item)if($item!="."&&$item!=".."&&is_dir(".".$this->fullPath."/".$item)){$this->countFolders ++;$this->loaded=false;break;}}}}if(param("req")){$request=param("req");if(!loggedIn())respDie("err_login");if(mu_guest_session)respDie("err_guest");chdir($mu_wd_browse);if($request=="gettree"){$tbrws=param("tbrws");$tname=param("tname");$tpath=param("tpath");$tid=param("tid");$recur=param("recur");chdir($mu_wd_browse);echo json_encode((object)["tree"=>new MuonTree($tbrws,$tname,$tpath,$tid,true),"treeId"=>$tid,"askRecur"=>$recur]);chdir($mu_wd_script);respDie("");}if($request=="rename"){$base_path=param("browsing_path");$file=getSelected();if(count($file)!=1)respDie("rename_err_count");$file=$file[0];$old_path=$base_path."/".$file;if(!file_exists($old_path))respDie("rename_err_missing");$new_name=trim(param("ren_new_name"));if(!$new_name||!validFilename($new_name))respDie("rename_err_invalid_name");$new_path=$base_path."/".$new_name;if(file_exists($new_path)&&$old_path!=$new_path)respDie("rename_err_already_existing");if(!rename($old_path,$new_path)&&$old_path!=$new_path)respDie("rename_err");respDie("rename_ok");}if($request=="unzip"){if(!zipEnabled())respDie("unzip_err_extension");$base_path=param("browsing_path");$file=getSelected();if(count($file)!=1)respDie("unzip_err_count");$file=$file[0];$full_path=$base_path."/".$file;if(!file_exists($full_path)||is_dir($full_path))respDie("unzip_err_missing");$dest_path=$base_path."/unzip_".$file;if(file_exists($dest_path)){$i=1;while(file_exists($dest_path."_".$i))$i++;$dest_path=$dest_path."_".$i;}$dest_path=$dest_path."/";$zip_file=new ZipArchive;if(!($zip_file->open($full_path)===TRUE))respDie("unzip_err_opening");if(!($zip_file->extractTo($dest_path)))respDie("unzip_err_extracting");$zip_file->close();respDie("unzip_ok");}if($request=="delete"){$files=getSelected("any",param("browsing_path")."/");$errors=false;foreach($files as $item)if(!deletePath($item))$errors=true;if($errors)respDie("delete_err");respDie("delete_ok");}if(substr($request,0,7)==="paste__"){$pasteto=substr($request,7)."/";if(!file_exists($pasteto)||!is_dir($pasteto))respDie("paste_err_destination");$path=param("browsing_path")."/";if(!file_exists($path)||!is_dir($path))respDie("paste_err_location");$cut=false;if(param("paste_meaning")=="cut")$cut=true;else if(param("paste_meaning")!="copy")respDie("paste_err_meaningless");if($path==$pasteto&&$cut)respDie("paste_ok_cut");$errors=false;$folders=getSelected("folder");for($i=0;$i<count($folders);$i++)if((substr($pasteto,0,strlen($path.$folders[$i]))===$path.$folders[$i])&&file_exists($path.$folders[$i])&&is_dir($path.$folders[$i])){if($cut)respDie("paste_err_cut_dest_inside_source");else if(!copyPath($path.$folders[$i],getPasteDest($pasteto,$folders[$i])))$errors=true;}else if(!$cut){if(!copyPath($path.$folders[$i],getPasteDest($pasteto,$folders[$i])))$errors=true;}else if(!rename($path.$folders[$i],getPasteDest($pasteto,$folders[$i])))$errors=true;$files=getSelected("file");if(!$cut){foreach($files as $file)if(!copyPath($path.$file,getPasteDest($pasteto,$file),true))$errors=true;if($errors)respDie("paste_err_copy");respDie("paste_ok_copy");}else{foreach($files as $file)if(!rename($path.$file,getPasteDest($pasteto,$file)))$errors=true;if($errors)respDie("paste_err_cut");respDie("paste_ok_cut");}respDie(null);}if($request=="perms"){$files=getSelected("any",param("browsing_path")."/");$chmod=param("perm_new_perms");if(!$chmod)respDie("perms_err_input");$chmod=octdec(intval($chmod));$errors=false;foreach($files as $item)if(!chmod($item,$chmod))$errors=true;if($errors)respDie("perms_err");respDie("perms_ok");}if($request=="zip"){if(!zipEnabled())respDie("zip_err_extension");$base_path=param("browsing_path");if(!file_exists($base_path)||!is_dir($base_path))respDie("zip_err_location");$dest_path=$base_path."/zip_".date("Ymd_Hi");if(file_exists($dest_path.".zip")){$i=1;while(file_exists($dest_path."_".$i.".zip"))$i++;$dest_path=$dest_path."_".$i;}$dest_path=$dest_path.".zip";$files=getSelected($type="file");$folders=getSelected($type="folder");$zip=new ZipArchive();if($zip->open($dest_path,$overwrite?ZIPARCHIVE::OVERWRITE:ZIPARCHIVE::CREATE)!==true)respDie("zip_err_opening");if($files)foreach($files as $file)$zip->addFile($base_path."/".$file,$file);if($folders)foreach($folders as $folder){$root_path=realpath($base_path."/".$folder);$subs=new RecursiveIteratorIterator(new RecursiveDirectoryIterator($root_path),RecursiveIteratorIterator::LEAVES_ONLY);foreach($subs as $name=>$sub)if(!$sub->isDir()){$subPath=$sub->getRealPath();$relPath=$folder."/".substr($subPath,strlen($root_path)+ 1);$zip->addFile($subPath,$relPath);}}$zip->close();if(!file_exists($dest_path))respDie("zip_err");respDie("zip_ok");}if($request=="newfolder"){$base_path=param("browsing_path");if(!file_exists($base_path)||!is_dir($base_path))respDie("newfolder_err_location");$new_name=trim(param("new_folder_name"));if(!validFilename($new_name))respDie("newfolder_err_invalid_name");$full_path=$base_path."/".$new_name;if(file_exists($full_path))respDie("newfolder_err_already_existing");if(!mkdir($full_path,0755))respDie("newfolder_err");respDie("newfolder_ok");}if($request=="newfile"){$base_path=param("browsing_path");if(!file_exists($base_path)||!is_dir($base_path))respDie("newfile_err_location");$new_name=trim(param("new_file_name"));if(!validFilename($new_name))respDie("newfile_err_invalid_name");$full_path=$base_path."/".$new_name;if(file_exists($full_path))respDie("newfile_err_already_existing");$file=fopen($full_path,"w")or respDie("newfile_err");fwrite($file,date("F j, Y, g:i a"));fclose($file);chmod($path,0755);respDie("newfile_ok");}if($request=="upload"){$path=param("upload_path")."/";if(!file_exists($path)||!is_dir($path))respDie("upload_err_location");$uploads=0;$errors=0;foreach($_FILES as $file)if($file["error"]==UPLOAD_ERR_OK and is_uploaded_file($file["tmp_name"])){$fpath=getPasteDest($path,$file["name"]);move_uploaded_file($file["tmp_name"],$fpath);chmod($fpath,0775);$uploads++;}else $errors++;if(!$uploads||$errors>1)respDie("upload_err");respDie("upload_ok");}if($request=="editsave"){$path=param("editing_path");if(file_exists($path)&&is_dir($path))die("editsave_err_location");if(!file_put_contents($path,param("editor_content"))){if(!file_exists($path))die("editsave_err_location");die("editsave_err");}die("editsave_ok");}respDie("err");}if(isset($_GET["license"])){$mu_session_status="license";}else if(!loggedIn()){if(!isset($_GET["login"]))redirAndDie("login".getPrevQuery("_srv","&"));$mu_session_status="login";$mu_session_data=false;if($_GET["login"]=="error")$mu_session_data=true;}else if(isset($_GET["browse"])){chdir($mu_wd_browse);$br_path=$_GET["browse"];if(substr($br_path,0,2)=="./"){redirAndDie("browse=/".substr($br_path,2));}if(substr($br_path,0,1)!="/"){redirAndDie("browse=/".$br_path);}if(strrpos($br_path,"//"))redirAndDie();$br_path="./".ltrim($br_path,"/");$br_path=rtrim($br_path,"/");$br_path=explode("/",$br_path);for($i=0;$i<count($br_path);$i++)if($br_path[$i]==".."||$i&&$br_path[$i]==".")redirAndDie();$br_name=$br_path[count($br_path)-1];$br_path[count($br_path)-1]="";$br_path=implode("/",$br_path);$mu_session_data=new MuonBrowse($br_name,$br_path);if(!$mu_session_data->name)redirAndDie();$mu_session_status="browse";$mu_session_title=titleBrowse($mu_session_data->name);chdir($mu_wd_script);}else if(isset($_GET["edit"])&&(!mu_guest_session||mu_guest_can_read)){chdir($mu_wd_browse);$editfile=".".$_GET["edit"];if(!file_exists($editfile)||is_dir($editfile)||strrpos($editfile,"/../")||strrpos($editfile,"/./")||strrpos($editfile,"//"))redirAndDie();$base_path=explode("/",$editfile);$editfile=$base_path[count($base_path)-1];$base_path[count($base_path)-1]="";$base_path=implode("/",$base_path);$mu_session_status="edit";$mu_session_data=new MuonEdit($editfile,$base_path);$mu_session_title=titleEditor($editfile);chdir($mu_wd_script);}else redirAndDie("browse=/");?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="robots" content="noindex" />
<title><?php echo $mu_session_title;?></title>
<link rel="apple-touch-icon" href="data:image/png;base64,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
" />
<link rel="icon" href="data:image/png;base64,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
" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0" />
<style type="text/css">body,html{height:100%;width:100%}body,*{padding:0;border:0;margin:0}*,*:before,*:after{font-family:sans-serif;font-size:1em;position:relative;color:black;-o-box-sizing:border-box;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-khtml-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:normal;vertical-align:middle;text-decoration:none}.ns,.ns *{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body{background:#fff;font-size:15px}input{-webkit-appearance:none;border:0;background-image:none;background-color:transparent;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;outline:0;margin:0;padding:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}table.tab-row,table.tab-row tbody,table.tab-row tr,table.tab-row td{position:relative;z-index:2;height:100%;border-collapse:collapse;overflow:hidden}table.tab-row,table.tab-row tbody,table.tab-row tr{width:100%}.svg-ic{display:block;height:100%;width:100%;fill:#308cfc}.upload-zone{width:1em;height:1em;position:fixed;top:-2em;left:-2em;z-index:0;overflow:hidden;visibility:hidden}.layout-block{position:fixed;overflow:auto;box-shadow:0 0 1em rgba(0,0,0,0.5);background:#fff;-webkit-overflow-scrolling:touch}.browsebar{z-index:11;top:0;left:16em;right:0;height:4em}.tools{z-index:2;top:4em;left:0;width:16em;bottom:1.4em}.tree{z-index:5;top:4em;right:0;width:20em;bottom:1.4em}.main{z-index:1;top:4em;left:16em;right:20em;bottom:1.4em}.bottombar,.outputbar{z-index:10;bottom:0;left:0;width:100%;height:1.4em;overflow:hidden;padding:0 1em 0 1em}.bottombar .text,.outputbar .text{font-size:.8em;display:block;line-height:1.7em;margin:0}.resp-none .outputbar{display:none}.resp-progress .bottombar,.resp-success .bottombar,.resp-error .bottombar{display:none}.resp-success .outputbar{background:#5f5}.resp-error .outputbar{background:#f55}.tree-resetter{top:0;left:0;bottom:0;right:20em;background:transparent;display:none;position:fixed;z-index:101}.tree-copy .tree-resetter,.tree-cut .tree-resetter{display:block}.login{width:20em;height:20em;top:50%;left:50%;margin-top:-10em;margin-left:-10em;padding-top:4em}.login.license{height:40em;margin-top:-20em}.login input{padding:0 1.5em;line-height:2.6em;width:100%;background:#eee;text-align:left}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 10em #eee inset!important}.login input[type=submit]{cursor:pointer;font-weight:bold;background:#308cfc;color:#fff;text-align:center}.login .header-block{height:6.7em;padding:2.5em 1.5em;padding-bottom:0}.login .header-block.err,.login .header-block.err *{color:#f55}.login .login-block{height:7.8em;margin-bottom:1.5em;padding:0 1.5em}.login .license-block{font-size:.8em;padding:2em 2em;margin-top:-5em}.login .ahr{cursor:pointer;border-bottom:1pt solid #308cfc}.login .ahr:active{color:#308cfc}.muonbar.layout-block{z-index:15;top:0;left:0;width:16em;height:4em}.muonbar.muonbar-login{width:20em;box-shadow:none;top:50%;left:50%;margin-left:-10em;margin-top:-10em}.muonbar.muonbar-license{display:none}.muonbar .logo{width:3em;height:4em;padding:1em;padding-right:0}.muonbar .logo .svg-ic{fill:#000}.muonbar .title{padding-top:.6em;vertical-align:top;font-size:1.5em;font-weight:bold;padding-left:.3em}.muonbar .title .learnmore{font-size:.4em;font-weight:normal;color:#308cfc;position:absolute;top:4em;left:1em;cursor:pointer}.muonbar .title .learnmore:active{border-bottom:1pt solid #308cfc}.muonbar .btns{padding-right:.5em}.muonbar .btn{float:right;height:4em;width:2.2em;padding:1em .1em;cursor:pointer}.muonbar .btn.gray .svg-ic{fill:#888}.muonbar .btn.tree-open-btn{top:0;right:0;margin-left:1.5em;display:none}.editor-container{margin:1.5em 0}.editor{display:block;position:relative;font-size:.8em;vertical-align:middle;background:-moz-linear-gradient(top,transparent 0,transparent 50%,#eeeeee 50%,#eeeeee 100%);background:-webkit-linear-gradient(top,transparent 0,transparent 50%,#eeeeee 50%,#eeeeee 100%);background:linear-gradient(to bottom,transparent 0,transparent 50%,#eeeeee 50%,#eeeeee 100%);background-position:top left;background-attachment:local;width:100%;outline:0;font-family:monospace;resize:none;-moz-tab-size:4;-o-tab-size:4;tab-size:4;padding-left:3.5em;padding-right:.5em}.editor-text-nowrap .editor{overflow:hidden;white-space:pre;overflow-x:scroll}.editor-lineheight{background-size:400px 40px;background-repeat:repeat;line-height:20px}.editor-numbers{display:block;position:relative;width:4em;font-size:.6em;padding-right:.5em;text-align:right;background:#fff;border-right:1pt solid #ddd;color:#888}.editor-adj{display:block;background:red}.editor-adj.hidden{display:none}.browse-container{margin:0 0 1.5em 0}.browse-item{display:block;height:auto;overflow:hidden}.browse-item label{cursor:pointer}.browse-item .tab{height:2.6em;border-bottom:1pt solid #ddd}.browse-item .browse-chk{position:relative;z-index:0;display:block;width:100%;height:20em;margin-bottom:-20em;background:transparent}.browse-item .browse-chk:after{position:absolute;z-index:1;display:block;content:" ";margin-top:.6em;margin-left:.6em;width:1.4em;height:1.4em;border:.3em solid #ddd;background:transparent;-o-border-radius:50%;-khtml-border-radius:50%;-ms-border-radius:50%;-moz-border-radius:50%;-webkit-border-radius:50%;border-radius:50%}.browse-item .browse-chk:checked{display:block;background:#deecfc}.browse-item .browse-chk:checked:after{background:#308cfc;border-color:#a1cafc}.browse-item .tab .name{line-height:1em}.browse-item .tab .name .breakwords{word-break:break-all}.browse-item .tab .name .link{font-weight:bold;cursor:pointer;border-bottom:1pt solid #308cfc}.browse-item .tab .name .link:active{color:#308cfc}.browse-item .tab .name .openlink{font-weight:normal;cursor:pointer;color:#308cfc;font-size:.7em;margin-left:1em;border-bottom:1pt solid transparent}.browse-item .tab .name .openlink.edit{margin-left:.1em;font-weight:bold}.browse-item .tab .name .openlink:active{border-color:#308cfc}.browse-item .tab .data{text-align:right}.browse-item .tab .data .data-cnt{line-height:1.2em}.browse-item .tab .data .data-cnt .size{font-size:.8em;line-height:1.2em}.browse-item .tab .data .data-cnt .size:after{content:"\a";white-space:pre}.browse-item .tab .data .data-cnt .perms{font-size:.6em;line-height:1.2em;color:#888}.browse-item .tab .sep-first{width:2.6em}.browse-item .tab .sep-mid{width:1em}.browse-item .tab .sep-last{width:.6em}.browse-item .tab .upbtn{display:block;position:relative;width:1.6em;height:1.6em;margin:0 0 .1em .5em;padding:.3em}.browse-item .tab .upbtn .svg-ic{display:block;width:100%;height:100%}.browse-item.legend{border-bottom:2pt solid #ddd}.browse-item.legend *{vertical-align:bottom;font-weight:bold;line-height:1.8em}.browse-item.legend .caption{font-size:.8em}.browsebar-data{width:100%;height:1.4em;display:block;line-height:1.2em;padding:.1em 1em .1em 1em;overflow-y:hidden;overflow-x:auto;white-space:nowrap;text-align:center}.browsebar-data .text{font-size:.8em}.browsebar-data .text,.browsebar-data .text *{line-height:1.5em}.browsebar-data .text .openlink{font-weight:normal;cursor:pointer;color:#308cfc;margin-left:.4em;border-bottom:1pt solid transparent}.browsebar-data .text .openlink:active{border-color:#308cfc}.browsebar-data .text .perms{color:#888;font-size:.9em}.browsebar-blocks{width:100%;height:2.6em;display:block;line-height:2.6em;background:#eee;overflow-y:hidden;overflow-x:auto;white-space:nowrap}.browsebar-block{display:inline-block;padding:0 .6em 0 .6em;line-height:2.6em;height:2.6em}.browsebar-block .nav{display:inline;line-height:2.6em;font-weight:bold;cursor:pointer;border-bottom:1pt solid #308cfc}.browsebar-block .nav:active{color:#308cfc}.browsebar-block.sep{padding:0}.tree-container{margin:1.6em 2em 1.6em 2em}.tree-close-btn{position:absolute;top:0;right:0;height:4em;width:4em;padding:1em;cursor:pointer;display:none;z-index:18}.tree-close-btn .svg-ic{fill:#000}.tree-copy .tree-close-btn,.tree-cut .tree-close-btn{display:block}.tree-title{font-size:1.5em;font-weight:bold;line-height:1.8em;display:none}.tree-toggle{margin:0 0 1.5em 0;font-size:.8em;line-height:1.8em}.tree-toggle .btn{cursor:pointer;color:#308cfc;font-weight:bold}.tree-ul .tree-ul{display:none}.tree-ul.tree-open{display:block}.tree-ul .tree-ul{margin-left:.5em;padding-left:1.5em;border-left:1pt solid #ddd;list-style-type:disc}.tree-opener-tablet{top:0;right:0;width:2.4em;height:4em;padding:1em .2em;z-index:14;cursor:pointer;display:none}.tree-li{display:block;list-style-type:none}.tree-name{cursor:pointer;border-bottom:1pt solid #308cfc;display:none}.tree-name:active{color:#308cfc}.tree-li.tree-browsing .tree-name{font-weight:bold}.tree-btn{width:1em;height:1.8em;display:inline-block;cursor:pointer}.tree-btn-noclick{cursor:default}.tree-btn.tree-btn-close,.tree-btn.tree-btn-wait,.tree-li.tree-open .tree-btn.tree-btn-open{display:none}.tree-btn.tree-btn-open,.tree-li.tree-open .tree-btn.tree-btn-close{display:inline-block}.tree-li.tree-loading .tree-btn.tree-btn-open,.tree-li.tree-loading.tree-open .tree-btn.tree-btn-close{display:none}.tree-li.tree-loading .tree-btn.tree-btn-wait{display:inline-block;animation-name:flipvert;animation-duration:600ms;animation-iteration-count:infinite;animation-timing-function:step-end}@keyframes flipvert{0%{transform:scaleY(1)}50%{transform:scaleY(-1)}}.tree-btn .svg-ic{width:1em;height:1em;margin:.4em 0 .4em 0}.tree-browse .tree-btn.paste{display:none}.tree-browse .tree-name.brw,.tree-copy .tree-name.cpy,.tree-cut .tree-name.cut,.tree-browse .tree-title.brw,.tree-copy .tree-title.cpy,.tree-cut .tree-title.cut{display:inline}.tools-desktop .cat{margin:1em 0 2em 0;border-bottom:1pt solid #eee}.tools-desktop .nobord{border:0}.tools-desktop .cat,.tools-desktop .row{display:block;width:100%;float:none;overflow:hidden}.tools-desktop .cat .cat-name{display:block;padding:0 1em;font-weight:bold;line-height:1.8em}.tools-desktop .row,.tools-desktop .item{height:2.3em}.tools-desktop .item{cursor:pointer;display:block;width:100%}.tools-desktop .tool-upload .close{display:none}.tools-desktop .row .item{float:left}.tools-desktop .row.row2 .item{width:50%}.tools-desktop .row.row3 .item{width:32%}.tools-desktop .row.row3 .item .btntex{margin-top:.1em;margin-bottom:-0.1em;margin-left:-0.4em}.tools .item .tab .intext input{width:100%;height:100%;background:#eee;font-size:.8em;padding:0 1em 0 1em}.tools .item .tab .submit{width:2.3em;background:#308cfc}.tools .item .tab .hidein{width:2.3em;background:#fff;display:none}.tools .item .btnic{display:block;cursor:pointer;width:2.3em;height:2.3em;padding:.4em;float:left}.tools .item .btnic .svg-ic{width:100%;height:100%}.tools .item .submit .btnic .svg-ic{fill:#fff}.tools .item .submit:active .btnic .svg-ic{fill:#deecfc}.tools .item .hidein .btnic .svg-ic{fill:#000}.tools .item .hidein:active .btnic .svg-ic{fill:#308cfc}.tools .item.close .btnic .svg-ic{fill:#000}.tools .item.close:active .btnic .svg-ic{fill:#308cfc}.tools .item .btntex{float:left;display:block;cursor:pointer;width:auto;height:2.3em;line-height:2.3em}.tools .item:active .btntex,.tools .item:active .btntex *{color:#308cfc}.tools-desktop .item .btntex.bold{font-weight:bold}.tools-mobile{display:none;white-space:nowrap;width:100%;height:4em;overflow-y:hidden;overflow-x:auto;text-align:center;padding:0 .8em;white-space:nowrap}.tools-mobile .item{height:4em;width:2.4em;display:inline-block}.tools-mobile .item.rbord{border-right:1pt solid #eee}.tools-mobile .item .btnic{display:block;cursor:pointer;width:2.3em;height:4em;padding:.4em;float:left;padding-bottom:1em}.tools-mobile .item .btntex{position:absolute;font-size:.5em;text-align:center;bottom:1em;width:100%}@media screen and (max-height:600px){.login.license{top:0;margin-top:0;height:100%;overflow-y:auto}}@media screen and (max-height:300px){.muonbar.muonbar-login,.login{top:0;margin-top:0}.login{height:100%;overflow-y:auto}}@media screen and (max-width:1024px){.browsebar{right:2.4em}.tree{z-index:19;top:0;right:-25em;width:20em;bottom:0;transition:right .5s;max-width:100%;white-space:nowrap;position:fixed}.tree-visible .tree{right:0}.main{right:0}.tree-close-btn,.tree-opener-tablet{display:block}}@media screen and (max-width:700px){.tools{top:auto;bottom:0;left:0;width:100%;height:4em}.browsebar{top:3em;left:0;right:0}.bottombar{display:none}.outputbar{bottom:auto;height:1.6em;padding-top:.2em;top:7em;z-index:7;text-align:center;vertical-align:middle}.main{top:7em;left:0;right:0;bottom:4em}.muonbar.layout-block{box-shadow:none;width:100%;height:3em}.muonbar.muonbar-login{width:20em;height:4em;padding:.5em;padding-left:0}.muonbar .logo{height:3em;padding-top:.5em;padding-bottom:.5em}.muonbar .title{padding-top:.3em}.muonbar .title .learnmore{top:3.2em}.muonbar .btns{padding-right:0}.muonbar .btn{height:3em;width:2.4em;padding:.5em .2em}.muonbar .btn.mobile-only{display:block}.muonbar .btn.tablet-only{display:none}.muonbar .btn.tree-open-btn{display:block}.tree-opener-tablet{display:none}.tools{height:auto;max-height:100%;overflow-y:auto;bottom:0;z-index:17;position:fixed}.tools-mobile{display:block}.tools-desktop .cat{padding:0;margin:0;border:0}.tools-desktop .cat .cat-name,.tools-desktop .row,.tools-desktop .item{display:none}.tools-desktop .item.tool-mobile-visible,.tools-desktop .tool-mobile-visible .item{display:block}.tools-desktop .tool-upload .item.close{position:relative;width:2.3em;top:0;left:0}.tools-desktop .tool-upload .item.submit{position:absolute;top:0;left:2.3em;display:block}.uploading-nothing .tools-desktop .tool-upload.tool-mobile-visible .item.submit{display:none},.tools-desktop .tool-upload.tool-mobile-visible .item.close{display:block}.tools .item .tab .hidein{display:table-cell}}@media screen and (max-width:300px){.muonbar .tab-row{width:300px}.muonbar{overflow-x:auto;overflow-y:hidden}.login{width:100%;left:0;margin-left:0}}.browse-select-nothing .disabled-select-nothing,.browse-select-one-folder .disabled-select-one-folder,.browse-select-one-file .disabled-select-one-file,.browse-select-big-selection .disabled-select-big-selection,.editor-changed .disabled-editor-changed,.editor-not-changed .disabled-editor-not-changed,.editor-text-wrap .disabled-editor-text-wrap,.editor-text-nowrap .disabled-editor-text-nowrap,.uploading-nothing .disabled-uploading-nothing{display:none}</style>
<script type="text/javascript">var mu_session_status="<?php echo $mu_session_status;?>";var mu_session_title="<?php echo $mu_session_title;?>";var mu_requests_to="<?php echo mainPage();?>?feedback=plain";var mu_next_tree_id=1;</script>
<?php if(!muonInterface("login")&&!muonInterface("license")){?>
<script type="text/javascript">function gid(a){return document.getElementById(a)}
function gval(a){return gid(a).value}
function add_cl(a,c,b){if(typeof c.length!=="undefined"){for(i=0;i<c.length;i++){add_cl(a,c[i])}}else{if(c.className.indexOf(a)<0){c.className=c.className+" "+a}}}
function rem_cl(a,c){if(typeof c.length!=="undefined"){for(var b=0;b<c.length;b++){rem_cl(a,c[b])}}else{c.className=c.className.replace(a,"").replace(/ /g," ")}}
function arr_cl(a,d,c){add_cl(a[d],c);for(var b=0;b<d;b++){rem_cl(a[b],c)}
for(var b=d+1;b<a.length;b++){rem_cl(a[b],c)}}
function editor_adjust(g,e){g=g||false;e=e||false;var z=false;if(e){var z=e.which||e.keyCode;var z=e.ctrlKey?e.ctrlKey:((z===17)?true:false);if(z){z=true}else{z=false}}
var b=gid("text-editor");var f=gid("text-editor-sizeadj");var e=gid("text-editor-numbers");var h=20;var k=1;var j=h;f.style.height=(b.offsetHeight-h)+"px";rem_cl("hidden",f);b.style.height=j+"px";j+=b.scrollHeight;b.style.height=j+"px";e.style.height=(j+5*h)+"px";k=j/h;var a="<br/><br/><br/><br/><br/>1";for(var c=2;c<=k;c++){a=a+"<br/>"+c}
e.innerHTML=a;e.style.marginTop="-"+(j+5*h)+"px";add_cl("hidden",f);if(z){return}
if(!g){document.title="* "+mu_session_title;var d=new Array("editor-changed","editor-not-changed");arr_cl(d,0,gid("layout"))}}
function editor_discard(a){if(confirm("Discard changes?")){location.href=a}}
function editor_text_wrap(b){var a=new Array("editor-text-nowrap","editor-text-wrap");var c=0;if(b){c=1}
arr_cl(a,c,gid("layout"));editor_adjust(true)}
function selected_qty(b,e){b=b||"total";e=e||false;if(b=="one"){var a=document.getElementsByClassName("browse-chk");var d=0;for(var c=0;c<a.length;c++){if(a[c].checked==true){return a[c].value}}
return false}
if(b=="total"){return selected_qty("folder",e)+selected_qty("file",e)}
if(b=="arr"){return new Array(selected_qty("folder",e),selected_qty("file",e))}
var a=document.getElementsByClassName("browse-chk-"+b);var d=0;if(e){for(var c=0;c<a.length&&d<2;c++){if(a[c].checked==true){d++}}
return d}
for(var c=0;c<a.length;c++){if(a[c].checked==true){d++}}
return d}
function select_browse_update(){var f=selected_qty("folder");var a=selected_qty("file");var e=f+a;var g=""+e+" files";var h=gid("layout");var c=new Array("browse-select-nothing","browse-select-one-folder","browse-select-one-file","browse-select-big-selection");switch(e){case 0:tree_visibility("close");arr_cl(c,0,h);break;case 1:if(f){g="folder";arr_cl(c,1,h)}else{g="file";arr_cl(c,2,h)}
gid("input-rename").value=selected_qty("one").substring(1);break;default:arr_cl(c,3,h)}
var b=document.getElementsByClassName("live-files-qty");for(var d=0;d<b.length;d++){b[d].innerHTML=g}}
function select_browse(a){var b=document.getElementsByClassName("browse-chk");if(a=="all"){for(var c=0;c<b.length;c++){b[c].checked=true}}else{if(a=="none"){for(var c=0;c<b.length;c++){b[c].checked=false}}else{if(a=="invert"){for(var c=0;c<b.length;c++){b[c].checked=!b[c].checked}}else{gid("browse-chk-"+a).checked=true}}}
select_browse_update()}
function select_browse_rightclick(a){select_browse("none");if(a!=false){select_browse(a)}}
var tree_next_id=0;function tree_html(t,home=true){tree_next_id++;var c="";var tname=t.name;var path="/"+t.fullPath.trimStart("/");var extra_class="";if(t.browsingThis)
extra_class+=" tree-browsing";if(t.browsingInsideThis)
extra_class+=" tree-open";if(!home)
extra_class+=" tree-li-ul";if(!t.countFolders)
extra_class+=" tree-nosubfolders";if(t.loaded)
extra_class+=" tree-loaded";c=c+"<li id=\"tree-li-"+tree_next_id+"\" class=\"tree-li"+extra_class+"\">";if(home){tname="HOME";c=c+"<div class=\"tree-btn tree-btn-noclick\"><svg class=\"svg-ic\"><use xlink:href=\"#ic-home\" /></svg></div>";}
else if(t.countFolders){if(!t.loaded){c=c+"<div style=\"display:none\" id=\"tree-loadform-"+tree_next_id+"\">";c=c+"<input type=\"hidden\" id=\"tree-in-tname-"+tree_next_id+"\" value=\""+encodeURIComponent(t.name)+"\" />";c=c+"<input type=\"hidden\" id=\"tree-in-tbrws-"+tree_next_id+"\" value=\""+encodeURIComponent(t.locBrw)+"\" />";c=c+"<input type=\"hidden\" id=\"tree-in-tpath-"+tree_next_id+"\" value=\""+encodeURIComponent(t.locPath)+"\" />";c=c+"<input type=\"hidden\" id=\"tree-in-tid-"+tree_next_id+"\" value=\""+tree_next_id+"\" />";c=c+"</div>";}
c=c+"<a class=\"tree-btn tree-btn-open\" onclick=\"tree_open("+tree_next_id+",'open')\"><svg class=\"svg-ic\"><use xlink:href=\"#ic-folder-full\" /></svg></a>";c=c+"<a class=\"tree-btn tree-btn-wait\" title=\"Loading content...\"><svg class=\"svg-ic\"><use xlink:href=\"#ic-hourgl-top\" /></svg></a>";c=c+"<a class=\"tree-btn tree-btn-close\" onclick=\"tree_open("+tree_next_id+",'close')\"><svg class=\"svg-ic\"><use xlink:href=\"#ic-folder-empty\" /></svg></a>";}
else{c=c+"<span class=\"tree-btn tree-btn-noclick\"><svg class=\"svg-ic\"><use xlink:href=\"#ic-folder-empty\" /></svg></span> ";}
c=c+" <a class=\"tree-name brw\" title=\"Browse "+tname+"\" href=\""+t.browseLink+"\">"+tname+"</a>";c=c+" <a class=\"tree-name cpy\" title=\"Copy to "+tname+"\" onclick=\"paste_tool('."+t.fullPath+"')\"><span class=\"tree-btn paste\"><svg class=\"svg-ic\"><use xlink:href=\"#ic-paste\" /></svg></span> "+tname+"</a>";c=c+" <a class=\"tree-name cut\" title=\"Move to "+tname+"\" onclick=\"paste_tool('."+t.fullPath+"')\"><span class=\"tree-btn paste\"><svg class=\"svg-ic\"><use xlink:href=\"#ic-paste\" /></svg></span> "+tname+"</a>";c=c+"</li>";if(t.countFolders){c=c+"<ul id=\"tree-ul-"+tree_next_id+"\" class=\"tree-ul"+extra_class+"\">";c=c+tree_html_arr(t.folders);c=c+"</ul>";}
return c;}
function tree_html_arr(tarr=[],as_home=false){var c="";for(var j=0;j<tarr.length;j++)
c=c+tree_html(tarr[j],as_home);return c;}
function tree_meaning(a){var c=gid("layout");var b=new Array("tree-browse","tree-copy","tree-cut");if(a=="copy"){arr_cl(b,1,c)}else{if(a=="cut"){arr_cl(b,2,c)}else{arr_cl(b,0,c)}}}
function tree_visibility(a){var b=gid("layout");if(a=="open"){add_cl("tree-visible",b)}else{rem_cl("tree-visible",b)}
tree_meaning()}
function tree_load(id,recOpen="no"){var liob=gid("tree-li-"+id);if(liob.className.indexOf("tree-loaded")>=0)
return false;add_cl("tree-loading",[liob,gid("tree-ul-"+id)]);request_send_gettree(id,decodeURIComponent(gval("tree-in-tname-"+id)),decodeURIComponent(gval("tree-in-tbrws-"+id)),decodeURIComponent(gval("tree-in-tpath-"+id)),recOpen);return true;}
function tree_loaded(d){var liob=gid("tree-li-"+d.treeId);var ulob=gid("tree-ul-"+d.treeId);ulob.innerHTML=tree_html_arr(d.tree.folders);rem_cl("tree-loading",[liob,ulob]);add_cl("tree-loaded",[liob,ulob]);gid("tree-loadform-"+d.treeId).remove()
if(d.askRecur=="yes"){var subl=ulob.getElementsByClassName("tree-ul");for(var j=0;j<subl.length;j++)
tree_open(parseInt(subl[j].id.substring(8)),"open","yes");}}
var tree_next_all_load=false;function tree_open(c,a,recOpen="no"){var b=new Array(gid("tree-li-"+c),gid("tree-ul-"+c));if(c=="all"){b=document.getElementsByClassName("tree-li-ul tree-loaded");if(a=="open"&&tree_next_all_load==1){b=document.getElementsByClassName("tree-li-ul");var w=document.getElementsByClassName("tree-ul");for(var j=0;j<w.length;j++)
if(w[j].className.indexOf("tree-loaded")<0)
tree_load(parseInt(w[j].id.substring(8)),"yes");tree_next_all_load=-1;}
else if(a=="open"&&tree_next_all_load==0){tree_next_all_load=1;if(document.getElementsByClassName("tree-ul tree-open").length-document.getElementsByClassName("tree-ul tree-loaded").length==0)
return tree_open(c,a);}}
else
tree_load(c,recOpen);if(a=="open")
add_cl("tree-open",b)
else{rem_cl("tree-open",b);if(tree_next_all_load==1)
tree_next_all_load=0;}}
function tool_inpt_show(a){rem_cl("tool-mobile-visible",document.getElementsByClassName("tool-mobile-visible"));if(a!=false){add_cl("tool-mobile-visible",gid("tool-inpt-"+a))}}
function tool_copy(){if(selected_qty()==0){return}
tree_visibility("open");tree_meaning("copy");gid("paste-req-meaning").value="copy"}
function tool_cut(){if(selected_qty()==0){return}
tree_visibility("open");tree_meaning("cut");gid("paste-req-meaning").value="cut"}
function paste_tool(a){request_send("paste__"+a)}
function tool_delete(){if(confirm("Delete selected files?")){request_send("delete")}}
function tool_perms(){if(gval("input-perms")==""){return}
request_send("perms")}
function tool_zip(){request_send("zip")}
function tool_rename(){if(gval("input-rename")==""){return}
request_send("rename")}
function tool_unzip(){request_send("unzip")}
function tool_newfolder(){if(gval("input-newfolder")==""){return}
request_send("newfolder")}
function tool_newfile(){if(gval("input-newfile")==""){return}
request_send("newfile")}
function tool_edit_save(){request_send("editsave")}
function tool_upload(){request_send("upload","form-upload")}
function upload_add(){var b=gid("upload-inputs");var e=b.getElementsByClassName("upload-file-input").length+1;var a=document.createElement("INPUT");a.setAttribute("type","file");a.setAttribute("name","upload_file_"+e);a.setAttribute("id","upload-file-"+e);a.setAttribute("class","upload-file-input");a.setAttribute("onchange","upload_change("+e+")");b.insertBefore(a,b.firstChild);b=gid("upload-labels");var d=document.createElement("div");var c='<div class="item inpt upload-label" id="upload-label-'+e+'"> <table class="tab tab-row"> <tr> <td class="intext"><input type="text" readonly onclick="upload_choose('+e+')" id="upload-label-name-'+e+'" placeholder="Choose file..." /></td> <td class="submit ns"><a title="Choose file" onclick="upload_choose('+e+')" class="btnic"><svg class="svg-ic"><use xlink:href="#ic-file" /></svg></a></td> <td class="submit ns"><a title="Remove" onclick="upload_remove('+e+')" class="btnic"><svg class="svg-ic"><use xlink:href="#ic-close" /></svg></a></td> </tr> </table> </div>';d.innerHTML=c;b.insertBefore(d.firstChild,b.lastChild)}
function upload_change(d){var c=gval("upload-file-"+d);if(c==""){if(gval("upload-label-name-"+d)==""){return}
gid("upload-label-name-"+d).value="";var a=document.getElementsByClassName("upload-label").length;if(a>1){gid("upload-file-"+d).disabled=true;if(gval("upload-label-name-"+d)==""){var b=gid("upload-label-"+d)}
b.parentNode.removeChild(b)}
if(a>2){rem_cl("uploading-nothing",gid("layout"))}else{add_cl("uploading-nothing",gid("layout"))}
return}
rem_cl("uploading-nothing",gid("layout"));c=c.split("\\");c=c[c.length-1].split("/");c=c[c.length-1];if(gval("upload-label-name-"+d)==""){upload_add()}
gid("upload-label-name-"+d).value=c}
function upload_choose(a){gid("upload-file-"+a).click()}
function upload_remove(a){gid("upload-file-"+a).value="";upload_change(a)}
function request_send(c,b){b=b||"form-main";var a=mu_requests_to;var d=new FormData(gid(b));var e=new XMLHttpRequest();d.append("req",c);console.log(b);e.onreadystatechange=function(){if(this.readyState==4&&this.status==200){request_done(this.responseText)}};if(c=="upload")
e.upload.onprogress=function(e){var p=Math.ceil((e.loaded/e.total)*100);gid("response-output").innerHTML="Upload progress: <b>"+p+"%</b>";arr_cl(new Array("resp-none","resp-error","resp-success","resp-progress"),3,gid("layout"));};e.open("POST",a,true);e.send(d)}
function request_send_gettree(tid,tname,tbrws,tpath,recur="no"){var a=mu_requests_to;var d=new FormData();var e=new XMLHttpRequest();d.append("req","gettree");d.append("tid",tid);d.append("tname",tname);d.append("tbrws",tbrws);d.append("tpath",tpath);d.append("recur",recur);e.onreadystatechange=function(){if(this.readyState==4&&this.status==200){tree_loaded(JSON.parse(this.responseText));}};e.open("POST",a,true);e.send(d)}
function request_done(d){var j="Unknown error";var a=false;var f=true;var h=false;switch(d){case"err_login":j="You're not logged in!";break;case"err_guest":j="Guest Session";a="Permission denied.";f=false;break;case"rename_err_missing":j="File not found";break;case"rename_err_invalid_name":j="Invalid name";a="File name can't contain special characters.";f=false;break;case"rename_err_already_existing":j="Already in use";a="Please, choose a different file name.";f=false;break;case"rename_err":j="Unable to rename this file";a="Check permissions.";f=false;break;case"rename_ok":h=true;j="Succesfully renamed!";break;case"unzip_err_extension":j="Missing extension";a="Enable PHP Zip extension, please.";f=false;break;case"unzip_err_missing":j="File not found";break;case"unzip_err_opening":j="Unable to open zip file";a="Is this a zip file?";f=false;break;case"unzip_err_extracting":j="Unable to unzip";a="Check permissions.";f=false;break;case"unzip_ok":h=true;j="Succesfully unzipped!";break;case"delete_err":j="The selected files can't be deleted";a="Check permissions.";f=false;break;case"delete_ok":h=true;j="Successfully deleted!";break;case"paste_err_destination":j="Destination path not found";break;case"paste_err_cut_dest_inside_source":j="Incorrect destination";a="It's a subfolder of one of the items you're moving.";f=false;break;case"paste_err_copy":j="Unable to copy one or more files";a="Check permissions.";f=false;break;case"paste_err_cut":j="Unable to move one or more files";a="Check permissions.";f=false;break;case"paste_ok_copy":h=true;j="Successfully copied!";break;case"paste_ok_cut":h=true;j="Successfully moved!";break;case"perms_err_input":j="Wrong input";a="Type a valid perms string (e.g. 0775).";f=false;break;case"perms_err":j="Unable to update permissions";f=false;break;case"perms_ok":h=true;j="Permissions succesfully changed!";break;case"zip_err_extension":j="Missing extension";a="Enable PHP Zip extension, please.";f=false;break;case"zip_err":j="Unable to create a zip archive";a="Check permissions.";f=false;break;case"zip_ok":h=true;j="Succesfully zipped!";break;case"newfolder_err_invalid_name":j="Invalid name";a="The name can't contain special characters.";f=false;break;case"newfolder_err_already_existing":j="Already in use";a="Please, choose a different folder name.";f=false;break;case"newfolder_err":j="Unable to create the new folder";a="Check permissions.";f=false;break;case"newfolder_ok":h=true;j="Folder successfully created!";break;case"newfile_err_invalid_name":j="Invalid name";a="The name can't contain special characters.";f=false;break;case"newfile_err_already_existing":j="Already in use";a="Please, choose a different file name.";f=false;break;case"newfile_err":j="Unable to create the new file";a="Check permissions.";f=false;break;case"newfile_ok":h=true;j="File successfully created!";break;case"upload_err":j="Unable to upload files";a="Maybe thery're too big.";f=false;break;case"upload_ok":h=true;j="Succesfully uploaded!";break;case"editsave_err_location":j="File not found";break;case"editsave_err":j="Unable to save changes";a="Check file's permissions.";f=false;break;case"editsave_ok":h=true;j="Succesfully saved!";f=false;document.title=mu_session_title;arr_cl(new Array("editor-changed","editor-not-changed"),1,gid("layout"));break}
var c="<b> ERROR: "+j+"</b>";var e=gid("response-output");var g=new Array("resp-none","resp-error","resp-success","resp-progress");var b=1;if(h){b=2;c="<b>"+j+"</b>"}
if(a){c=c+" — "+a}
e.innerHTML=c;arr_cl(g,b,gid("layout"));if(f){setTimeout(function(){location.reload()},700)}else{setTimeout(function(){arr_cl(g,0,gid("layout"))},1500)}}
function ctrl_on_textbox(a){if(a.target.nodeName=="INPUT"&&(a.target.type=="text"||a.target.type=="password")||a.target.nodeName=="TEXTAREA"){return true}
return false}
window.onload=function(){document.body.addEventListener("keydown",function(g){g=g||window.event;var d=g.which||g.keyCode;var f=g.ctrlKey?g.ctrlKey:((d===17)?true:false);if(f){switch(d){case 82:location.reload();event.preventDefault();break;case 83:if(mu_session_status=="edit")
tool_edit_save();event.preventDefault();break;case 67:if(mu_session_status=="edit"){return}
if(ctrl_on_textbox(g)){return}
tool_copy();event.preventDefault();break;case 88:if(ctrl_on_textbox(g)||mu_session_status=="edit"){return}
tool_cut();event.preventDefault();break;case 65:if(ctrl_on_textbox(g)||mu_session_status=="edit"){return}
select_browse("all");event.preventDefault();break;}}},false);}
var sort_browse_elements_by__status={iter_name:0,iter_size:0,iter_perms:0,currently_by:"name"}
function sort_browse_elements_by(optn){var list=document.getElementById("Sortable_Browse_Elements");var items=list.getElementsByClassName("browse-item");var itemsArr=[];for(i=0;i<items.length;i++){itemsArr[i]={isdir:parseInt(items[i].getElementsByClassName("sortable_browse__isdir")[0].value),fname:items[i].getElementsByClassName("sortable_browse__name")[0].value,fsize:parseFloat(items[i].getElementsByClassName("sortable_browse__size")[0].value),perms:items[i].getElementsByClassName("sortable_browse__perms")[0].value.toString(),domobj:items[i]};itemsArr[i].dirfname=(1-itemsArr[i].isdir).toString()+""+itemsArr[i].fname;}
var cmpfunction;if(optn=="name"){if(sort_browse_elements_by__status.currently_by==optn)
sort_browse_elements_by__status.iter_name++;if(sort_browse_elements_by__status.iter_name==1)
cmpfunction=function(a,b){return a.dirfname<b.dirfname;};else if(sort_browse_elements_by__status.iter_name==2)
cmpfunction=function(a,b){return a.fname>b.fname;};else if(sort_browse_elements_by__status.iter_name==3)
cmpfunction=function(a,b){return a.fname<b.fname;};else{sort_browse_elements_by__status.iter_name=0;cmpfunction=function(a,b){return a.dirfname>b.dirfname;};}}
else if(optn=="size"){if(sort_browse_elements_by__status.currently_by==optn)
sort_browse_elements_by__status.iter_size++;if(sort_browse_elements_by__status.iter_size==1)
cmpfunction=function(a,b){return a.fsize<b.fsize;};else{sort_browse_elements_by__status.iter_size=0;cmpfunction=function(a,b){return a.fsize>b.fsize;};}}
else if(optn=="perms"){if(sort_browse_elements_by__status.currently_by==optn)
sort_browse_elements_by__status.iter_perms++;if(sort_browse_elements_by__status.iter_perms==1)
cmpfunction=function(a,b){return a.perms<b.perms;};else{sort_browse_elements_by__status.iter_perms=0;cmpfunction=function(a,b){return a.perms>b.perms;};}}
sort_browse_elements_by__status.currently_by=optn;for(var i=0;i<itemsArr.length-1;i++)
for(var j=i+1;j<itemsArr.length;j++){if(cmpfunction(itemsArr[i],itemsArr[j])){var t=itemsArr[i];itemsArr[i]=itemsArr[j];itemsArr[j]=t;}}
for(var i=0;i<itemsArr.length;i++)
list.appendChild(itemsArr[i].domobj)}</script>
<?php }?>
</head>
<body>
<svg display="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<symbol id="ic-logo" viewBox="0 0 256 256"><path d="M 125.1 0L119.6 0.2L118.6 5.4L118.5 7.3L118.7 10.5L111.5 11.3L111 8.1L110.6 6.3L108.5 1.4L103 2.4L102.7 7.7L102.9 9.5L103.5 12.7L96.4 14.5L95.6 11.4L94.9 9.6L92.1 5L86.8 6.7L87.2 12L87.6 13.8L88.7 16.9L81.9 19.5L80.6 16.5L79.7 14.9L76.4 10.8L71.3 13.1L72.4 18.3L73 20.1L74.5 23L68.1 26.5L66.5 23.7L65.4 22.2L61.5 18.5L56.8 21.5L58.5 26.5L59.5 28.2L61.3 30.9L55.4 35.2L53.4 32.6L52.1 31.3L47.8 28.1L43.5 31.7L45.9 36.4L47 38L49.2 40.4L43.9 45.4L41.6 43.1L40.1 42L35.5 39.4L31.7 43.5L34.7 48L35.9 49.3L38.4 51.4L33.9 57.1L31.2 55.1L29.6 54.2L24.7 52.3L21.5 56.8L25 60.8L26.5 62L29.2 63.8L25.4 70L22.6 68.4L20.8 67.6L15.7 66.4L13.1 71.3L17.1 74.8L18.7 75.8L21.6 77.2L18.7 83.9L15.7 82.6L13.9 82.1L8.6 81.5L6.7 86.8L11.1 89.7L12.9 90.5L16 91.5L13.9 98.5L10.8 97.7L8.9 97.5L3.6 97.5L2.4 103L7.1 105.3L9 105.9L12.1 106.5L11 113.6L7.8 113.3L6 113.2L0.7 114L0.2 119.6L5.2 121.3L7.1 121.6L10.3 121.8L10.2 129L6.9 129L5 129.3L0 130.8L0.2 136.3L5.4 137.3L7.3 137.4L10.5 137.2L11.3 144.4L8.1 144.9L6.3 145.3L1.4 147.5L2.4 152.9L7.7 153.2L9.5 153L12.7 152.4L14.5 159.5L11.4 160.3L9.6 161L5 163.8L6.7 169.1L12 168.7L13.8 168.3L16.9 167.2L19.5 174L16.5 175.3L14.9 176.2L10.8 179.5L13.1 184.6L18.3 183.5L20.1 182.9L23 181.4L26.5 187.8L23.7 189.4L22.2 190.5L18.5 194.4L21.5 199.1L26.5 197.4L28.2 196.5L30.9 194.6L35.2 200.5L32.6 202.5L31.3 203.8L28.1 208.1L31.7 212.4L36.4 210L38 208.9L40.4 206.7L45.4 212L43.1 214.3L42 215.8L39.4 220.5L43.5 224.2L48 221.2L49.3 220L51.4 217.5L57.1 222L55.1 224.7L54.2 226.3L52.3 231.2L56.8 234.4L60.8 230.9L62 229.5L63.8 226.7L70 230.5L68.4 233.3L67.6 235.1L66.4 240.2L71.3 242.8L74.8 238.8L75.8 237.2L77.2 234.3L83.9 237.2L82.6 240.2L82.1 242L81.5 247.3L86.8 249.2L89.7 244.8L90.5 243L91.5 240L98.5 242L97.7 245.1L97.5 247L97.5 252.3L103 253.5L105.3 248.8L105.9 247L106.5 243.8L113.6 244.9L113.3 248.1L113.2 250L114 255.2L119.6 255.7L121.3 250.7L121.6 248.8L121.8 245.6L129 245.7L129 249L129.3 250.9L130.8 256L136.3 255.7L137.3 250.5L137.4 248.6L137.2 245.4L144.4 244.6L144.9 247.8L145.3 249.6L147.5 254.5L152.9 253.5L153.2 248.2L153 246.4L152.4 243.2L159.5 241.5L160.3 244.5L161 246.3L163.8 250.9L169.1 249.2L168.7 243.9L168.3 242.1L167.2 239L174 236.4L175.3 239.4L176.2 241L179.5 245.1L184.6 242.8L183.5 237.6L182.9 235.8L181.4 232.9L187.8 229.4L189.4 232.2L190.5 233.7L194.4 237.4L199.1 234.4L197.4 229.4L196.5 227.7L194.6 225L200.5 220.7L202.5 223.3L203.8 224.6L208.1 227.8L212.4 224.2L210 219.5L208.9 218L206.7 215.5L212 210.5L214.3 212.8L215.8 213.9L220.5 216.5L224.2 212.4L221.2 208L220 206.6L217.5 204.5L222 198.8L224.7 200.8L226.3 201.7L231.2 203.6L234.4 199.1L230.9 195.1L229.5 193.9L226.7 192.1L230.5 185.9L233.3 187.5L235.1 188.3L240.2 189.5L242.8 184.6L238.8 181.1L237.2 180.1L234.3 178.7L237.2 172L240.2 173.3L242 173.8L247.3 174.4L249.2 169.1L244.8 166.2L243 165.4L240 164.4L242 157.4L245.1 158.2L247 158.5L252.3 158.4L253.5 152.9L248.8 150.6L247 150L243.8 149.5L244.9 142.3L248.1 142.6L250 142.7L255.2 141.9L255.7 136.3L250.7 134.6L248.8 134.3L245.6 134.1L245.7 126.9L249 126.9L250.9 126.6L256 125.1L255.7 119.6L250.5 118.6L248.6 118.5L245.4 118.7L244.6 111.5L247.8 111L249.6 110.6L254.5 108.5L253.5 103L248.2 102.7L246.4 102.9L243.2 103.5L241.5 96.4L244.5 95.6L246.3 94.9L250.9 92.1L249.2 86.8L243.9 87.2L242.1 87.6L239 88.7L236.4 81.9L239.4 80.6L241 79.7L245.1 76.4L242.8 71.3L237.6 72.4L235.8 73L232.9 74.5L229.4 68.1L232.2 66.5L233.7 65.4L237.4 61.5L234.4 56.8L229.4 58.5L227.7 59.5L225 61.3L220.7 55.4L223.3 53.4L224.6 52.1L227.8 47.8L224.2 43.5L219.5 45.9L218 47L215.5 49.2L210.5 43.9L212.8 41.6L213.9 40.1L216.5 35.5L212.4 31.7L208 34.7L206.6 35.9L204.5 38.4L198.8 33.9L200.8 31.2L201.7 29.6L203.6 24.7L199.1 21.5L195.1 25L193.9 26.5L192.1 29.2L185.9 25.4L187.5 22.6L188.3 20.8L189.5 15.7L184.6 13.1L181.1 17.1L180.1 18.7L178.7 21.6L172 18.7L173.3 15.7L173.8 13.9L174.4 8.6L169.1 6.7L166.2 11.1L165.4 12.9L164.4 16L157.4 13.9L158.2 10.8L158.5 8.9L158.4 3.6L152.9 2.4L150.6 7.1L150 9L149.5 12.1L142.3 11L142.6 7.8L142.7 6L141.9 0.7L136.3 0.2L134.6 5.2L134.3 7.1L134.1 10.3L126.9 10.2L126.9 6.9L126.6 5L125.1 0zM 126.8 24C139 23.8 151.4 25.8 163.5 30.2C187.8 39.1 206.8 56 218.5 76.9L139.2 113.9C137.7 112.7 136 111.7 134.1 111C132.2 110.4 130.3 110 128.4 110L91.4 30.6C102.6 26.4 114.6 24.1 126.8 24zM 64.2 45.7L26.3 150C22.3 131.4 23.3 111.5 30.2 92.4C37.2 73.2 49.2 57.3 64.2 45.7zM 81 46.3L113.9 116.7C112.7 118.2 111.7 119.9 111 121.8C109.8 125.1 109.7 128.5 110.4 131.8L37.6 165.6L81 46.3zM 216.4 95.5L172.9 215L139 142.2C141.6 140.2 143.6 137.4 144.9 134.1C145.5 132.2 145.9 130.3 146 128.4L216.4 95.5zM 229.6 105.9C233.6 124.5 232.6 144.4 225.7 163.5C218.7 182.7 206.7 198.6 191.7 210.2L229.6 105.9zM 127.5 119C128.6 118.9 129.9 119.1 131 119.5C135.7 121.2 138.1 126.4 136.4 131C134.7 135.7 129.5 138.1 124.9 136.4C120.2 134.7 117.8 129.5 119.5 124.9C120.8 121.4 124 119.1 127.5 119zM 113.7 139C115.7 141.6 118.5 143.6 121.8 144.9C125.1 146.1 128.5 146.2 131.8 145.5L168.2 223.8C144.9 233.6 118 235 92.4 225.7C66.7 216.3 47 198 35.5 175.5L113.7 139z" /></symbol>
<symbol id="ic-select-all" viewBox="0 0 24 24"><path d="M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2zM7 17h10V7H7v10zm2-8h6v6H9V9z"/></symbol>
<symbol id="ic-unselect-all" viewBox="0 0 24 24"><path d="M5 3C3.9 3 3 3.9 3 5L5 5L5 3zM7 3L7 5L9 5L9 3L7 3zM11 3L11 5L13 5L13 3L11 3zM15 3L15 5L16.21875 5L17 4.125L17 3L15 3zM19 3L3 21L5 21L21 3L19 3zM20.875 4.28125L20.21875 5L21 5C21 4.7490625 20.960364 4.5030608 20.875 4.28125zM3 7L3 9L5 9L5 7L3 7zM7 7L7 15.375L9 13.125L9 9L12.65625 9L14.4375 7L7 7zM19 7L19 9L21 9L21 7L19 7zM17 8.625L15 10.875L15 15L11.34375 15L9.5625 17L17 17L17 8.625zM3 11L3 13L5 13L5 11L3 11zM19 11L19 13L21 13L21 11L19 11zM3 15L3 17L5 17L5 15L3 15zM19 15L19 17L21 17L21 15L19 15zM3 19C3 19.250937 3.039636 19.496939 3.125 19.71875L3.78125 19L3 19zM7.78125 19L7 19.875L7 21L9 21L9 19L7.78125 19zM11 19L11 21L13 21L13 19L11 19zM15 19L15 21L17 21L17 19L15 19zM19 19L19 21C20.1 21 21 20.1 21 19L19 19z" /></symbol>
<symbol id="ic-trash" viewBox="0 0 24 24"><path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"/></symbol>
<symbol id="ic-copy" viewBox="0 0 24 24"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></symbol>
<symbol id="ic-cut" viewBox="0 0 24 24"><circle cx="6" cy="18" fill="none" r="2"/><circle cx="12" cy="12" fill="none" r=".5"/><circle cx="6" cy="6" fill="none" r="2"/><path d="M9.64 7.64c.23-.5.36-1.05.36-1.64 0-2.21-1.79-4-4-4S2 3.79 2 6s1.79 4 4 4c.59 0 1.14-.13 1.64-.36L10 12l-2.36 2.36C7.14 14.13 6.59 14 6 14c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.59-.13-1.14-.36-1.64L12 14l7 7h3v-1L9.64 7.64zM6 8c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm0 12c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm6-7.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5zM19 3l-6 6 2 2 7-7V3z"/></symbol>
<symbol id="ic-plus" viewBox="0 0 24 24"><path d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4v2z"/></symbol>
<symbol id="ic-upload" viewBox="0 0 24 24"><path d="M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z"/></symbol>
<symbol id="ic-pencil" viewBox="0 0 24 24"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/></symbol>
<symbol id="ic-perms" viewBox="0 0 24 24"><path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z"/></symbol>
<symbol id="ic-navigate" viewBox="0 0 24 24"><path d="M12 10.9c-.61 0-1.1.49-1.1 1.1s.49 1.1 1.1 1.1c.61 0 1.1-.49 1.1-1.1s-.49-1.1-1.1-1.1zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm2.19 12.19L6 18l3.81-8.19L18 6l-3.81 8.19z"/></symbol>
<symbol id="ic-close" viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></symbol>
<symbol id="ic-up-arrow" viewBox="0 0 24 24"><path d="M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"/></symbol>
<symbol id="ic-folder-empty" viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z"/></symbol>
<symbol id="ic-folder-full" viewBox="0 0 24 24"><path d="M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"/></symbol>
<symbol id="ic-scroll-top" viewBox="0 0 24 24"><path d="M8 11h3v10h2V11h3l-4-4-4 4zM4 3v2h16V3H4z"/></symbol>
<symbol id="ic-text-wrap" viewBox="0 0 24 24"><path d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"/></symbol>
<symbol id="ic-text-lines" viewBox="0 0 24 24"><path d="M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z"/></symbol>
<symbol id="ic-file" viewBox="0 0 24 24"><path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6z"/></symbol>
<symbol id="ic-paste" viewBox="0 0 24 24"><path d="M19 3H4.99c-1.11 0-1.98.9-1.98 2L3 19c0 1.1.88 2 1.99 2H19c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H4.99V5H19v10zm-3-5h-2V7h-4v3H8l4 4 4-4z"/></symbol>
<symbol id="ic-list" viewBox="0 0 24 24"><path d="M3 5v14h17V5H3zm4 2v2H5V7h2zm-2 6v-2h2v2H5zm0 2h2v2H5v-2zm13 2H9v-2h9v2zm0-4H9v-2h9v2zm0-4H9V7h9v2z"/></symbol>
<symbol id="ic-floppy" viewBox="0 0 24 24"><path d="M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z"/></symbol>
<symbol id="ic-link" viewBox="0 0 24 24"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></symbol>
<symbol id="ic-unzip" viewBox="0 0 24 24"><path d="M20.55 5.22l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.15.55L3.46 5.22C3.17 5.57 3 6.01 3 6.5V19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.49-.17-.93-.45-1.28zM12 9.5l5.5 5.5H14v2h-4v-2H6.5L12 9.5zM5.12 5l.82-1h12l.93 1H5.12z"/></symbol>
<symbol id="ic-zip" viewBox="0 0 24 24"><path d="M20.54 5.23l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM12 17.5L6.5 12H10v-2h4v2h3.5L12 17.5zM5.12 5l.81-1h12l.94 1H5.12z"/></symbol>
<symbol id="ic-new-folder" viewBox="0 0 24 24"><path d="M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3v2z"/></symbol>
<symbol id="ic-selection" viewBox="0 0 24 24"><path d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></symbol>
<symbol id="ic-file" viewBox="0 0 24 24"><path d="M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6H6zm7 7V3.5L18.5 9H13z"/></symbol>
<symbol id="ic-invert" viewBox="0 0 24 24"><path d="M17.66 7.93L12 2.27 6.34 7.93c-3.12 3.12-3.12 8.19 0 11.31C7.9 20.8 9.95 21.58 12 21.58c2.05 0 4.1-.78 5.66-2.34 3.12-3.12 3.12-8.19 0-11.31zM12 19.59c-1.6 0-3.11-.62-4.24-1.76C6.62 16.69 6 15.19 6 13.59s.62-3.11 1.76-4.24L12 5.1v14.49z"/></symbol>
<symbol id="ic-more" viewBox="0 0 24 24"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></symbol>
<symbol id="ic-reload" viewBox="0 0 24 24"><path d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"/></symbol>
<symbol id="ic-home" viewBox="0 0 24 24"><path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/></symbol>
<symbol id="ic-hourgl-top" viewBox="0 0 48 48"><path d="M15.8 41H32.2V34.65Q32.2 31.15 29.825 28.625Q27.45 26.1 24 26.1Q20.55 26.1 18.175 28.625Q15.8 31.15 15.8 34.65ZM8 44V41H12.8V34.65Q12.8 31.15 14.625 28.225Q16.45 25.3 19.7 24Q16.45 22.7 14.625 19.75Q12.8 16.8 12.8 13.3V7H8V4H40V7H35.2V13.3Q35.2 16.8 33.35 19.75Q31.5 22.7 28.3 24Q31.55 25.3 33.375 28.225Q35.2 31.15 35.2 34.65V41H40V44Z"/></symbol>
<symbol id="ic-logout" viewBox="0 0 24 24"><path d="M 12 4 C 9.79 4 8 5.79 8 8 C 8 10.21 9.79 12 12 12 C 14.21 12 16 10.21 16 8 C 16 5.79 14.21 4 12 4 z M 12 5.9003906 C 13.16 5.9003906 14.099609 6.84 14.099609 8 C 14.099609 9.16 13.16 10.099609 12 10.099609 C 10.84 10.099609 9.9003906 9.16 9.9003906 8 C 9.9003906 6.84 10.84 5.9003906 12 5.9003906 z M 13.865234 12.572266 L 12.455078 13.982422 L 15.638672 17.166016 L 12.455078 20.349609 L 13.865234 21.759766 L 17.048828 18.576172 L 20.232422 21.759766 L 21.642578 20.349609 L 18.458984 17.166016 L 21.642578 13.982422 L 20.232422 12.572266 L 17.048828 15.755859 L 13.865234 12.572266 z M 12 13 C 9.33 13 4 14.34 4 17 L 4 20 L 12 20 L 12 18.099609 L 5.9003906 18.099609 L 5.9003906 17 C 5.9003906 16.36 9.03 14.900391 12 14.900391 L 12 13 z " /></symbol>
</svg>
<div id="layout" class="tree-browse browse-select-nothing uploading-nothing editor-not-changed editor-text-nowrap resp-none">
<div class="muonbar layout-block ns <?php if(muonInterface("login")){echo "muonbar-login";}else if(muonInterface("license")){echo "muonbar-license";}?>">
<form method="post" action="<?php echo mainPage();?>">
<input type="hidden" name="logout" value="logout" />
<input type="submit" style="display:none" value="Logout" id="logout-submit" />
<table class="tab-row">
<tr>
<td class="logo"><a href="<?php echo mu_website;?>" target="_blank"><svg class="svg-ic"><use xlink:href="#ic-logo" /></svg></a></td>
<td class="title"><?php echo mu_title_html;?> <a title="License" rel="license" target="_blank" href="<?php echo licensePage().getPrevQuery("_srv","&");?>" class="learnmore">Version <?php echo mu_version;?></a></td>
<td class="sep"> </td>
<td class="btns">
<?php if(!muonInterface("login")){?><a title="Show Tree" onclick="tree_visibility('open')" class="btn tree-open-btn"><svg class="svg-ic"><use xlink:href="#ic-list" /></svg></a><?php }?>
<a title="Refresh" onclick="location.reload()" class="btn"><svg class="svg-ic"><use xlink:href="#ic-reload" /></svg></a>
<?php if(!muonInterface("login")){?><label for="logout-submit"><a title="Logout" class="btn gray"><svg class="svg-ic"><use xlink:href="#ic-logout" /></svg></a></label><?php }?>
<?php if(defined("mu_home_link"))echo "<a title=\"Your website: ".mu_home_link."\" href=\"".mu_home_link."\" target=\"_blank\" class=\"btn gray\"><svg class=\"svg-ic\"><use xlink:href=\"#ic-link\" /></svg></a>";?>
</td>
</tr>
</table>
</form>
</div>
<?php if(muonInterface("license")){?>
<div class="layout-block login license ns">
<div class="license-block">
[ <a class="ahr" onclick="window.close()">Close</a> ] <b>Muon version <?php echo mu_version;?> —
<a class="ahr" href=" <?php echo mu_website;?>">Website</a></b>
<br/><br/>
<i>This software is released under the MIT License (open source):</i>
<br/><br/>
Copyright 2022 InfoEin
<br/><br/>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
<br/><br/>
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
<br/><br/>
<b>Made in the <a class="ahr" href="http://europa.eu/" target="_blank">EU</a></b>
</div>
</div>
<?php die('</body></html>');}?>
<?php if(muonInterface("login")){?>
<div class="layout-block login">
<?php if($mu_session_data){?>
<div class="header-block err"><b>Wrong username/password.</b><br/>Please, try again.</div>
<?php }else{?>
<div class="header-block">
Login to manage your web space with Muon <?php echo mu_version;?> —
<a class="ahr" href="<?php echo mu_website;?>" target="_blank" title="Learn more about Muon">Mu-what?</a>
<a title="License" class="ahr" rel="license" target="_blank" href="<?php echo licensePage().getPrevQuery("_srv","&");?>" class="learnmore">License</a>
</div>
<?php }?>
<div class="login-block">
<form method="post" action="<?php echo mainPage().getPrevQuery();?>">
<input type="text" name="login" placeholder="Username" />
<input type="password" name="pass" placeholder="Password" />
<input type="submit" value="Login" />
</form>
</div>
</div>
<?php die('</body></html>');}?>
<form id="form-main">
<input type="hidden" name="<?php if(muonInterface("edit"))echo "editing_path";else echo "browsing_path";?>" value="<?php echo $mu_session_data->getFullPath(false);?>" />
<a class="tree-opener-tablet layout-block" onclick="tree_visibility('open')" title="Show Tree"><svg class="svg-ic"><use xlink:href="#ic-list" /></svg></a>
<input type="hidden" name="paste_meaning" id="paste-req-meaning" value="" />
<div class="tree ns layout-block" id="tree">
<div class="tree-close-btn" onclick="tree_visibility('close')"><svg class="svg-ic"><use xlink:href="#ic-close" /></svg></div>
<div class="tree-container">
<div class="tree-title brw">Browse:</div>
<div class="tree-title cpy">Copy <span class="live-files-qty">0</span> to:</div>
<div class="tree-title cut">Move <span class="live-files-qty">0</span> to:</div>
<div class="tree-toggle">
<span class="btn" onclick="tree_open('all','open')">Open all</span>
<span> — </span>
<span class="btn" onclick="tree_open('all','close')">Close all</span>
</div>
<div class="tree-content">
<script>document.write(tree_html(<?php chdir($mu_wd_browse);echo json_encode(new MuonTree($mu_session_data->getFolderPath()));chdir($mu_wd_script);?>));</script>
</div>
</div>
</div>
<div class="browsebar ns layout-block">
<div class="browsebar-blocks">
<span class="browsebar-block sep"> </span>
<?php $currentPath=$mu_session_data->explodePath();if($currentPath){?>
<span class="browsebar-block folder"><a class="nav" title="Browse /" href="<?php echo browsePage();?>">HOME</a></span>
<span class="browsebar-block sep">/</span>
<?php $localPath='';for($i=0;$i<count($currentPath)-1;$i++){$localPath=$localPath.'/'.$currentPath[$i];?>
<span class="browsebar-block folder"><a class="nav" title="Browse <?php echo $currentPath[$i];?>" href="<?php echo browsePage($localPath);?>"><?php echo $currentPath[$i];?></a></span>
<span class="browsebar-block sep">/</span>
<?php }?>
<span class="browsebar-block folder"><?php echo $mu_session_data->name;?></span>
<?php }else{echo "<span class=\"browsebar-block folder\">HOME</span>";}?>
<span class="browsebar-block sep"> </span>
</div>
<div class="browsebar-data">
<span class="text">
<?php if(muonInterface("edit"))echo "Editing: ";else echo "Browsing: ";echo "<b>";if($mu_session_data->name!=".")echo $mu_session_data->name;else echo "/";echo "</b>";?>
<a class="openlink" title="Open" href="<?php echo $mu_wd_relative_prefix;?>.<?php echo $mu_session_data->getFullPath();?>" target="_blank">[OPEN]</a>
—
<?php if($mu_session_data->countFiles + $mu_session_data->countFolders==0)echo "Empty folder";else{if($mu_session_data->countFiles==0)echo "No files";else if($mu_session_data->countFiles==1)echo "One file";else echo($mu_session_data->countFiles)." files";echo " and ";if($mu_session_data->countFolders==0)echo "no subfolders";else if($mu_session_data->countFolders==1)echo "one subfolder";else echo($mu_session_data->countFolders)." subfolders";}?>
<span class="perms">P:<?php echo $mu_session_data->perms;?></span>
</span>
</div>
</div>
<div class="bottombar ns layout-block">
<span class="text">
<?php if(mu_guest_session){echo "[ <b>GUEST SESSION</b> ] ";}?>
<b>Desktop shortcuts</b> —
<?php if(muonInterface("edit"))echo "Ctrl+S: save file / Ctrl+R: reload page ";else echo "Ctrl+A: select all / Ctrl+C: copy files / Ctrl+X: move files / Ctrl+R: reload page / Right click on a file to select it only";?>
</span>
</div>
<div class="outputbar ns layout-block"><span class="text" id="response-output"> </span></div>
<?php if(muonInterface("edit")){?>
<div id="tools ns" class="tools layout-block">
<div class="tools-desktop">
<div class="cat ns">
<span class="cat-name">Changes:</span>
<a title="Save changes" onclick="tool_edit_save()" class="item disabled-editor-not-changed">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-floppy" /></svg></span>
<span class="btntex bold">Save changes</span>
</a>
<a title="Discard changes" onclick="event.preventDefault();editor_discard('<?php echo browsePage($mu_session_data->getPath());?>')" class="item disabled-editor-not-changed">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-close" /></svg></span>
<span class="btntex">Discard changes</span>
</a>
<a title="Close editor" href="<?php echo browsePage($mu_session_data->getPath());?>" class="item disabled-editor-changed">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-close" /></svg></span>
<span class="btntex">Close editor</span>
</a>
</div>
<div class="cat ns">
<span class="cat-name">Editor:</span>
<a title="Scroll top" onclick="gid('main-editor').scrollTop=0" class="item">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-scroll-top" /></svg></span>
<span class="btntex">Scroll top</span>
</a>
<a title="Wrap text" onclick="editor_text_wrap(true)" class="item disabled-editor-text-wrap">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-text-wrap" /></svg></span>
<span class="btntex">Wrap text</span>
</a>
<a title="Don't wrap text" onclick="editor_text_wrap(false)" class="item disabled-editor-text-nowrap">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-text-lines" /></svg></span>
<span class="btntex">Don't wrap text</span>
</a>
</div>
<div class="cat ns">
<span class="cat-name">Links (new tab):</span>
<a title="Open <?php echo $mu_session_data->name;?>" href="<?php echo $mu_wd_relative_prefix;?><?php echo $mu_session_data->getFullPath(false);?>" target="_blank" class="item">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-file" /></svg></span>
<span class="btntex">Open file</span>
</a>
<a title="Open parent folder" href="<?php echo $mu_wd_relative_prefix;?><?php echo $mu_session_data->getPath(false);?>" target="_blank" class="item">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-navigate" /></svg></span>
<span class="btntex">Open parent folder</span>
</a>
</div>
</div>
<div class="tools-mobile ns">
<a title="Save changes" onclick="tool_edit_save()" class="item rbord disabled-editor-not-changed">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-floppy" /></svg></span>
<span class="btntex bold">Save</span>
</a>
<a title="Discard changes" onclick="event.preventDefault();editor_discard('<?php echo browsePage($mu_session_data->getPath());?>')" class="item rbord disabled-editor-not-changed">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-close" /></svg></span>
<span class="btntex">Discard</span>
</a>
<a title="Close editor" href="<?php echo browsePage($mu_session_data->getPath());?>" class="item rbord disabled-editor-changed">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-close" /></svg></span>
<span class="btntex">Close</span>
</a>
<a title="Scroll top" onclick="gid('main-editor').scrollTop=0" class="item">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-scroll-top" /></svg></span>
<span class="btntex">Top</span>
</a>
<a title="Wrap text" onclick="editor_text_wrap(true)" class="item rbord disabled-editor-text-wrap">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-text-wrap" /></svg></span>
<span class="btntex">Wrap</span>
</a>
<a title="Don't wrap text" onclick="editor_text_wrap(false)" class="item rbord disabled-editor-text-nowrap">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-text-lines" /></svg></span>
<span class="btntex">No wrap</span>
</a>
<a title="Open <?php echo $mu_session_data->name;?>" href="<?php echo $mu_wd_relative_prefix;?><?php echo $mu_session_data->getFullPath(false);?>" target="_blank" class="item">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-file" /></svg></span>
<span class="btntex">File</span>
</a>
<a title="Open parent folder" href="<?php echo $mu_wd_relative_prefix;?><?php echo $mu_session_data->getPath(false);?>" target="_blank" class="item">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-navigate" /></svg></span>
<span class="btntex">Folder</span>
</a>
</div>
</div>
<div class="main layout-block" id="main-editor">
<div class="editor-container">
<textarea class="editor editor-lineheight" id="text-editor" name="editor_content" spellcheck="false" onkeyup="editor_adjust(false,event)" onpaste="editor_adjust()" oncut="editor_adjust()"><?php $mu_session_data->printContent();?></textarea>
<div class="editor-numbers editor-lineheight ns" id="text-editor-numbers"> </div>
<div class="editor-adj hidden ns" id="text-editor-sizeadj"> </div>
</div>
</div>
<script type="text/javascript">editor_adjust(true);</script>
<?php }else{?>
<div id="tools" class="tools layout-block">
<div class="tools-desktop">
<div class="cat ns">
<span class="cat-name">Select:</span>
<div class="row row3">
<a title="Select all" onclick="select_browse('all')" class="item">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-select-all" /></svg></span>
<span class="btntex">S.All</span>
</a>
<a title="Select none" onclick="select_browse('none')" class="item">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-unselect-all" /></svg></span>
<span class="btntex">None</span>
</a>
<a title="Invert selection" onclick="select_browse('invert')" class="item">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-invert" /></svg></span>
<span class="btntex">Invert</span>
</a>
</div>
</div>
<div class="cat disabled-select-nothing">
<span class="cat-name ns">Edit:</span>
<a title="Copy file(s)" onclick="tool_copy()" class="item">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-copy" /></svg></span>
<span class="btntex">Copy <span class="live-files-qty"></span></span>
</a>
<a title="Move file(s)" onclick="tool_cut()" class="item">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-cut" /></svg></span>
<span class="btntex">Move <span class="live-files-qty"></span></span>
</a>
<a title="Delete file(s)" onclick="tool_delete()" class="item">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-trash" /></svg></span>
<span class="btntex">Delete <span class="live-files-qty"></span></span>
</a>
<div class="item inpt disabled-select-big-selection" id="tool-inpt-rename">
<table class="tab tab-row">
<tr>
<td class="hidein ns"><a class="btnic" onclick="tool_inpt_show(false)"><svg class="svg-ic"><use xlink:href="#ic-close" /></svg></a></td>
<td class="intext"><input type="text" onkeyup="if(event.keyCode===13)tool_rename()" id="input-rename" name="ren_new_name" placeholder="Rename to..." /></td>
<td class="submit ns"><a title="Rename" onclick="tool_rename()" class="btnic"><svg class="svg-ic"><use xlink:href="#ic-pencil" /></svg></a></td>
</tr>
</table>
</div>
<div class="item inpt" id="tool-inpt-perms">
<table class="tab tab-row">
<tr>
<td class="hidein ns"><a class="btnic" onclick="tool_inpt_show(false)"><svg class="svg-ic"><use xlink:href="#ic-close" /></svg></a></td>
<td class="intext"><input type="text" onkeyup="if(event.keyCode===13)tool_perms()" id="input-perms" name="perm_new_perms" placeholder="Permissions to... (e.g. 0755)" /></td>
<td class="submit ns"><a title="Change permissions" onclick="tool_perms()" class="btnic"><svg class="svg-ic"><use xlink:href="#ic-perms" /></svg></a></td>
</tr>
</table>
</div>
<?php if(zipEnabled()){?>
<a title="Zip selection" onclick="tool_zip()" class="item ns">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-zip" /></svg></span>
<span class="btntex">Zip selection</span>
</a>
<a title="Unzip file" onclick="tool_unzip()" class="item ns disabled-select-one-folder disabled-select-big-selection">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-unzip" /></svg></span>
<span class="btntex">Unzip</span>
</a>
<?php }?>
</div>
<div class="cat nobord disabled-select-one-file disabled-select-one-folder disabled-select-big-selection">
<span class="cat-name ns">Folder:</span>
<a title="Open folder in a new tab" href="<?php echo $mu_wd_relative_prefix;?><?php echo $mu_session_data->getFullPath(false);?>" target="_blank" class="item">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-navigate" /></svg></span>
<span class="btntex">Open folder (new tab)</span>
</a>
<div class="item inpt" id="tool-inpt-newfolder">
<table class="tab tab-row">
<tr>
<td class="hidein ns"><a class="btnic" onclick="tool_inpt_show(false)"><svg class="svg-ic"><use xlink:href="#ic-close" /></svg></a></td>
<td class="intext"><input type="text" onkeyup="if(event.keyCode===13)tool_newfolder()" id="input-newfolder" name="new_folder_name" placeholder="New Folder..." /></td>
<td class="submit ns"><a onclick="tool_newfolder()" title="New folder" class="btnic"><svg class="svg-ic"><use xlink:href="#ic-new-folder" /></svg></a></td>
</tr>
</table>
</div>
<div class="item inpt" id="tool-inpt-newfile">
<table class="tab tab-row">
<tr>
<td class="hidein ns"><a class="btnic" onclick="tool_inpt_show(false)"><svg class="svg-ic"><use xlink:href="#ic-close" /></svg></a></td>
<td class="intext"><input type="text" onkeyup="if(event.keyCode===13)tool_newfile()" id="input-newfile" name="new_file_name" placeholder="New File..." /></td>
<td class="submit ns"><a title="New folder" onclick="tool_newfile()" class="btnic"><svg class="svg-ic"><use xlink:href="#ic-plus" /></svg></a></td>
</tr>
</table>
</div>
</div>
<div class="cat nobord tool-upload disabled-select-one-file disabled-select-one-folder disabled-select-big-selection" id="tool-inpt-upload">
<span class="cat-name ns">Upload:</span>
<a class="item close ns" onclick="tool_inpt_show(false)"><span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-close" /></svg></span></a>
<a title="Upload" onclick="tool_upload()" class="item ns submit disabled-uploading-nothing">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-upload" /></svg></span>
<span class="btntex">Upload file(s)</span>
</a>
<div id="upload-labels"><div class="last" style="display:none"> </div></div>
</div>
</div>
<div class="tools-mobile ns">
<a title="Select all" onclick="select_browse('all')" class="item">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-select-all" /></svg></span>
<span class="btntex">S.All</span>
</a>
<a title="Select none" onclick="select_browse('none')" class="item">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-unselect-all" /></svg></span>
<span class="btntex">None</span>
</a>
<a title="Invert selection" onclick="select_browse('invert')" class="item rbord">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-invert" /></svg></span>
<span class="btntex">Invert</span>
</a>
<a title="Copy file(s)" onclick="tool_copy()" class="item disabled-select-nothing">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-copy" /></svg></span>
<span class="btntex">Copy</span>
</a>
<a title="Move file(s)" onclick="tool_cut()" class="item disabled-select-nothing">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-cut" /></svg></span>
<span class="btntex">Move</span>
</a>
<a title="Delete file(s)" onclick="tool_delete()" class="item rbord disabled-select-nothing">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-trash" /></svg></span>
<span class="btntex">Delete</span>
</a>
<a title="Rename" class="item disabled-select-nothing disabled-select-big-selection" onclick="tool_inpt_show('rename')">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-pencil" /></svg></span>
<span class="btntex">Rename</span>
</a>
<a title="Change permissions" onclick="tool_inpt_show('perms')" class="item rbord disabled-select-nothing">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-perms" /></svg></span>
<span class="btntex">Perms</span>
</a>
<?php if(zipEnabled()){?>
<a title="Zip selection" onclick="tool_zip()" class="item disabled-select-nothing">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-zip" /></svg></span>
<span class="btntex">Zip</span>
</a>
<a title="Unzip file" onclick="tool_unzip()" class="item disabled-select-nothing disabled-select-big-selection disabled-select-one-folder">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-unzip" /></svg></span>
<span class="btntex">Unzip</span>
</a>
<?php }?>
<a title="Open folder in a new tab" href="<?php echo $mu_wd_relative_prefix;?><?php echo $mu_session_data->getFullPath(false);?>" target="_blank" class="item rbord disabled-select-big-selection disabled-select-one-folder disabled-select-one-file">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-navigate" /></svg></span>
<span class="btntex">Folder</span>
</a>
<a title="New folder" onclick="tool_inpt_show('newfolder')" class="item disabled-select-big-selection disabled-select-one-folder disabled-select-one-file">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-new-folder" /></svg></span>
<span class="btntex">+ Folder</span>
</a>
<a title="New file" onclick="tool_inpt_show('newfile')" class="item rbord disabled-select-big-selection disabled-select-one-folder disabled-select-one-file">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-plus" /></svg></span>
<span class="btntex">+ File</span>
</a>
<a title="Upload" onclick="tool_inpt_show('upload')" class="item disabled-select-big-selection disabled-select-one-folder disabled-select-one-file">
<span class="btnic"><svg class="svg-ic"><use xlink:href="#ic-upload" /></svg></span>
<span class="btntex">Upload</span>
</a>
</div>
</div>
<div class="main ns layout-block" oncontextmenu="select_browse_rightclick(false);return false">
<div class="browse-container" oncontextmenu="event.stopPropagation()">
<input type="hidden" name="count_folders" value="<?php echo $mu_session_data->countFolders+1;?>" />
<input type="hidden" name="count_files" value="<?php echo $mu_session_data->countFiles+1;?>" />
<div class="browse-item legend">
<table class="tab tab-row">
<tr>
<td class="sep-first">
<?php if(!empty($mu_session_data->getPath()))echo "<a class=\"upbtn\" title=\"Browse upper folder\" href=\"".browsePage($mu_session_data->getPath())."\"><svg class=\"svg-ic\"><use xlink:href=\"#ic-up-arrow\" /></svg></a>";else echo "<span class=\"upbtn\"><svg class=\"svg-ic\"><use xlink:href=\"#ic-home\" /></svg></span>";?>
</td>
<td class="name"><span class="caption"><span onclick="sort_browse_elements_by('name')" style="cursor:pointer">Name</span>:</span></td>
<td class="sep-mid"> </td>
<td class="data"><span class="caption"><span onclick="sort_browse_elements_by('size')" style="cursor:pointer">Size</span></a> / <span onclick="sort_browse_elements_by('perms')" style="cursor:pointer">Perms</span>:</span></td>
<td class="sep-last"> </td>
</tr>
</table>
</div><div id="Sortable_Browse_Elements"><?php function printBrowsingItem($f,$type="file",$mu_session_data_path=""){global $mu_wd_relative_prefix;?>
<div class="browse-item browse-item-<?php echo $type;?>" oncontextmenu="select_browse_rightclick('<?php echo $type;?>-<?php echo $f->browseId;?>');return false">
<input class="browse-chk browse-chk-<?php echo $type;?>" onchange="select_browse_update()" type="checkbox" id="browse-chk-<?php echo $type;?>-<?php echo $f->browseId;?>" name="<?php echo $type;?>_<?php echo $f->browseId;?>" value="_<?php echo $f->name;?>" />
<input type="hidden" class="sortable_browse__isdir" value=<?php if($type=="folder")echo "1";else echo "0";?> />
<input type="hidden" class="sortable_browse__name" value="<?php echo $f->name;?>" />
<input type="hidden" class="sortable_browse__size" value=<?php echo $f->size;?> />
<input type="hidden" class="sortable_browse__perms" value="<?php echo $f->perms;?>" />
<label for="browse-chk-<?php echo $type;?>-<?php echo $f->browseId;?>">
<table class="tab tab-row" <?php if($type=="folder")echo "ondblclick=\"location.href='".browsePage($mu_session_data_path."/".$f->name)."'\"";?>>
<tr>
<td class="sep-first"> </td>
<td class="name">
<?php if($type=="folder")echo "<a oncontextmenu=\"event.stopPropagation()\" class=\"link breakwords\" ondblclick=\"event.stopPropagation()\" title=\"Browse ".$f->name."\" href=\"".browsePage($mu_session_data_path."/".$f->name)."\">".$f->name."</a>";else echo "<span oncontextmenu=\"event.stopPropagation()\" class=\"breakwords\">".$f->name."</span>";?>
<a class="openlink" oncontextmenu="event.stopPropagation()" title="Open <?php echo $f->name;?>" href="<?php echo $mu_wd_relative_prefix;?>.<?php echo $mu_session_data_path."/".$f->name;?>" target="_blank">[OPEN]</a>
<?php if($type=="file")echo "<a oncontextmenu=\"event.stopPropagation()\" class=\"openlink edit\" title=\"Edit ".$f->name."\" href=\"".editorPage($mu_session_data_path."/".$f->name)."\">[EDIT]</a>";?>
</td>
<td class="sep-mid"> </td>
<td class="data">
<span class="data-cnt" oncontextmenu="event.stopPropagation()">
<span class="size"><?php echo $f->sizeWithUnit();?></span>
<span class="perms">Perms: <?php echo $f->perms;?></span>
</span>
</td>
<td class="sep-last"> </td>
</tr>
</table>
</label>
</div>
<?php }foreach($mu_session_data->folders as $f)printBrowsingItem($f,"folder",$mu_session_data->getFullPath());foreach($mu_session_data->files as $f)printBrowsingItem($f,"file",$mu_session_data->getFullPath());?></div>
</div>
</div>
<?php }?>
</form>
</div>
<div class="upload-zone">
<form id="form-upload" enctype="multipart/form-data">
<input type="hidden" name="upload_path" value="<?php echo $mu_session_data->getFullPath(false);?>" />
<div id="upload-inputs"></div>
</form>
</div>
<script type="text/javascript">upload_add();</script>
</body>
</html>